From f7530af3db24d7c0415ba170d387b2269e123fa2 Mon Sep 17 00:00:00 2001 From: Sam Valladares <143034159+samvallad33@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:02:42 -0500 Subject: [PATCH] =?UTF-8?q?release:=20v2.2.1=20=E2=80=94=20Windows=20embed?= =?UTF-8?q?dings=20fix=20+=20backfill=20safety=20+=20first-run=20guide=20(?= =?UTF-8?q?#105)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * patch(backfill-safety): VESTIGE_BACKFILL_AUTOFIRE gate (default OFF) + bounded promote_memory_backfill Off-by-default env gate around step-8.5 auto-fire in run_consolidation (decouples backfill from consolidation cadence). New promote_memory_backfill caps stability at MIN(stability*1.5, stability+365.0) (the bound retroactive_backfill.rs:300 already computes but discarded); both backfill entry points use it. Fixes the false 'capped' comment. Cloud-sync excluded at build (--no-default-features). Pending upstream PR to samvallad33/vestige. omega-backfill-safety-v2.2.0 off tag v2.2.0 (3bcd4667). Co-Authored-By: Claude Opus 4.8 (1M context) * release: v2.2.1 — Windows embeddings fix + backfill safety + first-run guide Board-clearing patch release. Fixes: - #101 Windows embeddings: release.yml already restores vector-search on the x86_64-pc-windows-msvc target (merged in #102); this release rebuilds the Windows binary so users actually get working embeddings. - #103 Retroactive Salience Backfill safety (from community PR #104, adjusted): * promote_memory_backfill bounds the stability multiply to MIN(stability*1.5, stability+365.0) on both auto-fire and manual paths. * VESTIGE_BACKFILL_AUTOFIRE gate — default ON (preserves the shipped/documented v2.2.0 behavior), disable with 0/false/off/no. Env value is trimmed. * Corrected the false "capped" comment and the promote_memory_backfill doc. * Added 3 tests: +365 cap binds, *1.5 multiply below crossover, gate parsing. Docs: - #83 First-Run: new docs/GETTING-STARTED.md + README pointer. - Consolidated roadmap issues #82,#84-#92 into docs/ROADMAP.md (Tracked Issues). - Documented VESTIGE_BACKFILL_AUTOFIRE in docs/CONFIGURATION.md. - CHANGELOG v2.2.1 entry. Version bumped to 2.2.1 across all manifests + Cargo.lock + dashboard build. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Co-authored-by: Peter Lauzon Co-authored-by: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 35 + Cargo.lock | 4 +- Cargo.toml | 2 +- README.md | 3 +- .../_app/immutable/assets/0.Bor8S3Zo.css | 1 - .../_app/immutable/assets/0.Bor8S3Zo.css.br | Bin 10347 -> 0 bytes .../_app/immutable/assets/0.Bor8S3Zo.css.gz | Bin 12350 -> 0 bytes .../_app/immutable/assets/0.Cf27G70K.css | 1 + .../_app/immutable/assets/0.Cf27G70K.css.br | Bin 0 -> 11978 bytes .../_app/immutable/assets/0.Cf27G70K.css.gz | Bin 0 -> 14393 bytes .../_app/immutable/assets/10.g4OzM5ih.css | 1 + .../_app/immutable/assets/10.g4OzM5ih.css.br | Bin 0 -> 628 bytes .../_app/immutable/assets/10.g4OzM5ih.css.gz | Bin 0 -> 728 bytes .../_app/immutable/assets/11.BxoW8Jf1.css | 1 + .../_app/immutable/assets/11.BxoW8Jf1.css.br | Bin 0 -> 1091 bytes .../_app/immutable/assets/11.BxoW8Jf1.css.gz | Bin 0 -> 1274 bytes .../{13.Bjd0S47S.css => 14.Bjd0S47S.css} | 0 ...{13.Bjd0S47S.css.br => 14.Bjd0S47S.css.br} | Bin ...{13.Bjd0S47S.css.gz => 14.Bjd0S47S.css.gz} | Bin .../_app/immutable/assets/15.BzuIe_Oj.css | 1 + .../_app/immutable/assets/15.BzuIe_Oj.css.br | Bin 0 -> 1584 bytes .../_app/immutable/assets/15.BzuIe_Oj.css.gz | Bin 0 -> 1835 bytes .../{15.ChjqzJHo.css => 17.ChjqzJHo.css} | 0 ...{15.ChjqzJHo.css.br => 17.ChjqzJHo.css.br} | Bin ...{15.ChjqzJHo.css.gz => 17.ChjqzJHo.css.gz} | Bin .../{16.BnHgRQtR.css => 18.BnHgRQtR.css} | 0 ...{16.BnHgRQtR.css.br => 18.BnHgRQtR.css.br} | Bin ...{16.BnHgRQtR.css.gz => 18.BnHgRQtR.css.gz} | Bin .../_app/immutable/assets/19.C2qtIyf6.css | 1 + .../_app/immutable/assets/19.C2qtIyf6.css.br | Bin 0 -> 505 bytes .../_app/immutable/assets/19.C2qtIyf6.css.gz | Bin 0 -> 590 bytes .../_app/immutable/assets/20.CO50G5tF.css | 1 + .../_app/immutable/assets/20.CO50G5tF.css.br | 2 + .../_app/immutable/assets/20.CO50G5tF.css.gz | Bin 0 -> 63 bytes .../{20.DKhUrxcR.css => 22.DKhUrxcR.css} | 0 ...{20.DKhUrxcR.css.br => 22.DKhUrxcR.css.br} | Bin ...{20.DKhUrxcR.css.gz => 22.DKhUrxcR.css.gz} | Bin .../_app/immutable/assets/5.Tl8-WHJj.css | 1 + .../_app/immutable/assets/5.Tl8-WHJj.css.br | Bin 0 -> 2276 bytes .../_app/immutable/assets/5.Tl8-WHJj.css.gz | Bin 0 -> 2583 bytes .../_app/immutable/assets/6.BSSBWVKL.css.br | Bin 2562 -> 0 bytes .../_app/immutable/assets/6.BSSBWVKL.css.gz | Bin 2906 -> 0 bytes .../assets/{5.DQ_AfUnN.css => 6.DQ_AfUnN.css} | 0 .../{5.DQ_AfUnN.css.br => 6.DQ_AfUnN.css.br} | Bin .../{5.DQ_AfUnN.css.gz => 6.DQ_AfUnN.css.gz} | Bin .../_app/immutable/assets/7.CCrNEDd3.css | 1 - .../_app/immutable/assets/7.CCrNEDd3.css.br | Bin 89 -> 0 bytes .../_app/immutable/assets/7.CCrNEDd3.css.gz | Bin 104 -> 0 bytes .../assets/{6.BSSBWVKL.css => 7.F0TwMZ5M.css} | 2 +- .../_app/immutable/assets/7.F0TwMZ5M.css.br | Bin 0 -> 2513 bytes .../_app/immutable/assets/7.F0TwMZ5M.css.gz | Bin 0 -> 2860 bytes .../_app/immutable/assets/9.BBx09UGv.css | 1 - .../_app/immutable/assets/9.BBx09UGv.css.br | Bin 110 -> 0 bytes .../_app/immutable/assets/9.BBx09UGv.css.gz | Bin 138 -> 0 bytes .../immutable/assets/Dropdown.C2Z-7Phd.css | 1 + .../immutable/assets/Dropdown.C2Z-7Phd.css.br | Bin 0 -> 818 bytes .../immutable/assets/Dropdown.C2Z-7Phd.css.gz | Bin 0 -> 987 bytes .../_app/immutable/assets/Icon.tTjeJXhC.css | 1 + .../immutable/assets/Icon.tTjeJXhC.css.br | Bin 0 -> 202 bytes .../immutable/assets/Icon.tTjeJXhC.css.gz | Bin 0 -> 249 bytes .../immutable/assets/PageHeader.Dmxpik8H.css | 1 + .../assets/PageHeader.Dmxpik8H.css.br | Bin 0 -> 238 bytes .../assets/PageHeader.Dmxpik8H.css.gz | Bin 0 -> 287 bytes .../build/_app/immutable/chunks/60_R_Vbt.js | 2 + .../_app/immutable/chunks/60_R_Vbt.js.br | Bin 0 -> 3082 bytes .../_app/immutable/chunks/60_R_Vbt.js.gz | Bin 0 -> 3390 bytes .../build/_app/immutable/chunks/A7po6GxK.js | 1 - .../_app/immutable/chunks/A7po6GxK.js.br | Bin 565 -> 0 bytes .../_app/immutable/chunks/A7po6GxK.js.gz | Bin 634 -> 0 bytes .../build/_app/immutable/chunks/B4yTwGkE.js | 1 - .../_app/immutable/chunks/B4yTwGkE.js.br | Bin 304 -> 0 bytes .../_app/immutable/chunks/B4yTwGkE.js.gz | Bin 316 -> 0 bytes .../build/_app/immutable/chunks/B7CfdQuM.js | 1 - .../_app/immutable/chunks/B7CfdQuM.js.br | Bin 646 -> 0 bytes .../_app/immutable/chunks/B7CfdQuM.js.gz | Bin 769 -> 0 bytes .../build/_app/immutable/chunks/BHDZZvku.js | 2 + .../_app/immutable/chunks/BHDZZvku.js.br | Bin 0 -> 653 bytes .../_app/immutable/chunks/BHDZZvku.js.gz | Bin 0 -> 746 bytes .../build/_app/immutable/chunks/BKuqSeVd.js | 2 - .../_app/immutable/chunks/BKuqSeVd.js.br | Bin 272 -> 0 bytes .../_app/immutable/chunks/BKuqSeVd.js.gz | Bin 302 -> 0 bytes .../chunks/{BUoSzNdg.js => BLadwbF7.js} | 2 +- .../_app/immutable/chunks/BLadwbF7.js.br | Bin 0 -> 324 bytes .../_app/immutable/chunks/BLadwbF7.js.gz | Bin 0 -> 344 bytes .../_app/immutable/chunks/BUoSzNdg.js.br | Bin 315 -> 0 bytes .../_app/immutable/chunks/BUoSzNdg.js.gz | Bin 343 -> 0 bytes .../build/_app/immutable/chunks/BWk3o_TN.js | 1 + .../_app/immutable/chunks/BWk3o_TN.js.br | Bin 0 -> 877 bytes .../_app/immutable/chunks/BWk3o_TN.js.gz | Bin 0 -> 994 bytes .../build/_app/immutable/chunks/BZQzXWp7.js | 5 + .../_app/immutable/chunks/BZQzXWp7.js.br | Bin 0 -> 3971 bytes .../_app/immutable/chunks/BZQzXWp7.js.gz | Bin 0 -> 5492 bytes .../build/_app/immutable/chunks/BeMFXnHE.js | 1 - .../_app/immutable/chunks/BeMFXnHE.js.br | Bin 611 -> 0 bytes .../_app/immutable/chunks/BeMFXnHE.js.gz | Bin 652 -> 0 bytes .../build/_app/immutable/chunks/BhIgFntf.js | 1 + .../_app/immutable/chunks/BhIgFntf.js.br | Bin 0 -> 933 bytes .../_app/immutable/chunks/BhIgFntf.js.gz | Bin 0 -> 1052 bytes .../build/_app/immutable/chunks/BlVfL1ME.js | 2 - .../_app/immutable/chunks/BlVfL1ME.js.br | Bin 3142 -> 0 bytes .../_app/immutable/chunks/BlVfL1ME.js.gz | Bin 3497 -> 0 bytes .../build/_app/immutable/chunks/BnXDGOmJ.js | 1 - .../_app/immutable/chunks/BnXDGOmJ.js.br | Bin 516 -> 0 bytes .../_app/immutable/chunks/BnXDGOmJ.js.gz | Bin 582 -> 0 bytes .../build/_app/immutable/chunks/Bxs5UR9-.js | 1 + .../_app/immutable/chunks/Bxs5UR9-.js.br | Bin 0 -> 2611 bytes .../_app/immutable/chunks/Bxs5UR9-.js.gz | Bin 0 -> 2947 bytes .../build/_app/immutable/chunks/ByYB047u.js | 1 + .../_app/immutable/chunks/ByYB047u.js.br | Bin 0 -> 785 bytes .../_app/immutable/chunks/ByYB047u.js.gz | Bin 0 -> 844 bytes .../build/_app/immutable/chunks/C-SOZ1Oi.js | 4118 +++++++++++++++++ .../_app/immutable/chunks/C-SOZ1Oi.js.br | Bin 0 -> 175072 bytes .../_app/immutable/chunks/C-SOZ1Oi.js.gz | Bin 0 -> 213100 bytes .../_app/immutable/chunks/C4h_mRt2.js.br | 2 - .../_app/immutable/chunks/C4h_mRt2.js.gz | Bin 281 -> 0 bytes .../build/_app/immutable/chunks/C6HuKgyx.js | 1 - .../_app/immutable/chunks/C6HuKgyx.js.br | Bin 357 -> 0 bytes .../_app/immutable/chunks/C6HuKgyx.js.gz | Bin 394 -> 0 bytes .../build/_app/immutable/chunks/C8kRUgax.js | 1 + .../_app/immutable/chunks/C8kRUgax.js.br | Bin 0 -> 4626 bytes .../_app/immutable/chunks/C8kRUgax.js.gz | Bin 0 -> 5104 bytes .../build/_app/immutable/chunks/CGEBXrjl.js | 1 - .../_app/immutable/chunks/CGEBXrjl.js.br | Bin 1804 -> 0 bytes .../_app/immutable/chunks/CGEBXrjl.js.gz | Bin 1954 -> 0 bytes .../build/_app/immutable/chunks/CHOnp4oo.js | 1 - .../_app/immutable/chunks/CHOnp4oo.js.br | Bin 723 -> 0 bytes .../_app/immutable/chunks/CHOnp4oo.js.gz | Bin 798 -> 0 bytes .../build/_app/immutable/chunks/CJCPY1OL.js | 1 - .../_app/immutable/chunks/CJCPY1OL.js.br | Bin 163 -> 0 bytes .../_app/immutable/chunks/CJCPY1OL.js.gz | Bin 169 -> 0 bytes .../build/_app/immutable/chunks/CJsMJEun.js | 1 - .../_app/immutable/chunks/CJsMJEun.js.br | Bin 197 -> 0 bytes .../_app/immutable/chunks/CJsMJEun.js.gz | Bin 228 -> 0 bytes .../build/_app/immutable/chunks/CLrXVRi2.js | 1 + .../_app/immutable/chunks/CLrXVRi2.js.br | Bin 0 -> 1558 bytes .../_app/immutable/chunks/CLrXVRi2.js.gz | Bin 0 -> 1739 bytes .../build/_app/immutable/chunks/CZfHMhLI.js | 1 + .../_app/immutable/chunks/CZfHMhLI.js.br | Bin 0 -> 811 bytes .../_app/immutable/chunks/CZfHMhLI.js.gz | Bin 0 -> 945 bytes .../build/_app/immutable/chunks/CfobEeQC.js | 376 ++ .../_app/immutable/chunks/CfobEeQC.js.br | Bin 0 -> 114755 bytes .../_app/immutable/chunks/CfobEeQC.js.gz | Bin 0 -> 139352 bytes .../build/_app/immutable/chunks/CmbJHhgy.js | 1 + .../_app/immutable/chunks/CmbJHhgy.js.br | Bin 0 -> 1688 bytes .../_app/immutable/chunks/CmbJHhgy.js.gz | Bin 0 -> 1935 bytes .../build/_app/immutable/chunks/CnZzd20v.js | 1 + .../_app/immutable/chunks/CnZzd20v.js.br | Bin 0 -> 462 bytes .../_app/immutable/chunks/CnZzd20v.js.gz | Bin 0 -> 517 bytes .../build/_app/immutable/chunks/CpWkWWOo.js | 1 - .../_app/immutable/chunks/CpWkWWOo.js.br | Bin 8721 -> 0 bytes .../_app/immutable/chunks/CpWkWWOo.js.gz | Bin 9697 -> 0 bytes .../chunks/{D4ymNiig.js => CqMQEF-F.js} | 2 +- .../_app/immutable/chunks/CqMQEF-F.js.br | Bin 0 -> 1610 bytes .../_app/immutable/chunks/CqMQEF-F.js.gz | Bin 0 -> 1765 bytes .../build/_app/immutable/chunks/CtgMtoAJ.js | 1 - .../_app/immutable/chunks/CtgMtoAJ.js.br | Bin 7651 -> 0 bytes .../_app/immutable/chunks/CtgMtoAJ.js.gz | Bin 8414 -> 0 bytes .../build/_app/immutable/chunks/Cx-f-Pzo.js | 1 - .../_app/immutable/chunks/Cx-f-Pzo.js.br | Bin 163 -> 0 bytes .../_app/immutable/chunks/Cx-f-Pzo.js.gz | Bin 204 -> 0 bytes .../_app/immutable/chunks/D4ymNiig.js.br | Bin 1616 -> 0 bytes .../_app/immutable/chunks/D4ymNiig.js.gz | Bin 1768 -> 0 bytes .../build/_app/immutable/chunks/D7A-gG4Z.js | 1 + .../_app/immutable/chunks/D7A-gG4Z.js.br | Bin 0 -> 1915 bytes .../_app/immutable/chunks/D7A-gG4Z.js.gz | Bin 0 -> 2210 bytes .../build/_app/immutable/chunks/D8mhvFt8.js | 2 + .../_app/immutable/chunks/D8mhvFt8.js.br | Bin 0 -> 3589 bytes .../_app/immutable/chunks/D8mhvFt8.js.gz | Bin 0 -> 3997 bytes .../build/_app/immutable/chunks/DKve45Wd.js | 1 + .../_app/immutable/chunks/DKve45Wd.js.br | Bin 0 -> 279 bytes .../_app/immutable/chunks/DKve45Wd.js.gz | Bin 0 -> 317 bytes .../build/_app/immutable/chunks/DPdYG9yN.js | 1 + .../_app/immutable/chunks/DPdYG9yN.js.br | Bin 0 -> 480 bytes .../_app/immutable/chunks/DPdYG9yN.js.gz | Bin 0 -> 571 bytes .../build/_app/immutable/chunks/DcKTNC6e.js | 1 + .../_app/immutable/chunks/DcKTNC6e.js.br | Bin 0 -> 655 bytes .../_app/immutable/chunks/DcKTNC6e.js.gz | Bin 0 -> 731 bytes .../build/_app/immutable/chunks/DdEqwvdI.js | 1 - .../_app/immutable/chunks/DdEqwvdI.js.br | Bin 883 -> 0 bytes .../_app/immutable/chunks/DdEqwvdI.js.gz | Bin 991 -> 0 bytes .../build/_app/immutable/chunks/Dp1pzeXC.js | 1 + .../_app/immutable/chunks/Dp1pzeXC.js.br | Bin 0 -> 623 bytes .../_app/immutable/chunks/Dp1pzeXC.js.gz | Bin 0 -> 728 bytes .../build/_app/immutable/chunks/DrafHjYM.js | 1 + .../_app/immutable/chunks/DrafHjYM.js.br | Bin 0 -> 507 bytes .../_app/immutable/chunks/DrafHjYM.js.gz | Bin 0 -> 578 bytes .../chunks/{C4h_mRt2.js => DzesjbbJ.js} | 2 +- .../_app/immutable/chunks/DzesjbbJ.js.br | Bin 0 -> 260 bytes .../_app/immutable/chunks/DzesjbbJ.js.gz | Bin 0 -> 280 bytes .../build/_app/immutable/chunks/EqHb-9AZ.js | 1 + .../_app/immutable/chunks/EqHb-9AZ.js.br | Bin 0 -> 273 bytes .../_app/immutable/chunks/EqHb-9AZ.js.gz | Bin 0 -> 322 bytes .../build/_app/immutable/chunks/GG5zm9kr.js | 1 - .../_app/immutable/chunks/GG5zm9kr.js.br | Bin 227 -> 0 bytes .../_app/immutable/chunks/GG5zm9kr.js.gz | Bin 268 -> 0 bytes .../build/_app/immutable/chunks/LDOJP_6N.js | 1 + .../_app/immutable/chunks/LDOJP_6N.js.br | Bin 0 -> 178 bytes .../_app/immutable/chunks/LDOJP_6N.js.gz | Bin 0 -> 171 bytes .../build/_app/immutable/chunks/MAY1QfFZ.js | 1 - .../_app/immutable/chunks/MAY1QfFZ.js.br | Bin 819 -> 0 bytes .../_app/immutable/chunks/MAY1QfFZ.js.gz | Bin 918 -> 0 bytes .../build/_app/immutable/chunks/Ma4NfFrG.js | 2 + .../_app/immutable/chunks/Ma4NfFrG.js.br | Bin 0 -> 1872 bytes .../_app/immutable/chunks/Ma4NfFrG.js.gz | Bin 0 -> 2050 bytes .../build/_app/immutable/chunks/P1-U_Xsj.js | 1 + .../_app/immutable/chunks/P1-U_Xsj.js.br | Bin 0 -> 482 bytes .../_app/immutable/chunks/P1-U_Xsj.js.gz | Bin 0 -> 531 bytes .../build/_app/immutable/chunks/TZu9D97Z.js | 1 + .../_app/immutable/chunks/TZu9D97Z.js.br | Bin 0 -> 367 bytes .../_app/immutable/chunks/TZu9D97Z.js.gz | Bin 0 -> 430 bytes .../build/_app/immutable/chunks/V6gjw5Ec.js | 1 - .../_app/immutable/chunks/V6gjw5Ec.js.br | Bin 524 -> 0 bytes .../_app/immutable/chunks/V6gjw5Ec.js.gz | Bin 564 -> 0 bytes .../build/_app/immutable/chunks/aVbAZ-t7.js | 1 - .../_app/immutable/chunks/aVbAZ-t7.js.br | Bin 233 -> 0 bytes .../_app/immutable/chunks/aVbAZ-t7.js.gz | Bin 282 -> 0 bytes .../build/_app/immutable/chunks/dCAmqaEc.js | 1 + .../_app/immutable/chunks/dCAmqaEc.js.br | Bin 0 -> 7742 bytes .../_app/immutable/chunks/dCAmqaEc.js.gz | Bin 0 -> 8475 bytes .../build/_app/immutable/chunks/g4XF1_b9.js | 1 - .../_app/immutable/chunks/g4XF1_b9.js.br | Bin 2611 -> 0 bytes .../_app/immutable/chunks/g4XF1_b9.js.gz | Bin 2949 -> 0 bytes .../build/_app/immutable/chunks/g5OnrUYZ.js | 1 + .../_app/immutable/chunks/g5OnrUYZ.js.br | 1 + .../_app/immutable/chunks/g5OnrUYZ.js.gz | Bin 0 -> 229 bytes .../build/_app/immutable/chunks/sZcqyNBA.js | 1 - .../_app/immutable/chunks/sZcqyNBA.js.br | Bin 465 -> 0 bytes .../_app/immutable/chunks/sZcqyNBA.js.gz | Bin 516 -> 0 bytes .../build/_app/immutable/chunks/wpu9U-D0.js | 1 + .../_app/immutable/chunks/wpu9U-D0.js.br | Bin 0 -> 9258 bytes .../_app/immutable/chunks/wpu9U-D0.js.gz | Bin 0 -> 10302 bytes .../_app/immutable/entry/app.DU6MZpw-.js | 2 - .../_app/immutable/entry/app.DU6MZpw-.js.br | Bin 3559 -> 0 bytes .../_app/immutable/entry/app.DU6MZpw-.js.gz | Bin 4093 -> 0 bytes .../_app/immutable/entry/app.Dg6iMka9.js | 2 + .../_app/immutable/entry/app.Dg6iMka9.js.br | Bin 0 -> 3191 bytes .../_app/immutable/entry/app.Dg6iMka9.js.gz | Bin 0 -> 3666 bytes .../_app/immutable/entry/start.BvFEq078.js | 1 + .../_app/immutable/entry/start.BvFEq078.js.br | Bin 0 -> 116 bytes .../_app/immutable/entry/start.BvFEq078.js.gz | Bin 0 -> 108 bytes .../_app/immutable/entry/start.DQakSJT1.js | 1 - .../_app/immutable/entry/start.DQakSJT1.js.br | Bin 110 -> 0 bytes .../_app/immutable/entry/start.DQakSJT1.js.gz | Bin 108 -> 0 bytes .../build/_app/immutable/nodes/0.BmfNagK9.js | 86 + .../_app/immutable/nodes/0.BmfNagK9.js.br | Bin 0 -> 10223 bytes .../_app/immutable/nodes/0.BmfNagK9.js.gz | Bin 0 -> 11654 bytes .../build/_app/immutable/nodes/0.D_38hT9S.js | 86 - .../_app/immutable/nodes/0.D_38hT9S.js.br | Bin 9946 -> 0 bytes .../_app/immutable/nodes/0.D_38hT9S.js.gz | Bin 11353 -> 0 bytes .../build/_app/immutable/nodes/1.CzSrpo2A.js | 1 - .../_app/immutable/nodes/1.CzSrpo2A.js.br | Bin 342 -> 0 bytes .../_app/immutable/nodes/1.CzSrpo2A.js.gz | Bin 383 -> 0 bytes .../build/_app/immutable/nodes/1.MT4EnKSP.js | 1 + .../_app/immutable/nodes/1.MT4EnKSP.js.br | Bin 0 -> 331 bytes .../_app/immutable/nodes/1.MT4EnKSP.js.gz | Bin 0 -> 373 bytes .../build/_app/immutable/nodes/10.CQzEYpYT.js | 4115 ---------------- .../_app/immutable/nodes/10.CQzEYpYT.js.br | Bin 123948 -> 0 bytes .../_app/immutable/nodes/10.CQzEYpYT.js.gz | Bin 149521 -> 0 bytes .../build/_app/immutable/nodes/10.DYHIt_do.js | 8 + .../_app/immutable/nodes/10.DYHIt_do.js.br | Bin 0 -> 3547 bytes .../_app/immutable/nodes/10.DYHIt_do.js.gz | Bin 0 -> 4002 bytes .../build/_app/immutable/nodes/11.CncxcJx_.js | 7 - .../_app/immutable/nodes/11.CncxcJx_.js.br | Bin 4826 -> 0 bytes .../_app/immutable/nodes/11.CncxcJx_.js.gz | Bin 5447 -> 0 bytes .../build/_app/immutable/nodes/11.Db7dgOeT.js | 1 + .../_app/immutable/nodes/11.Db7dgOeT.js.br | Bin 0 -> 65 bytes .../_app/immutable/nodes/11.Db7dgOeT.js.gz | Bin 0 -> 81 bytes .../build/_app/immutable/nodes/12.CO2CXIFj.js | 8 + .../_app/immutable/nodes/12.CO2CXIFj.js.br | Bin 0 -> 5168 bytes .../_app/immutable/nodes/12.CO2CXIFj.js.gz | Bin 0 -> 5853 bytes .../build/_app/immutable/nodes/12.DxkSrFsy.js | 1 - .../_app/immutable/nodes/12.DxkSrFsy.js.br | Bin 2402 -> 0 bytes .../_app/immutable/nodes/12.DxkSrFsy.js.gz | Bin 2729 -> 0 bytes .../build/_app/immutable/nodes/13.BQoci-vM.js | 1 + .../_app/immutable/nodes/13.BQoci-vM.js.br | Bin 0 -> 2833 bytes .../_app/immutable/nodes/13.BQoci-vM.js.gz | Bin 0 -> 3237 bytes .../build/_app/immutable/nodes/13.CD5qzYsO.js | 6 - .../_app/immutable/nodes/13.CD5qzYsO.js.br | Bin 5190 -> 0 bytes .../_app/immutable/nodes/13.CD5qzYsO.js.gz | Bin 5961 -> 0 bytes .../build/_app/immutable/nodes/14.CDp0vmq1.js | 6 + .../_app/immutable/nodes/14.CDp0vmq1.js.br | Bin 0 -> 5675 bytes .../_app/immutable/nodes/14.CDp0vmq1.js.gz | Bin 0 -> 6507 bytes .../build/_app/immutable/nodes/14.DUh3SXOF.js | 3 - .../_app/immutable/nodes/14.DUh3SXOF.js.br | Bin 5958 -> 0 bytes .../_app/immutable/nodes/14.DUh3SXOF.js.gz | Bin 6837 -> 0 bytes .../build/_app/immutable/nodes/15.C05K0kWE.js | 3 + .../_app/immutable/nodes/15.C05K0kWE.js.br | Bin 0 -> 3518 bytes .../_app/immutable/nodes/15.C05K0kWE.js.gz | Bin 0 -> 3984 bytes .../build/_app/immutable/nodes/15.CyCv1LGV.js | 5 - .../_app/immutable/nodes/15.CyCv1LGV.js.br | Bin 7453 -> 0 bytes .../_app/immutable/nodes/15.CyCv1LGV.js.gz | Bin 8554 -> 0 bytes .../build/_app/immutable/nodes/16.CrQpRrFW.js | 3 + .../_app/immutable/nodes/16.CrQpRrFW.js.br | Bin 0 -> 6570 bytes .../_app/immutable/nodes/16.CrQpRrFW.js.gz | Bin 0 -> 7543 bytes .../build/_app/immutable/nodes/16.Cth-SSqa.js | 9 - .../_app/immutable/nodes/16.Cth-SSqa.js.br | Bin 5678 -> 0 bytes .../_app/immutable/nodes/16.Cth-SSqa.js.gz | Bin 6485 -> 0 bytes .../build/_app/immutable/nodes/17.3ASmJvJ6.js | 2 + .../_app/immutable/nodes/17.3ASmJvJ6.js.br | Bin 0 -> 7860 bytes .../_app/immutable/nodes/17.3ASmJvJ6.js.gz | Bin 0 -> 8983 bytes .../build/_app/immutable/nodes/17.k6k7874Y.js | 2 - .../_app/immutable/nodes/17.k6k7874Y.js.br | Bin 3389 -> 0 bytes .../_app/immutable/nodes/17.k6k7874Y.js.gz | Bin 3879 -> 0 bytes .../build/_app/immutable/nodes/18.43xZFMsD.js | 8 + .../_app/immutable/nodes/18.43xZFMsD.js.br | Bin 0 -> 5820 bytes .../_app/immutable/nodes/18.43xZFMsD.js.gz | Bin 0 -> 6643 bytes .../build/_app/immutable/nodes/18.C60Wuzj2.js | 1 - .../_app/immutable/nodes/18.C60Wuzj2.js.br | Bin 2022 -> 0 bytes .../_app/immutable/nodes/18.C60Wuzj2.js.gz | Bin 2285 -> 0 bytes .../build/_app/immutable/nodes/19.BIUSI5ln.js | 1 - .../_app/immutable/nodes/19.BIUSI5ln.js.br | Bin 1557 -> 0 bytes .../_app/immutable/nodes/19.BIUSI5ln.js.gz | Bin 1766 -> 0 bytes .../build/_app/immutable/nodes/19.BYwd4oWS.js | 2 + .../_app/immutable/nodes/19.BYwd4oWS.js.br | Bin 0 -> 3981 bytes .../_app/immutable/nodes/19.BYwd4oWS.js.gz | Bin 0 -> 4527 bytes .../build/_app/immutable/nodes/2.D-vKwnTC.js | 1 - .../_app/immutable/nodes/2.D-vKwnTC.js.br | Bin 143 -> 0 bytes .../_app/immutable/nodes/2.D-vKwnTC.js.gz | Bin 182 -> 0 bytes .../build/_app/immutable/nodes/2.DEnQkIHv.js | 1 + .../_app/immutable/nodes/2.DEnQkIHv.js.br | Bin 0 -> 156 bytes .../_app/immutable/nodes/2.DEnQkIHv.js.gz | Bin 0 -> 175 bytes .../_app/immutable/nodes/20.DENLzARE.js.br | Bin 5508 -> 0 bytes .../_app/immutable/nodes/20.DENLzARE.js.gz | Bin 6456 -> 0 bytes .../build/_app/immutable/nodes/20.Di2Q3Va0.js | 1 + .../_app/immutable/nodes/20.Di2Q3Va0.js.br | Bin 0 -> 2512 bytes .../_app/immutable/nodes/20.Di2Q3Va0.js.gz | Bin 0 -> 2833 bytes .../build/_app/immutable/nodes/21.BAlasPHS.js | 3 + .../_app/immutable/nodes/21.BAlasPHS.js.br | Bin 0 -> 1965 bytes .../_app/immutable/nodes/21.BAlasPHS.js.gz | Bin 0 -> 2235 bytes .../nodes/{20.DENLzARE.js => 22.C719k-1W.js} | 8 +- .../_app/immutable/nodes/22.C719k-1W.js.br | Bin 0 -> 5529 bytes .../_app/immutable/nodes/22.C719k-1W.js.gz | Bin 0 -> 6427 bytes .../build/_app/immutable/nodes/3.2jAIqAuY.js | 1 - .../_app/immutable/nodes/3.2jAIqAuY.js.br | Bin 164 -> 0 bytes .../_app/immutable/nodes/3.2jAIqAuY.js.gz | Bin 196 -> 0 bytes .../build/_app/immutable/nodes/3.C8tBBpzF.js | 1 + .../_app/immutable/nodes/3.C8tBBpzF.js.br | Bin 0 -> 167 bytes .../_app/immutable/nodes/3.C8tBBpzF.js.gz | Bin 0 -> 201 bytes .../build/_app/immutable/nodes/4.BpOpkZuP.js | 5 + .../_app/immutable/nodes/4.BpOpkZuP.js.br | Bin 0 -> 4826 bytes .../_app/immutable/nodes/4.BpOpkZuP.js.gz | Bin 0 -> 5439 bytes .../build/_app/immutable/nodes/4.DYVet_v-.js | 8 - .../_app/immutable/nodes/4.DYVet_v-.js.br | Bin 4439 -> 0 bytes .../_app/immutable/nodes/4.DYVet_v-.js.gz | Bin 5013 -> 0 bytes .../build/_app/immutable/nodes/5.C0AYWqwr.js | 3 - .../_app/immutable/nodes/5.C0AYWqwr.js.br | Bin 7288 -> 0 bytes .../_app/immutable/nodes/5.C0AYWqwr.js.gz | Bin 8441 -> 0 bytes .../build/_app/immutable/nodes/5.CK5gRe3F.js | 2 + .../_app/immutable/nodes/5.CK5gRe3F.js.br | Bin 0 -> 6022 bytes .../_app/immutable/nodes/5.CK5gRe3F.js.gz | Bin 0 -> 6856 bytes .../build/_app/immutable/nodes/6.B5Ezgq8d.js | 14 - .../_app/immutable/nodes/6.B5Ezgq8d.js.br | Bin 5621 -> 0 bytes .../_app/immutable/nodes/6.B5Ezgq8d.js.gz | Bin 6360 -> 0 bytes .../build/_app/immutable/nodes/6.DZyLUVX2.js | 2 + .../_app/immutable/nodes/6.DZyLUVX2.js.br | Bin 0 -> 7544 bytes .../_app/immutable/nodes/6.DZyLUVX2.js.gz | Bin 0 -> 8774 bytes .../build/_app/immutable/nodes/7.2YrTacps.js | 5 - .../_app/immutable/nodes/7.2YrTacps.js.br | Bin 4942 -> 0 bytes .../_app/immutable/nodes/7.2YrTacps.js.gz | Bin 5700 -> 0 bytes .../build/_app/immutable/nodes/7.yWYTsQ1Q.js | 14 + .../_app/immutable/nodes/7.yWYTsQ1Q.js.br | Bin 0 -> 5962 bytes .../_app/immutable/nodes/7.yWYTsQ1Q.js.gz | Bin 0 -> 6764 bytes .../build/_app/immutable/nodes/8.D5dP0-E2.js | 3 + .../_app/immutable/nodes/8.D5dP0-E2.js.br | Bin 0 -> 5294 bytes .../_app/immutable/nodes/8.D5dP0-E2.js.gz | Bin 0 -> 6062 bytes .../build/_app/immutable/nodes/8.DGKslLJe.js | 6 - .../_app/immutable/nodes/8.DGKslLJe.js.br | Bin 3012 -> 0 bytes .../_app/immutable/nodes/8.DGKslLJe.js.gz | Bin 3513 -> 0 bytes .../build/_app/immutable/nodes/9.Vu2AXN40.js | 8 - .../_app/immutable/nodes/9.Vu2AXN40.js.br | Bin 2949 -> 0 bytes .../_app/immutable/nodes/9.Vu2AXN40.js.gz | Bin 3363 -> 0 bytes .../build/_app/immutable/nodes/9.Vz-x3Q_x.js | 6 + .../_app/immutable/nodes/9.Vz-x3Q_x.js.br | Bin 0 -> 3679 bytes .../_app/immutable/nodes/9.Vz-x3Q_x.js.gz | Bin 0 -> 4267 bytes apps/dashboard/build/_app/version.json | 2 +- apps/dashboard/build/_app/version.json.br | 2 +- apps/dashboard/build/_app/version.json.gz | Bin 40 -> 39 bytes apps/dashboard/build/index.html | 32 +- apps/dashboard/build/index.html.br | Bin 607 -> 590 bytes apps/dashboard/build/index.html.gz | Bin 798 -> 781 bytes apps/dashboard/package.json | 2 +- crates/vestige-core/Cargo.toml | 2 +- crates/vestige-core/src/storage/sqlite.rs | 157 +- crates/vestige-mcp/Cargo.toml | 4 +- crates/vestige-mcp/src/tools/backfill.rs | 6 +- docs/CONFIGURATION.md | 1 + docs/GETTING-STARTED.md | 126 + docs/ROADMAP.md | 62 + package.json | 2 +- packages/vestige-init/package.json | 2 +- packages/vestige-mcp-npm/package.json | 2 +- 391 files changed, 5130 insertions(+), 4359 deletions(-) delete mode 100644 apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css create mode 100644 apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/10.g4OzM5ih.css create mode 100644 apps/dashboard/build/_app/immutable/assets/10.g4OzM5ih.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/10.g4OzM5ih.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/11.BxoW8Jf1.css create mode 100644 apps/dashboard/build/_app/immutable/assets/11.BxoW8Jf1.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/11.BxoW8Jf1.css.gz rename apps/dashboard/build/_app/immutable/assets/{13.Bjd0S47S.css => 14.Bjd0S47S.css} (100%) rename apps/dashboard/build/_app/immutable/assets/{13.Bjd0S47S.css.br => 14.Bjd0S47S.css.br} (100%) rename apps/dashboard/build/_app/immutable/assets/{13.Bjd0S47S.css.gz => 14.Bjd0S47S.css.gz} (100%) create mode 100644 apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css create mode 100644 apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css.gz rename apps/dashboard/build/_app/immutable/assets/{15.ChjqzJHo.css => 17.ChjqzJHo.css} (100%) rename apps/dashboard/build/_app/immutable/assets/{15.ChjqzJHo.css.br => 17.ChjqzJHo.css.br} (100%) rename apps/dashboard/build/_app/immutable/assets/{15.ChjqzJHo.css.gz => 17.ChjqzJHo.css.gz} (100%) rename apps/dashboard/build/_app/immutable/assets/{16.BnHgRQtR.css => 18.BnHgRQtR.css} (100%) rename apps/dashboard/build/_app/immutable/assets/{16.BnHgRQtR.css.br => 18.BnHgRQtR.css.br} (100%) rename apps/dashboard/build/_app/immutable/assets/{16.BnHgRQtR.css.gz => 18.BnHgRQtR.css.gz} (100%) create mode 100644 apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css create mode 100644 apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/20.CO50G5tF.css create mode 100644 apps/dashboard/build/_app/immutable/assets/20.CO50G5tF.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/20.CO50G5tF.css.gz rename apps/dashboard/build/_app/immutable/assets/{20.DKhUrxcR.css => 22.DKhUrxcR.css} (100%) rename apps/dashboard/build/_app/immutable/assets/{20.DKhUrxcR.css.br => 22.DKhUrxcR.css.br} (100%) rename apps/dashboard/build/_app/immutable/assets/{20.DKhUrxcR.css.gz => 22.DKhUrxcR.css.gz} (100%) create mode 100644 apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css create mode 100644 apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.gz rename apps/dashboard/build/_app/immutable/assets/{5.DQ_AfUnN.css => 6.DQ_AfUnN.css} (100%) rename apps/dashboard/build/_app/immutable/assets/{5.DQ_AfUnN.css.br => 6.DQ_AfUnN.css.br} (100%) rename apps/dashboard/build/_app/immutable/assets/{5.DQ_AfUnN.css.gz => 6.DQ_AfUnN.css.gz} (100%) delete mode 100644 apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.gz rename apps/dashboard/build/_app/immutable/assets/{6.BSSBWVKL.css => 7.F0TwMZ5M.css} (57%) create mode 100644 apps/dashboard/build/_app/immutable/assets/7.F0TwMZ5M.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/7.F0TwMZ5M.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/9.BBx09UGv.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/9.BBx09UGv.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/9.BBx09UGv.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/Dropdown.C2Z-7Phd.css create mode 100644 apps/dashboard/build/_app/immutable/assets/Dropdown.C2Z-7Phd.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/Dropdown.C2Z-7Phd.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css create mode 100644 apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/PageHeader.Dmxpik8H.css create mode 100644 apps/dashboard/build/_app/immutable/assets/PageHeader.Dmxpik8H.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/PageHeader.Dmxpik8H.css.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BHDZZvku.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BHDZZvku.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BHDZZvku.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.gz rename apps/dashboard/build/_app/immutable/chunks/{BUoSzNdg.js => BLadwbF7.js} (76%) create mode 100644 apps/dashboard/build/_app/immutable/chunks/BLadwbF7.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BLadwbF7.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/ByYB047u.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/ByYB047u.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/ByYB047u.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/C-SOZ1Oi.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/C-SOZ1Oi.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/C-SOZ1Oi.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CZfHMhLI.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CZfHMhLI.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CZfHMhLI.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CmbJHhgy.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CmbJHhgy.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CmbJHhgy.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.gz rename apps/dashboard/build/_app/immutable/chunks/{D4ymNiig.js => CqMQEF-F.js} (97%) create mode 100644 apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/Cx-f-Pzo.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/Cx-f-Pzo.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/Cx-f-Pzo.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/D7A-gG4Z.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/D7A-gG4Z.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/D7A-gG4Z.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DKve45Wd.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DKve45Wd.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DKve45Wd.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DcKTNC6e.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DcKTNC6e.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DcKTNC6e.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js.gz rename apps/dashboard/build/_app/immutable/chunks/{C4h_mRt2.js => DzesjbbJ.js} (51%) create mode 100644 apps/dashboard/build/_app/immutable/chunks/DzesjbbJ.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DzesjbbJ.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ma4NfFrG.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ma4NfFrG.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ma4NfFrG.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/P1-U_Xsj.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/P1-U_Xsj.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/P1-U_Xsj.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/TZu9D97Z.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/TZu9D97Z.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/TZu9D97Z.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/dCAmqaEc.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/dCAmqaEc.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/dCAmqaEc.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.br delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.gz create mode 100644 apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js create mode 100644 apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js.br create mode 100644 apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js.gz create mode 100644 apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js create mode 100644 apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js.br create mode 100644 apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js.br delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/10.DYHIt_do.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/10.DYHIt_do.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/10.DYHIt_do.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/11.CncxcJx_.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/11.CncxcJx_.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/11.CncxcJx_.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/11.Db7dgOeT.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/11.Db7dgOeT.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/11.Db7dgOeT.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/12.CO2CXIFj.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/12.CO2CXIFj.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/12.CO2CXIFj.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/12.DxkSrFsy.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/12.DxkSrFsy.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/12.DxkSrFsy.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/13.BQoci-vM.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/13.BQoci-vM.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/13.BQoci-vM.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/13.CD5qzYsO.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/13.CD5qzYsO.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/13.CD5qzYsO.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/14.CDp0vmq1.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/14.CDp0vmq1.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/14.CDp0vmq1.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/14.DUh3SXOF.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/14.DUh3SXOF.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/14.DUh3SXOF.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/15.C05K0kWE.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/15.C05K0kWE.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/15.C05K0kWE.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/15.CyCv1LGV.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/15.CyCv1LGV.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/15.CyCv1LGV.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/16.CrQpRrFW.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/16.CrQpRrFW.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/16.CrQpRrFW.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Cth-SSqa.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Cth-SSqa.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Cth-SSqa.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/17.3ASmJvJ6.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/17.3ASmJvJ6.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/17.3ASmJvJ6.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/17.k6k7874Y.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/17.k6k7874Y.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/17.k6k7874Y.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/18.43xZFMsD.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/18.43xZFMsD.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/18.43xZFMsD.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/18.C60Wuzj2.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/18.C60Wuzj2.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/18.C60Wuzj2.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BIUSI5ln.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BIUSI5ln.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BIUSI5ln.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BYwd4oWS.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BYwd4oWS.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BYwd4oWS.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/2.D-vKwnTC.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/2.D-vKwnTC.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/2.D-vKwnTC.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/2.DEnQkIHv.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/2.DEnQkIHv.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/2.DEnQkIHv.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/20.DENLzARE.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/20.DENLzARE.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/20.Di2Q3Va0.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/20.Di2Q3Va0.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/20.Di2Q3Va0.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/21.BAlasPHS.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/21.BAlasPHS.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/21.BAlasPHS.js.gz rename apps/dashboard/build/_app/immutable/nodes/{20.DENLzARE.js => 22.C719k-1W.js} (68%) create mode 100644 apps/dashboard/build/_app/immutable/nodes/22.C719k-1W.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/22.C719k-1W.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.2jAIqAuY.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.2jAIqAuY.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.2jAIqAuY.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.C8tBBpzF.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.C8tBBpzF.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.C8tBBpzF.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/4.BpOpkZuP.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/4.BpOpkZuP.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/4.BpOpkZuP.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/4.DYVet_v-.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/4.DYVet_v-.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/4.DYVet_v-.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/5.C0AYWqwr.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/5.C0AYWqwr.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/5.C0AYWqwr.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/5.CK5gRe3F.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/5.CK5gRe3F.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/5.CK5gRe3F.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.B5Ezgq8d.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.B5Ezgq8d.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.B5Ezgq8d.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.DZyLUVX2.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.DZyLUVX2.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.DZyLUVX2.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.2YrTacps.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.2YrTacps.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.2YrTacps.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.yWYTsQ1Q.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.yWYTsQ1Q.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.yWYTsQ1Q.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/8.D5dP0-E2.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/8.D5dP0-E2.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/8.D5dP0-E2.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vz-x3Q_x.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vz-x3Q_x.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vz-x3Q_x.js.gz create mode 100644 docs/GETTING-STARTED.md diff --git a/CHANGELOG.md b/CHANGELOG.md index d0a5a39..91f457f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.2.1] - 2026-07-02 — "Windows embeddings + backfill safety" + +A focused patch release. Two fixes plus a first-run guide. + +### Fixed — Windows embeddings never initialized (#101) + +The `x86_64-pc-windows-msvc` v2.2.0 binary was built without the `vector-search` +feature, so the storage layer's `#[cfg(feature = "vector-search")]` paths compiled +out. On Windows this meant new memories got no embedding, semantic search returned +nothing, `vestige health` reported "Embedding Service: Not Ready" (0% coverage), +and no model download was ever attempted — while v2.1.23 worked on the same machine. +The release build now includes `vector-search` on Windows (it compiles cleanly on +MSVC because `usearch` is pinned with `features = ["fp16lib"]`). npm and direct +downloads are fixed by the same rebuilt release asset. Thanks @Vrakoss for the +precise report. + +### Fixed — Retroactive Salience Backfill: bounded promote + opt-out lever (#103) + +The consolidation-pass backfill promoted root-cause memories with an **uncapped** +`stability * 1.5` FSRS multiply, and a code comment wrongly claimed it was capped. +On a chronically-recurring failure this could inflate a cause's stability without +bound, distorting its review schedule. Backfill promotion is now bounded to +`MIN(stability * 1.5, stability + 365.0)` (the additive +365-day ceiling the +backfill module already computed but never applied), on both the auto-fire and the +manual `backfill` tool paths. Auto-fire remains **on by default** (it shipped and +was documented in v2.2.0) but is now disableable: set `VESTIGE_BACKFILL_AUTOFIRE=0` +(or `false`/`off`/`no`) to turn it off; the manual `backfill` tool + CLI remain +available regardless. Thanks @randomnimbus for the report and the initial patch. + +### Added — First-run guide (#83) + +A single `docs/GETTING-STARTED.md` that consolidates install, "what gets saved", +how to inspect your memory, and project scoping into one 30-minute first-run path, +linked from the README. + ## [2.2.0] - 2026-06-29 — "Retroactive Salience + Tool Consolidation" Three independent value streams land together as a coherent release. diff --git a/Cargo.lock b/Cargo.lock index 9574b25..90d70a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4897,7 +4897,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vestige-core" -version = "2.2.0" +version = "2.2.1" dependencies = [ "argon2", "blake3", @@ -4938,7 +4938,7 @@ dependencies = [ [[package]] name = "vestige-mcp" -version = "2.2.0" +version = "2.2.1" dependencies = [ "anyhow", "axum", diff --git a/Cargo.toml b/Cargo.toml index 3fa7b4f..9dffd26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ exclude = [ ] [workspace.package] -version = "2.2.0" +version = "2.2.1" edition = "2024" license = "AGPL-3.0-only" repository = "https://github.com/samvallad33/vestige" diff --git a/README.md b/README.md index 625f944..bca1ffc 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ vestige-mcp --version # prints the installed version vestige stats # prints your memory count (0 on a fresh install) ``` -That's the whole install. Per-agent guides (Cursor, VS Code, Windsurf, JetBrains, Xcode, OpenCode, Codex, Claude Desktop) are [here ↓](#-works-with-every-ai-agent). +That's the whole install. New here? The [**30-minute first-run guide**](docs/GETTING-STARTED.md) walks you from install to your first backward-reach: what gets saved (and what doesn't), how to inspect your own memory, and how to scope it per project. Per-agent guides (Cursor, VS Code, Windsurf, JetBrains, Xcode, OpenCode, Codex, Claude Desktop) are [here ↓](#-works-with-every-ai-agent). Now talk to your agent like it has a memory, because now it does: @@ -287,6 +287,7 @@ Registering the server exposes the tools; a short instruction tells the agent *w | | | |---|---| +| [**Getting Started**](docs/GETTING-STARTED.md) | Your first 30 minutes, start to finish | | [**FAQ**](docs/FAQ.md) | 30+ real questions answered | | [**The Science**](docs/SCIENCE.md) | Every feature, every paper | | [**Storage Modes**](docs/STORAGE.md) | Global · per-project · multi-instance | diff --git a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css b/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css deleted file mode 100644 index f5bdd49..0000000 --- a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.2.0 | 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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-outline-style:solid;--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-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-ease:initial}}}@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:"JetBrains Mono", "Fira Code", "SF Mono", monospace;--color-amber-400:oklch(82.8% .189 84.429);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--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-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--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);--color-void:#050510;--color-abyss:#0a0a1a;--color-deep:#10102a;--color-surface:#161638;--color-elevated:#1e1e4a;--color-subtle:#2a2a5e;--color-muted:#4a4a7a;--color-dim:#7a7aaa;--color-text:#e0e0ff;--color-bright:#fff;--color-synapse:#6366f1;--color-synapse-glow:#818cf8;--color-dream:#a855f7;--color-dream-glow:#c084fc;--color-memory:#3b82f6;--color-recall:#10b981;--color-decay:#ef4444;--color-warning:#f59e0b;--color-node-pattern:#ec4899}}@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}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.end\!{inset-inline-end:var(--spacing)!important}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:calc(var(--spacing) * 1)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-10{top:calc(var(--spacing) * 10)}.right-0{right:calc(var(--spacing) * 0)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-\[29px\]{left:-29px}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.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}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.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-\[-12px\]{margin-top:-12px}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-\[520px\]{height:520px}.h-\[560px\]{height:560px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[620px\]{max-height:620px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-\[240px\]{min-height:240px}.min-h-\[320px\]{min-height:320px}.min-h-\[520px\]{min-height:520px}.min-h-full{min-height:100%}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-96{width:calc(var(--spacing) * 96)}.w-\[3px\]{width:3px}.w-\[90\%\]{width:90%}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\[220px\]{max-width:220px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-\[2rem\]{min-width:2rem}.min-w-\[3\.5rem\]{min-width:3.5rem}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-separate{border-collapse:separate}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[fadeSlide_0\.35s_ease-out_both\]{animation:.35s ease-out both fadeSlide}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.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-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.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-\[2px\]{gap:2px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.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-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.\!border-decay\/20{border-color:#ef444433!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/20{border-color:color-mix(in oklab,var(--color-decay) 20%,transparent)!important}}.\!border-decay\/30{border-color:#ef44444d!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/30{border-color:color-mix(in oklab,var(--color-decay) 30%,transparent)!important}}.\!border-decay\/40{border-color:#ef444466!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/40{border-color:color-mix(in oklab,var(--color-decay) 40%,transparent)!important}}.\!border-dream\/20{border-color:#a855f733!important}@supports (color:color-mix(in lab,red,red)){.\!border-dream\/20{border-color:color-mix(in oklab,var(--color-dream) 20%,transparent)!important}}.\!border-synapse\/15{border-color:#6366f126!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/15{border-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)!important}}.\!border-synapse\/20{border-color:#6366f133!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/20{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)!important}}.\!border-synapse\/25{border-color:#6366f140!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/25{border-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)!important}}.\!border-synapse\/30{border-color:#6366f14d!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/30{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)!important}}.\!border-synapse\/40{border-color:#6366f166!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/40{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)!important}}.border-\[\#A33FFF\]\/40{border-color:#a33fff66}.border-decay\/20{border-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.border-decay\/20{border-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.border-dream-glow\/40{border-color:#c084fc66}@supports (color:color-mix(in lab,red,red)){.border-dream-glow\/40{border-color:color-mix(in oklab,var(--color-dream-glow) 40%,transparent)}}.border-dream\/10{border-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.border-dream\/10{border-color:color-mix(in oklab,var(--color-dream) 10%,transparent)}}.border-dream\/20{border-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.border-dream\/20{border-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.border-dream\/30{border-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.border-dream\/30{border-color:color-mix(in oklab,var(--color-dream) 30%,transparent)}}.border-dream\/40{border-color:#a855f766}@supports (color:color-mix(in lab,red,red)){.border-dream\/40{border-color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.border-dream\/50{border-color:#a855f780}@supports (color:color-mix(in lab,red,red)){.border-dream\/50{border-color:color-mix(in oklab,var(--color-dream) 50%,transparent)}}.border-recall\/30{border-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.border-recall\/30{border-color:color-mix(in oklab,var(--color-recall) 30%,transparent)}}.border-recall\/40{border-color:#10b98166}@supports (color:color-mix(in lab,red,red)){.border-recall\/40{border-color:color-mix(in oklab,var(--color-recall) 40%,transparent)}}.border-subtle\/15{border-color:#2a2a5e26}@supports (color:color-mix(in lab,red,red)){.border-subtle\/15{border-color:color-mix(in oklab,var(--color-subtle) 15%,transparent)}}.border-subtle\/20{border-color:#2a2a5e33}@supports (color:color-mix(in lab,red,red)){.border-subtle\/20{border-color:color-mix(in oklab,var(--color-subtle) 20%,transparent)}}.border-subtle\/30{border-color:#2a2a5e4d}@supports (color:color-mix(in lab,red,red)){.border-subtle\/30{border-color:color-mix(in oklab,var(--color-subtle) 30%,transparent)}}.border-synapse{border-color:var(--color-synapse)}.border-synapse\/5{border-color:#6366f10d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/5{border-color:color-mix(in oklab,var(--color-synapse) 5%,transparent)}}.border-synapse\/10{border-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.border-synapse\/10{border-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.border-synapse\/15{border-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.border-synapse\/15{border-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.border-synapse\/20{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.border-synapse\/20{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.border-synapse\/30{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/30{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.border-synapse\/40{border-color:#6366f166}@supports (color:color-mix(in lab,red,red)){.border-synapse\/40{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-warning\/40{border-color:#f59e0b66}@supports (color:color-mix(in lab,red,red)){.border-warning\/40{border-color:color-mix(in oklab,var(--color-warning) 40%,transparent)}}.border-warning\/50{border-color:#f59e0b80}@supports (color:color-mix(in lab,red,red)){.border-warning\/50{border-color:color-mix(in oklab,var(--color-warning) 50%,transparent)}}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.border-t-dream{border-top-color:var(--color-dream)}.border-t-synapse{border-top-color:var(--color-synapse)}.border-t-warning{border-top-color:var(--color-warning)}.bg-\[\#A33FFF\]{background-color:#a33fff}.bg-\[\#A33FFF\]\/10{background-color:#a33fff1a}.bg-amber-400{background-color:var(--color-amber-400)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-decay{background-color:var(--color-decay)}.bg-decay\/10{background-color:#ef44441a}@supports (color:color-mix(in lab,red,red)){.bg-decay\/10{background-color:color-mix(in oklab,var(--color-decay) 10%,transparent)}}.bg-decay\/20{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.bg-decay\/20{background-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.bg-decay\/\[0\.05\]{background-color:#ef44440d}@supports (color:color-mix(in lab,red,red)){.bg-decay\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-decay) 5%,transparent)}}.bg-deep{background-color:var(--color-deep)}.bg-deep\/40{background-color:#10102a66}@supports (color:color-mix(in lab,red,red)){.bg-deep\/40{background-color:color-mix(in oklab,var(--color-deep) 40%,transparent)}}.bg-deep\/60{background-color:#10102a99}@supports (color:color-mix(in lab,red,red)){.bg-deep\/60{background-color:color-mix(in oklab,var(--color-deep) 60%,transparent)}}.bg-dream{background-color:var(--color-dream)}.bg-dream\/5{background-color:#a855f70d}@supports (color:color-mix(in lab,red,red)){.bg-dream\/5{background-color:color-mix(in oklab,var(--color-dream) 5%,transparent)}}.bg-dream\/10{background-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.bg-dream\/10{background-color:color-mix(in oklab,var(--color-dream) 10%,transparent)}}.bg-dream\/15{background-color:#a855f726}@supports (color:color-mix(in lab,red,red)){.bg-dream\/15{background-color:color-mix(in oklab,var(--color-dream) 15%,transparent)}}.bg-dream\/20{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.bg-dream\/20{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-node-pattern{background-color:var(--color-node-pattern)}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-recall{background-color:var(--color-recall)}.bg-recall\/10{background-color:#10b9811a}@supports (color:color-mix(in lab,red,red)){.bg-recall\/10{background-color:color-mix(in oklab,var(--color-recall) 10%,transparent)}}.bg-recall\/15{background-color:#10b98126}@supports (color:color-mix(in lab,red,red)){.bg-recall\/15{background-color:color-mix(in oklab,var(--color-recall) 15%,transparent)}}.bg-recall\/20{background-color:#10b98133}@supports (color:color-mix(in lab,red,red)){.bg-recall\/20{background-color:color-mix(in oklab,var(--color-recall) 20%,transparent)}}.bg-synapse{background-color:var(--color-synapse)}.bg-synapse-glow{background-color:var(--color-synapse-glow)}.bg-synapse\/10{background-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/10{background-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.bg-synapse\/15{background-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/15{background-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.bg-synapse\/20{background-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/20{background-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.bg-synapse\/25{background-color:#6366f140}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/25{background-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)}}.bg-synapse\/70{background-color:#6366f1b3}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/70{background-color:color-mix(in oklab,var(--color-synapse) 70%,transparent)}}.bg-transparent{background-color:#0000}.bg-void{background-color:var(--color-void)}.bg-void\/60{background-color:#05051099}@supports (color:color-mix(in lab,red,red)){.bg-void\/60{background-color:color-mix(in oklab,var(--color-void) 60%,transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning\/5{background-color:#f59e0b0d}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/20{background-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.bg-white\/\[0\.06\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-white) 6%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-dream{--tw-gradient-from:var(--color-dream);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-synapse{--tw-gradient-to:var(--color-synapse);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.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-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.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-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-20{padding-block:calc(var(--spacing) * 20)}.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-8{padding-top:calc(var(--spacing) * 8)}.pt-\[10vh\]{padding-top:10vh}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.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-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--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))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.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-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#E4C8FF\]{color:#e4c8ff}.text-amber-400{color:var(--color-amber-400)}.text-bright{color:var(--color-bright)}.text-decay{color:var(--color-decay)}.text-decay\/60{color:#ef444499}@supports (color:color-mix(in lab,red,red)){.text-decay\/60{color:color-mix(in oklab,var(--color-decay) 60%,transparent)}}.text-dim{color:var(--color-dim)}.text-dream{color:var(--color-dream)}.text-dream-glow{color:var(--color-dream-glow)}.text-dream\/40{color:#a855f766}@supports (color:color-mix(in lab,red,red)){.text-dream\/40{color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.text-dream\/80{color:#a855f7cc}@supports (color:color-mix(in lab,red,red)){.text-dream\/80{color:color-mix(in oklab,var(--color-dream) 80%,transparent)}}.text-memory{color:var(--color-memory)}.text-muted{color:var(--color-muted)}.text-muted\/50{color:#4a4a7a80}@supports (color:color-mix(in lab,red,red)){.text-muted\/50{color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.text-muted\/60{color:#4a4a7a99}@supports (color:color-mix(in lab,red,red)){.text-muted\/60{color:color-mix(in oklab,var(--color-muted) 60%,transparent)}}.text-node-pattern{color:var(--color-node-pattern)}.text-purple-400{color:var(--color-purple-400)}.text-recall{color:var(--color-recall)}.text-subtle{color:var(--color-subtle)}.text-synapse{color:var(--color-synapse)}.text-synapse-glow{color:var(--color-synapse-glow)}.text-text{color:var(--color-text)}.text-text\/80{color:#e0e0ffcc}@supports (color:color-mix(in lab,red,red)){.text-text\/80{color:color-mix(in oklab,var(--color-text) 80%,transparent)}}.text-warning{color:var(--color-warning)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.accent-synapse{accent-color:var(--color-synapse)}.accent-synapse-glow{accent-color:var(--color-synapse-glow)}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-100{opacity:1}.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\!{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(239\,68\,68\,0\.7\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#ef4444b3);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f126);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.18\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f12e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(163\,63\,255\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#a33fff26);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(99\,102\,241\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#6366f14d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(168\,85\,247\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#a855f74d);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-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,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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-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)}.shadow-synapse\/10{--tw-shadow-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-synapse\/20{--tw-shadow-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-dream-glow{--tw-ring-color:var(--color-dream-glow)}.ring-dream\/60{--tw-ring-color:#a855f799}@supports (color:color-mix(in lab,red,red)){.ring-dream\/60{--tw-ring-color:color-mix(in oklab, var(--color-dream) 60%, transparent)}}.ring-recall\/30{--tw-ring-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.ring-recall\/30{--tw-ring-color:color-mix(in oklab, var(--color-recall) 30%, transparent)}}.ring-synapse\/60{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.ring-synapse\/60{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.filter{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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,)}.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,)}.backdrop-filter{-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,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-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;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-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-muted::placeholder{color:var(--color-muted)}@media(hover:hover){.hover\:z-10:hover{z-index:10}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-\[1\.03\]:hover{scale:1.03}.hover\:\!border-synapse\/30:hover{border-color:#6366f14d!important}@supports (color:color-mix(in lab,red,red)){.hover\:\!border-synapse\/30:hover{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)!important}}.hover\:border-synapse\/20:hover{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/20:hover{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.hover\:border-synapse\/30:hover{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/30:hover{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:border-synapse\/50:hover{border-color:#6366f180}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/50:hover{border-color:color-mix(in oklab,var(--color-synapse) 50%,transparent)}}.hover\:bg-decay\/20:hover{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/20:hover{background-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.hover\:bg-decay\/30:hover{background-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/30:hover{background-color:color-mix(in oklab,var(--color-decay) 30%,transparent)}}.hover\:bg-dream\/20:hover{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/20:hover{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.hover\:bg-dream\/30:hover{background-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/30:hover{background-color:color-mix(in oklab,var(--color-dream) 30%,transparent)}}.hover\:bg-purple-500\/30:hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-purple-500\/30:hover{background-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.hover\:bg-recall\/30:hover{background-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-recall\/30:hover{background-color:color-mix(in oklab,var(--color-recall) 30%,transparent)}}.hover\:bg-synapse\/30:hover{background-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-synapse\/30:hover{background-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:bg-warning\/30:hover{background-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-warning\/30:hover{background-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.hover\:bg-white\/\[0\.03\]:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.03\]:hover{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.hover\:bg-white\/\[0\.04\]:hover{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.04\]:hover{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.hover\:text-bright:hover{color:var(--color-bright)}.hover\:text-dim:hover{color:var(--color-dim)}.hover\:text-synapse-glow:hover{color:var(--color-synapse-glow)}.hover\:text-text:hover{color:var(--color-text)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:\!border-synapse\/40:focus{border-color:#6366f166!important}@supports (color:color-mix(in lab,red,red)){.focus\:\!border-synapse\/40:focus{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)!important}}.focus\:border-dream\/40:focus{border-color:#a855f766}@supports (color:color-mix(in lab,red,red)){.focus\:border-dream\/40:focus{border-color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.focus\:border-synapse\/40:focus{border-color:#6366f166}@supports (color:color-mix(in lab,red,red)){.focus\:border-synapse\/40:focus{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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-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-synapse-glow:focus{--tw-ring-color:var(--color-synapse-glow)}.focus\:ring-synapse\/20:focus{--tw-ring-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.focus\:ring-synapse\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 20%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--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-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:#c084fc99}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-dream-glow) 60%, transparent)}}.focus-visible\:ring-recall\/60:focus-visible{--tw-ring-color:#10b98199}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-recall\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-recall) 60%, transparent)}}.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:block{display:block}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline-flex{display:inline-flex}.md\:min-w-\[340px\]{min-width:340px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.md\:flex-row{flex-direction:row}.md\:pt-\[15vh\]{padding-top:15vh}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}}@media(min-width:64rem){.lg\:block{display:block}.lg\:inline-flex{display:inline-flex}.lg\:w-56{width:calc(var(--spacing) * 56)}.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\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.lg\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}.lg\:grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px}.lg\:grid-cols-\[minmax\(0\,1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}}.\[\&\:\:-webkit-slider-thumb\]\:h-3::-webkit-slider-thumb{height:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:w-3::-webkit-slider-thumb{width:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-synapse-glow::-webkit-slider-thumb{background-color:var(--color-synapse-glow)}.\[\&\:\:-webkit-slider-thumb\]\:shadow-\[0_0_8px_rgba\(129\,140\,248\,0\.4\)\]::-webkit-slider-thumb{--tw-shadow:0 0 8px var(--tw-shadow-color,#818cf866);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}html{background:var(--color-void);color:var(--color-text);font-family:var(--font-mono)}body{min-height:100vh;margin:0;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}.glass{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#16163873;border:1px solid #6366f114;box-shadow:inset 0 1px #ffffff08,0 4px 24px #0000004d}.glass-subtle{-webkit-backdrop-filter:blur(12px)saturate(150%);background:#10102a66;border:1px solid #6366f10f;box-shadow:inset 0 1px #ffffff05,0 2px 12px #0003}.glass-sidebar{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1a99;border-right:1px solid #6366f11a;box-shadow:inset -1px 0 #ffffff05,4px 0 24px #0000004d}.glass-panel{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1acc;border:1px solid #6366f11a;box-shadow:inset 0 1px #ffffff08,0 8px 32px #0006}.glow-synapse{box-shadow:0 0 20px #6366f14d,0 0 60px #6366f11a}.glow-dream{box-shadow:0 0 20px #a855f74d,0 0 60px #a855f71a}.glow-memory{box-shadow:0 0 20px #3b82f64d,0 0 60px #3b82f61a}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes orb-float-1{0%,to{transform:translate(0)scale(1)}25%{transform:translate(60px,-40px)scale(1.1)}50%{transform:translate(-30px,-80px)scale(.95)}75%{transform:translate(-60px,-20px)scale(1.05)}}@keyframes orb-float-2{0%,to{transform:translate(0)scale(1)}25%{transform:translate(-50px,30px)scale(1.08)}50%{transform:translate(40px,60px)scale(.92)}75%{transform:translate(20px,-40px)scale(1.03)}}@keyframes orb-float-3{0%,to{transform:translate(0)scale(1)}25%{transform:translate(30px,50px)scale(1.05)}50%{transform:translate(-60px,20px)scale(.98)}75%{transform:translate(40px,-30px)scale(1.1)}}.ambient-orb{filter:blur(80px);pointer-events:none;z-index:0;opacity:.35;border-radius:50%;position:fixed}.ambient-orb-1{background:radial-gradient(circle,#a855f766,#0000 70%);width:400px;height:400px;animation:20s ease-in-out infinite orb-float-1;top:-10%;right:-5%}.ambient-orb-2{background:radial-gradient(circle,#6366f159,#0000 70%);width:350px;height:350px;animation:25s ease-in-out infinite orb-float-2;bottom:-15%;left:-5%}.ambient-orb-3{background:radial-gradient(circle,#f59e0b33,#0000 70%);width:300px;height:300px;animation:22s ease-in-out infinite orb-float-3;top:40%;left:40%}.nav-active-border{position:relative}.nav-active-border:before{content:"";background:linear-gradient(180deg,var(--color-synapse),var(--color-dream),var(--color-synapse));background-size:100% 200%;border-radius:1px;width:2px;animation:3s ease-in-out infinite gradient-shift;position:absolute;top:4px;bottom:4px;left:0}@keyframes gradient-shift{0%,to{background-position:0 0}50%{background-position:0 100%}}@keyframes float{0%,to{transform:translateY(0)translate(0)}25%{transform:translateY(-10px)translate(5px)}50%{transform:translateY(-5px)translate(-5px)}75%{transform:translateY(-15px)translate(3px)}}.retention-critical{color:var(--color-decay)}.retention-low{color:var(--color-warning)}.retention-good{color:var(--color-recall)}.retention-strong{color:var(--color-synapse)}@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-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-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-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}.toast-layer.svelte-pry2ep{position:fixed;z-index:60;pointer-events:none;display:flex;flex-direction:column;gap:.5rem;right:1.25rem;bottom:1.25rem;max-width:22rem;width:calc(100vw - 2.5rem)}@media(max-width:768px){.toast-layer.svelte-pry2ep{right:.75rem;left:.75rem;bottom:auto;top:5.25rem;max-width:none;width:auto;align-items:stretch}}.toast-item.svelte-pry2ep{pointer-events:auto;position:relative;display:flex;gap:.75rem;align-items:stretch;text-align:left;font:inherit;color:inherit;background:#0c0e16b8;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.06);border-radius:.75rem;padding:.75rem .9rem .75rem .5rem;overflow:hidden;box-shadow:0 10px 40px -12px #000c,0 0 22px -6px var(--toast-color);cursor:pointer;animation:svelte-pry2ep-toast-in .32s cubic-bezier(.16,1,.3,1);transform-origin:right center;transition:transform .15s ease,box-shadow .15s ease}.toast-item.svelte-pry2ep:hover{transform:translateY(-1px) scale(1.015);box-shadow:0 14px 48px -12px #000000d9,0 0 32px -4px var(--toast-color)}.toast-item.svelte-pry2ep:focus-visible{outline:1px solid var(--toast-color);outline-offset:2px}.toast-accent.svelte-pry2ep{width:3px;border-radius:2px;background:var(--toast-color);box-shadow:0 0 10px var(--toast-color);flex-shrink:0}.toast-body.svelte-pry2ep{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.toast-head.svelte-pry2ep{display:flex;align-items:center;gap:.5rem}.toast-icon.svelte-pry2ep{color:var(--toast-color);font-size:.95rem;text-shadow:0 0 8px var(--toast-color);line-height:1;width:1rem;display:inline-flex;justify-content:center}.toast-title.svelte-pry2ep{color:#f5f5fa;font-size:.82rem;font-weight:600;letter-spacing:.01em}.toast-sub.svelte-pry2ep{color:#b0b6c4;font-size:.74rem;line-height:1.35;padding-left:1.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-progress.svelte-pry2ep{position:absolute;left:0;bottom:0;height:2px;width:100%;background:#ffffff0a}.toast-progress-fill.svelte-pry2ep{height:100%;background:var(--toast-color);opacity:.55;transform-origin:left center;animation:svelte-pry2ep-toast-progress var(--toast-dwell) linear forwards}.toast-item.svelte-pry2ep:hover .toast-progress-fill:where(.svelte-pry2ep),.toast-item.svelte-pry2ep:focus-visible .toast-progress-fill:where(.svelte-pry2ep){animation-play-state:paused}@keyframes svelte-pry2ep-toast-in{0%{opacity:0;transform:translate(24px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@media(max-width:768px){.toast-item.svelte-pry2ep{transform-origin:top center;animation:svelte-pry2ep-toast-in-mobile .3s cubic-bezier(.16,1,.3,1)}}@keyframes svelte-pry2ep-toast-in-mobile{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes svelte-pry2ep-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast-item.svelte-pry2ep{animation:none}.toast-progress-fill.svelte-pry2ep{animation:none;transform:scaleX(.5)}}.strip-item.svelte-1kk3799{display:inline-flex;align-items:center;gap:.4rem;padding:0 .75rem;white-space:nowrap;flex-shrink:0}.strip-divider.svelte-1kk3799{width:1px;height:14px;background:#6366f11f;flex-shrink:0}.ambient-strip.ambient-flash.svelte-1kk3799{background:linear-gradient(90deg,#ef444414,#ef444400 70%),#0006;border-bottom-color:#ef444459;transition:background .3s ease,border-color .3s ease}@keyframes svelte-1kk3799-ping-slow{0%{transform:scale(1);opacity:.8}80%,to{transform:scale(2);opacity:0}}.animate-ping-slow{animation:svelte-1kk3799-ping-slow 2.2s cubic-bezier(0,0,.2,1) infinite}@media(prefers-reduced-motion:reduce){.ambient-strip.svelte-1kk3799 .animate-ping,.ambient-strip.svelte-1kk3799 .animate-ping-slow,.ambient-strip.svelte-1kk3799 .animate-pulse{animation:none!important}}.verdict-bar.svelte-1j425e6{border-bottom:1px solid rgba(255,255,255,.06);background:#080912b8;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 6px 24px #0000002e}.verdict-summary.svelte-1j425e6{width:100%;min-height:2.75rem;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.55rem 1rem;color:var(--color-text);text-align:left;font:inherit}.sr-only.svelte-1j425e6{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.label.svelte-1j425e6,.field-label.svelte-1j425e6,.appeal-row.svelte-1j425e6>span:where(.svelte-1j425e6){color:var(--color-dim);font-size:.68rem;text-transform:uppercase;letter-spacing:0}.levels.svelte-1j425e6{display:flex;align-items:center;gap:.25rem}.levels.svelte-1j425e6 span:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.08);border-radius:.35rem;padding:.18rem .38rem;color:var(--color-muted);font-size:.64rem;line-height:1}.levels.svelte-1j425e6 span.active:where(.svelte-1j425e6){color:var(--color-bright);border-color:var(--verdict-color);background:color-mix(in srgb,var(--verdict-color) 18%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--verdict-color) 28%,transparent)}.summary-text.svelte-1j425e6{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--color-dim)}.when.svelte-1j425e6{color:var(--color-muted);font-size:.68rem}.receipt.svelte-1j425e6{margin:0 1rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:.5rem;background:#0a0a1ac7;padding:.85rem}.receipt-grid.svelte-1j425e6{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(10rem,.8fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:.85rem}.receipt.svelte-1j425e6 p:where(.svelte-1j425e6),.receipt.svelte-1j425e6 li:where(.svelte-1j425e6){margin:.25rem 0 0;color:var(--color-text);font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}.receipt.svelte-1j425e6 ul:where(.svelte-1j425e6){margin:.25rem 0 0;padding-left:1rem}.appeal-row.svelte-1j425e6{display:flex;align-items:center;gap:.4rem;margin-top:.85rem;flex-wrap:wrap}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6),.appeal-row.svelte-1j425e6 p:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.1);border-radius:.4rem;padding:.35rem .6rem;color:var(--color-text);background:#ffffff0a;font-size:.72rem;margin:0}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):hover:not(:disabled),.verdict-summary.svelte-1j425e6:hover{background:#ffffff0d}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):disabled{opacity:.55;cursor:wait}.tone-pass.svelte-1j425e6,.tone-note.svelte-1j425e6{--verdict-color: #10b981}.tone-caution.svelte-1j425e6{--verdict-color: #f59e0b}.tone-veto.svelte-1j425e6{--verdict-color: #ef4444}.tone-appealed.svelte-1j425e6{--verdict-color: #818cf8}@media(max-width:900px){.verdict-summary.svelte-1j425e6{grid-template-columns:auto minmax(0,1fr) auto}.levels.svelte-1j425e6{grid-column:1 / -1;order:4;overflow-x:auto;padding-bottom:.1rem}.receipt-grid.svelte-1j425e6{grid-template-columns:1fr}}.theme-toggle.svelte-1cmi4dh{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:8px;background:#6366f10f;border:1px solid rgba(99,102,241,.14);color:var(--color-text);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.theme-toggle.svelte-1cmi4dh:hover{background:#6366f124;border-color:#6366f14d;color:var(--color-bright)}.theme-toggle.svelte-1cmi4dh:active{transform:scale(.94)}.theme-toggle.svelte-1cmi4dh:focus-visible{outline:1px solid var(--color-synapse);outline-offset:2px}.icon-wrap.svelte-1cmi4dh{position:relative;width:18px;height:18px;display:inline-block}.icon.svelte-1cmi4dh{position:absolute;top:0;right:0;bottom:0;left:0;width:18px;height:18px;opacity:0;transform:scale(.7) rotate(-30deg);transition:opacity .2s ease,transform .2s cubic-bezier(.16,1,.3,1);pointer-events:none}.icon.active.svelte-1cmi4dh{opacity:1;transform:scale(1) rotate(0)}.theme-toggle[data-mode=dark].svelte-1cmi4dh{color:var(--color-synapse-glow, #818cf8)}.theme-toggle[data-mode=light].svelte-1cmi4dh{color:var(--color-warning, #f59e0b)}.theme-toggle[data-mode=auto].svelte-1cmi4dh{color:var(--color-dream-glow, #c084fc)}@media(prefers-reduced-motion:reduce){.theme-toggle.svelte-1cmi4dh,.icon.svelte-1cmi4dh{transition:none}}.safe-bottom.svelte-12qhfyh{padding-bottom:env(safe-area-inset-bottom,0px)}@keyframes svelte-12qhfyh-page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-page-in.svelte-12qhfyh{animation:svelte-12qhfyh-page-in .2s ease-out} diff --git a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.br b/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.br deleted file mode 100644 index ace1ff437589234eefa27803dc60b61a0f2af0b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10347 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 J4!!Y4$1lz*BLM&a diff --git a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.gz b/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.gz deleted file mode 100644 index 468dbeb3dd93dac70b6caa10ccaabedab36faa9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12350 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 diff --git a/apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css b/apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css new file mode 100644 index 0000000..ed2360d --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css @@ -0,0 +1 @@ +/*! tailwindcss v4.2.0 | 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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-outline-style:solid;--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-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-ease:initial;--angle:0deg;--shine:0%}}}@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:"JetBrains Mono", "Fira Code", "SF Mono", monospace;--color-amber-400:oklch(82.8% .189 84.429);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--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-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--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-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--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);--color-void:#050510;--color-abyss:#0a0a1a;--color-deep:#10102a;--color-surface:#161638;--color-elevated:#1e1e4a;--color-subtle:#2a2a5e;--color-muted:#4a4a7a;--color-dim:#7a7aaa;--color-text:#e0e0ff;--color-bright:#fff;--color-synapse:#6366f1;--color-synapse-glow:#818cf8;--color-dream:#a855f7;--color-dream-glow:#c084fc;--color-memory:#3b82f6;--color-recall:#10b981;--color-decay:#ef4444;--color-warning:#f59e0b;--color-node-pattern:#ec4899}}@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}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.end\!{inset-inline-end:var(--spacing)!important}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:calc(var(--spacing) * 1)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-10{top:calc(var(--spacing) * 10)}.right-0{right:calc(var(--spacing) * 0)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-\[29px\]{left:-29px}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3\.5{left:calc(var(--spacing) * 3.5)}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.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}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.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-\[-12px\]{margin-top:-12px}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.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-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-\[520px\]{height:520px}.h-\[560px\]{height:560px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[620px\]{max-height:620px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-\[240px\]{min-height:240px}.min-h-\[320px\]{min-height:320px}.min-h-\[520px\]{min-height:520px}.min-h-full{min-height:100%}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-96{width:calc(var(--spacing) * 96)}.w-\[3px\]{width:3px}.w-\[90\%\]{width:90%}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\[220px\]{max-width:220px}.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)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-\[2rem\]{min-width:2rem}.min-w-\[3\.5rem\]{min-width:3.5rem}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-separate{border-collapse:separate}.-translate-x-1\/2{--tw-translate-x: -50% ;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)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-150{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[fadeSlide_0\.35s_ease-out_both\]{animation:.35s ease-out both fadeSlide}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.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-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.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-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.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-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[2px\]{gap:2px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.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-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.\!border-decay\/20{border-color:#ef444433!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/20{border-color:color-mix(in oklab,var(--color-decay) 20%,transparent)!important}}.\!border-decay\/30{border-color:#ef44444d!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/30{border-color:color-mix(in oklab,var(--color-decay) 30%,transparent)!important}}.\!border-decay\/40{border-color:#ef444466!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/40{border-color:color-mix(in oklab,var(--color-decay) 40%,transparent)!important}}.\!border-dream\/20{border-color:#a855f733!important}@supports (color:color-mix(in lab,red,red)){.\!border-dream\/20{border-color:color-mix(in oklab,var(--color-dream) 20%,transparent)!important}}.\!border-synapse\/15{border-color:#6366f126!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/15{border-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)!important}}.\!border-synapse\/20{border-color:#6366f133!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/20{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)!important}}.\!border-synapse\/25{border-color:#6366f140!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/25{border-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)!important}}.\!border-synapse\/30{border-color:#6366f14d!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/30{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)!important}}.\!border-synapse\/40{border-color:#6366f166!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/40{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)!important}}.border-\[\#A33FFF\]\/40{border-color:#a33fff66}.border-decay\/20{border-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.border-decay\/20{border-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.border-dream-glow\/40{border-color:#c084fc66}@supports (color:color-mix(in lab,red,red)){.border-dream-glow\/40{border-color:color-mix(in oklab,var(--color-dream-glow) 40%,transparent)}}.border-dream\/10{border-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.border-dream\/10{border-color:color-mix(in oklab,var(--color-dream) 10%,transparent)}}.border-dream\/20{border-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.border-dream\/20{border-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.border-dream\/30{border-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.border-dream\/30{border-color:color-mix(in oklab,var(--color-dream) 30%,transparent)}}.border-dream\/40{border-color:#a855f766}@supports (color:color-mix(in lab,red,red)){.border-dream\/40{border-color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.border-dream\/50{border-color:#a855f780}@supports (color:color-mix(in lab,red,red)){.border-dream\/50{border-color:color-mix(in oklab,var(--color-dream) 50%,transparent)}}.border-recall\/25{border-color:#10b98140}@supports (color:color-mix(in lab,red,red)){.border-recall\/25{border-color:color-mix(in oklab,var(--color-recall) 25%,transparent)}}.border-recall\/30{border-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.border-recall\/30{border-color:color-mix(in oklab,var(--color-recall) 30%,transparent)}}.border-recall\/40{border-color:#10b98166}@supports (color:color-mix(in lab,red,red)){.border-recall\/40{border-color:color-mix(in oklab,var(--color-recall) 40%,transparent)}}.border-subtle\/15{border-color:#2a2a5e26}@supports (color:color-mix(in lab,red,red)){.border-subtle\/15{border-color:color-mix(in oklab,var(--color-subtle) 15%,transparent)}}.border-subtle\/20{border-color:#2a2a5e33}@supports (color:color-mix(in lab,red,red)){.border-subtle\/20{border-color:color-mix(in oklab,var(--color-subtle) 20%,transparent)}}.border-subtle\/30{border-color:#2a2a5e4d}@supports (color:color-mix(in lab,red,red)){.border-subtle\/30{border-color:color-mix(in oklab,var(--color-subtle) 30%,transparent)}}.border-synapse{border-color:var(--color-synapse)}.border-synapse\/5{border-color:#6366f10d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/5{border-color:color-mix(in oklab,var(--color-synapse) 5%,transparent)}}.border-synapse\/10{border-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.border-synapse\/10{border-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.border-synapse\/15{border-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.border-synapse\/15{border-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.border-synapse\/20{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.border-synapse\/20{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.border-synapse\/25{border-color:#6366f140}@supports (color:color-mix(in lab,red,red)){.border-synapse\/25{border-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)}}.border-synapse\/30{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/30{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.border-synapse\/40{border-color:#6366f166}@supports (color:color-mix(in lab,red,red)){.border-synapse\/40{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-warning\/40{border-color:#f59e0b66}@supports (color:color-mix(in lab,red,red)){.border-warning\/40{border-color:color-mix(in oklab,var(--color-warning) 40%,transparent)}}.border-warning\/50{border-color:#f59e0b80}@supports (color:color-mix(in lab,red,red)){.border-warning\/50{border-color:color-mix(in oklab,var(--color-warning) 50%,transparent)}}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.border-t-dream{border-top-color:var(--color-dream)}.border-t-synapse{border-top-color:var(--color-synapse)}.border-t-warning{border-top-color:var(--color-warning)}.bg-\[\#A33FFF\]{background-color:#a33fff}.bg-\[\#A33FFF\]\/10{background-color:#a33fff1a}.bg-amber-400{background-color:var(--color-amber-400)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-decay{background-color:var(--color-decay)}.bg-decay\/10{background-color:#ef44441a}@supports (color:color-mix(in lab,red,red)){.bg-decay\/10{background-color:color-mix(in oklab,var(--color-decay) 10%,transparent)}}.bg-decay\/20{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.bg-decay\/20{background-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.bg-decay\/\[0\.05\]{background-color:#ef44440d}@supports (color:color-mix(in lab,red,red)){.bg-decay\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-decay) 5%,transparent)}}.bg-deep{background-color:var(--color-deep)}.bg-deep\/40{background-color:#10102a66}@supports (color:color-mix(in lab,red,red)){.bg-deep\/40{background-color:color-mix(in oklab,var(--color-deep) 40%,transparent)}}.bg-deep\/60{background-color:#10102a99}@supports (color:color-mix(in lab,red,red)){.bg-deep\/60{background-color:color-mix(in oklab,var(--color-deep) 60%,transparent)}}.bg-dream{background-color:var(--color-dream)}.bg-dream\/5{background-color:#a855f70d}@supports (color:color-mix(in lab,red,red)){.bg-dream\/5{background-color:color-mix(in oklab,var(--color-dream) 5%,transparent)}}.bg-dream\/10{background-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.bg-dream\/10{background-color:color-mix(in oklab,var(--color-dream) 10%,transparent)}}.bg-dream\/15{background-color:#a855f726}@supports (color:color-mix(in lab,red,red)){.bg-dream\/15{background-color:color-mix(in oklab,var(--color-dream) 15%,transparent)}}.bg-dream\/20{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.bg-dream\/20{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-node-pattern{background-color:var(--color-node-pattern)}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-recall{background-color:var(--color-recall)}.bg-recall\/10{background-color:#10b9811a}@supports (color:color-mix(in lab,red,red)){.bg-recall\/10{background-color:color-mix(in oklab,var(--color-recall) 10%,transparent)}}.bg-recall\/15{background-color:#10b98126}@supports (color:color-mix(in lab,red,red)){.bg-recall\/15{background-color:color-mix(in oklab,var(--color-recall) 15%,transparent)}}.bg-recall\/20{background-color:#10b98133}@supports (color:color-mix(in lab,red,red)){.bg-recall\/20{background-color:color-mix(in oklab,var(--color-recall) 20%,transparent)}}.bg-synapse{background-color:var(--color-synapse)}.bg-synapse-glow{background-color:var(--color-synapse-glow)}.bg-synapse\/10{background-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/10{background-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.bg-synapse\/15{background-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/15{background-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.bg-synapse\/20{background-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/20{background-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.bg-synapse\/25{background-color:#6366f140}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/25{background-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)}}.bg-synapse\/70{background-color:#6366f1b3}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/70{background-color:color-mix(in oklab,var(--color-synapse) 70%,transparent)}}.bg-transparent{background-color:#0000}.bg-void{background-color:var(--color-void)}.bg-void\/60{background-color:#05051099}@supports (color:color-mix(in lab,red,red)){.bg-void\/60{background-color:color-mix(in oklab,var(--color-void) 60%,transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning\/5{background-color:#f59e0b0d}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/20{background-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.bg-white\/\[0\.05\]{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\/\[0\.06\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-white) 6%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-dream{--tw-gradient-from:var(--color-dream);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-synapse{--tw-gradient-to:var(--color-synapse);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.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-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.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-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.\[padding-top\:max\(0\.75rem\,env\(safe-area-inset-top\)\)\]{padding-top:max(.75rem,env(safe-area-inset-top))}.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-8{padding-top:calc(var(--spacing) * 8)}.pt-\[10vh\]{padding-top:10vh}.\[padding-right\:max\(0\.75rem\,env\(safe-area-inset-right\)\)\]{padding-right:max(.75rem,env(safe-area-inset-right))}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.\[padding-left\:max\(0\.75rem\,env\(safe-area-inset-left\)\)\]{padding-left:max(.75rem,env(safe-area-inset-left))}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.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-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--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))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#E4C8FF\]{color:#e4c8ff}.text-amber-400{color:var(--color-amber-400)}.text-bright{color:var(--color-bright)}.text-decay{color:var(--color-decay)}.text-decay\/60{color:#ef444499}@supports (color:color-mix(in lab,red,red)){.text-decay\/60{color:color-mix(in oklab,var(--color-decay) 60%,transparent)}}.text-decay\/80{color:#ef4444cc}@supports (color:color-mix(in lab,red,red)){.text-decay\/80{color:color-mix(in oklab,var(--color-decay) 80%,transparent)}}.text-dim{color:var(--color-dim)}.text-dim\/70{color:#7a7aaab3}@supports (color:color-mix(in lab,red,red)){.text-dim\/70{color:color-mix(in oklab,var(--color-dim) 70%,transparent)}}.text-dream{color:var(--color-dream)}.text-dream-glow{color:var(--color-dream-glow)}.text-dream\/40{color:#a855f766}@supports (color:color-mix(in lab,red,red)){.text-dream\/40{color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.text-dream\/50{color:#a855f780}@supports (color:color-mix(in lab,red,red)){.text-dream\/50{color:color-mix(in oklab,var(--color-dream) 50%,transparent)}}.text-dream\/80{color:#a855f7cc}@supports (color:color-mix(in lab,red,red)){.text-dream\/80{color:color-mix(in oklab,var(--color-dream) 80%,transparent)}}.text-memory{color:var(--color-memory)}.text-muted{color:var(--color-muted)}.text-muted\/50{color:#4a4a7a80}@supports (color:color-mix(in lab,red,red)){.text-muted\/50{color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.text-muted\/60{color:#4a4a7a99}@supports (color:color-mix(in lab,red,red)){.text-muted\/60{color:color-mix(in oklab,var(--color-muted) 60%,transparent)}}.text-node-pattern{color:var(--color-node-pattern)}.text-purple-400{color:var(--color-purple-400)}.text-recall{color:var(--color-recall)}.text-subtle{color:var(--color-subtle)}.text-synapse{color:var(--color-synapse)}.text-synapse-glow{color:var(--color-synapse-glow)}.text-text{color:var(--color-text)}.text-text\/80{color:#e0e0ffcc}@supports (color:color-mix(in lab,red,red)){.text-text\/80{color:color-mix(in oklab,var(--color-text) 80%,transparent)}}.text-warning{color:var(--color-warning)}.text-warning\/60{color:#f59e0b99}@supports (color:color-mix(in lab,red,red)){.text-warning\/60{color:color-mix(in oklab,var(--color-warning) 60%,transparent)}}.text-warning\/70{color:#f59e0bb3}@supports (color:color-mix(in lab,red,red)){.text-warning\/70{color:color-mix(in oklab,var(--color-warning) 70%,transparent)}}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.accent-synapse{accent-color:var(--color-synapse)}.accent-synapse-glow{accent-color:var(--color-synapse-glow)}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.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\!{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(239\,68\,68\,0\.7\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#ef4444b3);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f126);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.18\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f12e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(163\,63\,255\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#a33fff26);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_-4px_var\(--color-synapse-glow\)\]{--tw-shadow:0 0 16px -4px var(--tw-shadow-color,var(--color-synapse-glow));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(99\,102\,241\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#6366f14d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(168\,85\,247\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#a855f74d);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-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,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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-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)}.shadow-synapse\/10{--tw-shadow-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-synapse\/20{--tw-shadow-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-dream-glow{--tw-ring-color:var(--color-dream-glow)}.ring-dream\/60{--tw-ring-color:#a855f799}@supports (color:color-mix(in lab,red,red)){.ring-dream\/60{--tw-ring-color:color-mix(in oklab, var(--color-dream) 60%, transparent)}}.ring-recall\/30{--tw-ring-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.ring-recall\/30{--tw-ring-color:color-mix(in oklab, var(--color-recall) 30%, transparent)}}.ring-synapse\/60{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.ring-synapse\/60{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.filter{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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,)}.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,)}.backdrop-filter{-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,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-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;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-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.placeholder\:text-muted::placeholder{color:var(--color-muted)}@media(hover:hover){.hover\:z-10:hover{z-index:10}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-\[1\.03\]:hover{scale:1.03}.hover\:rotate-180:hover{rotate:180deg}.hover\:\!border-synapse\/30:hover{border-color:#6366f14d!important}@supports (color:color-mix(in lab,red,red)){.hover\:\!border-synapse\/30:hover{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)!important}}.hover\:border-synapse\/20:hover{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/20:hover{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.hover\:border-synapse\/30:hover{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/30:hover{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:border-synapse\/50:hover{border-color:#6366f180}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/50:hover{border-color:color-mix(in oklab,var(--color-synapse) 50%,transparent)}}.hover\:bg-decay\/20:hover{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/20:hover{background-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.hover\:bg-decay\/30:hover{background-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/30:hover{background-color:color-mix(in oklab,var(--color-decay) 30%,transparent)}}.hover\:bg-decay\/\[0\.06\]:hover{background-color:#ef44440f}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/\[0\.06\]:hover{background-color:color-mix(in oklab,var(--color-decay) 6%,transparent)}}.hover\:bg-dream\/20:hover{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/20:hover{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.hover\:bg-dream\/30:hover{background-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/30:hover{background-color:color-mix(in oklab,var(--color-dream) 30%,transparent)}}.hover\:bg-purple-500\/30:hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-purple-500\/30:hover{background-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.hover\:bg-recall\/30:hover{background-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-recall\/30:hover{background-color:color-mix(in oklab,var(--color-recall) 30%,transparent)}}.hover\:bg-synapse\/30:hover{background-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-synapse\/30:hover{background-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:bg-warning\/30:hover{background-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-warning\/30:hover{background-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.hover\:bg-white\/\[0\.03\]:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.03\]:hover{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.hover\:bg-white\/\[0\.04\]:hover{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.04\]:hover{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.hover\:text-bright:hover{color:var(--color-bright)}.hover\:text-dim:hover{color:var(--color-dim)}.hover\:text-synapse-glow:hover{color:var(--color-synapse-glow)}.hover\:text-text:hover{color:var(--color-text)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:\!border-synapse\/40:focus{border-color:#6366f166!important}@supports (color:color-mix(in lab,red,red)){.focus\:\!border-synapse\/40:focus{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)!important}}.focus\:border-dream\/40:focus{border-color:#a855f766}@supports (color:color-mix(in lab,red,red)){.focus\:border-dream\/40:focus{border-color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.focus\:border-synapse\/40:focus{border-color:#6366f166}@supports (color:color-mix(in lab,red,red)){.focus\:border-synapse\/40:focus{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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-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-synapse-glow:focus{--tw-ring-color:var(--color-synapse-glow)}.focus\:ring-synapse\/15:focus{--tw-ring-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.focus\:ring-synapse\/15:focus{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 15%, transparent)}}.focus\:ring-synapse\/20:focus{--tw-ring-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.focus\:ring-synapse\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 20%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--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-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:#c084fc99}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-dream-glow) 60%, transparent)}}.focus-visible\:ring-recall\/60:focus-visible{--tw-ring-color:#10b98199}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-recall\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-recall) 60%, transparent)}}.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:top-4{top:calc(var(--spacing) * 4)}.sm\:right-4{right:calc(var(--spacing) * 4)}.sm\:left-4{left:calc(var(--spacing) * 4)}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:inline-flex{display:inline-flex}.sm\:w-auto{width:auto}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:p-0{padding:calc(var(--spacing) * 0)}.sm\:\[padding-top\:0\]{padding-top:0}.sm\:\[padding-right\:0\]{padding-right:0}.sm\:\[padding-left\:0\]{padding-left:0}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline-flex{display:inline-flex}.md\:min-w-\[340px\]{min-width:340px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.md\:flex-row{flex-direction:row}.md\:pt-\[15vh\]{padding-top:15vh}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}}@media(min-width:64rem){.lg\:block{display:block}.lg\:inline-flex{display:inline-flex}.lg\:w-56{width:calc(var(--spacing) * 56)}.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\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.lg\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}.lg\:grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px}.lg\:grid-cols-\[minmax\(0\,1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}}.\[\&\:\:-webkit-slider-thumb\]\:h-3::-webkit-slider-thumb{height:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:w-3::-webkit-slider-thumb{width:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-synapse-glow::-webkit-slider-thumb{background-color:var(--color-synapse-glow)}.\[\&\:\:-webkit-slider-thumb\]\:shadow-\[0_0_8px_rgba\(129\,140\,248\,0\.4\)\]::-webkit-slider-thumb{--tw-shadow:0 0 8px var(--tw-shadow-color,#818cf866);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}html{background:var(--color-void);color:var(--color-text);font-family:var(--font-mono)}@supports (color:oklch(0 0 0)){:root{--color-synapse:oklch(58.5% .222 277);--color-synapse-glow:oklch(68.5% .169 277);--color-dream:oklch(62.7% .265 304);--color-dream-glow:oklch(71.4% .203 305);--color-memory:oklch(62.3% .214 259);--color-recall:oklch(69.6% .17 162);--color-decay:oklch(63.7% .237 25);--color-warning:oklch(76.9% .188 70);--color-node-fact:oklch(62.3% .214 259);--color-node-concept:oklch(60.6% .25 292);--color-node-event:oklch(76.9% .188 70);--color-node-person:oklch(69.6% .17 162);--color-node-place:oklch(71.5% .143 215);--color-node-note:oklch(55.1% .027 264);--color-node-pattern:oklch(65.6% .241 354);--color-node-decision:oklch(63.7% .237 25)}}body{min-height:100vh;margin:0;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}.glass{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#16163873;border:1px solid #6366f114;box-shadow:inset 0 1px #ffffff08,0 4px 24px #0000004d}.glass-subtle{-webkit-backdrop-filter:blur(12px)saturate(150%);background:#10102a66;border:1px solid #6366f10f;box-shadow:inset 0 1px #ffffff05,0 2px 12px #0003}.glass-sidebar{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1a99;border-right:1px solid #6366f11a;box-shadow:inset -1px 0 #ffffff05,4px 0 24px #0000004d}.glass-panel{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1acc;border:1px solid #6366f11a;box-shadow:inset 0 1px #ffffff08,0 8px 32px #0006}.glow-synapse{box-shadow:0 0 20px #6366f14d,0 0 60px #6366f11a}.glow-dream{box-shadow:0 0 20px #a855f74d,0 0 60px #a855f71a}.glow-memory{box-shadow:0 0 20px #3b82f64d,0 0 60px #3b82f61a}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes orb-float-1{0%,to{transform:translate(0)scale(1)}25%{transform:translate(60px,-40px)scale(1.1)}50%{transform:translate(-30px,-80px)scale(.95)}75%{transform:translate(-60px,-20px)scale(1.05)}}@keyframes orb-float-2{0%,to{transform:translate(0)scale(1)}25%{transform:translate(-50px,30px)scale(1.08)}50%{transform:translate(40px,60px)scale(.92)}75%{transform:translate(20px,-40px)scale(1.03)}}@keyframes orb-float-3{0%,to{transform:translate(0)scale(1)}25%{transform:translate(30px,50px)scale(1.05)}50%{transform:translate(-60px,20px)scale(.98)}75%{transform:translate(40px,-30px)scale(1.1)}}.ambient-orb{filter:blur(80px);pointer-events:none;z-index:0;opacity:.35;border-radius:50%;position:fixed}.ambient-orb-1{background:radial-gradient(circle,#a855f766,#0000 70%);width:400px;height:400px;animation:20s ease-in-out infinite orb-float-1;top:-10%;right:-5%}.ambient-orb-2{background:radial-gradient(circle,#6366f159,#0000 70%);width:350px;height:350px;animation:25s ease-in-out infinite orb-float-2;bottom:-15%;left:-5%}.ambient-orb-3{background:radial-gradient(circle,#f59e0b33,#0000 70%);width:300px;height:300px;animation:22s ease-in-out infinite orb-float-3;top:40%;left:40%}.nav-active-border{position:relative}.nav-active-border:before{content:"";background:linear-gradient(180deg,var(--color-synapse),var(--color-dream),var(--color-synapse));background-size:100% 200%;border-radius:1px;width:2px;animation:3s ease-in-out infinite gradient-shift;position:absolute;top:4px;bottom:4px;left:0}@keyframes gradient-shift{0%,to{background-position:0 0}50%{background-position:0 100%}}@keyframes float{0%,to{transform:translateY(0)translate(0)}25%{transform:translateY(-10px)translate(5px)}50%{transform:translateY(-5px)translate(-5px)}75%{transform:translateY(-15px)translate(3px)}}.retention-critical{color:var(--color-decay)}.retention-low{color:var(--color-warning)}.retention-good{color:var(--color-recall)}.retention-strong{color:var(--color-synapse)}@media not all and (prefers-reduced-motion:reduce){::view-transition-old(root){animation-duration:.18s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.18s;animation-timing-function:ease}::view-transition-old(root){animation-name:vt-fade-out}::view-transition-new(root){animation-name:vt-fade-in}@keyframes vt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}to{opacity:1}}}@property --angle{syntax:"";inherits:false;initial-value:0deg}@property --shine{syntax:"";inherits:false;initial-value:0%}.reveal{opacity:0;transform:translateY(var(--reveal-y,16px));transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);will-change:opacity,transform}.reveal-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}@media not all and (prefers-reduced-motion:reduce){.enter{transition:opacity .4s,transform .4s cubic-bezier(.22,1,.36,1)}@starting-style{.enter{opacity:0;transform:translateY(10px)}}}.live-border{isolation:isolate;position:relative}.live-border:before{content:"";border-radius:inherit;background:conic-gradient(from var(--angle),transparent 0%,var(--color-synapse) 18%,var(--color-dream) 33%,transparent 50%,transparent 100%);pointer-events:none;opacity:.6;z-index:-1;padding:1px;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@media not all and (prefers-reduced-motion:reduce){.live-border:before{animation:6s linear infinite border-rotate}@keyframes border-rotate{to{--angle:360deg}}}.spotlight-surface{position:relative;overflow:hidden}.spotlight-surface:after{content:"";pointer-events:none;background:radial-gradient(340px circle at var(--spot-x,50%) var(--spot-y,50%),#818cf81f,transparent 60%);opacity:var(--spot-o,0);z-index:0;transition:opacity .3s;position:absolute;top:0;right:0;bottom:0;left:0}.tilt-glare{position:relative;overflow:hidden}.tilt-glare:after{content:"";pointer-events:none;background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,50%),#ffffff24,transparent 45%);opacity:var(--glare-o,0);transition:opacity .3s;position:absolute;top:0;right:0;bottom:0;left:0}.breathe{animation:3.2s ease-in-out infinite breathe}@keyframes breathe{0%,to{filter:drop-shadow(0 0 2px);opacity:.85;transform:scale(1)}50%{filter:drop-shadow(0 0 7px);opacity:1;transform:scale(1.18)}}@media(prefers-reduced-motion:reduce){.breathe{animation:none}}.ping-host{position:relative}.ping-host:before{content:"";opacity:.6;z-index:-1;background:currentColor;border-radius:50%;position:absolute;top:0;right:0;bottom:0;left:0}@media not all and (prefers-reduced-motion:reduce){.ping-host:before{animation:2.4s cubic-bezier(0,0,.2,1) infinite ping}@keyframes ping{0%{opacity:.5;transform:scale(1)}80%,to{opacity:0;transform:scale(2.6)}}}.shimmer{background:#ffffff08;position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000,#818cf81f,#0000);position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%)}@media not all and (prefers-reduced-motion:reduce){.shimmer:after{animation:1.6s ease-in-out infinite shimmer}@keyframes shimmer{to{transform:translate(100%)}}}.text-aurora{background:linear-gradient(100deg,var(--color-synapse-glow),var(--color-dream-glow),var(--color-recall),var(--color-synapse-glow));color:#0000;background-size:250% 100%;-webkit-background-clip:text;background-clip:text}@media not all and (prefers-reduced-motion:reduce){.text-aurora{animation:8s ease-in-out infinite aurora-drift}@keyframes aurora-drift{0%,to{background-position:0%}50%{background-position:100%}}}.lift{transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .28s,border-color .28s}.lift:hover{transform:translateY(-3px);box-shadow:0 12px 32px #00000059,0 0 0 1px #6366f12e}@media(prefers-reduced-motion:reduce){.lift:hover{transform:none}}.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:where(button,a,input,select,[role=button],[tabindex]):focus-visible{outline:2px solid var(--color-synapse-glow);outline-offset:2px;border-radius:.4rem}@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-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-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-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}.toast-layer.svelte-pry2ep{position:fixed;z-index:60;pointer-events:none;display:flex;flex-direction:column;gap:.5rem;right:1.25rem;bottom:1.25rem;max-width:22rem;width:calc(100vw - 2.5rem)}@media(max-width:768px){.toast-layer.svelte-pry2ep{right:.75rem;left:.75rem;bottom:auto;top:5.25rem;max-width:none;width:auto;align-items:stretch}}.toast-item.svelte-pry2ep{pointer-events:auto;position:relative;display:flex;gap:.75rem;align-items:stretch;text-align:left;font:inherit;color:inherit;background:#0c0e16b8;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.06);border-radius:.75rem;padding:.75rem .9rem .75rem .5rem;overflow:hidden;box-shadow:0 10px 40px -12px #000c,0 0 22px -6px var(--toast-color);cursor:pointer;animation:svelte-pry2ep-toast-in .32s cubic-bezier(.16,1,.3,1);transform-origin:right center;transition:transform .15s ease,box-shadow .15s ease}.toast-item.svelte-pry2ep:hover{transform:translateY(-1px) scale(1.015);box-shadow:0 14px 48px -12px #000000d9,0 0 32px -4px var(--toast-color)}.toast-item.svelte-pry2ep:focus-visible{outline:1px solid var(--toast-color);outline-offset:2px}.toast-accent.svelte-pry2ep{width:3px;border-radius:2px;background:var(--toast-color);box-shadow:0 0 10px var(--toast-color);flex-shrink:0}.toast-body.svelte-pry2ep{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.toast-head.svelte-pry2ep{display:flex;align-items:center;gap:.5rem}.toast-icon.svelte-pry2ep{color:var(--toast-color);font-size:.95rem;text-shadow:0 0 8px var(--toast-color);line-height:1;width:1rem;display:inline-flex;justify-content:center}.toast-title.svelte-pry2ep{color:#f5f5fa;font-size:.82rem;font-weight:600;letter-spacing:.01em}.toast-sub.svelte-pry2ep{color:#b0b6c4;font-size:.74rem;line-height:1.35;padding-left:1.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-progress.svelte-pry2ep{position:absolute;left:0;bottom:0;height:2px;width:100%;background:#ffffff0a}.toast-progress-fill.svelte-pry2ep{height:100%;background:var(--toast-color);opacity:.55;transform-origin:left center;animation:svelte-pry2ep-toast-progress var(--toast-dwell) linear forwards}.toast-item.svelte-pry2ep:hover .toast-progress-fill:where(.svelte-pry2ep),.toast-item.svelte-pry2ep:focus-visible .toast-progress-fill:where(.svelte-pry2ep){animation-play-state:paused}@keyframes svelte-pry2ep-toast-in{0%{opacity:0;transform:translate(24px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@media(max-width:768px){.toast-item.svelte-pry2ep{transform-origin:top center;animation:svelte-pry2ep-toast-in-mobile .3s cubic-bezier(.16,1,.3,1)}}@keyframes svelte-pry2ep-toast-in-mobile{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes svelte-pry2ep-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast-item.svelte-pry2ep{animation:none}.toast-progress-fill.svelte-pry2ep{animation:none;transform:scaleX(.5)}}.strip-item.svelte-1kk3799{display:inline-flex;align-items:center;gap:.4rem;padding:0 .75rem;white-space:nowrap;flex-shrink:0}.strip-divider.svelte-1kk3799{width:1px;height:14px;background:#6366f11f;flex-shrink:0}.ambient-strip.ambient-flash.svelte-1kk3799{background:linear-gradient(90deg,#ef444414,#ef444400 70%),#0006;border-bottom-color:#ef444459;transition:background .3s ease,border-color .3s ease}@keyframes svelte-1kk3799-ping-slow{0%{transform:scale(1);opacity:.8}80%,to{transform:scale(2);opacity:0}}.animate-ping-slow{animation:svelte-1kk3799-ping-slow 2.2s cubic-bezier(0,0,.2,1) infinite}@media(prefers-reduced-motion:reduce){.ambient-strip.svelte-1kk3799 .animate-ping,.ambient-strip.svelte-1kk3799 .animate-ping-slow,.ambient-strip.svelte-1kk3799 .animate-pulse{animation:none!important}}.verdict-bar.svelte-1j425e6{border-bottom:1px solid rgba(255,255,255,.06);background:#080912b8;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 6px 24px #0000002e}.verdict-summary.svelte-1j425e6{width:100%;min-height:2.75rem;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.55rem 1rem;color:var(--color-text);text-align:left;font:inherit}.sr-only.svelte-1j425e6{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.label.svelte-1j425e6,.field-label.svelte-1j425e6,.appeal-row.svelte-1j425e6>span:where(.svelte-1j425e6){color:var(--color-dim);font-size:.68rem;text-transform:uppercase;letter-spacing:0}.levels.svelte-1j425e6{display:flex;align-items:center;gap:.25rem}.levels.svelte-1j425e6 span:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.08);border-radius:.35rem;padding:.18rem .38rem;color:var(--color-muted);font-size:.64rem;line-height:1}.levels.svelte-1j425e6 span.active:where(.svelte-1j425e6){color:var(--color-bright);border-color:var(--verdict-color);background:color-mix(in srgb,var(--verdict-color) 18%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--verdict-color) 28%,transparent)}.summary-text.svelte-1j425e6{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--color-dim)}.when.svelte-1j425e6{color:var(--color-muted);font-size:.68rem}.receipt.svelte-1j425e6{margin:0 1rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:.5rem;background:#0a0a1ac7;padding:.85rem}.receipt-grid.svelte-1j425e6{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(10rem,.8fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:.85rem}.receipt.svelte-1j425e6 p:where(.svelte-1j425e6),.receipt.svelte-1j425e6 li:where(.svelte-1j425e6){margin:.25rem 0 0;color:var(--color-text);font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}.receipt.svelte-1j425e6 ul:where(.svelte-1j425e6){margin:.25rem 0 0;padding-left:1rem}.appeal-row.svelte-1j425e6{display:flex;align-items:center;gap:.4rem;margin-top:.85rem;flex-wrap:wrap}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6),.appeal-row.svelte-1j425e6 p:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.1);border-radius:.4rem;padding:.35rem .6rem;color:var(--color-text);background:#ffffff0a;font-size:.72rem;margin:0}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):hover:not(:disabled),.verdict-summary.svelte-1j425e6:hover{background:#ffffff0d}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):disabled{opacity:.55;cursor:wait}.tone-pass.svelte-1j425e6,.tone-note.svelte-1j425e6{--verdict-color: #10b981}.tone-caution.svelte-1j425e6{--verdict-color: #f59e0b}.tone-veto.svelte-1j425e6{--verdict-color: #ef4444}.tone-appealed.svelte-1j425e6{--verdict-color: #818cf8}@media(max-width:900px){.verdict-summary.svelte-1j425e6{grid-template-columns:auto minmax(0,1fr) auto}.levels.svelte-1j425e6{grid-column:1 / -1;order:4;overflow-x:auto;padding-bottom:.1rem}.receipt-grid.svelte-1j425e6{grid-template-columns:1fr}}.theme-toggle.svelte-1cmi4dh{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:8px;background:#6366f10f;border:1px solid rgba(99,102,241,.14);color:var(--color-text);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.theme-toggle.svelte-1cmi4dh:hover{background:#6366f124;border-color:#6366f14d;color:var(--color-bright)}.theme-toggle.svelte-1cmi4dh:active{transform:scale(.94)}.theme-toggle.svelte-1cmi4dh:focus-visible{outline:1px solid var(--color-synapse);outline-offset:2px}.icon-wrap.svelte-1cmi4dh{position:relative;width:18px;height:18px;display:inline-block}.icon.svelte-1cmi4dh{position:absolute;top:0;right:0;bottom:0;left:0;width:18px;height:18px;opacity:0;transform:scale(.7) rotate(-30deg);transition:opacity .2s ease,transform .2s cubic-bezier(.16,1,.3,1);pointer-events:none}.icon.active.svelte-1cmi4dh{opacity:1;transform:scale(1) rotate(0)}.theme-toggle[data-mode=dark].svelte-1cmi4dh{color:var(--color-synapse-glow, #818cf8)}.theme-toggle[data-mode=light].svelte-1cmi4dh{color:var(--color-warning, #f59e0b)}.theme-toggle[data-mode=auto].svelte-1cmi4dh{color:var(--color-dream-glow, #c084fc)}@media(prefers-reduced-motion:reduce){.theme-toggle.svelte-1cmi4dh,.icon.svelte-1cmi4dh{transition:none}}.safe-bottom.svelte-12qhfyh{padding-bottom:env(safe-area-inset-bottom,0px)}.logo-mark.svelte-12qhfyh{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}.logo-link.svelte-12qhfyh:hover .logo-mark:where(.svelte-12qhfyh){transform:rotate(-6deg) scale(1.08);box-shadow:0 0 0 1px #818cf866,0 0 22px #6366f180}.nav-link.text-synapse-glow.svelte-12qhfyh .nav-icon:where(.svelte-12qhfyh) svg,.nav-active-border.svelte-12qhfyh .nav-icon:where(.svelte-12qhfyh) svg{filter:drop-shadow(0 0 6px rgba(129,140,248,.55))} diff --git a/apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css.br b/apps/dashboard/build/_app/immutable/assets/0.Cf27G70K.css.br new file mode 100644 index 0000000000000000000000000000000000000000..bc588d0dab75fc23c198235da98d6cba4b3768f3 GIT binary patch literal 11978 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 OxKN@^qm4eB(K!JBaW;Yg literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/10.g4OzM5ih.css.gz b/apps/dashboard/build/_app/immutable/assets/10.g4OzM5ih.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..e80bd2708e1177c4357febb04a2be1a81470eb07 GIT binary patch literal 728 zcmV;}0w?_+iwFP!000026QxyAkD@RTe!pMQ#B3r7Z9qk_yxiZo$3h2~v$UiwsAu@^ z7eT#sb@z7fNJ!f0bUO2WU#H)9a4fB8z!BGj@<3y~ZKJ-SrI0{TpQ4wOX+?ql$fL|# zpl9)8SM?I9Svxw*y9-J)O^n9$e=57+4I{?OC3j7Ib4*$}pL1cU=>IzKRl zJy7R`@7yhtS@kkWPZC|L#F3*`sDYLW4w+C`X^I{i#|zLNY*vYuv&2G^wL(hN6=zEe z4Pl$JEjLzzrB+Dn9N%uY?IA0T_SE4o;A}H)91VNGs`h*xMOk5#vAh>{PU$$N77C$M zNM_5GTyD2PmWyInS<`9BCyxdXbJWDyDi1%}N#eyzIAYog3)%;l6nWeph%*W$`C`CD z`X=DMMi11rq5!VV-ir1fXOs%wg8f*s#3m%OG~Xs7xvO_pj$b6M;7)rl=6H2EOd9_e zMssC~U3TV`y4s@N@n~R$>9nUsjqO+UkP8Rrl}QoHf0jf#Iz85#J~CyiT+A0q5?+56 zZGwRn3WTM(*Z(8w<&*r^$)`2_NNCe}kRh3^^UWfSo>H28s>F3LwFexp`52tA#dNE~ zKT%)VUg_j!eIF)Xn;tCJ#?QG#CvpWcc%o1b2Op9dB(Q<}X+83}M9UA(z8-k%g>01- zopokRhzh059^}BF2kogf`?nmo<^qfbB|P@<8mwDeC2Wy8Qgk^MG>2aZcFvZoFlNa* zWb0KJ2Vri`_d-aspPb)=_x)TZAWxs@RnYr@Z0`HWH7*wBLCAZQzUDDopQTn$o%1rg zSLfK72L?^+kF-+9w*JRE@w0Ot%Ofp}_MrXM{HO|d)S`7jD`ocQ1{SA9nFiU7&NLam zHy}|EZ9JK`7D}*=T991g)5w+Zr>7n@Kr)#kMRm%utZzJRh#WuCfCwLQzki0;t0BEC(l zY%7H8Z?K)3BW-U-Ypsg6_Msy&^E-kSkQt(jJmHDaKFjgf2d&7~l4VC@yM z@>voici-N%Rbm%>{QUmg^XX#$z|U0sE|pLVaPFkGDp3n_&QvY?45+m%rYBFHBf4>q z*zY_er#kalR5nu z%$UfUi>1_LM{6rYO}8(N%7J!EZ+frEkDhK|tyX60n3?C9`1l=3Q@%Xw`TYDpU^`{5 zP0+=%0fUF4s|%BiM?I~+$*Z@FdYLY1+dOt5#SC4n5ZfI^O|U}iK4s`|MdaAR@2o@s z0L7u&j*)#NnQRDfC`7=pXNuZtih@x#5q&F!GlU=VcApA8zp~Jr7y%m}V^0yGTPdzl zg|wAQqC$mE3v5tdn*q!*O#7fvgFY+a>plb`4c-1ua>C4wH+9$E3;LI)3KpVecx=1% za{KIRCc!ki2zDEmS^t4axs-YP^<%LXnxEmUF&2l=hO~4QIaRF!5C4OSeK(`xPf1`Q zd@B`lR5YNN;)Pe38{hWTACX)o&+UA0GdmO&e4zcCrs=Nt<@_BS#j3Y zKEduuXmRE2%CvNupbiXxY*n-ji48qgiU3I~s01UPOkbqXKU`AI^Im^A= z0VkeM;4D)^nnM7?U>&&m!)kwjYshp~mO^2S(Tp^FTK#2ASQk2X}{WivLe@y!>&)ul55AGdsY z4Q$cM%^M6K@F4k}%?y$%Y5xU%lN|O7`RB#7z&wI~ysW=qtEOT9ycqlG#dOi;;Q}{A JPV8M)-gZKR8n^%e literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/11.BxoW8Jf1.css.gz b/apps/dashboard/build/_app/immutable/assets/11.BxoW8Jf1.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..dfc3505fbf951585799b447d912a59a1c25e3311 GIT binary patch literal 1274 zcmV`zz%AgoJN#?jcV9{xW|5-I@cda;WWOa;2@CpQq8co#}8%wRh zigErmS`kvfX}q_jVo%Mte$tJRytD8_SINb$mFiog8aTCV57!9IJ*1p90y7J($x9Fx zbn#DTEUS;Wl){3rxlyzPya9Uv5Jf{(9&2a|MXQR5CU0rKj6O3BZ3tq&G_(dxHBiii z0qej80dh~E;jSU52TfJ(4i_&rv})kik6H?g4f_xB=p&o%8Vwdxe{myq1sc07cP3x2 z*Q!5X%VX6eBRQ*(ZZ>ooC+jdyNtmRoFiL}>lw9h3PxTUGzsBY$s4{>XE)T&R9Bx#1 z3-G-4VCOAPVO4&tNHIIVSfQnT=Ad(hgSDWsi}~PY0&QWTx7cbbOf7YrcS?aSseuRZ zD-ExNJBRPin5@v{lPEBEGtlDA^yvI7&6NLE)anTks+kN7(~38?Rs^j)`6gX`dDP z=gP(6m3I?zUv@wQ4OKK)vqug&vy`*)vUer#N^oH6O7+Froz+D?Ms7OJPuj{9Rohvp zf|-3o(HitF=dT_`rP$7V|_dGOd{qIz_z8CEt8e;TgG(W+P*yp(z;=Fz)1&}k!e zt|W6mTw4~G=9wp+mx^i-_8Y}bvMd}wQJg)JT*vU>CgLs!Lt@^OYi9iVJE&ASned(E zH|_9TCQjpMXXRC_2B}KCWVt4HUO((|Ly-kj>HBojcSW~lcc{kfFyV`7!)3WE?nL3+ z`oC2RvU*H}Nk_Pmg!h>yoCElCIY_-6d_0hY^qC%bhc2{FRF9HW^#fZ-=-$yfC|V{) zdr9;G?X1W@=VGR1qru!wRwHR#IZukO_OF=UFwWiPM$wwfL%wBI1>$Z8TroGJ)idm)r0zgF*OK*GZLSsHD7H4!>IvhDi}35}?14 zLl6YP(3%Fmdn%$RF=&7jUIC&g9XjT9$N_3g*@-)aoRo-H|GBPs5g9uAy~JFMYfuk{ z{9j4QFNe2>W8rmv%!ZNlUi_vdI47D<#H|a@EAC;DzM5$U1FGW&(EE@i%mkL5MNHI8 zFbk8o8Y?xt9_PlQ_YHFRa}oJYJ4)d?o0SQngvNA5ev*vjp{@_D@p&4OYZh*M+Fj_< z`&3<~fON|G^HtCL8N(k3E8n`hzs`2Ar^iWxzQ`h+42DsbowCVL8J|vnTBsOZDh)Mg kgEdrL2^DVTxg)vL;Oj?HGx5>?vpoIvKeTjemqiZ%022mY;{X5v literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css b/apps/dashboard/build/_app/immutable/assets/14.Bjd0S47S.css similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css rename to apps/dashboard/build/_app/immutable/assets/14.Bjd0S47S.css diff --git a/apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.br b/apps/dashboard/build/_app/immutable/assets/14.Bjd0S47S.css.br similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.br rename to apps/dashboard/build/_app/immutable/assets/14.Bjd0S47S.css.br diff --git a/apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.gz b/apps/dashboard/build/_app/immutable/assets/14.Bjd0S47S.css.gz similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.gz rename to apps/dashboard/build/_app/immutable/assets/14.Bjd0S47S.css.gz diff --git a/apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css b/apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css new file mode 100644 index 0000000..ceee09b --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css @@ -0,0 +1 @@ +.pending-badge.svelte-c1wbiz{font-size:.8rem;font-weight:700;padding:5px 11px;border-radius:8px;color:var(--color-text-dim, #8b8ba7);border:1px solid color-mix(in oklab,white 10%,transparent)}.pending-badge.has.svelte-c1wbiz{color:#f59e0b;border-color:color-mix(in oklab,#f59e0b 40%,transparent);background:color-mix(in oklab,#f59e0b 10%,transparent)}.manifesto.svelte-c1wbiz{font-size:1.05rem;line-height:1.55;color:var(--color-text, #e2e2f0);padding:16px 20px;border-radius:12px;margin-bottom:16px;background:linear-gradient(100deg,color-mix(in oklab,var(--color-synapse) 14%,transparent),transparent 70%);border:1px solid color-mix(in oklab,var(--color-synapse) 20%,transparent)}.manifesto.svelte-c1wbiz strong:where(.svelte-c1wbiz){color:var(--color-synapse-glow, #818cf8)}.manifesto-note.svelte-c1wbiz{display:block;margin-top:8px;font-size:.82rem;line-height:1.5;color:var(--color-text-dim, #c0c0d8)}.manifesto-note.svelte-c1wbiz strong:where(.svelte-c1wbiz){color:#f59e0b}.glass.svelte-c1wbiz{background:color-mix(in oklab,var(--color-void, #050510) 55%,transparent);border:1px solid color-mix(in oklab,white 8%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px}.modes.svelte-c1wbiz{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;margin-bottom:14px}@media(max-width:640px){.modes.svelte-c1wbiz{grid-template-columns:1fr}}.mode.svelte-c1wbiz{display:flex;flex-direction:column;gap:3px;padding:11px 14px;border-radius:10px;border:1px solid transparent;background:color-mix(in oklab,white 3%,transparent);cursor:pointer;text-align:left;transition:all .16s ease}.mode.svelte-c1wbiz:hover{background:color-mix(in oklab,var(--color-synapse) 10%,transparent)}.mode.on.svelte-c1wbiz{border-color:color-mix(in oklab,var(--color-synapse) 50%,transparent);background:color-mix(in oklab,var(--color-synapse) 18%,transparent)}.mode-label.svelte-c1wbiz{font-weight:700;font-size:.9rem}.mode-blurb.svelte-c1wbiz{font-size:.72rem;color:var(--color-text-dim, #8b8ba7);line-height:1.35}.filters.svelte-c1wbiz{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.filter.svelte-c1wbiz{font-size:.74rem;padding:5px 11px;border-radius:7px;border:1px solid color-mix(in oklab,white 8%,transparent);background:transparent;color:var(--color-text-dim, #8b8ba7);cursor:pointer;text-transform:capitalize;transition:all .16s ease}.filter.svelte-c1wbiz:hover{color:var(--color-text, #e2e2f0)}.filter.on.svelte-c1wbiz{color:var(--color-synapse-glow, #818cf8);border-color:color-mix(in oklab,var(--color-synapse) 45%,transparent);background:color-mix(in oklab,var(--color-synapse) 12%,transparent)}.layout.svelte-c1wbiz{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}@media(max-width:860px){.layout.svelte-c1wbiz{grid-template-columns:1fr}}.pr-list.svelte-c1wbiz{padding:12px;position:sticky;top:16px;max-height:calc(100vh - 40px);overflow-y:auto}.pr-list.svelte-c1wbiz ul:where(.svelte-c1wbiz){list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.empty.svelte-c1wbiz{font-size:.82rem;color:var(--color-text-dim, #8b8ba7);line-height:1.5;padding:8px}.pr-row.svelte-c1wbiz{width:100%;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid transparent;background:color-mix(in oklab,white 3%,transparent);cursor:pointer;transition:all .16s ease}.pr-row.svelte-c1wbiz:hover{background:color-mix(in oklab,var(--color-synapse) 10%,transparent)}.pr-row.active.svelte-c1wbiz{border-color:color-mix(in oklab,var(--color-synapse) 45%,transparent);background:color-mix(in oklab,var(--color-synapse) 15%,transparent)}.pr-row-top.svelte-c1wbiz{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}.pr-kind.svelte-c1wbiz{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:5px;background:color-mix(in oklab,var(--color-synapse) 16%,transparent);color:var(--color-synapse-glow, #818cf8)}.kind-contradiction_detected.svelte-c1wbiz{background:color-mix(in oklab,#fb7185 16%,transparent);color:#fb7185}.kind-memory_superseded.svelte-c1wbiz{background:color-mix(in oklab,#38bdf8 16%,transparent);color:#38bdf8}.kind-dream_consolidation.svelte-c1wbiz{background:color-mix(in oklab,#c084fc 16%,transparent);color:#c084fc}.pr-status.svelte-c1wbiz{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-dim, #8b8ba7);align-self:center}.st-pending.svelte-c1wbiz{color:#f59e0b}.st-promoted.svelte-c1wbiz{color:#10b981}.st-forgotten.svelte-c1wbiz,.st-quarantined.svelte-c1wbiz{color:#f43f5e}.pr-title.svelte-c1wbiz{font-size:.84rem;line-height:1.35;color:var(--color-text, #e2e2f0)}.pr-sig-count.svelte-c1wbiz{font-size:.7rem;color:#f59e0b;margin-top:5px}.pr-detail.svelte-c1wbiz{min-width:0}.center-msg.svelte-c1wbiz{padding:50px;text-align:center;color:var(--color-text-dim, #8b8ba7)}.diff-card.svelte-c1wbiz{padding:20px 22px}.diff-head.svelte-c1wbiz{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.run-link.svelte-c1wbiz{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:.74rem;color:var(--color-synapse-glow, #818cf8);text-decoration:none;padding:3px 8px;border-radius:6px;background:color-mix(in oklab,var(--color-synapse) 10%,transparent)}.diff-title.svelte-c1wbiz{font-size:1.15rem;font-weight:700;margin:12px 0 16px;line-height:1.4}.diff-body.svelte-c1wbiz{margin-bottom:16px}.diff-meta.svelte-c1wbiz{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.meta-pill.svelte-c1wbiz{font-size:.72rem;padding:2px 8px;border-radius:6px;background:color-mix(in oklab,white 6%,transparent);color:var(--color-text-dim, #c0c0d8)}.meta-pill.tag.svelte-c1wbiz{color:var(--color-synapse-glow, #818cf8)}.diff-add.svelte-c1wbiz{margin:0;padding:12px 14px 12px 36px;position:relative;border-radius:9px;background:color-mix(in oklab,#10b981 9%,transparent);border-left:3px solid #10b981;font-size:.85rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono, monospace);color:var(--color-text, #e2e2f0)}.diff-add.svelte-c1wbiz .gutter:where(.svelte-c1wbiz){position:absolute;left:12px;color:#10b981;font-weight:700}.signals.svelte-c1wbiz,.why-box.svelte-c1wbiz{margin-bottom:16px;padding:12px 14px;border-radius:10px;background:color-mix(in oklab,#f59e0b 8%,transparent);border:1px solid color-mix(in oklab,#f59e0b 22%,transparent)}.why-box.svelte-c1wbiz{background:color-mix(in oklab,var(--color-synapse) 8%,transparent);border-color:color-mix(in oklab,var(--color-synapse) 22%,transparent)}.signals-title.svelte-c1wbiz,.why-title.svelte-c1wbiz{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f59e0b;margin-bottom:8px}.why-title.svelte-c1wbiz{color:var(--color-synapse-glow, #818cf8)}.signal.svelte-c1wbiz{display:flex;gap:8px;align-items:baseline;padding:3px 0}.sig-code.svelte-c1wbiz{font-size:.7rem;color:#f59e0b;white-space:nowrap}.sig-detail.svelte-c1wbiz{font-size:.82rem;line-height:1.4;color:var(--color-text, #e2e2f0)}.actions.svelte-c1wbiz{display:flex;flex-wrap:wrap;gap:8px}.action.svelte-c1wbiz{font-size:.8rem;font-weight:600;padding:8px 14px;border-radius:9px;border:1px solid color-mix(in oklab,var(--ac, #6366f1) 40%,transparent);background:color-mix(in oklab,var(--ac, #6366f1) 10%,transparent);color:var(--ac, #818cf8);cursor:pointer;transition:all .16s ease}.action.svelte-c1wbiz:hover:not(:disabled){background:color-mix(in oklab,var(--ac, #6366f1) 22%,transparent);transform:translateY(-1px)}.action.svelte-c1wbiz:disabled{opacity:.5;cursor:wait}.action.promote.svelte-c1wbiz{--ac: #10b981}.action.merge.svelte-c1wbiz{--ac: #6366f1}.action.supersede.svelte-c1wbiz{--ac: #38bdf8}.action.quarantine.svelte-c1wbiz{--ac: #f59e0b}.action.forget.svelte-c1wbiz{--ac: #f43f5e}.action.why.svelte-c1wbiz{--ac: #818cf8}.decided.svelte-c1wbiz{font-size:.88rem;padding:10px 14px;border-radius:9px;background:color-mix(in oklab,white 4%,transparent)}.text-dim.svelte-c1wbiz{color:var(--color-text-dim, #8b8ba7)} diff --git a/apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css.br b/apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css.br new file mode 100644 index 0000000000000000000000000000000000000000..b3e67f637d2d420092c4c02fe76505c49ea8a0ce GIT binary patch literal 1584 zcmV-02G98$RUZHx1@7F%_D%kLu{eo{SSh$%I(1szs_v_J>}`@jig5#%n#6LZRV^h* z46Uu*Pfh!kFYVz#(t(}v`_@W3yDFe$jJZsRl)2~cb=BW~+jGDwK&+;#y8CEu0)z_C zqKY-BBV{6UgxiRL)gKoW54J}#>yLs2~bd>~d{qfj5baPhiC5)3b zS+^sME$nAA9fzwOL&XCc`65}%1aZ6WMVkq2&(@QtaZI()t{RB)r825z@@_;2dgHO< ze$c6s?<=-9Oq3|YoCO2uPfI5tDS*LJ*7pU&lg1LYHBk3+B4k-(v_0iZEBIyhx?6lUZ-L1P6Gs zWw^i|Iob?WBe3Ub_{*YvXENBG39eGvW&DuicY0y>dhkE^VKe&?%`41T!#=Rms??;W zIXq$Ux6Pz$PT}Fwo%ccKHg7-z=H86?+5rz)cIKlz_?>YG3HU&ecH}`s!<#SU@MJ!f zc@bgGz`i_|e1+&-N?VxpW5Y2hhyK<}V-9W;k0uQ&cqc@e|}}?F{5R zt$^Q_?j(2W*^zd+ptn(hij!k53X2o%W+k(pGiX!cxg8mfc&Fui9IHz%8^|RcsYSCQc7&NhE z<{$CZR=2cJv_fX4z$S4~B&%5B+2%2Gs)rZst_V%-1u5nD$!34olBKPfBG1ms4Vf zWP*B4LiB1|d!MVElZt-BQkyvc|B*8bRB52}m%1;^!FifQxqnolD=4TY+zoaXsJZkY zuPi7L?Ln%HAWQTeJt{aRI}hBS%lqV0w9%Ag@1DmhoE-O{40$^_5YN+~$%`e^^yJF% zHF36Ku%?57g7o$S4@+t?Hz7t;=J{N4ho<153FhRIMR6!i%&3xbx=vz?^}5Fad#WF` zev5NbTdM6OeCnhMOmc-I2@sbtLT?(9N@VI#a|rKbHris-BFMTE<;dTl(;G^ zr#TQ}X~-3;u2W8O_UqUTm**N&JEgI9XW^{oj0!@5q-vTNCq`Bwm<_{?uS^Esxnl7t z;ib_nW5DGv>1NHTNzQ&X{5xvj58};x?imV7r7NDR2lsWet|;S$OfX1LYRL%AO_eRs zF!})ufZ^aK11Y-R)!p@xD!kH|`h_%thi=Q_Rr{#CDF@+cVoJ3@XpL!u^KDW18~}wQ zr1qZZP@Mz9C9~RT5PI>NB-uSO1r^kVMX8pd{UeU4jj2)-%y7?((uD9b7u8PWwh>T{ zk1s}ffZmE0d{P4PU2UwFqZrUKzXnm>X^><5l;X5Ng9R&LNYC9XD_E>1eH>Y$hhNPL zD9qB4oW?Gp?kcQzTxTz^Esyk`!zU+jft`s)4+q6IW!pQ_NYgTwHjJDbmHTxiuc^$H>Z9cWa*6s5Dzx8NFsdq_d+pL2`9&7B&Os)T~TVR4NU1+GHZ2DwX&|GZ(6=&WvZ1mzr|45-q5r68Rsj@ z^igurk`S#SEot(1ole*vMd!BZ%?i?sYu*qqji{terEj|SD*iRFdmC6R0K@P0zvnjU z6g#t8+V(`AAT0)@jCgO`-$zWFKLdEXw>hBR1G${tm(mRV0V-toCSy6bwB|M;;k_{( i`ZE~b^Z(Zl3Ke!b36&&WyyK\xC{BMFH3bix5Mr6myn literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css.gz b/apps/dashboard/build/_app/immutable/assets/15.BzuIe_Oj.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..d79d1a9f7cf2966c726923d5e83dafca06cdd924 GIT binary patch literal 1835 zcmV+`2h{i=jb=U3c@Os;i3XxegIW~^6;3EU!Nss3Q6({5q5y#eF33S9adS#@PPs@vuvj2uJ|hJug$h!y zyq7qOGyJ-2mnC6y@+7CE@T_D_P7A_3{!VeWI_`-AFARRHl)y|jSO8PYi+`{G9?RYx ztO74(^aeq8RnY$EIHi^Iw!L%G4Cn8a;0IPrEgPy=V@67lijSH$^n*wnml6hOZ;c!J zQ8Z$@mG=T`SeL=_X8v&3oV;}~uz$F2PHBxrMHtGsQoJ^z-Mi>Ru|Snx0Zc8zASj?( zIj-2%L!KFKBrLsfdw<{V7wSsbhWJB>e$tcg?uQpY@F)`jvleNQ@(@BsAc~Cr3V9q7mAiVe$#j>9U z)A8F??SqqI<-G(^5QV|gi=uue%ud$0w-Oy8dnXEMT?)Y)R1&H{BpE%3g$`DmW@E4J zV|&}2E`H4mkRz_D1SwMeKnm)HVlBbxp=L4>&;VA8%_=O#GOe(6<29Y)Vbjh35^mb%`0TCu)i zzUn~7M;$*rC}q}lo1W|PgOFS#4JS;2NKN=+N-CC6C{=1?iBT6*>iOYLdVnRkE}QK6 z2Z$#E@~hemOM>2=vwo~UDDuwDqvtBVTfx|+Afh+}>Z<=8DDBjcHvx6KQip#w4$7~l z+RTF3`;xSYF22n$`7jcX0yl|%m=N5#lcU{jLe;HS^#Ngcb%pNi^3riwH{55L#}(gZ zlah-%$#FvzrsNk)M7qlYZLB{+^4sD;D9?qj^jk5%jebMSulq4i@tGgg^Hq5h1Uf8A zVFJxC6;ommQBcc7DlF8n3dcKJg`KBPmElGpN@RbW2aLS z>PDR>nEiK)NYq74b4kIEy>qOO!XWrDz>J%vjn~)z6OfIjv+Fv)6S~^{ajwV*{0;#7 zEy*0Y)znmX3Ml?QNJYvs$~jZOR3aOk1Ij=h0oaXT-Qz~o2F*KR#dvh?cCN;=SDz0} z10u%~QVL3eK>BJ$Vr8O`)`?CNAxq{*; z*8WmvuVEaGsnWh~&#R&4;`~z{8W0kSXOG&%Sy9HLN7>iyQH20p|I9fvDU0<5pF1oM z;%%9a9%f&g;E@WegPaH-Lp$b&OEk9>T4a(y%OnR~N-n-ss2xU3jUcR?;58q*yA=$B z>@5zBV97^ z?+anBgP2YWeJun9C`|f1xhAXy`rzVQOQTv=Bd8r|%;*4(T`I83ao}#!#vUf0iVq$ zt$`rt!sM?dB3Dannv)j~3hC~fg>(Ro#=6rH8~S170*00AvMI8;vC3BZZj$F7${M>Gz<{I?VBDS_ zxhPO30KX^ZiS!S4vl7>Yo?C;NUuw?y%F|D?%W_7Qb(_-jtAmEGkuKt9L!3!Y4@#q5 zscd6&2Q>X8y7-b*3{%<1oa6qCGJblPHbd7ssr{^pdi;&)<8|$N(3-k$@QtG7R_jT| zKGd%@ysP+G^Si3z{cO5Re&YYeop)oX-TK-Q5U=O@onbZ&0Y!T zEAM5u+3m`3`RpHMjve~=e`h`;dF3Rtdv}+OZ10{ht`2mG= z+|t)Ru9g03G2G(UmZlZg-3q7?(Y6_BMUVTlTh2QB;unyUVVBws^tj8D>=bDvv}Z7- ZZNC&>iP6Kd=4d7U_!qCeCiGSx003bzmBIi3 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css b/apps/dashboard/build/_app/immutable/assets/17.ChjqzJHo.css similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css rename to apps/dashboard/build/_app/immutable/assets/17.ChjqzJHo.css diff --git a/apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css.br b/apps/dashboard/build/_app/immutable/assets/17.ChjqzJHo.css.br similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css.br rename to apps/dashboard/build/_app/immutable/assets/17.ChjqzJHo.css.br diff --git a/apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css.gz b/apps/dashboard/build/_app/immutable/assets/17.ChjqzJHo.css.gz similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css.gz rename to apps/dashboard/build/_app/immutable/assets/17.ChjqzJHo.css.gz diff --git a/apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css b/apps/dashboard/build/_app/immutable/assets/18.BnHgRQtR.css similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css rename to apps/dashboard/build/_app/immutable/assets/18.BnHgRQtR.css diff --git a/apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.br b/apps/dashboard/build/_app/immutable/assets/18.BnHgRQtR.css.br similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.br rename to apps/dashboard/build/_app/immutable/assets/18.BnHgRQtR.css.br diff --git a/apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.gz b/apps/dashboard/build/_app/immutable/assets/18.BnHgRQtR.css.gz similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.gz rename to apps/dashboard/build/_app/immutable/assets/18.BnHgRQtR.css.gz diff --git a/apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css b/apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css new file mode 100644 index 0000000..b9e5029 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css @@ -0,0 +1 @@ +.conn-pill.svelte-15kgmsr{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .7rem;border-radius:999px;font-size:.75rem;font-weight:600;color:var(--color-recall, #34d399);background:color-mix(in srgb,var(--color-recall, #34d399) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-recall, #34d399) 28%,transparent);white-space:nowrap}.conn-pill.idle.svelte-15kgmsr{color:var(--color-dim, #8b95a5);background:#ffffff0a;border-color:#ffffff14}.conn-dot.svelte-15kgmsr{display:inline-block;flex-shrink:0}.refresh-btn.svelte-15kgmsr{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .65rem;border-radius:999px;font-size:.75rem;color:var(--color-muted, #6b7280);background:#ffffff05;border:1px solid rgba(255,255,255,.06);transition:color .2s ease,background .2s ease,border-color .2s ease}.refresh-btn.svelte-15kgmsr:hover{color:var(--color-text, #e5e7eb);background:#ffffff0d;border-color:#ffffff1f}.logo-tile.svelte-15kgmsr{position:relative}.logo-tile.svelte-15kgmsr:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;box-shadow:0 0 18px -2px var(--color-synapse-glow, #818cf8);opacity:.4;pointer-events:none}@media not (prefers-reduced-motion:reduce){.logo-tile.svelte-15kgmsr:after{animation:svelte-15kgmsr-logo-glow 4s ease-in-out infinite}@keyframes svelte-15kgmsr-logo-glow{0%,to{opacity:.25}50%{opacity:.55}}} diff --git a/apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css.br b/apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css.br new file mode 100644 index 0000000000000000000000000000000000000000..874173f475385e2750f02fa12920358fdfb81f0d GIT binary patch literal 505 zcmVM|d!17>|0|Rr}!S3EgGFBw@DvSs*bU?O8$8qIBJ7sPwJr_zke0 zg^`~Ac<(I;iy%pU)S2+(u70}H`?of18msKzzK@ybfBZZ5fuECU$LB+sd7wysOoHnJ zTlkSa_6O;;x@ZY*jWeAobXTFqSt3$Fi_Z!-RWzcuN_gSXtt{+(MA`-?Ec+a$|D!ey zx(^>IFdPiB*-!#1n2i*<1|*$snW-o-%PjI^*FzXnJXTry?F;d5e#Bk*qe25kpDN@2 z^lt^p4q3jr9BH=K4HhNbT4p7JAD&|-K@nvz3ZOitwUvcgvq$4vyw2VGP&NWr(BFWs zuSx*Av+WTSmDC7ol~PD5FSb-}qckS_W`}qj*u8ocUFKe4i-5nN0OR3wn6#e=s@85q z2fa8iW50DK4dkJ^-0cUI>PKS@J$|yp(D&OUBqmTH19q92Hl;Rtrbk1E8<=Qf`yapDkAJhh&QjSIkJwmN0V4YZ06qI2 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css.gz b/apps/dashboard/build/_app/immutable/assets/19.C2qtIyf6.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..e22d836769d2ab64e38bdc9cc08443e93cc311a2 GIT binary patch literal 590 zcmV-U0 zAWAR2e( z*Lir9quCRvh>e!TYPL?E3X(k<>FYvHW?2@!y>YUf=7U#AXw4-$ES?1hGC=fR^$xpJ z`G$Tcl-Sw>JhPObrHG9ngB27{M^Mi_t-4s-+H%6j=AK)AOpXx#1a8jg@|Sx?1P-H+gybdh49k QT=|rV;qb5hx3q!U0DQF-)&Kwi literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css b/apps/dashboard/build/_app/immutable/assets/22.DKhUrxcR.css similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css rename to apps/dashboard/build/_app/immutable/assets/22.DKhUrxcR.css diff --git a/apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.br b/apps/dashboard/build/_app/immutable/assets/22.DKhUrxcR.css.br similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.br rename to apps/dashboard/build/_app/immutable/assets/22.DKhUrxcR.css.br diff --git a/apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.gz b/apps/dashboard/build/_app/immutable/assets/22.DKhUrxcR.css.gz similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.gz rename to apps/dashboard/build/_app/immutable/assets/22.DKhUrxcR.css.gz diff --git a/apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css b/apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css new file mode 100644 index 0000000..236f6ad --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css @@ -0,0 +1 @@ +.receipt.svelte-1wdzvwu{border:1px solid color-mix(in oklab,var(--risk) 30%,transparent);border-left:3px solid var(--risk);border-radius:12px;padding:14px 16px;background:color-mix(in oklab,var(--color-void, #050510) 50%,transparent);display:flex;flex-direction:column;gap:12px}.receipt.compact.svelte-1wdzvwu{gap:10px;padding:12px 14px}.r-head.svelte-1wdzvwu{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.r-id.svelte-1wdzvwu{font-size:.78rem;color:var(--color-synapse-glow, #818cf8);word-break:break-all}.r-risk.svelte-1wdzvwu{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.r-metrics.svelte-1wdzvwu{display:flex;gap:20px}.metric.svelte-1wdzvwu{display:flex;flex-direction:column;gap:1px}.m-val.svelte-1wdzvwu{font-size:1.25rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.m-label.svelte-1wdzvwu{font-size:.64rem;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-dim, #8b8ba7)}.r-section.svelte-1wdzvwu{display:flex;flex-direction:column;gap:6px}.r-section-title.svelte-1wdzvwu{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-dim, #8b8ba7)}.path.svelte-1wdzvwu{font-size:.8rem;font-family:var(--font-mono, monospace);color:var(--color-text, #e2e2f0);padding:4px 8px;border-radius:6px;background:color-mix(in oklab,var(--color-synapse) 8%,transparent)}.chips.svelte-1wdzvwu{display:flex;flex-wrap:wrap;gap:5px}.chip.svelte-1wdzvwu{font-size:.72rem;padding:2px 8px;border-radius:6px}.chip.recall.svelte-1wdzvwu{color:var(--color-recall, #10b981);background:color-mix(in oklab,var(--color-recall) 12%,transparent);border:1px solid color-mix(in oklab,var(--color-recall) 28%,transparent)}.chip.suppress.svelte-1wdzvwu{color:#a78bfa;background:color-mix(in oklab,#a78bfa 12%,transparent);border:1px solid color-mix(in oklab,#a78bfa 28%,transparent);text-decoration:line-through;text-decoration-color:color-mix(in oklab,#a78bfa 50%,transparent)}.cinema-btn.svelte-1wdzvwu{margin-top:2px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;font-size:.8rem;font-weight:600;border-radius:9px;border:1px solid color-mix(in oklab,var(--color-synapse) 40%,transparent);background:color-mix(in oklab,var(--color-synapse) 12%,transparent);color:var(--color-synapse-glow, #818cf8);cursor:pointer;transition:all .18s ease}.cinema-btn.svelte-1wdzvwu:hover:not(:disabled){background:color-mix(in oklab,var(--color-synapse) 24%,transparent);transform:translateY(-1px)}.cinema-btn.svelte-1wdzvwu:disabled{opacity:.4;cursor:not-allowed}.mode-toggle.svelte-1ayqwv0,.export-btn.svelte-1ayqwv0{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:.78rem;font-weight:600;border-radius:9px;border:1px solid color-mix(in oklab,var(--color-synapse) 30%,transparent);background:color-mix(in oklab,var(--color-synapse) 8%,transparent);color:var(--color-synapse-glow);cursor:pointer;transition:all .18s ease}.mode-toggle.svelte-1ayqwv0:hover,.export-btn.svelte-1ayqwv0:hover:not(:disabled){background:color-mix(in oklab,var(--color-synapse) 18%,transparent);transform:translateY(-1px)}.mode-toggle.on.svelte-1ayqwv0{background:var(--color-synapse);color:#fff}.export-btn.svelte-1ayqwv0:disabled{opacity:.4;cursor:not-allowed}.spine.svelte-1ayqwv0{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;border-radius:14px;padding:14px 18px;margin-bottom:18px;overflow:hidden}.spine-item.svelte-1ayqwv0{display:flex;flex-direction:column;gap:4px;padding:2px 14px}.spine-label.svelte-1ayqwv0{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-dim, #8b8ba7)}.spine-value.svelte-1ayqwv0{font-size:.92rem;font-weight:600;display:inline-flex;align-items:center;gap:7px}.spine-run.svelte-1ayqwv0{font-size:.82rem;color:var(--color-synapse-glow);word-break:break-all}.dot.svelte-1ayqwv0{width:8px;height:8px;border-radius:50%;background:#64748b;box-shadow:0 0 0 0 transparent}.dot.live.svelte-1ayqwv0{background:var(--color-recall, #10b981);animation:svelte-1ayqwv0-ping 2s ease-in-out infinite}.dot.big.svelte-1ayqwv0{width:12px;height:12px}@keyframes svelte-1ayqwv0-ping{0%,to{box-shadow:0 0 color-mix(in oklab,var(--color-recall) 60%,transparent)}50%{box-shadow:0 0 0 6px transparent}}.ev-chip.svelte-1ayqwv0{font-size:.74rem;font-weight:700;padding:2px 8px;border-radius:6px;color:var(--c);background:color-mix(in oklab,var(--c) 14%,transparent);border:1px solid color-mix(in oklab,var(--c) 35%,transparent)}.layout.svelte-1ayqwv0{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}@media(max-width:860px){.layout.svelte-1ayqwv0{grid-template-columns:1fr}}.glass.svelte-1ayqwv0{background:color-mix(in oklab,var(--color-void, #050510) 55%,transparent);border:1px solid color-mix(in oklab,white 8%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px}.panel-title.svelte-1ayqwv0{font-size:.82rem;font-weight:700;letter-spacing:.02em;margin:0 0 12px}.text-dim.svelte-1ayqwv0{color:var(--color-text-dim, #8b8ba7);font-weight:400}.empty.svelte-1ayqwv0{font-size:.82rem;color:var(--color-text-dim, #8b8ba7);line-height:1.5}.runs.svelte-1ayqwv0{padding:16px;position:sticky;top:16px;max-height:calc(100vh - 40px);overflow-y:auto}.runs.svelte-1ayqwv0 ul:where(.svelte-1ayqwv0){list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.run-row.svelte-1ayqwv0{width:100%;text-align:left;padding:9px 11px;border-radius:10px;border:1px solid transparent;background:color-mix(in oklab,white 3%,transparent);cursor:pointer;transition:all .16s ease}.run-row.svelte-1ayqwv0:hover{background:color-mix(in oklab,var(--color-synapse) 12%,transparent)}.run-row.active.svelte-1ayqwv0{border-color:color-mix(in oklab,var(--color-synapse) 45%,transparent);background:color-mix(in oklab,var(--color-synapse) 16%,transparent)}.run-top.svelte-1ayqwv0{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.run-id.svelte-1ayqwv0{font-size:.78rem;color:var(--color-synapse-glow)}.run-tool.svelte-1ayqwv0{font-size:.7rem;color:var(--color-text-dim, #8b8ba7);white-space:nowrap}.run-stats.svelte-1ayqwv0{display:flex;gap:8px;margin-top:5px;font-size:.68rem;color:var(--color-text-dim, #8b8ba7)}.s-recall.svelte-1ayqwv0{color:var(--color-recall, #10b981)}.s-suppress.svelte-1ayqwv0{color:#a78bfa}.s-write.svelte-1ayqwv0{color:#38bdf8}.s-veto.svelte-1ayqwv0{color:#f43f5e}.replay.svelte-1ayqwv0{display:flex;flex-direction:column;gap:14px;min-width:0}.center-msg.svelte-1ayqwv0{padding:40px;text-align:center;color:var(--color-text-dim, #8b8ba7)}.center-msg.err.svelte-1ayqwv0{color:#f87171}.scrubber.svelte-1ayqwv0{padding:16px 18px}.scrub-head.svelte-1ayqwv0{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:.82rem}.scrub-time.svelte-1ayqwv0{color:var(--color-synapse-glow);font-variant-numeric:tabular-nums}.scrub-range.svelte-1ayqwv0{width:100%;accent-color:var(--color-synapse)}.ticks.svelte-1ayqwv0{display:flex;gap:2px;margin-top:10px;height:22px;align-items:stretch}.tick.svelte-1ayqwv0{flex:1;min-width:2px;border:none;border-radius:2px;background:color-mix(in oklab,var(--c) 22%,transparent);cursor:pointer;transition:all .16s ease;padding:0}.tick.past.svelte-1ayqwv0{background:var(--c);box-shadow:0 0 6px -1px var(--c)}.tick.svelte-1ayqwv0:hover{transform:scaleY(1.25)}.event-detail.svelte-1ayqwv0{padding:16px 18px;border-left:3px solid var(--c)}.ed-head.svelte-1ayqwv0{display:flex;align-items:center;gap:10px}.ed-glyph.svelte-1ayqwv0{font-size:1.2rem;color:var(--c)}.ed-label.svelte-1ayqwv0{font-weight:700;color:var(--c)}.ed-time.svelte-1ayqwv0{margin-left:auto;font-size:.74rem;color:var(--color-text-dim, #8b8ba7)}.ed-summary.svelte-1ayqwv0{margin:10px 0 0;font-size:.9rem;line-height:1.5}.ids-grid.svelte-1ayqwv0{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.id-chip.svelte-1ayqwv0{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:7px;background:color-mix(in oklab,var(--color-recall) calc(var(--a, 0) * 30%),transparent);border:1px solid color-mix(in oklab,var(--color-recall) 30%,transparent);font-size:.74rem}.id-chip.svelte-1ayqwv0 small:where(.svelte-1ayqwv0){color:var(--color-recall, #10b981);font-weight:700}.contra.svelte-1ayqwv0{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:.8rem}.winner.svelte-1ayqwv0{color:var(--color-recall, #10b981);font-weight:700}.vs.svelte-1ayqwv0{color:var(--color-text-dim, #8b8ba7)}.loser.svelte-1ayqwv0{color:#fb7185;text-decoration:line-through;opacity:.7}.veto-evidence.svelte-1ayqwv0{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.veto-evidence.svelte-1ayqwv0 code:where(.svelte-1ayqwv0){padding:2px 7px;border-radius:6px;background:color-mix(in oklab,#f43f5e 12%,transparent);font-size:.74rem}.pulse.svelte-1ayqwv0{padding:16px 18px}.pulse-grid.svelte-1ayqwv0{display:flex;flex-wrap:wrap;gap:6px}.pulse-node.svelte-1ayqwv0{padding:3px 8px;border-radius:7px;background:color-mix(in oklab,var(--color-synapse) 12%,transparent);border:1px solid color-mix(in oklab,var(--color-synapse) 28%,transparent);font-size:.74rem;color:var(--color-synapse-glow);animation:svelte-1ayqwv0-pulse-in .4s ease}@keyframes svelte-1ayqwv0-pulse-in{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.receipts-panel.svelte-1ayqwv0{padding:16px 18px}.receipts-grid.svelte-1ayqwv0{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.producers.svelte-1ayqwv0{padding:16px 18px}.producer-list.svelte-1ayqwv0{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.producer.svelte-1ayqwv0{display:flex;align-items:center;gap:9px;font-size:.78rem;color:var(--color-text-dim, #8b8ba7)}.producer.svelte-1ayqwv0 .p-dot:where(.svelte-1ayqwv0){width:8px;height:8px;border-radius:50%;background:#475569;flex-shrink:0}.producer.ok.svelte-1ayqwv0{color:var(--color-text, #e2e2f0)}.producer.ok.svelte-1ayqwv0 .p-dot:where(.svelte-1ayqwv0){background:var(--color-recall, #10b981);box-shadow:0 0 6px -1px var(--color-recall, #10b981)}.producer.caveat.svelte-1ayqwv0:not(.ok) .p-dot:where(.svelte-1ayqwv0){background:#f59e0b;opacity:.6}.p-state.svelte-1ayqwv0{margin-left:auto;font-size:.7rem;font-style:italic;text-align:right;color:var(--color-text-dim, #8b8ba7)}.producer.caveat.svelte-1ayqwv0:not(.ok) .p-state:where(.svelte-1ayqwv0){color:#f59e0b}.log.svelte-1ayqwv0{padding:16px 18px}.log-list.svelte-1ayqwv0{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.log-row.svelte-1ayqwv0{border-radius:8px;border-left:2px solid var(--c);transition:all .16s ease}.log-row.active.svelte-1ayqwv0{background:color-mix(in oklab,var(--c) 14%,transparent)}.log-row.dim.svelte-1ayqwv0{opacity:.4}.log-btn.svelte-1ayqwv0{width:100%;display:grid;grid-template-columns:22px 110px 1fr auto;align-items:center;gap:8px;padding:7px 10px;background:none;border:none;cursor:pointer;text-align:left;font-size:.8rem}.log-glyph.svelte-1ayqwv0{color:var(--c);text-align:center}.log-label.svelte-1ayqwv0{font-weight:600;color:var(--c)}.log-summary.svelte-1ayqwv0{color:var(--color-text-dim, #8b8ba7);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-t.svelte-1ayqwv0{font-size:.7rem;color:var(--color-text-dim, #8b8ba7);font-variant-numeric:tabular-nums}.proof-stage.svelte-1ayqwv0{padding:60px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:26px;min-height:50vh;justify-content:center}.proof-headline.svelte-1ayqwv0{display:flex;align-items:center;gap:12px}.proof-run.svelte-1ayqwv0{font-size:1.4rem;color:var(--color-synapse-glow);font-weight:700}.proof-event.svelte-1ayqwv0{display:flex;align-items:center;gap:16px;padding:18px 26px;border-radius:14px;border:1px solid color-mix(in oklab,var(--c) 40%,transparent);background:color-mix(in oklab,var(--c) 10%,transparent)}.proof-glyph.svelte-1ayqwv0{font-size:2rem;color:var(--c)}.proof-ev-label.svelte-1ayqwv0{font-size:1.1rem;font-weight:700;color:var(--c)}.proof-ev-sum.svelte-1ayqwv0{font-size:.85rem;color:var(--color-text-dim, #8b8ba7)}.proof-counter.svelte-1ayqwv0{font-size:3.4rem;font-weight:800;line-height:1;color:var(--color-synapse-glow)}.proof-counter-label.svelte-1ayqwv0{display:block;font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim, #8b8ba7);margin-top:8px}.proof-tagline.svelte-1ayqwv0{font-size:1rem;color:var(--color-text-dim, #c0c0d8);max-width:32ch;line-height:1.5} diff --git a/apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css.br b/apps/dashboard/build/_app/immutable/assets/5.Tl8-WHJj.css.br new file mode 100644 index 0000000000000000000000000000000000000000..328c39d75b83fd315fbf1755e3de24aeee3d0f74 GIT binary patch literal 2276 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 YQd{aHC6cCU(q<}{>G4RnLK?Vu11wAhsQ>@~ diff --git a/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.gz b/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.gz deleted file mode 100644 index 31323c7b9b16251d665e25d75628da0bf23b3ede..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2906 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 E09@Cu0RR91 diff --git a/apps/dashboard/build/_app/immutable/assets/5.DQ_AfUnN.css b/apps/dashboard/build/_app/immutable/assets/6.DQ_AfUnN.css similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/5.DQ_AfUnN.css rename to apps/dashboard/build/_app/immutable/assets/6.DQ_AfUnN.css diff --git a/apps/dashboard/build/_app/immutable/assets/5.DQ_AfUnN.css.br b/apps/dashboard/build/_app/immutable/assets/6.DQ_AfUnN.css.br similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/5.DQ_AfUnN.css.br rename to apps/dashboard/build/_app/immutable/assets/6.DQ_AfUnN.css.br diff --git a/apps/dashboard/build/_app/immutable/assets/5.DQ_AfUnN.css.gz b/apps/dashboard/build/_app/immutable/assets/6.DQ_AfUnN.css.gz similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/5.DQ_AfUnN.css.gz rename to apps/dashboard/build/_app/immutable/assets/6.DQ_AfUnN.css.gz diff --git a/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css b/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css deleted file mode 100644 index 985879a..0000000 --- a/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes svelte-1uyjqky-fadeSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}} diff --git a/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.br b/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.br deleted file mode 100644 index f233cae882b39edf8586301b5f3bbcf2c27c0c47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89 zcmV-f0H*&NaRBIzlT`IJZg5_zgAO&Y)JF)}N2lNh2Ou%Tfdpyb>F&b@oP{th)4-p& vFW>mz4)&`Yj#9JEw_E#HtJ0#}q57NjpL^OhJ@av2f=z_IJd$StSTvCU#)>Ui diff --git a/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.gz b/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.gz deleted file mode 100644 index c8d6d4360e29673f6cfbc68dfed7ad88860a37fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104 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 JAWJL@007Ot)8zmF literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css b/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css new file mode 100644 index 0000000..ae9f1db --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css @@ -0,0 +1 @@ +.vestige-icon.svelte-1eqehiz{display:inline-block;flex-shrink:0;vertical-align:middle;overflow:visible}@media not (prefers-reduced-motion:reduce){.vestige-icon-draw.svelte-1eqehiz path,.vestige-icon-draw.svelte-1eqehiz circle,.vestige-icon-draw.svelte-1eqehiz rect{stroke-dasharray:64;stroke-dashoffset:64;animation:svelte-1eqehiz-icon-draw .7s cubic-bezier(.65,0,.35,1) forwards}@keyframes svelte-1eqehiz-icon-draw{to{stroke-dashoffset:0}}} diff --git a/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.br b/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.br new file mode 100644 index 0000000000000000000000000000000000000000..468287b948fa7729f0a7fab7a09e9743dff621ad GIT binary patch literal 202 zcmV;*05$&`xd9-I)L_k?1DQCNvX!Is5tSX>h>`)7Lf_jq_7?>S!4aO*Z5$Eg*H}Ss zcDlQ9GjB1H=$Fj8&V6gt-?|4&5`hxGDmC}W1$01zIGGohM`4bUIBt_Nd+uM6aP#`& zl-8}=|Gfd#xZ~WIC=#Mdo;I2bs6v{Fkik#rBt0n+Mz$VX__DCHRR#)NjwP@@ujkh^ zat?)ZMgZs_lIyoh-&pybm-ysiPS6_qdU5uRPXjxc2Q@n0{uw4oO;~|)Xg7;g3y`+o E2K;ehp8x;= literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.gz b/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..dbe46638974b731301662724f6ba920cca5034d5 GIT binary patch literal 249 zcmVkF69(sh~wlF8!4kd)++6vD0Tap^ftI z2sltc2#z~iji#KCGM}K?#89RQK11(tM#s0savD8dYYv_RbnBz(8|U$&Qzsnyx@sm! zW}zZ>lB7Wy4*{4y$3$ zjoCnYePxm1>u8W;>S>_C!|1TX3vfz^R&>HCb3e`oWaleilQn2CM&}(3zBACRu23%- zAfN#Wjij6Fb(TjVQ0|0<;t%jQz8YP!5xp`3>A)BHNV=bNGN*y2W{_OUM)K?KFyH0A o)2g0M!B%5aOvU}`p+SHJL z7n4#^D89|?%&;?A2fhKZiUG28grH!zuSGh3_RhBoGSy59r0)K{jGR!B$@waA7!*q7 z=wk5l&VUQgKj zCG%TeBK8pYWL}a1pTHtn9@HSUNT@LHKj7So?;)96*(u*VDNol$MKSO4%@5zr^PDM+ lYAYW+)qhJ)i*^zp-NkURM*-FIZTG6rcVEDFN5b&|002D{k97b5 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js b/apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js new file mode 100644 index 0000000..df354f9 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js @@ -0,0 +1,2 @@ +import{D as z,q as dr,aD as sr,G as A,L as U,N as gr,T as pr,g as m,U as hr,W as _r,X as x,K,M as G,I as Er,aE as Ar,aF as y,w as Sr,aG as b,$ as q,aH as Tr,a1 as Nr,ao as br,z as Ir,aI as V,aJ as Mr,aK as Or,ac as Cr,aL as rr,aM as Rr,Y as ur,_ as or,aN as P,R as lr,aO as Lr,aP as wr,aQ as Hr,Z as kr,J as Dr,aR as Fr,aS as Gr,aT as zr,aU as Ur,aV as tr,aW as Kr}from"./wpu9U-D0.js";function jr(r,e){return e}function Pr(r,e,f){for(var a=[],n=e.length,s,u=e.length,v=0;v{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var t=r.outrogroups;B(V(s.done)),t.delete(s),t.size===0&&(r.outrogroups=null)}}else u-=1},!1)}if(u===0){var o=a.length===0&&f!==null;if(o){var d=f,l=d.parentNode;Hr(l),l.append(d),r.items.clear()}B(e,!o)}else s={pending:new Set(e),done:new Set},(r.outrogroups??(r.outrogroups=new Set)).add(s)}function B(r,e=!0){for(var f=0;f{var c=f();return Ir(c)?c:c==null?[]:V(c)}),t,p=!0;function S(){i.fallback=l,Yr(i,t,u,e,a),l!==null&&(t.length===0?(l.f&b)===0?ur(l):(l.f^=b,k(l,null,u)):or(l,()=>{l=null}))}var T=dr(()=>{t=m(g);var c=t.length;let C=!1;if(A){var R=hr(u)===_r;R!==(c===0)&&(u=x(),U(u),K(!1),C=!0)}for(var _=new Set,M=Sr,L=Nr(),h=0;hs(u)):(l=q(()=>s(er??(er=z()))),l.f|=b)),c>_.size&&Tr(),A&&c>0&&U(x()),!p)if(L){for(const[D,F]of v)_.has(D)||M.skip_effect(F.e);M.oncommit(S),M.ondiscard(()=>{})}else S();C&&K(!0),m(g)}),i={effect:T,items:v,outrogroups:null,fallback:l};p=!1,A&&(u=G)}function H(r){for(;r!==null&&(r.f&Lr)===0;)r=r.next;return r}function Yr(r,e,f,a,n){var E,D,F,X,J,W,$,Q,Z;var s=(a&wr)!==0,u=e.length,v=r.items,o=H(r.effect.first),d,l=null,g,t=[],p=[],S,T,i,c;if(s)for(c=0;c0){var w=(a&sr)!==0&&u===0?f:null;if(s){for(c=0;c{var N,j;if(g!==void 0)for(i of g)(j=(N=i.nodes)==null?void 0:N.a)==null||j.apply()})}function qr(r,e,f,a,n,s,u,v){var o=(u&Mr)!==0?(u&Or)===0?Cr(f,!1,!1):rr(f):null,d=(u&Rr)!==0?rr(n):null;return{v:o,i:d,e:q(()=>(s(e,o??f,d??n,v),()=>{r.delete(a)}))}}function k(r,e,f){if(r.nodes)for(var a=r.nodes.start,n=r.nodes.end,s=e&&(e.f&b)===0?e.nodes.start:f;a!==null;){var u=Dr(a);if(s.before(a),a===n)return;a=u}}function I(r,e,f){e===null?r.effect.first=f:e.next=f,f===null?r.effect.last=e:f.prev=e}function cr(r){var e,f,a="";if(typeof r=="string"||typeof r=="number")a+=r;else if(typeof r=="object")if(Array.isArray(r)){var n=r.length;for(e=0;e=0;){var v=u+s;(u===0||fr.includes(a[u-1]))&&(v===a.length||fr.includes(a[v]))?a=(u===0?"":a.substring(0,u))+a.substring(v+1):u=v}}return a===""?null:a}function ar(r,e=!1){var f=e?" !important;":";",a="";for(var n of Object.keys(r)){var s=r[n];s!=null&&s!==""&&(a+=" "+n+": "+s+f)}return a}function Y(r){return r[0]!=="-"||r[1]!=="-"?r.toLowerCase():r}function yr(r,e){if(e){var f="",a,n;if(Array.isArray(e)?(a=e[0],n=e[1]):a=e,r){r=String(r).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var s=!1,u=0,v=!1,o=[];a&&o.push(...Object.keys(a).map(Y)),n&&o.push(...Object.keys(n).map(Y));var d=0,l=-1;const T=r.length;for(var g=0;g{if(!e){if(e=!0,r.hasAttribute("value")){var a=r.value;ir(r,"value",null),r.value=a}if(r.hasAttribute("checked")){var n=r.checked;ir(r,"checked",null),r.checked=n}}};r.__on_r=f,lr(f),Kr()}}function fe(r,e){var f=vr(r);f.value===(f.value=e??void 0)||r.value===e&&(e!==0||r.nodeName!==$r)||(r.value=e??"")}function ir(r,e,f,a){var n=vr(r);A&&(n[e]=r.getAttribute(e),e==="src"||e==="srcset"||e==="href"&&r.nodeName===Wr)||n[e]!==(n[e]=f)&&(e==="loading"&&(r[Fr]=f),f==null?r.removeAttribute(e):typeof f!="string"&&Qr(r).includes(e)?r[e]=f:r.setAttribute(e,f))}function vr(r){return r.__attributes??(r.__attributes={[Xr]:r.nodeName.includes("-"),[Jr]:r.namespaceURI===Gr})}var nr=new Map;function Qr(r){var e=r.getAttribute("is")||r.nodeName,f=nr.get(e);if(f)return f;nr.set(e,f=[]);for(var a,n=r,s=Element.prototype;s!==n;){a=Ur(n);for(var u in a)a[u].set&&f.push(u);n=zr(n)}return f}export{ir as a,fe as b,xr as c,mr as e,jr as i,ee as r,re as s,yr as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js.br b/apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8810358673f68cc270cce19a4eb18634db1a1de3 GIT binary patch literal 3082 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 Y@-@~0uUm<5XfXNfNzX^@95dbD0}g)x2><{9 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js.gz b/apps/dashboard/build/_app/immutable/chunks/60_R_Vbt.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..2795bf5d22846a113e4ece56e17c772f6ab4c53b GIT binary patch literal 3390 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 U;NHxao8a&N1%5GFLVg?o0QMxdbN~PV literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js b/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js deleted file mode 100644 index 8840e85..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js +++ /dev/null @@ -1 +0,0 @@ -import{a1 as u,a2 as v,a3 as h,N as i,a4 as g,a5 as f,Y as A,a6 as S}from"./CpWkWWOo.js";const N=Symbol("is custom element"),p=Symbol("is html"),T=f?"link":"LINK",E=f?"progress":"PROGRESS";function k(r){if(i){var s=!1,a=()=>{if(!s){if(s=!0,r.hasAttribute("value")){var e=r.value;_(r,"value",null),r.value=e}if(r.hasAttribute("checked")){var o=r.checked;_(r,"checked",null),r.checked=o}}};r.__on_r=a,A(a),S()}}function l(r,s){var a=d(r);a.value===(a.value=s??void 0)||r.value===s&&(s!==0||r.nodeName!==E)||(r.value=s??"")}function _(r,s,a,e){var o=d(r);i&&(o[s]=r.getAttribute(s),s==="src"||s==="srcset"||s==="href"&&r.nodeName===T)||o[s]!==(o[s]=a)&&(s==="loading"&&(r[u]=a),a==null?r.removeAttribute(s):typeof a!="string"&&L(r).includes(s)?r[s]=a:r.setAttribute(s,a))}function d(r){return r.__attributes??(r.__attributes={[N]:r.nodeName.includes("-"),[p]:r.namespaceURI===v})}var c=new Map;function L(r){var s=r.getAttribute("is")||r.nodeName,a=c.get(s);if(a)return a;c.set(s,a=[]);for(var e,o=r,n=Element.prototype;n!==o;){e=g(o);for(var t in e)e[t].set&&a.push(t);o=h(o)}return a}export{l as a,k as r,_ as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.br b/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.br deleted file mode 100644 index fe4ef81fcfe97ba93639fa77c894caec5b455b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?PdxSOh>EseSdWTI6eK`#YCY;zMLhrq$7de&e?qnzhWbq0P#sw5g=0x>_5Z z&KACqw%z|_oc}C}pcWKJ96_NMkFY3>V^Ggd`~rcL!mxK+Y%H2bwWU9JiZ0`ce!hSq zy24(aqN{kU|4v{px~BiAEPkZ9`Gct}bJszs!gIg*j7<<{(oklR62TpbPSKHugRrfi z81Ik_V%nnF&DHhjP74kG=vmHHlGrwH*yVi~^Prqzfp$?1EZ9DbHjv?IdqI6}VzKw2 z2Mi`DF-b_4GkgxJo6gx4l~)sCiQZpCuEUt=p=>z%5h)ZT@uP9jKj!-lO06~d-1&LA zKX;h!v5Ed*sa15~*3_VR%W%mq$vBe(7=UAE$A#=K$j66cSdFgZXn_T2WT=tBf-u|> zzB6{h0U}{BdR|e}%xb*+FmxT4K2G7Y&ha5c0|14O=;H&Bi~R6H20uVu#{+=KPeh&H z0@UgzdhXd)cj(3@V8fNdULJ1o;Tgr$2H9W DDsmp% diff --git a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.gz b/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.gz deleted file mode 100644 index 0b6c8051c2b9309f7485fa16605a29e894a3d4bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_n_iwFP!000026J1pAYuhjo{l34#)(0bj=C%9vA?6m!2&1e^N7GS82;u6; zi56QjCplY*{l5<-ah>+llke%?-8;$BRc*=d@iIaeH4@(k+)4Zpa3iMyw8W1A*AhPk zEadM1R}w!5oOK1+ily(q)(_imTB2}tN8P9~Q z&)JQyN+#qz6k}Fuvt=W8b3Oge(byeG2l0iZbc627d(w}MSDfvzY!nm6JOz{<0@;$2JaN)AWhvx| z0oCb(zgEdND&MMAuVaDIQ|PGF^UqqR0NAeUGD??AYnB8kuQ&=hBi%o)vM@2v@Jc;E=jnH0WLz&*p-@MrDA}IXj@K0Dq~`(7aDdFrRu#L zYU(86cJ3BH>00^0x)ag?0CSYHw(XZr`TlD|s$fYn)CYij(Y8S>1~`hM2%U!QrNxyt zYnCLO=1pKE0)(-RDJ50eojNZ*@=vw0MT9Xh=joVv!%3vt>F@G6={d~F@4VH#t>@5>=ULQ!Tl&djUzwWL9VAqK*%rgh0 z{zgBr9&T^w_jGSxO_yoM#QEV#ggk8FPGq{^C{7JymIrge6U-MPD=hKDjg}Tj8kija zxwIzhZJ1eRVgQ?oy@EBjLxPXAiIh-tzX*a!f@$5j4fi6mu;Es8eZ@}wJ3Jj_cmq&w U1CU$>a9#H1Kd~>r5m^KP0FA*lIsgCw diff --git a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js b/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js deleted file mode 100644 index 964c791..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js +++ /dev/null @@ -1 +0,0 @@ -import{b as T,N as o,ab as b,E as h,ac as R,ax as p,ad as A,ae as E,T as g,R as l}from"./CpWkWWOo.js";import{B as v}from"./DdEqwvdI.js";function m(t,c,u=!1){o&&b();var n=new v(t),_=u?h:0;function i(a,r){if(o){const e=R(t);var s;if(e===p?s=0:e===A?s=!1:s=parseInt(e.substring(1)),a!==s){var f=E();g(f),n.anchor=f,l(!1),n.ensure(a,r),l(!0);return}}n.ensure(a,r)}T(()=>{var a=!1;c((r,s=0)=>{a=!0,i(s,r)}),a||i(!1,null)},_)}export{m as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.br b/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.br deleted file mode 100644 index ca1901d6d4dba9fc062e7c9181783941479d097c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh#$vjG6C4s26v2m2c~7EC)jS?k66&1s-jo!6UmWJ@l+tvu%ADe(xwA!l0h z=Ai{zv-IulY=y5dH~I7y*H?FIMg9N3sqbIFNOKyCCT`#3cpB=YV$a-__7de`+gNs< zh`fmNuPdCZI9g|~B8NDaMij%-_XRIH!KWSqcjTDdi1y^DG^J4+K^HJdIV?}w7hAn|}3lJA|^GR&S6aOi?hLa6Xpt+zzLd$?KK zS6g@xF!QN%Wy9*RULj5E%2C(`0a%-8N-|&3Q3`n^v}+ooH4N1`q#UHllz}ffAvV)E z6SDs&Z*~MgZV!6wurzHC;6hh61OhWQD1oc)0aCwT0@9?d*uhBrKc5kO3-NV-_dfuO CppzE> diff --git a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.gz b/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.gz deleted file mode 100644 index 30c2f17a85989acd1652e35433e1622e5009df67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmV-C0mJ?uiwFP!000026IGDGYQr!PMDP6yJBP4>#kH?7+mNu}o6j=DEh(AGpP1gx;9I1{5? zE=v&kAYEk0sB1Jp5O}11eOaY{5e*WZ7{const o=e?"?"+new URLSearchParams(e).toString():"";return t(`/memories${o}`)},get:e=>t(`/memories/${e}`),delete:e=>t(`/memories/${e}`,{method:"DELETE"}),promote:e=>t(`/memories/${e}/promote`,{method:"POST"}),demote:e=>t(`/memories/${e}/demote`,{method:"POST"}),suppress:(e,o)=>t(`/memories/${e}/suppress`,{method:"POST",body:o?JSON.stringify({reason:o}):void 0}),unsuppress:e=>t(`/memories/${e}/unsuppress`,{method:"POST"})},search:(e,o=20)=>t(`/search?q=${encodeURIComponent(e)}&limit=${o}`),stats:()=>t("/stats"),health:()=>t("/health"),timeline:(e=7,o=200)=>t(`/timeline?days=${e}&limit=${o}`),graph:e=>{const o=e?"?"+new URLSearchParams(Object.entries(e).filter(([,i])=>i!==void 0).map(([i,s])=>[i,String(s)])).toString():"";return t(`/graph${o}`)},dream:()=>t("/dream",{method:"POST"}),explore:(e,o="associations",i,s=10)=>t("/explore",{method:"POST",body:JSON.stringify({from_id:e,action:o,to_id:i,limit:s})}),predict:()=>t("/predict",{method:"POST"}),importance:e=>t("/importance",{method:"POST",body:JSON.stringify({content:e})}),consolidate:()=>t("/consolidate",{method:"POST"}),retentionDistribution:()=>t("/retention-distribution"),intentions:(e="active")=>t(`/intentions?status=${e}`),deepReference:(e,o=20)=>t("/deep_reference",{method:"POST",body:JSON.stringify({query:e,depth:o})}),sanhedrin:{latest:()=>t("/sanhedrin/latest"),telemetry:(e=7)=>t(`/sanhedrin/telemetry?days=${e}`),appeal:(e,o,i,s)=>t("/sanhedrin/appeal",{method:"POST",body:JSON.stringify({reason:e,note:o,claimId:i,receiptId:s})})}};export{n as a}; diff --git a/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.br b/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.br deleted file mode 100644 index d93874181fbfac113a243da8c24b659269520584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t!#+XeuP)LN}JY}?Z5o@H`WdRXyu~xbAY%b+MUk zKZM853b+j>zn96b*=+HU=wXaS$-`$$Y0o*`vaB)n&A;Z7K$&m}r4Tp~O75$nV#33^i zf+?LKO%72xcBLADSu5K~_)RPNwp<#LM>=t#;NXCO1Cp1o4G|_P8vqrIfyv=Sptq2dFRlp^zq gM1_0p8dTk#F4dahx&~I%eKMG#LXJh%e}#N90ut>otN;K2 diff --git a/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.gz b/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.gz deleted file mode 100644 index a99151aec26ca858483f7fc395cfc810b4eaa869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEIUiwFP!000026OB|&Z`&{oz3*3eLNHjEW_P;`P~Zl`+Czt8E&6dPhDEiR znw>4FlCm~1^xp@`9|_uY=uvzk`A9ypRMNV{6eJfK$z0ftER)q*mJXFnTnbFlu8g0s z5RU>~vI1Au>2lT?KkL9RSyzLoz*ydq?@Bt5?$gyq1K~ty-C!v~to+_8Nj%H4OnExT zRr($?^@qCJsK-RYV{&YaGU@W$`AIVCFtbj$we@`GaRpD#FX`NXTN{~R7GkE<_xxnh zwa_YqV0qV|bsUPrfx9YTK^Ej=$a8&hdI`dm^|>&jwJFfdsY_>2-ldciGKP2QG9LrZ zI^~ztvpa}UccDBsfwBr3aIha`T??*O6(>i>r^i>v#8ak?YSk+a`2g-Xo}XP_1-A-b z_v*1dPIj%e0c&}j=RVi*$8%?PtEvrGiyxO~KQkMfgsV;384y-Ut~}*`6;{cCr)({! zJbUSF@s|`mvvDSoVe#c)AlVxi55=qlS*i-IFHXLzRx1h8r9l0M23vGRKOYukVtE>! zNgiK>vKmC=>dD+c31tpjXix%Aq4*lJj%i0^QHhNWxu4~^GeXyIl-JqqJ(Mm3=|U%h z+E&;&Fll-m2pCrgW^fPwY-f|*@G~YOoRxrtCYmJq!#4cU1BSL)6=KtZVe0 z&`;G4OejM+0Ac3}658<>$RMvRxabdCG2IZ*7q9{Yq2k?DAbG%kn-P3l@egY-8xE`j z?dq_s;T8y4LuF9%t`QFGb_^4e_dr+?XrKjWHgQMBrJVjv@ODv_lnJdtG?9ML(u?Rl z{

'),A=f('
'),B=f('

');function M(u,e){let v=P(e,"accent",3,"synapse");var l=B(),m=a(l),i=a(m),b=a(i);H(b,{get name(){return e.icon},size:22,draw:!0}),s(i);var x=c(i,2),d=a(x),g=a(d,!0);s(d);var z=c(d,2);{var w=t=>{var r=q(),n=a(r,!0);s(r),h(()=>p(n,e.subtitle)),o(t,r)};_(z,t=>{e.subtitle&&t(w)})}s(x),s(m);var y=c(m,2);{var j=t=>{var r=A(),n=a(r);k(n,()=>e.children),s(r),o(t,r)};_(y,t=>{e.children&&t(j)})}s(l),h(()=>{I(i,1,`header-tile relative flex items-center justify-center w-11 h-11 rounded-xl shrink-0 + bg-${v()??""}/12 border border-${v()??""}/25 text-${v()??""}-glow`,"svelte-162svzm"),p(g,e.title)}),o(u,l)}export{M as P}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BHDZZvku.js.br b/apps/dashboard/build/_app/immutable/chunks/BHDZZvku.js.br new file mode 100644 index 0000000000000000000000000000000000000000..3474420c9f190c2b3eb3dfbb3f82106deb96c02f GIT binary patch literal 653 zcmV;80&@Kug9QNOTB^O1&x?@U-7>Sdb(|};Aq!QIQR$=kKb!9V9o!pG;DJP%W{Yw_8yV|-`D#Jsjs-CeU*&n%sh^n;|S|^n?K1PTFNKwe|3<(M@`0o+A*Ldu5rOGfBdeg~y~KFA6>D0ShH3 zgKh+pz-HLuRe2)MZsCkS!&11{D8-|3<_ zC)+;>7j(dN?|YU?Eedg@B{PwNB#@BV4;jM%fQh4p1l1@no!CN(F+4+o85{QhphFl- z0*ZI<7Epi7Y{;R}8(~1}FbbLXUF|$VgJBLC(HaEtHzKlY9nbVHAjB#D z&wj>>P*35u-ZvUNH)3k5`E*JG0?Gp=c%uWD>+%ATb$ou)SHNy>DILbs+2AQeT;aFQ n!uc}uUEJ5_`ae>yHpS3_k7{Jc=HaC%QKRK>y#1R<$-Tb>(VR=l literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BHDZZvku.js.gz b/apps/dashboard/build/_app/immutable/chunks/BHDZZvku.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..13f4a03f939cb923738a5b3e93d83c6b8cb91260 GIT binary patch literal 746 zcmV1W4IdbLr~HMU0?Jwss2&bi?+= zrKDqt4n?UXCHVsV_kmL6xOIko(Gkh#yzk*v)RzH7Xx8p+*>4*ABfBG;`8Fq$Q}}J zSo+KPKOIqXjlP9Te0E);SaM@R&%)X=lcO#sB1gGpWB;OWml~|yAX9_1z$TZ0skgZ| zL)W8nc1Gw;CzXhL5L-%EBVi#oECyvkqm-8{Kqk{dJ+d)!0BbZa(W)|5EH?~Pa-@HK zI=dbvqIMqh&Lab!fPTToSg!3}ECSmAsLu5q^{Eijd=+ z&?w|skm((c=q?3|6wd*Zod#QJg}@hap;~Ih7TyH`O*C)bosL^VjmvVP>oCTG281Rd z$7@2**Eq(`=4j1wA=>CUy9(1x?_Plw+yp(^B9KP6~FGmJ?%E3u;Bn<}!x zN+5(5*iuc}=>l)5%YPnx{o3M&w4^o8-r&49-GnjD_ok}@)0@GROdqkL&JO%I6Ee}D zoPs{I+dSC~fU{fmc5=0;){var r=l+i;(l===0||e.includes(n[l-1]))&&(r===n.length||e.includes(n[r]))?n=(l===0?"":n.substring(0,l))+n.substring(r+1):l=r}}return n===""?null:n}function c(t,f){return t==null?null:String(t)}export{c as a,o as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.br b/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.br deleted file mode 100644 index 262d659ac377853302c31e978235ce4d8492a4b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmV+r0q_1BsR1C2#5fjmav%+gA*(jk!KjCR^w|H|pb}$%w0d)-Rd3QRMqr?(ZtCBI z(%RYB=iOsdqaq71khB1oZu78??vSZzl2-&hUvzT0suk)SQa!6VH|zh+y}6BsT5A+^ zyXcy((_6&;5?lefF;|YG9VfY(-8xzaK_rk$5=S}7TCYh$I2A6cTPshZCMPJM+(c(xB=ZLh_J6yO&DWfzILoPpnOHMQxY>n+1oa{gf)O^3IFV?t{nzMdO z6a>*3fSDzjK2uc*R1i1UvO%V_wn>;L=cG@XasK_X?M47NP9-;HEx$0rg(y_KF(5B~ W^_6~)Wz0VdHM^);+RYHS_!$e5#DPKp diff --git a/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.gz b/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.gz deleted file mode 100644 index ac3f7e94c0d91ae6c022dc1e9416d17696cc7322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz>+iwFP!000026J3x^PQx$|h1c{HmKTvn30AsIG-O4$U9fB-wN33}u*S$g zRZ*L}a28I6Oj|&#Mtb_*o0&H{3Xv&XNh#OtZr1x=e}43bJ}n*>i}ldzL}N6Lm=m$m zRf5xD;~8N@q-1T!dBb@bTcd?83PDI6m7MWXHySdoofp{>nA2>zeNkhSuj)OB1YopC zt1!T?D>R{1HYjGaAZZot<1^eM42G*zS*%-Ok))xWIxe*cl?8afy1g9e(Uv9?i1qob zq@mHKoeF|h_I^G96ov4Jc-!%h@dH3dc=6{SNrtoy(Hq)}I5>#-QpY#v<7s4@z&4f3BTnt?3&7(q*{T5m0BOFC A761SM diff --git a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js b/apps/dashboard/build/_app/immutable/chunks/BLadwbF7.js similarity index 76% rename from apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js rename to apps/dashboard/build/_app/immutable/chunks/BLadwbF7.js index 41853ff..5a1ac32 100644 --- a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js +++ b/apps/dashboard/build/_app/immutable/chunks/BLadwbF7.js @@ -1 +1 @@ -import{az as g,aA as d,aB as c,v as m,aC as i,aD as b,g as p,aE as v,z as h,aF as k}from"./CpWkWWOo.js";function x(t=!1){const a=g,e=a.l.u;if(!e)return;let f=()=>v(a.s);if(t){let n=0,s={};const _=h(()=>{let l=!1;const r=a.s;for(const o in r)r[o]!==s[o]&&(s[o]=r[o],l=!0);return l&&n++,n});f=()=>p(_)}e.b.length&&d(()=>{u(a,f),i(e.b)}),c(()=>{const n=m(()=>e.m.map(b));return()=>{for(const s of n)typeof s=="function"&&s()}}),e.a.length&&c(()=>{u(a,f),i(e.a)})}function u(t,a){if(t.l.s)for(const e of t.l.s)p(e);a()}k();export{x as i}; +import{a2 as g,a3 as d,o as c,P as m,a4 as i,a5 as b,g as p,a6 as v,a7 as h,a8 as k}from"./wpu9U-D0.js";function x(t=!1){const a=g,e=a.l.u;if(!e)return;let f=()=>v(a.s);if(t){let n=0,s={};const _=h(()=>{let l=!1;const r=a.s;for(const o in r)r[o]!==s[o]&&(s[o]=r[o],l=!0);return l&&n++,n});f=()=>p(_)}e.b.length&&d(()=>{u(a,f),i(e.b)}),c(()=>{const n=m(()=>e.m.map(b));return()=>{for(const s of n)typeof s=="function"&&s()}}),e.a.length&&c(()=>{u(a,f),i(e.a)})}function u(t,a){if(t.l.s)for(const e of t.l.s)p(e);a()}k();export{x as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BLadwbF7.js.br b/apps/dashboard/build/_app/immutable/chunks/BLadwbF7.js.br new file mode 100644 index 0000000000000000000000000000000000000000..3022c57669ca7a7a0a12a15ea08080ed5f608762 GIT binary patch literal 324 zcmV-K0lWSi76Jeq2f4}gCXu&&G(tJc^mYEUIw|>7hgz29E?Xxc`tW31b9>X~wl!?t zV_+6SC)ycAKYuR$dw`=EPbsP_XP{RO({hMx1fguii`{oFtOVUnlMD^?+^&C{X+;Ysv!g6)KD zk!rg1RQMZwF(hs0B*w78myrf6l8Hdg&2o8Ja9t+Lwr5+GFV&)gvxoWCDz_)&ms7ja zz;oo2$m})5t5sHPS{83J-%v^E*|lC5bEuHToilus(tSZyZ5?;`VTeE)^EDh&C@yMh zcA28E>SN;ueN`ByL?%wPe0RTZ;MblD~>WywuGT@)(63~MMJD=)$6L1nSsuP zzO%YEL6jtco)40hhtv%)q}b8|Jq=M$SA5V;rgLMjrfm6}cf`u;(sgpGov5tnpj)~3 zjL5Itd!EY#N)gtSEkI9pQRlgx&(TKE(-5uvfN0cO)y8haF3&fUvzLq|U?q)OLj)|Q zcrsdQ#?q)pHQdTI{0YWG=h3`yrLYjbTjNUMiDrN6n&r8d5F?;be3BRc)E7TAb!LJW0ssKO*Qas- literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.br b/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.br deleted file mode 100644 index 762f9297bc2bd60a82d71be354bbcdbd7244b4ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmV-B0mS|r76JgA1>6u-9_k)0!xxePstej2z^<|Nj5*{%o| zI5FPoViF2ieF|dVwb{fES{qY!{@kW1BG(ej)VNOi z2}St81A1K#+LGZ~Zk)_N_jb2jzDaP0ats3WGXl2v8CIdduWd)M#*S*p0-&5zDHx>Q NNw6O}{LWHmZWkrxm4*NS diff --git a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.gz b/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.gz deleted file mode 100644 index 8f4a3ef5e74806a6a78cd59f09b7865764d443b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jT~TiwFP!000026J?UIZo)7ShW9>&!w~tz$%WavN-b^IjtmH)BXuApv7^{Q zw2|Mva#CRE^yz+|{aI&MP3yWa@Q+|G4#>}mpU5wX1)dWcH8b_NYS*Xr`opO&KhtGzi%>Z$E;3NIgrRWO2f=heL#%4m>#CHQfzE`! zv${4xlq7+k&XSdfv>ISYv84ri8ls+#*wIm@zHzOlZ26aW#LDZ^b#khmsI2Iq+qi8; zzmAJoge}1T>0o^5UPIAws;(xR(JL phBPu&D-U;*Nv0`mr2)+n;z@!wm+>21#%GTD;TPdv+9wwR007LDs&D`R diff --git a/apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js b/apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js new file mode 100644 index 0000000..cd19933 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js @@ -0,0 +1 @@ +var B=Object.defineProperty;var g=i=>{throw TypeError(i)};var F=(i,e,s)=>e in i?B(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var w=(i,e,s)=>F(i,typeof e!="symbol"?e+"":e,s),M=(i,e,s)=>e.has(i)||g("Cannot "+s);var t=(i,e,s)=>(M(i,e,"read from private field"),s?s.call(i):e.get(i)),l=(i,e,s)=>e.has(i)?g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,s),y=(i,e,s,a)=>(M(i,e,"write to private field"),a?a.call(i,s):e.set(i,s),s);import{w as D,Y as C,Z as k,_ as G,D as x,$ as A,G as S,M as Y,a0 as Z,a1 as $}from"./wpu9U-D0.js";var r,n,h,u,p,_,v;class z{constructor(e,s=!0){w(this,"anchor");l(this,r,new Map);l(this,n,new Map);l(this,h,new Map);l(this,u,new Set);l(this,p,!0);l(this,_,()=>{var e=D;if(t(this,r).has(e)){var s=t(this,r).get(e),a=t(this,n).get(s);if(a)C(a),t(this,u).delete(s);else{var c=t(this,h).get(s);c&&(t(this,n).set(s,c.effect),t(this,h).delete(s),c.fragment.lastChild.remove(),this.anchor.before(c.fragment),a=c.effect)}for(const[f,o]of t(this,r)){if(t(this,r).delete(f),f===e)break;const d=t(this,h).get(o);d&&(k(d.effect),t(this,h).delete(o))}for(const[f,o]of t(this,n)){if(f===s||t(this,u).has(f))continue;const d=()=>{if(Array.from(t(this,r).values()).includes(f)){var b=document.createDocumentFragment();Z(o,b),b.append(x()),t(this,h).set(f,{effect:o,fragment:b})}else k(o);t(this,u).delete(f),t(this,n).delete(f)};t(this,p)||!a?(t(this,u).add(f),G(o,d,!1)):d()}}});l(this,v,e=>{t(this,r).delete(e);const s=Array.from(t(this,r).values());for(const[a,c]of t(this,h))s.includes(a)||(k(c.effect),t(this,h).delete(a))});this.anchor=e,y(this,p,s)}ensure(e,s){var a=D,c=$();if(s&&!t(this,n).has(e)&&!t(this,h).has(e))if(c){var f=document.createDocumentFragment(),o=x();f.append(o),t(this,h).set(e,{effect:A(()=>s(o)),fragment:f})}else t(this,n).set(e,A(()=>s(this.anchor)));if(t(this,r).set(a,e),c){for(const[d,m]of t(this,n))d===e?a.unskip_effect(m):a.skip_effect(m);for(const[d,m]of t(this,h))d===e?a.unskip_effect(m.effect):a.skip_effect(m.effect);a.oncommit(t(this,_)),a.ondiscard(t(this,v))}else S&&(this.anchor=Y),t(this,_).call(this)}}r=new WeakMap,n=new WeakMap,h=new WeakMap,u=new WeakMap,p=new WeakMap,_=new WeakMap,v=new WeakMap;export{z as B}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js.br b/apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js.br new file mode 100644 index 0000000000000000000000000000000000000000..e3163e0639392b9f3c39a6001c8538a0e23fca46 GIT binary patch literal 877 zcmV-z1Csn3z6bz}!nWn}<1m-1Qs%=cm4HQS1@_9o2ss)`MDs1D5T`>o7fNo{5wkN*~_ZNf-t zDDJr}i)C@HwS`?piAa6c?cPik?@b{<12WL=w_mtMlHs?;O~0G~?t@!&KPf=3chjCQ z%JP)#$b!@B4jymF3M;*E_0$h6_x%ETyTZh5PnanyIWIl$VKd zbg*?V{5WZP=BH`LKhry3OcPH`k9;>ZtjiySYDzxUb@;@vdoL@><7$8TnZH!UcAH`S zPDf#4&&)p#p~XuqvHt40>;!3ARfuCrj?%p`w=BY*IJ=|tM_0G=)V|nHn!c~;mqun) z5eEM8!s}g(Y+Jxr>Scn-$)z%UpO?^9)7yhvS%|1o4*vxJ2|NT`2Jm#kyQ=&DBjF6bZQ_@7Is<; z0o5K%AzBnX;s^{RE!yJuxPX*oCt37X01P1?))hIIz^uXg1)U3|VL@O3gPw@rH|*x7 z0S+&SbIAJC#dsjW#2U$wGpIU=4>Va;X9f&EN`|_&6$SjMC$6a%p)ohXM*&nODE$f$ z!GH*}W8{H|yH~Q>_wAxzbf&z2QM!j5;GrO{Dj4ct68;kQ7UYqT(8Wuph{%`!0B)d< zn{Ri$X>0%*N1B_PlsEJP)MhOX5ZW-?Xf+Hi+Rb;!6bhZ_p3d|iHDm&w+A;M~ezI@` DTehk( literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js.gz b/apps/dashboard/build/_app/immutable/chunks/BWk3o_TN.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1de713be6cd42038475c1f9e86cfb412d248c50d GIT binary patch literal 994 zcmV<810DPyiwFP!000026NObxZ{s!)z4uqhLJ)AUQ#E_61;t3>W=}y2q(zY|76wfX zBd#SYKgD$2Y*RhB0Gq%L@NLo`xwN-2GDUyoHJO*?#mk3^#Ou>|r7xGL2VEI1P zY|O;-Jn{uaj#o4Utf*R&jVfa)@&(tC(Sl-_2D+T*T7<^_CBAwjKcj@_`5~nXDMNeP zV@~8Jg$DvD^5$LLe8!J;qdN=ZAXQautlw=S?xHz91#^eb!K`o*%om&o^NJV2+~AjB z9`PZVC*)VbJ|q7e>_r=Ri<93rb@Tf_zs|3c?=J3mwy3ed25Vg4Iu#{%F8Z+(MmujC z;f-a4E}LAzZo_<`9L8LW!q^zn@&H)Ww22;gJs|oWQoKW&4tXR$AT>^|24{f`vg=)_ zkg|EIB=g5?&`C)E-A|W|c+i~yc@OCW6u6X(!yV&*$6pO3IhEuo{H4-S7fkd!i(#j@ zykujzppQe5kd!3+5Un_gh9Z%czf`1sQgY|-3RUKbrOK>{0fzO-fx%=+(pX~ShEV$u zyp_hXPKU1&%{L>Xp;OqM@o~&80cDnD1WQYNm3CXB{7p*+(){w0tyunX69zs`t`EsW zBDdd7JF!Yv>Hzc7P2PCf%na|UhO4#T`g3b*oG!3d5tx$Nikq@x-f#fcgPfE&5v zu-~&4`^k86fELn|8O#W`{poYil6H-yaN-Xt@NAAEyI|c3a+jBrk(k3F9HC-3mr62m z*e?HHL^RnegH-k!nzstlpx_M)!{owvj#|oI%kx7@*snfm768sKlCY8^0SefS6z5o- z4}2a@)r=>Nb}Lmc4&|^4raUTc3I@TdkMIQD Qw&^eb0eHM5>%Ry90CC;mxBvhE literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js b/apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js new file mode 100644 index 0000000..1e262da --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js @@ -0,0 +1,5 @@ +import{TSL as t}from"./CfobEeQC.js";/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */const e=t.BRDF_GGX,n=t.BRDF_Lambert,s=t.BasicShadowFilter,r=t.Break,c=t.Continue,a=t.DFGApprox,i=t.D_GGX,l=t.Discard,m=t.EPSILON,p=t.F_Schlick,d=t.Fn,u=t.INFINITY,g=t.If,h=t.Loop,f=t.NodeShaderStage,x=t.NodeType,b=t.NodeUpdateType,w=t.NodeAccess,v=t.PCFShadowFilter,S=t.PCFSoftShadowFilter,T=t.PI,_=t.PI2,V=t.Return,y=t.Schlick_to_F0,D=t.ScriptableNodeResources,M=t.ShaderNode,F=t.TBNViewMatrix,C=t.VSMShadowFilter,I=t.V_GGX_SmithCorrelated,N=t.abs,P=t.acesFilmicToneMapping,R=t.acos,B=t.add,L=t.addNodeElement,k=t.agxToneMapping,A=t.all,G=t.alphaT,O=t.and,W=t.anisotropy,j=t.anisotropyB,U=t.anisotropyT,q=t.any,z=t.append,E=t.arrayBuffer,Z=t.asin,X=t.assign,Y=t.atan,H=t.atan2,J=t.atomicAdd,K=t.atomicAnd,Q=t.atomicFunc,$=t.atomicMax,tt=t.atomicMin,ot=t.atomicOr,et=t.atomicStore,nt=t.atomicSub,st=t.atomicXor,rt=t.attenuationColor,ct=t.attenuationDistance,at=t.attribute,it=t.attributeArray,lt=t.backgroundBlurriness,mt=t.backgroundIntensity,pt=t.backgroundRotation,dt=t.batch,ut=t.billboarding,gt=t.bitAnd,ht=t.bitNot,ft=t.bitOr,xt=t.bitXor,bt=t.bitangentGeometry,wt=t.bitangentLocal,vt=t.bitangentView,St=t.bitangentWorld,Tt=t.bitcast,_t=t.blendBurn,Vt=t.blendColor,yt=t.blendDodge,Dt=t.blendOverlay,Mt=t.blendScreen,Ft=t.blur,Ct=t.bool,It=t.buffer,Nt=t.bufferAttribute,Pt=t.bumpMap,Rt=t.burn,Bt=t.bvec2,Lt=t.bvec3,kt=t.bvec4,At=t.bypass,Gt=t.cache,Ot=t.call,Wt=t.cameraFar,jt=t.cameraNear,Ut=t.cameraNormalMatrix,qt=t.cameraPosition,zt=t.cameraProjectionMatrix,Et=t.cameraProjectionMatrixInverse,Zt=t.cameraViewMatrix,Xt=t.cameraWorldMatrix,Yt=t.cbrt,Ht=t.cdl,Jt=t.ceil,Kt=t.checker,Qt=t.cineonToneMapping,$t=t.clamp,to=t.clearcoat,oo=t.clearcoatRoughness,eo=t.code,no=t.color,so=t.colorSpaceToWorking,ro=t.colorToDirection,co=t.compute,ao=t.cond,io=t.context,lo=t.convert,mo=t.convertColorSpace,po=t.convertToTexture,uo=t.cos,go=t.cross,ho=t.cubeTexture,fo=t.dFdx,xo=t.dFdy,bo=t.dashSize,wo=t.defaultBuildStages,vo=t.defaultShaderStages,So=t.defined,To=t.degrees,_o=t.deltaTime,Vo=t.densityFog,yo=t.densityFogFactor,Do=t.depth,Mo=t.depthPass,Fo=t.difference,Co=t.diffuseColor,Io=t.directPointLight,No=t.directionToColor,Po=t.dispersion,Ro=t.distance,Bo=t.div,Lo=t.dodge,ko=t.dot,Ao=t.drawIndex,Go=t.dynamicBufferAttribute,Oo=t.element,Wo=t.emissive,jo=t.equal,Uo=t.equals,qo=t.equirectUV,zo=t.exp,Eo=t.exp2,Zo=t.expression,Xo=t.faceDirection,Yo=t.faceForward,Ho=t.faceforward,Jo=t.float,Ko=t.floor,Qo=t.fog,$o=t.fract,te=t.frameGroup,oe=t.frameId,ee=t.frontFacing,ne=t.fwidth,se=t.gain,re=t.gapSize,ce=t.getConstNodeType,ae=t.getCurrentStack,ie=t.getDirection,le=t.getDistanceAttenuation,me=t.getGeometryRoughness,pe=t.getNormalFromDepth,de=t.getParallaxCorrectNormal,ue=t.getRoughness,ge=t.getScreenPosition,he=t.getShIrradianceAt,fe=t.getTextureIndex,xe=t.getViewPosition,be=t.glsl,we=t.glslFn,ve=t.grayscale,Se=t.greaterThan,Te=t.greaterThanEqual,_e=t.hash,Ve=t.highpModelNormalViewMatrix,ye=t.highpModelViewMatrix,De=t.hue,Me=t.instance,Fe=t.instanceIndex,Ce=t.instancedArray,Ie=t.instancedBufferAttribute,Ne=t.instancedDynamicBufferAttribute,Pe=t.instancedMesh,Re=t.int,Be=t.inverseSqrt,Le=t.inversesqrt,ke=t.invocationLocalIndex,Ae=t.invocationSubgroupIndex,Ge=t.ior,Oe=t.iridescence,We=t.iridescenceIOR,je=t.iridescenceThickness,Ue=t.ivec2,qe=t.ivec3,ze=t.ivec4,Ee=t.js,Ze=t.label,Xe=t.length,Ye=t.lengthSq,He=t.lessThan,Je=t.lessThanEqual,Ke=t.lightPosition,Qe=t.lightTargetDirection,$e=t.lightTargetPosition,tn=t.lightViewPosition,on=t.lightingContext,en=t.lights,nn=t.linearDepth,sn=t.linearToneMapping,rn=t.localId,cn=t.log,an=t.log2,ln=t.logarithmicDepthToViewZ,mn=t.loop,pn=t.luminance,dn=t.mediumpModelViewMatrix,un=t.mat2,gn=t.mat3,hn=t.mat4,fn=t.matcapUV,xn=t.materialAO,bn=t.materialAlphaTest,wn=t.materialAnisotropy,vn=t.materialAnisotropyVector,Sn=t.materialAttenuationColor,Tn=t.materialAttenuationDistance,_n=t.materialClearcoat,Vn=t.materialClearcoatNormal,yn=t.materialClearcoatRoughness,Dn=t.materialColor,Mn=t.materialDispersion,Fn=t.materialEmissive,Cn=t.materialIOR,In=t.materialIridescence,Nn=t.materialIridescenceIOR,Pn=t.materialIridescenceThickness,Rn=t.materialLightMap,Bn=t.materialLineDashOffset,Ln=t.materialLineDashSize,kn=t.materialLineGapSize,An=t.materialLineScale,Gn=t.materialLineWidth,On=t.materialMetalness,Wn=t.materialNormal,jn=t.materialOpacity,Un=t.materialPointWidth,qn=t.materialReference,zn=t.materialReflectivity,En=t.materialRefractionRatio,Zn=t.materialRotation,Xn=t.materialRoughness,Yn=t.materialSheen,Hn=t.materialSheenRoughness,Jn=t.materialShininess,Kn=t.materialSpecular,Qn=t.materialSpecularColor,$n=t.materialSpecularIntensity,ts=t.materialSpecularStrength,os=t.materialThickness,es=t.materialTransmission,ns=t.max,ss=t.maxMipLevel,rs=t.metalness,cs=t.min,as=t.mix,is=t.mixElement,ls=t.mod,ms=t.modInt,ps=t.modelDirection,ds=t.modelNormalMatrix,us=t.modelPosition,gs=t.modelScale,hs=t.modelViewMatrix,fs=t.modelViewPosition,xs=t.modelViewProjection,bs=t.modelWorldMatrix,ws=t.modelWorldMatrixInverse,vs=t.morphReference,Ss=t.mrt,Ts=t.mul,_s=t.mx_aastep,Vs=t.mx_cell_noise_float,ys=t.mx_contrast,Ds=t.mx_fractal_noise_float,Ms=t.mx_fractal_noise_vec2,Fs=t.mx_fractal_noise_vec3,Cs=t.mx_fractal_noise_vec4,Is=t.mx_hsvtorgb,Ns=t.mx_noise_float,Ps=t.mx_noise_vec3,Rs=t.mx_noise_vec4,Bs=t.mx_ramplr,Ls=t.mx_ramptb,ks=t.mx_rgbtohsv,As=t.mx_safepower,Gs=t.mx_splitlr,Os=t.mx_splittb,Ws=t.mx_srgb_texture_to_lin_rec709,js=t.mx_transform_uv,Us=t.mx_worley_noise_float,qs=t.mx_worley_noise_vec2,zs=t.mx_worley_noise_vec3,Es=t.negate,Zs=t.neutralToneMapping,Xs=t.nodeArray,Ys=t.nodeImmutable,Hs=t.nodeObject,Js=t.nodeObjects,Ks=t.nodeProxy,Qs=t.normalFlat,$s=t.normalGeometry,tr=t.normalLocal,or=t.normalMap,er=t.normalView,nr=t.normalWorld,sr=t.normalize,rr=t.not,cr=t.notEqual,ar=t.numWorkgroups,ir=t.objectDirection,lr=t.objectGroup,mr=t.objectPosition,pr=t.objectScale,dr=t.objectViewPosition,ur=t.objectWorldMatrix,gr=t.oneMinus,hr=t.or,fr=t.orthographicDepthToViewZ,xr=t.oscSawtooth,br=t.oscSine,wr=t.oscSquare,vr=t.oscTriangle,Sr=t.output,Tr=t.outputStruct,_r=t.overlay,Vr=t.overloadingFn,yr=t.parabola,Dr=t.parallaxDirection,Mr=t.parallaxUV,Fr=t.parameter,Cr=t.pass,Ir=t.passTexture,Nr=t.pcurve,Pr=t.perspectiveDepthToViewZ,Rr=t.pmremTexture,Br=t.pointUV,Lr=t.pointWidth,kr=t.positionGeometry,Ar=t.positionLocal,Gr=t.positionPrevious,Or=t.positionView,Wr=t.positionViewDirection,jr=t.positionWorld,Ur=t.positionWorldDirection,qr=t.posterize,zr=t.pow,Er=t.pow2,Zr=t.pow3,Xr=t.pow4,Yr=t.property,Hr=t.radians,Jr=t.rand,Kr=t.range,Qr=t.rangeFog,$r=t.rangeFogFactor,tc=t.reciprocal,oc=t.reference,ec=t.referenceBuffer,nc=t.reflect,sc=t.reflectVector,rc=t.reflectView,cc=t.reflector,ac=t.refract,ic=t.refractVector,lc=t.refractView,mc=t.reinhardToneMapping,pc=t.remainder,dc=t.remap,uc=t.remapClamp,gc=t.renderGroup,hc=t.renderOutput,fc=t.rendererReference,xc=t.rotate,bc=t.rotateUV,wc=t.roughness,vc=t.round,Sc=t.rtt,Tc=t.sRGBTransferEOTF,_c=t.sRGBTransferOETF,Vc=t.sampler,yc=t.saturate,Dc=t.saturation,Mc=t.screen,Fc=t.screenCoordinate,Cc=t.screenSize,Ic=t.screenUV,Nc=t.scriptable,Pc=t.scriptableValue,Rc=t.select,Bc=t.setCurrentStack,Lc=t.shaderStages,kc=t.shadow,Ac=t.shadowPositionWorld,Gc=t.sharedUniformGroup,Oc=t.sheen,Wc=t.sheenRoughness,jc=t.shiftLeft,Uc=t.shiftRight,qc=t.shininess,zc=t.sign,Ec=t.sin,Zc=t.sinc,Xc=t.skinning,Yc=t.skinningReference,Hc=t.smoothstep,Jc=t.smoothstepElement,Kc=t.specularColor,Qc=t.specularF90,$c=t.spherizeUV,ta=t.split,oa=t.spritesheetUV,ea=t.sqrt,na=t.stack,sa=t.step,ra=t.storage,ca=t.storageBarrier,aa=t.storageObject,ia=t.storageTexture,la=t.string,ma=t.sub,pa=t.subgroupIndex,da=t.subgroupSize,ua=t.tan,ga=t.tangentGeometry,ha=t.tangentLocal,fa=t.tangentView,xa=t.tangentWorld,ba=t.temp,wa=t.texture,va=t.texture3D,Sa=t.textureBarrier,Ta=t.textureBicubic,_a=t.textureCubeUV,Va=t.textureLoad,ya=t.textureSize,Da=t.textureStore,Ma=t.thickness,Fa=t.threshold,Ca=t.time,Ia=t.timerDelta,Na=t.timerGlobal,Pa=t.timerLocal,Ra=t.toOutputColorSpace,Ba=t.toWorkingColorSpace,La=t.toneMapping,ka=t.toneMappingExposure,Aa=t.toonOutlinePass,Ga=t.transformDirection,Oa=t.transformNormal,Wa=t.transformNormalToView,ja=t.transformedBentNormalView,Ua=t.transformedBitangentView,qa=t.transformedBitangentWorld,za=t.transformedClearcoatNormalView,Ea=t.transformedNormalView,Za=t.transformedNormalWorld,Xa=t.transformedTangentView,Ya=t.transformedTangentWorld,Ha=t.transmission,Ja=t.transpose,Ka=t.tri,Qa=t.tri3,$a=t.triNoise3D,ti=t.triplanarTexture,oi=t.triplanarTextures,ei=t.trunc,ni=t.tslFn,si=t.uint,ri=t.uniform,ci=t.uniformArray,ai=t.uniformGroup,ii=t.uniforms,li=t.userData,mi=t.uv,pi=t.uvec2,di=t.uvec3,ui=t.uvec4,gi=t.varying,hi=t.varyingProperty,fi=t.vec2,xi=t.vec3,bi=t.vec4,wi=t.vectorComponents,vi=t.velocity,Si=t.vertexColor,Ti=t.vertexIndex,_i=t.vibrance,Vi=t.viewZToLogarithmicDepth,yi=t.viewZToOrthographicDepth,Di=t.viewZToPerspectiveDepth,Mi=t.viewport,Fi=t.viewportBottomLeft,Ci=t.viewportCoordinate,Ii=t.viewportDepthTexture,Ni=t.viewportLinearDepth,Pi=t.viewportMipTexture,Ri=t.viewportResolution,Bi=t.viewportSafeUV,Li=t.viewportSharedTexture,ki=t.viewportSize,Ai=t.viewportTexture,Gi=t.viewportTopLeft,Oi=t.viewportUV,Wi=t.wgsl,ji=t.wgslFn,Ui=t.workgroupArray,qi=t.workgroupBarrier,zi=t.workgroupId,Ei=t.workingToColorSpace,Zi=t.xor;export{e as BRDF_GGX,n as BRDF_Lambert,s as BasicShadowFilter,r as Break,c as Continue,a as DFGApprox,i as D_GGX,l as Discard,m as EPSILON,p as F_Schlick,d as Fn,u as INFINITY,g as If,h as Loop,w as NodeAccess,f as NodeShaderStage,x as NodeType,b as NodeUpdateType,v as PCFShadowFilter,S as PCFSoftShadowFilter,T as PI,_ as PI2,V as Return,y as Schlick_to_F0,D as ScriptableNodeResources,M as ShaderNode,F as TBNViewMatrix,C as VSMShadowFilter,I as V_GGX_SmithCorrelated,N as abs,P as acesFilmicToneMapping,R as acos,B as add,L as addNodeElement,k as agxToneMapping,A as all,G as alphaT,O as and,W as anisotropy,j as anisotropyB,U as anisotropyT,q as any,z as append,E as arrayBuffer,Z as asin,X as assign,Y as atan,H as atan2,J as atomicAdd,K as atomicAnd,Q as atomicFunc,$ as atomicMax,tt as atomicMin,ot as atomicOr,et as atomicStore,nt as atomicSub,st as atomicXor,rt as attenuationColor,ct as attenuationDistance,at as attribute,it as attributeArray,lt as backgroundBlurriness,mt as backgroundIntensity,pt as backgroundRotation,dt as batch,ut as billboarding,gt as bitAnd,ht as bitNot,ft as bitOr,xt as bitXor,bt as bitangentGeometry,wt as bitangentLocal,vt as bitangentView,St as bitangentWorld,Tt as bitcast,_t as blendBurn,Vt as blendColor,yt as blendDodge,Dt as blendOverlay,Mt as blendScreen,Ft as blur,Ct as bool,It as buffer,Nt as bufferAttribute,Pt as bumpMap,Rt as burn,Bt as bvec2,Lt as bvec3,kt as bvec4,At as bypass,Gt as cache,Ot as call,Wt as cameraFar,jt as cameraNear,Ut as cameraNormalMatrix,qt as cameraPosition,zt as cameraProjectionMatrix,Et as cameraProjectionMatrixInverse,Zt as cameraViewMatrix,Xt as cameraWorldMatrix,Yt as cbrt,Ht as cdl,Jt as ceil,Kt as checker,Qt as cineonToneMapping,$t as clamp,to as clearcoat,oo as clearcoatRoughness,eo as code,no as color,so as colorSpaceToWorking,ro as colorToDirection,co as compute,ao as cond,io as context,lo as convert,mo as convertColorSpace,po as convertToTexture,uo as cos,go as cross,ho as cubeTexture,fo as dFdx,xo as dFdy,bo as dashSize,wo as defaultBuildStages,vo as defaultShaderStages,So as defined,To as degrees,_o as deltaTime,Vo as densityFog,yo as densityFogFactor,Do as depth,Mo as depthPass,Fo as difference,Co as diffuseColor,Io as directPointLight,No as directionToColor,Po as dispersion,Ro as distance,Bo as div,Lo as dodge,ko as dot,Ao as drawIndex,Go as dynamicBufferAttribute,Oo as element,Wo as emissive,jo as equal,Uo as equals,qo as equirectUV,zo as exp,Eo as exp2,Zo as expression,Xo as faceDirection,Yo as faceForward,Ho as faceforward,Jo as float,Ko as floor,Qo as fog,$o as fract,te as frameGroup,oe as frameId,ee as frontFacing,ne as fwidth,se as gain,re as gapSize,ce as getConstNodeType,ae as getCurrentStack,ie as getDirection,le as getDistanceAttenuation,me as getGeometryRoughness,pe as getNormalFromDepth,de as getParallaxCorrectNormal,ue as getRoughness,ge as getScreenPosition,he as getShIrradianceAt,fe as getTextureIndex,xe as getViewPosition,be as glsl,we as glslFn,ve as grayscale,Se as greaterThan,Te as greaterThanEqual,_e as hash,Ve as highpModelNormalViewMatrix,ye as highpModelViewMatrix,De as hue,Me as instance,Fe as instanceIndex,Ce as instancedArray,Ie as instancedBufferAttribute,Ne as instancedDynamicBufferAttribute,Pe as instancedMesh,Re as int,Be as inverseSqrt,Le as inversesqrt,ke as invocationLocalIndex,Ae as invocationSubgroupIndex,Ge as ior,Oe as iridescence,We as iridescenceIOR,je as iridescenceThickness,Ue as ivec2,qe as ivec3,ze as ivec4,Ee as js,Ze as label,Xe as length,Ye as lengthSq,He as lessThan,Je as lessThanEqual,Ke as lightPosition,Qe as lightTargetDirection,$e as lightTargetPosition,tn as lightViewPosition,on as lightingContext,en as lights,nn as linearDepth,sn as linearToneMapping,rn as localId,cn as log,an as log2,ln as logarithmicDepthToViewZ,mn as loop,pn as luminance,un as mat2,gn as mat3,hn as mat4,fn as matcapUV,xn as materialAO,bn as materialAlphaTest,wn as materialAnisotropy,vn as materialAnisotropyVector,Sn as materialAttenuationColor,Tn as materialAttenuationDistance,_n as materialClearcoat,Vn as materialClearcoatNormal,yn as materialClearcoatRoughness,Dn as materialColor,Mn as materialDispersion,Fn as materialEmissive,Cn as materialIOR,In as materialIridescence,Nn as materialIridescenceIOR,Pn as materialIridescenceThickness,Rn as materialLightMap,Bn as materialLineDashOffset,Ln as materialLineDashSize,kn as materialLineGapSize,An as materialLineScale,Gn as materialLineWidth,On as materialMetalness,Wn as materialNormal,jn as materialOpacity,Un as materialPointWidth,qn as materialReference,zn as materialReflectivity,En as materialRefractionRatio,Zn as materialRotation,Xn as materialRoughness,Yn as materialSheen,Hn as materialSheenRoughness,Jn as materialShininess,Kn as materialSpecular,Qn as materialSpecularColor,$n as materialSpecularIntensity,ts as materialSpecularStrength,os as materialThickness,es as materialTransmission,ns as max,ss as maxMipLevel,dn as mediumpModelViewMatrix,rs as metalness,cs as min,as as mix,is as mixElement,ls as mod,ms as modInt,ps as modelDirection,ds as modelNormalMatrix,us as modelPosition,gs as modelScale,hs as modelViewMatrix,fs as modelViewPosition,xs as modelViewProjection,bs as modelWorldMatrix,ws as modelWorldMatrixInverse,vs as morphReference,Ss as mrt,Ts as mul,_s as mx_aastep,Vs as mx_cell_noise_float,ys as mx_contrast,Ds as mx_fractal_noise_float,Ms as mx_fractal_noise_vec2,Fs as mx_fractal_noise_vec3,Cs as mx_fractal_noise_vec4,Is as mx_hsvtorgb,Ns as mx_noise_float,Ps as mx_noise_vec3,Rs as mx_noise_vec4,Bs as mx_ramplr,Ls as mx_ramptb,ks as mx_rgbtohsv,As as mx_safepower,Gs as mx_splitlr,Os as mx_splittb,Ws as mx_srgb_texture_to_lin_rec709,js as mx_transform_uv,Us as mx_worley_noise_float,qs as mx_worley_noise_vec2,zs as mx_worley_noise_vec3,Es as negate,Zs as neutralToneMapping,Xs as nodeArray,Ys as nodeImmutable,Hs as nodeObject,Js as nodeObjects,Ks as nodeProxy,Qs as normalFlat,$s as normalGeometry,tr as normalLocal,or as normalMap,er as normalView,nr as normalWorld,sr as normalize,rr as not,cr as notEqual,ar as numWorkgroups,ir as objectDirection,lr as objectGroup,mr as objectPosition,pr as objectScale,dr as objectViewPosition,ur as objectWorldMatrix,gr as oneMinus,hr as or,fr as orthographicDepthToViewZ,xr as oscSawtooth,br as oscSine,wr as oscSquare,vr as oscTriangle,Sr as output,Tr as outputStruct,_r as overlay,Vr as overloadingFn,yr as parabola,Dr as parallaxDirection,Mr as parallaxUV,Fr as parameter,Cr as pass,Ir as passTexture,Nr as pcurve,Pr as perspectiveDepthToViewZ,Rr as pmremTexture,Br as pointUV,Lr as pointWidth,kr as positionGeometry,Ar as positionLocal,Gr as positionPrevious,Or as positionView,Wr as positionViewDirection,jr as positionWorld,Ur as positionWorldDirection,qr as posterize,zr as pow,Er as pow2,Zr as pow3,Xr as pow4,Yr as property,Hr as radians,Jr as rand,Kr as range,Qr as rangeFog,$r as rangeFogFactor,tc as reciprocal,oc as reference,ec as referenceBuffer,nc as reflect,sc as reflectVector,rc as reflectView,cc as reflector,ac as refract,ic as refractVector,lc as refractView,mc as reinhardToneMapping,pc as remainder,dc as remap,uc as remapClamp,gc as renderGroup,hc as renderOutput,fc as rendererReference,xc as rotate,bc as rotateUV,wc as roughness,vc as round,Sc as rtt,Tc as sRGBTransferEOTF,_c as sRGBTransferOETF,Vc as sampler,yc as saturate,Dc as saturation,Mc as screen,Fc as screenCoordinate,Cc as screenSize,Ic as screenUV,Nc as scriptable,Pc as scriptableValue,Rc as select,Bc as setCurrentStack,Lc as shaderStages,kc as shadow,Ac as shadowPositionWorld,Gc as sharedUniformGroup,Oc as sheen,Wc as sheenRoughness,jc as shiftLeft,Uc as shiftRight,qc as shininess,zc as sign,Ec as sin,Zc as sinc,Xc as skinning,Yc as skinningReference,Hc as smoothstep,Jc as smoothstepElement,Kc as specularColor,Qc as specularF90,$c as spherizeUV,ta as split,oa as spritesheetUV,ea as sqrt,na as stack,sa as step,ra as storage,ca as storageBarrier,aa as storageObject,ia as storageTexture,la as string,ma as sub,pa as subgroupIndex,da as subgroupSize,ua as tan,ga as tangentGeometry,ha as tangentLocal,fa as tangentView,xa as tangentWorld,ba as temp,wa as texture,va as texture3D,Sa as textureBarrier,Ta as textureBicubic,_a as textureCubeUV,Va as textureLoad,ya as textureSize,Da as textureStore,Ma as thickness,Fa as threshold,Ca as time,Ia as timerDelta,Na as timerGlobal,Pa as timerLocal,Ra as toOutputColorSpace,Ba as toWorkingColorSpace,La as toneMapping,ka as toneMappingExposure,Aa as toonOutlinePass,Ga as transformDirection,Oa as transformNormal,Wa as transformNormalToView,ja as transformedBentNormalView,Ua as transformedBitangentView,qa as transformedBitangentWorld,za as transformedClearcoatNormalView,Ea as transformedNormalView,Za as transformedNormalWorld,Xa as transformedTangentView,Ya as transformedTangentWorld,Ha as transmission,Ja as transpose,Ka as tri,Qa as tri3,$a as triNoise3D,ti as triplanarTexture,oi as triplanarTextures,ei as trunc,ni as tslFn,si as uint,ri as uniform,ci as uniformArray,ai as uniformGroup,ii as uniforms,li as userData,mi as uv,pi as uvec2,di as uvec3,ui as uvec4,gi as varying,hi as varyingProperty,fi as vec2,xi as vec3,bi as vec4,wi as vectorComponents,vi as velocity,Si as vertexColor,Ti as vertexIndex,_i as vibrance,Vi as viewZToLogarithmicDepth,yi as viewZToOrthographicDepth,Di as viewZToPerspectiveDepth,Mi as viewport,Fi as viewportBottomLeft,Ci as viewportCoordinate,Ii as viewportDepthTexture,Ni as viewportLinearDepth,Pi as viewportMipTexture,Ri as viewportResolution,Bi as viewportSafeUV,Li as viewportSharedTexture,ki as viewportSize,Ai as viewportTexture,Gi as viewportTopLeft,Oi as viewportUV,Wi as wgsl,ji as wgslFn,Ui as workgroupArray,qi as workgroupBarrier,zi as workgroupId,Ei as workingToColorSpace,Zi as xor}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js.br b/apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js.br new file mode 100644 index 0000000000000000000000000000000000000000..84b208817cc72f2517f5819a1fd2b8be8f90a091 GIT binary patch literal 3971 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js.gz b/apps/dashboard/build/_app/immutable/chunks/BZQzXWp7.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..f4670dd7d2b72661db9fbbbf2e1e6bcbe0022a22 GIT binary patch literal 5492 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 q;6iv-~J!0Bh-}5N&oe.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}const f=[];function z(e,t){return{subscribe:A(e,t).subscribe}}function A(e,t=a){let n=null;const r=new Set;function i(u){if(q(e,u)&&(e=u,n)){const o=!f.length;for(const s of r)s[1](),f.push(s,e);if(o){for(let s=0;s{r.delete(s),r.size===0&&n&&(n(),n=null)}}return{set:i,update:b,subscribe:l}}function k(e,t,n){const r=!Array.isArray(e),i=r?[e]:e;if(!i.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const b=t.length<2;return z(n,(l,u)=>{let o=!1;const s=[];let d=0,p=a;const y=()=>{if(d)return;p();const c=t(r?s[0]:s,l,u);b?l(c):p=typeof c=="function"?c:a},h=i.map((c,g)=>_(c,w=>{s[g]=w,d&=~(1<{d|=1<t=n)(),t}export{k as d,B as g,_ as s,A as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.br b/apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.br deleted file mode 100644 index 9dea1054322a4c1ec45894ff6cf5555c6d10ae1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XIDW(0tY)JFAI7Hz89o@HW^e;#mw>nIs1eg9EultjsLAr*pl=jYYa+WcQr z|NDRkMiIF#thAdQ4hMLkiztiQC4CRoVj@TYJ5TS*h%&S-BWp4-`&+{&eV^!Ey&8_5 zdXpb66Wa(L<*u*_qRgn;W2X4=hTB&W4&uA98_PNE9D20*^Gza#^v#9&$o z!;Ndj-*r0fQw7XIA~n-+@hK8K(j$X%>fXp6{71MsDfI#$R5m$S8OmwFNEzhpPW`iy zex!qqx~G4^(gw8#%Nuftr#=dvFPn>evW*W=of7366;O)FCm=PWUPQ=FjA4(bE^+2f z!sA?K1m?>PPq8WFvlxGZ$=)xQN7SR{1^5oeF7ZNVqo==FoOkIN@ zg;$$+gn6PhIF8U!iRZIHqQ?{X(Nh>s0ps0+G4IMKAmJ9rl#s95m~}L|C9;w-f3^zc z<@iIxEnNP8Kcf>9XWrRyxGU^uW}z}JyFco2=+XO?H4ZV(gWsv4MEvi%iL2iM5C>Eb z_cKNP3w7d}*rlzH%BaSy=1S)Ii6^N`_aoM`pmvcny7HuwJ~+zrG-xC9_C0r xASvcgY3zwUf}JMhhy^~qA8~ve*&!gsWcPCrxI}7t47c>1|paE9H;DzV($g`)U0Bv3YuV zdirhRziygTtuDMWT0Da!PZ~Q_fn?TgU89x0wOV*M7*&cHl8z#M{m7HTXy=9HJpl4b z#;)DC!m5pgfP~2<-^Q)JKCMIO7Z2dV_GhSy)9gm+Jy62#jM81>7x#nzR;}-^DZ>-z z*wxYtJ#=wpspV1pk^Y9SpdH$M1xYPN5lC(W@9vyocv8i+)LXwxDr4d7b;4A_qD$u) zAXRbGx*a%@n5YU2b|EqpcRWkn@(SSY_y<<0%hFi}RqF2M87AW^&-zb2YzA7;f<(M| zYiP-Y&Mq`KZOLReiSx1qhh$@?-X$~7qX;y6P_)61j~prBQ4qhgaVcx*<(K$b6zPxx zNN3%!??>gOUnpvuGWT+^q1zzpPpn_Y{Tbz++*_NUV&w)KiYvD3RAvhqq?)K$9;7|N zgE6(tHKN~Ha};4pKdm(urlqv%AWJ|Y-x^tXC!9A{y0FbkH?1eJHD2VR%4>HLhrDj( z6fg7Mu)nCg{4uKZ4w|5*Hi!^rWOy=9u6kxk@RdBHhR5AL@t~NhpuAi|(!f}vU=Mcf z(pk1}6kwChx`qN54f|6gO(hEE>8Q|jT`cmRcC6xk-T)M|MP5BaK}TM7F5PB)q%z`v zFkddWNG6I-fc<%7*C}lNp`D3SRI5yEoV&HGmWv>-$gJ^8oUE6MoDO_pW*6 mStB6%UcL=~ke48CNe{tn={Xoj_rV diff --git a/apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js b/apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js new file mode 100644 index 0000000..0f8a968 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js @@ -0,0 +1 @@ +import{b as c,w as g}from"./D8mhvFt8.js";const v=200;function $(){const{subscribe:e,set:n,update:t}=g({connected:!1,reconnecting:!1,events:[],lastHeartbeat:null,error:null});let o=null,s=null,d=0;function m(i){const l=i||(window.location.port==="5173"?`ws://${window.location.hostname}:3927/ws`:`ws://${window.location.host}/ws`);if((o==null?void 0:o.readyState)!==WebSocket.OPEN)try{o=new WebSocket(l),o.onopen=()=>{d=0,t(r=>({...r,connected:!0,reconnecting:!1,error:null}))},o.onmessage=r=>{try{const u=JSON.parse(r.data);t(f=>{if(u.type==="Heartbeat")return{...f,lastHeartbeat:u};const w=[u,...f.events].slice(0,v);return{...f,events:w}})}catch(u){console.warn("[vestige] Failed to parse WebSocket message:",u)}},o.onclose=()=>{t(r=>({...r,connected:!1})),p(l)},o.onerror=()=>{t(r=>({...r,error:"WebSocket connection failed"}))}}catch(r){t(u=>({...u,error:String(r)}))}}function p(i){s&&clearTimeout(s),t(r=>({...r,reconnecting:!0}));const l=Math.min(1e3*2**d,3e4);d++,s=setTimeout(()=>m(i),l)}function b(){s&&clearTimeout(s),o==null||o.close(),o=null,n({connected:!1,reconnecting:!1,events:[],lastHeartbeat:null,error:null})}function y(){t(i=>({...i,events:[]}))}function h(i){t(l=>{const r=[i,...l.events].slice(0,v);return{...l,events:r}})}return{subscribe:e,connect:m,disconnect:b,clearEvents:y,injectEvent:h}}const a=$(),S=c(a,e=>e.connected),H=c(a,e=>e.reconnecting),T=c(a,e=>e.events);c(a,e=>e.lastHeartbeat);const M=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.memory_count)??0}),k=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.avg_retention)??0}),_=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.suppressed_count)??0}),W=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.uptime_secs)??0}),N=c(a,e=>e.events.filter(n=>n.type==="TraceEvent")),P=c(a,e=>{var t;const n=e.events.find(o=>o.type==="TraceEvent");return((t=n==null?void 0:n.data)==null?void 0:t.run_id)??null}),R=c(a,e=>e.events.find(n=>n.type==="TraceEvent")??null),C=c(a,e=>e.events.filter(n=>n.type==="MemoryPrOpened"||n.type==="MemoryPrDecided"));function F(e){if(!Number.isFinite(e)||e<0)return"—";const n=Math.floor(e/86400),t=Math.floor(e%86400/3600),o=Math.floor(e%3600/60),s=Math.floor(e%60);return n>0?t>0?`${n}d ${t}h`:`${n}d`:t>0?o>0?`${t}h ${o}m`:`${t}h`:o>0?s>0?`${o}m ${s}s`:`${o}m`:`${s}s`}export{k as a,M as b,H as c,P as d,T as e,F as f,S as i,R as l,C as m,_ as s,N as t,W as u,a as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js.br b/apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js.br new file mode 100644 index 0000000000000000000000000000000000000000..56deb7377defe87e6016452b7e6ea19df2d422a6 GIT binary patch literal 933 zcmV;W16uqW)d>KM)L9LSqg|%6e?BkAX}e@c7)X_G@s-+K1c)MKBpEJa>+$b*Jl{{W5@+wF}H4T*^@*Fzu-y!!$XRmAjJv^S$41Q8DkPR^>Hg&QhMQEe0XGrp*W=6KzW>VPsWBC+RT)@rS!&_0u4U2+MSlnPnZKy& zgRNI8h>v0X5(anMSvG2y5J$lp$qH-Olw=0vY1eQ@0US@E6GAvbGiWvwusn>VDYtXj z&8bp>D7R%D;~xPe*9n1W!92ih*s5pH3WXrBVhqVoQH7`>tIc>-&_)Sq-SLl>5~Yjp zm%u-S$gPaFn3o}&4!MgFon%FeosIZW>`G@K{jpU(=(+m!asb@qX@KbyS^CM8T8v$0 z(H8XPgWQBsM5G&7W5m1JGbx%`X?@dzX!-bZ1he)a$6*1^*4b)2ljksTOi*n%C;aiT zX*~fR89f_sJF|$Gi}uVnZ%+C~8yKm{U_2N!G*M@mH>aoMS?8%&q!Y(zjrH$c!9+#3 ztnckF15$vbX=X6$JG~vbw*Z(^FVn?rkC?J_0eWg#tJKyy{-Nb7g0*XHbF!UjptKLA zazid%FUYG1mh?y2TW(34C5bPpmx~x%@pH+Cfb@ZDC`s{D33LpK-_sc|8GH9fZF>>s z7tVw&%H_;gnNmAXRADG|Fj0WOU^wS2Mkn29^DKn?Al#LB_kRtGB8y0?sz#UF`5&i( zGF;TP+5QZsMHVx=WwtK^V@qDLmwYsq#c;w;OM0>yq*I-FdP zgIFTu3@?^JyfKM|axG?>72)`kzlWWPO>)?UxcDnC$^9#-={AKo#0A*6k(4w__am>3 z8}QNVNG>aj>R;4lTR};$N-KK0ftubzLmxrWW0=tg(DWYG^Z+*W2RyxoKwlbKDwA(& HQ5y3-AFIuJ literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js.gz b/apps/dashboard/build/_app/immutable/chunks/BhIgFntf.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..11023820c45b7cc3f94ff2d345cee5b9561f2a83 GIT binary patch literal 1052 zcmV+%1mpW3iwFP!000026SY>`ZreBzec!K81aCp6gsddpG%GLdhqghmKrW~Qo zPC;agC&;;6F3CcwOfRBbr@}i#zE;k8_}jt9qj2!But~Sush)dHwM8WgaLLi{habBO z`;h#|)p-xvlVd_OuTc%=T4q6<=*WP`o`xt8=pN@cFdFLg5iq*E`f@?hJXM-2SOjYW z$tly3R(b}C6UzHl#$$%W@II-cC^Bq|$@nFcTVzpJ?^J-bVglUoe&rK3^pyP1;pIg% z6UG8DQ6^B(9+ENdS8`0s2%l!)iCQ-!qz14w%7Yj`>r?64=~(dFl6i-yY3W^LbD08( z*_`&ad(@@ndKY?n(N)%+2!s*jiYzmDz(!xQmj$+lLx*}~Jb_L_Q@kmS7I zPORa#($7}@ zVpKq(&C`9VONDeWh#h5*Z;(dJC-(*rl<#1h=l%`y*m5>AU@c@jCEdJ1s&a<1fO`w6 zZL?fFZ)h}@If5aI_tpB|yfz|*dVWGm+0_m*Y&-2Ct+!Aa(Y&u;-C(N@^;4)#sqSS) z2ZQG9v9GUSR@wIvH-VIW`l(va>*=~Omore1h0Enj(`QI!23bhy=CM8{K>cI0cTpB2 zFp;#UQb_~?bh(5-;`YG_|NZ-)aLrhK`;Bw04T0{-@rO9340p7@*4pmTu{Y^mlUH_+ zW6JEV{y1K79H@Rgzol3i+w$@(WVjHV=MbN3N zv$b{Q<<}1Ws{gni{jZi_=U$B1S@ZvOy#RLV#h4AfknF1$Is4>A!S21V?7|CV WH(r!Xc(HK3U;YCk5~9@B2><{U^b=eF literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js b/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js deleted file mode 100644 index 74a84e4..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js +++ /dev/null @@ -1,2 +0,0 @@ -var Me=Object.defineProperty;var ue=t=>{throw TypeError(t)};var ke=(t,e,r)=>e in t?Me(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var U=(t,e,r)=>ke(t,typeof e!="symbol"?e+"":e,r),re=(t,e,r)=>e.has(t)||ue("Cannot "+r);var s=(t,e,r)=>(re(t,e,"read from private field"),r?r.call(t):e.get(t)),c=(t,e,r)=>e.has(t)?ue("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),n=(t,e,r,a)=>(re(t,e,"write to private field"),a?a.call(t,r):e.set(t,r),r),p=(t,e,r)=>(re(t,e,"access private method"),r);import{aQ as Ie,g as Te,X as Le,v as Ve,aR as _e,Y as q,ao as we,U as M,N as k,o as B,aS as pe,b as xe,ab as Be,ad as Ce,aT as ge,ai as Y,J as me,aU as se,ar as ie,ay as He,aV as ve,aW as We,aX as ye,aY as Pe,aZ as qe,a_ as G,a$ as Z,b0 as be,b1 as ze,b2 as Re,az as Se,ag as Ue,aw as ae,T as K,n as $e,ae as je,b3 as $,E as Je,M as Qe,b4 as Xe,b5 as Ge,F as Ze,b6 as Ke,G as et,b7 as ne,V as tt,O as Ne,ax as rt,Q as st,b8 as fe,R as j,b9 as it,av as at,ba as nt,al as ft,p as ht,af as ot,bb as lt,a as ct}from"./CpWkWWOo.js";import{d as dt}from"./CHOnp4oo.js";function ut(t){let e=0,r=we(0),a;return()=>{Ie()&&(Te(r),Le(()=>(e===0&&(a=Ve(()=>t(()=>_e(r)))),e+=1,()=>{q(()=>{e-=1,e===0&&(a==null||a(),a=void 0,_e(r))})})))}}var _t=Je|Qe;function pt(t,e,r,a){new gt(t,e,r,a)}var E,z,m,L,g,R,T,w,S,V,A,C,H,W,N,ee,o,De,Ae,Oe,he,Q,X,oe;class gt{constructor(e,r,a,h){c(this,o);U(this,"parent");U(this,"is_pending",!1);U(this,"transform_error");c(this,E);c(this,z,k?M:null);c(this,m);c(this,L);c(this,g);c(this,R,null);c(this,T,null);c(this,w,null);c(this,S,null);c(this,V,0);c(this,A,0);c(this,C,!1);c(this,H,new Set);c(this,W,new Set);c(this,N,null);c(this,ee,ut(()=>(n(this,N,we(s(this,V))),()=>{n(this,N,null)})));var i;n(this,E,e),n(this,m,r),n(this,L,f=>{var u=B;u.b=this,u.f|=pe,a(f)}),this.parent=B.b,this.transform_error=h??((i=this.parent)==null?void 0:i.transform_error)??(f=>f),n(this,g,xe(()=>{if(k){const f=s(this,z);Be();const u=f.data===Ce;if(f.data.startsWith(ge)){const d=JSON.parse(f.data.slice(ge.length));p(this,o,Ae).call(this,d)}else u?p(this,o,Oe).call(this):p(this,o,De).call(this)}else p(this,o,he).call(this)},_t)),k&&n(this,E,M)}defer_effect(e){qe(e,s(this,H),s(this,W))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!s(this,m).pending}update_pending_count(e){p(this,o,oe).call(this,e),n(this,V,s(this,V)+e),!(!s(this,N)||s(this,C))&&(n(this,C,!0),q(()=>{n(this,C,!1),s(this,N)&&Ue(s(this,N),s(this,V))}))}get_effect_pending(){return s(this,ee).call(this),Te(s(this,N))}error(e){var r=s(this,m).onerror;let a=s(this,m).failed;if(!r&&!a)throw e;s(this,R)&&(ae(s(this,R)),n(this,R,null)),s(this,T)&&(ae(s(this,T)),n(this,T,null)),s(this,w)&&(ae(s(this,w)),n(this,w,null)),k&&(K(s(this,z)),$e(),K(je()));var h=!1,i=!1;const f=()=>{if(h){Ge();return}h=!0,i&&Xe(),s(this,w)!==null&&ie(s(this,w),()=>{n(this,w,null)}),p(this,o,X).call(this,()=>{se.ensure(),p(this,o,he).call(this)})},u=l=>{try{i=!0,r==null||r(l,f),i=!1}catch(d){$(d,s(this,g)&&s(this,g).parent)}a&&n(this,w,p(this,o,X).call(this,()=>{se.ensure();try{return Y(()=>{var d=B;d.b=this,d.f|=pe,a(s(this,E),()=>l,()=>f)})}catch(d){return $(d,s(this,g).parent),null}}))};q(()=>{var l;try{l=this.transform_error(e)}catch(d){$(d,s(this,g)&&s(this,g).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(u,d=>$(d,s(this,g)&&s(this,g).parent)):u(l)})}}E=new WeakMap,z=new WeakMap,m=new WeakMap,L=new WeakMap,g=new WeakMap,R=new WeakMap,T=new WeakMap,w=new WeakMap,S=new WeakMap,V=new WeakMap,A=new WeakMap,C=new WeakMap,H=new WeakMap,W=new WeakMap,N=new WeakMap,ee=new WeakMap,o=new WeakSet,De=function(){try{n(this,R,Y(()=>s(this,L).call(this,s(this,E))))}catch(e){this.error(e)}},Ae=function(e){const r=s(this,m).failed;r&&n(this,w,Y(()=>{r(s(this,E),()=>e,()=>()=>{})}))},Oe=function(){const e=s(this,m).pending;e&&(this.is_pending=!0,n(this,T,Y(()=>e(s(this,E)))),q(()=>{var r=n(this,S,document.createDocumentFragment()),a=me();r.append(a),n(this,R,p(this,o,X).call(this,()=>(se.ensure(),Y(()=>s(this,L).call(this,a))))),s(this,A)===0&&(s(this,E).before(r),n(this,S,null),ie(s(this,T),()=>{n(this,T,null)}),p(this,o,Q).call(this))}))},he=function(){try{if(this.is_pending=this.has_pending_snippet(),n(this,A,0),n(this,V,0),n(this,R,Y(()=>{s(this,L).call(this,s(this,E))})),s(this,A)>0){var e=n(this,S,document.createDocumentFragment());He(s(this,R),e);const r=s(this,m).pending;n(this,T,Y(()=>r(s(this,E))))}else p(this,o,Q).call(this)}catch(r){this.error(r)}},Q=function(){this.is_pending=!1;for(const e of s(this,H))ve(e,We),ye(e);for(const e of s(this,W))ve(e,Pe),ye(e);s(this,H).clear(),s(this,W).clear()},X=function(e){var r=B,a=Re,h=Se;G(s(this,g)),Z(s(this,g)),be(s(this,g).ctx);try{return e()}catch(i){return ze(i),null}finally{G(r),Z(a),be(h)}},oe=function(e){var r;if(!this.has_pending_snippet()){this.parent&&p(r=this.parent,o,oe).call(r,e);return}n(this,A,s(this,A)+e),s(this,A)===0&&(p(this,o,Q).call(this),s(this,T)&&ie(s(this,T),()=>{n(this,T,null)}),s(this,S)&&(s(this,E).before(s(this,S)),n(this,S,null)))};const vt=["touchstart","touchmove"];function yt(t){return vt.includes(t)}const I=Symbol("events"),Fe=new Set,le=new Set;function bt(t,e,r,a={}){function h(i){if(a.capture||ce.call(e,i),!i.cancelBubble)return Ke(()=>r==null?void 0:r.call(this,i))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?q(()=>{e.addEventListener(t,h,a)}):e.addEventListener(t,h,a),h}function Rt(t,e,r,a,h){var i={capture:a,passive:h},f=bt(t,e,r,i);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Ze(()=>{e.removeEventListener(t,f,i)})}function St(t,e,r){(e[I]??(e[I]={}))[t]=r}function Nt(t){for(var e=0;e{throw F});throw D}}finally{t[I]=e,delete t.currentTarget,Z(x),G(P)}}}function Dt(t,e){var r=e==null?"":typeof e=="object"?e+"":e;r!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=r,t.nodeValue=r+"")}function Et(t,e){return Ye(t,e)}function At(t,e){ne(),e.intro=e.intro??!1;const r=e.target,a=k,h=M;try{for(var i=tt(r);i&&(i.nodeType!==Ne||i.data!==rt);)i=st(i);if(!i)throw fe;j(!0),K(i);const f=Ye(t,{...e,anchor:i});return j(!1),f}catch(f){if(f instanceof Error&&f.message.split(` -`).some(u=>u.startsWith("https://svelte.dev/e/")))throw f;return f!==fe&&console.warn("Failed to hydrate: ",f),e.recover===!1&&it(),ne(),at(r),j(!1),Et(t,e)}finally{j(a),K(h)}}const J=new Map;function Ye(t,{target:e,anchor:r,props:a={},events:h,context:i,intro:f=!0,transformError:u}){ne();var l=void 0,d=nt(()=>{var x=r??e.appendChild(me());pt(x,{pending:()=>{}},v=>{ht({});var _=Se;if(i&&(_.c=i),h&&(a.$$events=h),k&&dt(v,null),l=t(v,a)||{},k&&(B.nodes.end=M,M===null||M.nodeType!==Ne||M.data!==ot))throw lt(),fe;ct()},u);var P=new Set,D=v=>{for(var _=0;_{var O;for(var v of P)for(const b of[e,document]){var _=J.get(b),y=_.get(v);--y==0?(b.removeEventListener(v,ce),_.delete(v),_.size===0&&J.delete(b)):_.set(v,y)}le.delete(D),x!==r&&((O=x.parentNode)==null||O.removeChild(x))}});return de.set(l,d),l}let de=new WeakMap;function Ot(t,e){const r=de.get(t);return r?(de.delete(t),r(e)):Promise.resolve()}export{St as a,Nt as d,Rt as e,At as h,Et as m,Dt as s,Ot as u}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.br b/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.br deleted file mode 100644 index 75ea48d603ab5cf38484e5f24da852c8588455ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3142 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 diff --git a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js b/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js deleted file mode 100644 index 227886d..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js +++ /dev/null @@ -1 +0,0 @@ -import{Z as s,_ as v,W as o,F as c,a7 as b,a8 as m,a9 as h,a0 as y}from"./CpWkWWOo.js";function d(e,r,f=!1){if(e.multiple){if(r==null)return;if(!b(r))return m();for(var a of e.options)a.selected=r.includes(i(a));return}for(a of e.options){var t=i(a);if(h(t,r)){a.selected=!0;return}}(!f||r!==void 0)&&(e.selectedIndex=-1)}function q(e){var r=new MutationObserver(()=>{d(e,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),c(()=>{r.disconnect()})}function p(e,r,f=r){var a=new WeakSet,t=!0;s(e,"change",u=>{var l=u?"[selected]":":checked",n;if(e.multiple)n=[].map.call(e.querySelectorAll(l),i);else{var _=e.querySelector(l)??e.querySelector("option:not([disabled])");n=_&&i(_)}f(n),v!==null&&a.add(v)}),o(()=>{var u=r();if(e===document.activeElement){var l=y??v;if(a.has(l))return}if(d(e,u,t),t&&u===void 0){var n=e.querySelector(":checked");n!==null&&(u=i(n),f(u))}e.__value=u,t=!1}),q(e)}function i(e){return"__value"in e?e.__value:e.value}export{p as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.br b/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.br deleted file mode 100644 index ca545db530a207e79c23c442bd42c121634ba738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i_N<^y14)0umg2|W0uJH_Fru9UXbPBq^Rrls)y|L>>X^8i25ca5q=CB2Py zh94(3(55KgtvwM!Qdfzs{od?S8nGT+@87++_G$_%(a{T0&}BKLc({tmjz+LWV_2ZT z{&V793UzQ+zN}wfZVI)k#Z>6?3^Y}gvp>LonS)l&VwSjKhMR_c1PzK>0u`3Nw*{Pf zWH$DS+|$aiJjTj)pR2#8(O5!^uVl!MbqgCCYrA1OT3TrV4VB&gYQ7)vpK##kyItio z-+GP*C?#lx*a7bk(Af%>mEc$WeXGe;+hCd-No%|UKtAjpQq?L9le*_{TB%g4fTkWx z^z&Zh6F;E3O;VL^V<6tF>|jpG*8OrwshnP=vSkfG09;M2jEGt(i(-1(?Dm6h zsBu8I22BDf9YHN063%V7JrW;B?@LU?>U>x|mNHgxmO+OO zsQ^G*IxSa#Iv1F^H(;}c>*_T$y8L%^)RE4|Y7y74L8j!+(UH81o699l$&3!B?Wlm`w8Q&{X^$q#YJ(JqLk@$?aEGSRA`x#?D%zD(WN GP4@tl!~#kH diff --git a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.gz b/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.gz deleted file mode 100644 index b3d68cb941c082046fec70f27fa8a8ba84c3a924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fMkiwFP!000026J=A&Zrd;ry!R_49fVzgWt~%73ye_|4N#y(4mlX8VHmWu zs@YJa!iSo`(Z2_j94Adr!zE_+!C9)Vw=NuiWzuJ!?Gg-ZoxrlI1T~W%6YiP(l(1v+ zbHW3Yi-Zqj>ugu>4`2KB?RtG}`5#|YZ8UXI)?^J3bF3Bl1s+uk#Ji}2>NQQF6T(ET z(NT!bRH}u14-QXp)&W+nbudVm$;`GHaoeY~9wqmrsSeZ#$CasdY{-KGiCE3*F)81u zjww?RiI$2TATWn`e3dL;Jj+MO+s8+j3o%&LWD6`ypfmBiY3N?OzrgW4>K)KrzzIWt zv!5}@bbr0~nZTO6fpuxhbY>#dbti&t)8Ml&`HZR0qKERhRwA5I6TKr(V}2Z*M5DkmmP5tf&vt z{HB6MaXIm{h^u1rJpHy<7R&lT^({38n~ZzqtPz_n?_|$wsWlM4i{u_|CaHB_v<8h# zVMW^0lzS)Ma6sc~_4clqO?a{aW9!(F30&4e4fIV@itse^!)i4orsN0dK|e3%s9H!yMi!8TvW()q zB$LqmH_*##VP($!K@=)=+(JYg&ubxKGU8%HmR9P;I+Ye|?w~kP3uQ7|os~=C6OMF0 Ued~VuxnuS23A{iPGv@;U0D+$qYybcN diff --git a/apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js b/apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js new file mode 100644 index 0000000..4ee383e --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js @@ -0,0 +1 @@ +var x=t=>{throw TypeError(t)};var B=(t,e,n)=>e.has(t)||x("Cannot "+n);var a=(t,e,n)=>(B(t,e,"read from private field"),n?n.call(t):e.get(t)),c=(t,e,n)=>e.has(t)?x("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{o as I}from"./TZu9D97Z.js";import{s as u,g as f,i as d}from"./wpu9U-D0.js";import{w as G}from"./D8mhvFt8.js";new URL("sveltekit-internal://");function ae(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function oe(t){return t.split("%25").map(decodeURI).join("%25")}function ie(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function le({href:t}){return t.split("#")[0]}function W(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let s=r.length;for(;s;)e=e*33^r[--s]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function X(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&w.delete(U(t)),z(t,e));const w=new Map;function ce(t,e){const n=U(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:s,...l}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&w.set(n,{body:s,init:l,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(s=X(s)),Promise.resolve(new Response(s,l))}return window.fetch(t,e)}function ue(t,e,n){if(w.size>0){const r=U(t,n),s=w.get(r);if(s){if(performance.now()o)}function s(o){n=!1,e.set(o)}function l(o){let i;return e.subscribe(h=>{(i===void 0||n&&h!==i)&&o(i=h)})}return{notify:r,set:s,subscribe:l}}const D={v:()=>{}};function Ae(){const{set:t,subscribe:e}=G(!1);let n;async function r(){clearTimeout(n);try{const s=await fetch(`${M}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!s.ok)return!1;const o=(await s.json()).version!==F;return o&&(t(!0),D.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function Q(t,e,n){return t.origin!==Y||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function Re(t){}const H=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...H];const Z=new Set([...H]);[...Z];let E,O,T;const ee=I.toString().includes("$$")||/function \w+\(\) \{\}/.test(I.toString());var b,_,m,p,v,y,k,A,P,R,V,S,j;ee?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},O={current:null},T={current:!1}):(E=new(P=class{constructor(){c(this,b,u({}));c(this,_,u(null));c(this,m,u(null));c(this,p,u({}));c(this,v,u({id:null}));c(this,y,u({}));c(this,k,u(-1));c(this,A,u(new URL("https://example.com")))}get data(){return f(a(this,b))}set data(e){d(a(this,b),e)}get form(){return f(a(this,_))}set form(e){d(a(this,_),e)}get error(){return f(a(this,m))}set error(e){d(a(this,m),e)}get params(){return f(a(this,p))}set params(e){d(a(this,p),e)}get route(){return f(a(this,v))}set route(e){d(a(this,v),e)}get state(){return f(a(this,y))}set state(e){d(a(this,y),e)}get status(){return f(a(this,k))}set status(e){d(a(this,k),e)}get url(){return f(a(this,A))}set url(e){d(a(this,A),e)}},b=new WeakMap,_=new WeakMap,m=new WeakMap,p=new WeakMap,v=new WeakMap,y=new WeakMap,k=new WeakMap,A=new WeakMap,P),O=new(V=class{constructor(){c(this,R,u(null))}get current(){return f(a(this,R))}set current(e){d(a(this,R),e)}},R=new WeakMap,V),T=new(j=class{constructor(){c(this,S,u(!1))}get current(){return f(a(this,S))}set current(e){d(a(this,S),e)}},S=new WeakMap,j),D.v=()=>T.current=!0);function Ue(t){Object.assign(E,t)}export{we as H,be as N,ge as P,he as S,ye as a,J as b,Ae as c,le as d,ie as e,pe as f,ve as g,ae as h,Q as i,N as j,oe as k,fe as l,ue as m,O as n,Y as o,E as p,ce as q,_e as r,me as s,de as t,ke as u,Ue as v,Re as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js.br b/apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js.br new file mode 100644 index 0000000000000000000000000000000000000000..11713a399e7c1c411d1cb43bc280bd9bdf038e66 GIT binary patch literal 2611 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js.gz b/apps/dashboard/build/_app/immutable/chunks/Bxs5UR9-.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6acb96358357b582908ec2dda3902d7076895f8a GIT binary patch literal 2947 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.source.v=t:A(n.source,t)}),u=!1}return e&&g in i?Q(e):o(n.source)}function ee(){const e={};function r(){N(()=>{for(var i in e)e[i].unsubscribe();U(e,g,{enumerable:!1,value:!0})})}return[e,r]}function V(e){var r=v;try{return v=!1,[e(),v]}finally{v=r}}function re(e,r,i,n){var E;var u=!p||(i&z)!==0,t=(i&x)!==0,T=(i&F)!==0,f=n,b=!0,P=()=>(b&&(b=!1,f=T?j(n):n),f),d;if(t){var m=H in e||J in e;d=((E=B(e,r))==null?void 0:E.set)??(m&&r in e?a=>e[r]=a:void 0)}var _,I=!1;t?[_,I]=V(()=>e[r]):_=e[r],_===void 0&&n!==void 0&&(_=P(),d&&(u&&M(),d(_)));var s;if(u?s=()=>{var a=e[r];return a===void 0?P():(b=!0,a)}:s=()=>{var a=e[r];return a!==void 0&&(f=void 0),a===void 0?f:a},u&&(i&Y)===0)return s;if(d){var D=e.$$legacy;return(function(a,c){return arguments.length>0?((!u||!c||D||I)&&d(c?s():a),a):s()})}var S=!1,l=((i&C)!==0?G:Z)(()=>(S=!1,s()));t&&o(l);var L=q;return(function(a,c){if(arguments.length>0){const O=c?o(l):u&&t?$(a):a;return A(l,O),S=!0,f!==void 0&&(f=O),a}return h&&S||(L.f&w)!==0?l.v:o(l)})}export{ee as a,re as p,k as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/ByYB047u.js.br b/apps/dashboard/build/_app/immutable/chunks/ByYB047u.js.br new file mode 100644 index 0000000000000000000000000000000000000000..372bba17c0cbd2f31bf77a699a337ab483e93d0b GIT binary patch literal 785 zcmV+s1Md7A^92Bm!nU3BLn)lKlp#r}D(dxaLj;)dHI+f=Iy$DaSF34G+kcrPg@a9R zM^kEfqF7oITKeCQ&HC;gA#s#Irx&r0ibY6twbINt4{0e(BfHKOJj}9tazWhnq2C7G z88gzK)%0S}o34BfWb_1osY^zr+F>KLa~#4DN9rvpNvXpz2|Jv?9jEZXnd!+%3o*{g zt;GeraS3&Nf;O&Thig-d^AkoKV(y4hQ?qq z)-5?Wl(xO01uO>oo5tyJh3eCZF>*%ub5~0tja<<7_odYPVQ88ca;&+=7=~U9_%NE4fXY)i^5p zi?~?isT4TTud)cG(@02;P7)`Ssn2Cg0D|<%%W`Jd7E#X#h z=_0C|frT%3nC@jf$np70@ zQQ1O-aM`&ANjxAk8e-j2DR z7JV9NRjbMu3l literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/ByYB047u.js.gz b/apps/dashboard/build/_app/immutable/chunks/ByYB047u.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..cbf9823ef7640be8894bfbe6c43f696ee10fe8b4 GIT binary patch literal 844 zcmV-S1GD@eiwFP!000026Lpl^ZrexDs@ zmPfWyS#m~_6Iar^FF3MuK)YAp2*V+N{v1uZS{Jrz^lYHZ!4>IPxTS@lpsnCD>ACQl zQo%84BYaId5q=`=qQ8@iIv~9iE=jxaThceeJJLUe_jD<^A)N`=q*uaUq;ugL(*FwI zk}iZlNUw!wG!ncceJgz5CAL_-@c+46*RQVsJ{kHq<%=-wn{hpS=zI9G4?KCfT5is& zmo6|f)nLQkAuV{cUCoLNFih$^uF@hO`~*XmQf%TPFRMY$>DW%92n5`eRbfq#*I7no zQQO!ATi6uod@w|+^Rk|mu}xRid=TX zEX3UJ>-Zb)>(H~4d=;9kG|fiaLCxMUe7^eu3{`y8)X|eXRd5XZPpYs(s@Xg2tf^|7 z4~$a1%;*ak42p+P>>fNa2KN3KZn{VFEMW5)0Qsm%3Jantm1G9ZIGsFiIlKl#3u;VW zuZ-2R%mm&cZFE+fz#Deh;ZD-nkexgh{{{wKzm_*)Ww*^vxSQx$yxdH>B+Ye}ZJQ0- z?(wKK{ctJoGn|Gy-_~slsrrQ;^N=crRNeRMud+Vt*9qq|V{b^8EFHp3DVRyogug~N zkYkV|B}j9beAQQ2@jKUl+rD=U=L~SluSEx9KjWw$Y;fwArot$Kl~UG4N1Bg}+&dlY zE?Fl@r*zKVVOT}uDVn^Q3)7m zB#l7{a?hm5NG6#vK&sxjc}H)9ALy(Fw^xD~RVh_K)*JSbZ~rVOP2hJa`#i.map(i=>d[i]); +var ff=Object.defineProperty;var pf=(r,e,t)=>e in r?ff(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var ke=(r,e,t)=>pf(r,typeof e!="symbol"?e+"":e,t);import"./Bzak7iHL.js";import{o as od,a as Ac}from"./TZu9D97Z.js";import{s as Qe,d as Al,i as le,g as L,p as sr,o as Ga,a as ot,b as rr,j as ut,e as xe,h as Ee,n as Or,r as fe,t as Pt,u as ei,c as mf,f as no,m as gf,l as _f}from"./wpu9U-D0.js";import{s as ct,d as Cc,a as Ut}from"./D8mhvFt8.js";import{i as It}from"./DKve45Wd.js";import{e as Pr,i as Wa,a as Rt,r as Br,s as Ns,c as vf}from"./60_R_Vbt.js";import{s as zr}from"./EqHb-9AZ.js";import{b as Cl,a as ph}from"./CnZzd20v.js";import{p as Dr,a as xf,s as yf}from"./ByYB047u.js";import{b as mh}from"./Bxs5UR9-.js";import{b as Rl}from"./g5OnrUYZ.js";import{N as Il}from"./CcUbQ_Wl.js";import{b as Mf}from"./DrafHjYM.js";import{i as bf}from"./BLadwbF7.js";import{_ as Sf}from"./Dp1pzeXC.js";import{I as ps}from"./D7A-gG4Z.js";import{D as wf}from"./CmbJHhgy.js";import{a as ms}from"./CZfHMhLI.js";import{e as Ef}from"./BhIgFntf.js";/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */const Rc="172",Xs={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},Os={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Tf=0,gh=1,Af=2,sS=3,rS=0,ld=1,Cf=2,Qn=3,Ci=0,fn=1,Bn=2,ii=0,qs=1,Wt=2,_h=3,vh=4,Rf=5,Qi=100,If=101,Pf=102,Df=103,Lf=104,Uf=200,Nf=201,Ff=202,Of=203,Pl=204,Dl=205,Bf=206,zf=207,kf=208,Vf=209,Hf=210,Gf=211,Wf=212,Xf=213,qf=214,Ll=0,Ul=1,Nl=2,Ks=3,Fl=4,Ol=5,Bl=6,zl=7,bo=0,Yf=1,Zf=2,Ti=0,Jf=1,Kf=2,$f=3,cd=4,jf=5,Qf=6,ep=7,xh="attached",tp="detached",Ic=300,Ri=301,os=302,io=303,so=304,qr=306,ro=1e3,Nn=1001,ao=1002,Qt=1003,hd=1004,aS=1004,Cr=1005,oS=1005,Vt=1006,Xa=1007,lS=1007,ni=1008,cS=1008,li=1009,ud=1010,dd=1011,kr=1012,Pc=1013,Ii=1014,Mn=1015,si=1016,Dc=1017,Lc=1018,$s=1020,fd=35902,pd=1021,md=1022,dn=1023,gd=1024,_d=1025,Ys=1026,js=1027,Uc=1028,So=1029,vd=1030,Nc=1031,hS=1032,Fc=1033,qa=33776,Ya=33777,Za=33778,Ja=33779,kl=35840,Vl=35841,Hl=35842,Gl=35843,Wl=36196,Xl=37492,ql=37496,Yl=37808,Zl=37809,Jl=37810,Kl=37811,$l=37812,jl=37813,Ql=37814,ec=37815,tc=37816,nc=37817,ic=37818,sc=37819,rc=37820,ac=37821,Ka=36492,oc=36494,lc=36495,xd=36283,cc=36284,hc=36285,uc=36286,np=2200,ip=2201,sp=2202,oo=2300,dc=2301,Fo=2302,Bs=2400,zs=2401,lo=2402,Oc=2500,yd=2501,uS=0,dS=1,fS=2,rp=3200,ap=3201,pS=3202,mS=3203,cs=0,op=1,wi="",xn="srgb",Qs="srgb-linear",co="linear",vt="srgb",gS=0,gs=7680,_S=7681,vS=7682,xS=7683,yS=34055,MS=34056,bS=5386,SS=512,wS=513,ES=514,TS=515,AS=516,CS=517,RS=518,yh=519,lp=512,cp=513,hp=514,Md=515,up=516,dp=517,fp=518,pp=519,ho=35044,IS=35048,PS=35040,DS=35045,LS=35049,US=35041,NS=35046,FS=35050,OS=35042,BS="100",Mh="300 es",zn=2e3,uo=2001;class ci{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const i=this._listeners[e];if(i!==void 0){const s=i.indexOf(t);s!==-1&&i.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const n=this._listeners[e.type];if(n!==void 0){e.target=this;const i=n.slice(0);for(let s=0,a=i.length;s>8&255]+Jt[r>>16&255]+Jt[r>>24&255]+"-"+Jt[e&255]+Jt[e>>8&255]+"-"+Jt[e>>16&15|64]+Jt[e>>24&255]+"-"+Jt[t&63|128]+Jt[t>>8&255]+"-"+Jt[t>>16&255]+Jt[t>>24&255]+Jt[n&255]+Jt[n>>8&255]+Jt[n>>16&255]+Jt[n>>24&255]).toLowerCase()}function et(r,e,t){return Math.max(e,Math.min(t,r))}function Bc(r,e){return(r%e+e)%e}function mp(r,e,t,n,i){return n+(r-e)*(i-n)/(t-e)}function gp(r,e,t){return r!==e?(t-r)/(e-r):0}function Lr(r,e,t){return(1-t)*r+t*e}function _p(r,e,t,n){return Lr(r,e,1-Math.exp(-t*n))}function vp(r,e=1){return e-Math.abs(Bc(r,e*2)-e)}function xp(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*(3-2*r))}function yp(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*r*(r*(r*6-15)+10))}function Mp(r,e){return r+Math.floor(Math.random()*(e-r+1))}function bp(r,e){return r+Math.random()*(e-r)}function Sp(r){return r*(.5-Math.random())}function wp(r){r!==void 0&&(bh=r);let e=bh+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function Ep(r){return r*ss}function Tp(r){return r*er}function Ap(r){return(r&r-1)===0&&r!==0}function Cp(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function Rp(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function Ip(r,e,t,n,i){const s=Math.cos,a=Math.sin,o=s(t/2),l=a(t/2),c=s((e+n)/2),h=a((e+n)/2),u=s((e-n)/2),f=a((e-n)/2),d=s((n-e)/2),p=a((n-e)/2);switch(i){case"XYX":r.set(o*h,l*u,l*f,o*c);break;case"YZY":r.set(l*f,o*h,l*u,o*c);break;case"ZXZ":r.set(l*u,l*f,o*h,o*c);break;case"XZX":r.set(o*h,l*p,l*d,o*c);break;case"YXY":r.set(l*d,o*h,l*p,o*c);break;case"ZYZ":r.set(l*p,l*d,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function sn(r,e){switch(e.constructor){case Float32Array:return r;case Uint32Array:return r/4294967295;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int32Array:return Math.max(r/2147483647,-1);case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function nt(r,e){switch(e.constructor){case Float32Array:return r;case Uint32Array:return Math.round(r*4294967295);case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int32Array:return Math.round(r*2147483647);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}const bd={DEG2RAD:ss,RAD2DEG:er,generateUUID:bn,clamp:et,euclideanModulo:Bc,mapLinear:mp,inverseLerp:gp,lerp:Lr,damp:_p,pingpong:vp,smoothstep:xp,smootherstep:yp,randInt:Mp,randFloat:bp,randFloatSpread:Sp,seededRandom:wp,degToRad:Ep,radToDeg:Tp,isPowerOfTwo:Ap,ceilPowerOfTwo:Cp,floorPowerOfTwo:Rp,setQuaternionFromProperEuler:Ip,normalize:nt,denormalize:sn};class j{constructor(e=0,t=0){j.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=et(this.x,e.x,t.x),this.y=et(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=et(this.x,e,t),this.y=et(this.y,e,t),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(et(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(et(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),i=Math.sin(t),s=this.x-e.x,a=this.y-e.y;return this.x=s*n-a*i+e.x,this.y=s*i+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class tt{constructor(e,t,n,i,s,a,o,l,c){tt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,n,i,s,a,o,l,c)}set(e,t,n,i,s,a,o,l,c){const h=this.elements;return h[0]=e,h[1]=i,h[2]=o,h[3]=t,h[4]=s,h[5]=l,h[6]=n,h[7]=a,h[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,n=e.elements;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],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,s=this.elements,a=n[0],o=n[3],l=n[6],c=n[1],h=n[4],u=n[7],f=n[2],d=n[5],p=n[8],_=i[0],g=i[3],m=i[6],y=i[1],v=i[4],x=i[7],w=i[2],T=i[5],C=i[8];return s[0]=a*_+o*y+l*w,s[3]=a*g+o*v+l*T,s[6]=a*m+o*x+l*C,s[1]=c*_+h*y+u*w,s[4]=c*g+h*v+u*T,s[7]=c*m+h*x+u*C,s[2]=f*_+d*y+p*w,s[5]=f*g+d*v+p*T,s[8]=f*m+d*x+p*C,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],l=e[6],c=e[7],h=e[8];return t*a*h-t*o*c-n*s*h+n*o*l+i*s*c-i*a*l}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],l=e[6],c=e[7],h=e[8],u=h*a-o*c,f=o*l-h*s,d=c*s-a*l,p=t*u+n*f+i*d;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);const _=1/p;return e[0]=u*_,e[1]=(i*c-h*n)*_,e[2]=(o*n-i*a)*_,e[3]=f*_,e[4]=(h*t-i*l)*_,e[5]=(i*s-o*t)*_,e[6]=d*_,e[7]=(n*l-c*t)*_,e[8]=(a*t-n*s)*_,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,s,a,o){const l=Math.cos(s),c=Math.sin(s);return this.set(n*l,n*c,-n*(l*a+c*o)+a+e,-i*c,i*l,-i*(-c*a+l*o)+o+t,0,0,1),this}scale(e,t){return this.premultiply(Oo.makeScale(e,t)),this}rotate(e){return this.premultiply(Oo.makeRotation(-e)),this}translate(e,t){return this.premultiply(Oo.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const Oo=new tt;function Sd(r){for(let e=r.length-1;e>=0;--e)if(r[e]>=65535)return!0;return!1}const Pp={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function ks(r,e){return new Pp[r](e)}function Vr(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function Dp(){const r=Vr("canvas");return r.style.display="block",r}const Sh={};function Fs(r){r in Sh||(Sh[r]=!0,console.warn(r))}function Lp(r,e,t){return new Promise(function(n,i){function s(){switch(r.clientWaitSync(e,r.SYNC_FLUSH_COMMANDS_BIT,0)){case r.WAIT_FAILED:i();break;case r.TIMEOUT_EXPIRED:setTimeout(s,t);break;default:n()}}setTimeout(s,t)})}function Up(r){const e=r.elements;e[2]=.5*e[2]+.5*e[3],e[6]=.5*e[6]+.5*e[7],e[10]=.5*e[10]+.5*e[11],e[14]=.5*e[14]+.5*e[15]}function Np(r){const e=r.elements;e[11]===-1?(e[10]=-e[10]-1,e[14]=-e[14]):(e[10]=-e[10],e[14]=-e[14]+1)}const wh=new tt().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Eh=new tt().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Fp(){const r={enabled:!0,workingColorSpace:Qs,spaces:{},convert:function(i,s,a){return this.enabled===!1||s===a||!s||!a||(this.spaces[s].transfer===vt&&(i.r=ri(i.r),i.g=ri(i.g),i.b=ri(i.b)),this.spaces[s].primaries!==this.spaces[a].primaries&&(i.applyMatrix3(this.spaces[s].toXYZ),i.applyMatrix3(this.spaces[a].fromXYZ)),this.spaces[a].transfer===vt&&(i.r=Zs(i.r),i.g=Zs(i.g),i.b=Zs(i.b))),i},fromWorkingColorSpace:function(i,s){return this.convert(i,this.workingColorSpace,s)},toWorkingColorSpace:function(i,s){return this.convert(i,s,this.workingColorSpace)},getPrimaries:function(i){return this.spaces[i].primaries},getTransfer:function(i){return i===wi?co:this.spaces[i].transfer},getLuminanceCoefficients:function(i,s=this.workingColorSpace){return i.fromArray(this.spaces[s].luminanceCoefficients)},define:function(i){Object.assign(this.spaces,i)},_getMatrix:function(i,s,a){return i.copy(this.spaces[s].toXYZ).multiply(this.spaces[a].fromXYZ)},_getDrawingBufferColorSpace:function(i){return this.spaces[i].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(i=this.workingColorSpace){return this.spaces[i].workingColorSpaceConfig.unpackColorSpace}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],n=[.3127,.329];return r.define({[Qs]:{primaries:e,whitePoint:n,transfer:co,toXYZ:wh,fromXYZ:Eh,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:xn},outputColorSpaceConfig:{drawingBufferColorSpace:xn}},[xn]:{primaries:e,whitePoint:n,transfer:vt,toXYZ:wh,fromXYZ:Eh,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:xn}}}),r}const ht=Fp();function ri(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Zs(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}let _s;class Op{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{_s===void 0&&(_s=Vr("canvas")),_s.width=e.width,_s.height=e.height;const n=_s.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=_s}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=Vr("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const i=n.getImageData(0,0,e.width,e.height),s=i.data;for(let a=0;a0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==Ic)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ro:e.x=e.x-Math.floor(e.x);break;case Nn:e.x=e.x<0?0:1;break;case ao:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case ro:e.y=e.y-Math.floor(e.y);break;case Nn:e.y=e.y<0?0:1;break;case ao:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}}Et.DEFAULT_IMAGE=null;Et.DEFAULT_MAPPING=Ic;Et.DEFAULT_ANISOTROPY=1;class pt{constructor(e=0,t=0,n=0,i=1){pt.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,s=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*i+a[12]*s,this.y=a[1]*t+a[5]*n+a[9]*i+a[13]*s,this.z=a[2]*t+a[6]*n+a[10]*i+a[14]*s,this.w=a[3]*t+a[7]*n+a[11]*i+a[15]*s,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,s;const l=e.elements,c=l[0],h=l[4],u=l[8],f=l[1],d=l[5],p=l[9],_=l[2],g=l[6],m=l[10];if(Math.abs(h-f)<.01&&Math.abs(u-_)<.01&&Math.abs(p-g)<.01){if(Math.abs(h+f)<.1&&Math.abs(u+_)<.1&&Math.abs(p+g)<.1&&Math.abs(c+d+m-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const v=(c+1)/2,x=(d+1)/2,w=(m+1)/2,T=(h+f)/4,C=(u+_)/4,P=(p+g)/4;return v>x&&v>w?v<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(v),i=T/n,s=C/n):x>w?x<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(x),n=T/i,s=P/i):w<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(w),n=C/s,i=P/s),this.set(n,i,s,t),this}let y=Math.sqrt((g-p)*(g-p)+(u-_)*(u-_)+(f-h)*(f-h));return Math.abs(y)<.001&&(y=1),this.x=(g-p)/y,this.y=(u-_)/y,this.z=(f-h)/y,this.w=Math.acos((c+d+m-1)/2),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=et(this.x,e.x,t.x),this.y=et(this.y,e.y,t.y),this.z=et(this.z,e.z,t.z),this.w=et(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=et(this.x,e,t),this.y=et(this.y,e,t),this.z=et(this.z,e,t),this.w=et(this.w,e,t),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(et(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class zc extends ci{constructor(e=1,t=1,n={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new pt(0,0,e,t),this.scissorTest=!1,this.viewport=new pt(0,0,e,t);const i={width:e,height:t,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Vt,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const s=new Et(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);s.flipY=!1,s.generateMipmaps=n.generateMipmaps,s.internalFormat=n.internalFormat,this.textures=[];const a=n.count;for(let o=0;o=0?1:-1,v=1-m*m;if(v>Number.EPSILON){const w=Math.sqrt(v),T=Math.atan2(w,m*y);g=Math.sin(g*T)/w,o=Math.sin(o*T)/w}const x=o*y;if(l=l*g+f*x,c=c*g+d*x,h=h*g+p*x,u=u*g+_*x,g===1-o){const w=1/Math.sqrt(l*l+c*c+h*h+u*u);l*=w,c*=w,h*=w,u*=w}}e[t]=l,e[t+1]=c,e[t+2]=h,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,i,s,a){const o=n[i],l=n[i+1],c=n[i+2],h=n[i+3],u=s[a],f=s[a+1],d=s[a+2],p=s[a+3];return e[t]=o*p+h*u+l*d-c*f,e[t+1]=l*p+h*f+c*u-o*d,e[t+2]=c*p+h*d+o*f-l*u,e[t+3]=h*p-o*u-l*f-c*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const n=e._x,i=e._y,s=e._z,a=e._order,o=Math.cos,l=Math.sin,c=o(n/2),h=o(i/2),u=o(s/2),f=l(n/2),d=l(i/2),p=l(s/2);switch(a){case"XYZ":this._x=f*h*u+c*d*p,this._y=c*d*u-f*h*p,this._z=c*h*p+f*d*u,this._w=c*h*u-f*d*p;break;case"YXZ":this._x=f*h*u+c*d*p,this._y=c*d*u-f*h*p,this._z=c*h*p-f*d*u,this._w=c*h*u+f*d*p;break;case"ZXY":this._x=f*h*u-c*d*p,this._y=c*d*u+f*h*p,this._z=c*h*p+f*d*u,this._w=c*h*u-f*d*p;break;case"ZYX":this._x=f*h*u-c*d*p,this._y=c*d*u+f*h*p,this._z=c*h*p-f*d*u,this._w=c*h*u+f*d*p;break;case"YZX":this._x=f*h*u+c*d*p,this._y=c*d*u+f*h*p,this._z=c*h*p-f*d*u,this._w=c*h*u-f*d*p;break;case"XZY":this._x=f*h*u-c*d*p,this._y=c*d*u-f*h*p,this._z=c*h*p+f*d*u,this._w=c*h*u+f*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],i=t[4],s=t[8],a=t[1],o=t[5],l=t[9],c=t[2],h=t[6],u=t[10],f=n+o+u;if(f>0){const d=.5/Math.sqrt(f+1);this._w=.25/d,this._x=(h-l)*d,this._y=(s-c)*d,this._z=(a-i)*d}else if(n>o&&n>u){const d=2*Math.sqrt(1+n-o-u);this._w=(h-l)/d,this._x=.25*d,this._y=(i+a)/d,this._z=(s+c)/d}else if(o>u){const d=2*Math.sqrt(1+o-n-u);this._w=(s-c)/d,this._x=(i+a)/d,this._y=.25*d,this._z=(l+h)/d}else{const d=2*Math.sqrt(1+u-n-o);this._w=(a-i)/d,this._x=(s+c)/d,this._y=(l+h)/d,this._z=.25*d}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(et(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(n===0)return this;const i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,i=e._y,s=e._z,a=e._w,o=t._x,l=t._y,c=t._z,h=t._w;return this._x=n*h+a*o+i*c-s*l,this._y=i*h+a*l+s*o-n*c,this._z=s*h+a*c+n*l-i*o,this._w=a*h-n*o-i*l-s*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const n=this._x,i=this._y,s=this._z,a=this._w;let o=a*e._w+n*e._x+i*e._y+s*e._z;if(o<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,o=-o):this.copy(e),o>=1)return this._w=a,this._x=n,this._y=i,this._z=s,this;const l=1-o*o;if(l<=Number.EPSILON){const d=1-t;return this._w=d*a+t*this._w,this._x=d*n+t*this._x,this._y=d*i+t*this._y,this._z=d*s+t*this._z,this.normalize(),this}const c=Math.sqrt(l),h=Math.atan2(c,o),u=Math.sin((1-t)*h)/c,f=Math.sin(t*h)/c;return this._w=a*u+this._w*f,this._x=n*u+this._x*f,this._y=i*u+this._y*f,this._z=s*u+this._z*f,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),s=Math.sqrt(n);return this.set(i*Math.sin(e),i*Math.cos(e),s*Math.sin(t),s*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class A{constructor(e=0,t=0,n=0){A.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(Th.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Th.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[3]*n+s[6]*i,this.y=s[1]*t+s[4]*n+s[7]*i,this.z=s[2]*t+s[5]*n+s[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,s=e.elements,a=1/(s[3]*t+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*t+s[4]*n+s[8]*i+s[12])*a,this.y=(s[1]*t+s[5]*n+s[9]*i+s[13])*a,this.z=(s[2]*t+s[6]*n+s[10]*i+s[14])*a,this}applyQuaternion(e){const t=this.x,n=this.y,i=this.z,s=e.x,a=e.y,o=e.z,l=e.w,c=2*(a*i-o*n),h=2*(o*t-s*i),u=2*(s*n-a*t);return this.x=t+l*c+a*u-o*h,this.y=n+l*h+o*c-s*u,this.z=i+l*u+s*h-a*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[4]*n+s[8]*i,this.y=s[1]*t+s[5]*n+s[9]*i,this.z=s[2]*t+s[6]*n+s[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=et(this.x,e.x,t.x),this.y=et(this.y,e.y,t.y),this.z=et(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=et(this.x,e,t),this.y=et(this.y,e,t),this.z=et(this.z,e,t),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(et(n,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,i=e.y,s=e.z,a=t.x,o=t.y,l=t.z;return this.x=i*l-s*o,this.y=s*a-n*l,this.z=n*o-i*a,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return zo.copy(this).projectOnVector(e),this.sub(zo)}reflect(e){return this.sub(zo.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(et(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){const i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,t=Math.random()*2-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const zo=new A,Th=new rn;class pn{constructor(e=new A(1/0,1/0,1/0),t=new A(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,Dn),Dn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(mr),$r.subVectors(this.max,mr),vs.subVectors(e.a,mr),xs.subVectors(e.b,mr),ys.subVectors(e.c,mr),mi.subVectors(xs,vs),gi.subVectors(ys,xs),Fi.subVectors(vs,ys);let t=[0,-mi.z,mi.y,0,-gi.z,gi.y,0,-Fi.z,Fi.y,mi.z,0,-mi.x,gi.z,0,-gi.x,Fi.z,0,-Fi.x,-mi.y,mi.x,0,-gi.y,gi.x,0,-Fi.y,Fi.x,0];return!ko(t,vs,xs,ys,$r)||(t=[1,0,0,0,1,0,0,0,1],!ko(t,vs,xs,ys,$r))?!1:(jr.crossVectors(mi,gi),t=[jr.x,jr.y,jr.z],ko(t,vs,xs,ys,$r))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Dn).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Dn).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(qn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),qn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),qn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),qn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),qn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),qn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),qn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),qn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(qn),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const qn=[new A,new A,new A,new A,new A,new A,new A,new A],Dn=new A,Kr=new pn,vs=new A,xs=new A,ys=new A,mi=new A,gi=new A,Fi=new A,mr=new A,$r=new A,jr=new A,Oi=new A;function ko(r,e,t,n,i){for(let s=0,a=r.length-3;s<=a;s+=3){Oi.fromArray(r,s);const o=i.x*Math.abs(Oi.x)+i.y*Math.abs(Oi.y)+i.z*Math.abs(Oi.z),l=e.dot(Oi),c=t.dot(Oi),h=n.dot(Oi);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>o)return!1}return!0}const kp=new pn,gr=new A,Vo=new A;class an{constructor(e=new A,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const n=this.center;t!==void 0?n.copy(t):kp.setFromPoints(e).getCenter(n);let i=0;for(let s=0,a=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;gr.subVectors(e,this.center);const t=gr.lengthSq();if(t>this.radius*this.radius){const n=Math.sqrt(t),i=(n-this.radius)*.5;this.center.addScaledVector(gr,i/n),this.radius+=i}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Vo.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(gr.copy(e.center).add(Vo)),this.expandByPoint(gr.copy(e.center).sub(Vo))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Yn=new A,Ho=new A,Qr=new A,_i=new A,Go=new A,ea=new A,Wo=new A;class ar{constructor(e=new A,t=new A(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Yn)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Yn.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Yn.copy(this.origin).addScaledVector(this.direction,t),Yn.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){Ho.copy(e).add(t).multiplyScalar(.5),Qr.copy(t).sub(e).normalize(),_i.copy(this.origin).sub(Ho);const s=e.distanceTo(t)*.5,a=-this.direction.dot(Qr),o=_i.dot(this.direction),l=-_i.dot(Qr),c=_i.lengthSq(),h=Math.abs(1-a*a);let u,f,d,p;if(h>0)if(u=a*l-o,f=a*o-l,p=s*h,u>=0)if(f>=-p)if(f<=p){const _=1/h;u*=_,f*=_,d=u*(u+a*f+2*o)+f*(a*u+f+2*l)+c}else f=s,u=Math.max(0,-(a*f+o)),d=-u*u+f*(f+2*l)+c;else f=-s,u=Math.max(0,-(a*f+o)),d=-u*u+f*(f+2*l)+c;else f<=-p?(u=Math.max(0,-(-a*s+o)),f=u>0?-s:Math.min(Math.max(-s,-l),s),d=-u*u+f*(f+2*l)+c):f<=p?(u=0,f=Math.min(Math.max(-s,-l),s),d=f*(f+2*l)+c):(u=Math.max(0,-(a*s+o)),f=u>0?s:Math.min(Math.max(-s,-l),s),d=-u*u+f*(f+2*l)+c);else f=a>0?-s:s,u=Math.max(0,-(a*f+o)),d=-u*u+f*(f+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),i&&i.copy(Ho).addScaledVector(Qr,f),d}intersectSphere(e,t){Yn.subVectors(e.center,this.origin);const n=Yn.dot(this.direction),i=Yn.dot(Yn)-n*n,s=e.radius*e.radius;if(i>s)return null;const a=Math.sqrt(s-i),o=n-a,l=n+a;return l<0?null:o<0?this.at(l,t):this.at(o,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,s,a,o,l;const c=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,f=this.origin;return c>=0?(n=(e.min.x-f.x)*c,i=(e.max.x-f.x)*c):(n=(e.max.x-f.x)*c,i=(e.min.x-f.x)*c),h>=0?(s=(e.min.y-f.y)*h,a=(e.max.y-f.y)*h):(s=(e.max.y-f.y)*h,a=(e.min.y-f.y)*h),n>a||s>i||((s>n||isNaN(n))&&(n=s),(a=0?(o=(e.min.z-f.z)*u,l=(e.max.z-f.z)*u):(o=(e.max.z-f.z)*u,l=(e.min.z-f.z)*u),n>l||o>i)||((o>n||n!==n)&&(n=o),(l=0?n:i,t)}intersectsBox(e){return this.intersectBox(e,Yn)!==null}intersectTriangle(e,t,n,i,s){Go.subVectors(t,e),ea.subVectors(n,e),Wo.crossVectors(Go,ea);let a=this.direction.dot(Wo),o;if(a>0){if(i)return null;o=1}else if(a<0)o=-1,a=-a;else return null;_i.subVectors(this.origin,e);const l=o*this.direction.dot(ea.crossVectors(_i,ea));if(l<0)return null;const c=o*this.direction.dot(Go.cross(_i));if(c<0||l+c>a)return null;const h=-o*_i.dot(Wo);return h<0?null:this.at(h/a,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Ze{constructor(e,t,n,i,s,a,o,l,c,h,u,f,d,p,_,g){Ze.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,n,i,s,a,o,l,c,h,u,f,d,p,_,g)}set(e,t,n,i,s,a,o,l,c,h,u,f,d,p,_,g){const m=this.elements;return m[0]=e,m[4]=t,m[8]=n,m[12]=i,m[1]=s,m[5]=a,m[9]=o,m[13]=l,m[2]=c,m[6]=h,m[10]=u,m[14]=f,m[3]=d,m[7]=p,m[11]=_,m[15]=g,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Ze().fromArray(this.elements)}copy(e){const t=this.elements,n=e.elements;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],this}copyPosition(e){const t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,n=e.elements,i=1/Ms.setFromMatrixColumn(e,0).length(),s=1/Ms.setFromMatrixColumn(e,1).length(),a=1/Ms.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*s,t[5]=n[5]*s,t[6]=n[6]*s,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,n=e.x,i=e.y,s=e.z,a=Math.cos(n),o=Math.sin(n),l=Math.cos(i),c=Math.sin(i),h=Math.cos(s),u=Math.sin(s);if(e.order==="XYZ"){const f=a*h,d=a*u,p=o*h,_=o*u;t[0]=l*h,t[4]=-l*u,t[8]=c,t[1]=d+p*c,t[5]=f-_*c,t[9]=-o*l,t[2]=_-f*c,t[6]=p+d*c,t[10]=a*l}else if(e.order==="YXZ"){const f=l*h,d=l*u,p=c*h,_=c*u;t[0]=f+_*o,t[4]=p*o-d,t[8]=a*c,t[1]=a*u,t[5]=a*h,t[9]=-o,t[2]=d*o-p,t[6]=_+f*o,t[10]=a*l}else if(e.order==="ZXY"){const f=l*h,d=l*u,p=c*h,_=c*u;t[0]=f-_*o,t[4]=-a*u,t[8]=p+d*o,t[1]=d+p*o,t[5]=a*h,t[9]=_-f*o,t[2]=-a*c,t[6]=o,t[10]=a*l}else if(e.order==="ZYX"){const f=a*h,d=a*u,p=o*h,_=o*u;t[0]=l*h,t[4]=p*c-d,t[8]=f*c+_,t[1]=l*u,t[5]=_*c+f,t[9]=d*c-p,t[2]=-c,t[6]=o*l,t[10]=a*l}else if(e.order==="YZX"){const f=a*l,d=a*c,p=o*l,_=o*c;t[0]=l*h,t[4]=_-f*u,t[8]=p*u+d,t[1]=u,t[5]=a*h,t[9]=-o*h,t[2]=-c*h,t[6]=d*u+p,t[10]=f-_*u}else if(e.order==="XZY"){const f=a*l,d=a*c,p=o*l,_=o*c;t[0]=l*h,t[4]=-u,t[8]=c*h,t[1]=f*u+_,t[5]=a*h,t[9]=d*u-p,t[2]=p*u-d,t[6]=o*h,t[10]=_*u+f}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(Vp,e,Hp)}lookAt(e,t,n){const i=this.elements;return _n.subVectors(e,t),_n.lengthSq()===0&&(_n.z=1),_n.normalize(),vi.crossVectors(n,_n),vi.lengthSq()===0&&(Math.abs(n.z)===1?_n.x+=1e-4:_n.z+=1e-4,_n.normalize(),vi.crossVectors(n,_n)),vi.normalize(),ta.crossVectors(_n,vi),i[0]=vi.x,i[4]=ta.x,i[8]=_n.x,i[1]=vi.y,i[5]=ta.y,i[9]=_n.y,i[2]=vi.z,i[6]=ta.z,i[10]=_n.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,s=this.elements,a=n[0],o=n[4],l=n[8],c=n[12],h=n[1],u=n[5],f=n[9],d=n[13],p=n[2],_=n[6],g=n[10],m=n[14],y=n[3],v=n[7],x=n[11],w=n[15],T=i[0],C=i[4],P=i[8],S=i[12],M=i[1],D=i[5],G=i[9],F=i[13],V=i[2],J=i[6],q=i[10],se=i[14],Z=i[3],_e=i[7],be=i[11],Re=i[15];return s[0]=a*T+o*M+l*V+c*Z,s[4]=a*C+o*D+l*J+c*_e,s[8]=a*P+o*G+l*q+c*be,s[12]=a*S+o*F+l*se+c*Re,s[1]=h*T+u*M+f*V+d*Z,s[5]=h*C+u*D+f*J+d*_e,s[9]=h*P+u*G+f*q+d*be,s[13]=h*S+u*F+f*se+d*Re,s[2]=p*T+_*M+g*V+m*Z,s[6]=p*C+_*D+g*J+m*_e,s[10]=p*P+_*G+g*q+m*be,s[14]=p*S+_*F+g*se+m*Re,s[3]=y*T+v*M+x*V+w*Z,s[7]=y*C+v*D+x*J+w*_e,s[11]=y*P+v*G+x*q+w*be,s[15]=y*S+v*F+x*se+w*Re,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[4],i=e[8],s=e[12],a=e[1],o=e[5],l=e[9],c=e[13],h=e[2],u=e[6],f=e[10],d=e[14],p=e[3],_=e[7],g=e[11],m=e[15];return p*(+s*l*u-i*c*u-s*o*f+n*c*f+i*o*d-n*l*d)+_*(+t*l*d-t*c*f+s*a*f-i*a*d+i*c*h-s*l*h)+g*(+t*c*u-t*o*d-s*a*u+n*a*d+s*o*h-n*c*h)+m*(-i*o*h-t*l*u+t*o*f+i*a*u-n*a*f+n*l*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){const i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],l=e[6],c=e[7],h=e[8],u=e[9],f=e[10],d=e[11],p=e[12],_=e[13],g=e[14],m=e[15],y=u*g*c-_*f*c+_*l*d-o*g*d-u*l*m+o*f*m,v=p*f*c-h*g*c-p*l*d+a*g*d+h*l*m-a*f*m,x=h*_*c-p*u*c+p*o*d-a*_*d-h*o*m+a*u*m,w=p*u*l-h*_*l-p*o*f+a*_*f+h*o*g-a*u*g,T=t*y+n*v+i*x+s*w;if(T===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const C=1/T;return e[0]=y*C,e[1]=(_*f*s-u*g*s-_*i*d+n*g*d+u*i*m-n*f*m)*C,e[2]=(o*g*s-_*l*s+_*i*c-n*g*c-o*i*m+n*l*m)*C,e[3]=(u*l*s-o*f*s-u*i*c+n*f*c+o*i*d-n*l*d)*C,e[4]=v*C,e[5]=(h*g*s-p*f*s+p*i*d-t*g*d-h*i*m+t*f*m)*C,e[6]=(p*l*s-a*g*s-p*i*c+t*g*c+a*i*m-t*l*m)*C,e[7]=(a*f*s-h*l*s+h*i*c-t*f*c-a*i*d+t*l*d)*C,e[8]=x*C,e[9]=(p*u*s-h*_*s-p*n*d+t*_*d+h*n*m-t*u*m)*C,e[10]=(a*_*s-p*o*s+p*n*c-t*_*c-a*n*m+t*o*m)*C,e[11]=(h*o*s-a*u*s-h*n*c+t*u*c+a*n*d-t*o*d)*C,e[12]=w*C,e[13]=(h*_*i-p*u*i+p*n*f-t*_*f-h*n*g+t*u*g)*C,e[14]=(p*o*i-a*_*i-p*n*l+t*_*l+a*n*g-t*o*g)*C,e[15]=(a*u*i-h*o*i+h*n*l-t*u*l-a*n*f+t*o*f)*C,this}scale(e){const t=this.elements,n=e.x,i=e.y,s=e.z;return t[0]*=n,t[4]*=i,t[8]*=s,t[1]*=n,t[5]*=i,t[9]*=s,t[2]*=n,t[6]*=i,t[10]*=s,t[3]*=n,t[7]*=i,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const n=Math.cos(t),i=Math.sin(t),s=1-n,a=e.x,o=e.y,l=e.z,c=s*a,h=s*o;return this.set(c*a+n,c*o-i*l,c*l+i*o,0,c*o+i*l,h*o+n,h*l-i*a,0,c*l-i*o,h*l+i*a,s*l*l+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,s,a){return this.set(1,n,s,0,e,1,a,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){const i=this.elements,s=t._x,a=t._y,o=t._z,l=t._w,c=s+s,h=a+a,u=o+o,f=s*c,d=s*h,p=s*u,_=a*h,g=a*u,m=o*u,y=l*c,v=l*h,x=l*u,w=n.x,T=n.y,C=n.z;return i[0]=(1-(_+m))*w,i[1]=(d+x)*w,i[2]=(p-v)*w,i[3]=0,i[4]=(d-x)*T,i[5]=(1-(f+m))*T,i[6]=(g+y)*T,i[7]=0,i[8]=(p+v)*C,i[9]=(g-y)*C,i[10]=(1-(f+_))*C,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){const i=this.elements;let s=Ms.set(i[0],i[1],i[2]).length();const a=Ms.set(i[4],i[5],i[6]).length(),o=Ms.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),e.x=i[12],e.y=i[13],e.z=i[14],Ln.copy(this);const c=1/s,h=1/a,u=1/o;return Ln.elements[0]*=c,Ln.elements[1]*=c,Ln.elements[2]*=c,Ln.elements[4]*=h,Ln.elements[5]*=h,Ln.elements[6]*=h,Ln.elements[8]*=u,Ln.elements[9]*=u,Ln.elements[10]*=u,t.setFromRotationMatrix(Ln),n.x=s,n.y=a,n.z=o,this}makePerspective(e,t,n,i,s,a,o=zn){const l=this.elements,c=2*s/(t-e),h=2*s/(n-i),u=(t+e)/(t-e),f=(n+i)/(n-i);let d,p;if(o===zn)d=-(a+s)/(a-s),p=-2*a*s/(a-s);else if(o===uo)d=-a/(a-s),p=-a*s/(a-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return l[0]=c,l[4]=0,l[8]=u,l[12]=0,l[1]=0,l[5]=h,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=d,l[14]=p,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,n,i,s,a,o=zn){const l=this.elements,c=1/(t-e),h=1/(n-i),u=1/(a-s),f=(t+e)*c,d=(n+i)*h;let p,_;if(o===zn)p=(a+s)*u,_=-2*u;else if(o===uo)p=s*u,_=-1*u;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-d,l[2]=0,l[6]=0,l[10]=_,l[14]=-p,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}const Ms=new A,Ln=new Ze,Vp=new A(0,0,0),Hp=new A(1,1,1),vi=new A,ta=new A,_n=new A,Ah=new Ze,Ch=new rn;class In{constructor(e=0,t=0,n=0,i=In.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){const i=e.elements,s=i[0],a=i[4],o=i[8],l=i[1],c=i[5],h=i[9],u=i[2],f=i[6],d=i[10];switch(t){case"XYZ":this._y=Math.asin(et(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,d),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(f,c),this._z=0);break;case"YXZ":this._x=Math.asin(-et(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,d),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-u,s),this._z=0);break;case"ZXY":this._x=Math.asin(et(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-et(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(f,d),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-a,c));break;case"YZX":this._z=Math.asin(et(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-u,s)):(this._x=0,this._y=Math.atan2(o,d));break;case"XZY":this._z=Math.asin(-et(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(f,c),this._y=Math.atan2(o,s)):(this._x=Math.atan2(-h,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return Ah.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Ah,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return Ch.setFromEuler(this),this.setFromQuaternion(Ch,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}In.DEFAULT_ORDER="XYZ";class Vc{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let n=0;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(o=>({boxInitialized:o.boxInitialized,boxMin:o.box.min.toArray(),boxMax:o.box.max.toArray(),sphereInitialized:o.sphereInitialized,sphereRadius:o.sphere.radius,sphereCenter:o.sphere.center.toArray()})),i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(e),this._colorsTexture!==null&&(i.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),this.boundingBox!==null&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()}));function s(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const l=o.shapes;if(Array.isArray(l))for(let c=0,h=l.length;c0){i.children=[];for(let o=0;o0){i.animations=[];for(let o=0;o0&&(n.geometries=o),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),h.length>0&&(n.images=h),u.length>0&&(n.shapes=u),f.length>0&&(n.skeletons=f),d.length>0&&(n.animations=d),p.length>0&&(n.nodes=p)}return n.object=i,n;function a(o){const l=[];for(const c in o){const h=o[c];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(e,t,n,i,s){Un.subVectors(i,t),Jn.subVectors(n,t),qo.subVectors(e,t);const a=Un.dot(Un),o=Un.dot(Jn),l=Un.dot(qo),c=Jn.dot(Jn),h=Jn.dot(qo),u=a*c-o*o;if(u===0)return s.set(0,0,0),null;const f=1/u,d=(c*l-o*h)*f,p=(a*h-o*l)*f;return s.set(1-d-p,p,d)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,Kn)===null?!1:Kn.x>=0&&Kn.y>=0&&Kn.x+Kn.y<=1}static getInterpolation(e,t,n,i,s,a,o,l){return this.getBarycoord(e,t,n,i,Kn)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,Kn.x),l.addScaledVector(a,Kn.y),l.addScaledVector(o,Kn.z),l)}static getInterpolatedAttribute(e,t,n,i,s,a){return Ko.setScalar(0),$o.setScalar(0),jo.setScalar(0),Ko.fromBufferAttribute(e,t),$o.fromBufferAttribute(e,n),jo.fromBufferAttribute(e,i),a.setScalar(0),a.addScaledVector(Ko,s.x),a.addScaledVector($o,s.y),a.addScaledVector(jo,s.z),a}static isFrontFacing(e,t,n,i){return Un.subVectors(n,t),Jn.subVectors(e,t),Un.cross(Jn).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Un.subVectors(this.c,this.b),Jn.subVectors(this.a,this.b),Un.cross(Jn).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return yn.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return yn.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,n,i,s){return yn.getInterpolation(e,this.a,this.b,this.c,t,n,i,s)}containsPoint(e){return yn.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return yn.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,i=this.b,s=this.c;let a,o;ws.subVectors(i,n),Es.subVectors(s,n),Yo.subVectors(e,n);const l=ws.dot(Yo),c=Es.dot(Yo);if(l<=0&&c<=0)return t.copy(n);Zo.subVectors(e,i);const h=ws.dot(Zo),u=Es.dot(Zo);if(h>=0&&u<=h)return t.copy(i);const f=l*u-h*c;if(f<=0&&l>=0&&h<=0)return a=l/(l-h),t.copy(n).addScaledVector(ws,a);Jo.subVectors(e,s);const d=ws.dot(Jo),p=Es.dot(Jo);if(p>=0&&d<=p)return t.copy(s);const _=d*c-l*p;if(_<=0&&c>=0&&p<=0)return o=c/(c-p),t.copy(n).addScaledVector(Es,o);const g=h*p-d*u;if(g<=0&&u-h>=0&&d-p>=0)return Uh.subVectors(s,i),o=(u-h)/(u-h+(d-p)),t.copy(i).addScaledVector(Uh,o);const m=1/(g+_+f);return a=_*m,o=f*m,t.copy(n).addScaledVector(ws,a).addScaledVector(Es,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const wd={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},xi={h:0,s:0,l:0},ia={h:0,s:0,l:0};function Qo(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+(e-r)*6*t:t<1/2?e:t<2/3?r+(e-r)*6*(2/3-t):r}class ne{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(t===void 0&&n===void 0){const i=e;i&&i.isColor?this.copy(i):typeof i=="number"?this.setHex(i):typeof i=="string"&&this.setStyle(i)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=xn){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,ht.toWorkingColorSpace(this,t),this}setRGB(e,t,n,i=ht.workingColorSpace){return this.r=e,this.g=t,this.b=n,ht.toWorkingColorSpace(this,i),this}setHSL(e,t,n,i=ht.workingColorSpace){if(e=Bc(e,1),t=et(t,0,1),n=et(n,0,1),t===0)this.r=this.g=this.b=n;else{const s=n<=.5?n*(1+t):n+t-n*t,a=2*n-s;this.r=Qo(a,s,e+1/3),this.g=Qo(a,s,e),this.b=Qo(a,s,e-1/3)}return ht.toWorkingColorSpace(this,i),this}setStyle(e,t=xn){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const a=i[1],o=i[2];switch(a){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=i[1],a=s.length;if(a===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(a===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=xn){const n=wd[e.toLowerCase()];return n!==void 0?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ri(e.r),this.g=ri(e.g),this.b=ri(e.b),this}copyLinearToSRGB(e){return this.r=Zs(e.r),this.g=Zs(e.g),this.b=Zs(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=xn){return ht.fromWorkingColorSpace(Kt.copy(this),e),Math.round(et(Kt.r*255,0,255))*65536+Math.round(et(Kt.g*255,0,255))*256+Math.round(et(Kt.b*255,0,255))}getHexString(e=xn){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=ht.workingColorSpace){ht.fromWorkingColorSpace(Kt.copy(this),t);const n=Kt.r,i=Kt.g,s=Kt.b,a=Math.max(n,i,s),o=Math.min(n,i,s);let l,c;const h=(o+a)/2;if(o===a)l=0,c=0;else{const u=a-o;switch(c=h<=.5?u/(a+o):u/(2-a-o),a){case n:l=(i-s)/u+(i0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const n=e[t];if(n===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const i=this[t];if(i===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==qs&&(n.blending=this.blending),this.side!==Ci&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==Pl&&(n.blendSrc=this.blendSrc),this.blendDst!==Dl&&(n.blendDst=this.blendDst),this.blendEquation!==Qi&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==Ks&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==yh&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==gs&&(n.stencilFail=this.stencilFail),this.stencilZFail!==gs&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==gs&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function i(s){const a=[];for(const o in s){const l=s[o];delete l.metadata,a.push(l)}return a}if(t){const s=i(e.textures),a=i(e.images);s.length>0&&(n.textures=s),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(t!==null){const i=t.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=t[s].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class kn extends on{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new ne(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new In,this.combine=bo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const ti=Zp();function Zp(){const r=new ArrayBuffer(4),e=new Float32Array(r),t=new Uint32Array(r),n=new Uint32Array(512),i=new Uint32Array(512);for(let l=0;l<256;++l){const c=l-127;c<-27?(n[l]=0,n[l|256]=32768,i[l]=24,i[l|256]=24):c<-14?(n[l]=1024>>-c-14,n[l|256]=1024>>-c-14|32768,i[l]=-c-1,i[l|256]=-c-1):c<=15?(n[l]=c+15<<10,n[l|256]=c+15<<10|32768,i[l]=13,i[l|256]=13):c<128?(n[l]=31744,n[l|256]=64512,i[l]=24,i[l|256]=24):(n[l]=31744,n[l|256]=64512,i[l]=13,i[l|256]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let c=l<<13,h=0;for(;(c&8388608)===0;)c<<=1,h-=8388608;c&=-8388609,h+=947912704,s[l]=c|h}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(o[l]=1024);return{floatView:e,uint32View:t,baseTable:n,shiftTable:i,mantissaTable:s,exponentTable:a,offsetTable:o}}function un(r){Math.abs(r)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),r=et(r,-65504,65504),ti.floatView[0]=r;const e=ti.uint32View[0],t=e>>23&511;return ti.baseTable[t]+((e&8388607)>>ti.shiftTable[t])}function Rr(r){const e=r>>10;return ti.uint32View[0]=ti.mantissaTable[ti.offsetTable[e]+(r&1023)]+ti.exponentTable[e],ti.floatView[0]}const VS={toHalfFloat:un,fromHalfFloat:Rr},Lt=new A,sa=new j;class rt{constructor(e,t,n=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n,this.usage=ho,this.updateRanges=[],this.gpuType=Mn,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,s=this.itemSize;it.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new pn);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new A(-1/0,-1/0,-1/0),new A(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let n=0,i=t.length;n0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const l in n){const c=n[l];e.data.attributes[l]=c.toJSON(e.data)}const i={};let s=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],h=[];for(let u=0,f=c.length;u0&&(i[l]=h,s=!0)}s&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const n=e.index;n!==null&&this.setIndex(n.clone(t));const i=e.attributes;for(const c in i){const h=i[c];this.setAttribute(c,h.clone(t))}const s=e.morphAttributes;for(const c in s){const h=[],u=s[c];for(let f=0,d=u.length;f0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=i.length;s(e.far-e.near)**2))&&(Nh.copy(s).invert(),Bi.copy(e.ray).applyMatrix4(Nh),!(n.boundingBox!==null&&Bi.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(e,t,Bi)))}_computeIntersections(e,t,n){let i;const s=this.geometry,a=this.material,o=s.index,l=s.attributes.position,c=s.attributes.uv,h=s.attributes.uv1,u=s.attributes.normal,f=s.groups,d=s.drawRange;if(o!==null)if(Array.isArray(a))for(let p=0,_=f.length;p<_;p++){const g=f[p],m=a[g.materialIndex],y=Math.max(g.start,d.start),v=Math.min(o.count,Math.min(g.start+g.count,d.start+d.count));for(let x=y,w=v;xt.far?null:{distance:c,point:ha.clone(),object:r}}function ua(r,e,t,n,i,s,a,o,l,c){r.getVertexPosition(o,aa),r.getVertexPosition(l,oa),r.getVertexPosition(c,la);const h=Kp(r,e,t,n,aa,oa,la,Oh);if(h){const u=new A;yn.getBarycoord(Oh,aa,oa,la,u),i&&(h.uv=yn.getInterpolatedAttribute(i,o,l,c,u,new j)),s&&(h.uv1=yn.getInterpolatedAttribute(s,o,l,c,u,new j)),a&&(h.normal=yn.getInterpolatedAttribute(a,o,l,c,u,new A),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));const f={a:o,b:l,c,normal:new A,materialIndex:0};yn.getNormal(aa,oa,la,f.normal),h.face=f,h.barycoord=u}return h}class or extends qe{constructor(e=1,t=1,n=1,i=1,s=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:s,depthSegments:a};const o=this;i=Math.floor(i),s=Math.floor(s),a=Math.floor(a);const l=[],c=[],h=[],u=[];let f=0,d=0;p("z","y","x",-1,-1,n,t,e,a,s,0),p("z","y","x",1,-1,n,t,-e,a,s,1),p("x","z","y",1,1,e,n,t,i,a,2),p("x","z","y",1,-1,e,n,-t,i,a,3),p("x","y","z",1,-1,e,t,n,i,s,4),p("x","y","z",-1,-1,e,t,-n,i,s,5),this.setIndex(l),this.setAttribute("position",new Fe(c,3)),this.setAttribute("normal",new Fe(h,3)),this.setAttribute("uv",new Fe(u,2));function p(_,g,m,y,v,x,w,T,C,P,S){const M=x/C,D=w/P,G=x/2,F=w/2,V=T/2,J=C+1,q=P+1;let se=0,Z=0;const _e=new A;for(let be=0;be0?1:-1,h.push(_e.x,_e.y,_e.z),u.push(Ge/C),u.push(1-be/P),se+=1}}for(let be=0;be0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const n={};for(const i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}class Hc extends mt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Ze,this.projectionMatrix=new Ze,this.projectionMatrixInverse=new Ze,this.coordinateSystem=zn}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const yi=new A,Bh=new j,zh=new j;class kt extends Hc{constructor(e=50,t=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=er*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(ss*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return er*2*Math.atan(Math.tan(ss*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,n){yi.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(yi.x,yi.y).multiplyScalar(-e/yi.z),yi.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(yi.x,yi.y).multiplyScalar(-e/yi.z)}getViewSize(e,t){return this.getViewBounds(e,Bh,zh),t.subVectors(zh,Bh)}setViewOffset(e,t,n,i,s,a){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(ss*.5*this.fov)/this.zoom,n=2*t,i=this.aspect*n,s=-.5*i;const a=this.view;if(this.view!==null&&this.view.enabled){const l=a.fullWidth,c=a.fullHeight;s+=a.offsetX*i/l,t-=a.offsetY*n/c,i*=a.width/l,n*=a.height/c}const o=this.filmOffset;o!==0&&(s+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,t,t-n,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const As=-90,Cs=1;class em extends mt{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new kt(As,Cs,e,t);i.layers=this.layers,this.add(i);const s=new kt(As,Cs,e,t);s.layers=this.layers,this.add(s);const a=new kt(As,Cs,e,t);a.layers=this.layers,this.add(a);const o=new kt(As,Cs,e,t);o.layers=this.layers,this.add(o);const l=new kt(As,Cs,e,t);l.layers=this.layers,this.add(l);const c=new kt(As,Cs,e,t);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[n,i,s,a,o,l]=t;for(const c of t)this.remove(c);if(e===zn)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===uo)n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const c of t)this.add(c),c.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,a,o,l,c,h]=this.children,u=e.getRenderTarget(),f=e.getActiveCubeFace(),d=e.getActiveMipmapLevel(),p=e.xr.enabled;e.xr.enabled=!1;const _=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0,i),e.render(t,s),e.setRenderTarget(n,1,i),e.render(t,a),e.setRenderTarget(n,2,i),e.render(t,o),e.setRenderTarget(n,3,i),e.render(t,l),e.setRenderTarget(n,4,i),e.render(t,c),n.texture.generateMipmaps=_,e.setRenderTarget(n,5,i),e.render(t,h),e.setRenderTarget(u,f,d),e.xr.enabled=p,n.texture.needsPMREMUpdate=!0}}class Eo extends Et{constructor(e,t,n,i,s,a,o,l,c,h){e=e!==void 0?e:[],t=t!==void 0?t:Ri,super(e,t,n,i,s,a,o,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class tm extends Sn{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1},i=[n,n,n,n,n,n];this.texture=new Eo(i,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:Vt}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new or(5,5,5),s=new Xt({name:"CubemapFromEquirect",uniforms:tr(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:fn,blending:ii});s.uniforms.tEquirect.value=t;const a=new yt(i,s),o=t.minFilter;return t.minFilter===ni&&(t.minFilter=Vt),new em(1,10,this).update(e,a),t.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(e,t,n,i){const s=e.getRenderTarget();for(let a=0;a<6;a++)e.setRenderTarget(this,a),e.clear(t,n,i);e.setRenderTarget(s)}}class Yr{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new ne(e),this.density=t}clone(){return new Yr(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Gc{constructor(e,t=1,n=1e3){this.isFog=!0,this.name="",this.color=new ne(e),this.near=t,this.far=n}clone(){return new Gc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Cd extends mt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new In,this.environmentIntensity=1,this.environmentRotation=new In,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class Wc{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=ho,this.updateRanges=[],this.version=0,this.uuid=bn()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,s=this.stride;ie.far||t.push({distance:l,point:xr.clone(),uv:yn.getInterpolation(xr,da,Mr,fa,kh,nl,Vh,new j),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function pa(r,e,t,n,i,s){Ds.subVectors(r,t).addScalar(.5).multiply(n),i!==void 0?(yr.x=s*Ds.x-i*Ds.y,yr.y=i*Ds.x+s*Ds.y):yr.copy(Ds),r.copy(e),r.x+=yr.x,r.y+=yr.y,r.applyMatrix4(Rd)}const ma=new A,Hh=new A;class nm extends mt{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let n=0,i=t.length;n0){let n,i;for(n=1,i=t.length;n0){ma.setFromMatrixPosition(this.matrixWorld);const i=e.ray.origin.distanceTo(ma);this.getObjectForDistance(i).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){ma.setFromMatrixPosition(e.matrixWorld),Hh.setFromMatrixPosition(this.matrixWorld);const n=ma.distanceTo(Hh)/e.zoom;t[0].object.visible=!0;let i,s;for(i=1,s=t.length;i=a)t[i-1].object.visible=!1,t[i].object.visible=!0;else break}for(this._currentLevel=i-1;i1?null:t.copy(e.start).addScaledVector(n,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||lm.getNormalMatrix(e),i=this.coplanarPoint(rl).applyMatrix4(e),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const zi=new an,va=new A;class To{constructor(e=new Si,t=new Si,n=new Si,i=new Si,s=new Si,a=new Si){this.planes=[e,t,n,i,s,a]}set(e,t,n,i,s,a){const o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(n),o[3].copy(i),o[4].copy(s),o[5].copy(a),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=zn){const n=this.planes,i=e.elements,s=i[0],a=i[1],o=i[2],l=i[3],c=i[4],h=i[5],u=i[6],f=i[7],d=i[8],p=i[9],_=i[10],g=i[11],m=i[12],y=i[13],v=i[14],x=i[15];if(n[0].setComponents(l-s,f-c,g-d,x-m).normalize(),n[1].setComponents(l+s,f+c,g+d,x+m).normalize(),n[2].setComponents(l+a,f+h,g+p,x+y).normalize(),n[3].setComponents(l-a,f-h,g-p,x-y).normalize(),n[4].setComponents(l-o,f-u,g-_,x-v).normalize(),t===zn)n[5].setComponents(l+o,f+u,g+_,x+v).normalize();else if(t===uo)n[5].setComponents(o,u,_,v).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),zi.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),zi.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(zi)}intersectsSprite(e){return zi.center.set(0,0,0),zi.radius=.7071067811865476,zi.applyMatrix4(e.matrixWorld),this.intersectsSphere(zi)}intersectsSphere(e){const t=this.planes,n=e.center,i=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(n)0?e.max.x:e.min.x,va.y=i.normal.y>0?e.max.y:e.min.y,va.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(va)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function al(r,e){return r-e}function cm(r,e){return r.z-e.z}function hm(r,e){return e.z-r.z}class um{constructor(){this.index=0,this.pool=[],this.list=[]}push(e,t,n,i){const s=this.pool,a=this.list;this.index>=s.length&&s.push({start:-1,count:-1,z:-1,index:-1});const o=s[this.index];a.push(o),this.index++,o.start=e,o.count=t,o.z=n,o.index=i}reset(){this.list.length=0,this.index=0}}const cn=new Ze,dm=new ne(1,1,1),ol=new To,xa=new pn,ki=new an,wr=new A,$h=new A,fm=new A,ll=new um,$t=new yt,ya=[];function pm(r,e,t=0){const n=e.itemSize;if(r.isInterleavedBufferAttribute||r.array.constructor!==e.array.constructor){const i=r.count;for(let s=0;s65535?new Uint32Array(i):new Uint16Array(i);t.setIndex(new rt(s,1))}this._geometryInitialized=!0}}_validateGeometry(e){const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const n in t.attributes){if(!e.hasAttribute(n))throw new Error(`THREE.BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);const i=e.getAttribute(n),s=t.getAttribute(n);if(i.itemSize!==s.itemSize||i.normalized!==s.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){const t=this._instanceInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){const t=this._geometryInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new pn);const e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let n=0,i=t.length;n=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const n={visible:!0,active:!0,geometryIndex:e};let i=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(al),i=this._availableInstanceIds.shift(),this._instanceInfo[i]=n):(i=this._instanceInfo.length,this._instanceInfo.push(n));const s=this._matricesTexture;cn.identity().toArray(s.image.data,i*16),s.needsUpdate=!0;const a=this._colorsTexture;return a&&(dm.toArray(a.image.data,i*4),a.needsUpdate=!0),this._visibilityChanged=!0,i}addGeometry(e,t=-1,n=-1){this._initializeGeometry(e),this._validateGeometry(e);const i={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},s=this._geometryInfo;i.vertexStart=this._nextVertexStart,i.reservedVertexCount=t===-1?e.getAttribute("position").count:t;const a=e.getIndex();if(a!==null&&(i.indexStart=this._nextIndexStart,i.reservedIndexCount=n===-1?a.count:n),i.indexStart!==-1&&i.indexStart+i.reservedIndexCount>this._maxIndexCount||i.vertexStart+i.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let l;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(al),l=this._availableGeometryIds.shift(),s[l]=i):(l=this._geometryCount,this._geometryCount++,s.push(i)),this.setGeometryAt(l,e),this._nextIndexStart=i.indexStart+i.reservedIndexCount,this._nextVertexStart=i.vertexStart+i.reservedVertexCount,l}setGeometryAt(e,t){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const n=this.geometry,i=n.getIndex()!==null,s=n.getIndex(),a=t.getIndex(),o=this._geometryInfo[e];if(i&&a.count>o.reservedIndexCount||t.attributes.position.count>o.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const l=o.vertexStart,c=o.reservedVertexCount;o.vertexCount=t.getAttribute("position").count;for(const h in n.attributes){const u=t.getAttribute(h),f=n.getAttribute(h);pm(u,f,l);const d=u.itemSize;for(let p=u.count,_=c;p<_;p++){const g=l+p;for(let m=0;m=t.length||t[e].active===!1)return this;const n=this._instanceInfo;for(let i=0,s=n.length;io).sort((a,o)=>n[a].vertexStart-n[o].vertexStart),s=this.geometry;for(let a=0,o=n.length;a=this._geometryCount)return null;const n=this.geometry,i=this._geometryInfo[e];if(i.boundingBox===null){const s=new pn,a=n.index,o=n.attributes.position;for(let l=i.start,c=i.start+i.count;l=this._geometryCount)return null;const n=this.geometry,i=this._geometryInfo[e];if(i.boundingSphere===null){const s=new an;this.getBoundingBoxAt(e,xa),xa.getCenter(s.center);const a=n.index,o=n.attributes.position;let l=0;for(let c=i.start,h=i.start+i.count;co.active);if(Math.max(...n.map(o=>o.vertexStart+o.reservedVertexCount))>e)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...n.map(l=>l.indexStart+l.reservedIndexCount))>t)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);const s=this.geometry;s.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new qe,this._initializeGeometry(s));const a=this.geometry;s.index&&Vi(s.index.array,a.index.array);for(const o in s.attributes)Vi(s.attributes[o].array,a.attributes[o].array)}raycast(e,t){const n=this._instanceInfo,i=this._geometryInfo,s=this.matrixWorld,a=this.geometry;$t.material=this.material,$t.geometry.index=a.index,$t.geometry.attributes=a.attributes,$t.geometry.boundingBox===null&&($t.geometry.boundingBox=new pn),$t.geometry.boundingSphere===null&&($t.geometry.boundingSphere=new an);for(let o=0,l=n.length;o({...t,boundingBox:t.boundingBox!==null?t.boundingBox.clone():null,boundingSphere:t.boundingSphere!==null?t.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(t=>({...t})),this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(e,t,n,i,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const a=i.getIndex(),o=a===null?1:a.array.BYTES_PER_ELEMENT,l=this._instanceInfo,c=this._multiDrawStarts,h=this._multiDrawCounts,u=this._geometryInfo,f=this.perObjectFrustumCulled,d=this._indirectTexture,p=d.image.data;f&&(cn.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),ol.setFromProjectionMatrix(cn,e.coordinateSystem));let _=0;if(this.sortObjects){cn.copy(this.matrixWorld).invert(),wr.setFromMatrixPosition(n.matrixWorld).applyMatrix4(cn),$h.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(cn);for(let y=0,v=l.length;y0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=i.length;sn)return;cl.applyMatrix4(r.matrixWorld);const l=e.ray.origin.distanceTo(cl);if(!(le.far))return{distance:l,point:Qh.clone().applyMatrix4(r.matrixWorld),index:i,face:null,faceIndex:null,barycoord:null,object:r}}const eu=new A,tu=new A;class hi extends Vn{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const t=e.attributes.position,n=[];for(let i=0,s=t.count;i0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=i.length;si.far)return;s.push({distance:c,distanceToRay:Math.sqrt(o),point:l,index:e,face:null,faceIndex:null,barycoord:null,object:a})}}class ns extends mt{constructor(){super(),this.isGroup=!0,this.type="Group"}}class ZS extends Et{constructor(e,t,n,i,s,a,o,l,c){super(e,t,n,i,s,a,o,l,c),this.isVideoTexture=!0,this.minFilter=a!==void 0?a:Vt,this.magFilter=s!==void 0?s:Vt,this.generateMipmaps=!1;const h=this;function u(){h.needsUpdate=!0,e.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(u)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class JS extends Et{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=Qt,this.minFilter=Qt,this.generateMipmaps=!1,this.needsUpdate=!0}}class qc extends Et{constructor(e,t,n,i,s,a,o,l,c,h,u,f){super(null,a,o,l,c,h,i,s,u,f),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class KS extends qc{constructor(e,t,n,i,s,a){super(e,t,n,s,a),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=Nn,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class $S extends qc{constructor(e,t,n){super(void 0,e[0].width,e[0].height,t,n,Ri),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class Dd extends Et{constructor(e,t,n,i,s,a,o,l,c){super(e,t,n,i,s,a,o,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ld extends Et{constructor(e,t,n,i,s,a,o,l,c,h=Ys){if(h!==Ys&&h!==js)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Ys&&(n=Ii),n===void 0&&h===js&&(n=$s),super(null,i,s,a,o,l,h,n,c),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=o!==void 0?o:Qt,this.minFilter=l!==void 0?l:Qt,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){const t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}}class Hn{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let n,i=this.getPoint(0),s=0;t.push(0);for(let a=1;a<=e;a++)n=this.getPoint(a/e),s+=n.distanceTo(i),t.push(s),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let i=0;const s=n.length;let a;t?a=t:a=e*n[s-1];let o=0,l=s-1,c;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),c=n[i]-a,c<0)o=i+1;else if(c>0)l=i-1;else{l=i;break}if(i=l,n[i]===a)return i/(s-1);const h=n[i],f=n[i+1]-h,d=(a-h)/f;return(i+d)/(s-1)}getTangent(e,t){let i=e-1e-4,s=e+1e-4;i<0&&(i=0),s>1&&(s=1);const a=this.getPoint(i),o=this.getPoint(s),l=t||(a.isVector2?new j:new A);return l.copy(o).sub(a).normalize(),l}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new A,i=[],s=[],a=[],o=new A,l=new Ze;for(let d=0;d<=e;d++){const p=d/e;i[d]=this.getTangentAt(p,new A)}s[0]=new A,a[0]=new A;let c=Number.MAX_VALUE;const h=Math.abs(i[0].x),u=Math.abs(i[0].y),f=Math.abs(i[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),f<=c&&n.set(0,0,1),o.crossVectors(i[0],n).normalize(),s[0].crossVectors(i[0],o),a[0].crossVectors(i[0],s[0]);for(let d=1;d<=e;d++){if(s[d]=s[d-1].clone(),a[d]=a[d-1].clone(),o.crossVectors(i[d-1],i[d]),o.length()>Number.EPSILON){o.normalize();const p=Math.acos(et(i[d-1].dot(i[d]),-1,1));s[d].applyMatrix4(l.makeRotationAxis(o,p))}a[d].crossVectors(i[d],s[d])}if(t===!0){let d=Math.acos(et(s[0].dot(s[e]),-1,1));d/=e,i[0].dot(o.crossVectors(s[0],s[e]))>0&&(d=-d);for(let p=1;p<=e;p++)s[p].applyMatrix4(l.makeRotationAxis(i[p],d*p)),a[p].crossVectors(i[p],s[p])}return{tangents:i,normals:s,binormals:a}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Yc extends Hn{constructor(e=0,t=0,n=1,i=1,s=0,a=Math.PI*2,o=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=s,this.aEndAngle=a,this.aClockwise=o,this.aRotation=l}getPoint(e,t=new j){const n=t,i=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const a=Math.abs(s)i;)s-=i;s0?0:(Math.floor(Math.abs(o)/s)+1)*s:l===0&&o===s-1&&(o=s-2,l=1);let c,h;this.closed||o>0?c=i[(o-1)%s]:(Ea.subVectors(i[0],i[1]).add(i[0]),c=Ea);const u=i[o%s],f=i[(o+1)%s];if(this.closed||o+2i.length-2?i.length-1:a+1],u=i[a>i.length-3?i.length-1:a+2];return n.set(su(o,l.x,c.x,h.x,u.x),su(o,l.y,c.y,h.y,u.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){const a=i[s]-n,o=this.curves[s],l=o.getLength(),c=l===0?0:1-a/l;return o.getPointAt(c,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let n=0,i=this.curves.length;n1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Ao extends qe{constructor(e=[new j(0,-.5),new j(.5,0),new j(0,.5)],t=12,n=0,i=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:i},t=Math.floor(t),i=et(i,0,Math.PI*2);const s=[],a=[],o=[],l=[],c=[],h=1/t,u=new A,f=new j,d=new A,p=new A,_=new A;let g=0,m=0;for(let y=0;y<=e.length-1;y++)switch(y){case 0:g=e[y+1].x-e[y].x,m=e[y+1].y-e[y].y,d.x=m*1,d.y=-g,d.z=m*0,_.copy(d),d.normalize(),l.push(d.x,d.y,d.z);break;case e.length-1:l.push(_.x,_.y,_.z);break;default:g=e[y+1].x-e[y].x,m=e[y+1].y-e[y].y,d.x=m*1,d.y=-g,d.z=m*0,p.copy(d),d.x+=_.x,d.y+=_.y,d.z+=_.z,d.normalize(),l.push(d.x,d.y,d.z),_.copy(p)}for(let y=0;y<=t;y++){const v=n+y*h*i,x=Math.sin(v),w=Math.cos(v);for(let T=0;T<=e.length-1;T++){u.x=e[T].x*x,u.y=e[T].y,u.z=e[T].x*w,a.push(u.x,u.y,u.z),f.x=y/t,f.y=T/(e.length-1),o.push(f.x,f.y);const C=l[3*T+0]*x,P=l[3*T+1],S=l[3*T+0]*w;c.push(C,P,S)}}for(let y=0;y0&&v(!0),t>0&&v(!1)),this.setIndex(h),this.setAttribute("position",new Fe(u,3)),this.setAttribute("normal",new Fe(f,3)),this.setAttribute("uv",new Fe(d,2));function y(){const x=new A,w=new A;let T=0;const C=(t-e)/n;for(let P=0;P<=s;P++){const S=[],M=P/s,D=M*(t-e)+e;for(let G=0;G<=i;G++){const F=G/i,V=F*l+o,J=Math.sin(V),q=Math.cos(V);w.x=D*J,w.y=-M*n+g,w.z=D*q,u.push(w.x,w.y,w.z),x.set(J,C,q).normalize(),f.push(x.x,x.y,x.z),d.push(F,1-M),S.push(p++)}_.push(S)}for(let P=0;P0||S!==0)&&(h.push(M,D,F),T+=3),(t>0||S!==s-1)&&(h.push(D,G,F),T+=3)}c.addGroup(m,T,0),m+=T}function v(x){const w=p,T=new j,C=new A;let P=0;const S=x===!0?e:t,M=x===!0?1:-1;for(let G=1;G<=i;G++)u.push(0,g*M,0),f.push(0,M,0),d.push(.5,.5),p++;const D=p;for(let G=0;G<=i;G++){const V=G/i*l+o,J=Math.cos(V),q=Math.sin(V);C.x=S*q,C.y=g*M,C.z=S*J,u.push(C.x,C.y,C.z),f.push(0,M,0),T.x=J*.5+.5,T.y=q*.5*M+.5,d.push(T.x,T.y),p++}for(let G=0;G.9&&C<.1&&(v<.2&&(a[y+0]+=1),x<.2&&(a[y+2]+=1),w<.2&&(a[y+4]+=1))}}function f(y){s.push(y.x,y.y,y.z)}function d(y,v){const x=y*3;v.x=e[x+0],v.y=e[x+1],v.z=e[x+2]}function p(){const y=new A,v=new A,x=new A,w=new A,T=new j,C=new j,P=new j;for(let S=0,M=0;S80*t){o=c=r[0],l=h=r[1];for(let p=t;pc&&(c=u),f>h&&(h=f);d=Math.max(c-o,h-l),d=d!==0?32767/d:0}return Gr(s,a,t,o,l,d,0),a}};function zd(r,e,t,n,i){let s,a;if(i===qm(r,e,t,n)>0)for(s=e;s=e;s-=n)a=ru(s,r[s],r[s+1],a);return a&&Co(a,a.next)&&(Xr(a),a=a.next),a}function ls(r,e){if(!r)return r;e||(e=r);let t=r,n;do if(n=!1,!t.steiner&&(Co(t,t.next)||wt(t.prev,t,t.next)===0)){if(Xr(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function Gr(r,e,t,n,i,s,a){if(!r)return;!a&&s&&km(r,n,i,s);let o=r,l,c;for(;r.prev!==r.next;){if(l=r.prev,c=r.next,s?Dm(r,n,i,s):Pm(r)){e.push(l.i/t|0),e.push(r.i/t|0),e.push(c.i/t|0),Xr(r),r=c.next,o=c.next;continue}if(r=c,r===o){a?a===1?(r=Lm(ls(r),e,t),Gr(r,e,t,n,i,s,2)):a===2&&Um(r,e,t,n,i,s):Gr(ls(r),e,t,n,i,s,1);break}}}function Pm(r){const e=r.prev,t=r,n=r.next;if(wt(e,t,n)>=0)return!1;const i=e.x,s=t.x,a=n.x,o=e.y,l=t.y,c=n.y,h=is?i>a?i:a:s>a?s:a,d=o>l?o>c?o:c:l>c?l:c;let p=n.next;for(;p!==e;){if(p.x>=h&&p.x<=f&&p.y>=u&&p.y<=d&&Hs(i,o,s,l,a,c,p.x,p.y)&&wt(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function Dm(r,e,t,n){const i=r.prev,s=r,a=r.next;if(wt(i,s,a)>=0)return!1;const o=i.x,l=s.x,c=a.x,h=i.y,u=s.y,f=a.y,d=ol?o>c?o:c:l>c?l:c,g=h>u?h>f?h:f:u>f?u:f,m=pc(d,p,e,t,n),y=pc(_,g,e,t,n);let v=r.prevZ,x=r.nextZ;for(;v&&v.z>=m&&x&&x.z<=y;){if(v.x>=d&&v.x<=_&&v.y>=p&&v.y<=g&&v!==i&&v!==a&&Hs(o,h,l,u,c,f,v.x,v.y)&&wt(v.prev,v,v.next)>=0||(v=v.prevZ,x.x>=d&&x.x<=_&&x.y>=p&&x.y<=g&&x!==i&&x!==a&&Hs(o,h,l,u,c,f,x.x,x.y)&&wt(x.prev,x,x.next)>=0))return!1;x=x.nextZ}for(;v&&v.z>=m;){if(v.x>=d&&v.x<=_&&v.y>=p&&v.y<=g&&v!==i&&v!==a&&Hs(o,h,l,u,c,f,v.x,v.y)&&wt(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;x&&x.z<=y;){if(x.x>=d&&x.x<=_&&x.y>=p&&x.y<=g&&x!==i&&x!==a&&Hs(o,h,l,u,c,f,x.x,x.y)&&wt(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Lm(r,e,t){let n=r;do{const i=n.prev,s=n.next.next;!Co(i,s)&&kd(i,n,n.next,s)&&Wr(i,s)&&Wr(s,i)&&(e.push(i.i/t|0),e.push(n.i/t|0),e.push(s.i/t|0),Xr(n),Xr(n.next),n=r=s),n=n.next}while(n!==r);return ls(n)}function Um(r,e,t,n,i,s){let a=r;do{let o=a.next.next;for(;o!==a.prev;){if(a.i!==o.i&&Gm(a,o)){let l=Vd(a,o);a=ls(a,a.next),l=ls(l,l.next),Gr(a,e,t,n,i,s,0),Gr(l,e,t,n,i,s,0);return}o=o.next}a=a.next}while(a!==r)}function Nm(r,e,t,n){const i=[];let s,a,o,l,c;for(s=0,a=e.length;s=t.next.y&&t.next.y!==t.y){const f=t.x+(a-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(f<=s&&f>n&&(n=f,i=t.x=t.x&&t.x>=l&&s!==t.x&&Hs(ai.x||t.x===i.x&&zm(i,t)))&&(i=t,h=u)),t=t.next;while(t!==o);return i}function zm(r,e){return wt(r.prev,r,e.prev)<0&&wt(e.next,r,r.next)<0}function km(r,e,t,n){let i=r;do i.z===0&&(i.z=pc(i.x,i.y,e,t,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==r);i.prevZ.nextZ=null,i.prevZ=null,Vm(i)}function Vm(r){let e,t,n,i,s,a,o,l,c=1;do{for(t=r,r=null,s=null,a=0;t;){for(a++,n=t,o=0,e=0;e0||l>0&&n;)o!==0&&(l===0||!n||t.z<=n.z)?(i=t,t=t.nextZ,o--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:r=i,i.prevZ=s,s=i;t=n}s.nextZ=null,c*=2}while(a>1);return r}function pc(r,e,t,n,i){return r=(r-t)*i|0,e=(e-n)*i|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function Hm(r){let e=r,t=r;do(e.x=(r-a)*(s-o)&&(r-a)*(n-o)>=(t-a)*(e-o)&&(t-a)*(s-o)>=(i-a)*(n-o)}function Gm(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!Wm(r,e)&&(Wr(r,e)&&Wr(e,r)&&Xm(r,e)&&(wt(r.prev,r,e.prev)||wt(r,e.prev,e))||Co(r,e)&&wt(r.prev,r,r.next)>0&&wt(e.prev,e,e.next)>0)}function wt(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function Co(r,e){return r.x===e.x&&r.y===e.y}function kd(r,e,t,n){const i=Ia(wt(r,e,t)),s=Ia(wt(r,e,n)),a=Ia(wt(t,n,r)),o=Ia(wt(t,n,e));return!!(i!==s&&a!==o||i===0&&Ra(r,t,e)||s===0&&Ra(r,n,e)||a===0&&Ra(t,r,n)||o===0&&Ra(t,e,n))}function Ra(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function Ia(r){return r>0?1:r<0?-1:0}function Wm(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&kd(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function Wr(r,e){return wt(r.prev,r,r.next)<0?wt(r,e,r.next)>=0&&wt(r,r.prev,e)>=0:wt(r,e,r.prev)<0||wt(r,r.next,e)<0}function Xm(r,e){let t=r,n=!1;const i=(r.x+e.x)/2,s=(r.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&i<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==r);return n}function Vd(r,e){const t=new mc(r.i,r.x,r.y),n=new mc(e.i,e.x,e.y),i=r.next,s=e.prev;return r.next=e,e.prev=r,t.next=i,i.prev=t,n.next=t,t.prev=n,s.next=n,n.prev=s,n}function ru(r,e,t,n){const i=new mc(r,e,t);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Xr(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function mc(r,e,t){this.i=r,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function qm(r,e,t,n){let i=0;for(let s=e,a=t-n;s2&&r[e-1].equals(r[0])&&r.pop()}function ou(r,e){for(let t=0;tNumber.EPSILON){const k=Math.sqrt(b),X=Math.sqrt(Se*Se+R*R),W=de.x-Ve/k,ce=de.y+me/k,oe=I.x-R/X,ge=I.y+Se/X,Be=((oe-W)*R-(ge-ce)*Se)/(me*R-Ve*Se);De=W+me*Be-te.x,re=ce+Ve*Be-te.y;const $=De*De+re*re;if($<=2)return new j(De,re);Ae=Math.sqrt($/2)}else{let k=!1;me>Number.EPSILON?Se>Number.EPSILON&&(k=!0):me<-Number.EPSILON?Se<-Number.EPSILON&&(k=!0):Math.sign(Ve)===Math.sign(R)&&(k=!0),k?(De=-Ve,re=me,Ae=Math.sqrt(b)):(De=me,re=Ve,Ae=Math.sqrt(b/2))}return new j(De/Ae,re/Ae)}const _e=[];for(let te=0,de=V.length,I=de-1,De=te+1;te=0;te--){const de=te/g,I=d*Math.cos(de*Math.PI/2),De=p*Math.sin(de*Math.PI/2)+_;for(let re=0,Ae=V.length;re=0;){const De=I;let re=I-1;re<0&&(re=te.length-1);for(let Ae=0,me=h+g*2;Ae0)&&d.push(v,x,T),(m!==n-1||l0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class eg extends on{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new ne(16777215),this.specular=new ne(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ne(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=cs,this.normalScale=new j(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new In,this.combine=bo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class tg extends on{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new ne(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ne(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=cs,this.normalScale=new j(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class ng extends on{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=cs,this.normalScale=new j(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class ig extends on{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new ne(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ne(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=cs,this.normalScale=new j(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new In,this.combine=bo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class Hd extends on{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=rp,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class Gd extends on{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}class sg extends on{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new ne(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=cs,this.normalScale=new j(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class rg extends qt{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function is(r,e,t){return!r||!t&&r.constructor===e?r:typeof e.BYTES_PER_ELEMENT=="number"?new e(r):Array.prototype.slice.call(r)}function Wd(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function Xd(r){function e(i,s){return r[i]-r[s]}const t=r.length,n=new Array(t);for(let i=0;i!==t;++i)n[i]=i;return n.sort(e),n}function gc(r,e,t){const n=r.length,i=new r.constructor(n);for(let s=0,a=0;a!==n;++s){const o=t[s]*e;for(let l=0;l!==e;++l)i[a++]=r[o+l]}return i}function oh(r,e,t,n){let i=1,s=r[0];for(;s!==void 0&&s[n]===void 0;)s=r[i++];if(s===void 0)return;let a=s[n];if(a!==void 0)if(Array.isArray(a))do a=s[n],a!==void 0&&(e.push(s.time),t.push.apply(t,a)),s=r[i++];while(s!==void 0);else if(a.toArray!==void 0)do a=s[n],a!==void 0&&(e.push(s.time),a.toArray(t,t.length)),s=r[i++];while(s!==void 0);else do a=s[n],a!==void 0&&(e.push(s.time),t.push(a)),s=r[i++];while(s!==void 0)}function ag(r,e,t,n,i=30){const s=r.clone();s.name=e;const a=[];for(let l=0;l=n)){u.push(c.times[d]);for(let _=0;_s.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l=o.times[p]){const m=p*u+h,y=m+u-h;_=o.values.slice(m,y)}else{const m=o.createInterpolant(),y=h,v=u-h;m.evaluate(s),_=m.resultBuffer.slice(y,v)}l==="quaternion"&&new rn().fromArray(_).normalize().conjugate().toArray(_);const g=c.times.length;for(let m=0;m=s)){const o=t[1];e=s)break t}a=n,n=0;break n}break e}for(;n>>1;et;)--a;if(++a,s!==0||a!==i){s>=a&&(a=Math.max(a,1),s=a-1);const o=this.getValueSize();this.times=n.slice(s,a),this.values=this.values.slice(s*o,a*o)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let o=0;o!==s;o++){const l=n[o];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,l),e=!1;break}if(a!==null&&a>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,l,a),e=!1;break}a=l}if(i!==void 0&&Wd(i))for(let o=0,l=i.length;o!==l;++o){const c=i[o];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,c),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===Fo,s=e.length-1;let a=1;for(let o=1;o0){e[a]=e[s];for(let o=s*n,l=a*n,c=0;c!==n;++c)t[l+c]=t[o+c];++a}return a!==e.length?(this.times=e.slice(0,a),this.values=t.slice(0,a*n)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),n=this.constructor,i=new n(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}}Gn.prototype.TimeBufferType=Float32Array;Gn.prototype.ValueBufferType=Float32Array;Gn.prototype.DefaultInterpolation=dc;class hr extends Gn{constructor(e,t,n){super(e,t,n)}}hr.prototype.ValueTypeName="bool";hr.prototype.ValueBufferType=Array;hr.prototype.DefaultInterpolation=oo;hr.prototype.InterpolantFactoryMethodLinear=void 0;hr.prototype.InterpolantFactoryMethodSmooth=void 0;class Yd extends Gn{}Yd.prototype.ValueTypeName="color";class vo extends Gn{}vo.prototype.ValueTypeName="number";class hg extends Po{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){const s=this.resultBuffer,a=this.sampleValues,o=this.valueSize,l=(n-t)/(i-t);let c=e*o;for(let h=c+o;c!==h;c+=4)rn.slerpFlat(s,0,a,c-o,a,c,l);return s}}class Do extends Gn{InterpolantFactoryMethodLinear(e){return new hg(this.times,this.values,this.getValueSize(),e)}}Do.prototype.ValueTypeName="quaternion";Do.prototype.InterpolantFactoryMethodSmooth=void 0;class ur extends Gn{constructor(e,t,n){super(e,t,n)}}ur.prototype.ValueTypeName="string";ur.prototype.ValueBufferType=Array;ur.prototype.DefaultInterpolation=oo;ur.prototype.InterpolantFactoryMethodLinear=void 0;ur.prototype.InterpolantFactoryMethodSmooth=void 0;class xo extends Gn{}xo.prototype.ValueTypeName="vector";class yo{constructor(e="",t=-1,n=[],i=Oc){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=bn(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,i=1/(e.fps||1);for(let a=0,o=n.length;a!==o;++a)t.push(dg(n[a]).scale(i));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,a=n.length;s!==a;++s)t.push(Gn.toJSON(n[s]));return i}static CreateFromMorphTargetSequence(e,t,n,i){const s=t.length,a=[];for(let o=0;o1){const u=h[1];let f=i[u];f||(i[u]=f=[]),f.push(c)}}const a=[];for(const o in i)a.push(this.CreateFromMorphTargetSequence(o,i[o],t,n));return a}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,f,d,p,_){if(d.length!==0){const g=[],m=[];oh(d,g,m,p),g.length!==0&&_.push(new u(f,g,m))}},i=[],s=e.name||"default",a=e.fps||30,o=e.blendMode;let l=e.length||-1;const c=e.hierarchy||[];for(let u=0;u{t&&t(s),this.manager.itemEnd(e)},0),s;if($n[e]!==void 0){$n[e].push({onLoad:t,onProgress:n,onError:i});return}$n[e]=[],$n[e].push({onLoad:t,onProgress:n,onError:i});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,l=this.responseType;fetch(a).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;const h=$n[e],u=c.body.getReader(),f=c.headers.get("X-File-Size")||c.headers.get("Content-Length"),d=f?parseInt(f):0,p=d!==0;let _=0;const g=new ReadableStream({start(m){y();function y(){u.read().then(({done:v,value:x})=>{if(v)m.close();else{_+=x.byteLength;const w=new ProgressEvent("progress",{lengthComputable:p,loaded:_,total:d});for(let T=0,C=h.length;T{m.error(v)})}}});return new Response(g)}else throw new pg(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,o));case"json":return c.json();default:if(o===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(o),f=u&&u[1]?u[1].toLowerCase():void 0,d=new TextDecoder(f);return c.arrayBuffer().then(p=>d.decode(p))}}}).then(c=>{Ei.add(e,c);const h=$n[e];delete $n[e];for(let u=0,f=h.length;u{const h=$n[e];if(h===void 0)throw this.manager.itemError(e),c;delete $n[e];for(let u=0,f=h.length;u{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class QS extends wn{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new Pi(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(o){try{t(s.parse(JSON.parse(o)))}catch(l){i?i(l):console.error(l),s.manager.itemError(e)}},n,i)}parse(e){const t=[];for(let n=0;n0:i.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const s in e.uniforms){const a=e.uniforms[s];switch(i.uniforms[s]={},a.type){case"t":i.uniforms[s].value=n(a.value);break;case"c":i.uniforms[s].value=new ne().setHex(a.value);break;case"v2":i.uniforms[s].value=new j().fromArray(a.value);break;case"v3":i.uniforms[s].value=new A().fromArray(a.value);break;case"v4":i.uniforms[s].value=new pt().fromArray(a.value);break;case"m3":i.uniforms[s].value=new tt().fromArray(a.value);break;case"m4":i.uniforms[s].value=new Ze().fromArray(a.value);break;default:i.uniforms[s].value=a.value}}if(e.defines!==void 0&&(i.defines=e.defines),e.vertexShader!==void 0&&(i.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(i.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(i.glslVersion=e.glslVersion),e.extensions!==void 0)for(const s in e.extensions)i.extensions[s]=e.extensions[s];if(e.lights!==void 0&&(i.lights=e.lights),e.clipping!==void 0&&(i.clipping=e.clipping),e.size!==void 0&&(i.size=e.size),e.sizeAttenuation!==void 0&&(i.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(i.map=n(e.map)),e.matcap!==void 0&&(i.matcap=n(e.matcap)),e.alphaMap!==void 0&&(i.alphaMap=n(e.alphaMap)),e.bumpMap!==void 0&&(i.bumpMap=n(e.bumpMap)),e.bumpScale!==void 0&&(i.bumpScale=e.bumpScale),e.normalMap!==void 0&&(i.normalMap=n(e.normalMap)),e.normalMapType!==void 0&&(i.normalMapType=e.normalMapType),e.normalScale!==void 0){let s=e.normalScale;Array.isArray(s)===!1&&(s=[s,s]),i.normalScale=new j().fromArray(s)}return e.displacementMap!==void 0&&(i.displacementMap=n(e.displacementMap)),e.displacementScale!==void 0&&(i.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(i.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(i.roughnessMap=n(e.roughnessMap)),e.metalnessMap!==void 0&&(i.metalnessMap=n(e.metalnessMap)),e.emissiveMap!==void 0&&(i.emissiveMap=n(e.emissiveMap)),e.emissiveIntensity!==void 0&&(i.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(i.specularMap=n(e.specularMap)),e.specularIntensityMap!==void 0&&(i.specularIntensityMap=n(e.specularIntensityMap)),e.specularColorMap!==void 0&&(i.specularColorMap=n(e.specularColorMap)),e.envMap!==void 0&&(i.envMap=n(e.envMap)),e.envMapRotation!==void 0&&i.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(i.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(i.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(i.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(i.lightMap=n(e.lightMap)),e.lightMapIntensity!==void 0&&(i.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(i.aoMap=n(e.aoMap)),e.aoMapIntensity!==void 0&&(i.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(i.gradientMap=n(e.gradientMap)),e.clearcoatMap!==void 0&&(i.clearcoatMap=n(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(i.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(i.clearcoatNormalMap=n(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(i.clearcoatNormalScale=new j().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(i.iridescenceMap=n(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(i.iridescenceThicknessMap=n(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(i.transmissionMap=n(e.transmissionMap)),e.thicknessMap!==void 0&&(i.thicknessMap=n(e.thicknessMap)),e.anisotropyMap!==void 0&&(i.anisotropyMap=n(e.anisotropyMap)),e.sheenColorMap!==void 0&&(i.sheenColorMap=n(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(i.sheenRoughnessMap=n(e.sheenRoughnessMap)),i}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return ch.createMaterialFromType(e)}static createMaterialFromType(e){const t={ShadowMaterial:$m,SpriteMaterial:rs,RawShaderMaterial:jm,ShaderMaterial:Xt,PointsMaterial:Ai,MeshPhysicalMaterial:Qm,MeshStandardMaterial:ah,MeshPhongMaterial:eg,MeshToonMaterial:tg,MeshNormalMaterial:ng,MeshLambertMaterial:ig,MeshDepthMaterial:Hd,MeshDistanceMaterial:Gd,MeshBasicMaterial:kn,MeshMatcapMaterial:sg,LineDashedMaterial:rg,LineBasicMaterial:qt,Material:on};return new t[e]}}class fu{static decodeText(e){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let n=0,i=e.length;n0){const l=new Zd(t);s=new Mo(l),s.setCrossOrigin(this.crossOrigin);for(let c=0,h=e.length;c0){i=new Mo(this.manager),i.setCrossOrigin(this.crossOrigin);for(let a=0,o=e.length;a{const g=new pn;g.min.fromArray(_.boxMin),g.max.fromArray(_.boxMax);const m=new an;return m.radius=_.sphereRadius,m.center.fromArray(_.sphereCenter),{boxInitialized:_.boxInitialized,box:g,sphereInitialized:_.sphereInitialized,sphere:m}}),a._maxInstanceCount=e.maxInstanceCount,a._maxVertexCount=e.maxVertexCount,a._maxIndexCount=e.maxIndexCount,a._geometryInitialized=e.geometryInitialized,a._geometryCount=e.geometryCount,a._matricesTexture=c(e.matricesTexture.uuid),e.colorsTexture!==void 0&&(a._colorsTexture=c(e.colorsTexture.uuid));break;case"LOD":a=new nm;break;case"Line":a=new Vn(o(e.geometry),l(e.material));break;case"LineLoop":a=new gm(o(e.geometry),l(e.material));break;case"LineSegments":a=new hi(o(e.geometry),l(e.material));break;case"PointCloud":case"Points":a=new as(o(e.geometry),l(e.material));break;case"Sprite":a=new ts(l(e.material));break;case"Group":a=new ns;break;case"Bone":a=new Id;break;default:a=new mt}if(a.uuid=e.uuid,e.name!==void 0&&(a.name=e.name),e.matrix!==void 0?(a.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(a.matrixAutoUpdate=e.matrixAutoUpdate),a.matrixAutoUpdate&&a.matrix.decompose(a.position,a.quaternion,a.scale)):(e.position!==void 0&&a.position.fromArray(e.position),e.rotation!==void 0&&a.rotation.fromArray(e.rotation),e.quaternion!==void 0&&a.quaternion.fromArray(e.quaternion),e.scale!==void 0&&a.scale.fromArray(e.scale)),e.up!==void 0&&a.up.fromArray(e.up),e.castShadow!==void 0&&(a.castShadow=e.castShadow),e.receiveShadow!==void 0&&(a.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(a.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(a.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(a.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(a.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&a.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(a.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(a.visible=e.visible),e.frustumCulled!==void 0&&(a.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(a.renderOrder=e.renderOrder),e.userData!==void 0&&(a.userData=e.userData),e.layers!==void 0&&(a.layers.mask=e.layers),e.children!==void 0){const f=e.children;for(let d=0;d"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,n,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,a=Ei.get(e);if(a!==void 0){if(s.manager.itemStart(e),a.then){a.then(c=>{t&&t(c),s.manager.itemEnd(e)}).catch(c=>{i&&i(c)});return}return setTimeout(function(){t&&t(a),s.manager.itemEnd(e)},0),a}const o={};o.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",o.headers=this.requestHeader;const l=fetch(e,o).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return Ei.add(e,c),t&&t(c),s.manager.itemEnd(e),c}).catch(function(c){i&&i(c),Ei.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});Ei.add(e,l),s.manager.itemStart(e)}}let Pa;class Kd{static getContext(){return Pa===void 0&&(Pa=new(window.AudioContext||window.webkitAudioContext)),Pa}static setContext(e){Pa=e}}class aw extends wn{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new Pi(this.manager);a.setResponseType("arraybuffer"),a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,function(l){try{const c=l.slice(0);Kd.getContext().decodeAudioData(c,function(u){t(u)}).catch(o)}catch(c){o(c)}},n,i);function o(l){i?i(l):console.error(l),s.manager.itemError(e)}}}const gu=new Ze,_u=new Ze,Hi=new Ze;class ow{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new kt,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new kt,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,Hi.copy(e.projectionMatrix);const i=t.eyeSep/2,s=i*t.near/t.focus,a=t.near*Math.tan(ss*t.fov*.5)/t.zoom;let o,l;_u.elements[12]=-i,gu.elements[12]=i,o=-a*t.aspect+s,l=a*t.aspect+s,Hi.elements[0]=2*t.near/(l-o),Hi.elements[8]=(l+o)/(l-o),this.cameraL.projectionMatrix.copy(Hi),o=-a*t.aspect-s,l=a*t.aspect-s,Hi.elements[0]=2*t.near/(l-o),Hi.elements[8]=(l+o)/(l-o),this.cameraR.projectionMatrix.copy(Hi)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(_u),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(gu)}}class Ag extends kt{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class $d{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=vu(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=vu();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function vu(){return performance.now()}const Gi=new A,xu=new rn,Cg=new A,Wi=new A;class lw extends mt{constructor(){super(),this.type="AudioListener",this.context=Kd.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new $d}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Gi,xu,Cg),Wi.set(0,0,-1).applyQuaternion(xu),t.positionX){const i=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(Gi.x,i),t.positionY.linearRampToValueAtTime(Gi.y,i),t.positionZ.linearRampToValueAtTime(Gi.z,i),t.forwardX.linearRampToValueAtTime(Wi.x,i),t.forwardY.linearRampToValueAtTime(Wi.y,i),t.forwardZ.linearRampToValueAtTime(Wi.z,i),t.upX.linearRampToValueAtTime(n.x,i),t.upY.linearRampToValueAtTime(n.y,i),t.upZ.linearRampToValueAtTime(n.z,i)}else t.setPosition(Gi.x,Gi.y,Gi.z),t.setOrientation(Wi.x,Wi.y,Wi.z,n.x,n.y,n.z)}}class Rg extends mt{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(e=0){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let l=t,c=t+t;l!==c;++l)if(n[l]!==n[l+t]){o.setValue(n,i);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let s=n,a=i;s!==a;++s)t[s]=t[i+s%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let a=0;a!==s;++a)e[t+a]=e[n+a]}_slerp(e,t,n,i){rn.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,s){const a=this._workIndex*s;rn.multiplyQuaternionsFlat(e,a,e,t,e,n),rn.slerpFlat(e,t,e,t,e,a,i)}_lerp(e,t,n,i,s){const a=1-i;for(let o=0;o!==s;++o){const l=t+o;e[l]=e[l]*a+e[n+o]*i}}_lerpAdditive(e,t,n,i,s){for(let a=0;a!==s;++a){const o=t+a;e[o]=e[o]+e[n+a]*i}}}const hh="\\[\\]\\.:\\/",Dg=new RegExp("["+hh+"]","g"),uh="[^"+hh+"]",Lg="[^"+hh.replace("\\.","")+"]",Ug=/((?:WC+[\/:])*)/.source.replace("WC",uh),Ng=/(WCOD+)?/.source.replace("WCOD",Lg),Fg=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",uh),Og=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",uh),Bg=new RegExp("^"+Ug+Ng+Fg+Og+"$"),zg=["material","materials","bones","map"];class kg{constructor(e,t,n){const i=n||ft.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,i)}getValue(e,t){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(e,t)}setValue(e,t){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}}class ft{constructor(e,t,n){this.path=t,this.parsedPath=n||ft.parseTrackName(t),this.node=ft.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new ft.Composite(e,t,n):new ft(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Dg,"")}static parseTrackName(e){const t=Bg.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){const s=n.nodeName.substring(i+1);zg.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(n!==void 0)return n}if(e.children){const n=function(s){for(let a=0;a=s){const u=s++,f=e[u];t[f.uuid]=h,e[h]=f,t[c]=u,e[u]=l;for(let d=0,p=i;d!==p;++d){const _=n[d],g=_[u],m=_[h];_[h]=g,_[u]=m}}}this.nCachedObjects_=s}uncache(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,i=n.length;let s=this.nCachedObjects_,a=e.length;for(let o=0,l=arguments.length;o!==l;++o){const c=arguments[o],h=c.uuid,u=t[h];if(u!==void 0)if(delete t[h],u0&&(t[d.uuid]=u),e[u]=d,e.pop();for(let p=0,_=i;p!==_;++p){const g=n[p];g[u]=g[f],g.pop()}}}this.nCachedObjects_=s}subscribe_(e,t){const n=this._bindingsIndicesByPath;let i=n[e];const s=this._bindings;if(i!==void 0)return s[i];const a=this._paths,o=this._parsedPaths,l=this._objects,c=l.length,h=this.nCachedObjects_,u=new Array(c);i=s.length,n[e]=i,a.push(e),o.push(t),s.push(u);for(let f=h,d=l.length;f!==d;++f){const p=l[f];u[f]=new ft(p,e,t)}return u}unsubscribe_(e){const t=this._bindingsIndicesByPath,n=t[e];if(n!==void 0){const i=this._paths,s=this._parsedPaths,a=this._bindings,o=a.length-1,l=a[o],c=e[o];t[c]=n,a[n]=l,a.pop(),s[n]=s[o],s.pop(),i[n]=i[o],i.pop()}}}class Vg{constructor(e,t,n=null,i=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=i;const s=t.tracks,a=s.length,o=new Array(a),l={endingStart:Bs,endingEnd:Bs};for(let c=0;c!==a;++c){const h=s[c].createInterpolant(null);o[c]=h,h.settings=l}this._interpolantSettings=l,this._interpolants=o,this._propertyBindings=new Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=ip,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){const i=this._clip.duration,s=e._clip.duration,a=s/i,o=i/s;e.warp(1,a,t),this.warp(o,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const i=this._mixer,s=i.time,a=this.timeScale;let o=this._timeScaleInterpolant;o===null&&(o=i._lendControlInterpolant(),this._timeScaleInterpolant=o);const l=o.parameterPositions,c=o.sampleValues;return l[0]=s,l[1]=s+n,c[0]=e/a,c[1]=t/a,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,i){if(!this.enabled){this._updateWeight(e);return}const s=this._startTime;if(s!==null){const l=(e-s)*n;l<0||n===0?t=0:(this._startTime=null,t=n*l)}t*=this._updateTimeScale(e);const a=this._updateTime(t),o=this._updateWeight(e);if(o>0){const l=this._interpolants,c=this._propertyBindings;switch(this.blendMode){case yd:for(let h=0,u=l.length;h!==u;++h)l[h].evaluate(a),c[h].accumulateAdditive(o);break;case Oc:default:for(let h=0,u=l.length;h!==u;++h)l[h].evaluate(a),c[h].accumulate(i,o)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(n!==null){const i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),i===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;if(n!==null){const i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let i=this.time+e,s=this._loopCount;const a=n===sp;if(e===0)return s===-1?i:a&&(s&1)===1?t-i:i;if(n===np){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(s===-1&&(e>=0?(s=0,this._setEndings(!0,this.repetitions===0,a)):this._setEndings(this.repetitions===0,!0,a)),i>=t||i<0){const o=Math.floor(i/t);i-=t*o,s+=Math.abs(o);const l=this.repetitions-s;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(l===1){const c=e<0;this._setEndings(c,!c,a)}else this._setEndings(!1,!1,a);this._loopCount=s,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=i;if(a&&(s&1)===1)return t-i}return i}_setEndings(e,t,n){const i=this._interpolantSettings;n?(i.endingStart=zs,i.endingEnd=zs):(e?i.endingStart=this.zeroSlopeAtStart?zs:Bs:i.endingStart=lo,t?i.endingEnd=this.zeroSlopeAtEnd?zs:Bs:i.endingEnd=lo)}_scheduleFading(e,t,n){const i=this._mixer,s=i.time;let a=this._weightInterpolant;a===null&&(a=i._lendControlInterpolant(),this._weightInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=s,l[0]=t,o[1]=s+e,l[1]=n,this}}const Hg=new Float32Array(1);class dw extends ci{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const n=e._localRoot||this._root,i=e._clip.tracks,s=i.length,a=e._propertyBindings,o=e._interpolants,l=n.uuid,c=this._bindingsByRootAndName;let h=c[l];h===void 0&&(h={},c[l]=h);for(let u=0;u!==s;++u){const f=i[u],d=f.name;let p=h[d];if(p!==void 0)++p.referenceCount,a[u]=p;else{if(p=a[u],p!==void 0){p._cacheIndex===null&&(++p.referenceCount,this._addInactiveBinding(p,l,d));continue}const _=t&&t._propertyBindings[u].binding.parsedPath;p=new Pg(ft.create(n,d,_),f.ValueTypeName,f.getValueSize()),++p.referenceCount,this._addInactiveBinding(p,l,d),a[u]=p}o[u].resultBuffer=p.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const n=(e._localRoot||this._root).uuid,i=e._clip.uuid,s=this._actionsByClip[i];this._bindAction(e,s&&s.knownActions[0]),this._addInactiveAction(e,i,n)}const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const s=t[n];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const s=t[n];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,i=this.time+=e,s=Math.sign(e),a=this._accuIndex^=1;for(let c=0;c!==n;++c)t[c]._update(i,e,s,a);const o=this._bindings,l=this._nActiveBindings;for(let c=0;c!==l;++c)o[c].apply(a);return this}setTime(e){this.time=0;for(let t=0;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Su).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const wu=new A,Da=new A;class yw{constructor(e=new A,t=new A){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){wu.subVectors(e,this.start),Da.subVectors(this.end,this.start);const n=Da.dot(Da);let s=Da.dot(wu)/n;return t&&(s=et(s,0,1)),s}closestPointToPoint(e,t,n){const i=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const Eu=new A;class Mw extends mt{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const n=new qe,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let a=0,o=1,l=32;a1)for(let u=0;u.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{Iu.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(Iu,t)}}setLength(e,t=e*.2,n=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class Lw extends hi{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],n=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],i=new qe;i.setAttribute("position",new Fe(t,3)),i.setAttribute("color",new Fe(n,3));const s=new qt({vertexColors:!0,toneMapped:!1});super(i,s),this.type="AxesHelper"}setColors(e,t,n){const i=new ne,s=this.geometry.attributes.color.array;return i.set(e),i.toArray(s,0),i.toArray(s,3),i.set(t),i.toArray(s,6),i.toArray(s,9),i.set(n),i.toArray(s,12),i.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Uw{constructor(){this.type="ShapePath",this.color=new ne,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new _o,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,i){return this.currentPath.quadraticCurveTo(e,t,n,i),this}bezierCurveTo(e,t,n,i,s,a){return this.currentPath.bezierCurveTo(e,t,n,i,s,a),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(m){const y=[];for(let v=0,x=m.length;vNumber.EPSILON){if(M<0&&(C=y[T],S=-S,P=y[w],M=-M),m.yP.y)continue;if(m.y===C.y){if(m.x===C.x)return!0}else{const D=M*(m.x-C.x)-S*(m.y-C.y);if(D===0)return!0;if(D<0)continue;x=!x}}else{if(m.y!==C.y)continue;if(P.x<=m.x&&m.x<=C.x||C.x<=m.x&&m.x<=P.x)return!0}}return x}const i=oi.isClockWise,s=this.subPaths;if(s.length===0)return[];let a,o,l;const c=[];if(s.length===1)return o=s[0],l=new Js,l.curves=o.curves,c.push(l),c;let h=!i(s[0].getPoints());h=e?!h:h;const u=[],f=[];let d=[],p=0,_;f[p]=void 0,d[p]=[];for(let m=0,y=s.length;m1){let m=!1,y=0;for(let v=0,x=f.length;v0&&m===!1&&(d=u)}let g;for(let m=0,y=f.length;me?(r.repeat.x=1,r.repeat.y=t/e,r.offset.x=0,r.offset.y=(1-r.repeat.y)/2):(r.repeat.x=e/t,r.repeat.y=1,r.offset.x=(1-r.repeat.x)/2,r.offset.y=0),r}function Zg(r,e){const t=r.image&&r.image.width?r.image.width/r.image.height:1;return t>e?(r.repeat.x=e/t,r.repeat.y=1,r.offset.x=(1-r.repeat.x)/2,r.offset.y=0):(r.repeat.x=1,r.repeat.y=t/e,r.offset.x=0,r.offset.y=(1-r.repeat.y)/2),r}function Jg(r){return r.repeat.x=1,r.repeat.y=1,r.offset.x=0,r.offset.y=0,r}function yc(r,e,t,n){const i=Kg(n);switch(t){case pd:return r*e;case gd:return r*e;case _d:return r*e*2;case Uc:return r*e/i.components*i.byteLength;case So:return r*e/i.components*i.byteLength;case vd:return r*e*2/i.components*i.byteLength;case Nc:return r*e*2/i.components*i.byteLength;case md:return r*e*3/i.components*i.byteLength;case dn:return r*e*4/i.components*i.byteLength;case Fc:return r*e*4/i.components*i.byteLength;case qa:case Ya:return Math.floor((r+3)/4)*Math.floor((e+3)/4)*8;case Za:case Ja:return Math.floor((r+3)/4)*Math.floor((e+3)/4)*16;case Vl:case Gl:return Math.max(r,16)*Math.max(e,8)/4;case kl:case Hl:return Math.max(r,8)*Math.max(e,8)/2;case Wl:case Xl:return Math.floor((r+3)/4)*Math.floor((e+3)/4)*8;case ql:return Math.floor((r+3)/4)*Math.floor((e+3)/4)*16;case Yl:return Math.floor((r+3)/4)*Math.floor((e+3)/4)*16;case Zl:return Math.floor((r+4)/5)*Math.floor((e+3)/4)*16;case Jl:return Math.floor((r+4)/5)*Math.floor((e+4)/5)*16;case Kl:return Math.floor((r+5)/6)*Math.floor((e+4)/5)*16;case $l:return Math.floor((r+5)/6)*Math.floor((e+5)/6)*16;case jl:return Math.floor((r+7)/8)*Math.floor((e+4)/5)*16;case Ql:return Math.floor((r+7)/8)*Math.floor((e+5)/6)*16;case ec:return Math.floor((r+7)/8)*Math.floor((e+7)/8)*16;case tc:return Math.floor((r+9)/10)*Math.floor((e+4)/5)*16;case nc:return Math.floor((r+9)/10)*Math.floor((e+5)/6)*16;case ic:return Math.floor((r+9)/10)*Math.floor((e+7)/8)*16;case sc:return Math.floor((r+9)/10)*Math.floor((e+9)/10)*16;case rc:return Math.floor((r+11)/12)*Math.floor((e+9)/10)*16;case ac:return Math.floor((r+11)/12)*Math.floor((e+11)/12)*16;case Ka:case oc:case lc:return Math.ceil(r/4)*Math.ceil(e/4)*16;case xd:case cc:return Math.ceil(r/4)*Math.ceil(e/4)*8;case hc:case uc:return Math.ceil(r/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${t} format.`)}function Kg(r){switch(r){case li:case ud:return{byteLength:1,components:1};case kr:case dd:case si:return{byteLength:2,components:1};case Dc:case Lc:return{byteLength:2,components:4};case Ii:case Pc:case Mn:return{byteLength:4,components:1};case fd:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${r}.`)}const Nw={contain:Yg,cover:Zg,fill:Jg,getByteLength:yc};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:Rc}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=Rc);/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */function tf(){let r=null,e=!1,t=null,n=null;function i(s,a){t(s,a),n=r.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=r.requestAnimationFrame(i),e=!0)},stop:function(){r.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){r=s}}}function $g(r){const e=new WeakMap;function t(o,l){const c=o.array,h=o.usage,u=c.byteLength,f=r.createBuffer();r.bindBuffer(l,f),r.bufferData(l,c,h),o.onUploadCallback();let d;if(c instanceof Float32Array)d=r.FLOAT;else if(c instanceof Uint16Array)o.isFloat16BufferAttribute?d=r.HALF_FLOAT:d=r.UNSIGNED_SHORT;else if(c instanceof Int16Array)d=r.SHORT;else if(c instanceof Uint32Array)d=r.UNSIGNED_INT;else if(c instanceof Int32Array)d=r.INT;else if(c instanceof Int8Array)d=r.BYTE;else if(c instanceof Uint8Array)d=r.UNSIGNED_BYTE;else if(c instanceof Uint8ClampedArray)d=r.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+c);return{buffer:f,type:d,bytesPerElement:c.BYTES_PER_ELEMENT,version:o.version,size:u}}function n(o,l,c){const h=l.array,u=l.updateRanges;if(r.bindBuffer(c,o),u.length===0)r.bufferSubData(c,0,h);else{u.sort((d,p)=>d.start-p.start);let f=0;for(let d=1;d 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,p0=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,m0=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,g0=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,_0=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,v0=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,x0=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + varying vec3 vColor; +#endif`,y0=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif +#ifdef USE_BATCHING_COLOR + vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); + vColor.xyz *= batchingColor.xyz; +#endif`,M0=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,b0=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,S0=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,w0=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,E0=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,T0=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE + emissiveColor = sRGBTransferEOTF( emissiveColor ); + #endif + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,A0=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,C0="gl_FragColor = linearToOutputTexel( gl_FragColor );",R0=`vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferEOTF( in vec4 value ) { + return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +}`,I0=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,P0=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + uniform mat3 envMapRotation; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,D0=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,L0=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,U0=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,N0=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,F0=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,O0=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,B0=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,z0=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,k0=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,V0=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,H0=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,G0=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,W0=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,X0=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,q0=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,Y0=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,Z0=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,J0=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_DISPERSION + material.dispersion = dispersion; +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,K0=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + float dispersion; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,$0=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,j0=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,Q0=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,e_=`#if defined( USE_LOGDEPTHBUF ) + gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,t_=`#if defined( USE_LOGDEPTHBUF ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,n_=`#ifdef USE_LOGDEPTHBUF + varying float vFragDepth; + varying float vIsPerspective; +#endif`,i_=`#ifdef USE_LOGDEPTHBUF + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); +#endif`,s_=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,r_=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,a_=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,o_=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,l_=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,c_=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,h_=`#ifdef USE_INSTANCING_MORPH + float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; + } +#endif`,u_=`#if defined( USE_MORPHCOLORS ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,d_=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,f_=`#ifdef USE_MORPHTARGETS + #ifndef USE_INSTANCING_MORPH + uniform float morphTargetBaseInfluence; + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + #endif + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } +#endif`,p_=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,m_=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,g_=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,__=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,v_=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,x_=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,y_=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,M_=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,b_=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,S_=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,w_=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,E_=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,T_=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; +const float Inv255 = 1. / 255.; +const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); +const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); +const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); +const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); +vec4 packDepthToRGBA( const in float v ) { + if( v <= 0.0 ) + return vec4( 0., 0., 0., 0. ); + if( v >= 1.0 ) + return vec4( 1., 1., 1., 1. ); + float vuf; + float af = modf( v * PackFactors.a, vuf ); + float bf = modf( vuf * ShiftRight8, vuf ); + float gf = modf( vuf * ShiftRight8, vuf ); + return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); +} +vec3 packDepthToRGB( const in float v ) { + if( v <= 0.0 ) + return vec3( 0., 0., 0. ); + if( v >= 1.0 ) + return vec3( 1., 1., 1. ); + float vuf; + float bf = modf( v * PackFactors.b, vuf ); + float gf = modf( vuf * ShiftRight8, vuf ); + return vec3( vuf * Inv255, gf * PackUpscale, bf ); +} +vec2 packDepthToRG( const in float v ) { + if( v <= 0.0 ) + return vec2( 0., 0. ); + if( v >= 1.0 ) + return vec2( 1., 1. ); + float vuf; + float gf = modf( v * 256., vuf ); + return vec2( vuf * Inv255, gf ); +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors4 ); +} +float unpackRGBToDepth( const in vec3 v ) { + return dot( v, UnpackFactors3 ); +} +float unpackRGToDepth( const in vec2 v ) { + return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; +} +vec4 pack2HalfToRGBA( const in vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( const in vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,A_=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,C_=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,R_=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,I_=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,P_=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,D_=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,L_=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + float shadow = 1.0; + vec3 lightToPosition = shadowCoord.xyz; + + float lightToPositionLength = length( lightToPosition ); + if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) { + float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + shadow = ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } +#endif`,U_=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,N_=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,F_=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,O_=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,B_=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,z_=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,k_=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,V_=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,H_=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,G_=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,W_=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 CineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 NeutralToneMapping( vec3 color ) { + const float StartCompression = 0.8 - 0.04; + const float Desaturation = 0.15; + color *= toneMappingExposure; + float x = min( color.r, min( color.g, color.b ) ); + float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; + color -= offset; + float peak = max( color.r, max( color.g, color.b ) ); + if ( peak < StartCompression ) return color; + float d = 1. - StartCompression; + float newPeak = 1. - d * d / ( peak + d - StartCompression ); + color *= newPeak / peak; + float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); + return mix( color, vec3( newPeak ), g ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,X_=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,q_=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec4 transmittedLight; + vec3 transmittance; + #ifdef USE_DISPERSION + float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; + vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); + for ( int i = 0; i < 3; i ++ ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); + transmittedLight[ i ] = transmissionSample[ i ]; + transmittedLight.a += transmissionSample.a; + transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; + } + transmittedLight.a /= 3.0; + #else + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + #endif + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,Y_=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,Z_=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,J_=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,K_=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const $_=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,j_=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Q_=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,ev=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +uniform mat3 backgroundRotation; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,tv=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,nv=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,iv=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,sv=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #elif DEPTH_PACKING == 3202 + gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); + #elif DEPTH_PACKING == 3203 + gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); + #endif +}`,rv=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,av=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,ov=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,lv=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,cv=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,hv=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,uv=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,dv=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,fv=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,pv=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,mv=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,gv=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,_v=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,vv=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,xv=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,yv=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,Mv=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,bv=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_DISPERSION + uniform float dispersion; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,Sv=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,wv=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,Ev=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,Tv=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,Av=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,Cv=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,Rv=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix[ 3 ]; + vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,Iv=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,st={alphahash_fragment:jg,alphahash_pars_fragment:Qg,alphamap_fragment:e0,alphamap_pars_fragment:t0,alphatest_fragment:n0,alphatest_pars_fragment:i0,aomap_fragment:s0,aomap_pars_fragment:r0,batching_pars_vertex:a0,batching_vertex:o0,begin_vertex:l0,beginnormal_vertex:c0,bsdfs:h0,iridescence_fragment:u0,bumpmap_pars_fragment:d0,clipping_planes_fragment:f0,clipping_planes_pars_fragment:p0,clipping_planes_pars_vertex:m0,clipping_planes_vertex:g0,color_fragment:_0,color_pars_fragment:v0,color_pars_vertex:x0,color_vertex:y0,common:M0,cube_uv_reflection_fragment:b0,defaultnormal_vertex:S0,displacementmap_pars_vertex:w0,displacementmap_vertex:E0,emissivemap_fragment:T0,emissivemap_pars_fragment:A0,colorspace_fragment:C0,colorspace_pars_fragment:R0,envmap_fragment:I0,envmap_common_pars_fragment:P0,envmap_pars_fragment:D0,envmap_pars_vertex:L0,envmap_physical_pars_fragment:W0,envmap_vertex:U0,fog_vertex:N0,fog_pars_vertex:F0,fog_fragment:O0,fog_pars_fragment:B0,gradientmap_pars_fragment:z0,lightmap_pars_fragment:k0,lights_lambert_fragment:V0,lights_lambert_pars_fragment:H0,lights_pars_begin:G0,lights_toon_fragment:X0,lights_toon_pars_fragment:q0,lights_phong_fragment:Y0,lights_phong_pars_fragment:Z0,lights_physical_fragment:J0,lights_physical_pars_fragment:K0,lights_fragment_begin:$0,lights_fragment_maps:j0,lights_fragment_end:Q0,logdepthbuf_fragment:e_,logdepthbuf_pars_fragment:t_,logdepthbuf_pars_vertex:n_,logdepthbuf_vertex:i_,map_fragment:s_,map_pars_fragment:r_,map_particle_fragment:a_,map_particle_pars_fragment:o_,metalnessmap_fragment:l_,metalnessmap_pars_fragment:c_,morphinstance_vertex:h_,morphcolor_vertex:u_,morphnormal_vertex:d_,morphtarget_pars_vertex:f_,morphtarget_vertex:p_,normal_fragment_begin:m_,normal_fragment_maps:g_,normal_pars_fragment:__,normal_pars_vertex:v_,normal_vertex:x_,normalmap_pars_fragment:y_,clearcoat_normal_fragment_begin:M_,clearcoat_normal_fragment_maps:b_,clearcoat_pars_fragment:S_,iridescence_pars_fragment:w_,opaque_fragment:E_,packing:T_,premultiplied_alpha_fragment:A_,project_vertex:C_,dithering_fragment:R_,dithering_pars_fragment:I_,roughnessmap_fragment:P_,roughnessmap_pars_fragment:D_,shadowmap_pars_fragment:L_,shadowmap_pars_vertex:U_,shadowmap_vertex:N_,shadowmask_pars_fragment:F_,skinbase_vertex:O_,skinning_pars_vertex:B_,skinning_vertex:z_,skinnormal_vertex:k_,specularmap_fragment:V_,specularmap_pars_fragment:H_,tonemapping_fragment:G_,tonemapping_pars_fragment:W_,transmission_fragment:X_,transmission_pars_fragment:q_,uv_pars_fragment:Y_,uv_pars_vertex:Z_,uv_vertex:J_,worldpos_vertex:K_,background_vert:$_,background_frag:j_,backgroundCube_vert:Q_,backgroundCube_frag:ev,cube_vert:tv,cube_frag:nv,depth_vert:iv,depth_frag:sv,distanceRGBA_vert:rv,distanceRGBA_frag:av,equirect_vert:ov,equirect_frag:lv,linedashed_vert:cv,linedashed_frag:hv,meshbasic_vert:uv,meshbasic_frag:dv,meshlambert_vert:fv,meshlambert_frag:pv,meshmatcap_vert:mv,meshmatcap_frag:gv,meshnormal_vert:_v,meshnormal_frag:vv,meshphong_vert:xv,meshphong_frag:yv,meshphysical_vert:Mv,meshphysical_frag:bv,meshtoon_vert:Sv,meshtoon_frag:wv,points_vert:Ev,points_frag:Tv,shadow_vert:Av,shadow_frag:Cv,sprite_vert:Rv,sprite_frag:Iv},Te={common:{diffuse:{value:new ne(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new tt},alphaMap:{value:null},alphaMapTransform:{value:new tt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new tt}},envmap:{envMap:{value:null},envMapRotation:{value:new tt},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new tt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new tt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new tt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new tt},normalScale:{value:new j(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new tt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new tt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new tt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new tt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new ne(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new ne(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new tt},alphaTest:{value:0},uvTransform:{value:new tt}},sprite:{diffuse:{value:new ne(16777215)},opacity:{value:1},center:{value:new j(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new tt},alphaMap:{value:null},alphaMapTransform:{value:new tt},alphaTest:{value:0}}},On={basic:{uniforms:nn([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.fog]),vertexShader:st.meshbasic_vert,fragmentShader:st.meshbasic_frag},lambert:{uniforms:nn([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,Te.lights,{emissive:{value:new ne(0)}}]),vertexShader:st.meshlambert_vert,fragmentShader:st.meshlambert_frag},phong:{uniforms:nn([Te.common,Te.specularmap,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,Te.lights,{emissive:{value:new ne(0)},specular:{value:new ne(1118481)},shininess:{value:30}}]),vertexShader:st.meshphong_vert,fragmentShader:st.meshphong_frag},standard:{uniforms:nn([Te.common,Te.envmap,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.roughnessmap,Te.metalnessmap,Te.fog,Te.lights,{emissive:{value:new ne(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:st.meshphysical_vert,fragmentShader:st.meshphysical_frag},toon:{uniforms:nn([Te.common,Te.aomap,Te.lightmap,Te.emissivemap,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.gradientmap,Te.fog,Te.lights,{emissive:{value:new ne(0)}}]),vertexShader:st.meshtoon_vert,fragmentShader:st.meshtoon_frag},matcap:{uniforms:nn([Te.common,Te.bumpmap,Te.normalmap,Te.displacementmap,Te.fog,{matcap:{value:null}}]),vertexShader:st.meshmatcap_vert,fragmentShader:st.meshmatcap_frag},points:{uniforms:nn([Te.points,Te.fog]),vertexShader:st.points_vert,fragmentShader:st.points_frag},dashed:{uniforms:nn([Te.common,Te.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:st.linedashed_vert,fragmentShader:st.linedashed_frag},depth:{uniforms:nn([Te.common,Te.displacementmap]),vertexShader:st.depth_vert,fragmentShader:st.depth_frag},normal:{uniforms:nn([Te.common,Te.bumpmap,Te.normalmap,Te.displacementmap,{opacity:{value:1}}]),vertexShader:st.meshnormal_vert,fragmentShader:st.meshnormal_frag},sprite:{uniforms:nn([Te.sprite,Te.fog]),vertexShader:st.sprite_vert,fragmentShader:st.sprite_frag},background:{uniforms:{uvTransform:{value:new tt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:st.background_vert,fragmentShader:st.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new tt}},vertexShader:st.backgroundCube_vert,fragmentShader:st.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:st.cube_vert,fragmentShader:st.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:st.equirect_vert,fragmentShader:st.equirect_frag},distanceRGBA:{uniforms:nn([Te.common,Te.displacementmap,{referencePosition:{value:new A},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:st.distanceRGBA_vert,fragmentShader:st.distanceRGBA_frag},shadow:{uniforms:nn([Te.lights,Te.fog,{color:{value:new ne(0)},opacity:{value:1}}]),vertexShader:st.shadow_vert,fragmentShader:st.shadow_frag}};On.physical={uniforms:nn([On.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new tt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new tt},clearcoatNormalScale:{value:new j(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new tt},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new tt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new tt},sheen:{value:0},sheenColor:{value:new ne(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new tt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new tt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new tt},transmissionSamplerSize:{value:new j},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new tt},attenuationDistance:{value:0},attenuationColor:{value:new ne(0)},specularColor:{value:new ne(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new tt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new tt},anisotropyVector:{value:new j},anisotropyMap:{value:null},anisotropyMapTransform:{value:new tt}}]),vertexShader:st.meshphysical_vert,fragmentShader:st.meshphysical_frag};const Ba={r:0,b:0,g:0},Yi=new In,Pv=new Ze;function Dv(r,e,t,n,i,s,a){const o=new ne(0);let l=s===!0?0:1,c,h,u=null,f=0,d=null;function p(v){let x=v.isScene===!0?v.background:null;return x&&x.isTexture&&(x=(v.backgroundBlurriness>0?t:e).get(x)),x}function _(v){let x=!1;const w=p(v);w===null?m(o,l):w&&w.isColor&&(m(w,1),x=!0);const T=r.xr.getEnvironmentBlendMode();T==="additive"?n.buffers.color.setClear(0,0,0,1,a):T==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,a),(r.autoClear||x)&&(n.buffers.depth.setTest(!0),n.buffers.depth.setMask(!0),n.buffers.color.setMask(!0),r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil))}function g(v,x){const w=p(x);w&&(w.isCubeTexture||w.mapping===qr)?(h===void 0&&(h=new yt(new or(1,1,1),new Xt({name:"BackgroundCubeMaterial",uniforms:tr(On.backgroundCube.uniforms),vertexShader:On.backgroundCube.vertexShader,fragmentShader:On.backgroundCube.fragmentShader,side:fn,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(T,C,P){this.matrixWorld.copyPosition(P.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),Yi.copy(x.backgroundRotation),Yi.x*=-1,Yi.y*=-1,Yi.z*=-1,w.isCubeTexture&&w.isRenderTargetTexture===!1&&(Yi.y*=-1,Yi.z*=-1),h.material.uniforms.envMap.value=w,h.material.uniforms.flipEnvMap.value=w.isCubeTexture&&w.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=x.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=x.backgroundIntensity,h.material.uniforms.backgroundRotation.value.setFromMatrix4(Pv.makeRotationFromEuler(Yi)),h.material.toneMapped=ht.getTransfer(w.colorSpace)!==vt,(u!==w||f!==w.version||d!==r.toneMapping)&&(h.material.needsUpdate=!0,u=w,f=w.version,d=r.toneMapping),h.layers.enableAll(),v.unshift(h,h.geometry,h.material,0,0,null)):w&&w.isTexture&&(c===void 0&&(c=new yt(new lr(2,2),new Xt({name:"BackgroundMaterial",uniforms:tr(On.background.uniforms),vertexShader:On.background.vertexShader,fragmentShader:On.background.fragmentShader,side:Ci,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(c)),c.material.uniforms.t2D.value=w,c.material.uniforms.backgroundIntensity.value=x.backgroundIntensity,c.material.toneMapped=ht.getTransfer(w.colorSpace)!==vt,w.matrixAutoUpdate===!0&&w.updateMatrix(),c.material.uniforms.uvTransform.value.copy(w.matrix),(u!==w||f!==w.version||d!==r.toneMapping)&&(c.material.needsUpdate=!0,u=w,f=w.version,d=r.toneMapping),c.layers.enableAll(),v.unshift(c,c.geometry,c.material,0,0,null))}function m(v,x){v.getRGB(Ba,Ad(r)),n.buffers.color.setClear(Ba.r,Ba.g,Ba.b,x,a)}function y(){h!==void 0&&(h.geometry.dispose(),h.material.dispose()),c!==void 0&&(c.geometry.dispose(),c.material.dispose())}return{getClearColor:function(){return o},setClearColor:function(v,x=1){o.set(v),l=x,m(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(v){l=v,m(o,l)},render:_,addToRenderList:g,dispose:y}}function Lv(r,e){const t=r.getParameter(r.MAX_VERTEX_ATTRIBS),n={},i=f(null);let s=i,a=!1;function o(M,D,G,F,V){let J=!1;const q=u(F,G,D);s!==q&&(s=q,c(s.object)),J=d(M,F,G,V),J&&p(M,F,G,V),V!==null&&e.update(V,r.ELEMENT_ARRAY_BUFFER),(J||a)&&(a=!1,x(M,D,G,F),V!==null&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e.get(V).buffer))}function l(){return r.createVertexArray()}function c(M){return r.bindVertexArray(M)}function h(M){return r.deleteVertexArray(M)}function u(M,D,G){const F=G.wireframe===!0;let V=n[M.id];V===void 0&&(V={},n[M.id]=V);let J=V[D.id];J===void 0&&(J={},V[D.id]=J);let q=J[F];return q===void 0&&(q=f(l()),J[F]=q),q}function f(M){const D=[],G=[],F=[];for(let V=0;V=0){const be=V[Z];let Re=J[Z];if(Re===void 0&&(Z==="instanceMatrix"&&M.instanceMatrix&&(Re=M.instanceMatrix),Z==="instanceColor"&&M.instanceColor&&(Re=M.instanceColor)),be===void 0||be.attribute!==Re||Re&&be.data!==Re.data)return!0;q++}return s.attributesNum!==q||s.index!==F}function p(M,D,G,F){const V={},J=D.attributes;let q=0;const se=G.getAttributes();for(const Z in se)if(se[Z].location>=0){let be=J[Z];be===void 0&&(Z==="instanceMatrix"&&M.instanceMatrix&&(be=M.instanceMatrix),Z==="instanceColor"&&M.instanceColor&&(be=M.instanceColor));const Re={};Re.attribute=be,be&&be.data&&(Re.data=be.data),V[Z]=Re,q++}s.attributes=V,s.attributesNum=q,s.index=F}function _(){const M=s.newAttributes;for(let D=0,G=M.length;D=0){let _e=V[se];if(_e===void 0&&(se==="instanceMatrix"&&M.instanceMatrix&&(_e=M.instanceMatrix),se==="instanceColor"&&M.instanceColor&&(_e=M.instanceColor)),_e!==void 0){const be=_e.normalized,Re=_e.itemSize,Ge=e.get(_e);if(Ge===void 0)continue;const it=Ge.buffer,Q=Ge.type,ue=Ge.bytesPerElement,Ie=Q===r.INT||Q===r.UNSIGNED_INT||_e.gpuType===Pc;if(_e.isInterleavedBufferAttribute){const pe=_e.data,Oe=pe.stride,We=_e.offset;if(pe.isInstancedInterleavedBuffer){for(let ze=0;ze0&&r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision>0)return"highp";C="mediump"}return C==="mediump"&&r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_FLOAT).precision>0&&r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=t.precision!==void 0?t.precision:"highp";const h=l(c);h!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",h,"instead."),c=h);const u=t.logarithmicDepthBuffer===!0,f=t.reverseDepthBuffer===!0&&e.has("EXT_clip_control"),d=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),p=r.getParameter(r.MAX_VERTEX_TEXTURE_IMAGE_UNITS),_=r.getParameter(r.MAX_TEXTURE_SIZE),g=r.getParameter(r.MAX_CUBE_MAP_TEXTURE_SIZE),m=r.getParameter(r.MAX_VERTEX_ATTRIBS),y=r.getParameter(r.MAX_VERTEX_UNIFORM_VECTORS),v=r.getParameter(r.MAX_VARYING_VECTORS),x=r.getParameter(r.MAX_FRAGMENT_UNIFORM_VECTORS),w=p>0,T=r.getParameter(r.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:s,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:u,reverseDepthBuffer:f,maxTextures:d,maxVertexTextures:p,maxTextureSize:_,maxCubemapSize:g,maxAttributes:m,maxVertexUniforms:y,maxVaryings:v,maxFragmentUniforms:x,vertexTextures:w,maxSamples:T}}function Fv(r){const e=this;let t=null,n=0,i=!1,s=!1;const a=new Si,o=new tt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(u,f){const d=u.length!==0||f||n!==0||i;return i=f,n=u.length,d},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(u,f){t=h(u,f,0)},this.setState=function(u,f,d){const p=u.clippingPlanes,_=u.clipIntersection,g=u.clipShadows,m=r.get(u);if(!i||p===null||p.length===0||s&&!g)s?h(null):c();else{const y=s?0:n,v=y*4;let x=m.clippingState||null;l.value=x,x=h(p,f,v,d);for(let w=0;w!==v;++w)x[w]=t[w];m.clippingState=x,this.numIntersection=_?this.numPlanes:0,this.numPlanes+=y}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function h(u,f,d,p){const _=u!==null?u.length:0;let g=null;if(_!==0){if(g=l.value,p!==!0||g===null){const m=d+_*4,y=f.matrixWorldInverse;o.getNormalMatrix(y),(g===null||g.length0){const c=new tm(l.height);return c.fromEquirectangularTexture(r,a),e.set(a,c),a.addEventListener("dispose",i),t(c.texture,a.mapping)}else return null}}return a}function i(a){const o=a.target;o.removeEventListener("dispose",i);const l=e.get(o);l!==void 0&&(e.delete(o),l.dispose())}function s(){e=new WeakMap}return{get:n,dispose:s}}const Gs=4,Pu=[.125,.215,.35,.446,.526,.582],es=20,vl=new Lo,Du=new ne;let xl=null,yl=0,Ml=0,bl=!1;const $i=(1+Math.sqrt(5))/2,Us=1/$i,Lu=[new A(-$i,Us,0),new A($i,Us,0),new A(-Us,0,$i),new A(Us,0,$i),new A(0,$i,-Us),new A(0,$i,Us),new A(-1,1,-1),new A(1,1,-1),new A(-1,1,1),new A(1,1,1)];class Uu{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){xl=this._renderer.getRenderTarget(),yl=this._renderer.getActiveCubeFace(),Ml=this._renderer.getActiveMipmapLevel(),bl=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,n,i,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Ou(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Fu(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?v:0,v,v),h.setRenderTarget(i),_&&h.render(p,o),h.render(e,o)}p.geometry.dispose(),p.material.dispose(),h.toneMapping=f,h.autoClear=u,e.background=g}_textureToCubeUV(e,t){const n=this._renderer,i=e.mapping===Ri||e.mapping===os;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Ou()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Fu());const s=i?this._cubemapMaterial:this._equirectMaterial,a=new yt(this._lodPlanes[0],s),o=s.uniforms;o.envMap.value=e;const l=this._cubeSize;za(t,0,0,3*l,2*l),n.setRenderTarget(t),n.render(a,vl)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;const i=this._lodPlanes.length;for(let s=1;ses&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${g} samples when the maximum is set to ${es}`);const m=[];let y=0;for(let C=0;Cv-Gs?i-v+Gs:0),T=4*(this._cubeSize-x);za(t,w,T,3*x,2*x),l.setRenderTarget(t),l.render(u,vl)}}function Bv(r){const e=[],t=[],n=[];let i=r;const s=r-Gs+1+Pu.length;for(let a=0;ar-Gs?l=Pu[a-r+Gs-1]:a===0&&(l=0),n.push(l);const c=1/(o-2),h=-c,u=1+c,f=[h,h,u,h,u,u,h,h,u,u,h,u],d=6,p=6,_=3,g=2,m=1,y=new Float32Array(_*p*d),v=new Float32Array(g*p*d),x=new Float32Array(m*p*d);for(let T=0;T2?0:-1,S=[C,P,0,C+2/3,P,0,C+2/3,P+1,0,C,P,0,C+2/3,P+1,0,C,P+1,0];y.set(S,_*p*T),v.set(f,g*p*T);const M=[T,T,T,T,T,T];x.set(M,m*p*T)}const w=new qe;w.setAttribute("position",new rt(y,_)),w.setAttribute("uv",new rt(v,g)),w.setAttribute("faceIndex",new rt(x,m)),e.push(w),i>Gs&&i--}return{lodPlanes:e,sizeLods:t,sigmas:n}}function Nu(r,e,t){const n=new Sn(r,e,t);return n.texture.mapping=qr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function za(r,e,t,n,i){r.viewport.set(e,t,n,i),r.scissor.set(e,t,n,i)}function zv(r,e,t){const n=new Float32Array(es),i=new A(0,1,0);return new Xt({name:"SphericalGaussianBlur",defines:{n:es,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:dh(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:ii,depthTest:!1,depthWrite:!1})}function Fu(){return new Xt({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:dh(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:ii,depthTest:!1,depthWrite:!1})}function Ou(){return new Xt({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:dh(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:ii,depthTest:!1,depthWrite:!1})}function dh(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function kv(r){let e=new WeakMap,t=null;function n(o){if(o&&o.isTexture){const l=o.mapping,c=l===io||l===so,h=l===Ri||l===os;if(c||h){let u=e.get(o);const f=u!==void 0?u.texture.pmremVersion:0;if(o.isRenderTargetTexture&&o.pmremVersion!==f)return t===null&&(t=new Uu(r)),u=c?t.fromEquirectangular(o,u):t.fromCubemap(o,u),u.texture.pmremVersion=o.pmremVersion,e.set(o,u),u.texture;if(u!==void 0)return u.texture;{const d=o.image;return c&&d&&d.height>0||h&&d&&i(d)?(t===null&&(t=new Uu(r)),u=c?t.fromEquirectangular(o):t.fromCubemap(o),u.texture.pmremVersion=o.pmremVersion,e.set(o,u),o.addEventListener("dispose",s),u.texture):null}}}return o}function i(o){let l=0;const c=6;for(let h=0;he.maxTextureSize&&(w=Math.ceil(x/e.maxTextureSize),x=e.maxTextureSize);const T=new Float32Array(x*w*4*u),C=new wo(T,x,w,u);C.type=Mn,C.needsUpdate=!0;const P=v*4;for(let M=0;M0)return r;const i=e*t;let s=zu[i];if(s===void 0&&(s=new Float32Array(i),zu[i]=s),e!==0){n.toArray(s,0);for(let a=1,o=0;a!==e;++a)o+=t,r[a].toArray(s,o)}return s}function Ot(r,e){if(r.length!==e.length)return!1;for(let t=0,n=r.length;t":" "} ${o}: ${t[a]}`)}return n.join(` +`)}const qu=new tt;function kx(r){ht._getMatrix(qu,ht.workingColorSpace,r);const e=`mat3( ${qu.elements.map(t=>t.toFixed(4))} )`;switch(ht.getTransfer(r)){case co:return[e,"LinearTransferOETF"];case vt:return[e,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",r),[e,"LinearTransferOETF"]}}function Yu(r,e,t){const n=r.getShaderParameter(e,r.COMPILE_STATUS),i=r.getShaderInfoLog(e).trim();if(n&&i==="")return"";const s=/ERROR: 0:(\d+)/.exec(i);if(s){const a=parseInt(s[1]);return t.toUpperCase()+` + +`+i+` + +`+zx(r.getShaderSource(e),a)}else return i}function Vx(r,e){const t=kx(e);return[`vec4 ${r}( vec4 value ) {`,` return ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,"}"].join(` +`)}function Hx(r,e){let t;switch(e){case Jf:t="Linear";break;case Kf:t="Reinhard";break;case $f:t="Cineon";break;case cd:t="ACESFilmic";break;case Qf:t="AgX";break;case ep:t="Neutral";break;case jf:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+r+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}const ka=new A;function Gx(){ht.getLuminanceCoefficients(ka);const r=ka.x.toFixed(4),e=ka.y.toFixed(4),t=ka.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${r}, ${e}, ${t} );`," return dot( weights, rgb );","}"].join(` +`)}function Wx(r){return[r.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",r.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Ir).join(` +`)}function Xx(r){const e=[];for(const t in r){const n=r[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(` +`)}function qx(r,e){const t={},n=r.getProgramParameter(e,r.ACTIVE_ATTRIBUTES);for(let i=0;i/gm;function Mc(r){return r.replace(Yx,Jx)}const Zx=new Map;function Jx(r,e){let t=st[e];if(t===void 0){const n=Zx.get(e);if(n!==void 0)t=st[n],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,n);else throw new Error("Can not resolve #include <"+e+">")}return Mc(t)}const Kx=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Ku(r){return r.replace(Kx,$x)}function $x(r,e,t,n){let i="";for(let s=parseInt(e);s0&&(g+=` +`),m=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,p].filter(Ir).join(` +`),m.length>0&&(m+=` +`)):(g=[$u(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,p,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.batchingColor?"#define USE_BATCHING_COLOR":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(Ir).join(` +`),m=[$u(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,p,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+c:"",t.envMap?"#define "+h:"",t.envMap?"#define "+u:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.dispersion?"#define USE_DISPERSION":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor||t.batchingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Ti?"#define TONE_MAPPING":"",t.toneMapping!==Ti?st.tonemapping_pars_fragment:"",t.toneMapping!==Ti?Hx("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",st.colorspace_pars_fragment,Vx("linearToOutputTexel",t.outputColorSpace),Gx(),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(Ir).join(` +`)),a=Mc(a),a=Zu(a,t),a=Ju(a,t),o=Mc(o),o=Zu(o,t),o=Ju(o,t),a=Ku(a),o=Ku(o),t.isRawShaderMaterial!==!0&&(y=`#version 300 es +`,g=[d,"#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+g,m=["#define varying in",t.glslVersion===Mh?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===Mh?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+m);const v=y+g+a,x=y+m+o,w=Xu(i,i.VERTEX_SHADER,v),T=Xu(i,i.FRAGMENT_SHADER,x);i.attachShader(_,w),i.attachShader(_,T),t.index0AttributeName!==void 0?i.bindAttribLocation(_,0,t.index0AttributeName):t.morphTargets===!0&&i.bindAttribLocation(_,0,"position"),i.linkProgram(_);function C(D){if(r.debug.checkShaderErrors){const G=i.getProgramInfoLog(_).trim(),F=i.getShaderInfoLog(w).trim(),V=i.getShaderInfoLog(T).trim();let J=!0,q=!0;if(i.getProgramParameter(_,i.LINK_STATUS)===!1)if(J=!1,typeof r.debug.onShaderError=="function")r.debug.onShaderError(i,_,w,T);else{const se=Yu(i,w,"vertex"),Z=Yu(i,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(_,i.VALIDATE_STATUS)+` + +Material Name: `+D.name+` +Material Type: `+D.type+` + +Program Info Log: `+G+` +`+se+` +`+Z)}else G!==""?console.warn("THREE.WebGLProgram: Program Info Log:",G):(F===""||V==="")&&(q=!1);q&&(D.diagnostics={runnable:J,programLog:G,vertexShader:{log:F,prefix:g},fragmentShader:{log:V,prefix:m}})}i.deleteShader(w),i.deleteShader(T),P=new $a(i,_),S=qx(i,_)}let P;this.getUniforms=function(){return P===void 0&&C(this),P};let S;this.getAttributes=function(){return S===void 0&&C(this),S};let M=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return M===!1&&(M=i.getProgramParameter(_,Ox)),M},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(_),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=Bx++,this.cacheKey=e,this.usedTimes=1,this.program=_,this.vertexShader=w,this.fragmentShader=T,this}let sy=0;class ry{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,n=e.fragmentShader,i=this._getShaderStage(t),s=this._getShaderStage(n),a=this._getShaderCacheForMaterial(e);return a.has(i)===!1&&(a.add(i),i.usedTimes++),a.has(s)===!1&&(a.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let n=t.get(e);return n===void 0&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){const t=this.shaderCache;let n=t.get(e);return n===void 0&&(n=new ay(e),t.set(e,n)),n}}class ay{constructor(e){this.id=sy++,this.code=e,this.usedTimes=0}}function oy(r,e,t,n,i,s,a){const o=new Vc,l=new ry,c=new Set,h=[],u=i.logarithmicDepthBuffer,f=i.vertexTextures;let d=i.precision;const p={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function _(S){return c.add(S),S===0?"uv":`uv${S}`}function g(S,M,D,G,F){const V=G.fog,J=F.geometry,q=S.isMeshStandardMaterial?G.environment:null,se=(S.isMeshStandardMaterial?t:e).get(S.envMap||q),Z=se&&se.mapping===qr?se.image.height:null,_e=p[S.type];S.precision!==null&&(d=i.getMaxPrecision(S.precision),d!==S.precision&&console.warn("THREE.WebGLProgram.getParameters:",S.precision,"not supported, using",d,"instead."));const be=J.morphAttributes.position||J.morphAttributes.normal||J.morphAttributes.color,Re=be!==void 0?be.length:0;let Ge=0;J.morphAttributes.position!==void 0&&(Ge=1),J.morphAttributes.normal!==void 0&&(Ge=2),J.morphAttributes.color!==void 0&&(Ge=3);let it,Q,ue,Ie;if(_e){const at=On[_e];it=at.vertexShader,Q=at.fragmentShader}else it=S.vertexShader,Q=S.fragmentShader,l.update(S),ue=l.getVertexShaderID(S),Ie=l.getFragmentShaderID(S);const pe=r.getRenderTarget(),Oe=r.state.buffers.depth.getReversed(),We=F.isInstancedMesh===!0,ze=F.isBatchedMesh===!0,Je=!!S.map,te=!!S.matcap,de=!!se,I=!!S.aoMap,De=!!S.lightMap,re=!!S.bumpMap,Ae=!!S.normalMap,me=!!S.displacementMap,Ve=!!S.emissiveMap,Se=!!S.metalnessMap,R=!!S.roughnessMap,b=S.anisotropy>0,H=S.clearcoat>0,k=S.dispersion>0,X=S.iridescence>0,W=S.sheen>0,ce=S.transmission>0,oe=b&&!!S.anisotropyMap,ge=H&&!!S.clearcoatMap,Be=H&&!!S.clearcoatNormalMap,$=H&&!!S.clearcoatRoughnessMap,ve=X&&!!S.iridescenceMap,Y=X&&!!S.iridescenceThicknessMap,ie=W&&!!S.sheenColorMap,ae=W&&!!S.sheenRoughnessMap,Ne=!!S.specularMap,Pe=!!S.specularColorMap,Ke=!!S.specularIntensityMap,U=ce&&!!S.transmissionMap,ye=ce&&!!S.thicknessMap,K=!!S.gradientMap,ee=!!S.alphaMap,we=S.alphaTest>0,Me=!!S.alphaHash,Ye=!!S.extensions;let Mt=Ti;S.toneMapped&&(pe===null||pe.isXRRenderTarget===!0)&&(Mt=r.toneMapping);const St={shaderID:_e,shaderType:S.type,shaderName:S.name,vertexShader:it,fragmentShader:Q,defines:S.defines,customVertexShaderID:ue,customFragmentShaderID:Ie,isRawShaderMaterial:S.isRawShaderMaterial===!0,glslVersion:S.glslVersion,precision:d,batching:ze,batchingColor:ze&&F._colorsTexture!==null,instancing:We,instancingColor:We&&F.instanceColor!==null,instancingMorph:We&&F.morphTexture!==null,supportsVertexTextures:f,outputColorSpace:pe===null?r.outputColorSpace:pe.isXRRenderTarget===!0?pe.texture.colorSpace:Qs,alphaToCoverage:!!S.alphaToCoverage,map:Je,matcap:te,envMap:de,envMapMode:de&&se.mapping,envMapCubeUVHeight:Z,aoMap:I,lightMap:De,bumpMap:re,normalMap:Ae,displacementMap:f&&me,emissiveMap:Ve,normalMapObjectSpace:Ae&&S.normalMapType===op,normalMapTangentSpace:Ae&&S.normalMapType===cs,metalnessMap:Se,roughnessMap:R,anisotropy:b,anisotropyMap:oe,clearcoat:H,clearcoatMap:ge,clearcoatNormalMap:Be,clearcoatRoughnessMap:$,dispersion:k,iridescence:X,iridescenceMap:ve,iridescenceThicknessMap:Y,sheen:W,sheenColorMap:ie,sheenRoughnessMap:ae,specularMap:Ne,specularColorMap:Pe,specularIntensityMap:Ke,transmission:ce,transmissionMap:U,thicknessMap:ye,gradientMap:K,opaque:S.transparent===!1&&S.blending===qs&&S.alphaToCoverage===!1,alphaMap:ee,alphaTest:we,alphaHash:Me,combine:S.combine,mapUv:Je&&_(S.map.channel),aoMapUv:I&&_(S.aoMap.channel),lightMapUv:De&&_(S.lightMap.channel),bumpMapUv:re&&_(S.bumpMap.channel),normalMapUv:Ae&&_(S.normalMap.channel),displacementMapUv:me&&_(S.displacementMap.channel),emissiveMapUv:Ve&&_(S.emissiveMap.channel),metalnessMapUv:Se&&_(S.metalnessMap.channel),roughnessMapUv:R&&_(S.roughnessMap.channel),anisotropyMapUv:oe&&_(S.anisotropyMap.channel),clearcoatMapUv:ge&&_(S.clearcoatMap.channel),clearcoatNormalMapUv:Be&&_(S.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:$&&_(S.clearcoatRoughnessMap.channel),iridescenceMapUv:ve&&_(S.iridescenceMap.channel),iridescenceThicknessMapUv:Y&&_(S.iridescenceThicknessMap.channel),sheenColorMapUv:ie&&_(S.sheenColorMap.channel),sheenRoughnessMapUv:ae&&_(S.sheenRoughnessMap.channel),specularMapUv:Ne&&_(S.specularMap.channel),specularColorMapUv:Pe&&_(S.specularColorMap.channel),specularIntensityMapUv:Ke&&_(S.specularIntensityMap.channel),transmissionMapUv:U&&_(S.transmissionMap.channel),thicknessMapUv:ye&&_(S.thicknessMap.channel),alphaMapUv:ee&&_(S.alphaMap.channel),vertexTangents:!!J.attributes.tangent&&(Ae||b),vertexColors:S.vertexColors,vertexAlphas:S.vertexColors===!0&&!!J.attributes.color&&J.attributes.color.itemSize===4,pointsUvs:F.isPoints===!0&&!!J.attributes.uv&&(Je||ee),fog:!!V,useFog:S.fog===!0,fogExp2:!!V&&V.isFogExp2,flatShading:S.flatShading===!0,sizeAttenuation:S.sizeAttenuation===!0,logarithmicDepthBuffer:u,reverseDepthBuffer:Oe,skinning:F.isSkinnedMesh===!0,morphTargets:J.morphAttributes.position!==void 0,morphNormals:J.morphAttributes.normal!==void 0,morphColors:J.morphAttributes.color!==void 0,morphTargetsCount:Re,morphTextureStride:Ge,numDirLights:M.directional.length,numPointLights:M.point.length,numSpotLights:M.spot.length,numSpotLightMaps:M.spotLightMap.length,numRectAreaLights:M.rectArea.length,numHemiLights:M.hemi.length,numDirLightShadows:M.directionalShadowMap.length,numPointLightShadows:M.pointShadowMap.length,numSpotLightShadows:M.spotShadowMap.length,numSpotLightShadowsWithMaps:M.numSpotLightShadowsWithMaps,numLightProbes:M.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:S.dithering,shadowMapEnabled:r.shadowMap.enabled&&D.length>0,shadowMapType:r.shadowMap.type,toneMapping:Mt,decodeVideoTexture:Je&&S.map.isVideoTexture===!0&&ht.getTransfer(S.map.colorSpace)===vt,decodeVideoTextureEmissive:Ve&&S.emissiveMap.isVideoTexture===!0&&ht.getTransfer(S.emissiveMap.colorSpace)===vt,premultipliedAlpha:S.premultipliedAlpha,doubleSided:S.side===Bn,flipSided:S.side===fn,useDepthPacking:S.depthPacking>=0,depthPacking:S.depthPacking||0,index0AttributeName:S.index0AttributeName,extensionClipCullDistance:Ye&&S.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Ye&&S.extensions.multiDraw===!0||ze)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:S.customProgramCacheKey()};return St.vertexUv1s=c.has(1),St.vertexUv2s=c.has(2),St.vertexUv3s=c.has(3),c.clear(),St}function m(S){const M=[];if(S.shaderID?M.push(S.shaderID):(M.push(S.customVertexShaderID),M.push(S.customFragmentShaderID)),S.defines!==void 0)for(const D in S.defines)M.push(D),M.push(S.defines[D]);return S.isRawShaderMaterial===!1&&(y(M,S),v(M,S),M.push(r.outputColorSpace)),M.push(S.customProgramCacheKey),M.join()}function y(S,M){S.push(M.precision),S.push(M.outputColorSpace),S.push(M.envMapMode),S.push(M.envMapCubeUVHeight),S.push(M.mapUv),S.push(M.alphaMapUv),S.push(M.lightMapUv),S.push(M.aoMapUv),S.push(M.bumpMapUv),S.push(M.normalMapUv),S.push(M.displacementMapUv),S.push(M.emissiveMapUv),S.push(M.metalnessMapUv),S.push(M.roughnessMapUv),S.push(M.anisotropyMapUv),S.push(M.clearcoatMapUv),S.push(M.clearcoatNormalMapUv),S.push(M.clearcoatRoughnessMapUv),S.push(M.iridescenceMapUv),S.push(M.iridescenceThicknessMapUv),S.push(M.sheenColorMapUv),S.push(M.sheenRoughnessMapUv),S.push(M.specularMapUv),S.push(M.specularColorMapUv),S.push(M.specularIntensityMapUv),S.push(M.transmissionMapUv),S.push(M.thicknessMapUv),S.push(M.combine),S.push(M.fogExp2),S.push(M.sizeAttenuation),S.push(M.morphTargetsCount),S.push(M.morphAttributeCount),S.push(M.numDirLights),S.push(M.numPointLights),S.push(M.numSpotLights),S.push(M.numSpotLightMaps),S.push(M.numHemiLights),S.push(M.numRectAreaLights),S.push(M.numDirLightShadows),S.push(M.numPointLightShadows),S.push(M.numSpotLightShadows),S.push(M.numSpotLightShadowsWithMaps),S.push(M.numLightProbes),S.push(M.shadowMapType),S.push(M.toneMapping),S.push(M.numClippingPlanes),S.push(M.numClipIntersection),S.push(M.depthPacking)}function v(S,M){o.disableAll(),M.supportsVertexTextures&&o.enable(0),M.instancing&&o.enable(1),M.instancingColor&&o.enable(2),M.instancingMorph&&o.enable(3),M.matcap&&o.enable(4),M.envMap&&o.enable(5),M.normalMapObjectSpace&&o.enable(6),M.normalMapTangentSpace&&o.enable(7),M.clearcoat&&o.enable(8),M.iridescence&&o.enable(9),M.alphaTest&&o.enable(10),M.vertexColors&&o.enable(11),M.vertexAlphas&&o.enable(12),M.vertexUv1s&&o.enable(13),M.vertexUv2s&&o.enable(14),M.vertexUv3s&&o.enable(15),M.vertexTangents&&o.enable(16),M.anisotropy&&o.enable(17),M.alphaHash&&o.enable(18),M.batching&&o.enable(19),M.dispersion&&o.enable(20),M.batchingColor&&o.enable(21),S.push(o.mask),o.disableAll(),M.fog&&o.enable(0),M.useFog&&o.enable(1),M.flatShading&&o.enable(2),M.logarithmicDepthBuffer&&o.enable(3),M.reverseDepthBuffer&&o.enable(4),M.skinning&&o.enable(5),M.morphTargets&&o.enable(6),M.morphNormals&&o.enable(7),M.morphColors&&o.enable(8),M.premultipliedAlpha&&o.enable(9),M.shadowMapEnabled&&o.enable(10),M.doubleSided&&o.enable(11),M.flipSided&&o.enable(12),M.useDepthPacking&&o.enable(13),M.dithering&&o.enable(14),M.transmission&&o.enable(15),M.sheen&&o.enable(16),M.opaque&&o.enable(17),M.pointsUvs&&o.enable(18),M.decodeVideoTexture&&o.enable(19),M.decodeVideoTextureEmissive&&o.enable(20),M.alphaToCoverage&&o.enable(21),S.push(o.mask)}function x(S){const M=p[S.type];let D;if(M){const G=On[M];D=fo.clone(G.uniforms)}else D=S.uniforms;return D}function w(S,M){let D;for(let G=0,F=h.length;G0?n.push(m):d.transparent===!0?i.push(m):t.push(m)}function l(u,f,d,p,_,g){const m=a(u,f,d,p,_,g);d.transmission>0?n.unshift(m):d.transparent===!0?i.unshift(m):t.unshift(m)}function c(u,f){t.length>1&&t.sort(u||cy),n.length>1&&n.sort(f||ju),i.length>1&&i.sort(f||ju)}function h(){for(let u=e,f=r.length;u=s.length?(a=new Qu,s.push(a)):a=s[i],a}function t(){r=new WeakMap}return{get:e,dispose:t}}function uy(){const r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new A,color:new ne};break;case"SpotLight":t={position:new A,direction:new A,color:new ne,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new A,color:new ne,distance:0,decay:0};break;case"HemisphereLight":t={direction:new A,skyColor:new ne,groundColor:new ne};break;case"RectAreaLight":t={color:new ne,position:new A,halfWidth:new A,halfHeight:new A};break}return r[e.id]=t,t}}}function dy(){const r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new j};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new j};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new j,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[e.id]=t,t}}}let fy=0;function py(r,e){return(e.castShadow?2:0)-(r.castShadow?2:0)+(e.map?1:0)-(r.map?1:0)}function my(r){const e=new uy,t=dy(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)n.probe.push(new A);const i=new A,s=new Ze,a=new Ze;function o(c){let h=0,u=0,f=0;for(let S=0;S<9;S++)n.probe[S].set(0,0,0);let d=0,p=0,_=0,g=0,m=0,y=0,v=0,x=0,w=0,T=0,C=0;c.sort(py);for(let S=0,M=c.length;S0&&(r.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=Te.LTC_FLOAT_1,n.rectAreaLTC2=Te.LTC_FLOAT_2):(n.rectAreaLTC1=Te.LTC_HALF_1,n.rectAreaLTC2=Te.LTC_HALF_2)),n.ambient[0]=h,n.ambient[1]=u,n.ambient[2]=f;const P=n.hash;(P.directionalLength!==d||P.pointLength!==p||P.spotLength!==_||P.rectAreaLength!==g||P.hemiLength!==m||P.numDirectionalShadows!==y||P.numPointShadows!==v||P.numSpotShadows!==x||P.numSpotMaps!==w||P.numLightProbes!==C)&&(n.directional.length=d,n.spot.length=_,n.rectArea.length=g,n.point.length=p,n.hemi.length=m,n.directionalShadow.length=y,n.directionalShadowMap.length=y,n.pointShadow.length=v,n.pointShadowMap.length=v,n.spotShadow.length=x,n.spotShadowMap.length=x,n.directionalShadowMatrix.length=y,n.pointShadowMatrix.length=v,n.spotLightMatrix.length=x+w-T,n.spotLightMap.length=w,n.numSpotLightShadowsWithMaps=T,n.numLightProbes=C,P.directionalLength=d,P.pointLength=p,P.spotLength=_,P.rectAreaLength=g,P.hemiLength=m,P.numDirectionalShadows=y,P.numPointShadows=v,P.numSpotShadows=x,P.numSpotMaps=w,P.numLightProbes=C,n.version=fy++)}function l(c,h){let u=0,f=0,d=0,p=0,_=0;const g=h.matrixWorldInverse;for(let m=0,y=c.length;m=a.length?(o=new ed(r),a.push(o)):o=a[s],o}function n(){e=new WeakMap}return{get:t,dispose:n}}const _y=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,vy=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function xy(r,e,t){let n=new To;const i=new j,s=new j,a=new pt,o=new Hd({depthPacking:ap}),l=new Gd,c={},h=t.maxTextureSize,u={[Ci]:fn,[fn]:Ci,[Bn]:Bn},f=new Xt({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new j},radius:{value:4}},vertexShader:_y,fragmentShader:vy}),d=f.clone();d.defines.HORIZONTAL_PASS=1;const p=new qe;p.setAttribute("position",new rt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new yt(p,f),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=ld;let m=this.type;this.render=function(T,C,P){if(g.enabled===!1||g.autoUpdate===!1&&g.needsUpdate===!1||T.length===0)return;const S=r.getRenderTarget(),M=r.getActiveCubeFace(),D=r.getActiveMipmapLevel(),G=r.state;G.setBlending(ii),G.buffers.color.setClear(1,1,1,1),G.buffers.depth.setTest(!0),G.setScissorTest(!1);const F=m!==Qn&&this.type===Qn,V=m===Qn&&this.type!==Qn;for(let J=0,q=T.length;Jh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/_e.x),i.x=s.x*_e.x,Z.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/_e.y),i.y=s.y*_e.y,Z.mapSize.y=s.y)),Z.map===null||F===!0||V===!0){const Re=this.type!==Qn?{minFilter:Qt,magFilter:Qt}:{};Z.map!==null&&Z.map.dispose(),Z.map=new Sn(i.x,i.y,Re),Z.map.texture.name=se.name+".shadowMap",Z.camera.updateProjectionMatrix()}r.setRenderTarget(Z.map),r.clear();const be=Z.getViewportCount();for(let Re=0;Re0||C.map&&C.alphaTest>0){const G=M.uuid,F=C.uuid;let V=c[G];V===void 0&&(V={},c[G]=V);let J=V[F];J===void 0&&(J=M.clone(),V[F]=J,C.addEventListener("dispose",w)),M=J}if(M.visible=C.visible,M.wireframe=C.wireframe,S===Qn?M.side=C.shadowSide!==null?C.shadowSide:C.side:M.side=C.shadowSide!==null?C.shadowSide:u[C.side],M.alphaMap=C.alphaMap,M.alphaTest=C.alphaTest,M.map=C.map,M.clipShadows=C.clipShadows,M.clippingPlanes=C.clippingPlanes,M.clipIntersection=C.clipIntersection,M.displacementMap=C.displacementMap,M.displacementScale=C.displacementScale,M.displacementBias=C.displacementBias,M.wireframeLinewidth=C.wireframeLinewidth,M.linewidth=C.linewidth,P.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const G=r.properties.get(M);G.light=P}return M}function x(T,C,P,S,M){if(T.visible===!1)return;if(T.layers.test(C.layers)&&(T.isMesh||T.isLine||T.isPoints)&&(T.castShadow||T.receiveShadow&&M===Qn)&&(!T.frustumCulled||n.intersectsObject(T))){T.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,T.matrixWorld);const F=e.update(T),V=T.material;if(Array.isArray(V)){const J=F.groups;for(let q=0,se=J.length;q=1):Z.indexOf("OpenGL ES")!==-1&&(se=parseFloat(/^OpenGL ES (\d)/.exec(Z)[1]),q=se>=2);let _e=null,be={};const Re=r.getParameter(r.SCISSOR_BOX),Ge=r.getParameter(r.VIEWPORT),it=new pt().fromArray(Re),Q=new pt().fromArray(Ge);function ue(U,ye,K,ee){const we=new Uint8Array(4),Me=r.createTexture();r.bindTexture(U,Me),r.texParameteri(U,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(U,r.TEXTURE_MAG_FILTER,r.NEAREST);for(let Ye=0;Ye"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new j,h=new WeakMap;let u;const f=new WeakMap;let d=!1;try{d=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function p(R,b){return d?new OffscreenCanvas(R,b):Vr("canvas")}function _(R,b,H){let k=1;const X=Se(R);if((X.width>H||X.height>H)&&(k=H/Math.max(X.width,X.height)),k<1)if(typeof HTMLImageElement<"u"&&R instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&R instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&R instanceof ImageBitmap||typeof VideoFrame<"u"&&R instanceof VideoFrame){const W=Math.floor(k*X.width),ce=Math.floor(k*X.height);u===void 0&&(u=p(W,ce));const oe=b?p(W,ce):u;return oe.width=W,oe.height=ce,oe.getContext("2d").drawImage(R,0,0,W,ce),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+X.width+"x"+X.height+") to ("+W+"x"+ce+")."),oe}else return"data"in R&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+X.width+"x"+X.height+")."),R;return R}function g(R){return R.generateMipmaps}function m(R){r.generateMipmap(R)}function y(R){return R.isWebGLCubeRenderTarget?r.TEXTURE_CUBE_MAP:R.isWebGL3DRenderTarget?r.TEXTURE_3D:R.isWebGLArrayRenderTarget||R.isCompressedArrayTexture?r.TEXTURE_2D_ARRAY:r.TEXTURE_2D}function v(R,b,H,k,X=!1){if(R!==null){if(r[R]!==void 0)return r[R];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+R+"'")}let W=b;if(b===r.RED&&(H===r.FLOAT&&(W=r.R32F),H===r.HALF_FLOAT&&(W=r.R16F),H===r.UNSIGNED_BYTE&&(W=r.R8)),b===r.RED_INTEGER&&(H===r.UNSIGNED_BYTE&&(W=r.R8UI),H===r.UNSIGNED_SHORT&&(W=r.R16UI),H===r.UNSIGNED_INT&&(W=r.R32UI),H===r.BYTE&&(W=r.R8I),H===r.SHORT&&(W=r.R16I),H===r.INT&&(W=r.R32I)),b===r.RG&&(H===r.FLOAT&&(W=r.RG32F),H===r.HALF_FLOAT&&(W=r.RG16F),H===r.UNSIGNED_BYTE&&(W=r.RG8)),b===r.RG_INTEGER&&(H===r.UNSIGNED_BYTE&&(W=r.RG8UI),H===r.UNSIGNED_SHORT&&(W=r.RG16UI),H===r.UNSIGNED_INT&&(W=r.RG32UI),H===r.BYTE&&(W=r.RG8I),H===r.SHORT&&(W=r.RG16I),H===r.INT&&(W=r.RG32I)),b===r.RGB_INTEGER&&(H===r.UNSIGNED_BYTE&&(W=r.RGB8UI),H===r.UNSIGNED_SHORT&&(W=r.RGB16UI),H===r.UNSIGNED_INT&&(W=r.RGB32UI),H===r.BYTE&&(W=r.RGB8I),H===r.SHORT&&(W=r.RGB16I),H===r.INT&&(W=r.RGB32I)),b===r.RGBA_INTEGER&&(H===r.UNSIGNED_BYTE&&(W=r.RGBA8UI),H===r.UNSIGNED_SHORT&&(W=r.RGBA16UI),H===r.UNSIGNED_INT&&(W=r.RGBA32UI),H===r.BYTE&&(W=r.RGBA8I),H===r.SHORT&&(W=r.RGBA16I),H===r.INT&&(W=r.RGBA32I)),b===r.RGB&&H===r.UNSIGNED_INT_5_9_9_9_REV&&(W=r.RGB9_E5),b===r.RGBA){const ce=X?co:ht.getTransfer(k);H===r.FLOAT&&(W=r.RGBA32F),H===r.HALF_FLOAT&&(W=r.RGBA16F),H===r.UNSIGNED_BYTE&&(W=ce===vt?r.SRGB8_ALPHA8:r.RGBA8),H===r.UNSIGNED_SHORT_4_4_4_4&&(W=r.RGBA4),H===r.UNSIGNED_SHORT_5_5_5_1&&(W=r.RGB5_A1)}return(W===r.R16F||W===r.R32F||W===r.RG16F||W===r.RG32F||W===r.RGBA16F||W===r.RGBA32F)&&e.get("EXT_color_buffer_float"),W}function x(R,b){let H;return R?b===null||b===Ii||b===$s?H=r.DEPTH24_STENCIL8:b===Mn?H=r.DEPTH32F_STENCIL8:b===kr&&(H=r.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):b===null||b===Ii||b===$s?H=r.DEPTH_COMPONENT24:b===Mn?H=r.DEPTH_COMPONENT32F:b===kr&&(H=r.DEPTH_COMPONENT16),H}function w(R,b){return g(R)===!0||R.isFramebufferTexture&&R.minFilter!==Qt&&R.minFilter!==Vt?Math.log2(Math.max(b.width,b.height))+1:R.mipmaps!==void 0&&R.mipmaps.length>0?R.mipmaps.length:R.isCompressedTexture&&Array.isArray(R.image)?b.mipmaps.length:1}function T(R){const b=R.target;b.removeEventListener("dispose",T),P(b),b.isVideoTexture&&h.delete(b)}function C(R){const b=R.target;b.removeEventListener("dispose",C),M(b)}function P(R){const b=n.get(R);if(b.__webglInit===void 0)return;const H=R.source,k=f.get(H);if(k){const X=k[b.__cacheKey];X.usedTimes--,X.usedTimes===0&&S(R),Object.keys(k).length===0&&f.delete(H)}n.remove(R)}function S(R){const b=n.get(R);r.deleteTexture(b.__webglTexture);const H=R.source,k=f.get(H);delete k[b.__cacheKey],a.memory.textures--}function M(R){const b=n.get(R);if(R.depthTexture&&(R.depthTexture.dispose(),n.remove(R.depthTexture)),R.isWebGLCubeRenderTarget)for(let k=0;k<6;k++){if(Array.isArray(b.__webglFramebuffer[k]))for(let X=0;X=i.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+R+" texture units while this GPU supports only "+i.maxTextures),D+=1,R}function V(R){const b=[];return b.push(R.wrapS),b.push(R.wrapT),b.push(R.wrapR||0),b.push(R.magFilter),b.push(R.minFilter),b.push(R.anisotropy),b.push(R.internalFormat),b.push(R.format),b.push(R.type),b.push(R.generateMipmaps),b.push(R.premultiplyAlpha),b.push(R.flipY),b.push(R.unpackAlignment),b.push(R.colorSpace),b.join()}function J(R,b){const H=n.get(R);if(R.isVideoTexture&&me(R),R.isRenderTargetTexture===!1&&R.version>0&&H.__version!==R.version){const k=R.image;if(k===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(k.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Q(H,R,b);return}}t.bindTexture(r.TEXTURE_2D,H.__webglTexture,r.TEXTURE0+b)}function q(R,b){const H=n.get(R);if(R.version>0&&H.__version!==R.version){Q(H,R,b);return}t.bindTexture(r.TEXTURE_2D_ARRAY,H.__webglTexture,r.TEXTURE0+b)}function se(R,b){const H=n.get(R);if(R.version>0&&H.__version!==R.version){Q(H,R,b);return}t.bindTexture(r.TEXTURE_3D,H.__webglTexture,r.TEXTURE0+b)}function Z(R,b){const H=n.get(R);if(R.version>0&&H.__version!==R.version){ue(H,R,b);return}t.bindTexture(r.TEXTURE_CUBE_MAP,H.__webglTexture,r.TEXTURE0+b)}const _e={[ro]:r.REPEAT,[Nn]:r.CLAMP_TO_EDGE,[ao]:r.MIRRORED_REPEAT},be={[Qt]:r.NEAREST,[hd]:r.NEAREST_MIPMAP_NEAREST,[Cr]:r.NEAREST_MIPMAP_LINEAR,[Vt]:r.LINEAR,[Xa]:r.LINEAR_MIPMAP_NEAREST,[ni]:r.LINEAR_MIPMAP_LINEAR},Re={[lp]:r.NEVER,[pp]:r.ALWAYS,[cp]:r.LESS,[Md]:r.LEQUAL,[hp]:r.EQUAL,[fp]:r.GEQUAL,[up]:r.GREATER,[dp]:r.NOTEQUAL};function Ge(R,b){if(b.type===Mn&&e.has("OES_texture_float_linear")===!1&&(b.magFilter===Vt||b.magFilter===Xa||b.magFilter===Cr||b.magFilter===ni||b.minFilter===Vt||b.minFilter===Xa||b.minFilter===Cr||b.minFilter===ni)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),r.texParameteri(R,r.TEXTURE_WRAP_S,_e[b.wrapS]),r.texParameteri(R,r.TEXTURE_WRAP_T,_e[b.wrapT]),(R===r.TEXTURE_3D||R===r.TEXTURE_2D_ARRAY)&&r.texParameteri(R,r.TEXTURE_WRAP_R,_e[b.wrapR]),r.texParameteri(R,r.TEXTURE_MAG_FILTER,be[b.magFilter]),r.texParameteri(R,r.TEXTURE_MIN_FILTER,be[b.minFilter]),b.compareFunction&&(r.texParameteri(R,r.TEXTURE_COMPARE_MODE,r.COMPARE_REF_TO_TEXTURE),r.texParameteri(R,r.TEXTURE_COMPARE_FUNC,Re[b.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(b.magFilter===Qt||b.minFilter!==Cr&&b.minFilter!==ni||b.type===Mn&&e.has("OES_texture_float_linear")===!1)return;if(b.anisotropy>1||n.get(b).__currentAnisotropy){const H=e.get("EXT_texture_filter_anisotropic");r.texParameterf(R,H.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,i.getMaxAnisotropy())),n.get(b).__currentAnisotropy=b.anisotropy}}}function it(R,b){let H=!1;R.__webglInit===void 0&&(R.__webglInit=!0,b.addEventListener("dispose",T));const k=b.source;let X=f.get(k);X===void 0&&(X={},f.set(k,X));const W=V(b);if(W!==R.__cacheKey){X[W]===void 0&&(X[W]={texture:r.createTexture(),usedTimes:0},a.memory.textures++,H=!0),X[W].usedTimes++;const ce=X[R.__cacheKey];ce!==void 0&&(X[R.__cacheKey].usedTimes--,ce.usedTimes===0&&S(b)),R.__cacheKey=W,R.__webglTexture=X[W].texture}return H}function Q(R,b,H){let k=r.TEXTURE_2D;(b.isDataArrayTexture||b.isCompressedArrayTexture)&&(k=r.TEXTURE_2D_ARRAY),b.isData3DTexture&&(k=r.TEXTURE_3D);const X=it(R,b),W=b.source;t.bindTexture(k,R.__webglTexture,r.TEXTURE0+H);const ce=n.get(W);if(W.version!==ce.__version||X===!0){t.activeTexture(r.TEXTURE0+H);const oe=ht.getPrimaries(ht.workingColorSpace),ge=b.colorSpace===wi?null:ht.getPrimaries(b.colorSpace),Be=b.colorSpace===wi||oe===ge?r.NONE:r.BROWSER_DEFAULT_WEBGL;r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,b.flipY),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b.premultiplyAlpha),r.pixelStorei(r.UNPACK_ALIGNMENT,b.unpackAlignment),r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,Be);let $=_(b.image,!1,i.maxTextureSize);$=Ve(b,$);const ve=s.convert(b.format,b.colorSpace),Y=s.convert(b.type);let ie=v(b.internalFormat,ve,Y,b.colorSpace,b.isVideoTexture);Ge(k,b);let ae;const Ne=b.mipmaps,Pe=b.isVideoTexture!==!0,Ke=ce.__version===void 0||X===!0,U=W.dataReady,ye=w(b,$);if(b.isDepthTexture)ie=x(b.format===js,b.type),Ke&&(Pe?t.texStorage2D(r.TEXTURE_2D,1,ie,$.width,$.height):t.texImage2D(r.TEXTURE_2D,0,ie,$.width,$.height,0,ve,Y,null));else if(b.isDataTexture)if(Ne.length>0){Pe&&Ke&&t.texStorage2D(r.TEXTURE_2D,ye,ie,Ne[0].width,Ne[0].height);for(let K=0,ee=Ne.length;K0){const we=yc(ae.width,ae.height,b.format,b.type);for(const Me of b.layerUpdates){const Ye=ae.data.subarray(Me*we/ae.data.BYTES_PER_ELEMENT,(Me+1)*we/ae.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(r.TEXTURE_2D_ARRAY,K,0,0,Me,ae.width,ae.height,1,ve,Ye)}b.clearLayerUpdates()}else t.compressedTexSubImage3D(r.TEXTURE_2D_ARRAY,K,0,0,0,ae.width,ae.height,$.depth,ve,ae.data)}else t.compressedTexImage3D(r.TEXTURE_2D_ARRAY,K,ie,ae.width,ae.height,$.depth,0,ae.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Pe?U&&t.texSubImage3D(r.TEXTURE_2D_ARRAY,K,0,0,0,ae.width,ae.height,$.depth,ve,Y,ae.data):t.texImage3D(r.TEXTURE_2D_ARRAY,K,ie,ae.width,ae.height,$.depth,0,ve,Y,ae.data)}else{Pe&&Ke&&t.texStorage2D(r.TEXTURE_2D,ye,ie,Ne[0].width,Ne[0].height);for(let K=0,ee=Ne.length;K0){const K=yc($.width,$.height,b.format,b.type);for(const ee of b.layerUpdates){const we=$.data.subarray(ee*K/$.data.BYTES_PER_ELEMENT,(ee+1)*K/$.data.BYTES_PER_ELEMENT);t.texSubImage3D(r.TEXTURE_2D_ARRAY,0,0,0,ee,$.width,$.height,1,ve,Y,we)}b.clearLayerUpdates()}else t.texSubImage3D(r.TEXTURE_2D_ARRAY,0,0,0,0,$.width,$.height,$.depth,ve,Y,$.data)}else t.texImage3D(r.TEXTURE_2D_ARRAY,0,ie,$.width,$.height,$.depth,0,ve,Y,$.data);else if(b.isData3DTexture)Pe?(Ke&&t.texStorage3D(r.TEXTURE_3D,ye,ie,$.width,$.height,$.depth),U&&t.texSubImage3D(r.TEXTURE_3D,0,0,0,0,$.width,$.height,$.depth,ve,Y,$.data)):t.texImage3D(r.TEXTURE_3D,0,ie,$.width,$.height,$.depth,0,ve,Y,$.data);else if(b.isFramebufferTexture){if(Ke)if(Pe)t.texStorage2D(r.TEXTURE_2D,ye,ie,$.width,$.height);else{let K=$.width,ee=$.height;for(let we=0;we>=1,ee>>=1}}else if(Ne.length>0){if(Pe&&Ke){const K=Se(Ne[0]);t.texStorage2D(r.TEXTURE_2D,ye,ie,K.width,K.height)}for(let K=0,ee=Ne.length;K0&&ye++;const ee=Se(ve[0]);t.texStorage2D(r.TEXTURE_CUBE_MAP,ye,Ne,ee.width,ee.height)}for(let ee=0;ee<6;ee++)if($){Pe?U&&t.texSubImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+ee,0,0,0,ve[ee].width,ve[ee].height,ie,ae,ve[ee].data):t.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+ee,0,Ne,ve[ee].width,ve[ee].height,0,ie,ae,ve[ee].data);for(let we=0;we>W),Y=Math.max(1,b.height>>W);X===r.TEXTURE_3D||X===r.TEXTURE_2D_ARRAY?t.texImage3D(X,W,ge,ve,Y,b.depth,0,ce,oe,null):t.texImage2D(X,W,ge,ve,Y,0,ce,oe,null)}t.bindFramebuffer(r.FRAMEBUFFER,R),Ae(b)?o.framebufferTexture2DMultisampleEXT(r.FRAMEBUFFER,k,X,$.__webglTexture,0,re(b)):(X===r.TEXTURE_2D||X>=r.TEXTURE_CUBE_MAP_POSITIVE_X&&X<=r.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&r.framebufferTexture2D(r.FRAMEBUFFER,k,X,$.__webglTexture,W),t.bindFramebuffer(r.FRAMEBUFFER,null)}function pe(R,b,H){if(r.bindRenderbuffer(r.RENDERBUFFER,R),b.depthBuffer){const k=b.depthTexture,X=k&&k.isDepthTexture?k.type:null,W=x(b.stencilBuffer,X),ce=b.stencilBuffer?r.DEPTH_STENCIL_ATTACHMENT:r.DEPTH_ATTACHMENT,oe=re(b);Ae(b)?o.renderbufferStorageMultisampleEXT(r.RENDERBUFFER,oe,W,b.width,b.height):H?r.renderbufferStorageMultisample(r.RENDERBUFFER,oe,W,b.width,b.height):r.renderbufferStorage(r.RENDERBUFFER,W,b.width,b.height),r.framebufferRenderbuffer(r.FRAMEBUFFER,ce,r.RENDERBUFFER,R)}else{const k=b.textures;for(let X=0;X{delete b.__boundDepthTexture,delete b.__depthDisposeCallback,k.removeEventListener("dispose",X)};k.addEventListener("dispose",X),b.__depthDisposeCallback=X}b.__boundDepthTexture=k}if(R.depthTexture&&!b.__autoAllocateDepthBuffer){if(H)throw new Error("target.depthTexture not supported in Cube render targets");Oe(b.__webglFramebuffer,R)}else if(H){b.__webglDepthbuffer=[];for(let k=0;k<6;k++)if(t.bindFramebuffer(r.FRAMEBUFFER,b.__webglFramebuffer[k]),b.__webglDepthbuffer[k]===void 0)b.__webglDepthbuffer[k]=r.createRenderbuffer(),pe(b.__webglDepthbuffer[k],R,!1);else{const X=R.stencilBuffer?r.DEPTH_STENCIL_ATTACHMENT:r.DEPTH_ATTACHMENT,W=b.__webglDepthbuffer[k];r.bindRenderbuffer(r.RENDERBUFFER,W),r.framebufferRenderbuffer(r.FRAMEBUFFER,X,r.RENDERBUFFER,W)}}else if(t.bindFramebuffer(r.FRAMEBUFFER,b.__webglFramebuffer),b.__webglDepthbuffer===void 0)b.__webglDepthbuffer=r.createRenderbuffer(),pe(b.__webglDepthbuffer,R,!1);else{const k=R.stencilBuffer?r.DEPTH_STENCIL_ATTACHMENT:r.DEPTH_ATTACHMENT,X=b.__webglDepthbuffer;r.bindRenderbuffer(r.RENDERBUFFER,X),r.framebufferRenderbuffer(r.FRAMEBUFFER,k,r.RENDERBUFFER,X)}t.bindFramebuffer(r.FRAMEBUFFER,null)}function ze(R,b,H){const k=n.get(R);b!==void 0&&Ie(k.__webglFramebuffer,R,R.texture,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,0),H!==void 0&&We(R)}function Je(R){const b=R.texture,H=n.get(R),k=n.get(b);R.addEventListener("dispose",C);const X=R.textures,W=R.isWebGLCubeRenderTarget===!0,ce=X.length>1;if(ce||(k.__webglTexture===void 0&&(k.__webglTexture=r.createTexture()),k.__version=b.version,a.memory.textures++),W){H.__webglFramebuffer=[];for(let oe=0;oe<6;oe++)if(b.mipmaps&&b.mipmaps.length>0){H.__webglFramebuffer[oe]=[];for(let ge=0;ge0){H.__webglFramebuffer=[];for(let oe=0;oe0&&Ae(R)===!1){H.__webglMultisampledFramebuffer=r.createFramebuffer(),H.__webglColorRenderbuffer=[],t.bindFramebuffer(r.FRAMEBUFFER,H.__webglMultisampledFramebuffer);for(let oe=0;oe0)for(let ge=0;ge0)for(let ge=0;ge0){if(Ae(R)===!1){const b=R.textures,H=R.width,k=R.height;let X=r.COLOR_BUFFER_BIT;const W=R.stencilBuffer?r.DEPTH_STENCIL_ATTACHMENT:r.DEPTH_ATTACHMENT,ce=n.get(R),oe=b.length>1;if(oe)for(let ge=0;ge0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&b.__useRenderToTexture!==!1}function me(R){const b=a.render.frame;h.get(R)!==b&&(h.set(R,b),R.update())}function Ve(R,b){const H=R.colorSpace,k=R.format,X=R.type;return R.isCompressedTexture===!0||R.isVideoTexture===!0||H!==Qs&&H!==wi&&(ht.getTransfer(H)===vt?(k!==dn||X!==li)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",H)),b}function Se(R){return typeof HTMLImageElement<"u"&&R instanceof HTMLImageElement?(c.width=R.naturalWidth||R.width,c.height=R.naturalHeight||R.height):typeof VideoFrame<"u"&&R instanceof VideoFrame?(c.width=R.displayWidth,c.height=R.displayHeight):(c.width=R.width,c.height=R.height),c}this.allocateTextureUnit=F,this.resetTextureUnits=G,this.setTexture2D=J,this.setTexture2DArray=q,this.setTexture3D=se,this.setTextureCube=Z,this.rebindTextures=ze,this.setupRenderTarget=Je,this.updateRenderTargetMipmap=te,this.updateMultisampleRenderTarget=De,this.setupDepthRenderbuffer=We,this.setupFrameBufferTexture=Ie,this.useMultisampledRTT=Ae}function Sy(r,e){function t(n,i=wi){let s;const a=ht.getTransfer(i);if(n===li)return r.UNSIGNED_BYTE;if(n===Dc)return r.UNSIGNED_SHORT_4_4_4_4;if(n===Lc)return r.UNSIGNED_SHORT_5_5_5_1;if(n===fd)return r.UNSIGNED_INT_5_9_9_9_REV;if(n===ud)return r.BYTE;if(n===dd)return r.SHORT;if(n===kr)return r.UNSIGNED_SHORT;if(n===Pc)return r.INT;if(n===Ii)return r.UNSIGNED_INT;if(n===Mn)return r.FLOAT;if(n===si)return r.HALF_FLOAT;if(n===pd)return r.ALPHA;if(n===md)return r.RGB;if(n===dn)return r.RGBA;if(n===gd)return r.LUMINANCE;if(n===_d)return r.LUMINANCE_ALPHA;if(n===Ys)return r.DEPTH_COMPONENT;if(n===js)return r.DEPTH_STENCIL;if(n===Uc)return r.RED;if(n===So)return r.RED_INTEGER;if(n===vd)return r.RG;if(n===Nc)return r.RG_INTEGER;if(n===Fc)return r.RGBA_INTEGER;if(n===qa||n===Ya||n===Za||n===Ja)if(a===vt)if(s=e.get("WEBGL_compressed_texture_s3tc_srgb"),s!==null){if(n===qa)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===Ya)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===Za)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===Ja)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(s=e.get("WEBGL_compressed_texture_s3tc"),s!==null){if(n===qa)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===Ya)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===Za)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===Ja)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===kl||n===Vl||n===Hl||n===Gl)if(s=e.get("WEBGL_compressed_texture_pvrtc"),s!==null){if(n===kl)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===Vl)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===Hl)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===Gl)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===Wl||n===Xl||n===ql)if(s=e.get("WEBGL_compressed_texture_etc"),s!==null){if(n===Wl||n===Xl)return a===vt?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(n===ql)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(n===Yl||n===Zl||n===Jl||n===Kl||n===$l||n===jl||n===Ql||n===ec||n===tc||n===nc||n===ic||n===sc||n===rc||n===ac)if(s=e.get("WEBGL_compressed_texture_astc"),s!==null){if(n===Yl)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===Zl)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Jl)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===Kl)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===$l)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===jl)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===Ql)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===ec)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===tc)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===nc)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===ic)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===sc)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===rc)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===ac)return a===vt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===Ka||n===oc||n===lc)if(s=e.get("EXT_texture_compression_bptc"),s!==null){if(n===Ka)return a===vt?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===oc)return s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===lc)return s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===xd||n===cc||n===hc||n===uc)if(s=e.get("EXT_texture_compression_rgtc"),s!==null){if(n===Ka)return s.COMPRESSED_RED_RGTC1_EXT;if(n===cc)return s.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===hc)return s.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===uc)return s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return n===$s?r.UNSIGNED_INT_24_8:r[n]!==void 0?r[n]:null}return{convert:t}}const wy={type:"move"};class wl{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new ns,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new ns,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new A,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new A),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new ns,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new A,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new A),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const n of e.hand.values())this._getHandJoint(t,n)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,n){let i=null,s=null,a=null;const o=this._targetRay,l=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){a=!0;for(const _ of e.hand.values()){const g=t.getJointPose(_,n),m=this._getHandJoint(c,_);g!==null&&(m.matrix.fromArray(g.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.matrixWorldNeedsUpdate=!0,m.jointRadius=g.radius),m.visible=g!==null}const h=c.joints["index-finger-tip"],u=c.joints["thumb-tip"],f=h.position.distanceTo(u.position),d=.02,p=.005;c.inputState.pinching&&f>d+p?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&f<=d-p&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,n),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));o!==null&&(i=t.getPose(e.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(wy)))}return o!==null&&(o.visible=i!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const n=new ns;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}}const Ey=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,Ty=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class Ay{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,n){if(this.texture===null){const i=new Et,s=e.properties.get(i);s.__webglTexture=t.texture,(t.depthNear!==n.depthNear||t.depthFar!==n.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=i}}getMesh(e){if(this.texture!==null&&this.mesh===null){const t=e.cameras[0].viewport,n=new Xt({vertexShader:Ey,fragmentShader:Ty,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new yt(new lr(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class Cy extends ci{constructor(e,t){super();const n=this;let i=null,s=1,a=null,o="local-floor",l=1,c=null,h=null,u=null,f=null,d=null,p=null;const _=new Ay,g=t.getContextAttributes();let m=null,y=null;const v=[],x=[],w=new j;let T=null;const C=new kt;C.viewport=new pt;const P=new kt;P.viewport=new pt;const S=[C,P],M=new Ag;let D=null,G=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Q){let ue=v[Q];return ue===void 0&&(ue=new wl,v[Q]=ue),ue.getTargetRaySpace()},this.getControllerGrip=function(Q){let ue=v[Q];return ue===void 0&&(ue=new wl,v[Q]=ue),ue.getGripSpace()},this.getHand=function(Q){let ue=v[Q];return ue===void 0&&(ue=new wl,v[Q]=ue),ue.getHandSpace()};function F(Q){const ue=x.indexOf(Q.inputSource);if(ue===-1)return;const Ie=v[ue];Ie!==void 0&&(Ie.update(Q.inputSource,Q.frame,c||a),Ie.dispatchEvent({type:Q.type,data:Q.inputSource}))}function V(){i.removeEventListener("select",F),i.removeEventListener("selectstart",F),i.removeEventListener("selectend",F),i.removeEventListener("squeeze",F),i.removeEventListener("squeezestart",F),i.removeEventListener("squeezeend",F),i.removeEventListener("end",V),i.removeEventListener("inputsourceschange",J);for(let Q=0;Q=0&&(x[pe]=null,v[pe].disconnect(Ie))}for(let ue=0;ue=x.length){x.push(Ie),pe=We;break}else if(x[We]===null){x[We]=Ie,pe=We;break}if(pe===-1)break}const Oe=v[pe];Oe&&Oe.connect(Ie)}}const q=new A,se=new A;function Z(Q,ue,Ie){q.setFromMatrixPosition(ue.matrixWorld),se.setFromMatrixPosition(Ie.matrixWorld);const pe=q.distanceTo(se),Oe=ue.projectionMatrix.elements,We=Ie.projectionMatrix.elements,ze=Oe[14]/(Oe[10]-1),Je=Oe[14]/(Oe[10]+1),te=(Oe[9]+1)/Oe[5],de=(Oe[9]-1)/Oe[5],I=(Oe[8]-1)/Oe[0],De=(We[8]+1)/We[0],re=ze*I,Ae=ze*De,me=pe/(-I+De),Ve=me*-I;if(ue.matrixWorld.decompose(Q.position,Q.quaternion,Q.scale),Q.translateX(Ve),Q.translateZ(me),Q.matrixWorld.compose(Q.position,Q.quaternion,Q.scale),Q.matrixWorldInverse.copy(Q.matrixWorld).invert(),Oe[10]===-1)Q.projectionMatrix.copy(ue.projectionMatrix),Q.projectionMatrixInverse.copy(ue.projectionMatrixInverse);else{const Se=ze+me,R=Je+me,b=re-Ve,H=Ae+(pe-Ve),k=te*Je/R*Se,X=de*Je/R*Se;Q.projectionMatrix.makePerspective(b,H,k,X,Se,R),Q.projectionMatrixInverse.copy(Q.projectionMatrix).invert()}}function _e(Q,ue){ue===null?Q.matrixWorld.copy(Q.matrix):Q.matrixWorld.multiplyMatrices(ue.matrixWorld,Q.matrix),Q.matrixWorldInverse.copy(Q.matrixWorld).invert()}this.updateCamera=function(Q){if(i===null)return;let ue=Q.near,Ie=Q.far;_.texture!==null&&(_.depthNear>0&&(ue=_.depthNear),_.depthFar>0&&(Ie=_.depthFar)),M.near=P.near=C.near=ue,M.far=P.far=C.far=Ie,(D!==M.near||G!==M.far)&&(i.updateRenderState({depthNear:M.near,depthFar:M.far}),D=M.near,G=M.far),C.layers.mask=Q.layers.mask|2,P.layers.mask=Q.layers.mask|4,M.layers.mask=C.layers.mask|P.layers.mask;const pe=Q.parent,Oe=M.cameras;_e(M,pe);for(let We=0;We0&&(g.alphaTest.value=m.alphaTest);const y=e.get(m),v=y.envMap,x=y.envMapRotation;v&&(g.envMap.value=v,Zi.copy(x),Zi.x*=-1,Zi.y*=-1,Zi.z*=-1,v.isCubeTexture&&v.isRenderTargetTexture===!1&&(Zi.y*=-1,Zi.z*=-1),g.envMapRotation.value.setFromMatrix4(Ry.makeRotationFromEuler(Zi)),g.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,g.reflectivity.value=m.reflectivity,g.ior.value=m.ior,g.refractionRatio.value=m.refractionRatio),m.lightMap&&(g.lightMap.value=m.lightMap,g.lightMapIntensity.value=m.lightMapIntensity,t(m.lightMap,g.lightMapTransform)),m.aoMap&&(g.aoMap.value=m.aoMap,g.aoMapIntensity.value=m.aoMapIntensity,t(m.aoMap,g.aoMapTransform))}function a(g,m){g.diffuse.value.copy(m.color),g.opacity.value=m.opacity,m.map&&(g.map.value=m.map,t(m.map,g.mapTransform))}function o(g,m){g.dashSize.value=m.dashSize,g.totalSize.value=m.dashSize+m.gapSize,g.scale.value=m.scale}function l(g,m,y,v){g.diffuse.value.copy(m.color),g.opacity.value=m.opacity,g.size.value=m.size*y,g.scale.value=v*.5,m.map&&(g.map.value=m.map,t(m.map,g.uvTransform)),m.alphaMap&&(g.alphaMap.value=m.alphaMap,t(m.alphaMap,g.alphaMapTransform)),m.alphaTest>0&&(g.alphaTest.value=m.alphaTest)}function c(g,m){g.diffuse.value.copy(m.color),g.opacity.value=m.opacity,g.rotation.value=m.rotation,m.map&&(g.map.value=m.map,t(m.map,g.mapTransform)),m.alphaMap&&(g.alphaMap.value=m.alphaMap,t(m.alphaMap,g.alphaMapTransform)),m.alphaTest>0&&(g.alphaTest.value=m.alphaTest)}function h(g,m){g.specular.value.copy(m.specular),g.shininess.value=Math.max(m.shininess,1e-4)}function u(g,m){m.gradientMap&&(g.gradientMap.value=m.gradientMap)}function f(g,m){g.metalness.value=m.metalness,m.metalnessMap&&(g.metalnessMap.value=m.metalnessMap,t(m.metalnessMap,g.metalnessMapTransform)),g.roughness.value=m.roughness,m.roughnessMap&&(g.roughnessMap.value=m.roughnessMap,t(m.roughnessMap,g.roughnessMapTransform)),m.envMap&&(g.envMapIntensity.value=m.envMapIntensity)}function d(g,m,y){g.ior.value=m.ior,m.sheen>0&&(g.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),g.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(g.sheenColorMap.value=m.sheenColorMap,t(m.sheenColorMap,g.sheenColorMapTransform)),m.sheenRoughnessMap&&(g.sheenRoughnessMap.value=m.sheenRoughnessMap,t(m.sheenRoughnessMap,g.sheenRoughnessMapTransform))),m.clearcoat>0&&(g.clearcoat.value=m.clearcoat,g.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(g.clearcoatMap.value=m.clearcoatMap,t(m.clearcoatMap,g.clearcoatMapTransform)),m.clearcoatRoughnessMap&&(g.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap,t(m.clearcoatRoughnessMap,g.clearcoatRoughnessMapTransform)),m.clearcoatNormalMap&&(g.clearcoatNormalMap.value=m.clearcoatNormalMap,t(m.clearcoatNormalMap,g.clearcoatNormalMapTransform),g.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),m.side===fn&&g.clearcoatNormalScale.value.negate())),m.dispersion>0&&(g.dispersion.value=m.dispersion),m.iridescence>0&&(g.iridescence.value=m.iridescence,g.iridescenceIOR.value=m.iridescenceIOR,g.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],g.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(g.iridescenceMap.value=m.iridescenceMap,t(m.iridescenceMap,g.iridescenceMapTransform)),m.iridescenceThicknessMap&&(g.iridescenceThicknessMap.value=m.iridescenceThicknessMap,t(m.iridescenceThicknessMap,g.iridescenceThicknessMapTransform))),m.transmission>0&&(g.transmission.value=m.transmission,g.transmissionSamplerMap.value=y.texture,g.transmissionSamplerSize.value.set(y.width,y.height),m.transmissionMap&&(g.transmissionMap.value=m.transmissionMap,t(m.transmissionMap,g.transmissionMapTransform)),g.thickness.value=m.thickness,m.thicknessMap&&(g.thicknessMap.value=m.thicknessMap,t(m.thicknessMap,g.thicknessMapTransform)),g.attenuationDistance.value=m.attenuationDistance,g.attenuationColor.value.copy(m.attenuationColor)),m.anisotropy>0&&(g.anisotropyVector.value.set(m.anisotropy*Math.cos(m.anisotropyRotation),m.anisotropy*Math.sin(m.anisotropyRotation)),m.anisotropyMap&&(g.anisotropyMap.value=m.anisotropyMap,t(m.anisotropyMap,g.anisotropyMapTransform))),g.specularIntensity.value=m.specularIntensity,g.specularColor.value.copy(m.specularColor),m.specularColorMap&&(g.specularColorMap.value=m.specularColorMap,t(m.specularColorMap,g.specularColorMapTransform)),m.specularIntensityMap&&(g.specularIntensityMap.value=m.specularIntensityMap,t(m.specularIntensityMap,g.specularIntensityMapTransform))}function p(g,m){m.matcap&&(g.matcap.value=m.matcap)}function _(g,m){const y=e.get(m).light;g.referencePosition.value.setFromMatrixPosition(y.matrixWorld),g.nearDistance.value=y.shadow.camera.near,g.farDistance.value=y.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:i}}function Py(r,e,t,n){let i={},s={},a=[];const o=r.getParameter(r.MAX_UNIFORM_BUFFER_BINDINGS);function l(y,v){const x=v.program;n.uniformBlockBinding(y,x)}function c(y,v){let x=i[y.id];x===void 0&&(p(y),x=h(y),i[y.id]=x,y.addEventListener("dispose",g));const w=v.program;n.updateUBOMapping(y,w);const T=e.render.frame;s[y.id]!==T&&(f(y),s[y.id]=T)}function h(y){const v=u();y.__bindingPointIndex=v;const x=r.createBuffer(),w=y.__size,T=y.usage;return r.bindBuffer(r.UNIFORM_BUFFER,x),r.bufferData(r.UNIFORM_BUFFER,w,T),r.bindBuffer(r.UNIFORM_BUFFER,null),r.bindBufferBase(r.UNIFORM_BUFFER,v,x),x}function u(){for(let y=0;y0&&(x+=w-T),y.__size=x,y.__cache={},this}function _(y){const v={boundary:0,storage:0};return typeof y=="number"||typeof y=="boolean"?(v.boundary=4,v.storage=4):y.isVector2?(v.boundary=8,v.storage=8):y.isVector3||y.isColor?(v.boundary=16,v.storage=12):y.isVector4?(v.boundary=16,v.storage=16):y.isMatrix3?(v.boundary=48,v.storage=48):y.isMatrix4?(v.boundary=64,v.storage=64):y.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",y),v}function g(y){const v=y.target;v.removeEventListener("dispose",g);const x=a.indexOf(v.__bindingPointIndex);a.splice(x,1),r.deleteBuffer(i[v.id]),delete i[v.id],delete s[v.id]}function m(){for(const y in i)r.deleteBuffer(i[y]);a=[],i={},s={}}return{bind:l,update:c,dispose:m}}class Dy{constructor(e={}){const{canvas:t=Dp(),context:n=null,depth:i=!0,stencil:s=!1,alpha:a=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1,reverseDepthBuffer:f=!1}=e;this.isWebGLRenderer=!0;let d;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");d=n.getContextAttributes().alpha}else d=a;const p=new Uint32Array(4),_=new Int32Array(4);let g=null,m=null;const y=[],v=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=xn,this.toneMapping=Ti,this.toneMappingExposure=1;const x=this;let w=!1,T=0,C=0,P=null,S=-1,M=null;const D=new pt,G=new pt;let F=null;const V=new ne(0);let J=0,q=t.width,se=t.height,Z=1,_e=null,be=null;const Re=new pt(0,0,q,se),Ge=new pt(0,0,q,se);let it=!1;const Q=new To;let ue=!1,Ie=!1;this.transmissionResolutionScale=1;const pe=new Ze,Oe=new Ze,We=new A,ze=new pt,Je={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let te=!1;function de(){return P===null?Z:1}let I=n;function De(E,B){return t.getContext(E,B)}try{const E={alpha:!0,depth:i,stencil:s,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:u};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${Rc}`),t.addEventListener("webglcontextlost",ee,!1),t.addEventListener("webglcontextrestored",we,!1),t.addEventListener("webglcontextcreationerror",Me,!1),I===null){const B="webgl2";if(I=De(B,E),I===null)throw De(B)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(E){throw console.error("THREE.WebGLRenderer: "+E.message),E}let re,Ae,me,Ve,Se,R,b,H,k,X,W,ce,oe,ge,Be,$,ve,Y,ie,ae,Ne,Pe,Ke,U;function ye(){re=new Vv(I),re.init(),Pe=new Sy(I,re),Ae=new Nv(I,re,e,Pe),me=new My(I,re),Ae.reverseDepthBuffer&&f&&me.buffers.depth.setReversed(!0),Ve=new Wv(I),Se=new ly,R=new by(I,re,me,Se,Ae,Pe,Ve),b=new Ov(x),H=new kv(x),k=new $g(I),Ke=new Lv(I,k),X=new Hv(I,k,Ve,Ke),W=new qv(I,X,k,Ve),ie=new Xv(I,Ae,R),$=new Fv(Se),ce=new oy(x,b,H,re,Ae,Ke,$),oe=new Iy(x,Se),ge=new hy,Be=new gy(re),Y=new Dv(x,b,H,me,W,d,l),ve=new xy(x,W,Ae),U=new Py(I,Ve,Ae,me),ae=new Uv(I,re,Ve),Ne=new Gv(I,re,Ve),Ve.programs=ce.programs,x.capabilities=Ae,x.extensions=re,x.properties=Se,x.renderLists=ge,x.shadowMap=ve,x.state=me,x.info=Ve}ye();const K=new Cy(x,I);this.xr=K,this.getContext=function(){return I},this.getContextAttributes=function(){return I.getContextAttributes()},this.forceContextLoss=function(){const E=re.get("WEBGL_lose_context");E&&E.loseContext()},this.forceContextRestore=function(){const E=re.get("WEBGL_lose_context");E&&E.restoreContext()},this.getPixelRatio=function(){return Z},this.setPixelRatio=function(E){E!==void 0&&(Z=E,this.setSize(q,se,!1))},this.getSize=function(E){return E.set(q,se)},this.setSize=function(E,B,N=!0){if(K.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}q=E,se=B,t.width=Math.floor(E*Z),t.height=Math.floor(B*Z),N===!0&&(t.style.width=E+"px",t.style.height=B+"px"),this.setViewport(0,0,E,B)},this.getDrawingBufferSize=function(E){return E.set(q*Z,se*Z).floor()},this.setDrawingBufferSize=function(E,B,N){q=E,se=B,Z=N,t.width=Math.floor(E*N),t.height=Math.floor(B*N),this.setViewport(0,0,E,B)},this.getCurrentViewport=function(E){return E.copy(D)},this.getViewport=function(E){return E.copy(Re)},this.setViewport=function(E,B,N,z){E.isVector4?Re.set(E.x,E.y,E.z,E.w):Re.set(E,B,N,z),me.viewport(D.copy(Re).multiplyScalar(Z).round())},this.getScissor=function(E){return E.copy(Ge)},this.setScissor=function(E,B,N,z){E.isVector4?Ge.set(E.x,E.y,E.z,E.w):Ge.set(E,B,N,z),me.scissor(G.copy(Ge).multiplyScalar(Z).round())},this.getScissorTest=function(){return it},this.setScissorTest=function(E){me.setScissorTest(it=E)},this.setOpaqueSort=function(E){_e=E},this.setTransparentSort=function(E){be=E},this.getClearColor=function(E){return E.copy(Y.getClearColor())},this.setClearColor=function(){Y.setClearColor.apply(Y,arguments)},this.getClearAlpha=function(){return Y.getClearAlpha()},this.setClearAlpha=function(){Y.setClearAlpha.apply(Y,arguments)},this.clear=function(E=!0,B=!0,N=!0){let z=0;if(E){let O=!1;if(P!==null){const he=P.texture.format;O=he===Fc||he===Nc||he===So}if(O){const he=P.texture.type,Ce=he===li||he===Ii||he===kr||he===$s||he===Dc||he===Lc,Le=Y.getClearColor(),Ue=Y.getClearAlpha(),$e=Le.r,je=Le.g,He=Le.b;Ce?(p[0]=$e,p[1]=je,p[2]=He,p[3]=Ue,I.clearBufferuiv(I.COLOR,0,p)):(_[0]=$e,_[1]=je,_[2]=He,_[3]=Ue,I.clearBufferiv(I.COLOR,0,_))}else z|=I.COLOR_BUFFER_BIT}B&&(z|=I.DEPTH_BUFFER_BIT),N&&(z|=I.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),I.clear(z)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",ee,!1),t.removeEventListener("webglcontextrestored",we,!1),t.removeEventListener("webglcontextcreationerror",Me,!1),Y.dispose(),ge.dispose(),Be.dispose(),Se.dispose(),b.dispose(),H.dispose(),W.dispose(),Ke.dispose(),U.dispose(),ce.dispose(),K.dispose(),K.removeEventListener("sessionstart",Di),K.removeEventListener("sessionend",ui),En.stop()};function ee(E){E.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),w=!0}function we(){console.log("THREE.WebGLRenderer: Context Restored."),w=!1;const E=Ve.autoReset,B=ve.enabled,N=ve.autoUpdate,z=ve.needsUpdate,O=ve.type;ye(),Ve.autoReset=E,ve.enabled=B,ve.autoUpdate=N,ve.needsUpdate=z,ve.type=O}function Me(E){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",E.statusMessage)}function Ye(E){const B=E.target;B.removeEventListener("dispose",Ye),Mt(B)}function Mt(E){St(E),Se.remove(E)}function St(E){const B=Se.get(E).programs;B!==void 0&&(B.forEach(function(N){ce.releaseProgram(N)}),E.isShaderMaterial&&ce.releaseShaderCache(E))}this.renderBufferDirect=function(E,B,N,z,O,he){B===null&&(B=Je);const Ce=O.isMesh&&O.matrixWorld.determinant()<0,Le=Nt(E,B,N,z,O);me.setMaterial(z,Ce);let Ue=N.index,$e=1;if(z.wireframe===!0){if(Ue=X.getWireframeAttribute(N),Ue===void 0)return;$e=2}const je=N.drawRange,He=N.attributes.position;let lt=je.start*$e,gt=(je.start+je.count)*$e;he!==null&&(lt=Math.max(lt,he.start*$e),gt=Math.min(gt,(he.start+he.count)*$e)),Ue!==null?(lt=Math.max(lt,0),gt=Math.min(gt,Ue.count)):He!=null&&(lt=Math.max(lt,0),gt=Math.min(gt,He.count));const Dt=gt-lt;if(Dt<0||Dt===1/0)return;Ke.setup(O,z,Le,N,Ue);let Tt,dt=ae;if(Ue!==null&&(Tt=k.get(Ue),dt=Ne,dt.setIndex(Tt)),O.isMesh)z.wireframe===!0?(me.setLineWidth(z.wireframeLinewidth*de()),dt.setMode(I.LINES)):dt.setMode(I.TRIANGLES);else if(O.isLine){let Xe=z.linewidth;Xe===void 0&&(Xe=1),me.setLineWidth(Xe*de()),O.isLineSegments?dt.setMode(I.LINES):O.isLineLoop?dt.setMode(I.LINE_LOOP):dt.setMode(I.LINE_STRIP)}else O.isPoints?dt.setMode(I.POINTS):O.isSprite&&dt.setMode(I.TRIANGLES);if(O.isBatchedMesh)if(O._multiDrawInstances!==null)dt.renderMultiDrawInstances(O._multiDrawStarts,O._multiDrawCounts,O._multiDrawCount,O._multiDrawInstances);else if(re.get("WEBGL_multi_draw"))dt.renderMultiDraw(O._multiDrawStarts,O._multiDrawCounts,O._multiDrawCount);else{const Xe=O._multiDrawStarts,Gt=O._multiDrawCounts,_t=O._multiDrawCount,Pn=Ue?k.get(Ue).bytesPerElement:1,fs=Se.get(z).currentProgram.getUniforms();for(let gn=0;gn<_t;gn++)fs.setValue(I,"_gl_DrawID",gn),dt.render(Xe[gn]/Pn,Gt[gn])}else if(O.isInstancedMesh)dt.renderInstances(lt,Dt,O.count);else if(N.isInstancedBufferGeometry){const Xe=N._maxInstanceCount!==void 0?N._maxInstanceCount:1/0,Gt=Math.min(N.instanceCount,Xe);dt.renderInstances(lt,Dt,Gt)}else dt.render(lt,Dt)};function at(E,B,N){E.transparent===!0&&E.side===Bn&&E.forceSinglePass===!1?(E.side=fn,E.needsUpdate=!0,Fn(E,B,N),E.side=Ci,E.needsUpdate=!0,Fn(E,B,N),E.side=Bn):Fn(E,B,N)}this.compile=function(E,B,N=null){N===null&&(N=E),m=Be.get(N),m.init(B),v.push(m),N.traverseVisible(function(O){O.isLight&&O.layers.test(B.layers)&&(m.pushLight(O),O.castShadow&&m.pushShadow(O))}),E!==N&&E.traverseVisible(function(O){O.isLight&&O.layers.test(B.layers)&&(m.pushLight(O),O.castShadow&&m.pushShadow(O))}),m.setupLights();const z=new Set;return E.traverse(function(O){if(!(O.isMesh||O.isPoints||O.isLine||O.isSprite))return;const he=O.material;if(he)if(Array.isArray(he))for(let Ce=0;Ce{function he(){if(z.forEach(function(Ce){Se.get(Ce).currentProgram.isReady()&&z.delete(Ce)}),z.size===0){O(E);return}setTimeout(he,10)}re.get("KHR_parallel_shader_compile")!==null?he():setTimeout(he,10)})};let Yt=null;function Ht(E){Yt&&Yt(E)}function Di(){En.stop()}function ui(){En.start()}const En=new tf;En.setAnimationLoop(Ht),typeof self<"u"&&En.setContext(self),this.setAnimationLoop=function(E){Yt=E,K.setAnimationLoop(E),E===null?En.stop():En.start()},K.addEventListener("sessionstart",Di),K.addEventListener("sessionend",ui),this.render=function(E,B){if(B!==void 0&&B.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(w===!0)return;if(E.matrixWorldAutoUpdate===!0&&E.updateMatrixWorld(),B.parent===null&&B.matrixWorldAutoUpdate===!0&&B.updateMatrixWorld(),K.enabled===!0&&K.isPresenting===!0&&(K.cameraAutoUpdate===!0&&K.updateCamera(B),B=K.getCamera()),E.isScene===!0&&E.onBeforeRender(x,E,B,P),m=Be.get(E,v.length),m.init(B),v.push(m),Oe.multiplyMatrices(B.projectionMatrix,B.matrixWorldInverse),Q.setFromProjectionMatrix(Oe),Ie=this.localClippingEnabled,ue=$.init(this.clippingPlanes,Ie),g=ge.get(E,y.length),g.init(),y.push(g),K.enabled===!0&&K.isPresenting===!0){const he=x.xr.getDepthSensingMesh();he!==null&&di(he,B,-1/0,x.sortObjects)}di(E,B,0,x.sortObjects),g.finish(),x.sortObjects===!0&&g.sort(_e,be),te=K.enabled===!1||K.isPresenting===!1||K.hasDepthSensing()===!1,te&&Y.addToRenderList(g,E),this.info.render.frame++,ue===!0&&$.beginShadows();const N=m.state.shadowsArray;ve.render(N,E,B),ue===!0&&$.endShadows(),this.info.autoReset===!0&&this.info.reset();const z=g.opaque,O=g.transmissive;if(m.setupLights(),B.isArrayCamera){const he=B.cameras;if(O.length>0)for(let Ce=0,Le=he.length;Ce0&&Wn(z,O,E,B),te&&Y.render(E),Li(g,E,B);P!==null&&C===0&&(R.updateMultisampleRenderTarget(P),R.updateRenderTargetMipmap(P)),E.isScene===!0&&E.onAfterRender(x,E,B),Ke.resetDefaultState(),S=-1,M=null,v.pop(),v.length>0?(m=v[v.length-1],ue===!0&&$.setGlobalState(x.clippingPlanes,m.state.camera)):m=null,y.pop(),y.length>0?g=y[y.length-1]:g=null};function di(E,B,N,z){if(E.visible===!1)return;if(E.layers.test(B.layers)){if(E.isGroup)N=E.renderOrder;else if(E.isLOD)E.autoUpdate===!0&&E.update(B);else if(E.isLight)m.pushLight(E),E.castShadow&&m.pushShadow(E);else if(E.isSprite){if(!E.frustumCulled||Q.intersectsSprite(E)){z&&ze.setFromMatrixPosition(E.matrixWorld).applyMatrix4(Oe);const Ce=W.update(E),Le=E.material;Le.visible&&g.push(E,Ce,Le,N,ze.z,null)}}else if((E.isMesh||E.isLine||E.isPoints)&&(!E.frustumCulled||Q.intersectsObject(E))){const Ce=W.update(E),Le=E.material;if(z&&(E.boundingSphere!==void 0?(E.boundingSphere===null&&E.computeBoundingSphere(),ze.copy(E.boundingSphere.center)):(Ce.boundingSphere===null&&Ce.computeBoundingSphere(),ze.copy(Ce.boundingSphere.center)),ze.applyMatrix4(E.matrixWorld).applyMatrix4(Oe)),Array.isArray(Le)){const Ue=Ce.groups;for(let $e=0,je=Ue.length;$e0&&Xn(O,B,N),he.length>0&&Xn(he,B,N),Ce.length>0&&Xn(Ce,B,N),me.buffers.depth.setTest(!0),me.buffers.depth.setMask(!0),me.buffers.color.setMask(!0),me.setPolygonOffset(!1)}function Wn(E,B,N,z){if((N.isScene===!0?N.overrideMaterial:null)!==null)return;m.state.transmissionRenderTarget[z.id]===void 0&&(m.state.transmissionRenderTarget[z.id]=new Sn(1,1,{generateMipmaps:!0,type:re.has("EXT_color_buffer_half_float")||re.has("EXT_color_buffer_float")?si:li,minFilter:ni,samples:4,stencilBuffer:s,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:ht.workingColorSpace}));const he=m.state.transmissionRenderTarget[z.id],Ce=z.viewport||D;he.setSize(Ce.z*x.transmissionResolutionScale,Ce.w*x.transmissionResolutionScale);const Le=x.getRenderTarget();x.setRenderTarget(he),x.getClearColor(V),J=x.getClearAlpha(),J<1&&x.setClearColor(16777215,.5),x.clear(),te&&Y.render(N);const Ue=x.toneMapping;x.toneMapping=Ti;const $e=z.viewport;if(z.viewport!==void 0&&(z.viewport=void 0),m.setupLightsView(z),ue===!0&&$.setGlobalState(x.clippingPlanes,z),Xn(E,N,z),R.updateMultisampleRenderTarget(he),R.updateRenderTargetMipmap(he),re.has("WEBGL_multisampled_render_to_texture")===!1){let je=!1;for(let He=0,lt=B.length;He0),He=!!N.morphAttributes.position,lt=!!N.morphAttributes.normal,gt=!!N.morphAttributes.color;let Dt=Ti;z.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(Dt=x.toneMapping);const Tt=N.morphAttributes.position||N.morphAttributes.normal||N.morphAttributes.color,dt=Tt!==void 0?Tt.length:0,Xe=Se.get(z),Gt=m.state.lights;if(ue===!0&&(Ie===!0||E!==M)){const en=E===M&&z.id===S;$.setState(z,E,en)}let _t=!1;z.version===Xe.__version?(Xe.needsLights&&Xe.lightsStateVersion!==Gt.state.version||Xe.outputColorSpace!==Le||O.isBatchedMesh&&Xe.batching===!1||!O.isBatchedMesh&&Xe.batching===!0||O.isBatchedMesh&&Xe.batchingColor===!0&&O.colorTexture===null||O.isBatchedMesh&&Xe.batchingColor===!1&&O.colorTexture!==null||O.isInstancedMesh&&Xe.instancing===!1||!O.isInstancedMesh&&Xe.instancing===!0||O.isSkinnedMesh&&Xe.skinning===!1||!O.isSkinnedMesh&&Xe.skinning===!0||O.isInstancedMesh&&Xe.instancingColor===!0&&O.instanceColor===null||O.isInstancedMesh&&Xe.instancingColor===!1&&O.instanceColor!==null||O.isInstancedMesh&&Xe.instancingMorph===!0&&O.morphTexture===null||O.isInstancedMesh&&Xe.instancingMorph===!1&&O.morphTexture!==null||Xe.envMap!==Ue||z.fog===!0&&Xe.fog!==he||Xe.numClippingPlanes!==void 0&&(Xe.numClippingPlanes!==$.numPlanes||Xe.numIntersection!==$.numIntersection)||Xe.vertexAlphas!==$e||Xe.vertexTangents!==je||Xe.morphTargets!==He||Xe.morphNormals!==lt||Xe.morphColors!==gt||Xe.toneMapping!==Dt||Xe.morphTargetsCount!==dt)&&(_t=!0):(_t=!0,Xe.__version=z.version);let Pn=Xe.currentProgram;_t===!0&&(Pn=Fn(z,B,O));let fs=!1,gn=!1,pr=!1;const bt=Pn.getUniforms(),An=Xe.uniforms;if(me.useProgram(Pn.program)&&(fs=!0,gn=!0,pr=!0),z.id!==S&&(S=z.id,gn=!0),fs||M!==E){me.buffers.depth.getReversed()?(pe.copy(E.projectionMatrix),Up(pe),Np(pe),bt.setValue(I,"projectionMatrix",pe)):bt.setValue(I,"projectionMatrix",E.projectionMatrix),bt.setValue(I,"viewMatrix",E.matrixWorldInverse);const ln=bt.map.cameraPosition;ln!==void 0&&ln.setValue(I,We.setFromMatrixPosition(E.matrixWorld)),Ae.logarithmicDepthBuffer&&bt.setValue(I,"logDepthBufFC",2/(Math.log(E.far+1)/Math.LN2)),(z.isMeshPhongMaterial||z.isMeshToonMaterial||z.isMeshLambertMaterial||z.isMeshBasicMaterial||z.isMeshStandardMaterial||z.isShaderMaterial)&&bt.setValue(I,"isOrthographic",E.isOrthographicCamera===!0),M!==E&&(M=E,gn=!0,pr=!0)}if(O.isSkinnedMesh){bt.setOptional(I,O,"bindMatrix"),bt.setOptional(I,O,"bindMatrixInverse");const en=O.skeleton;en&&(en.boneTexture===null&&en.computeBoneTexture(),bt.setValue(I,"boneTexture",en.boneTexture,R))}O.isBatchedMesh&&(bt.setOptional(I,O,"batchingTexture"),bt.setValue(I,"batchingTexture",O._matricesTexture,R),bt.setOptional(I,O,"batchingIdTexture"),bt.setValue(I,"batchingIdTexture",O._indirectTexture,R),bt.setOptional(I,O,"batchingColorTexture"),O._colorsTexture!==null&&bt.setValue(I,"batchingColorTexture",O._colorsTexture,R));const Cn=N.morphAttributes;if((Cn.position!==void 0||Cn.normal!==void 0||Cn.color!==void 0)&&ie.update(O,N,Pn),(gn||Xe.receiveShadow!==O.receiveShadow)&&(Xe.receiveShadow=O.receiveShadow,bt.setValue(I,"receiveShadow",O.receiveShadow)),z.isMeshGouraudMaterial&&z.envMap!==null&&(An.envMap.value=Ue,An.flipEnvMap.value=Ue.isCubeTexture&&Ue.isRenderTargetTexture===!1?-1:1),z.isMeshStandardMaterial&&z.envMap===null&&B.environment!==null&&(An.envMapIntensity.value=B.environmentIntensity),gn&&(bt.setValue(I,"toneMappingExposure",x.toneMappingExposure),Xe.needsLights&&mn(An,pr),he&&z.fog===!0&&oe.refreshFogUniforms(An,he),oe.refreshMaterialUniforms(An,z,Z,se,m.state.transmissionRenderTarget[E.id]),$a.upload(I,Ui(Xe),An,R)),z.isShaderMaterial&&z.uniformsNeedUpdate===!0&&($a.upload(I,Ui(Xe),An,R),z.uniformsNeedUpdate=!1),z.isSpriteMaterial&&bt.setValue(I,"center",O.center),bt.setValue(I,"modelViewMatrix",O.modelViewMatrix),bt.setValue(I,"normalMatrix",O.normalMatrix),bt.setValue(I,"modelMatrix",O.matrixWorld),z.isShaderMaterial||z.isRawShaderMaterial){const en=z.uniformsGroups;for(let ln=0,No=en.length;ln0&&R.useMultisampledRTT(E)===!1?O=Se.get(E).__webglMultisampledFramebuffer:Array.isArray(je)?O=je[N]:O=je,D.copy(E.viewport),G.copy(E.scissor),F=E.scissorTest}else D.copy(Re).multiplyScalar(Z).floor(),G.copy(Ge).multiplyScalar(Z).floor(),F=it;if(N!==0&&(O=pi),me.bindFramebuffer(I.FRAMEBUFFER,O)&&z&&me.drawBuffers(E,O),me.viewport(D),me.scissor(G),me.setScissorTest(F),he){const Ue=Se.get(E.texture);I.framebufferTexture2D(I.FRAMEBUFFER,I.COLOR_ATTACHMENT0,I.TEXTURE_CUBE_MAP_POSITIVE_X+B,Ue.__webglTexture,N)}else if(Ce){const Ue=Se.get(E.texture),$e=B;I.framebufferTextureLayer(I.FRAMEBUFFER,I.COLOR_ATTACHMENT0,Ue.__webglTexture,N,$e)}else if(E!==null&&N!==0){const Ue=Se.get(E.texture);I.framebufferTexture2D(I.FRAMEBUFFER,I.COLOR_ATTACHMENT0,I.TEXTURE_2D,Ue.__webglTexture,N)}S=-1},this.readRenderTargetPixels=function(E,B,N,z,O,he,Ce){if(!(E&&E.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Le=Se.get(E).__webglFramebuffer;if(E.isWebGLCubeRenderTarget&&Ce!==void 0&&(Le=Le[Ce]),Le){me.bindFramebuffer(I.FRAMEBUFFER,Le);try{const Ue=E.texture,$e=Ue.format,je=Ue.type;if(!Ae.textureFormatReadable($e)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Ae.textureTypeReadable(je)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}B>=0&&B<=E.width-z&&N>=0&&N<=E.height-O&&I.readPixels(B,N,z,O,Pe.convert($e),Pe.convert(je),he)}finally{const Ue=P!==null?Se.get(P).__webglFramebuffer:null;me.bindFramebuffer(I.FRAMEBUFFER,Ue)}}},this.readRenderTargetPixelsAsync=async function(E,B,N,z,O,he,Ce){if(!(E&&E.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Le=Se.get(E).__webglFramebuffer;if(E.isWebGLCubeRenderTarget&&Ce!==void 0&&(Le=Le[Ce]),Le){const Ue=E.texture,$e=Ue.format,je=Ue.type;if(!Ae.textureFormatReadable($e))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Ae.textureTypeReadable(je))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(B>=0&&B<=E.width-z&&N>=0&&N<=E.height-O){me.bindFramebuffer(I.FRAMEBUFFER,Le);const He=I.createBuffer();I.bindBuffer(I.PIXEL_PACK_BUFFER,He),I.bufferData(I.PIXEL_PACK_BUFFER,he.byteLength,I.STREAM_READ),I.readPixels(B,N,z,O,Pe.convert($e),Pe.convert(je),0);const lt=P!==null?Se.get(P).__webglFramebuffer:null;me.bindFramebuffer(I.FRAMEBUFFER,lt);const gt=I.fenceSync(I.SYNC_GPU_COMMANDS_COMPLETE,0);return I.flush(),await Lp(I,gt,4),I.bindBuffer(I.PIXEL_PACK_BUFFER,He),I.getBufferSubData(I.PIXEL_PACK_BUFFER,0,he),I.deleteBuffer(He),I.deleteSync(gt),he}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(E,B=null,N=0){E.isTexture!==!0&&(Fs("WebGLRenderer: copyFramebufferToTexture function signature has changed."),B=arguments[0]||null,E=arguments[1]);const z=Math.pow(2,-N),O=Math.floor(E.image.width*z),he=Math.floor(E.image.height*z),Ce=B!==null?B.x:0,Le=B!==null?B.y:0;R.setTexture2D(E,0),I.copyTexSubImage2D(I.TEXTURE_2D,N,0,0,Ce,Le,O,he),me.unbindTexture()};const fr=I.createFramebuffer(),ds=I.createFramebuffer();this.copyTextureToTexture=function(E,B,N=null,z=null,O=0,he=null){E.isTexture!==!0&&(Fs("WebGLRenderer: copyTextureToTexture function signature has changed."),z=arguments[0]||null,E=arguments[1],B=arguments[2],he=arguments[3]||0,N=null),he===null&&(O!==0?(Fs("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),he=O,O=0):he=0);let Ce,Le,Ue,$e,je,He,lt,gt,Dt;const Tt=E.isCompressedTexture?E.mipmaps[he]:E.image;if(N!==null)Ce=N.max.x-N.min.x,Le=N.max.y-N.min.y,Ue=N.isBox3?N.max.z-N.min.z:1,$e=N.min.x,je=N.min.y,He=N.isBox3?N.min.z:0;else{const Cn=Math.pow(2,-O);Ce=Math.floor(Tt.width*Cn),Le=Math.floor(Tt.height*Cn),E.isDataArrayTexture?Ue=Tt.depth:E.isData3DTexture?Ue=Math.floor(Tt.depth*Cn):Ue=1,$e=0,je=0,He=0}z!==null?(lt=z.x,gt=z.y,Dt=z.z):(lt=0,gt=0,Dt=0);const dt=Pe.convert(B.format),Xe=Pe.convert(B.type);let Gt;B.isData3DTexture?(R.setTexture3D(B,0),Gt=I.TEXTURE_3D):B.isDataArrayTexture||B.isCompressedArrayTexture?(R.setTexture2DArray(B,0),Gt=I.TEXTURE_2D_ARRAY):(R.setTexture2D(B,0),Gt=I.TEXTURE_2D),I.pixelStorei(I.UNPACK_FLIP_Y_WEBGL,B.flipY),I.pixelStorei(I.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),I.pixelStorei(I.UNPACK_ALIGNMENT,B.unpackAlignment);const _t=I.getParameter(I.UNPACK_ROW_LENGTH),Pn=I.getParameter(I.UNPACK_IMAGE_HEIGHT),fs=I.getParameter(I.UNPACK_SKIP_PIXELS),gn=I.getParameter(I.UNPACK_SKIP_ROWS),pr=I.getParameter(I.UNPACK_SKIP_IMAGES);I.pixelStorei(I.UNPACK_ROW_LENGTH,Tt.width),I.pixelStorei(I.UNPACK_IMAGE_HEIGHT,Tt.height),I.pixelStorei(I.UNPACK_SKIP_PIXELS,$e),I.pixelStorei(I.UNPACK_SKIP_ROWS,je),I.pixelStorei(I.UNPACK_SKIP_IMAGES,He);const bt=E.isDataArrayTexture||E.isData3DTexture,An=B.isDataArrayTexture||B.isData3DTexture;if(E.isDepthTexture){const Cn=Se.get(E),en=Se.get(B),ln=Se.get(Cn.__renderTarget),No=Se.get(en.__renderTarget);me.bindFramebuffer(I.READ_FRAMEBUFFER,ln.__webglFramebuffer),me.bindFramebuffer(I.DRAW_FRAMEBUFFER,No.__webglFramebuffer);for(let Ni=0;NiMath.PI&&(n-=hn),i<-Math.PI?i+=hn:i>Math.PI&&(i-=hn),n<=i?this._spherical.theta=Math.max(n,Math.min(i,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+i)/2?Math.max(n,this._spherical.theta):Math.min(i,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let s=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const a=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),s=a!=this._spherical.radius}if(Ft.setFromSpherical(this._spherical),Ft.applyQuaternion(this._quatInverse),t.copy(this.target).add(Ft),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let a=null;if(this.object.isPerspectiveCamera){const o=Ft.length();a=this._clampDistance(o*this._scale);const l=o-a;this.object.position.addScaledVector(this._dollyDirection,l),this.object.updateMatrixWorld(),s=!!l}else if(this.object.isOrthographicCamera){const o=new A(this._mouse.x,this._mouse.y,0);o.unproject(this.object);const l=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),s=l!==this.object.zoom;const c=new A(this._mouse.x,this._mouse.y,0);c.unproject(this.object),this.object.position.sub(c).add(o),this.object.updateMatrixWorld(),a=Ft.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;a!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(a).add(this.object.position):(Va.origin.copy(this.object.position),Va.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(Va.direction))El||8*(1-this._lastQuaternion.dot(this.object.quaternion))>El||this._lastTargetPosition.distanceToSquared(this.target)>El?(this.dispatchEvent(td),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(e){return e!==null?hn/60*this.autoRotateSpeed*e:hn/60/60*this.autoRotateSpeed}_getZoomScale(e){const t=Math.abs(e*.01);return Math.pow(.95,this.zoomSpeed*t)}_rotateLeft(e){this._sphericalDelta.theta-=e}_rotateUp(e){this._sphericalDelta.phi-=e}_panLeft(e,t){Ft.setFromMatrixColumn(t,0),Ft.multiplyScalar(-e),this._panOffset.add(Ft)}_panUp(e,t){this.screenSpacePanning===!0?Ft.setFromMatrixColumn(t,1):(Ft.setFromMatrixColumn(t,0),Ft.crossVectors(this.object.up,Ft)),Ft.multiplyScalar(e),this._panOffset.add(Ft)}_pan(e,t){const n=this.domElement;if(this.object.isPerspectiveCamera){const i=this.object.position;Ft.copy(i).sub(this.target);let s=Ft.length();s*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*e*s/n.clientHeight,this.object.matrix),this._panUp(2*t*s/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(e*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(t*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(e,t){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),i=e-n.left,s=t-n.top,a=n.width,o=n.height;this._mouse.x=i/a*2-1,this._mouse.y=-(s/o)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(e){return Math.max(this.minDistance,Math.min(this.maxDistance,e))}_handleMouseDownRotate(e){this._rotateStart.set(e.clientX,e.clientY)}_handleMouseDownDolly(e){this._updateZoomParameters(e.clientX,e.clientX),this._dollyStart.set(e.clientX,e.clientY)}_handleMouseDownPan(e){this._panStart.set(e.clientX,e.clientY)}_handleMouseMoveRotate(e){this._rotateEnd.set(e.clientX,e.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this._rotateLeft(hn*this._rotateDelta.x/t.clientHeight),this._rotateUp(hn*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(e){this._dollyEnd.set(e.clientX,e.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(e){this._panEnd.set(e.clientX,e.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(e){this._updateZoomParameters(e.clientX,e.clientY),e.deltaY<0?this._dollyIn(this._getZoomScale(e.deltaY)):e.deltaY>0&&this._dollyOut(this._getZoomScale(e.deltaY)),this.update()}_handleKeyDown(e){let t=!1;switch(e.code){case this.keys.UP:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(hn*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),t=!0;break;case this.keys.BOTTOM:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(-hn*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),t=!0;break;case this.keys.LEFT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(hn*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),t=!0;break;case this.keys.RIGHT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(-hn*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),t=!0;break}t&&(e.preventDefault(),this.update())}_handleTouchStartRotate(e){if(this._pointers.length===1)this._rotateStart.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),i=.5*(e.pageY+t.y);this._rotateStart.set(n,i)}}_handleTouchStartPan(e){if(this._pointers.length===1)this._panStart.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),i=.5*(e.pageY+t.y);this._panStart.set(n,i)}}_handleTouchStartDolly(e){const t=this._getSecondPointerPosition(e),n=e.pageX-t.x,i=e.pageY-t.y,s=Math.sqrt(n*n+i*i);this._dollyStart.set(0,s)}_handleTouchStartDollyPan(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enablePan&&this._handleTouchStartPan(e)}_handleTouchStartDollyRotate(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enableRotate&&this._handleTouchStartRotate(e)}_handleTouchMoveRotate(e){if(this._pointers.length==1)this._rotateEnd.set(e.pageX,e.pageY);else{const n=this._getSecondPointerPosition(e),i=.5*(e.pageX+n.x),s=.5*(e.pageY+n.y);this._rotateEnd.set(i,s)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this._rotateLeft(hn*this._rotateDelta.x/t.clientHeight),this._rotateUp(hn*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(e){if(this._pointers.length===1)this._panEnd.set(e.pageX,e.pageY);else{const t=this._getSecondPointerPosition(e),n=.5*(e.pageX+t.x),i=.5*(e.pageY+t.y);this._panEnd.set(n,i)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(e){const t=this._getSecondPointerPosition(e),n=e.pageX-t.x,i=e.pageY-t.y,s=Math.sqrt(n*n+i*i);this._dollyEnd.set(0,s),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const a=(e.pageX+t.x)*.5,o=(e.pageY+t.y)*.5;this._updateZoomParameters(a,o)}_handleTouchMoveDollyPan(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enablePan&&this._handleTouchMovePan(e)}_handleTouchMoveDollyRotate(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enableRotate&&this._handleTouchMoveRotate(e)}_addPointer(e){this._pointers.push(e.pointerId)}_removePointer(e){delete this._pointerPositions[e.pointerId];for(let t=0;t + varying vec2 vUv; + uniform sampler2D colorTexture; + uniform vec2 invSize; + uniform vec2 direction; + uniform float gaussianCoefficients[KERNEL_RADIUS]; + + void main() { + float weightSum = gaussianCoefficients[0]; + vec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum; + for( int i = 1; i < KERNEL_RADIUS; i ++ ) { + float x = float(i); + float w = gaussianCoefficients[i]; + vec2 uvOffset = direction * invSize * x; + vec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb; + vec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb; + diffuseSum += (sample1 + sample2) * w; + weightSum += 2.0 * w; + } + gl_FragColor = vec4(diffuseSum/weightSum, 1.0); + }`})}getCompositeMaterial(e){return new Xt({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:`varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:`varying vec2 vUv; + uniform sampler2D blurTexture1; + uniform sampler2D blurTexture2; + uniform sampler2D blurTexture3; + uniform sampler2D blurTexture4; + uniform sampler2D blurTexture5; + uniform float bloomStrength; + uniform float bloomRadius; + uniform float bloomFactors[NUM_MIPS]; + uniform vec3 bloomTintColors[NUM_MIPS]; + + float lerpBloomFactor(const in float factor) { + float mirrorFactor = 1.2 - factor; + return mix(factor, mirrorFactor, bloomRadius); + } + + void main() { + gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) + + lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) + + lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) + + lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) + + lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) ); + }`})}}ir.BlurDirectionX=new j(1,0);ir.BlurDirectionY=new j(0,1);function eM(){const e=new Float32Array(6e3),t=new Float32Array(2e3*3);for(let s=0;s<2e3;s++){const a=Math.random()*Math.PI*2,o=Math.acos(2*Math.random()-1),l=600+Math.random()*400;e[s*3]=l*Math.sin(o)*Math.cos(a),e[s*3+1]=l*Math.sin(o)*Math.sin(a),e[s*3+2]=l*Math.cos(o);const c=Math.random();t[s*3]=.55+c*.25,t[s*3+1]=.55+c*.15,t[s*3+2]=.75+c*.25}const n=new qe;n.setAttribute("position",new rt(e,3)),n.setAttribute("color",new rt(t,3));const i=new Ai({size:1.6,sizeAttenuation:!0,vertexColors:!0,transparent:!0,opacity:.6,depthWrite:!1,blending:Wt});return new as(n,i)}function tM(r){const e=new Cd;e.background=new ne(328975),e.fog=new Yr(657946,.0035);const t=new kt(60,r.clientWidth/r.clientHeight,.1,2e3);t.position.set(0,30,80);const n=new Dy({antialias:!0,alpha:!0,powerPreference:"high-performance"});n.setSize(r.clientWidth,r.clientHeight),n.setPixelRatio(Math.min(window.devicePixelRatio,2)),n.toneMapping=cd,n.toneMappingExposure=1.25,r.appendChild(n.domElement);const i=new Uy(t,n.domElement);i.enableDamping=!0,i.dampingFactor=.05,i.rotateSpeed=.5,i.zoomSpeed=.8,i.minDistance=12,i.maxDistance=180,i.autoRotate=!0,i.autoRotateSpeed=.3;const s=new $y(n);s.addPass(new jy(e,t));const a=new ir(new j(r.clientWidth,r.clientHeight),.55,.6,.2);s.addPass(a);const o=new Jd(2763354,.7);e.add(o);const l=new _c(6514417,1.8,240);l.position.set(50,50,50),e.add(l);const c=new _c(11032055,1.2,240);c.position.set(-50,-30,-50),e.add(c);const h=eM();e.add(h);const u=new Wg;u.params.Points={threshold:2};const f=new j;return{scene:e,camera:t,renderer:n,controls:i,composer:s,bloomPass:a,raycaster:u,mouse:f,lights:{ambient:o,point1:l,point2:c},starfield:h}}function nM(r,e){const t=e.clientWidth,n=e.clientHeight;r.camera.aspect=t/n,r.camera.updateProjectionMatrix(),r.renderer.setSize(t,n),r.composer.setSize(t,n)}function iM(r){r.scene.traverse(e=>{var t;(e instanceof yt||e instanceof Pd)&&((t=e.geometry)==null||t.dispose(),Array.isArray(e.material)?e.material.forEach(n=>n.dispose()):e.material&&e.material.dispose())}),r.renderer.dispose(),r.composer.dispose()}class sM{constructor(e){ke(this,"positions");ke(this,"velocities");ke(this,"running",!0);ke(this,"step",0);ke(this,"repulsionStrength",500);ke(this,"attractionStrength",.01);ke(this,"dampening",.9);ke(this,"baseMaxSteps",300);ke(this,"maxSteps",300);ke(this,"cooldownExtension",0);this.positions=e,this.velocities=new Map;for(const t of e.keys())this.velocities.set(t,new A)}addNode(e,t){this.positions.set(e,t.clone()),this.velocities.set(e,new A),this.cooldownExtension=100,this.maxSteps=Math.max(this.maxSteps,this.step+this.cooldownExtension),this.running=!0}removeNode(e){this.positions.delete(e),this.velocities.delete(e)}tick(e){if(!this.running)return;if(this.step>this.maxSteps){this.cooldownExtension>0&&(this.cooldownExtension=0,this.maxSteps=this.baseMaxSteps);return}this.step++;const t=Math.max(.001,1-this.step/this.maxSteps),n=Array.from(this.positions.keys());for(let i=0;i=.7?"active":r>=.4?"dormant":r>=.1?"silent":"unavailable"}const bc={active:"#10b981",dormant:"#f59e0b",silent:"#8b5cf6",unavailable:"#6b7280"},aM={active:"Easily retrievable (retention ≥ 70%)",dormant:"Retrievable with effort (40–70%)",silent:"Difficult, needs cues (10–40%)",unavailable:"Needs reinforcement (< 10%)"},Qa={aha:"#FFD700",confusion:"#EF4444",failure:"#9CA3AF"},oM={aha:"Aha moments and breakthroughs",confusion:"Confusions and weak spots",failure:"Failures and guardrails"};function sd(r,e){return e==="state"?bc[rM(r.retention)]:e==="ahagraph"?lM(r)??Il[r.type]??"#8B95A5":Il[r.type]||"#8B95A5"}function lM(r){const e=new Set((r.tags??[]).map(t=>t.toLowerCase()));return e.has("aha")?Qa.aha:e.has("confusion")||e.has("weak-spot")?Qa.confusion:e.has("failure")||e.has("guardrail")?Qa.failure:null}let Ar=null;function Sc(){if(Ar)return Ar;const r=128,e=document.createElement("canvas");e.width=r,e.height=r;const t=e.getContext("2d");if(!t)return Ar=new Et,Ar;const n=t.createRadialGradient(r/2,r/2,0,r/2,r/2,r/2);n.addColorStop(0,"rgba(255, 255, 255, 1.0)"),n.addColorStop(.25,"rgba(255, 255, 255, 0.7)"),n.addColorStop(.55,"rgba(255, 255, 255, 0.2)"),n.addColorStop(1,"rgba(255, 255, 255, 0.0)"),t.fillStyle=n,t.fillRect(0,0,r,r);const i=new Dd(e);return i.needsUpdate=!0,Ar=i,i}function rd(r){if(r===0||r===1)return r;const e=.3;return Math.pow(2,-10*r)*Math.sin((r-e/4)*(2*Math.PI)/e)+1}function cM(r){return r*r*((1.70158+1)*r-1.70158)}class hM{constructor(){ke(this,"group");ke(this,"meshMap",new Map);ke(this,"glowMap",new Map);ke(this,"positions",new Map);ke(this,"labelSprites",new Map);ke(this,"hoveredNode",null);ke(this,"selectedNode",null);ke(this,"colorMode","type");ke(this,"materializingNodes",[]);ke(this,"dissolvingNodes",[]);ke(this,"growingNodes",[]);this.group=new ns}setColorMode(e){if(this.colorMode!==e){this.colorMode=e;for(const[t,n]of this.meshMap){const i=n.userData.retention??0,s=n.userData.type??"fact",a=Array.isArray(n.userData.tags)?n.userData.tags:[],l=sd({type:s,retention:i,tags:a},e),c=new ne(l),h=n.material;h.color.copy(c),h.emissive.copy(c);const u=this.glowMap.get(t);u&&u.material.color.copy(c)}}}createNodes(e){const t=(1+Math.sqrt(5))/2,n=e.length;for(let i=0;i0,o=new cr(i,16,16),l=new ah({color:new ne(s),emissive:new ne(s),emissiveIntensity:a?0:.3+e.retention*.5,roughness:.3,metalness:.1,transparent:!0,opacity:a?.2:.3+e.retention*.7}),c=new yt(o,l);c.position.copy(t),c.scale.setScalar(n),c.userData={nodeId:e.id,type:e.type,retention:e.retention,tags:e.tags},this.meshMap.set(e.id,c),this.group.add(c);const h=new rs({map:Sc(),color:new ne(s),transparent:!0,opacity:n>0?a?.1:.3+e.retention*.35:0,blending:Wt,depthWrite:!1}),u=new ts(h);u.scale.set(i*6*n,i*6*n,1),u.position.copy(t),u.userData={isGlow:!0,nodeId:e.id},this.glowMap.set(e.id,u),this.group.add(u);const f=e.label||e.type,d=this.createTextSprite(f,"#94a3b8");return d.position.copy(t),d.position.y+=i*2+1.5,d.userData={isLabel:!0,nodeId:e.id,offset:i*2+1.5},this.group.add(d),this.labelSprites.set(e.id,d),{mesh:c,glow:u,label:d,size:i}}addNode(e,t,n={}){const i=(t==null?void 0:t.clone())??new A((Math.random()-.5)*40,(Math.random()-.5)*40,(Math.random()-.5)*40);this.positions.set(e.id,i);const{mesh:s,glow:a,label:o}=this.createNodeMeshes(e,i,0);return s.scale.setScalar(.001),a.scale.set(.001,.001,1),a.material.opacity=0,o.material.opacity=0,n.isBirthRitual?(s.visible=!1,a.visible=!1,o.visible=!1,s.userData.birthRitualPending={totalFrames:30,targetScale:.5+e.retention*2}):this.materializingNodes.push({id:e.id,frame:0,totalFrames:30,mesh:s,glow:a,label:o,targetScale:.5+e.retention*2}),i}igniteNode(e){const t=this.meshMap.get(e),n=this.glowMap.get(e),i=this.labelSprites.get(e);if(!t||!n||!i)return;const s=t.userData.birthRitualPending;s&&(t.visible=!0,n.visible=!0,i.visible=!0,delete t.userData.birthRitualPending,this.materializingNodes.push({id:e,frame:0,totalFrames:s.totalFrames,mesh:t,glow:n,label:i,targetScale:s.targetScale}))}removeNode(e){const t=this.meshMap.get(e),n=this.glowMap.get(e),i=this.labelSprites.get(e);!t||!n||!i||(this.materializingNodes=this.materializingNodes.filter(s=>s.id!==e),this.dissolvingNodes.push({id:e,frame:0,totalFrames:60,mesh:t,glow:n,label:i,originalScale:t.scale.x}))}growNode(e,t){const n=this.meshMap.get(e);if(!n)return;const i=n.scale.x,s=.5+t*2;n.userData.retention=t,this.growingNodes.push({id:e,frame:0,totalFrames:30,startScale:i,targetScale:s})}createTextSprite(e,t){const n=document.createElement("canvas"),i=n.getContext("2d");if(!i){const m=new Et;return new ts(new rs({map:m,transparent:!0,opacity:0}))}n.width=512,n.height=64;const s=e.length>40?e.slice(0,37)+"...":e;i.clearRect(0,0,n.width,n.height),i.font='600 22px -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif';const o=i.measureText(s).width,c=Math.min(o+14*2,n.width-4),h=40,u=(n.width-c)/2,f=(n.height-h)/2,d=h/2;i.fillStyle="rgba(10, 16, 28, 0.82)",i.beginPath(),i.moveTo(u+d,f),i.lineTo(u+c-d,f),i.quadraticCurveTo(u+c,f,u+c,f+d),i.lineTo(u+c,f+h-d),i.quadraticCurveTo(u+c,f+h,u+c-d,f+h),i.lineTo(u+d,f+h),i.quadraticCurveTo(u,f+h,u,f+h-d),i.lineTo(u,f+d),i.quadraticCurveTo(u,f,u+d,f),i.closePath(),i.fill(),i.strokeStyle="rgba(148, 163, 184, 0.18)",i.lineWidth=1,i.stroke(),i.textAlign="center",i.textBaseline="middle",i.fillStyle=t,i.fillText(s,n.width/2,n.height/2+1);const p=new Dd(n);p.needsUpdate=!0;const _=new rs({map:p,transparent:!0,opacity:0,depthTest:!1,sizeAttenuation:!0}),g=new ts(_);return g.scale.set(9,1.2,1),g}updatePositions(){this.group.children.forEach(e=>{if(e.userData.nodeId){const t=this.positions.get(e.userData.nodeId);if(!t)return;e.userData.isGlow?e.position.copy(t):e.userData.isLabel?(e.position.copy(t),e.position.y+=e.userData.offset):e instanceof yt&&e.position.copy(t)}})}animate(e,t,n,i=1){var a,o;for(let l=this.materializingNodes.length-1;l>=0;l--){const c=this.materializingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),u=rd(h);if(c.mesh.scale.setScalar(Math.max(.001,u)),c.frame>=5){const f=Math.min((c.frame-5)/5,1),d=c.glow.material;d.opacity=f*.4;const p=c.targetScale*6*u;c.glow.scale.set(p,p,1)}if(c.frame>=40){const f=Math.min((c.frame-40)/20,1);c.label.material.opacity=f*.9}c.frame>=60&&this.materializingNodes.splice(l,1)}for(let l=this.dissolvingNodes.length-1;l>=0;l--){const c=this.dissolvingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),u=1-cM(h),f=Math.max(.001,c.originalScale*u);c.mesh.scale.setScalar(f);const d=f*6;c.glow.scale.set(d,d,1);const p=c.mesh.material;p.opacity*=.97,c.glow.material.opacity*=.95,c.label.material.opacity*=.93,c.frame>=c.totalFrames&&(this.group.remove(c.mesh),this.group.remove(c.glow),this.group.remove(c.label),c.mesh.geometry.dispose(),c.mesh.material.dispose(),(a=c.glow.material.map)==null||a.dispose(),c.glow.material.dispose(),(o=c.label.material.map)==null||o.dispose(),c.label.material.dispose(),this.meshMap.delete(c.id),this.glowMap.delete(c.id),this.labelSprites.delete(c.id),this.positions.delete(c.id),this.dissolvingNodes.splice(l,1))}for(let l=this.growingNodes.length-1;l>=0;l--){const c=this.growingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),u=c.startScale+(c.targetScale-c.startScale)*rd(h),f=this.meshMap.get(c.id);f&&f.scale.setScalar(u);const d=this.glowMap.get(c.id);if(d){const p=u*6;d.scale.set(p,p,1)}c.frame>=c.totalFrames&&this.growingNodes.splice(l,1)}const s=new Set([...this.materializingNodes.map(l=>l.id),...this.dissolvingNodes.map(l=>l.id),...this.growingNodes.map(l=>l.id)]);this.meshMap.forEach((l,c)=>{if(s.has(c))return;const h=t.find(y=>y.id===c);if(!h)return;const u=1+Math.sin(e*1.5+t.indexOf(h)*.5)*.15*h.retention;l.scale.setScalar(u);const f=this.positions.get(c),d=f?n.position.distanceTo(f):0,p=1+Math.min(1.4,Math.max(0,(d-60)/100)),_=l.material;if(c===this.hoveredNode)_.emissiveIntensity=1*i;else if(c===this.selectedNode)_.emissiveIntensity=.8*i;else{const v=.3+h.retention*.5+Math.sin(e*(.8+h.retention*.7))*.1*h.retention;_.emissiveIntensity=v*i*p}const g=.3+h.retention*.7;_.opacity=Math.min(1,g*i*p);const m=this.glowMap.get(c);if(m){const y=m.material,v=.3+h.retention*.35;y.opacity=Math.min(.95,v*i*p)}}),this.labelSprites.forEach((l,c)=>{if(s.has(c))return;const h=this.positions.get(c);if(!h)return;const u=n.position.distanceTo(h),f=l.material,d=c===this.hoveredNode||c===this.selectedNode?1:u<40?.9:u<80?.9*(1-(u-40)/40):0;f.opacity+=(d-f.opacity)*.1})}getMeshes(){return Array.from(this.meshMap.values())}dispose(){this.group.traverse(e=>{var t,n,i,s,a;e instanceof yt?((t=e.geometry)==null||t.dispose(),(n=e.material)==null||n.dispose()):e instanceof ts&&((s=(i=e.material)==null?void 0:i.map)==null||s.dispose(),(a=e.material)==null||a.dispose())}),this.materializingNodes=[],this.dissolvingNodes=[],this.growingNodes=[]}}function uM(r){return 1-Math.pow(1-r,3)}class dM{constructor(){ke(this,"group");ke(this,"growingEdges",[]);ke(this,"dissolvingEdges",[]);this.group=new ns}createEdges(e,t){for(const n of e){const i=t.get(n.source),s=t.get(n.target);if(!i||!s)continue;const a=[i,s],o=new qe().setFromPoints(a),l=new qt({color:9133302,transparent:!0,opacity:Math.min(.25+n.weight*.5,.8),blending:Wt,depthWrite:!1}),c=new Vn(o,l);c.userData={source:n.source,target:n.target},this.group.add(c)}}addEdge(e,t){const n=t.get(e.source),i=t.get(e.target);if(!n||!i)return;const s=[n.clone(),n.clone()],a=new qe().setFromPoints(s),o=new qt({color:9133302,transparent:!0,opacity:0,blending:Wt,depthWrite:!1}),l=new Vn(a,o);l.userData={source:e.source,target:e.target},this.group.add(l),this.growingEdges.push({line:l,source:e.source,target:e.target,frame:0,totalFrames:45})}removeEdgesForNode(e){const t=[];this.group.children.forEach(n=>{const i=n;(i.userData.source===e||i.userData.target===e)&&t.push(i)});for(const n of t)this.growingEdges=this.growingEdges.filter(i=>i.line!==n),this.dissolvingEdges.push({line:n,frame:0,totalFrames:40})}animateEdges(e){for(let t=this.growingEdges.length-1;t>=0;t--){const n=this.growingEdges[t];n.frame++;const i=uM(Math.min(n.frame/n.totalFrames,1)),s=e.get(n.source),a=e.get(n.target);if(!s||!a)continue;const o=s.clone().lerp(a,i),l=n.line.geometry.attributes.position;l.setXYZ(0,s.x,s.y,s.z),l.setXYZ(1,o.x,o.y,o.z),l.needsUpdate=!0;const c=n.line.material;c.opacity=i*.65,n.frame>=n.totalFrames&&(c.opacity=.65,this.growingEdges.splice(t,1))}for(let t=this.dissolvingEdges.length-1;t>=0;t--){const n=this.dissolvingEdges[t];n.frame++;const i=n.frame/n.totalFrames,s=n.line.material;s.opacity=Math.max(0,.65*(1-i)),n.frame>=n.totalFrames&&(this.group.remove(n.line),n.line.geometry.dispose(),n.line.material.dispose(),this.dissolvingEdges.splice(t,1))}}updatePositions(e){this.group.children.forEach(t=>{const n=t;if(this.growingEdges.some(a=>a.line===n)||this.dissolvingEdges.some(a=>a.line===n))return;const i=e.get(n.userData.source),s=e.get(n.userData.target);if(i&&s){const a=n.geometry.attributes.position;a.setXYZ(0,i.x,i.y,i.z),a.setXYZ(1,s.x,s.y,s.z),a.needsUpdate=!0}})}dispose(){this.group.children.forEach(e=>{var n,i;const t=e;(n=t.geometry)==null||n.dispose(),(i=t.material)==null||i.dispose()}),this.growingEdges=[],this.dissolvingEdges=[]}}class fM{constructor(e){ke(this,"starField");ke(this,"neuralParticles");this.starField=this.createStarField(),this.neuralParticles=this.createNeuralParticles(),e.add(this.starField),e.add(this.neuralParticles)}createStarField(){const t=new qe,n=new Float32Array(3e3*3),i=new Float32Array(3e3);for(let a=0;a<3e3;a++)n[a*3]=(Math.random()-.5)*1e3,n[a*3+1]=(Math.random()-.5)*1e3,n[a*3+2]=(Math.random()-.5)*1e3,i[a]=Math.random()*1.5;t.setAttribute("position",new rt(n,3)),t.setAttribute("size",new rt(i,1));const s=new Ai({color:6514417,size:.5,transparent:!0,opacity:.4,sizeAttenuation:!0,blending:Wt});return new as(t,s)}createNeuralParticles(){const t=new qe,n=new Float32Array(500*3),i=new Float32Array(500*3);for(let a=0;a<500;a++)n[a*3]=(Math.random()-.5)*100,n[a*3+1]=(Math.random()-.5)*100,n[a*3+2]=(Math.random()-.5)*100,i[a*3]=.4+Math.random()*.3,i[a*3+1]=.3+Math.random()*.2,i[a*3+2]=.8+Math.random()*.2;t.setAttribute("position",new rt(n,3)),t.setAttribute("color",new rt(i,3));const s=new Ai({size:.3,vertexColors:!0,transparent:!0,opacity:.4,blending:Wt,sizeAttenuation:!0});return new as(t,s)}animate(e){this.starField.rotation.y+=1e-4,this.starField.rotation.x+=5e-5;const t=this.neuralParticles.geometry.attributes.position;for(let n=0;n=0;i--){const s=this.pulseEffects[i];if(s.intensity-=s.decay,s.intensity<=0){this.pulseEffects.splice(i,1);continue}const a=e.get(s.nodeId);if(a){const o=a.material;o.emissive.lerp(s.color,s.intensity*.3),o.emissiveIntensity=Math.max(o.emissiveIntensity,s.intensity)}}for(let i=this.spawnBursts.length-1;i>=0;i--){const s=this.spawnBursts[i];if(s.age++,s.age>120){this.scene.remove(s.particles),s.particles.geometry.dispose(),s.particles.material.dispose(),this.spawnBursts.splice(i,1);continue}const a=s.particles.geometry.attributes.position,o=s.particles.geometry.attributes.velocity;for(let c=0;c=0;i--){const s=this.rainbowBursts[i];if(s.age++,s.age>s.maxAge){this.scene.remove(s.particles),s.particles.geometry.dispose(),s.particles.material.dispose(),this.rainbowBursts.splice(i,1);continue}const a=s.particles.geometry.attributes.position,o=s.particles.geometry.attributes.velocity;for(let f=0;f=0;i--){const s=this.rippleWaves[i];if(s.age++,s.radius+=s.speed,s.age>s.maxAge){this.rippleWaves.splice(i,1);continue}const a=s.radius,o=3;n.forEach((l,c)=>{if(s.pulsedNodes.has(c))return;const h=l.distanceTo(s.origin);h>=a-o&&h<=a+o&&(s.pulsedNodes.add(c),this.addPulse(c,.8,new ne(65489),.03))})}for(let i=this.implosions.length-1;i>=0;i--){const s=this.implosions[i];if(s.age++,s.age>s.maxAge+20){this.scene.remove(s.particles),s.particles.geometry.dispose(),s.particles.material.dispose(),s.flash&&(this.scene.remove(s.flash),s.flash.geometry.dispose(),s.flash.material.dispose()),this.implosions.splice(i,1);continue}if(s.age<=s.maxAge){const a=s.particles.geometry.attributes.position,o=s.particles.geometry.attributes.velocity,l=1+s.age*.02;for(let h=0;hs.maxAge){const a=(s.age-s.maxAge)/20;s.flash.material.opacity=Math.max(0,1-a),s.flash.scale.setScalar(1+a*3)}}for(let i=this.shockwaves.length-1;i>=0;i--){const s=this.shockwaves[i];if(s.age++,s.age>s.maxAge){this.scene.remove(s.mesh),s.mesh.geometry.dispose(),s.mesh.material.dispose(),this.shockwaves.splice(i,1);continue}const a=s.age/s.maxAge;s.mesh.scale.setScalar(1+a*20),s.mesh.material.opacity=.8*(1-a),s.mesh.lookAt(t.position)}for(let i=this.connectionFlashes.length-1;i>=0;i--){const s=this.connectionFlashes[i];if(s.intensity-=.015,s.intensity<=0){this.scene.remove(s.line),s.line.geometry.dispose(),s.line.material.dispose(),this.connectionFlashes.splice(i,1);continue}s.line.material.opacity=s.intensity}for(let i=this.birthOrbs.length-1;i>=0;i--){const s=this.birthOrbs[i];s.age++;const a=s.gestationFrames+s.flightFrames,o=s.sprite.material,l=s.core.material,c=s.getTargetPos();if(c)s.lastTargetPos.copy(c);else if(s.age>s.gestationFrames&&!s.aborted){s.aborted=!0;const h=s.sprite.position;o.color.setRGB(1,.15,.2),l.color.setRGB(1,.6,.6),this.createImplosion(h,new ne(16721203)),s.arriveFired=!0,s.age=a+1}if(s.age<=s.gestationFrames){const h=s.age/s.gestationFrames,u=1-Math.pow(1-h,3),f=.85+Math.sin(s.age*.35)*.15,d=.5+u*4.5*f,p=.2+u*1.8*f;s.sprite.scale.set(d,d,1),s.core.scale.set(p,p,1),o.opacity=u*.95,l.opacity=u,o.color.copy(s.color).multiplyScalar(.7+u*.3),s.sprite.position.copy(s.startPos),s.core.position.copy(s.startPos)}else if(s.age<=a){const h=(s.age-s.gestationFrames)/s.flightFrames,u=h<.5?2*h*h:1-Math.pow(-2*h+2,2)/2,f=s.startPos,d=s.lastTargetPos,p=d.x-f.x,_=d.y-f.y,g=d.z-f.z,m=Math.sqrt(p*p+_*_+g*g),y=(f.x+d.x)*.5,v=(f.y+d.y)*.5+30+m*.15,x=(f.z+d.z)*.5,w=1-u,T=w*w,C=2*w*u,P=u*u,S=T*f.x+C*y+P*d.x,M=T*f.y+C*v+P*d.y,D=T*f.z+C*x+P*d.z;s.sprite.position.set(S,M,D),s.core.position.set(S,M,D);const G=1-u*.35;s.sprite.scale.setScalar(5*G),s.core.scale.setScalar(2*G),o.opacity=.95,l.opacity=1,o.color.copy(s.color)}else if(s.arriveFired){const h=s.age-a,u=Math.max(0,1-h/8);o.opacity=.95*u,l.opacity=1*u,s.sprite.scale.setScalar(5*(1+(1-u)*2)),u<=0&&(this.scene.remove(s.sprite),this.scene.remove(s.core),o.dispose(),l.dispose(),this.birthOrbs.splice(i,1))}else{s.arriveFired=!0;try{s.onArrive()}catch(h){console.warn("[birth-orb] onArrive threw",h)}}}}dispose(){for(const e of this.spawnBursts)this.scene.remove(e.particles),e.particles.geometry.dispose(),e.particles.material.dispose();for(const e of this.rainbowBursts)this.scene.remove(e.particles),e.particles.geometry.dispose(),e.particles.material.dispose();for(const e of this.implosions)this.scene.remove(e.particles),e.particles.geometry.dispose(),e.particles.material.dispose(),e.flash&&(this.scene.remove(e.flash),e.flash.geometry.dispose(),e.flash.material.dispose());for(const e of this.shockwaves)this.scene.remove(e.mesh),e.mesh.geometry.dispose(),e.mesh.material.dispose();for(const e of this.connectionFlashes)this.scene.remove(e.line),e.line.geometry.dispose(),e.line.material.dispose();for(const e of this.birthOrbs)this.scene.remove(e.sprite),this.scene.remove(e.core),e.sprite.material.dispose(),e.core.material.dispose();this.pulseEffects=[],this.spawnBursts=[],this.rainbowBursts=[],this.rippleWaves=[],this.implosions=[],this.shockwaves=[],this.connectionFlashes=[],this.birthOrbs=[]}}const jn={bloomStrength:.8,rotateSpeed:.3,fogColor:328976,fogDensity:.008,nebulaIntensity:0,chromaticIntensity:.002,vignetteRadius:.9,breatheAmplitude:1},bi={bloomStrength:1.8,rotateSpeed:.08,fogColor:656672,fogDensity:.006,nebulaIntensity:1,chromaticIntensity:.005,vignetteRadius:.7,breatheAmplitude:2};class mM{constructor(){ke(this,"active",!1);ke(this,"transition",0);ke(this,"transitionSpeed",.008);ke(this,"current");ke(this,"auroraHue",0);this.current={...jn}}setActive(e){this.active=e}update(e,t,n,i,s){const a=this.active?1:0;this.transition+=(a-this.transition)*this.transitionSpeed*60*(1/60),this.transition=Math.max(0,Math.min(1,this.transition));const o=this.transition;this.current.bloomStrength=this.lerp(jn.bloomStrength,bi.bloomStrength,o),this.current.rotateSpeed=this.lerp(jn.rotateSpeed,bi.rotateSpeed,o),this.current.fogDensity=this.lerp(jn.fogDensity,bi.fogDensity,o),this.current.nebulaIntensity=this.lerp(jn.nebulaIntensity,bi.nebulaIntensity,o),this.current.chromaticIntensity=this.lerp(jn.chromaticIntensity,bi.chromaticIntensity,o),this.current.vignetteRadius=this.lerp(jn.vignetteRadius,bi.vignetteRadius,o),this.current.breatheAmplitude=this.lerp(jn.breatheAmplitude,bi.breatheAmplitude,o),t.strength=this.current.bloomStrength,n.autoRotateSpeed=this.current.rotateSpeed;const l=new ne(jn.fogColor),c=new ne(bi.fogColor),h=l.clone().lerp(c,o);if(e.fog=new Yr(h,this.current.fogDensity),o>.01){this.auroraHue=s*.1%1;const u=new ne().setHSL(.75+this.auroraHue*.15,.8,.5),f=new ne().setHSL(.55+this.auroraHue*.2,.7,.4);i.point1.color.lerp(u,o*.3),i.point2.color.lerp(f,o*.3)}else i.point1.color.set(6514417),i.point2.color.set(11032055)}lerp(e,t,n){return e+(t-e)*n}}const gM=50,Fr=[];function _M(r,e,t){const n=r.tags??[],i=r.type??"";let s=null,a=0;for(const o of e){let l=0;o.type===i&&(l+=2);for(const c of o.tags)n.includes(c)&&(l+=1);l>a&&(a=l,s=o.id)}if(s&&a>0){const o=t.get(s);if(o)return new A(o.x+(Math.random()-.5)*10,o.y+(Math.random()-.5)*10,o.z+(Math.random()-.5)*10)}return new A((Math.random()-.5)*40,(Math.random()-.5)*40,(Math.random()-.5)*40)}function vM(r,e){if(Fr.length<=gM)return;const t=Fr.shift();r.edgeManager.removeEdgesForNode(t),r.nodeManager.removeNode(t),r.forceSim.removeNode(t),r.onMutation({type:"edgesRemoved",nodeId:t}),r.onMutation({type:"nodeRemoved",nodeId:t});const n=e.findIndex(i=>i.id===t);n!==-1&&e.splice(n,1)}function xM(r,e,t){var u,f;const{effects:n,nodeManager:i,edgeManager:s,forceSim:a,camera:o,onMutation:l}=e,c=i.positions,h=i.meshMap;switch(r.type){case"MemoryCreated":{const d=r.data;if(!d.id)break;const p={id:d.id,label:(d.content??"").slice(0,60),type:d.node_type??"fact",retention:Math.max(0,Math.min(1,d.retention??.9)),tags:d.tags??[],createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),isCenter:!1},_=_M(p,t,c),g=i.addNode(p,_,{isBirthRitual:!0});a.addNode(d.id,g),Fr.push(d.id),vM(e,t);const m=new ne(Il[p.type]||"#00ffd1"),y=m.clone();y.offsetHSL(.15,0,0),n.createBirthOrb(o,m,()=>i.positions.get(p.id),()=>{i.igniteNode(p.id);const v=i.positions.get(p.id)??_,x=i.meshMap.get(p.id);x&&x.scale.multiplyScalar(1.8),n.createRainbowBurst(v,m),n.createShockwave(v,m,o),n.createShockwave(v,y,o),n.createRippleWave(v)}),l({type:"nodeAdded",node:p});break}case"ConnectionDiscovered":{const d=r.data;if(!d.source_id||!d.target_id)break;const p=c.get(d.source_id),_=c.get(d.target_id),g={source:d.source_id,target:d.target_id,weight:d.weight??.5,type:d.connection_type??"semantic"};s.addEdge(g,c),p&&_&&n.createConnectionFlash(p,_,new ne(54527)),d.source_id&&h.has(d.source_id)&&n.addPulse(d.source_id,1,new ne(54527),.02),d.target_id&&h.has(d.target_id)&&n.addPulse(d.target_id,1,new ne(54527),.02),l({type:"edgeAdded",edge:g});break}case"MemoryDeleted":{const d=r.data;if(!d.id)break;const p=c.get(d.id);if(p){const g=new ne(16729943);n.createImplosion(p,g)}s.removeEdgesForNode(d.id),i.removeNode(d.id),a.removeNode(d.id);const _=Fr.indexOf(d.id);_!==-1&&Fr.splice(_,1),l({type:"edgesRemoved",nodeId:d.id}),l({type:"nodeRemoved",nodeId:d.id});break}case"MemoryPromoted":{const d=r.data,p=d==null?void 0:d.id;if(!p)break;const _=d.new_retention??.95;if(h.has(p)){i.growNode(p,_),n.addPulse(p,1.2,new ne(65416),.01);const g=c.get(p);g&&(n.createShockwave(g,new ne(65416),o),n.createSpawnBurst(g,new ne(65416))),l({type:"nodeUpdated",nodeId:p,retention:_})}break}case"MemoryDemoted":{const d=r.data,p=d==null?void 0:d.id;if(!p)break;const _=d.new_retention??.3;h.has(p)&&(i.growNode(p,_),n.addPulse(p,.8,new ne(16729943),.03),l({type:"nodeUpdated",nodeId:p,retention:_}));break}case"MemoryUpdated":{const d=r.data,p=d==null?void 0:d.id;if(!p||!h.has(p))break;n.addPulse(p,.6,new ne(8490232),.02),d.retention!==void 0&&(i.growNode(p,d.retention),l({type:"nodeUpdated",nodeId:p,retention:d.retention}));break}case"SearchPerformed":{h.forEach((d,p)=>{n.addPulse(p,.6+Math.random()*.4,new ne(8490232),.02)});break}case"DreamStarted":{h.forEach((d,p)=>{n.addPulse(p,1,new ne(11032055),.005)});break}case"DreamProgress":{const d=(u=r.data)==null?void 0:u.memory_id;d&&h.has(d)&&n.addPulse(d,1.5,new ne(12616956),.01);break}case"DreamCompleted":{n.createSpawnBurst(new A(0,0,0),new ne(11032055)),n.createShockwave(new A(0,0,0),new ne(11032055),o);break}case"RetentionDecayed":{const d=(f=r.data)==null?void 0:f.id;d&&h.has(d)&&n.addPulse(d,.8,new ne(16729943),.03);break}case"ConsolidationCompleted":{h.forEach((d,p)=>{n.addPulse(p,.4+Math.random()*.3,new ne(16758784),.015)});break}case"ActivationSpread":{const d=r.data;if(d.source_id&&d.target_ids){const p=c.get(d.source_id);if(p)for(const _ of d.target_ids){const g=c.get(_);g&&n.createConnectionFlash(p,g,new ne(1370310))}}break}case"MemorySuppressed":{const d=r.data;if(!d.id)break;const p=c.get(d.id);if(p){n.createImplosion(p,new ne(11032055));const _=Math.max(1,d.suppression_count??1),g=Math.min(.4+_*.15,1);n.addPulse(d.id,g,new ne(11032055),.04)}break}case"MemoryUnsuppressed":{const d=r.data;if(!d.id)break;const p=c.get(d.id);p&&h.has(d.id)&&(n.createRainbowBurst(p,new ne(65416)),n.addPulse(d.id,1,new ne(65416),.02));break}case"Rac1CascadeSwept":{const p=r.data.neighbors_affected??0;if(p===0)break;const _=Array.from(h.keys()),g=Math.min(p,_.length,12);for(let m=0;m"u")return eo;const r=localStorage.getItem(hf);if(r===null)return eo;const e=Number(r);return Number.isFinite(e)?Math.min(Ec,Math.max(wc,e)):eo}const ji=IM();function IM(){let r=Qe(!1),e=Qe(Al(new Date)),t=Qe(!1),n=Qe(1),i=Qe(!1),s=Qe(Al(RM()));return{get temporalEnabled(){return L(r)},set temporalEnabled(a){le(r,a,!0)},get temporalDate(){return L(e)},set temporalDate(a){le(e,a,!0)},get temporalPlaying(){return L(t)},set temporalPlaying(a){le(t,a,!0)},get temporalSpeed(){return L(n)},set temporalSpeed(a){le(n,a,!0)},get dreamMode(){return L(i)},set dreamMode(a){le(i,a,!0)},get brightness(){return L(s)},set brightness(a){const o=Math.min(Ec,Math.max(wc,a));if(le(s,o,!0),typeof localStorage<"u")try{localStorage.setItem(hf,String(o))}catch{}},brightnessMin:wc,brightnessMax:Ec,brightnessDefault:eo}}var PM=ut('
');function DM(r,e){var G;sr(e,!0);let t=Dr(e,"events",19,()=>[]),n=Dr(e,"isDreaming",3,!1),i=Dr(e,"colorMode",3,"type");Ga(()=>{u==null||u.setColorMode(i())});let s,a,o,l=typeof window<"u"&&((G=window.matchMedia)==null?void 0:G.call(window,"(prefers-reduced-motion: reduce)").matches),c=null;function h(F){l=F.matches,a!=null&&a.controls&&(a.controls.autoRotate=!l)}let u,f,d,p,_,g,m,y,v=null,x=[];od(()=>{var J;a=tM(s),l&&(a.controls.autoRotate=!1),typeof window<"u"&&window.matchMedia&&(c=window.matchMedia("(prefers-reduced-motion: reduce)"),(J=c.addEventListener)==null||J.call(c,"change",h)),m=bM(a.scene).material,y=AM(a.composer),d=new fM(a.scene),u=new hM,u.colorMode=i(),f=new dM,p=new pM(a.scene),g=new mM;const V=u.createNodes(e.nodes);f.createEdges(e.edges,V),_=new sM(V),x=[...e.nodes],a.scene.add(f.group),a.scene.add(u.group),T(),window.addEventListener("resize",P),s.addEventListener("pointermove",S),s.addEventListener("click",M)}),Ac(()=>{var F;cancelAnimationFrame(o),window.removeEventListener("resize",P),(F=c==null?void 0:c.removeEventListener)==null||F.call(c,"change",h),s==null||s.removeEventListener("pointermove",S),s==null||s.removeEventListener("click",M),p==null||p.dispose(),d==null||d.dispose(),u==null||u.dispose(),f==null||f.dispose(),a&&iM(a)});let w=0;function T(){o=requestAnimationFrame(T);const F=performance.now();w===0&&(w=F);const V=F-w;if(V<16)return;w=F-V%16;const J=F*.001;_.tick(e.edges),u.updatePositions(),f.updatePositions(u.positions),f.animateEdges(u.positions),d.animate(J),u.animate(J,x,a.camera,ji.brightness),g.setActive(n()),g.update(a.scene,a.bloomPass,a.controls,a.lights,J),SM(m,J,g.current.nebulaIntensity,s.clientWidth,s.clientHeight),CM(y,J,g.current.nebulaIntensity),C(),p.update(u.meshMap,a.camera,u.positions),a.controls.update(),a.composer.render()}function C(){if(!t()||t().length===0)return;const F=[];for(const J of t()){if(J===v)break;F.push(J)}if(F.length===0)return;if(F.length===t().length&&t().length>=200){console.warn("[vestige] Event horizon overflow: dropping visuals for",F.length,"events"),v=t()[0];return}v=t()[0];const V={effects:p,nodeManager:u,edgeManager:f,forceSim:_,camera:a.camera,onMutation:J=>{var q;J.type==="nodeAdded"?x=[...x,J.node]:J.type==="nodeRemoved"&&(x=x.filter(se=>se.id!==J.nodeId)),(q=e.onGraphMutation)==null||q.call(e,J)}};for(let J=F.length-1;J>=0;J--)xM(F[J],V,x)}function P(){!s||!a||nM(a,s)}function S(F){const V=s.getBoundingClientRect();a.mouse.x=(F.clientX-V.left)/V.width*2-1,a.mouse.y=-((F.clientY-V.top)/V.height)*2+1,a.raycaster.setFromCamera(a.mouse,a.camera);const J=a.raycaster.intersectObjects(u.getMeshes());J.length>0?(u.hoveredNode=J[0].object.userData.nodeId,s.style.cursor="pointer"):(u.hoveredNode=null,s.style.cursor="grab")}function M(){var F;if(u.hoveredNode){u.selectedNode=u.hoveredNode,(F=e.onSelect)==null||F.call(e,u.hoveredNode);const V=u.positions.get(u.hoveredNode);V&&a.controls.target.lerp(V.clone(),.5)}}var D=PM();Rl(D,F=>s=F,()=>s),ot(r,D),rr()}var LM=ut('
'),UM=ut('
');function NM(r,e){sr(e,!0);let t=Dr(e,"width",3,240),n=Dr(e,"height",3,80);function i(g){return e.stability<=0?0:Math.exp(-g/e.stability)}let s=ei(()=>{const g=[],m=Math.max(e.stability*3,30),y=4,v=t()-y*2,x=n()-y*2;for(let w=0;w<=50;w++){const T=w/50*m,C=i(T),P=y+w/50*v,S=y+(1-C)*x;g.push(`${w===0?"M":"L"}${P.toFixed(1)},${S.toFixed(1)}`)}return g.join(" ")}),a=ei(()=>[{label:"Now",days:0,value:e.retention},{label:"1d",days:1,value:i(1)},{label:"7d",days:7,value:i(7)},{label:"30d",days:30,value:i(30)}]);function o(g){return g>.7?"#10b981":g>.4?"#f59e0b":"#ef4444"}var l=UM(),c=xe(l),h=xe(c),u=Ee(h),f=Ee(u),d=Ee(f),p=Ee(d);Or(),fe(c);var _=Ee(c,2);Pr(_,21,()=>L(a),Wa,(g,m)=>{var y=LM(),v=xe(y),x=xe(v);fe(v);var w=Ee(v,2),T=xe(w);fe(w),fe(y),Pt((C,P)=>{ct(x,`${L(m).label??""}:`),zr(w,`color: ${C??""}`),ct(T,`${P??""}%`)},[()=>o(L(m).value),()=>(L(m).value*100).toFixed(0)]),ot(g,y)}),fe(_),fe(l),Pt(g=>{Rt(c,"width",t()),Rt(c,"height",n()),Rt(c,"viewBox",`0 0 ${t()??""} ${n()??""}`),Rt(h,"y1",4+(n()-8)*.5),Rt(h,"x2",t()-4),Rt(h,"y2",4+(n()-8)*.5),Rt(u,"y1",4+(n()-8)*.8),Rt(u,"x2",t()-4),Rt(u,"y2",4+(n()-8)*.8),Rt(f,"d",L(s)),Rt(d,"d",`${L(s)??""} L${t()-4},${n()-4} L4,${n()-4} Z`),Rt(p,"cy",4+(1-e.retention)*(n()-8)),Rt(p,"fill",g)},[()=>o(e.retention)]),ot(r,l),rr()}function ad(r,e,t){const n=t.getTime(),i=new Set,s=new Map,a=r.filter(l=>{const c=new Date(l.createdAt).getTime();if(c<=n){i.add(l.id);const h=n-c,u=1440*60*1e3,f=hi.has(l.source)&&i.has(l.target));return{visibleNodes:a,visibleEdges:o,nodeOpacities:s}}function FM(r){if(r.length===0){const n=new Date;return{oldest:n,newest:n}}let e=1/0,t=-1/0;for(const n of r){const i=new Date(n.createdAt).getTime();it&&(t=i)}return{oldest:new Date(e),newest:new Date(t)}}var OM=ut(`
`),BM=ut('');function zM(r,e){sr(e,!0);let t=Qe(!1),n=Qe(!1),i=Qe(1),s=Qe(100),a,o=0,l=ei(()=>FM(e.nodes)),c=ei(()=>{const v=L(l).oldest.getTime(),w=L(l).newest.getTime()-v||1;return new Date(v+L(s)/100*w)});function h(v){return v.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function u(){le(t,!L(t)),e.onToggle(L(t)),L(t)&&(le(s,100),e.onDateChange(L(c)))}function f(){le(n,!L(n)),L(n)?(le(s,0),o=performance.now(),d()):cancelAnimationFrame(a)}function d(){L(n)&&(a=requestAnimationFrame(v=>{const x=(v-o)/1e3;o=v;const w=L(l).oldest.getTime(),C=(L(l).newest.getTime()-w)/(1440*60*1e3)||1,P=L(i)/C*100;if(le(s,Math.min(100,L(s)+P*x),!0),e.onDateChange(L(c)),L(s)>=100){le(n,!1);return}d()}))}function p(){e.onDateChange(L(c))}Ac(()=>{le(n,!1),cancelAnimationFrame(a)});var _=mf(),g=no(_);{var m=v=>{var x=OM(),w=xe(x),T=xe(w),C=xe(T),P=xe(C),S=xe(P,!0);fe(P);var M=Ee(P,2),D=xe(M);D.value=D.__value=1;var G=Ee(D);G.value=G.__value=7;var F=Ee(G);F.value=F.__value=30,fe(M),fe(C);var V=Ee(C,2),J=xe(V,!0);fe(V);var q=Ee(V,2);fe(T);var se=Ee(T,2);Br(se);var Z=Ee(se,2),_e=xe(Z),be=xe(_e,!0);fe(_e);var Re=Ee(_e,2),Ge=xe(Re,!0);fe(Re),fe(Z),fe(w),fe(x),Pt((it,Q,ue)=>{ct(S,L(n)?"⏸":"▶"),ct(J,it),ct(be,Q),ct(Ge,ue)},[()=>h(L(c)),()=>h(L(l).oldest),()=>h(L(l).newest)]),Ut("click",P,f),Mf(M,()=>L(i),it=>le(i,it)),Ut("click",q,u),Ut("input",se,p),Cl(se,()=>L(s),it=>le(s,it)),ot(v,x)},y=v=>{var x=BM();Ut("click",x,u),ot(v,x)};It(g,v=>{L(t)?v(m):v(y,!1)})}ot(r,_),rr()}Cc(["click","input"]);var kM=ut('
'),VM=ut('
FSRS accessibility
');function HM(r,e){sr(e,!1);const t=["active","dormant","silent","unavailable"];bf();var n=VM(),i=Ee(xe(n),2);Pr(i,1,()=>t,s=>s,(s,a)=>{var o=kM(),l=xe(o),c=Ee(l,2),h=xe(c,!0);fe(c);var u=Ee(c,2),f=xe(u,!0);fe(u),fe(o),Pt(d=>{zr(l,`background: ${bc[L(a)]??""}; box-shadow: 0 0 6px ${bc[L(a)]??""}55;`),ct(h,L(a)),ct(f,d)},[()=>{var d;return((d=aM[L(a)].match(/\(([^)]+)\)/))==null?void 0:d[1])??""}]),ot(s,o)}),fe(n),ot(r,n),rr()}function uf(r){var t,n;const e={};for(const i of r)(e[t=i.source]??(e[t]=[])).push({edge:i,otherId:i.target}),(e[n=i.target]??(e[n]=[])).push({edge:i,otherId:i.source});for(const i of Object.keys(e))e[i].sort((s,a)=>(a.edge.weight??0)-(s.edge.weight??0));return e}function to(r){const e=(r.type??"").toLowerCase();return e.includes("contradict")||e.includes("conflict")||e.includes("supersede")}function Ws(r){const e=Date.parse(r.updatedAt||r.createdAt||"");return Number.isFinite(e)?e:0}function GM(r,e,t,n=7){var g;const i=new Map(r.map(m=>[m.id,m])),s={beats:[],centerId:t,pivoted:!1,flowEdges:[]};if(r.length===0)return s;const a=uf(e),o=i.has(t);let l=o?t:"";l||(l=((g=r.find(m=>m.isCenter))==null?void 0:g.id)??""),l||(l=r.map(m=>{var y;return{id:m.id,deg:((y=a[m.id])==null?void 0:y.length)??0}}).sort((m,y)=>y.deg-m.deg)[0].id);const c=i.get(l);if(!c)return s;const h=!o,u=new Set([l]),f=[{nodeId:l,node:c,viaEdge:null,kind:"origin",intensity:1}],d=[];let p=l,_=!1;for(;f.length!u.has(x.otherId)&&to(x.edge)),y&&(_=!0)),y||(y=m.find(x=>!u.has(x.otherId))),!y){const x=r.filter(T=>!u.has(T.id)).sort((T,C)=>Ws(C)-Ws(T));if(x.length===0)break;const w=x[0];u.add(w.id),f.push({nodeId:w.id,node:w,viaEdge:null,kind:"bridge",intensity:.6}),p=w.id;continue}const v=i.get(y.otherId);if(!v){u.add(y.otherId);continue}u.add(v.id),d.push(y.edge),f.push({nodeId:v.id,node:v,viaEdge:y.edge,kind:to(y.edge)?"contradiction":"connection",intensity:to(y.edge)?1:Math.min(1,.55+(y.edge.weight??0)*.45)}),p=v.id}if(f.lengthv.id!==m).sort((v,x)=>Ws(x)-Ws(v))[0];y&&!f.some(v=>v.nodeId===y.id)&&f.push({nodeId:y.id,node:y,viaEdge:null,kind:"recent",intensity:.8})}return{beats:f,centerId:l,pivoted:h,flowEdges:d}}const jt=new A,WM=new A(0,1,0),XM=new A(0,0,0);class qM{constructor(e,t,n,i,s={},a={}){ke(this,"camera");ke(this,"target");ke(this,"positions");ke(this,"path");ke(this,"cb");ke(this,"opts");ke(this,"phase","idle");ke(this,"beatIndex",0);ke(this,"phaseElapsed",0);ke(this,"fromPos",new A);ke(this,"toPos",new A);ke(this,"fromTarget",new A);ke(this,"toTarget",new A);this.camera=e,this.target=t,this.positions=n,this.path=i,this.cb=s,this.opts={flightSeconds:a.flightSeconds??2.4,dwellSeconds:a.dwellSeconds??3.2,standoff:a.standoff??26,reducedMotion:a.reducedMotion??!1,shots:a.shots??[],centerOnOrigin:a.centerOnOrigin??!1}}shotAt(e){return this.opts.shots[e]??null}flightSecondsAt(e){var t;return((t=this.shotAt(e))==null?void 0:t.flightSeconds)??this.opts.flightSeconds}dwellSecondsAt(e){var t;return((t=this.shotAt(e))==null?void 0:t.dwellSeconds)??this.opts.dwellSeconds}get totalBeats(){return this.path.beats.length}get isRunning(){return this.phase!=="idle"&&this.phase!=="done"}start(){var e,t;if(this.path.beats.length===0){this.phase="done",(t=(e=this.cb).onComplete)==null||t.call(e);return}this.beatIndex=0,this.beginFlightTo(0)}stop(){this.phase="done"}focalPoint(e){return this.opts.centerOnOrigin?XM:this.positions.get(e.nodeId)??null}framePosition(e,t,n){const i=this.focalPoint(e);if(!i)return n.copy(this.camera.position);const s=this.shotAt(t);jt.copy(this.camera.position).sub(i),jt.lengthSq()<1e-4&&jt.set(0,.4,1),jt.normalize();let a=.35;s&&(s.angle==="low"?a=-.45:s.angle==="high"&&(a=.7)),jt.addScaledVector(WM,a).normalize();let o=(s==null?void 0:s.standoff)??this.opts.standoff;return s&&(s.move==="push_in"?o*=.7:s.move==="pull_back"?o*=1.5:s.move==="crane"&&(o*=1.8)),this.opts.centerOnOrigin&&(o=Math.max(31,Math.min(43,o))),n.copy(i).addScaledVector(jt,o)}beginFlightTo(e){var a,o;const t=this.path.beats[e],n=this.focalPoint(t),i=this.shotAt(e);this.fromPos.copy(this.camera.position),this.fromTarget.copy(this.target),this.framePosition(t,e,this.toPos),this.toTarget.copy(n??this.target),this.phaseElapsed=0,this.opts.reducedMotion||(i==null?void 0:i.cut)==="hard_cut"||(i==null?void 0:i.cut)==="match_cut"?(this.camera.position.copy(this.toPos),this.target.copy(this.toTarget),this.phase="dwelling",(o=(a=this.cb).onBeat)==null||o.call(a,t,e,i)):this.phase="flying"}update(e){var o,l,c,h,u,f,d,p,_;if(this.phase==="idle"||this.phase==="done")return;const t=Math.max(0,Math.min(e,.05));this.phaseElapsed+=t;const n=this.flightSecondsAt(this.beatIndex),i=this.dwellSecondsAt(this.beatIndex);if(this.phase==="flying"){const g=Math.min(1,this.phaseElapsed/n),m=YM(g);this.camera.position.lerpVectors(this.fromPos,this.toPos,m),this.target.lerpVectors(this.fromTarget,this.toTarget,m),this.applyDutch(this.beatIndex,m),g>=1&&(this.phase="dwelling",this.phaseElapsed=0,(l=(o=this.cb).onBeat)==null||l.call(o,this.path.beats[this.beatIndex],this.beatIndex,this.shotAt(this.beatIndex)))}else if(this.phase==="dwelling"){if(!this.opts.reducedMotion){const g=this.focalPoint(this.path.beats[this.beatIndex]);g&&(this.target.lerp(g,.02),((c=this.shotAt(this.beatIndex))==null?void 0:c.move)==="orbit"&&this.orbitAround(g,t*.35))}if(this.phaseElapsed>=i){const g=this.beatIndex+1;if(g>=this.path.beats.length){this.phase="done",(u=(h=this.cb).onProgress)==null||u.call(h,1),(d=(f=this.cb).onComplete)==null||d.call(f);return}this.beatIndex=g,this.beginFlightTo(g)}}const s=this.path.beats.length>0?1/this.path.beats.length:0,a=this.phase==="flying"?Math.min(1,this.phaseElapsed/n)*.5:.5+Math.min(1,this.phaseElapsed/i)*.5;(_=(p=this.cb).onProgress)==null||_.call(p,Math.min(1,this.beatIndex*s+a*s))}orbitAround(e,t){jt.copy(this.camera.position).sub(e);const n=Math.cos(t),i=Math.sin(t),s=jt.x*n-jt.z*i,a=jt.x*i+jt.z*n;jt.x=s,jt.z=a,this.camera.position.copy(e).add(jt)}applyDutch(e,t){var s;const i=(((s=this.shotAt(e))==null?void 0:s.dutch)??0)*t;jt.set(0,0,-1).applyQuaternion(this.camera.quaternion),this.camera.up.set(0,1,0).applyAxisAngle(jt,i)}}function YM(r){return r<.5?4*r*r*r:1-Math.pow(-2*r+2,3)/2}const Tc={origin:"Origin",connection:"Connection",contradiction:"Tension",recent:"Now",bridge:"Jump",surprise:"Surprise"};function ZM(r,e=90){const t=(r??"").replace(/\s+/g," ").trim();return t.length<=e?t:t.slice(0,e-1).trimEnd()+"…"}function Tl(r){const e=(r??"memory").toLowerCase();return e.charAt(0).toUpperCase()+e.slice(1)}function df(r){return{source:"local-captions",beats:r.beats.map((t,n)=>{var o,l;const i=t.node,s=ZM(i.label||`(${Tl(i.type)} memory)`);let a;switch(t.kind){case"origin":a=`We begin at a ${Tl(i.type).toLowerCase()} the graph is centered on — "${s}".`;break;case"contradiction":{a=`This is held in tension with the last memory through ${(o=t.viaEdge)!=null&&o.type?t.viaEdge.type.replace(/_/g," "):"a conflict"}: "${s}".`;break}case"recent":a=`And where the mind is now — a recent memory: "${s}".`;break;case"bridge":a=`Crossing to a separate cluster — "${s}".`;break;default:{const c=((l=t.viaEdge)==null?void 0:l.weight)??0;a=`${c>.66?"strongly":c>.33?"closely":"loosely"} connected from there: a ${Tl(i.type).toLowerCase()} — "${s}".`}}return i.tags&&i.tags.length>0&&n>0&&(a+=` [${i.tags.slice(0,3).join(", ")}]`),{nodeId:t.nodeId,text:a,chip:Tc[t.kind]}})}}async function JM(r,e){const t=df(r);if(!e)return t;let n;try{const i=await Promise.race([e(),new Promise(l=>{n=setTimeout(()=>l(null),6e3)})]),s=Array.isArray(i)?i.filter(l=>!!l&&typeof l.nodeId=="string"&&typeof l.text=="string"&&l.text.trim().length>0):[];if(s.length===0)return t;const a=new Map(s.map(l=>[l.nodeId,l]));return{source:"backend-llm",beats:r.beats.map((l,c)=>{const h=a.get(l.nodeId);if(h){const u=typeof h.chip=="string"&&h.chip.trim()?h.chip:Tc[l.kind];return{nodeId:l.nodeId,text:h.text,chip:u}}return t.beats[c]??{nodeId:l.nodeId,text:l.node.label||"(unlabeled memory)",chip:Tc[l.kind]}})}}catch{return t}finally{n&&clearTimeout(n)}}function KM(r){const e=(r.type??"").toLowerCase();return e.includes("merge")||e.includes("supersede")||e.includes("duplicate")}function $M(r,e){const t=new Map;for(const n of r)t.set(n,0);for(const n of r){const i=[],s=new Map,a=new Map,o=new Map;for(const u of r)s.set(u,[]),a.set(u,0),o.set(u,-1);a.set(n,1),o.set(n,0);const l=[n];let c=0;for(;c0;){const u=i.pop();for(const f of s.get(u)??[]){const d=(a.get(f)??0)/(a.get(u)||1)*(1+(h.get(u)??0));h.set(f,(h.get(f)??0)+d)}u!==n&&t.set(u,(t.get(u)??0)+(h.get(u)??0))}}return t}function jM(r,e){const t=new Map;for(const l of r)t.set(l,l);const n=l=>{let c=l;for(;t.get(c)!==c;)c=t.get(c);let h=l;for(;t.get(h)!==c;){const u=t.get(h);t.set(h,c),h=u}return c},i=(l,c)=>{const h=n(l),u=n(c);h!==u&&t.set(h,u)};for(const l of e)t.has(l.source)&&t.has(l.target)&&i(l.source,l.target);const s=new Map,a=new Map;let o=0;for(const l of r){const c=n(l);s.has(c)||s.set(c,o++),a.set(l,s.get(c))}return{clusterOf:a,count:o}}function QM(r,e){var y;const t=r.map(v=>v.id),n=uf(e),i=[...r].sort((v,x)=>Ws(v)-Ws(x)),s=new Map;i.forEach((v,x)=>s.set(v.id,r.length>1?x/(r.length-1):1));const a=600;let o=t;t.length>a&&(o=[...t].sort((v,x)=>{var w,T;return(((w=n[x])==null?void 0:w.length)??0)-(((T=n[v])==null?void 0:T.length)??0)}).slice(0,a));const l=$M(o,n);let c=0;for(const v of l.values())c=Math.max(c,v);const{clusterOf:h,count:u}=jM(t,e),f=Math.max(1,...r.map(v=>v.suppression_count??0)),d=new Map;let p=t[0]??"",_=-1;for(const v of r){const x=c>0?(l.get(v.id)??0)/c:0;x>_&&(_=x,p=v.id),d.set(v.id,{nodeId:v.id,degree:((y=n[v.id])==null?void 0:y.length)??0,betweenness:x,clusterId:h.get(v.id)??0,recencyRank:s.get(v.id)??0,retention:Ha(v.retention??0),suppression:Ha((v.suppression_count??0)/f)})}const g=new Map;for(const v of t)g.set(v,new Set((n[v]??[]).map(x=>x.otherId)));const m=e.map(v=>{const x=g.get(v.source),w=g.get(v.target);let T=0;if(x&&w){const[M,D]=x.size{const h=t>1?c/(t-1):0,u=cb(h),f=e.nodes.get(l.nodeId),d=l.nodeId===e.peakBetweennessId,p=c===t-1,_=c===0;let g={nodeId:l.nodeId,move:"push_in",angle:"eye",cut:"fly",stormMode:"connection",tone:"curious",scoreCue:"motif",act:u,intensity:.6,tension:.3,why:"a connected memory"};return _&&(g={...g,move:"push_in",tone:"curious",tension:.25,stormMode:"anchor",why:"opening on the focal memory"}),(d||f&&f.betweenness>.6)&&(g={...g,move:"orbit",angle:"low",stormMode:"anchor",intensity:.75,tension:.45,tone:"awe",why:"low-angle orbit — the most load-bearing memory in the graph"}),l.kind==="contradiction"&&(g={...g,move:"push_in",angle:"eye",dutch:.28,cut:"hard_cut",stormMode:"contradiction",intensity:1,tension:.95,tone:"tense",scoreCue:"minor_drop",viaEdgeKey:l.viaEdge?`${l.viaEdge.source}->${l.viaEdge.target}`:void 0,why:"two memories in tension — a Dutch two-shot collision"}),l.kind==="surprise"&&(g={...g,move:"orbit",stormMode:"surprise",intensity:.85,tension:.6,tone:"awe",scoreCue:"motif",why:"a surprising, distant-but-plausible connection"}),f&&(f.retention<.35||f.suppression>.5)&&(g={...g,angle:"high",move:"pull_back",tone:"neutral",intensity:.4,why:"a fading memory — high-angle drift"}),l.kind==="recent"&&(g={...g,move:"push_in",tone:"resolved",tension:.4,why:"where the memory is now"}),p&&(g={...g,move:"crane",cut:"fly",stormMode:"anchor",tone:"awe",tension:.5,scoreCue:"major_resolve",why:"crane pull-back over the whole cluster — resolution"}),g}),i=r.beats.some(l=>l.kind==="contradiction")?"man_in_hole":"rags_to_riches";return{source:"deterministic",logline:`A short film about ${((o=r.beats[0])==null?void 0:o.node.label)??"a memory"} — ${t} shots through the graph${i==="man_in_hole"?", through a contradiction and out the other side":""}.`,arc:i,shots:n}}var ub=ut(''),db=ut(' '),fb=ut(' '),pb=ut('WebGPU'),mb=ut(' '),gb=ut(`
Director's plan

`),_b=ut('
'),vb=ut('

'),xb=ut('∞ dreaming'),yb=ut(''),Mb=ut('

',1),bb=ut(''),Sb=ut(' ',1);function wb(r,e){sr(e,!0);let t=Qe(!1),n=Qe("idle"),i=Qe(""),s=Qe(""),a=Qe(0),o=Qe(0),l=Qe(0),c=Qe(null),h=Qe(!1),u=Qe(!1),f=Qe(!1),d=Qe(!0),p=Qe(""),_=Qe(""),g=Qe("I"),m=Qe(0),y=Qe(""),v=Qe(null),x=Qe(void 0),w=null,T=null,C=null,P=null,S=0,M=0,D=null,G=0,F=Qe(null);const V=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,J=(k,X,W,ce)=>k+(X-k)*(1-Math.exp(-W*ce)),q={x:0,y:0},se={yaw:0,pitch:0};let Z=0,_e=0,be=0;const Re=2500,Ge=.35,it=.22,Q=()=>{be=performance.now()},ue=14;function Ie(k){const X=new Map,W=k.beats.length;for(let ce=0;ce1?ce/(W-1):.5)*2,Be=Math.sqrt(Math.max(0,1-ge*ge)),$=ce*2.399963;X.set(k.beats[ce].nodeId,new A(Math.cos($)*Be*ue,ge*ue*.5,Math.sin($)*Be*ue))}return X}function pe(k){if(!(!L(u)||typeof speechSynthesis>"u"))try{speechSynthesis.cancel();const X=new SpeechSynthesisUtterance(k);X.rate=.98,X.pitch=1,speechSynthesis.speak(X)}catch{}}function Oe(k){if(D&&clearInterval(D),le(i,""),V){le(i,k,!0);return}let X=0;D=setInterval(()=>{le(i,k.slice(0,++X),!0),X>=k.length&&D&&(clearInterval(D),D=null)},18)}function We(k){return k==="surprise"?"connection":k}function ze(k,X,W){var oe,ge;le(o,X+1);const ce=((oe=P==null?void 0:P.beats[X])==null?void 0:oe.text)??k.node.label??"";if(le(s,((ge=P==null?void 0:P.beats[X])==null?void 0:ge.chip)??"",!0),Oe(ce),pe(ce),W&&(le(_,W.why,!0),le(g,W.act,!0),le(m,W.tension,!0)),w&&L(h)){const Be=Je==null?void 0:Je.get(k.nodeId);if(Be){const ve=(W==null?void 0:W.stormMode)??"connection";w.transitionTo(We(ve),Be,(W==null?void 0:W.act)??"I",X)}const $=(W==null?void 0:W.tension)??0;w.setFlythrough(V?0:$*.8)}}let Je=null;async function te(){var ge,Be;if(cancelAnimationFrame(S),De(),D&&clearInterval(D),T==null||T.stop(),w==null||w.dispose(),w=null,T=null,P=null,G=0,le(_,""),le(y,""),le(v,null),le(g,"I"),le(m,0),le(t,!0),le(n,"planning"),le(p,"Planning a path through your memory…"),le(i,""),le(s,""),le(a,0),le(o,0),C=GM(e.nodes,e.edges,e.centerId,7),le(l,C.beats.length,!0),L(l)===0){le(p,"Not enough memory to compose a tour yet."),le(n,"done");return}Je=Ie(C);const k=QM(e.nodes,e.edges);le(v,hb(C,k),!0),le(y,L(v).logline,!0);const X=lb(L(v),C);if(le(g,((ge=X[0])==null?void 0:ge.act)??"I",!0),le(m,((Be=X[0])==null?void 0:Be.tension)??0,!0),P=await JM(C,L(f)?Ve():e.fetchBackendNarration),le(c,P.source,!0),le(h,!1),L(x))try{const{CinemaSandbox:$,isWebGPUSupported:ve}=await Sf(async()=>{const{CinemaSandbox:Y,isWebGPUSupported:ie}=await import("./Ma4NfFrG.js");return{CinemaSandbox:Y,isWebGPUSupported:ie}},__vite__mapDeps([0,1]),import.meta.url);ve()&&(w=new $(L(x)),await w.boot(),le(h,!0))}catch($){console.warn("[cinema] WebGPU sandbox unavailable, camera-only mode:",$),w=null,le(h,!1)}const W=L(x)&&L(x).clientHeight>0?L(x).clientWidth/L(x).clientHeight:16/9,ce=(w==null?void 0:w.cameraRef)??new kt(60,W,.1,2e3),oe=(w==null?void 0:w.target)??new A;T=new qM(ce,oe,Je,C,{onBeat:ze,onProgress:$=>le(a,$,!0),onComplete:()=>{le(n,"done"),le(p,V||!L(h)?"End of tour.":"∞ Dreaming — endless generative figures",!0),I()}},{reducedMotion:V,shots:X,centerOnOrigin:L(h)}),le(n,"playing"),le(p,L(h)?"Rendering 150k-particle semantic storm on WebGPU…":"Cinematic flythrough (captions mode).",!0),M=performance.now(),T.start(),de()}async function de(){const k=performance.now(),X=Math.max(0,Math.min(.05,(k-M)/1e3));M=k;try{T==null||T.update(X)}catch(ce){console.warn("[cinema] director error:",ce)}if(!V&&w&&L(h)){const ce=w.cameraRef,oe=performance.now()-be>Re,ge=oe?0:q.x*Ge,Be=oe?0:q.y*it,$=oe?1.5:9;se.yaw=J(se.yaw,ge,$,X),se.pitch=J(se.pitch,Be,$,X),oe&&(Z=J(Z,0,1.2,X)),_e=J(_e,Z,8,X);const ve=ce.position.clone(),Y=new xc().setFromVector3(ve);Y.theta+=se.yaw,Y.phi=bd.clamp(Y.phi+se.pitch,.2,Math.PI-.2),Y.radius*=1-_e*.35,ve.setFromSpherical(Y),ce.position.copy(ve)}const W=w;if(W&&L(h))try{await W.render(X),G=0}catch(ce){++G>=3&&w===W&&(console.warn("[cinema] WebGPU render failing, dropping to camera-only:",ce),le(h,!1),W.dispose(),w=null)}S=requestAnimationFrame(de)}function I(){V||!w||!L(h)||(De(),V||w==null||w.setFlythrough(.6),w==null||w.dreamBeat(),le(i,""),le(s,"Dreaming"),le(F,setInterval(()=>{if(!w||!L(h)){De();return}w.dreamBeat()},5500),!0))}function De(){L(F)&&(clearInterval(L(F)),le(F,null))}function re(){var k;cancelAnimationFrame(S),De(),D&&clearInterval(D),typeof speechSynthesis<"u"&&speechSynthesis.cancel(),w&&((k=w.setFlythrough)==null||k.call(w,0)),se.yaw=se.pitch=0,Z=_e=0,T==null||T.stop(),w==null||w.dispose(),w=null,T=null,le(t,!1),le(n,"idle"),le(h,!1)}let Ae=Qe(void 0);function me(k){k.key==="Escape"?(k.preventDefault(),re()):(k.key==="h"||k.key==="H")&&(k.preventDefault(),le(d,!L(d)))}Ga(()=>{L(t)&&L(Ae)&&L(Ae).focus()}),Ga(()=>{if(!(typeof document>"u"))return document.body.classList.toggle("cinema-open",L(t)),()=>document.body.classList.remove("cinema-open")}),Ga(()=>{if(!L(t)||V||!L(x))return;const k=L(x),X=($,ve,Y)=>Math.min(Y,Math.max(ve,$));k.style.touchAction="none";const W=$=>{q.x=$.clientX/window.innerWidth*2-1,q.y=-($.clientY/window.innerHeight)*2+1,Q()},ce=$=>{$.preventDefault(),Z=X(Z+$.deltaY*8e-4,-1,1),Q()};let oe=null;const ge=$=>{if($.touches.length===2){const ve=$.touches[0].clientX-$.touches[1].clientX,Y=$.touches[0].clientY-$.touches[1].clientY,ie=Math.hypot(ve,Y);oe!==null&&(Z=X(Z+(ie-oe)*.002,-1,1)),oe=ie,Q()}},Be=()=>{oe=null};return k.addEventListener("pointermove",W,{passive:!0}),k.addEventListener("wheel",ce,{passive:!1}),k.addEventListener("touchmove",ge,{passive:!0}),k.addEventListener("touchend",Be),()=>{k.removeEventListener("pointermove",W),k.removeEventListener("wheel",ce),k.removeEventListener("touchmove",ge),k.removeEventListener("touchend",Be)}});function Ve(){return async()=>{var k,X;if(!C)return null;try{le(p,"Loading on-device model (first run downloads weights)…");const ce=await import("@huggingface/transformers").catch(()=>null);if(!(ce!=null&&ce.pipeline))return null;const oe=await ce.pipeline("text-generation","onnx-community/Qwen2.5-0.5B-Instruct",{device:"webgpu",dtype:"q4"}),ge=df(C);le(p,"Narrating with the on-device model…");const Be=[];for(const $ of ge.beats){const ve=`You are narrating a cinematic tour of an AI's memory graph. In one vivid sentence, narrate this beat: "${$.text}"`,Y=await oe(ve,{max_new_tokens:48,temperature:.7,do_sample:!0}),ie=(X=(k=Y==null?void 0:Y[0])==null?void 0:k.generated_text)==null?void 0:X.replace(ve,"").trim();Be.push({nodeId:$.nodeId,chip:$.chip,text:ie&&ie.length>4?ie:$.text})}return Be}catch(W){return console.warn("[cinema] on-device narration failed, using local captions:",W),null}}}Ac(re);var Se=Sb(),R=no(Se),b=Ee(R,2);{var H=k=>{var X=bb(),W=xe(X);Rl(W,$=>le(x,$),()=>L(x));var ce=Ee(W,2);{var oe=$=>{var ve=ub();Ut("click",ve,()=>le(d,!0)),ot($,ve)};It(ce,$=>{L(d)||$(oe)})}var ge=Ee(ce,2);{var Be=$=>{var ve=Mb(),Y=no(ve),ie=xe(Y),ae=xe(ie);let Ne;var Pe=Ee(ae,2),Ke=xe(Pe,!0);fe(Pe);var U=Ee(Pe,2);{var ye=N=>{var z=db(),O=xe(z,!0);fe(z),Pt(()=>ct(O,L(v).source==="deterministic"?"Auteur (local)":"Auteur (AI)")),ot(N,z)};It(U,N=>{L(v)&&N(ye)})}var K=Ee(U,2);{var ee=N=>{var z=fb(),O=xe(z,!0);fe(z),Pt(()=>ct(O,L(c)==="backend-llm"?"AI narration":"Live captions")),ot(N,z)};It(K,N=>{L(c)&&N(ee)})}var we=Ee(K,2);{var Me=N=>{var z=pb();ot(N,z)};It(we,N=>{L(h)&&N(Me)})}var Ye=Ee(we,2);{var Mt=N=>{var z=mb(),O=xe(z);fe(z),Pt(()=>ct(O,`Act ${L(g)??""}`)),ot(N,z)};It(Ye,N=>{L(n)==="playing"&&N(Mt)})}fe(ie);var St=Ee(ie,2),at=xe(St),Yt=xe(at);Br(Yt),Or(),fe(at);var Ht=Ee(at,2),Di=xe(Ht);Br(Di),Or(),fe(Ht);var ui=Ee(Ht,2);Rl(ui,N=>le(Ae,N),()=>L(Ae)),fe(St),fe(Y);var En=Ee(Y,2);{var di=N=>{var z=gb(),O=Ee(xe(z),2),he=xe(O,!0);fe(O),fe(z),Pt(()=>ct(he,L(y))),ot(N,z)};It(En,N=>{L(n)==="planning"&&L(y)&&N(di)})}var Li=Ee(En,2),Wn=xe(Li);{var Xn=N=>{var z=_b(),O=xe(z,!0);fe(z),Pt(()=>ct(O,L(s))),ot(N,z)};It(Wn,N=>{L(s)&&N(Xn)})}var fi=Ee(Wn,2),Fn=xe(fi,!0);fe(fi);var Ui=Ee(fi,2);{var Zt=N=>{var z=vb(),O=xe(z);fe(z),Pt(()=>ct(O,`▸ ${L(_)??""}`)),ot(N,z)};It(Ui,N=>{L(_)&&L(n)==="playing"&&N(Zt)})}var Nt=Ee(Ui,2),mn=xe(Nt);fe(Nt);var Tn=Ee(Nt,2),pi=xe(Tn);{var fr=N=>{var z=xb();ot(N,z)},ds=N=>{var z=gf();Pt(()=>ct(z,`Beat ${L(o)??""} / ${L(l)??""}`)),ot(N,z)};It(pi,N=>{L(n)==="done"&&L(F)?N(fr):L(l)>0&&N(ds,1)})}var E=Ee(pi,2);{var B=N=>{var z=yb();Ut("click",z,te),ot(N,z)};It(E,N=>{L(n)==="done"&&N(B)})}fe(Tn),fe(Li),Pt(()=>{Ne=Ns(ae,1,"cinema-dot svelte-1uwqs3k",null,Ne,{active:L(n)==="playing"}),ct(Ke,L(p)),ct(Fn,L(i)),zr(mn,`width:${L(a)*100}%; --tension:${L(m)??""}`)}),ph(Yt,()=>L(u),N=>le(u,N)),ph(Di,()=>L(f),N=>le(f,N)),Ut("click",ui,re),ot($,ve)};It(ge,$=>{L(d)&&$(Be)})}fe(X),Ut("keydown",X,me),ot(k,X)};It(b,k=>{L(t)&&k(H)})}Ut("click",R,te),ot(r,Se),rr()}Cc(["click","keydown"]);var Eb=ut('

Weaving your memory graph…

'),Tb=ut(`
`),Ab=ut('

Your Mind Awaits

No memories yet — the moment Vestige starts remembering, your constellation will bloom here.

'),Cb=ut('

Your Mind Awaits

'),Rb=ut(' · · ',1),Ib=ut('
'),Pb=ut('
'),Db=ut('
AhaGraph
'),Lb=ut(' '),Ub=ut('
'),Nb=ut("
"),Fb=ut(`

Memory Detail

Retention Forecast
Explore Connections
`),Ob=ut(`
`);function Fw(r,e){sr(e,!0);const t=()=>yf(Ef,"$eventFeed",n),[n,i]=xf();let s=Qe(null),a=Qe(null),o=Qe(!0),l=Qe(""),c=Qe(!1),h=Qe(""),u=Qe(150);const f=[{value:"50",label:"50 nodes"},{value:"100",label:"100 nodes"},{value:"150",label:"150 nodes"},{value:"200",label:"200 nodes"}];let d=Qe("150");function p(Y){le(u,parseInt(Y,10),!0),S()}let _=Qe(!1),g=Qe(Al(new Date)),m=Qe("type");const y=Object.entries(Qa);let v=Qe(0),x=Qe(0),w=ei(()=>L(s)?L(_)?ad(L(s).nodes,L(s).edges,L(g)).visibleNodes:L(s).nodes:[]),T=ei(()=>L(s)?L(_)?ad(L(s).nodes,L(s).edges,L(g)).visibleEdges:L(s).edges:[]);function C(Y){if(L(s))switch(Y.type){case"nodeAdded":L(s).nodes=[...L(s).nodes,Y.node],L(s).nodeCount=L(s).nodes.length,le(v,L(s).nodeCount,!0);break;case"nodeRemoved":L(s).nodes=L(s).nodes.filter(ie=>ie.id!==Y.nodeId),L(s).nodeCount=L(s).nodes.length,le(v,L(s).nodeCount,!0);break;case"edgeAdded":L(s).edges=[...L(s).edges,Y.edge],L(s).edgeCount=L(s).edges.length,le(x,L(s).edgeCount,!0);break;case"edgesRemoved":L(s).edges=L(s).edges.filter(ie=>ie.source!==Y.nodeId&&ie.target!==Y.nodeId),L(s).edgeCount=L(s).edges.length,le(x,L(s).edgeCount,!0);break;case"nodeUpdated":{const ie=L(s).nodes.find(ae=>ae.id===Y.nodeId);ie&&(ie.retention=Y.retention);break}}}od(()=>{const Y=new URLSearchParams(window.location.search),ie=Y.get("colorMode");P(ie)&&le(m,ie,!0);const ae=Y.get("center");S(void 0,ae||void 0)});function P(Y){return Y==="type"||Y==="state"||Y==="ahagraph"}async function S(Y,ie){var ae;le(o,!0),le(l,"");try{const Ne=!Y&&!ie;if(le(s,await ms.graph({max_nodes:L(u),depth:3,query:Y||void 0,center_id:ie||void 0,sort:Ne?"recent":void 0}),!0),Ne&&L(s)&&L(s).nodeCount<=1&&L(s).edgeCount===0){const Pe=await ms.graph({max_nodes:L(u),depth:3,sort:"connected"});Pe&&Pe.nodeCount>L(s).nodeCount&&le(s,Pe,!0)}L(s)&&(le(v,L(s).nodeCount,!0),le(x,L(s).edgeCount,!0))}catch(Ne){const Pe=Ne instanceof Error?Ne.message:String(Ne),Ke=Pe.replace(/\/[\w./-]+\.(sqlite|rs|db|toml|lock)\b/g,"[path]").slice(0,200),U=Ne instanceof TypeError||/failed to fetch|NetworkError|load failed/i.test(Pe)||/^API 500:?\s*(Internal Server Error)?\s*$/i.test(Pe.trim()),ye=(((ae=L(s))==null?void 0:ae.nodeCount)??0)===0&&/not found|404|empty|no memor/i.test(Pe);U?le(l,"OFFLINE"):ye?le(l,"EMPTY"):le(l,`Failed to load graph: ${Ke}`)}finally{le(o,!1)}}async function M(){le(c,!0);try{await ms.dream(),await S()}catch{}finally{le(c,!1)}}async function D(Y){try{le(a,await ms.memories.get(Y),!0)}catch{le(a,null)}}function G(){L(h).trim()&&S(L(h))}var F=Ob(),V=xe(F);{var J=Y=>{var ie=Eb();ot(Y,ie)},q=Y=>{var ie=Tb(),ae=xe(ie),Ne=xe(ae),Pe=xe(Ne);ps(Pe,{name:"activation",size:52,strokeWidth:1.2}),fe(Ne);var Ke=Ee(Ne,8),U=xe(Ke),ye=Ee(U,2);fe(Ke),fe(ae),fe(ie),Pt(()=>Rt(ye,"href",`${mh??""}/settings`)),Ut("click",U,()=>S()),ot(Y,ie)},se=Y=>{var ie=Ab(),ae=xe(ie),Ne=xe(ae),Pe=xe(Ne);ps(Pe,{name:"graph",size:52,strokeWidth:1.2}),fe(Ne),Or(4),fe(ae),fe(ie),ot(Y,ie)},Z=Y=>{var ie=Cb(),ae=xe(ie),Ne=xe(ae),Pe=xe(Ne);ps(Pe,{name:"graph",size:52,strokeWidth:1.2}),fe(Ne);var Ke=Ee(Ne,4),U=xe(Ke,!0);fe(Ke),fe(ae),fe(ie),Pt(()=>ct(U,L(l))),ot(Y,ie)},_e=Y=>{DM(Y,{get nodes(){return L(w)},get edges(){return L(T)},get centerId(){return L(s).center_id},get events(){return t()},get isDreaming(){return L(c)},get colorMode(){return L(m)},onSelect:D,onGraphMutation:C})};It(V,Y=>{L(o)?Y(J):L(l)==="OFFLINE"?Y(q,1):L(l)==="EMPTY"?Y(se,2):L(l)?Y(Z,3):L(s)&&Y(_e,4)})}var be=Ee(V,2),Re=xe(be),Ge=xe(Re);Br(Ge);var it=Ee(Ge,2);fe(Re);var Q=Ee(Re,2),ue=xe(Q),Ie=xe(ue),pe=Ee(Ie,2),Oe=Ee(pe,2);fe(ue);var We=Ee(ue,2);wf(We,{get options(){return f},icon:"graph",class:"shrink-0",onChange:p,get value(){return L(d)},set value(Y){le(d,Y,!0)}});var ze=Ee(We,2),Je=Ee(xe(ze),2);Br(Je);var te=Ee(Je,2),de=xe(te);fe(te),fe(ze);var I=Ee(ze,2),De=xe(I),re=xe(De);ps(re,{name:"dreams",size:16}),fe(De);var Ae=Ee(De);fe(I);var me=Ee(I,2);{var Ve=Y=>{{let ie=ei(()=>{var ae;return((ae=L(s))==null?void 0:ae.center_id)??""});wb(Y,{get nodes(){return L(w)},get edges(){return L(T)},get centerId(){return L(ie)}})}};It(me,Y=>{L(w).length>0&&Y(Ve)})}var Se=Ee(me,2),R=xe(Se);ps(R,{name:"pulse",size:16}),fe(Se),fe(Q),fe(be);var b=Ee(be,2),H=xe(b);{var k=Y=>{var ie=Rb(),ae=no(ie),Ne=xe(ae);fe(ae);var Pe=Ee(ae,4),Ke=xe(Pe);fe(Pe);var U=Ee(Pe,4),ye=xe(U);fe(U),Pt(()=>{ct(Ne,`${L(v)??""} nodes`),ct(Ke,`${L(x)??""} edges`),ct(ye,`depth ${L(s).depth??""}`)}),ot(Y,ie)};It(H,Y=>{L(s)&&Y(k)})}fe(b);var X=Ee(b,2);{var W=Y=>{var ie=Ib(),ae=xe(ie);HM(ae,{}),fe(ie),ot(Y,ie)};It(X,Y=>{L(m)==="state"&&Y(W)})}var ce=Ee(X,2);{var oe=Y=>{var ie=Db(),ae=Ee(xe(ie),2);Pr(ae,21,()=>y,Wa,(Ne,Pe)=>{var Ke=ei(()=>_f(L(Pe),2));let U=()=>L(Ke)[0],ye=()=>L(Ke)[1];var K=Pb(),ee=xe(K),we=Ee(ee,2),Me=xe(we,!0);fe(we),fe(K),Pt(()=>{zr(ee,`background: ${ye()??""}`),ct(Me,oM[U()])}),ot(Ne,K)}),fe(ae),fe(ie),ot(Y,ie)};It(ce,Y=>{L(m)==="ahagraph"&&Y(oe)})}var ge=Ee(ce,2);{var Be=Y=>{zM(Y,{get nodes(){return L(s).nodes},onDateChange:ie=>{le(g,ie,!0)},onToggle:ie=>{le(_,ie,!0)}})};It(ge,Y=>{L(s)&&Y(Be)})}var $=Ee(ge,2);{var ve=Y=>{var ie=Fb(),ae=xe(ie),Ne=Ee(xe(ae),2);fe(ae);var Pe=Ee(ae,2),Ke=xe(Pe),U=xe(Ke),ye=xe(U,!0);fe(U);var K=Ee(U,2);Pr(K,17,()=>L(a).tags,Wa,(Zt,Nt)=>{var mn=Lb(),Tn=xe(mn,!0);fe(mn),Pt(()=>ct(Tn,L(Nt))),ot(Zt,mn)}),fe(Ke);var ee=Ee(Ke,2),we=xe(ee,!0);fe(ee);var Me=Ee(ee,2);Pr(Me,21,()=>[{label:"Retention",value:L(a).retentionStrength},{label:"Storage",value:L(a).storageStrength},{label:"Retrieval",value:L(a).retrievalStrength}],Wa,(Zt,Nt)=>{var mn=Ub(),Tn=xe(mn),pi=xe(Tn),fr=xe(pi,!0);fe(pi);var ds=Ee(pi,2),E=xe(ds);fe(ds),fe(Tn);var B=Ee(Tn,2),N=xe(B);fe(B),fe(mn),Pt(z=>{ct(fr,L(Nt).label),ct(E,`${z??""}%`),zr(N,`width: ${L(Nt).value*100}%; background: ${L(Nt).value>.7?"#10b981":L(Nt).value>.4?"#f59e0b":"#ef4444"}`)},[()=>(L(Nt).value*100).toFixed(1)]),ot(Zt,mn)}),fe(Me);var Ye=Ee(Me,2),Mt=Ee(xe(Ye),2);{let Zt=ei(()=>L(a).storageStrength*30);NM(Mt,{get retention(){return L(a).retentionStrength},get stability(){return L(Zt)}})}fe(Ye);var St=Ee(Ye,2),at=xe(St),Yt=xe(at);fe(at);var Ht=Ee(at,2),Di=xe(Ht);fe(Ht);var ui=Ee(Ht,2);{var En=Zt=>{var Nt=Nb(),mn=xe(Nt);fe(Nt),Pt(Tn=>ct(mn,`Accessed: ${Tn??""}`),[()=>new Date(L(a).lastAccessedAt).toLocaleString()]),ot(Zt,Nt)};It(ui,Zt=>{L(a).lastAccessedAt&&Zt(En)})}var di=Ee(ui,2),Li=xe(di);fe(di),fe(St);var Wn=Ee(St,2),Xn=xe(Wn),fi=Ee(Xn,2);fe(Wn);var Fn=Ee(Wn,2),Ui=xe(Fn);ps(Ui,{name:"explore",size:14}),Or(),fe(Fn),fe(Pe),fe(ie),Pt((Zt,Nt)=>{ct(ye,L(a).nodeType),ct(we,L(a).content),ct(Yt,`Created: ${Zt??""}`),ct(Di,`Updated: ${Nt??""}`),ct(Li,`Reviews: ${L(a).reviewCount??0??""}`),Rt(Fn,"href",`${mh??""}/explore`)},[()=>new Date(L(a).createdAt).toLocaleString(),()=>new Date(L(a).updatedAt).toLocaleString()]),Ut("click",Ne,()=>le(a,null)),Ut("click",Xn,()=>{L(a)&&ms.memories.promote(L(a).id)}),Ut("click",fi,()=>{L(a)&&ms.memories.demote(L(a).id)}),ot(Y,ie)};It($,Y=>{L(a)&&Y(ve)})}fe(F),Pt((Y,ie)=>{Rt(Ie,"aria-checked",L(m)==="type"),Ns(Ie,1,`min-h-9 px-3 py-1.5 rounded-lg transition ${L(m)==="type"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),Rt(pe,"aria-checked",L(m)==="state"),Ns(pe,1,`min-h-9 px-3 py-1.5 rounded-lg transition ${L(m)==="state"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),Rt(Oe,"aria-checked",L(m)==="ahagraph"),Ns(Oe,1,`min-h-9 px-3 py-1.5 rounded-lg transition ${L(m)==="ahagraph"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),Rt(ze,"title",`Adjust graph brightness (${Y??""}x). Combines with auto distance compensation.`),Rt(Je,"min",ji.brightnessMin),Rt(Je,"max",ji.brightnessMax),ct(de,`${ie??""}x`),I.disabled=L(c),Ns(I,1,`shrink-0 inline-flex items-center gap-2 min-h-10 px-4 py-2 rounded-xl bg-dream/20 border border-dream/40 text-dream-glow text-sm + hover:bg-dream/30 transition-all backdrop-blur-sm disabled:opacity-50 + ${L(c)?"glow-dream animate-pulse-glow":""}`),Ns(De,1,vf(L(c)?"breathe":"")),ct(Ae,` ${L(c)?"Dreaming…":"Dream"}`)},[()=>ji.brightness.toFixed(1),()=>ji.brightness.toFixed(1)]),Ut("keydown",Ge,Y=>Y.key==="Enter"&&G()),Cl(Ge,()=>L(h),Y=>le(h,Y)),Ut("click",it,G),Ut("click",Ie,()=>le(m,"type")),Ut("click",pe,()=>le(m,"state")),Ut("click",Oe,()=>le(m,"ahagraph")),Cl(Je,()=>ji.brightness,Y=>ji.brightness=Y),Ut("click",I,M),Ut("click",Se,()=>S()),ot(r,F),rr(),i()}Cc(["click","keydown"]);export{cs as $,Wt as A,fn as B,ne as C,IS as D,ci as E,pt as F,ns as G,si as H,Pd as I,Pc as J,YS as K,rg as L,bd as M,ii as N,Rc as O,lr as P,wn as Q,zc as R,ho as S,Pi as T,Ii as U,A as V,uo as W,on as X,qs as Y,ch as Z,sw as _,tt as a,Nn as a$,op as a0,yt as a1,Lo as a2,kt as a3,or as a4,Et as a5,Ld as a6,Ti as a7,Qs as a8,Ze as a9,ld as aA,To as aB,Ci as aC,Bn as aD,Fs as aE,_c as aF,yg as aG,Mg as aH,Jd as aI,mg as aJ,Sg as aK,Jf as aL,Kf as aM,$f as aN,cd as aO,Qf as aP,ep as aQ,rS as aR,io as aS,so as aT,cr as aU,js as aV,Ys as aW,$s as aX,li as aY,Dp as aZ,ao as a_,wi as aa,Ic as ab,In as ac,cp as ad,Qn as ae,vd as af,$m as ag,rs as ah,rt as ai,JS as aj,Zf as ak,Yf as al,bo as am,wo as an,Mn as ao,tm as ap,Cd as aq,em as ar,qr as as,qe as at,dn as au,Fe as av,mt as aw,cS as ax,Si as ay,xn as az,j as b,Yl as b$,ro as b0,hd as b1,Qt as b2,dp as b3,up as b4,fp as b5,hp as b6,Md as b7,pp as b8,lp as b9,Ul as bA,Ll as bB,Dc as bC,Lc as bD,fd as bE,ud as bF,dd as bG,kr as bH,pd as bI,md as bJ,gd as bK,_d as bL,Uc as bM,So as bN,Nc as bO,Fc as bP,qa as bQ,Ya as bR,Za as bS,Ja as bT,kl as bU,Vl as bV,Hl as bW,Gl as bX,Wl as bY,Xl as bZ,ql as b_,Pf as ba,If as bb,Qi as bc,zf as bd,Vf as be,Dl as bf,Of as bg,Bf as bh,kf as bi,Hf as bj,Pl as bk,Ff as bl,Nf as bm,Uf as bn,Tf as bo,gh as bp,Af as bq,Rf as br,vh as bs,_h as bt,zl as bu,Bl as bv,Ol as bw,Fl as bx,Ks as by,Nl as bz,Wc as c,pn as c$,Zl as c0,Jl as c1,Kl as c2,$l as c3,jl as c4,Ql as c5,ec as c6,tc as c7,nc as c8,ic as c9,gs as cA,Lf as cB,Df as cC,Eo as cD,hS as cE,yd as cF,Vg as cG,yo as cH,QS as cI,dw as cJ,uw as cK,jS as cL,_m as cM,Ag as cN,Dw as cO,xh as cP,Rg as cQ,hw as cR,Kd as cS,lw as cT,aw as cU,Lw as cV,rp as cW,mm as cX,Id as cY,hr as cZ,xw as c_,sc as ca,rc as cb,ac as cc,Ka as cd,xd as ce,cc as cf,hc as cg,uc as ch,ai as ci,Td as cj,Ed as ck,CS as cl,AS as cm,RS as cn,ES as co,TS as cp,wS as cq,yh as cr,SS as cs,MS as ct,yS as cu,xS as cv,vS as cw,bS as cx,_S as cy,gS as cz,nr as d,Gn as d$,Iw as d0,Rw as d1,Eg as d2,Ei as d3,Hc as d4,Cw as d5,Dd as d6,Jc as d7,vm as d8,Kc as d9,Aw as dA,cg as dB,jc as dC,FS as dD,LS as dE,Rm as dF,Yc as dG,Qc as dH,Gc as dI,Yr as dJ,_w as dK,BS as dL,Mh as dM,Ew as dN,ww as dO,eh as dP,rw as dQ,Mo as dR,Op as dS,wg as dT,XS as dU,qS as dV,HS as dW,Po as dX,oo as dY,dc as dZ,Fo as d_,$d as da,Yd as db,KS as dc,$S as dd,qc as de,ew as df,$c as dg,Xf as dh,Gf as di,qg as dj,tw as dk,Ud as dl,Tm as dm,lg as dn,sS as dp,Hn as dq,Cm as dr,jf as ds,Zr as dt,vw as du,kc as dv,nw as dw,VS as dx,fg as dy,tp as dz,ht as e,Vs as e$,nm as e0,Ao as e1,Vc as e2,us as e3,Vn as e4,yw as e5,Nd as e6,Am as e7,gm as e8,hi as e9,cw as eA,ft as eB,Pg as eC,Fd as eD,Od as eE,rn as eF,Do as eG,hg as eH,ap as eI,pS as eJ,oc as eK,lc as eL,mS as eM,jm as eN,ar as eO,Wg as eP,fw as eQ,pw as eR,Io as eS,Xt as eT,Js as eU,th as eV,Uw as eW,oi as eX,Xc as eY,bw as eZ,sm as e_,qd as ea,lS as eb,co as ec,fu as ed,Zd as ee,np as ef,sp as eg,ip as eh,Xs as ei,Qd as ej,Hd as ek,Gd as el,oS as em,aS as en,Oc as eo,vo as ep,Ro as eq,qf as er,Wf as es,Cf as et,_o as eu,Pw as ev,Sw as ew,as as ex,Tw as ey,hs as ez,vt as f,an as f0,xc as f1,bg as f2,Bd as f3,Mw as f4,ts as f5,NS as f6,DS as f7,ow as f8,OS as f9,zs as fA,Fw as fB,PS as fa,US as fb,ur as fc,Os as fd,nh as fe,iw as ff,Nw as fg,ih as fh,sh as fi,yn as fj,fS as fk,dS as fl,uS as fm,rh as fn,GS as fo,WS as fp,jd as fq,mw as fr,xo as fs,ZS as ft,kS as fu,zS as fv,Sn as fw,Km as fx,lo as fy,Bs as fz,Ri as g,os as h,zn as i,_g as j,gw as k,Hr as l,Ai as m,qt as n,kn as o,ig as p,sg as q,ng as r,eg as s,Qm as t,ah as u,tg as v,Vt as w,Xa as x,Cr as y,ni as z}; diff --git a/apps/dashboard/build/_app/immutable/chunks/C-SOZ1Oi.js.br b/apps/dashboard/build/_app/immutable/chunks/C-SOZ1Oi.js.br new file mode 100644 index 0000000000000000000000000000000000000000..85b0c51be5f6dda49631a49935e21e971abc1bef GIT binary patch literal 175072 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Öu3j zaALQJS{Y~QfFrwWhJnPx2>q1Da{UH% z#moAt2?8+Q8Jg{fne`FPcEZ<@KWSdo%BAt{`Wuh_ppII2l)Nx^Y;KBHS{(=PYS0YGlLm>!9~ud1)bA&wJ@9hDg{2{ zBQK_r((ltHUENSVfPIayNOW_9{Fy#Zy87e+iU3yAEskMiDt3XZ)u;Nat`qv-=aU#2 z)Ic}ht%3b~4cBio)BD2p`0NA*k=|e8VApZsI-&S#`;9qTcYv^c$=X;dv_sXVwj~3v z(vnF+Za|+5ZeMM#iTmV!_tUK7q!Epvv`?AHF+&{u&dA0eRe6!G@3y-T%`zUsXl8Ug zoX2D`w-ttX4B`W3-By8AY0>(#EG;i^q3eJ&C3OMB@&`qA8`*nLl>OQrEMc8QCN6>6 zp^4pXg)Czm>U9)}PIKmLmRH+o1`t29;$p5OMH^mZY}4c*@EQ{|kNv6;*@k=*iE>;s zYI3e>8zw=962Jh@;m345uNy*%>}CQD!~LW#NNh0(FGl2wgGLs4;JR5t>(`jLfXo9D zI(DVZ%7cPcS_5qV{M9s-ZSWrej}5rHD?8-_(XQdl54disiRQWtphWUgO+)pOnEGl& zYUf~_5niQ3&BwC<(5D%6Wc)Mor7-KMO%sLtt)~@+gU&&tm(V;A8=lE zttZ2m6`Uh;FHII0y?vTh$sH27XIPXN6EZ^Ruq7QW z8@?!QL1ONQN#!VaTD6d8lj<^%M5VFTlD#=}4V<5snUv?(sf3yRey`?-jGbAw6+$Mj zC;j{GN#P4V}dt2w6 z(H@&1Ba$*~_&%u1pe~2H76K*1@2M zQ=jK2KxPWh2bn(1l{;9LRzK)=d$24zYxpl4&<1`NE#K2rD-N;Jx}7fg)$|ky3gES7 zgJsP1>p~KWA8&G=16M}>NIIgffo$cKqmLDbIr`LoqaTYcG())6L&7FJw)3eEKsWfD zUy)eWK#5`i^A3_k05i!nkO+lFWxJz2^xsK=$|5L2`|Cd{mFE-X3u&VDTdtcHj$4@u zl^r**$vG4y%6%GLVCO_O!b7ydWK>n~Rf8U^=qgh|+(sj(tLQ`{kNjx1HTK6^ITAGK zpEkiDR3eWI-I{DiUKoZ;aY&;@9GTld@NODT@;LIyxNoY)`dQR+o_!c%khIPrzRk=I zaa9&QD&QcFuQKVYDqo4SvctTaazQCER5q2@CgV7r<}q0nB$Zl_W9{+jiAbD9;!T?@W$PKSJ-;l9LY)%2B}Yq|e1_ z9)26GQyz;nLf~dhIovnl6#xVXP^6#+u_8~RlP0t>E^WX|i&`j2l)(Mh+rba$6qKVC z*j_rlPo)XbRqjRX0|+#rK}R*{$zH%fV=57{!P?MdL{40^fO5=xvnJih%7hb(>u^;9 zJA(1-!PY_2^-jdVND9j05Q2dhaB%?D%*BBU@m(Y00iz0Vsi$&Xhyd^aumU`mnM}yo z^UykWJrIrRlCx6Z1vkK5HxV5k#Ki{1>zylrl}c%=yHZyUZ2Vilc1#lly9))KU z9FA7`AM*`J4afo{G7Osl<8iAqh3w$~^R9lI?Q;6hd{6o9T3;*6@)tmnFRkFXdXHci^Z(QN{S34 zFacV{xR}B~gRAgbR?Ns=TuCu*1bKjtFb*3qQ0IbTMU2`6mUR+VjMk!2#l^n3;`cbe zscVa2iRd{m9x-vGh6LdBO=%%GP$V=?yh=mWAhB>3L(wzlOtelBujXm0$z&K~Qf$hG zveM>B_Z6`jXD@B67`W;R`LIvmu z<4_FLxu94Pqh#qnr@;=(< z&6lVm-OqP2H7~0(vt%hh(3=Q?y2=QriBy!J!PC^mG#9c>ZdzdctlG_BQX&%2t1eg0 zTm9@LobyL5Nz^FtH#tHdvA=+1|07ecy8EXfN@3b^r)f%2ub+L*(k*jF%4LJgU`JLG zBD2a-+#vU18TRGy+IOa=?Nh#B=^^9PL~Ug3KwsyPdy720^$-aMO9MGzgHgnRr>glZ z(TX6n4(s`j%!tF7B(-+Xs|52@dS5 zw&-c(sMK6pEd})y+{sWqSYY8uU-TDuwd9NXlBo zH`q$e`&XsSjY`iK`RCTkm^)OK0vdQut@=|L$BH!U(>8rlpJ0yN%sX0Txw&g86u9zn zc7yIY#^o!t?ZL=-GxiE+jeMn^1-Dnx1TSz4><7c(pF*4+*WXe!0)bUb41sC=8~iu zU|0v#RXTPR-9EYg6{zQV2WQO#4zEEIXgTZA*M=Tf`l$Yb9*(8@Ze?&*KI-_zt$)G+%zLY@aT z;HhTMTWUAA=iGkJwNH$S!(=+^E&G+{Y)V+DE*K(>knAMfhzJ}PO8|nmU6fvac_T?^ z57A)bYwnQhEM08Q7lXV;DB#gFE7*n~jnGy92KB2>0xF_bk~Ydsvr3+u2oGZ;PHeg> zPmYR{hbEP=(yVV_)Nr^gB7J8ZmSM?I$~mJ~7UDfpN5| z_L{$W`U+hIQqh#qFXM(|7@SW>L+;zTYcjvm*J(OpvC0gA3ho#JG_nh?Zfe=g!-2 zAm+${PFaFPdny-d47iCuP16^FIhdNHQ zN_6^)S(r;PKz`T-+{I;Jq>gKiT-!w%cy0SCUa-r97-JN*z5dO06pcqz?g%9-otRS1i#}|9if(YeB8odtAHR6HhR=70 zYmSdf4vt0+(Cd8sWdt!iQ2C7)>m~*Y5aPUB-F=5Cpp@DhP0N>FUu_qFP!+wl!DL*P@+tj%Xzc88+($ zn;TE0v0Z3>77W1!V#(|S>E1h6z2~=7Xz>Z(J|w?%`|yL)SV#}IeFXOGY;cF4H9$nN z!08cc-QWdEJCq2x+07z*fa)vYZw)$1eg+6$;H`3j@qmIf%pHGw@+u7!AK$+ukcVj4 zzPf+Whue16(usK2|JN)4G{${}WGp~0f8L4j=L=Ef9LBBOkK!Te%-e(2IXg^N_<%0peKpkvQx7H z@;dw@KhpY=DgU?(AO8iru!Gk#ig!MuDj|yDR7|=*{K0c&HIdJhg_R4CqY|VA%

w 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 XV77u^HV6(oNO2#~%711ouK)iE>KzO8 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/C-SOZ1Oi.js.gz b/apps/dashboard/build/_app/immutable/chunks/C-SOZ1Oi.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..fcd5c957979d5211dd8efde4408a8a3ebd308ab0 GIT binary patch literal 213100 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

OVe4HH_1mTb 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

}2Ggdgd3rb);k;&wF<8()nRt;SPslSu& zFnPag@I43ZGWl&6oc05pK0k+WJefa)e9;k)pa0*?BDlqB6o+88JGVw~xFR4i%K%95 zIMz)#i$25gMn^TXA_^*&IOlKqgK@6Qc?`X_MQ0n5f&4Tv2m7?hY+~2xbrdNzPh^UEd!D@VTVTk!VAfQkrcZS4#2JpI3e-JK^)RFM)@G!cb~&dFaC;o8dE z?C;My;xtY}I}^!mXo>=ig4Ibljh0pe{><&}?Cda?WUF`DTjd0lvs#nZY^};VS!H); z2Z&-VOrjM@P-``S$<}KtmmIS_Ne6)>gT(=7R)aDES`JqeKWEW9vo(wdeoi)!7xd9u z~01i&!d1|J>PilD<;S$k%Fq(ZC>5Gs3y;dF8uz$=Q?;KG3`#P=1OTJl#$8#*IJnlQqkmGxGw4( zzt*%G|M~eq&PW=H9W_EY1{rurBXkn-l`C|UE7!&0_3ny9Fq#a*sedA{N#L;oxZS*M@9wa#bXvBrI>%SUB=nhAm% z)@&5V^M~0yoG^kRn5HfNwDzq&c?n8v19>~~<-ojQG{_Q;w}hSlf(<%tdy$Q+Akb~m z`zW>doOf(;aAcBkGY#~Lu$)yN-ACbge%0*`7qEd6;lqO(vk{H?a89iP6&Vm}_zFj^ z@hqCdp5Zy}!S2p9><`24JnWHpFp!Xx7;B!;j)U0f%^r|Jv}jt@UXIXteBL~~Ilek< zTX}1DXNMeXyKykTorK-RFqpO&+BAHWe@VQzXU*m%#W{Nj!||8mYhJ#;IJ~y<)~i>t z;I@5ud2)DjLS`gobuXS@z6TKu=8Gx3%fgqO#SOtOi9M+;e!q{x$CGHvSI-ola^it# zX5-F33F33KX*7>BbNX-$*8sZoFob2cUuR+mUcNTgT>D%PXJ_VHQk z@*U;ycaoLw&O3*f@6MYY;;+%^O@l|^>VMG+)?nB%Xo4Loo7hYx3>2__hqYC2Q%?2E*ZL2`nI(!+JIC) zit-hK`cTO+1io%Nf$`@@);Yd9zq&Ea zW!?hWrlfq60~L~QY7G8T@y5tAWc)eu&FwV|%u-u3@oR9eoP*-D6^hLAdu57S4b!ww z3Xxo{$imK>8oG^7gtsDjY1rdOR&?_@*frlM>HR>q_TV-?QE_rE+D|Nq8aczre zaLScZu>{w|g6EWrRj*hp+m_`ywQ9xn+!}%K-ID8<>!g$7ic>80ZI+jM>ab3ly0>cYT5QcF|?t&}-7i|I7j z=P>l{ii--Oh;Ealg;qRm$DABS30cBM(R?2ES}@pbPZ)Pe4$2m}?IUH;B!2YaUaNvx z1=hFvht zu~3*;o>QrLZn*CfT|u>8F4Dh!$9HQb_!|L&dX)o~oT6W?h5K&Zw(3sNEmi2>6{q6) z9{h~}Ve@DZg7=uTqRs(USfatRj?lKpSg$!NRdULH&8O7yCVj^**6XCJTFW0S*ZPQ?N8o!JEu0GLHBlv2YUQv{6%3dT z?yZKl)a(IU&|KvQ6e&2ZY19j6-4N1^F~Nx!^I6mjTUR$+p2KvQ1S- zIE%)FM*sFVtHGEkaa*tT=CRg|))u`~5%bR!F$F-4kuxQzXmGu^Oqm00;NyUnMSyuq zHXznqj0#b51FN#OB&of!ahEZq=c`-mjm!2^)M;70?fIVQ>y76l#r8u)P`N~BLp!c9 z_N_vLfVgfcSV#lcEnq%W5E2a%M5RO9ub48DN|?0Qd8u%ICY+Dp#7-gh0u5@< zFxB=XComu6&4G+490f>=lCvIR6&pMd!#&`(ZFym#EC*07XtX|^1_T(5(o9TjBA|JS z%W&q<0FPnbK->G)%?!S_tcG>$%JLDE&#VH$OL!DdL9oYj3yQo0Yh=A`SpI>vzi*BB zygnX*0u3kz5Q^${B)DqcqH_d(kM7jU7hor$d8Y*%4q&%#M|`OeDu`9iYS~!!G(CJz zyMNwYT&HN>?iZtpN%scd$s-IsIr>)bthZWs`j5SwSlE55ciZm41(v>;EsrR&JN%dh zRo1l1I$4D_b~c35hG-ImPb!ibg|-4qulwwdakP3K^gg3I@4!3F*>H$)tzUv`t>Ti4 zy`KZ}Y=Rdb-6r95zL?(Ai}d02o*jT^i)p_ziTO@Se!}(2w&WP_?YAFvLlMgW@3za^ zXfO(XQZIINggAcwB6py|{G5PUXTe;;B;_Qc*$#7k8qa1qj@E{{c%?-(E^R?Dl8F9E z2x@x{P41QYkhCIyHxc^f~Xv1Jvng^lqrq@#1Q^_!zT+t{qbf<=*|C&sL!6>j6<7qq`c7}00=@3&NWl4io+dZ%%>#cQn*}A&a zDTku{eZI;O;>i*oO(xNJKq#Aiup;XtS*$dgt%g-#V|P4^CS1j2QzkG$+GoEW6%4$S z@Fpyt(^TYeP4a19cQ6O`)JM8Pf^l}n7lE9hrDr+J-Q>$0S&>c54#zzxiTY;FT5nB~ z0SFd=t zwh~3LPC;7=%f+L!`XD>mxK{Jrxs;j)-JK)BA2h`B5tMM_5!m1jCVK zX(V1a9HJ88s5%UlYB>OpTJ(7YUW)OIgju^Je*uo65mJYNcOeyyw!PewDzLp2>8atAF5)yg*~8?{O(a3Hcs>@|c(fcSW@#p^87rl40$^|g^b!ft$Q)M!yKs?+KMhKw0lT(_*E zNu%t?1RtMYrlz>*ZPnm3F`p#PXbS)veYmMZZ$5mumHj ztfIcqxlYlm72SHRR`F`ZYTd1xEBau*TCRKLQoU4k>t3y1E|x`A7D5IT6BXd=7#Pdn zu0$>Qm<85!Osx?xbrcZ=F*FR~@gbUr$1z;G!G@axa>b*HF3(;vxjIsL#{4# ze5YQk*K7+k?$w&(7mK#lwHj8bSS{C_a;XezAPm(L*Vx6y7{$4eihF#)hcpLPYseaDD zC~nHUq>N!_%dJpgBkE)BsYwl~i|qEil;&qzYp+$PJhg!qAF$mC4YOjk*aH|bU=#1x zY$c^XdPpBY4u{}oc@NsFrvr}WMlpmFcoY*u6(2W<<6kv zkkiPx@eBe*;uV4vGA%2uI07Z*d^F*Tb2`CCf{Bcd5+fBEni5kLarB_Y-VVl5!n z62ebHd=?O&1;l4OUkQm%yF~sXaNYsig?Y5(K`6N{B1!7 z;%=#o14Y2J1y;if=E0b78wi7cs5!Z|?}0Oi^bP^Phk&dsZ2tndwM_|NyI2y7K%!_k z7dBZ$6mysJ0AjMu^`%-lQD@oP;EDn>dYnRrFp;t@{?X0Zt)eoQf{eO$P%%ft5HPcgS z!kYL4`R^O6$P`;lwPS!-3kZ)ulqkfLMSS;C2>QG=L7xSBpP(^_$8gxVP+Tp{v z-M!aG4ZmYp=uK&{6vIJVZs2$H#gaQL;V#$;b)YX)2cGQ(oM#Gh&xpK$foVpC=v|Yv#1+satmPfNs}dq?ozbNu)o~B?_3=I)VXL~lUIMynY?IbufZ#} zn?E(rJ3qEg+Ghf(UV7GqV2TG+FAW=-cmRfXgXT|dWX+=&<%C!*mi(qi23h$b?8SvX zKYw9!ROx7=1u2V|ZFPX8I;oj|*ll99m z$jSN@u;TWT)hqOLz;5f@(Wo6?L=$eahTMF=_DQnd_YK4aCegHh4zaVKVBV8u zgh!IU)MgXIVdVR=roO%!2`Z%#o zkV}F}TM<-ABdDA~Pz4cG)(Aqx66BJgvc6~0CJW58hx#gejt8cl*b7dz)rlrzKPvGF zzF|9}pNW0^W+7+SH+^;>5V@1Mc4Emq!01k;CpI8g3+WEU9KA)cRKEdZlNCG zZHf#tZMR`ImLyt7KyD+WNi-y~dGA@x%cFwU+KBqx(IzQko06Ef6}wGo|8Z;Zz!4rY z*kLBaKL&wHCmF?QCQIGVR3!H!?qZ<37!kEbg1XmS!9nzs_f*Yc^FN5+GB5CWfu|Mt zyuc^c%;ts~K-ylCKhhjV;mD4W8#)TX7xj(P{HDS<6iE*8_mpRFDB>K7G!8|aLy^Xz zh;t~~$f4-VITUTlAye~IeRsh%h6X|y9jE85>&|WKq~pgJQ(tpZ-QO~YX)2z6cBns=UqO`=yFnAP$wmd zW4H0Q!LV~W4aBo8-P+pm)nYzb%-i6mO5SN@o&3Sy>>Iinm8^4Goptl73EiaX(h?55 z!#6+p!t|^q1A{Uk<+e%uAZdIaV)y`--KA=+QuXV#itx1p7dPK4`c>B}v71p59A!%M zK}>~rtJPw?UaW!J8?88mGtNUWZvM6ihNwAY4h^1lJopet7zhQm+P#g8N$Z|$ujExK z6{al*pS!Z~KqKCKdZ*wG(SJs7+@e=>Yv%rZvRj(05$&s(8O_W0ogc4m&QGqdZe>s# zNbU{35y3#ZZ_KWy^M`ma4JHp!m!HFMRn;_@Qdc03oOFdIJ0jcd)bC!(cb|RdFNOGA zm(eoGH7HDc3amfZ$ZMG%z)5Exp|ad#)1SGx6RRYUVp6r*7qHIUG*8c)$8GZB$~_k7 z)8hLO-h$bWoWf~aAtkTe{*5T;F+3H8&Fe(*_y$6da-7`ki{ehAUb1IUH86=ubI*e& zgyW^QHpBT^p04S?H}RZALZv%(5$@;Fq)Ce4ek4c$B_H}FY|0VEN|ST~a#fj`>AvL>abRS%r#|=-SCPUDLUvTbeO<8-pR)<<-r_;d!#``t0iRo%Zeg z@ZzX>(UpKX#=;c@2+!Hs_m+bRw@J$;$ z?M>zuuRyDNy8(LR?yd;er7B#fSMPRrmZ$OH1kz0FM$pJs^V9^#1fE%ma4Zt&$^gW# z+*j{9&7ZD)`9>8FM1)6bSHOJT`+$~)e%n)jNV@Ug_<)c^jU7Mw@!&EHKywNergj1e zf8^t z8^_b0d^;wfJRpzjl;x{xTHjPxe57qaU9?#ww3RB_{PR8)}KKq-XreSpD=skV1e^m$W9NsHaMvXAhq=VuGhUj|l-Nq+o zy>-EY{E29P2fHZCEVATkSi0K-s+l-nHWEk9gHQGuC@z%U7PNnIOJ+u#I%U#|6WfdN za1eSkV3+pd zV5S)_685fY97xmr+Ynz8al*m2S0cDjB<4Sz%w%R_C~mT=g``x2eC{_eqCL%=&@6vc zx5EaurCRBxnIg(Y{^yPBhB&G(X0ddsVABWe!xD1|SJMWA)J_?oPxd>v@rkcf#ENzr zcEe~H-aZ7q`0-#@*;rXjQqn{2H>BS-$lBPszPUPT-oj-;K|t2P>uG!+ez5A&Rc)7r zPI?!j4efBAO9WsOq1PUcocE4({Q#J!a-5T z3olNv&D3fY->;HsL~8CQt9qm=eW!MvvgcJQ5VB~U3FMoBK4$_I%|NS6pppVq^6PG? zNFr-*BC%`+TyG?^LIBBLTPk`!n2dcU|ARQ)eyLgo4QnQbYC6r?P1o4436Pvc!-y9M z-D_-vOR)%h=Rrutn+PdBT^RxhNDmfup6wKE8zem zH(~~H8VrYVzb_I85VJt?{Ghd~VIqfLPlgv)>0nm7R12Utwa26C$U}e#i&fIvwO;F( zQOrEn7oNF}j}yDaFBfFl3<0D-J$xW9&LQ1)e!t z5ohC*)(zcEn4d8_jf%Mv424rs(jiIpS9(H+@dSKN`@sCFQS;znPEI;RQq|h6aX&`f z+=!iMz_s)4P@W=ohVs;g4Zs<+IL@(pJ!E&EsH^aU)@LqS(tjVv8z$YpzG_{zO?)Tm z+cl0)kaAODxHh@a7nnWTh#<@p@h2Mvg&aH%5=a{XBeu=Q&FoR3YySI?X+I=lXChz4 zbfo5C!jWGYLY$#Pne+|e!>3eLWdsqUNk^A^K&P#++R}zF^^6~3@GuEdoER?F-t#X!(bXO#=T?15k<%Pp#ElLW12pqX#X0t@jP#8!MGmbi%gd4 zSRgP@e<)_EhaW@sAWyxBC^qinYPd`gt*%6mxQ1Kh+_eo&VV`(>|3LP{KbqePIZInd z=jqoXg+*B&nP1C3M%Zgy1QUam2)4pb*oi1t#DqOIaRWw(nfX-Gt{~w?qpc~(Z3gl1 zCWV9BM%_1C=5N7rv#n4;HatcTh&xJcv@H@zl!dk+P*Q}v67nW&8KaF6f6Wocc-6!~ zV(`B5h~qE}m#y2Y_RZDx&tlahl5jYVX7PL)Pu5>qCiMFE(VUwsC+@AB1b#-y79{4~ z7>;Es4i--nwSf~jK+H5;8%Yue6vehg!uRiVXd;IgmNSJ#Fem?I+2~{^rK35XKr&yX z99ey`ilM-5>Y^mXBSk)BWWJ}wv*=H5<5N41$6xaH^~wHiyVoqGA@fsK^2G{({sW(@ zj7)vTn?`asPI-FX_TB2Q@HVB5PtuPPkNOCvY-1T1u&oNpWVhMnK0(-zJ?2D z1Q9eS`Cu-x_B3R!nrA<(|FYduWawwg+j=tJQ1ZcDQu~ajcw>sB|CHq|Lr(tRe2_OI z6=^4pSg`~cduJyHO6Q7srWwB9qNG@RR_d(ETE5ehdi`Y=@vkGNf6`JeiGS{bE+IeJ z|8N_ht{>L3s7pK^U%IHHQ|u_52SX4gX&^{f&efVn^`L=FNEH5YJiey!|ApTq@$BJM z)@fA$FMma&<9s7dz6}&Ykp#TAEgI-PPyZm1Qw&*K8JzgQ(_#}ht+JIrFu?3Lk_4n7 zhY(}Q5^>*W_na0)D;3ou!taPIP3Qu5d)+*~J3qWZid>$6m)#AeNvK{TRbO~jNYocv zF+;O7s4BG~+%ch1vsx=Ps0ZV%_UX$2Uvylu6A)>_v)Zl*xgQmMe72_=C- zM`A%dt-D+WmeM}Umt&X>n)Pn_z_G|P8AGL|P)Z?_;^Cc1J$;eh5E|Tm)#BN|CmTQo`yG*dxmJnJh3(c6xp>&EDHAbfvEys ztCAm$AS4AL?w7e19&rP;bkZ0oR;P>jPN&H+`YBS*Xl^A+Go72OyLV@o&D-0w1|b?hq!gi-DZd(4&h-5vSVf}+B*Zb6Mq?<=tJ#yxc(i`t64IdoB*08> z1MMuEI+D?ktQaDY9&{LoG+0EEvACU9-D76ojV#=p@)A-SbNMRjc@ z5rNe2WX4wIGfRTlw8cw9Zy;J*v~Klp;%t%1W2~7seik(ONQ-n(5IB;P+O{BFI_V(809^NV!-QKo?kPkX zc02r}LM;Kjt>usA~}RkQRA~qO}>> z5l7}3kQLI}K^{H-bQ_0GDA0b5&GkIv#KjAY2 zGvAO$LqmN^LG}h{N=2KNpVs(Y>>kKQKoqi!qsF2X+Sm@mIE;4`&R=CkO(G$eXHI9F zas+7K9A4g%NHoNsRmoyKW8-A_dI)m`72&?Kw@YbLbb>71=-MgE#4ed6O?jBrA4E|@ zWZD|mWz)AK?F}LUD*j9vXV31 z+7fBYX%gDNCvni(JGM_#wGv>C7=aHN`1>uv&lxxhXv|Fh2N2VEFtkNp8pNX$;L$U9 za<*mfd*L`9iBb*;s?NX{`Vbx=I3;+0;9IXb0)h@FEzxIu#*lZ!aVqMXyV|ympN~u| zXumgoJu-f68%5|SMX=05s2Hj#LN!DgRoDo$srebuNP9qk19e!$Ofr^%?OellZYvUp zazRk36C$VBsfp9olAWZG1b*Eix;!%uhVkpsnZjTq(xUUU2_+PE(OQZ{88Zd2W2PO! zZ=YEMp5b`fj9b1)Ow00Ka1tH~2_XARAF55VQr|?7d3WEn8kR{>ha!{LQ|i=FCG`O!Rn?>I{$gFyEPjNcF4#M%=HrYf5PlBZ zLuEd+>M;n^=|bmSDv)SKhdE1!;iT&@?+q|wG&LZaAw^AL59vh6;Xr2l;Oni`NZV%F z9>O+Kw)#j&NEy#IA5`;9Susw@h5?Jyi7MZUB>%U`FESuf<=1?l(FE9Zy)lX}zAkMR z+Goq`OGNes68i#yeTlqoDXyt^xKnL`oEqf`=)-e-fENjy5shBAGw&fCWwNCc)Xf|vTL_$TcL~)R zBFh1KrxF)faW*Ek7fWjo5xy^ok+&5{FvM?Bz|>=!Klzrppq$3j5q%#`T)XiFYKSzW zeSCW(_qLohgmXDW@?i;aa^x2a{=;ti%;g z0~?aGR*4e4U@heUFmra!1bBl|+Ee)s!E}lIJ!4jp57)MytFSd*>Xksfa|}_OSj-D~ z3|V@_`9l_iZnvO(ait>_xpLsLVpeUk*6V%&NGL#aFa0LDf!K8tp_RAZvSBgW(UaEN zo^7?^y3_X5Q_Op-U|rH{R1Wxe$);)BCn4z=U6;1i_P83o2&{yCy)|C)AoMafB#qlo z+mq;+Q=ecmS&L*B$nlJ(v6tDth$FiVD`%Zpd)9k4%jn^q zVrw0plL3XH&27?GqztL?)c#@)PRZH9)gHkjBDr|^8?RXnGp zWV$L?e%Yy8Z>&PiDb+;1l2g>G)t!1-IXxO0E71uwg*OJj=u{OH`&QBME7lv!bLv%I ztLXT8E!U~~QV!nH)QCAN5c6-}x@ReE4J6QftghqHO&WE8R8Ssi>NORZ4!Dyc(7mjuPJ) zOV(7Axh^czT~A7!>z25o-;|`4Ar?C{t0M@EUsKjhQf}>AQ(_}Qqp$||C>tpy!y`n1 ziXHGn_0Nwe!Etaemfq%g8BOCcNm%m*Q#EN6kz8}7_HfgFTtVy)+ryHf7tv$3luc?)dW+GI1Q<^=U2Fn3$LO$c4PFd7vw^Xfo z^#fLuAYer8Q9xX6kU^-*wH`%?#=9gDsuZ?5>G6gVRkI=y z87qq*MTiD&sI1o30+elh%-S(&v*>f5s#9smp6{cs6>tzG70Oeg3TaSUV}3f=eg;@E zokkr@DxkUIeZz9dGQ4`KfiMXTMbkLTI)1W_FY5?(BF|OHL&xN-xkrM;+wcc?_Q?{< zg3q2!{!mKh9wdOLFpnf-ihM5a(?>FzanbBtv}etIvQp+0pQb`u{XB(O^Y`ElKEOyy z_XIh6nsPS5`H5JDsM=MIaYnPqIaO)Z?C<#;8i-<&Dfcx}Errck$&W}&*@P!a7Jje(x)FrVm-G?&OWR5qEr z8a=+5ZtKfE`H@O1%`ruNM}2nW0rD{WrG%!3J@{q;WDM)bUpxN5*H}HiRrCR!$y{Vo zxtzx1bnZ(NxBrR5Lq;cMkxe(L-)|(@0@oc~N0Ul@qSqz^McZtWXlI!pK5He!{ZZu4 z==`UtiuGYl?^4FPm%RQ%(4U6s*%se0Q!8~zBy<|NGVCcknbJW;{h6g1*h01R3`T5- z@1hQ_qCMKqU<})wXiT*e48*#NG$qlu>e~wlMFK-oTq~lG5TSh?%Yo`PhA)oVDO!X` z5z$Gs_MEAm_%wi%wEpp4sNjvOKi=PwZ0dd44uQ_Jz0|pIu+4VF*_4H5WAGckG$-o` zEf21q(EL0%WKI?w=amAO*e-YZqc52by!fiy9WG|3#1Cd?3YNh`fNfHvC!T1?lQ4e( zN@C-$4qk;mL7|5q?q*B>N&>Sa+<$i)pLUJAH!*e501CN!#@0)Ep2%LcM77SpTnHsp;Ox3ddPMKe7JP9~Z%dG-D^4cV@i8 zZS*-zEf=AfQfnMV!7Q~9ZYqnJZ7mUjMDdqR)iKHXOLNp_Ryhr(WJzZcu|!-hF(Y!S zjxZ?>8;_eCH9>ab`b}3m(>w^rJ)Ef^XG*M+HMtE5Nw_%ye9)qg#yq1}JnbFq?vQMO z(OBSM>D{+j7bJ!1vLH|~X`HFQzi?4Nd{Nc}(F#uXp{xj6J{Od{Wy|#-YtAQ`(fP5} zKI>c@Uf(Lo)=@=>Pfl?d@X}cA&u(>dTN)e?h~mO$f|^Mwq>-|}C1+6lJ}YN#`K^g; z0==V3G#tlnl`ljDNK*9I=AuUu*j$|g#3Oc?vxebp)_w@aEDEL87GyOfCtNK{v53Vk zrk|yS7nCi1Fn9Q)tu^MXcoLc9&d|^%u=Rsw*goW9Kw@ydF>BK0Xe`EX05wtfh5KWQ z)N1Plp2y!{bL9IXw4rZ{TD$tLXf8&ZqPYUy6U}8}OEd`RfBs&k<^asv$~Gq6+j4Ib zEvj3Sj-H7`&-nQZH!9g_WuMa9GNk-db}e(J!elb)9 z)FiDr-MZ^9HVl}}ni>+=OyAV*hsq0t;k`o74w9Bi*pNKfv?A--!*>vV64*2)JG0Do ztg}^rPh#??WptzG$#mgKmmY*j5u7CD8Hw4F8Q#dkWatTuZtCzR!#x^@S!mt)IA;%W z@}W@IT(Y2d|E5{gHi;HeP!hh;NR#B&Ib`S1cDN$yIc%}Tifn7iPpfxJWcIkU-B92q84ptJECPRwM(u7gk;&t0TygWI)Inh2Fl1ouBS7sWO7cJ{tx>%crJC(2$ zIY^7hkfh0!yK8&967+6nj%1J)O_JX;lLUPc8EMbW#%J`Km$aR_cyD<8=CkTw+s&%v z*PLP#@!z%mJY(%Ke9j^J4rNZ*CNqxz-adV@!;Ur-WDUD|chbCWpB>$uLZ=49&gnE5 zoP-l%V7zS2uEQz31I(jk$X`i*uvj&EL;q~Ov4-)$&sj?e3s#-OnEp6g^iPkeOQob{ zz6CWrr6>!bfYHJ7&T%4@B`t?v{E;W%4~|EtVp8rnSdTA!OjAG1qq4 z%=$t7yr$2!d1tlG3X4s8ud`1dPii%8h^fu`s$y^g4F_@0zTk+Qf#hp!;;X_WlvT{9 zY+_t`!ElICCf4tWvl|(dDIR8yBtbYEWcP=i#wWTY=y@|5@{96Ne$i|no{I?T)Y2c0 zdKbL5HXHe8dXBt6KiT}$8>Sk>|m$F0kEor|lR z>ofjtKZ>W5hjuW9W5>8ZT)=bi?1M$>v=49IHQTqHB6dfGe!E?+_#hx6Oro%kL$W_IcM`eU{= z3luss8R3y#=JO^-$o}^Y{bv-Dg?*g9IA{mF4CbWQ++sc9W0qLd4yV&#jgigR+(qf^ z$s{(_0lg}JZuR3>42eG^Tm?_zfS8HNnJ!BRw_inTC0*_fTHHYP~{H74Mg;uv$CzVo#?j` z1T?vlDoxlNDOoxd8JuLv;GCZf!rq@b1u+?!GthnR3>=A*M?dI>Lh%kNO}MAU%;r9!yvT@+xauWu01OoSr+p-&@%PMII$9 zO9fhDr4hS=T-_a=H#@g2LiEm9EU*d(HY=IvLQRxfhnMe~m+jl@!{esm=qZzS2@ul( zRVbe{trWw~oi*q8WA3Y|bhOR0sN2ftBbi>E7bsdKgmVzi8Isd!FbZ?JHL1wAZrbrt z*N8hP5%9kEiNE7F+v*|wHS|Jj1-le@K&`0w<*b*-->V1v!gt9A9NdFA2Mli(4??(djZ zHcl^5+Uy}IFwC{IrHcFK1e42`GXtQ()Mk&9ciRnyuqB$PhLvWIHfSdG=I8 zLdTmDayY%ukm250Z?*39AA7mHt!-&Yt<|AYGEQz`O73zIuE98S)w*ns9V80GTumyt zmwyd1R;grMnnqBbMUs1~MjBtf(h!K{jnFGsHPgPoLzXN@;Ev}(NK~H{j#rcncku^iUSN`US)1Rq=Z_VZs#bW8q=1Q4_R?CVO ztYLyS)Z8STPGoS}-#ik}RhGMI`K1kAkmZnGjp5h>(nx#?1_U2GdUc^e7WKMoy)H^I z)eGl5{3LNiY1>wtB-4c-N49mOW@wm!1QJy+0c?mE#x#_i62BN~;M)<4W(za`7Qik3 zywvVP7wV+ZGlO&!?l{Q}SuV8qDai0#RMB1}_M&d$RFZmBG3-tXVzy0b82Nr>>Kfj- zAUvT;C)!eOQ+k@R++aKh+a4e@&|Ic1U*^7MHK-=%%xDwm-IR=Y)YQ6K^4TOlHP!3} zZ!RsPY$i6G-&NArl=NL)AO7pExvRZdq-La6vf3pdI>hU?A*CHdCf+`WJdSZGXT^*8 zAdbcZVU?&L&L4cT+nvTI8V)Mx{z}KO9pAh=GDm__91{}5;D-0M zm^P4zJ}|gf5Yx!E)4@HNb8NOf?c&h<*FpE!y9r;n{Bp&yUR!>->>S`)cckT$_;D<2 zmTAq3TJ!cH>d$Y0OEoe`ypGanYrOQ!Wm#SpXPXCCe-&P+yQg& zED?DmZ_z{?4--DN>|g*v;Fs20wq?m}iPGRYHu|548o#u@rw`l-0MD_}|4{hZ<)Sa6 ze)eH=je7*so=U$BH4)rBs=Mf0dsx!+x`VCiD)iENR4{Eou!pCH4b5v`fq6FB$b#;m!+~qVqL$O9z~2)CJNZF}|HavS7dlm98uP zSupG;))m}{i2lo_8CXE{rvaFOFG-wVSp7+yv?W+Uh@!PDN>0`($#Xn))@=81ZHuJs zo;sh&_ecEw5eXt5IYN8($T3mi(e7k>l-|$m^P~KXM*#xE{nC!HlfFJ2sA3|B!I*f2 z>WN*0sX`&mruB=pPpY$k_T%{mytt2NsJFn18CdAV4C0z zvUK_ejA1nFGY;j6>W;H0NB%BwuI=$klE#Tf+&ADBqcD>$%27F(pX@_$n!LpTaC! z*j=HRv`DDb%dxb(xz~udZ%RcwA?xIxZz0EX{x)70sr}_n4qgQmMN3ngBnVrnm6Tqt8+qE{ujY%|3Bv z93M4hdMVvOEd#-9K3#O@R*E|%@tfg!Qxvzl1HA+s=@K95o!wYOz3L8Fj9%YTocoAh z4YrYamb>RHtH=1wFe~;!ibQC`Vt~eM)dMK}W%#)vvcoL1cRCAG!^#+Vs0S}egEvTb zGR8FoW%Y8?FD0IF14jZ_vL9N7Lm{z+y$5b^-v%1_N(;`ktJVM9)fAF zGZWDhFncXq!R#=DGcel1P~S0S0hV`wV~%(nSwTmJWN{fxx!)dn4uS+^uIp;;ugM8W z`H;r~9rx$3*LNn<_&&IghS40%tOV}YR!;oAFDcxUf94M${)QP%cNmN&aECCKLrR_^ zyJomfz05z5)II!!zq7N0N04D89Y*}L%`K>?m^UaBM}ZZ~8je??$r?S2CDskwGA>r? zXX?hDT#IbFcFyFgsT{P0gfY2A^=O=x1_q_^Rq%(;VD_i3l`IO;>2xuhFGiM%UHWdI*48$pE6r8 zwpfKj7$Kos=Q)AX*8SefC5AWxlBk0cdk3q$)+?_wDzD)Ed4F5XdgV;a@OA){zlM8| zf`*i=4JE50f$4?BiENlp({Kta<%7~fmLsmHvvYfO+Wx}blRIum&kV7xC`D^|1tV^% zYDZ-uJdLsEm&HM&?Tqz)?M6(?fC9JdmR&+C$ZrE zjLn*Z`x$s7l9;B;gk5esK3?31A`d-LY5)Y7B*-6YoBsQmTlNy95T-)nAX+W$8_H}! zB>%8Ic59aSdyfyK+!2aZQd}*o>Qp^m z`JbcbQfuLe<3>e$rdmwKGi%4_O4h2P8Dkko=KLU=upr6v#q?;I~3E zwhaVyoh#E+o$!Ph?{AHRYEyM$Ocg=1+M6Ubgp{54z2b>#%5G%IrprQ3JGAey@)AF< z@Bq#m^?HgUO6vV3tCrZ9DACO09VKX|A#YSw8(#I;#YMkWWS_?6enD8u{o|e0dTlEz zKJej~h$GL-kgmT4($#wPEhznJNWVdkSKnf6z6H|N>RXIW3Q~g7cp{W1wJncoTZ|yX z`||S|w_Lf~Y`KE`?n>CQ1Wd6qELXnV;^hm>QV6XEixf%o{~D$IcN?YruU$z}L=}?~ zDV+anRr23%Rl*mjW}2^0k3lt6@DVzxSC9bdq0tnOOlG zU4D5eqn(}1fccH|tp$qr%q-q6-1ZhL$cxx)K=*YSZB8PV#bRUPEuN0-E3-A-juszv zzAP0KL!~B!+RRm%*ePqpd3GWjQ`5vSMqFyu@iV5maZD?`ICmQJ#59s;#H`WVm|)UqhZo--mZ$=P}E z#aTLyqmq)W^I7BaoJ^MKIV`iXSEl5xe0Ijl%v_ZjSt_?0T=p+FpJrLAo<7-Esw>Uy zKUgI;V0P}1g`#bR`qqF`Y&14KPRgHm{t7| z`-B~(^-a0X-ACgdk4cnP(xL}=RN)~SJWSA20}v-8pAvA5NX=6*LZL}#RMR|{aX@nz zA&Y0piS^#LJEf#Vaf{n5e%M#Gv z29U;TP68LV1oln9r7eMrDzFUv1D?^IZ7qGFQu+r#b9A2e${8T=%~&lwPFBg8Km5TA_@KW0FHeKwBC z3J*JpNy9(@Yo0z^ahCs@x%L1M<8p%yAm$w_f`c()leH(fnN@Es>;0Tn@3XA;OIE!{ zS?@=+UL%zuLV}b9NQpAdWk#vaqUE4^%<_n{*Bpe70?0^o8!)qq3Dm0M<-IuN^F-&j z^C@}CQ@llQubanr=Z80%v#3Y~qop{dU+J^$t^CD2MfH}1B_8|kOhq_cLsb;h=#zb> z2_PoZAxg`^~$nR*RFxfP%4^Of$P<+h&nuO-kwIoQPkbQb~qG~kc$A(8c!CWf#5-anJom+Qm$9MI+5;b#if?_eys#U zAnO#%rE(35>Ta!Af9 zmM)~$Ys+;iNK_SmGMPffs?>-HtANYSOZb#&n3qw{2=C5Ym(9Z)NUiC+zT0VEb=a3% z7UzKSlF!@<>2HD90F^5AFW0O2ghPx$AOy8)1r|52=+{|w*R5!k+^Sz=7~EQsRQGBy zz9JMDrV!{sDV zDXaaWFK7SYr>&>`;HTDj7S8cePnr0&a;4%|y>hYWmFu-4oz>N%SF2b3x?iuAs^pXB z)#^3h^Xv6`y{ygndfD?mzvPySHLqMFD@3*8`6aJjcPp-6W+PgyRO|JUSF5;1ukIR_ zjj~s9D_*HwD>FJ=uT-qN#Y(ACEmw%+PR;X*u3xOwiuFpZTsN&MgP*Pz^Yk8jj^|fB z*Dcq)npY|nD@>TZ5=ecuQY_VLr6Leu`0A@`3So>}aVwQl(XCf1ZqcU`qFk-{#j5N3 zUd6BawxOn9FX^a25$nlixR_5N+ULeKg@woj%_ErUOv4%Tvv!>t71oj_gC`-|%XmGn zyjj2~D4D#`n03UN+W6Oi@eN{7qF8ytN^fPoCA)<6g9V}1Dq!}yM^|<0jUrb1fqI+dPTo?v&P_FG_|QTEK-3tAkJpqEQm+SZw?wi@OZ!&O z0Bk8I8IIvK0g+JzIZ6_~G^Y;I9&ex^!1Ls^j0I>E$(c&UR@Akv0lpk8X7hNIAzCVP ztfx=*PwKr<35dI6jDHKaKJ@b-r5Xv7D_+E86&}GC(D1);gC@HGX9 zN8;5#Y03oDPnxsY+*dW*AughK`nLLoM68~gv+$~6j!hiV8bh&;p(XV5j^$bu&CsZ# zF$sXHzi_f!lp27aDBs14aDl+eR6W^t9^(w-4#uJRoT$)fUg7uga4`yRLgFq67$8xG z4c-}7F_(v%n(8;_$d za5(+5L8kMYCJuG1O08jIUPAy}vj9Ug^LQQ%d3t4r7=Keykr2VD$hbb|x2$zT)6%G` zg;t2x0JX$C@M!3E_P~~L#jg&B?@WNkx$bw=5cq3 zKRR(Xmlo-tA9>V!X5kr;TK!=hPjezL6!loACBkPNIs6S=IR26mS_n@xJ^-Z1GZZ}# zs0S0&1A%%lL#+|iT7_C8s5N#3bjjU|WsqG^U$qB!Ws@Ik@?*`^pw#0GIs30A8qb8r zdo~(>BQ@SOXo?%D*?@*g;y^N!%s?2PXcO0F(zH*8)l|jfRhXB?z}pVB zzZrE=phlB|RXa+~4fa+y^NRu>7^dO9{3^&0#k@3UU!?`CSL(B7L!V)9KaisNA0(O3$isShEkcY<& z8Sw>Z6Q>ygKF~3Xm>z~@nFHKB*UpaoMI36myC%J{A~HT$uJw^7h@!X<;5r-7O9lL# z4d|Ud`0Lirq1oOor=LJZ;A!x^Kcf23>BF!=>)2qAJNtL=;OAc~0}W ztGK3OdXg!J+lfP?9%R4ILqOXvAyF z06c%qGf5~5V2;!TyE{8-sirN^kYb&IhIS(IP^K=YN^7JLs~FT0xR51EL}XE+aL8QF z^~FEY*)Nbs_@s4v-Mpdqei?#w*uR}j!+_dRMdZQ2V>cvt?JmOtqU6q~n zK;maxN!Ysy*3DH!Eq;Xui`Ke;D_P@S_nN5iq_D756Pj6*-T;cB%8pxdHzO-0Af?zL zSlMg-_alW!RNfcS8w`c78zL-*A~k58W+{pd`;m^#);0u|C7pFemq+g4k!(>IP$z+$ z0Q!>zfy5R{eUNSGUnLh6?muGKS@?lNm#DmLn2W~ACkY2HA`|hi8=#d?BJO+@DK^RP z3&r>AN$<0TH%oT2L|13@%SDz^uJ5W?g1(jTsLoJ$2MBxo8APRPFR{jhx>v08r&hyi zj+fCi9*@HD{OIQ7lnalxkt#c48)2yv+)ECBxjxV}>9)Rdec}b-PH|_U_(q$iJ&-TzzYKw=~5Tpk|~>Me@F5s!KBV z7y!s~Kq?gRNijh2{2VE5U6~q+Q|q%F-#Wz6Vl+vG!3kp(D3k!!1lJ@w{r61+WRuLJ zWta+k(QF@{%VaMq@noF}uO^^X!H-e$ z*$vR?d^cs_eNJN86l|M0qi2*=5w(=;|(@4j-?Y5$z9kN{| z9qm^8j!J5rP3IQ7l7jD^Zc6DGx81cAtYf}rrsLhPtinzD{P4JW(Y!Qp7Ou;~pc}%$ zEVGppwc-|gsM1a-x6t%9p1IGeVvM%g40(R$W~?-Uv!tar@$4O2l}fx}XGrIB_jRQa zoKrr%jTdhI=9Vru%kh_<6U+_YY&B@lI92G|x6OFHHnm;vwmc5#=Ov}N zNI5R0xAkSmsTiHTdzT_ljY!e@(Hn;o#$g%4m zFFkhMEroI!UVc5|3z~i{rmwlEC^nD_nrnOO+$q4?D9NCP$mvw0xyTz zh#Xz*<*7=Bq%|VvFq;A{)-e3` zjVY7BbUssCzD%DM29(brLmS(a)0#@mP3CBuac?9kp;FS1JM?AJd{z>Tt5}}XsIG-d zJ@M#t7!Ob;f|M3El9teAX(wAkhWSt|8dq^_*`y{Bh7+!AI$IKw_%@TE=*`ps45U@V z0aCUnfwyi*;c((KsI-~EXC2x0&1=dz^TALd!+63>l7bO$BqwpoH2BG&x1hv%Q#7w3 z+T5@@=?pV%o;kfXPN`4!KTU_v=H+`DDG?t)Pg=L_!^`8Q^4Us8S4%VRIMr(kHr#QHr4F`b z-z)l6*DGNM+Y+$NPNHzD)ndI4kvDkVVK|$$AA)i7w?!~i8?|L4CAUPwji_iJX%Cqc zsjW54d{qM4P_{`oqH%Y)=!Mo>aGD)aZ^{ms9>U@Ndt8C|QqCqpH$>%6pX`6B(#V}| zgd-h<6_Pkcqj>y%Vq8@S{+zG*<4IFB-J(M_a32n$ac4;aUn$fxPa#=^M4K4Z;@>pR zUbqylUv%B0DLjtvj+zN)CX(wY94}d*Atg7J4ot4_CU+95hZ0v3}B96QSsA^dGU={dJau`SO40axh*d z_BJx>=QQ`3=I(hqj1m(yo&;TeqciYlyG@Ty3(`2>G)SY*l>KyBP@BX&zTT=NyIQAPN19Z_~zZwVNSuDiOf%boE%Gq1)|L&=O-943Py(aPOc^hhG))yKC`RS7# znC5{JWn~)n!znyX$f=<2vk+=m`Wb51b6oV|>GhwuJ8#-}`Gm8+^49t%?2W>aagM#P zRrxC<<%sl(LFFiTK@lbvR|LsWqJqRA!?=MV)MAr;yXU-eVR9%x8q$L3;I&5puUg>3~wM*g|Q|skbGj{MWf&cM-c# zw)cbGU_PHl_ltSR<7`CZFu8KkvgNr_n6+}HZ~TP9w8DNo_=1zb7vH}%5y0KGSRQ+8 zPh-)>GXw4La}EVcg;emD?$_Vo5~~g%nxzj&?6BK=k~9_ym@(djZDB!+tVeA9}L)WYHSy<)0FU$ zH3--ScFA5a4(5OVp3!Aj+6#8lr0qE;PtS>2X*9ZzMx(hr_HH^7Ztj%J&|^+h>davd zK75n`MbW_L^xTVZdctUG-q3VMl2-~R@F$LCPlT#mpk30p%=IVjX-nStzlWTP|B)ku-mG(dnn% zg5N)tjmf``wc&r4tS`lnt@AGjOJ7dYmb`tP|te$|s|+vSpPlZVf@ z(WjnoA{NZ?S&c=^Yc}FODw&evqolVZ%byZA+*YZF$yYk&{;KPw>1?fpYJ6{n;B(0a z??JH7JJy9#+4iRXdz}4WU)N5yh%Tr0I z;NconH(g1x&$g#D*bkuGP36c^nZ@mxswwn3by55idA#q^NVviRjwSKrS*>-{YO^qc#38GrLHkIop|AnkuZZw(z{4^uqCtseJ@f%g6k0=X`Ix(b!A0 zozp?OQ?p2VX2-q3%$(m4cgqmRD0gbZg85=A0Bg%ukpCpM{x4#JnU6k@5(=|T2%j!o zu7;H2Kk$~3Smh#5Y=bQjb93RT1YO$S>31`Ar)-1S(vCPpq8)JnVvk;IW&a<;$;U1k zxrc5c>Fen~`~onS4&zp>Td!UI4gCLB*8P!}gTIr*|Hi<7W8nY#ch5)g^_zESlHA~* z^->xsKg>;k2_gn?mtZNs34y;hd-mDf7uzltxouc(Oy5V@&mo(; zia}9Um?J2C5G&~+d-1kXpgRisE1EW^+=BgfZrD-oCkcy5|<7o~9b z^3Q($LDr;>eELw@!X?p+Mx^K-u?!?4L@8!xY9U$mnwrX%ODt|O6s8e_^rR(PDqk3v z1VgxysH%U9*ZPMUxq(FInQM{n6+3$AB{0R46L$ubk`uWp>DJCqn&;ilWetq( z{Q7IMS)a|;WLgd}Jriz|Bykt2A)55EeQ{a)^{N>&Mk+MS*kG^tbQ;|owpNIq{H)+(1cxJdWElM=Cq?3N{`hb!coU;sHJ$*TV1y&CNFZ%Ufq&+dePpN z9r>cRY-=9O9|vo$7;J`j_4u*~{kJEutNztvOD5(UK5c$w&+r+GCB@x)7AD!z`?h5g zgxnj`?U6o;+kEYQwuEGQ=UKyT z@{8?W4!($FO_0t zVPx5`e?nHoDaSucTtt_ikoNpZX_2y=Lje%}vmzwb)s#$LACi43oh!!LwM{S;=j*(W`iK>aM4yeu=aV>LJir6$}IUR4F`n{V#Ut}qw#muu; zJoS{1RyrFfarVM5oa3Kg4~MFYHc;K05NA$&_bwK%3WXWhTnUj8E;i!F6w~pbGn~$> z;d`m`;TAeBqqNkY%P4Hiqee$~R88W_?b3GWxuP7%Dlu${95HlMQ!$A))w2BGQykfm zF7(}ti}Qc3;=?y-;x}pHH)-NOLz=jGhi>D9#qle5TKq`AuKzUu!qRo|^5XQo+ZkM4$AiB^ zn8WX~V>b#(eQFT37~)Tf?3lcN{o~yh(=a)f?Nbl5m@gMaq;UFsv)1i4&#!7-`Y`t0 zjpNL6mUl^9c)0VeB@|S?nO|}($7`bjT0>9e%rCB5Ue77**rhRMsiWwpD&zPu!-Lw_ z^<)|2GP|Gduky1!D042rw}vzFx7zjon{XUo-eYn&`k%!PeBy!spWt}8_9q=L|Ls1K zGh`>35|95(`-^{;FXAsHA*jb`_mF8ke3`rd7rc!=irzlrwkbfo_YY9x2gzcp4ICZ5 zh)zdx?+NicwCa}Wz1Q^6z3W#ZP@8wConU_5FzBwL|1l)CPu$N9y|INn{UtJ0=1gE2 zk8%#;HpXT3atFD77)*t7QNj&^2(KeWkLl&gxjqQw;9{McUlIAjjM4s!c|#sDBql@r zs5(a2&zUo8ViQ?wP>HLa+k@v8I`!aBf{q8o*weZ12YxGJxai6ua)|j@N(uZ{3>{Ak z7a2toYeQ+3+sk>D{Q%Tm3jRCFjoT06FFv9bfM1cmf>YvT7uCS@i3!@3M!))11D>3I zNe27h+nvsTE!+JUN!b3W3^#!u#71CWK7E_O_|RK$|zN?Zj8z( zYuy^-WS&}hkpaM4HBV;qoJkp}H$!6}Qq&rjN-{6K5{dl#4!(h|8LcwfqN`}!lu;UA zZ*saJhDmAqmd0h6t)@5B zbl#7%C^c0j(s&&L@Df*L6rD=OIs1}P9!~PZ{%M2A#A?n65T{ zpr&*5%P>`tN0E^1{@nmQpg3u?wt>**-N+Cs{>}hpY9Jf80~F&BjOGAwF@ez?plzZv zqXzl1c*Lj=Q1YF}Xv?W;15O7hReROAjAg_~<^W{~5{$D%mLQLEh9HtrT3p&-91l=T zR%KkUq`0uoIFizN(np@8EQ9w0lxAIRT&w9Z@;E?goSJc>rpFG40ZLWmG=7U^#0cmB z#V;Smn<$NU<9C|EKVA(`OwwiiGC()x@cqPf0((RgjVDSH;5Pn{lj^`CP{>~s$rPF_ z85==ieEvam>?NX9j%8Wmi{^PtU=t`=fe^S1#Em6VNOOrq=vD^hNC^~TwnPvC6oMZT z-m9UKM4_fjG$-El#`LTq0}A963NvCU;xwdCV>OM!Em#`!jmW^}N)m;duq0`v83QGW zLM>SmJN_upN=~6LcOr!!bQG)=OQeuDERi0;6sjX7P>98GFeD?jKP z#IJ?|pt6BOECdf`Gnx=SmCA^Gf5Wa8t#}EMy1iJJc)rLeZ#MESH`d}Kfm_PRLcig> zpRp$PGJ$}lwYh*L-m>w`S~QhXdzB3m%=uCsD$8-huhI_`%rz+w-v;C&uk`c3HXC-a zGS;S(94@vT(6iKtf+>M%-HCU$=RGS=`Tftx30&M@S6Km-@n zxrvT>W6gdh(1yvGh#7=}8nXV-DyX7wHu0MeY=I~tQC}=GvsM`{)-5IP$TB^7O-r{b zV=X?COESvHo)4KzG}hr)0-2nXjZNksjI}G-V5->UoNR2;rN~%|k2tOkT&Rro*qJoc z<+%R?+53U!o)goRMt1B>j-!NqazK-)Fej6u@ulqF!LU0sYH=Y*pj2yiu*n4doUx7Ns?!jCC|vJBnK z9}X(9Q`H|1_G5&Nv2UNnZh3U1qtDpkGSA|z{yfKpBo(*>MQ2RqXZ46Z%BhEQ=?7E- zXg9`omH$3|bAv8yyrwq~W6d9;Jj1rNUYC>@|BSk%Bypwi$v8{+Mfo}SA=ohZJ$5F2 z9kHt(ta;)Zo?lWgJxJUh(*PiEgZNG7%e715L*SG1cJMRg$>1Z#Jn|W>jIPTUyA7h3u79hphnJH0HmOwp_3U3201$361;jx)bHJi&XvT0wx6%!Q zlVW7Lqiy5$)domrBH>$RQ9o?}LrgO16WAnT!7gtp7np;$*f#hIeO8a6Gv<;KrZEIp|W>RX61cE6Q zM)E;%)&3I8W1ZjDjA75}~D3BT3XYlE77}W}VGDA%DLS zla+)R(g;_gZ87n1O8a8c;!R8_EVnaF0+uf0if|mw0@t--ly_?9bzTee{oKmeRfC3QV+UxTPJ#sCFUwR$9;u6P1fWyb48(o>Gk>Ro^J0 z_)pmMXzh|Qap6ttGQ8nL(^12Tpp8s;pd&8 zvBMM@PdV+jk=8UxdY-nqBVqbxQ@yZD;`qmEqb}@{V6I9c1FgfCL}_b;X^EXC=Va20 zq3ZG?8_D^D!qFILmXs7F{pY21r=2MkOa<90JZ0YYq*|nR*YwmxrD|SgZK@l-NIrj{ zWW`dC^1{`z0C*YoC!(}&H2Fh$d^{*lgN#w^R?cyQ(;)^|$$XVNKYo~DE3EzAv z*dI0f@{6j}Ejc-XJ(l?>+#Tl7Pv*Mll23(7)+nY%Zer$~`j44N)AxxT(8DlJRLe?k z=H$wbIpbGL#CCGrd1v}#*~7~q?z2-~2`T zi(qx=*q)y|GV$6q%IL-@qY2F18w*2Sr#8A=(qF%m>Nv2ed@|QqYAzzkM>evMhfICV zusArJ*y@bpKbE`sORkFM;i)C0SXe+GAz!8i0qI~EZL@!N2ukP z*rS#+BAQ<9VvO_VXk>wzK>pA!-2~$?alI1d1xgl#)k{VAQ;@x-idW&Ya}h==dNh zp#d1>gpN<_p*7R>Xc{Kk60O8Kg7IJJ)!RZrqXQn?5I)KG_qQdk?}9P@;Od9k6k|-a z#mj|)Hl-`@&e!0N<8lgu;OjSETifQG82KZG-EMKORCyF~M!u_E*fFj=WRGGyF9|4T z$M;|oS_MF!H6q5?W>;V;%-yN5kJt1PxKp7Ij60Q$uA^y5I1Vd~$c*@;=KHR76Zk~S zvm0c7J5aEs0FHe`#*Rzc#2yhBi%HSCsE#i6wLi7I(wshPP#@Q&p|iLXJhyf!XXzVs zaRd5bCFarQl08V=Y15MM{)O`Fx|T=l3Gt1vGJVarHLXsJc8LL(DEZrLbYzu+#Ry!g zO?4f;v1nVgRVjHlqq(bHyjOuAcjCuK`Xjci*v4kv?@~QMo&gl7QYdH%3@~h=KeN=v z;@eb^=w2$oKBXy#dljRSiZ_ky@fudCnGawIkGT{iVcr8c#8fa8KsSzEXU-nTo@tlM z(%gJc1Q293gBfwPH zlC8S+II=Z-4B1L2BSVRd%pXld{QX7>0U6S!B-d{Ujc-%)KXs1`KXWDDa>7~*e21@0 z;D=z@upV%;#PnWBvOB*0D5Vrg^-tO;!_VI+!|fYoD6IymAJRsNc!W9Q5tcA;5WDio zM75FT>Zu$GV~CE-l8cVa(ggmwK`UfR`0g})J>8MH2Weqi-oo*SrVyeqQAb0$+%T=& zFsBOCa~clW=CtG20B5<=$diquOcq}0}ixfbb=as z)!V`NL!qE~_yZbhUdf@vL)XzOJknYSpsscFs!&)&U)MW~yDt=opa|E$@m zP;0kqZw5zK$H&dKj@f0(v4-0j_5kn((xcdZy?t?U#{}vo<-B- zmWD1deR55yam{tjJ57QdYAp#ADwP3S6692YWVAL5Heh`clX#3zO1Bo(^_(-hLucq3 z+r3uF8uhE!@@aJqbIEh?HJi*=_`27ips!@mR{+X$@GA!T0l(@U_r`3KliKG#iHKmUH5Srov=U0^iMV1 zj%@qV>m_K>Ok8u$KEgqOGt4Hp;aTMw4a8{LNJ={anFsr5SWC-uT+cX0Y&{ySD3fX; zS@sC*bf^?P?A0h-T)c1B*egZl&@0@KKKb~S`JV6yK7lnBwMf(HXt3kPB?(c6%G!#1+x5@o|n-mH+q%<;plcvyLI-BR6a`i*8 z$Z2p+9@X<;4kYCM-Yd~b*}?dDBgrNbQ?lNC#fbn^H+<-CK5yJ_{=~T7q>MZ7R-54U zrrMT<9p4ai6OB2YHu?+m6dl2G!fk?J?Bzkn*C;jz_ygh-AP@gQ6XV{(UP;-5;ZASB z*2b+8^9E6EJU^*6ibcKEYxHqh7BjT;^;~PAvcgxiP(xI460ZUsW5K*g8yzXTQf&3= zNw3w%6?6=LFoqd(d09?(X$e7n8C(TMsMX)WxIy8U5+p}V8%UvWBgVjF3=C?dwK^QG z6Ci=OA%^SZ`Em7x(#R8NN2_!&KR-;$wgTDU20lWK|1-t|Be%kml@t0Xe9_s|F2C~-UEF#Q_%Vo%zZ9)W%NN{s67 z_*Ks%l>Ggk+@S*?lstQ&>{5?BcAE~;wy9b?d!G){=;MHdoT)_72SRtj`bb8oO%p7i z%;6ycoe<0zlL678Gbd4J^r2(>mK_j2(3X!+2mnp1w+TiXq3RKuf>k|NN~COkvxwk8pfvjkra#i zT$=vkM}iiFO42Xoc2!$)MJ?jN%>r&~$ECsCT%Cr~6xhDJR?@Ol@b50*0vFi6z9BP@ zrv*3|O#>SK^DV`I@KPgOAVE4m@*g6swaX|G8!0kHd#=#Y6zSYOuB ztn<-J%(-aT0vfhRG;EQWqy<5PuRKX9_;&~CleDeb6SdiopQLR_m$9+Pn4~tHq~ruG zh?pPN4{NM_NTVtr1o^v>h>mw_`NOGpL-^sMuZN~ba{DnVzdx26iEfBqy>W^8zDl7F zV$cU$p`XQ|pJhSw10V)oNq}!Qn~ieky4CdcrNY6r;H0pl`-k0Y^`-0+$ZkZpDL5^q z>}$wA)~6cWL&S9zu^U=+l;jcjgxI+%XEY@+XgFt#GjXSwf3Q4%ApaaHta3> z2pWRMy+vQI(i3wO?^`&O@lKATjxMB*4sf|Tcpg*-#iG7|jt=^}1bO!F>05yU`R=6 zYI<6}`CE73vv-xj*qZso9fWEX)-bQrdx;=Lbumj1m8x2C!DgKbHoMK=x>xPy0Deb- zI0wz&x||KLLP1l`lD9@(2W-<4K3?KF#@GW|Ck+wvtHPN1!PK0M2h>GfUcbN3g5m&rRc`pq`ZEph zzPW7bg#sXI*@eQ+rLx89bh@GS`KdLTF7ou7qGwM}mo6Dv@bqvD_ZwexOI*<0d0A^T z+sG}wJUw|iI6k|mb@kFhK))!1#C8jo<96+Y3UD97!xtcLUbT+%b274m`64d_O|iFvOdIM|;HZc2 zCgRwhGb5#2)3vpH_hq};EWIW-Cui(6fw)E<4N=~9{G1mo7LMza5y}OgWl!>Gis<#1 zn4?l&M?*Xn7ySVHrI|A^UCW=&ts&JcVXQLU(`bzSl1tz*ip29k&L1u6nFT(&Y~OX@ zv2m3CWFdC;X{&b999*5Bb~`#+Y<=EHEi%}S9$b>@Xp#<8zd8caav6i3Kkkv`ZY$W; z`6-Z%!F99Vy=ZrIw9EjnwcnhcpG0u0bhvQQB@o}@#fviPrWfnffH-snQCV9aT`2p; zP8puGTIQ-2D#aNdPYRd3F+-ecv&G*g<_Opx!xZTtUkFnj6fNK(N?%JxfRc;I7^Atl z;?MP-F@i597z@)D5(HJz1aDa@Q0|y>YvTzdNUYdA!g3{^?(b+Ciw)r!OZYnGuk9hs ziofEARo?;_)BE&{uEgLSFEv*j0|dhnOql_nF|Rf*BMY9iyy#ucq^buU3o&&*-$yen zsVE}p1sERmtMXerp0QKj4(6BCxgaiw2~_yvF%xHz3|wraZ$x=1!8-+<4+6&V{(gLa zZ?j)kc$VTZvO_R5+Ax&VV-~j}$I=_92lQdeUK=?mu}A5E6%ODL|77Oem@~?M#~SM6 zDf|FYatNJ-L!(e+g@clCy~qX!4S13~G-$#TdDFyJ*8<8l?pXKt3(h&--!FLYF&!GO zP}rI1-XZU$G1NG}$Qp2my~DC$qb0uEeO6^UkMpoewCVTvRKap46dKS9PqhUaqa_+e zqK8{tuHM3#P%Rd3^;Pe-kNw_lzZye^SLt&yWY`6U-Ze z7F3ROe?JjCJ;yi4qvBxq8M?z`SxxTLrqreCz{CoR2dd0*rz33=PVa=b;rSfio+ora z9s>(@u+QZ1b3K}sB`%{C9#xk+7!Rt&;u5Wj_?d1p#gCx3?CT|Sv6$Tn1*|*d=*Z-P z;gat#loPbl(WJL39`rGkr3|{i5ko#faUBrB=E&ndNE>%Fk?7I|rAyFmLc8^vnC~Gp zeF)%dCUPQ$2#m4i9Gao_XWKF$&2!*UK1_8y9hp%jwr0|aG7AMW(zS}zmBWHCudIsu zdxlmIuM?&&3e5Ob!PHCqXc4r?*Jdb0#>JYVj9Ieg=7c~MvqE83Vy+ingclH|>gCTh zktGho+^{qTr8sUbW!e+aKj)p$T+s5RN_CovhA@%lXw+O%XE2^mY~pHpE@8+cOGmyo z6s?XoHOK2?FVXx%8b(Vq!{+GKnXEQLxJrWN=txnLQEq$6 z@{sgr3_BE{c$*CuD|z@Cx(slyRN4OlmG&z?pwht)sPydFkEry+KK%2q{XQZd-Y=u& zjAA}>P$S@q>x?MQ*x7hD!)4The{N>c>G;ILTBX=BK}Y(7>uW#g`qO=M<>AWHCl)#j zaF1G_X?ssBbmgHk)7qwKGFRdlAAsc`FgRht z%o%Y~(ChOgZ~}7XjFgng+?2j=W`Qeo8Rg1`jDt$c61Ie?#hm%VnuQA9TCx&-0~?Im z8fXOhxQuLEsvrwj%4L1MnqhTxsN$J4Aes(~BneZaQ2>DNJ2r=)3)aepYFS`hd`6Z8 z6yt6ZfGhEUJVKc{z`*elB{Uk9w*SMAV)uC*qdB7zZo--l>Ik78#7Md-?T8r!YcA4t zpchxy8ez5`I`ZM_8I7doQB^%(=cVWYbJ=P)Tbd`*z(T+d7Led=QYac7dUk5c>YD=q z71Rzyl(a18rXO8~F9N}Y)9bP(mVJC-30*ENJ^Lci^sQ?vRzMG{kM%g#jKm_2wIh*# z{7^&UC3Jlg(pO$-q^X$N_E4`aHMbNm9j`D}Jf0nu--K&6Bu1RJP#Qa)IiUUkKWENl zUn9C6Cpk28;oNHb3T@IigLs$atsiTkoR#QY8ZnHOPXmeYgghF&*^%cl5-9|}@NyT+ z>XE)YRAMJ3=r*tc3T0Zs`Gs0DeGApNnF0SWv^>voL1!Dt$VXEnbVrjC^%aGPU`jTL zy|pHiEl%44sbTc(c!w%UB8&}^E-Z(Y9}S+`EB9G_fFw*|1!%f%q+_F*PoL@N--%dr z%4}o*{{8{t%(8_bL!!nh1lNueTw6!>CW$+g1|00ty)!pgn!2Y@rLwOhA3xiTrQ3Kt zHz&tbI&NJ1Xl~ij#{?Ka&`YPI&{_ z@(=v-7G6YLk+y6BpqB$DP zN6Q&d@ff>6jYCz#(D%OfGZ;0(kf0gv0n>{3e|I zu`R4?uoq-0NlDiYGw9G$1%eb@)0X+^5XfK z>05p12S$siqjB7<&Ze4(oW5DBVNA5PB@ClA0X7y&4aC=^(dTw9?a zUMq>~Ij@hjg7>o<7y~cSpLhzbkzcm~1q_-qQt|D22GNie03py93=I zUUl+qFK+2DDrkAt)oJ&3g z#Pi80_hdcUCJ)}7oZOQ&@iy&J}DHmyCUA-?dTg7 z?_6xkI;f5I>U|9VJiV)qV?-vDmyS!kU!f3uT)L%vqez*faYr(m4~PGoYk164o9mFO4A7gMVx> zzZQ1GgTmcA@rsq=We_KiCN5Xa=U&x}$fF})@GZUSv*~t(i;>Dxr)s_cjE6IP8T8CO zw|D}C&@j0P#tc&@7PQz*th*tuJk^}NeH~5l-Vg=2QXHZ&?oFvq7yKXo6@P<18sQ(& z0{@5x_yA4tKAPhSx=X&u40ad0BX~(qC^)7V&h%9QnW#LIsth9x1K_I^dlgoC2Mgf#+GK4aaUCG2?sBSlb5i5NM)Y zU4tG<^K9_?w9$QORGtzw`DOF;FSzhN3le+V?e%O zLj}k|rHyt|VGs;EWHngk_Fzj?BaUYzvmA6z0FAV5=*d74V$2Ut zKFxB`QFKz?t*W`FPl10xxh2X4IX$;erkoKRSH5F3y$w&CccBmjmm=^U<0-XBW9DymJxgQc_Vh0(m`4& zuP}SWen=m&cn{cs?NvCwj}phn3Ft`K12ij1KoX|~jxBe((#3w`XUSwX5KbY(vq1;} zYwwQK8+v z3aA6K01prSG;L4KL4j_tETQ@YNhrNxSgo4thpGjj=|RGNF3Juy@ExwWDzs4xg;Aj} z3iVg-@251y(nk8B_8C1(^y@Qv^(2Hk=lM3Fhc!vP)nQ9v7P{{l;vYkC+!U9q z)91tLv{=-g-n1{Nu+EA_F*>lc6k}OOUYlHHcJ_eEtQScq*`fq-Wva^T3>?g*smz*j zm01+&E@-~2+Qii7(lu&LNk(?9$aU8nSw-8Xdy@3*equpEA`|>pxk~_>xdPzkuq+4* zpPjtHjVqfg>Ne4_wNxClotfrl(XQ`-8F?Pz+lKfM(1 z!Gor%QfF9iL0iKmo<~MuLGQpHW{-PTfvq#}35Aro$Sn7$jx3h$C-#Ju_>5NZf-!dz ziJI+D-v)L8wvZ*Z+0^tRuZwo1ysFtc-=-UC+An)=^s^0dQD|MxEEt0|j4_^HO zHp^(CR8SI}ZB@8a0FMqks`b|$9+gaZh^Y?nNVv$2*=ya2C(z~dRdrd!2ayx}yWX-` z?xQaKQR$;P{juM#j``CUeVD7GI=YoS^(+#edhYNdY{ue&X21($N>i3au-;u3E2xf_ z#r-WUP&{Bzi#4q?(#HB>cVsk2x;91?y*d%Cz=Kc?z!OG}b7_msVNC__Rm0B}H$zg0)!#vO}VpNErCD8PiXmcy^eCW7IVxg!U$6=ckSmc15EUm}ky zQ;G1LWcyVagI|>~HL~}RDf_w|gYoH@xl}XpIPOqQUiZ|llsQx3x!{atggi9fH6=eP zai=9ijoUje6o)JVhwPGtBSVWAx`nRH1jh#}?-Sj!h)RXek`XFHm8gssI=8tj$CMfu zRH<=N#G~F^a#k{l^)g_sLW5+xB0bD4u308=*DS2|vDmB7h@m#_&HGPH1WiE$&~9YL zwv%KJ6Yg1}t`4H^&ZX{xHq71gMfDC;RG_Q(0 z!*qu&(+3>31krfER<8&Vy#~`>VWJMfhVYvC(k-K*Ih)aJ*P>5y@SBIfETb8Hb}nz^ z>pxfi;&%zZL=hB=H2MrU0dq^;_G#_>CEo0iIo4C~%$%b9r%k-h~=jCuIo1M#hxTB=+aj9y>RU}hyf=iL$Z;tv-+A3518XcLqWe-_4FrgDi-#;Yj)TgM0o%9g(GB-+5Ll(V4J$L z+9`9tR+b=%vQEWssd@?GHp_Qh%4ryDF}HW zrIFyh{kod?vV8@4Uk zw?1Sn+tD}Gv2@cPhk}sEh$xcFWQ{_I04;FVctkJ*oG~&H$Ykq~_xfm#v&X&HM|W9O zKyH<@AJq|OIkhD?!(BvQ`=HVoejVuCX@Qf*h_PweU7}lDsjgmts*dc717Zm=O|l`e zX4>j$8~`-45@}&vr-W+FYWH^c*=_(zhmd#cXkD~Ix8Q86PET;$vQa%|Dqj_yN*7@5$Dx~BjPbKWt8{C?p*hBDI%q~9&L^WzRmFG& z$rUiPOm$py(D(s4V@KbBlYzKzQQjdz&R9L-iZBE6BK)~%I@Cnn5o<2W%kX)mmItjg z%4WoU*D;rFq4&4}b740Gr*6Xkh$9nLuT4P9V@VDxMrChQeYioi*pcaxkS6DWIecWn zh>+*eP~SYVlot*|ND-0$=sG=VF9Qac;gF~2N0%oZT_56(=hEc_o+h1E!jzyyIU9Iv zhyt33w}ly+(sRV(*9z_K!Qyoo5=5R?2BL16-fc0+%{bL>MytizdbuYTh%}U;TI5Qo)YH=Y4 zZ|Yc7Bv6e3l@PN9ssLP>H(4+t&D%`KcZLrf%?{ju_R8U&o-}}7^`+cX&_3bP5 zl~xDN|hRd^b|@HHP1U5EoDL`${hM+{Ip9bWzEro-=j_WPsKjf0eKAOK2s z1px|*pejUuq~xYm?MhWoq^fVWRSo~2fbnBkwJWNgh^lWM9?pY@hx3;&I-KzPfc?Hz z`u8kjXu-q5w&6v9k79eUv(Fyx?32vSQc^&;poo&x$QSmuO4$LVF58`oT)Wb2JH&7j z(DTy<3xn;rP6Ce1mb>!DSL({ar+4LLR#y_ZUZ!^C*RRx-XP@4c>#VLMa9yW%g{(e} zPFoMqX@B))>9qBw=(P3VUb9zUk4{^kOQ*LI%ZK}9t^OKfX?=ZS`EX~wPh88vLyOt{ z!izchVyiiLcr?tfxSWHpvz{N(E9Wm-(7|7@q94)S*(!d6lFk|n91EoK<2LKLl}Wn6 zV<7aw;t@2NDZbAlD!C=*TDd*gZ%{|z7q1Vsqky_@F_0QY?6SxvtEkGKqWp@;_oe)QMfv+8-9Zm2!4)A{T!A0Nq`O`(0`SqeCelD zZP@8))a-vrSP#OVl}c19Y*w(6Xx5mMXz6mV(m5$YW{jGTsM8Mm6b){}_VuibwlBwF z+>Ycx&$?d9NG98nJkztTZ8DO<fTT3)I8@9gvd=L^q%KjQQ{=a{(~A>NEom6eux0KK3}D}M~~|D$cM0|xw*jW%_e+$j;Waoc**r!8JXA;&pr@*(5x1VUgYS= z>UsUDQ<5?E9MFcQqCWmQ*qPy{+S}WruD$K+huYiT{o9g$_;eDz*1ZnI5#^B&Oi`DB zSaEJHdW0%h6UnGPLCsw1&ju8=WbaI!S!rf^T&=KNtqOP#cV;EBB0~^enpg&-H&O?C zy-GiH*XP0Y8smIFkA~Rm9rSrv1kJ(DeHmgsMVeOdJKqD3ZN+`C=+oD)1I?E}4(a3Q zN^=nOm#S`Di7%lS7wSqt=qMNgr(X@^Cp7l-dA=bz|CJA!Q)Ifshf65Nuvm|4E|?)!H- z^~r`T96Em{dq0A^R*$DxwnmCSA~6**OJXIxvzf(8mG}SMlQjfSA&2=Fc_W|8Z*ou8 z&c?_+S^GV+zj+r8Pw5ZGvT0*@S3U$h*i_Vo_mqv9`lSJl_(j9xd`{{)`$<380H+_c-5Y$Li9Tz`XX!Q4A=IJIrtNS+Vg%c-P#O9ojVI zsJ>**qb{>^dF1LSt1;4|dy}&0qHuvBMIy*8)h}9?r)Qw)TB~s>Wm&3Sg;~&x_cH`Ovf9(`LJU(Kd2rLwh?a>QC9xV9{cdFVThRf*P5x!Ql|8 z9h7|MYOx@0-2{c#;=Av^e^<2FA6U>)v-k!fIx^J|Hd27i>(~}}zlwHR?;Y5u=fEc! z_1*9+M@a>k*uO*XgsnWR+e)89XbglpzS*T&<^BfoM3ef&c!%RcFtt29W2&CM}DL$lplv2c!$}`s=Gf{_@>B_XhA8#)}|^v6|0Zb+0J}<;`DV((<0JLUt}Mx-rnO zu54I{!kUDK24xqiUtF{sP{@zLw43$rpw@2IV(n;?p< z(-`neGPhD;!?EMfgoz>KQ;^+LUT*OEwEHrBq++x9AgU|`*@F@<8I6r7Dk<}cOLFR3 zs-K-+UP8#*%d^^fGelTd!gopyxjLs&tshfrFHDo8BMLtF%?dyLf4$sWzrP!Le=9!M zdT(#vj!IAaMg7Io$visST0?pFh3$E>La$Z=I3 zmMdaE{~vgV=W34r)OBvD`?n@DkE@%^_}?X-Gh32eu{MOs0?Ce`_w+cCL zz1`<2X>W^fi|_~1)>`ka_qNk79_pL7UNNmsVvl68%`ZXfT>i2`Pgc^xeX@$%DCF~! zj49--iC*=dhhM%n1H<$Jk&(JSV2{k*cW+ZShN%?7n^9Gspv zn!i1rfTNlu!~G|@G!DYKyKkb}eoWC<-MYw0eSfN(4aSG>CX0e%byU2qXkX-8Q;Pn_3r7#`C}WZG*IAZ*Eo)>2KXrrI67;dH-N7=zc|kt zr=c^yv20QIjbo$~Z(W^rPcP5jD1-E7oCg{n0g**&rE5RdvL?h(Jrq@jLEb{&fx4F2q7&#~dN#~&*QoiW6} z(!Wzo?%;2LefoEdZTfeFU(@^r{%r-(QU}=Ll45@U)VN;^G)H&XFHL6NjQhkp%>NH} zX#$sBIj8vU`*%h@U-iLTp?S+1CgS59Y7^WGugS1~n{B#NC>AD+hE0y*Fz2(D_BX zRXa-oySVv-41N00kx^oBarCNL?{+S0;i?KtcTIZ&1Zi9GZteV}d9IWPt5moF05MB6 zwQ<_HJge24t>(EjGGuOf9z;n^jDG91(>c9vN`ol872d^0^8B=O(QRK`zDWQkM?Hj% z@IvHMcj%bOCfCoJwRZiY)=dF!JHcdX6VJ;oHE3U4oxD76b~-8L&(kL~Djc6$%e6)X zB4!SggLT?IZ8SUe=6SuDTA(|%hVN4wE0r8{U!K-~QJd>6$PgT_Cdzd#oAs-+T003! zNkS$(qY24UAlI-x%fHJmd3xS$o_9{W($u+`laMm>bK;w`RNz*#TRT&M&DmmVCYR6I z<;z+O=%wjRQ=nefI)aS(@Zd(*IX!bF$ZorK-k}Tq;yeX7QNIiyHN(%G-Lx5<5@Kh} z(aUD@JTXB4pS{>wnY7V17gx&&7AVHmH9ZAsjylRRq!?oX9>J&tS1u#Sttb=0Nc2~! zDui4v$jP`U6hg!(u3RLdvAmE3l}c#k!Z9){P$Wtu_k=QC z(vAq{O@U2rK)JlUAVhf;Hic9x6C@MraH3S`B>9#x$i!P9P+_wuaw?WVVph@$ZaE~< zv8D}FM)9;`Kt`$_0s>hae(Twgfli?#DTq}RDRf50t5O+(Ee4)Jdy;t4#xJE<;xtn* zMQ2%vLWWE~-_kH7yOk)Eee9(oln=c)QnhgE@gd`k9UcN(qD1mgQLv;e1wUo}*)5kd zk{)HxXC}SkvVg`rmDo|m*vY(HnvR+mW00gf1%s-=0g(p94q^rNYFUXvUR_sW5c>&; z{TReS0^)!}Fi&|`%NPK2-=(hejZ)MWYS2 zKN$-7Iz6svL}4M!}C4Q3((0vg3e2Pka3Hvm@2>H`qmv;zCt1rAaR9Ap&` zhfTcDvz*Tkta!m3Ti_!te!ArJ6ePoFhGwZ{Q%W7krIIZUiGH#+I3<|wd`9MLCODTc zzx)1Omi+T;2s*#89FN`zyH4F%64#uN*wt~+y%^LluAA-JN%LXB-`wrs(pUi1Z&VB8AwFDNx;Jr~7G=RC=>d5kUUM zvdw>#K=;dCwD0c|PkWHGh z9R8c{w&~Z;&$?lPWm9OjvV(EglB94K=ah@RjO0KGV2`Eo5SIf`>l_GGlZ+xSS6W_5 zjKS#QU1x(Cc0NiLfr_2Lmr|pk+9JrBWZ?rUJ;jNlLL;yMYDN7AW89h^=JQ5=X5Kl0 zuL+Zm9L|+>s5M759@!OhF{Cpn#1a{pM5RiYX}PG>5e`G=wfS3D`QF;!L>>)%oteAe zxOAOA#25TdgE@0X&6NG9jjxosFmGGp zyW*s1Lb$Kuyy&1?{9B+|$SPeo+ui1G?BHvorH;BH=eS)vf#*k&x6-Q?MBgxnQ*Mtu zK)2wMJ(kv``voK!V$m_nS8Zl*!|dy{ z>~3gM%VK%#l+g!>5hCIQBy7$G$bwKqzX(fR$`FDd@>dv~I^8XZGtP;wIJVRejPs(; zc|8?Ev(NzDqAvG#$W7J=egn(k7Uda-med~PpyT{}B%)Vjh9S%9PtLJXD~3JZdqgVkc>-W40vsIK@f$^khS%Ym_iLL7Sz zrX+XfOd$7!?ir8JKfiP9;uC7vcKEQ(YXV~)o#=*kOwFb5@2{EJbfKVqfVr!FC=|3t zX=Irb+wpvB=;5^+*p%NhUWxcifaV0rs;0(z=1h!Zv~bDTS{aiKQuR(*{Bj1^(5 z@Jw^GDi$S2IKPlP;jAX`$f#@0iH9p{g#-2}uPA)W($sZ?yEK)>Duj@9%p;0>r+7pW z?oikaP;Wfk;7s^NVH;4%+VF55igl=>P7PjE)aD@WRc8?S0r1TU0TH*CoQkDC$>Ag&dIZMox%-Ee-x@LyK%9Q%6>vEWKon z0LQU1Uys3}&M?IjMm$TbD<-4V^ptfavNl^Mddn14S*Q$OOogyVkbMQQP<9>SGrz3h z*#-jbZW7&!RU~!c@ztm1mMLg^-_+;*b-7K9`~`z0##X&?Nba?Z^84RQS_Z^jZ>?&Z|6CsE!4 zK3PuJp>NeZ!*?8;rFVSO9+~b)E_CNvL(!5;{*{&AqAyobE_=z!Bk+)s-V4ZSnBJ5~ zb&lwF9#OMrPpXT4=TV0XltelcFy&Ea;aa{l${zjBOVKw6S|{AcLrUv9z#d>+KFkNp zyzwqrK3R7*?<6;@S_idI1D&8_v8=A~2|Nd)SNJ%Jko5s~N|u*4hKDEcxMsPIO@$mZ z1f@r?mI?10M5nu|!(Zj@?>_*)>XAahgUEhV@PRS@;2wIUWX;V9DNVUe5MUn=yy$i4 z3EZ!CqV*cabkatQMQE9;OOdHbfI5O;!%{+_@DRsHIS#>Uct##crBPl9ZjN$+M+G?} zlouA#d0pJ?ZU}z0B~;_9%qWeoGNNO)3BHl8Yd1s;TkS~4$ok1h`@(4PmiS!j1H5i0=H%2b| z=5N5L#y-QRSTtt|G2LWz&61@jSJdHkOYc*tO_SvJEp&rB(yQu=GJ1(S(HrH9GJ20Y z(#zwEGWrc@N%RW%qKsbS4tp4SQAR_8JIVvji!yQuz9|%Fr{(usG$HsUOP60@(NQuv zd@Dsy5_$4#6j~De8_QQ;Hqo1ubol`jSp>gk5XzevGSzgYwsSVd(t9SlRFgt9zo_Z* z%OtwOL&Bcvo?#GS_{9q&x`lZNpAuh`QA+}VXG8RcuNiU0V=P3= z$6c%135D2XR48Z*VLp0)zaS;c`>ic+Cc5n5vfTm)c(U}H@4$|a*B;-O#(<#c)@87B z07Vxrqr?1SD)(^9kKeq1MchWz=m=|3G^7r+R1#qXgr~;|gmFqxilo`-q{*Mz&X%OK zMn{&}qVO;=Mo2vV86OE!9s&&rk9%AiFk!wLs1!x7h{kJzVsDDZYg#fb1R{!A33AYs zSg42}ao)AUI2vOVeh@CQhx z;Ssv~@OqN0hJ{r%2FLqd^d-r-n;VNK1_xK`}aNj0=T1K@u4? zuB8%^8jVpSg@Qzwxrx5BK&fgo8Q?SGjXQ!QVrl$>*mIk~DK3O*v3)LP=#*||p!CO> zSPv3niGO(+egrfrj%j)Ym& zDa)guQLbd7)!?N?QUnxPOSv3|r$ivKZB&f|g=rC3(*9}AfnzyQ5!JrynuANJ5opXb zsw0L&N{)bIc2I2wE2m0h7_)eCIA$e10*~1@O*piioB}M{FCE2;oF~UJ%RcEztY|y6 zO9_LdC9hJ=NG%XEGJZ5uTe>lfyer0%0<#UrrHdhivm$<5>#r_Weh&0 zS?Oj!zr+g4*-_!7mCqF`7R!)IsAGM{tMOAuSTfQiVu|vk2uRgbGIn-emCWeA#x<`C z1+7Nz?{5S+Q%y2Dil!2hm5pL~{FN_;ou1)^LNZN>^^QW7Ap>qhOem6$Fjy7}+ADH@ zPl%4j&cxW+xkgNf+30}Gf^k_~ml<*kh3k^#9kT=^sS*Las!oRv2rf$EH;OC0$=;?)gryY06BWi=jGkHVb9>q{#B8J!euKqP4|QnE9G>W*v_ zYAZ&mV;jZvujman`h0=QXq26Oe_uu^iW_ikO{Stue>uh*HeTW7zch?N@By>w8(jW% z^XTL(#aA(S9!q#9HnarxxyYkv@9#enJ%&4SUYys_*of|N;bY|?kcx=D%A?M#Mr;wj<%OiGh3WKwG4{v|h8zG%rURc=*MhI)gN zTc}=_q#X5Tl$LRx+U|_Ijsy|E&!lImHx~&eb~lOVWLB%(Hd4~lQKnuYB!I*l*D%_3rb>p*_?F;*46_>(U7?hqPpr&H-8g zJXviv(|{tTOL8GD598gmGC)O=VJWAg=G56GFU;Oov#Cf~%07T>CZm;7pFt|4pi=4& zkeVhtm0*5UU}TA@1oRUCg;Yh#_!n(#L@}hSpCK!h%E|qwLnGgQ<;+Ty$!^MW=6;k3 zEPS62pI($@`qjf%xaq)Wyf{|e8)4OxS&K^4ZRQ{5KoKz!4wVBK{jwXh4LVU4xDy^gBd z7>&`C-5)Q;pg1w@wfcD46RqE?^Z~K6(AYhKYUXOXq~lhH3T7p)gV~Y8xN49Q>KgKH ztW|xS35qm=!yDQhNlMVh3YkM1&_?Kh-y*IJEE2jRK~hUJ>O#BQGp2~Q!nl-LKD*P{ z)VXvlUla4a62gIKrW7pzZgr;AJ0EgcKpCoIqM70K$dMRXvPu|;qwT&|k!$0r- z6@jM@w_Q|kpxxfPNmUMn009Ct317|2lgmkz;3ctB+W}I@|NfpCeOR)cK)ZY0&-I@7 zw1-&IX!JcAjb=tAPjy42bwh8KdZ%L;2GhxD*k>SMWLj`bPkX1QltQ65o@CR)TSn?T zBdruFB~i!gV@@r+Wu(3{(n_K89pS%kh0gbP%=umlIgr=aT)I#HFSkzCkvZSrh52>- zGPUGt3_&KqeUlfJlkWD7d{7V`Xws(uqeb2YMoc| zi06B8DIzdXrGSWzD~-s&^S$V{bW5PQrJhDBZ(rOpjJIDo@%FhMr7Kriq^&akmfn}C z*dcrZ4~^R;?=y`=A8Ig>d<4}lxio5fH^kNVqXjzx>;+6we%&Sibf(drCn^2J49fO~ zaq~U?tZ^bhl;o7hm(5of`IFE1PQvPLaxH`B?A20CpVVCqz9_s+Q2LJFKAUTgBCM(d zJZ6)3Y9iM%EJRAFOGS7;iB*EAR3sDTPsiQR<)J?7xwBHyC@>K>`5{c03mbj|cd{&4_BaeQz2m@VYy}r}d!8e=V6?|MuciGwa_`o`|cU z>x2{Lh6;>F?LiECzjWYXlm;{Xq2r0cA6m@mxsed4ZEco{_B(hR#f)0FP*HDdLnO;@ z?Ha^*x&&%JospQrY$HB>5{CYzBDn=+sweGo_n7O*zuVyI2T2fbnpH^NCnqs*gPer8 z+|j%-jzq#)axW~Sn(F#jkHL#x9@KAh-)+o^JMMzYS*cwlMN+(hvq+bf+BZaNN-D_l z=SG6AS$;e?&wwOoz5JE3Ss6|c8@JdgaEVFwoc?{>s%&r*4lQPr$KWskuy&oE3W~yv z7+D+)3;Zs-OE0E-xHwm*?H(}7pZ+ZO*4J&{!EWZ;BoaBPhwM>7aq;&nBd+);Yy4o3 z@9n@oPic`1U=@f`nzUGMe)_ZAOiF1tZ*b4X0k(w^R*_6-k#uO03~7;!X_3rmk=)ZF zd89@1K#QbBi=+Z|=FHS&X6uEJI_*j3srjjn<%wmoOMC6+4cVu=!hU3r?mC_%AmoCA znKR##$RXVo0w}o3=U=!A^?+2_#bE@dY}fIkZ9Z?Yv+dh;y6=Q<_sA4JhHv-C06w~J z_xO{6B2O|h2_yK87R%p0{aOB|b=bEXuxx7f+!5E^z8?tAYE9>iX zy@>P{Av@(8<(8eh_;}(sp{3LdCNoQPlkEsW-3$tLp-9zfHrdrkmz@~p%WfiHg&pCp zUHo5Coob)o1u5epc6|-M^t< z^AhUr1kw)k(_jrkvNkIqip>Df} z_$5B-`m{SY^jkSIA^0*G!)=G<8_G@X2k1vI{drhlClM1SOxWrki{MIKpKNPuEwEoU zaNuxsZunT^K;%u&|I8_w>@3iNuSN{?P6sC8ZQ=2=HUY;0=)kT85>pZ~s zTjzJA%p#q$zJg-!3bRCnfl-j#T6+i+eVD3a!n^%bbVr-a8re=y#s4o-Cz+IRp^(bm zc{$*%Dh07;01Vua__|_Vd%|av$xT4)VLBF<&m>FD?va`yC?tO)lhp90j%vA+P#)Em zk1@_h?Gz`WwWz#2KB_mi$56TP`uco6#23}L(0TQ=+U$s}x`S`KcDUQGRhtWdtYrEE zpGI5EIc`-t{C)BbVx(@Gshf6bLGFX?$msjb`qEPpIxb@$)6`v0Sioj1sDhbzpWP1?>h*_rEi+ja z`#}6<+8(sU)3tG;6_PXiXrCBUk4}g_?`VglCmkIUea6u-Suow`jAZ5-y(j63MjweW z%jg3+%U0cY#QB&GX6x&Qgtp-knTFGY25j_D#O!{i3_bp;c#cseNs1b^X;lG2Ev z&xMk&iI-VFEeAx&AW@f|W$jA*)_&>m;-+SseEK^gAw93O91@r51$yT5ocxjhc z+>H?qA;BK9Jkk!}{wn%RU3Gt@gSkR!$F@rWb=%R6sSW`*+6%6*Vs(WDPMWZeof-WX z)@AI1nt0*q*I$OCj-0;*iXK-j^)3r3Y&gY&UH*0cFLFPl|H{7f!iTRjaiggGtLBb) zvkSZARs4m6jhTyXWSydlioQ+Vko7w`Nz;37=2f5y|0jx#-U7Hnsj%r33%?aCmHbY2 ziH5-q1+VZ{RlEG_FTaRK zTno33jg2MnOWmIqG<2&`CufbPUE7&}6M*}Ny^lIs&NeWit zOE(Dn&f~1Gjw5TSdJ$}*U3e>ov|ty0)5g7EV?X`!3wHcEHR|F#Vv;d7X^>grZ8~B- zg(MAuSpOFgcEHZN5%q;rZAXp3pJ{v1DUxJhexU78V1ARadT$d5{)*18zs!IAMNC=z z`AyA~Uw=tWX(On^i3Je%JAHPKfMINz;O{v0xBLexZMaaT1?V)KDy;ze&JrB~;6$Oe zIh9C=NuP`HW#F?WUXq|uMkA9Esg7E4ds zOej6wyQ3+W_s>Z(yeb|qEeW3jGV;TGZhBOIdd7?K8fOm%{{1Fyt5*Bn26?wZoZrcN@%wIryeH1@H#T{% zymfW3fLUx!$iOB;^b*MZqY4{G^ymv=cNz!hD60jtUhWH&v3?}uHZ-@Pqkfs6kyI4N z$@PvBkEJbAA!m3iK2+s_dDQdsP%n>LObw0lI9N+^G@z-;cR}e@)=$NJw5Kx^<4=H$W zmid75qSuP=`BTjy-?M z=72FfeqS@=XUiOAkDp||O7Wt4-v~GXvFy|2tkB>BR9^XQUC_Fq8QfDIbER%VL$ux3i zka?zM#z@=dG0H*Ip0Mz|;BKMB&@>n|hji;{?D>26l0fN8Ovdg|1?Huvc^Q!^mw*^b zw1`EK=q=NSrb87;gNX#?h6vsHM*MeuH4#^@lCM(M%r9upQg0-JqB6{1V}T)Vn}pJ& zGjR!sqX=v`SmmJ2m6crRHb9HB!9I0axxtdjx}VBsHJDv?k%5MR+J}LHPTz-47ct*u z%mb{idzsUPcBgKdB8L6p%NaI};wkt@f3zy(Of?^-x*8XI{?$0I@+BdjUNBec+S<(e zO3t8MlT6Mvsz`=u8k+4>bYE#}J}_rMHf0~3QF()g{^Zq$qV03=3Ww7jO~WSV5Z2bL zTsRYo^j`rpFsolA{ZxcaS}-Nf+$f^Td1Vr1PEXq=17$_vXdAMFTP$tqGgk*qwrCv^ z*#jL4_iF_qu4u9yuBxX^WFnQ9xkU{>&RZ3NN7gekARYX)N&m$L0A|&Q{;L|%|H($Y zz5#vN0Nt_EuuPk*e&Wv@yFIZZ_Ksn4P=Kngl2dsGbK@C&s?Fj`21W+TNeYo9)z0IZFbm^pI3Qk)(Q$iYiged=^@(VvATM4`5nO4`H{iJNI7Xbw`X=9}n=kjM7?t zU{oYn3TgoAo8&C2wY9qNVw_&I25$m9@FWZ-EQ~#dPbXM)yS&dW`stZek*w?1WrBKu z-Iq78T55(N<0n{kOc=Q{;E!YAfGZ+o<2J!-23$TUPx*|0aR*8qBDwd6w2<|fch98e zNF8S?0Isy00pH)je+TP7Kl^y;kHZ;p!&|Fm+xAn-Nj(;=*i6MYoaI~#;Wn2DffX08 zHs=<+z0y)T`OtEcK3&+dv(YUz=;}vhO-l@1P9I9H{@bUBp~{%jbvXouunwaa?XRj3 ze82aGdm~<3>o7S4GFO*TAo3lCqf~A=fxp8BK`1)V3JD*>Jw+!hjBg{a!Dcz?nr+4d(`XNhBRC}~Y zz-74T`@K&W<-PTF`_bBO@7<_Lt{XeHU>=DpCvIG}mLAZ!~_N8^;wO7W$aun9b-@`*?IyIv^rEGa~K1(M{?5h_sKQ zo6_lsw9iL3rQ;E4?~HCrCnM7SKDsIGjY#`+bW=KtG{&pu>9cdT#XIHwN`6Y*58r;$1%*NoI-(v0n=rlf|}1A9yBF{$&PYy7dvjEn8HY&K!c zVc(|iD6(cuy}u#&EtH~V!107SW44V#CEYRrYPzyPcy|FPl=f~zbdzpp;A>qDzK``> z{P%(XYJDqxbtmQ3xhcX7_Tai&e%DM~W~^4PTEdf2;KyMwTD8kFwsp<83nU&_y=qz4 z%sD>2tTsBw)xB1ydetJ=%=ubvoWgtA@S0%ts%4j6neU{!zul@`R57ELUre8ROdnWT zw2mLil(?lH+w&Qtbv7r%y!I-)#u=Xu=!ewkjXK+!Fe`NU1Ap*{tX(=yMPOEQqSnPk zttS(;&zaol4id=`^e<-IoBF++5df#qjLv55I=g{cB1S~mf7FHTN8xx>5~u->6*?#I zYNV}MP8815Alt{6+t*D4<|GYsTy2^VM^Ogi%lY=P0kfCJk_9UJyD zs_&VGpSBECeKv5Xqd33TbB41bmq65!K-6;y1f)GMF|cZsHr~OIiZ#wJ6CmP&@j-rJ zQ5(yXuU&m*d#RO;Pzy5G#qYHY3nRd0oL>9pOm}1Z>HPWGa$`Q*o2}|erFN{(cOxoq z$^#B09N=g~%z4*#|uXZahjlP|qR%9*fD$fA0Cuqo_0gY4M*5uL%=&Amoe|NfR(}!2;RkKl}V= zkN;fg{KFxa(I@Yrg-(6@s#7_w@6=AJyXw*2T77%J+BrX|wVM2}3@_XP`z$rPzGe|! z@Ymr%KUg|>SVf`ts=Y$#yNxX?View$Wq8M8{q}z_wP5`}efu|uJ+hwl)oyRx*yJ0H z*k`(7mo!YL6Xx$97phHx4dlovbP8l4%1z#wju`na12aP6K0P za{w-C)yuQfM$0B%EEzM~8HB-@A4otp`Xw)6pJ@+QPMLL1W{eyWruc{l&gh+ce*6c| z@&T7t==4J7#!Ot_S#~+ZS2Jb!oN)3Qvqx1?&pIceBZszLJL&Azj$73RfgNzW0Yqwf zj_v(y4#nDE!=$)opN`7cAa_2elqOl;}9F`K)c?M7q!dJ9Xe!Mi>0cdZ#CMG`u2 zO^UZZObdt3`AM_357Tq!x>W_1wUlJugv{&Lsr<__OZAdE6AQhD)1b!MdM$706i9gz zL5#o#ya}UasGRTMyU(d?GMZ$gI%lWN8uDsaR{9aJ z+j;rd>#TgF6sBcXY*bN5E>z(=+m$0|3n=yT5QnqN;I2G$z*8$1O+?m_HnN8}6~wT@ z4c<8n=~VgYf%!0@=d!DXdlN>V+F!hzQt0fRpHw>AySt=a8>n#ee5cjeuCz$|EQu6P z%d5nBIcDwM0aUkMJ0US^AM?QWl^B3N6myOk;2cNVC-{AOQYGy@{A@NV9qcyJJ{!r1 z?c=k9ZPGp%7!jT3cI&*c-KvuI9j5FyTQcvCiV%5EWkEpY&zl{soZV42N#wdn<)WDSn68OWYROJXOaTM|rV&;QrPTB6r;e0H zAVZKt-FJuTa_;aFpEM!v&6%d$_Vtv%q_Pe#BqS4C8wq z)o9#yJM#Jk`IJhjuu9Ga7EWkh z+u5nk{pY$oh2npz<8wOvpY2`qxRN@jXvXSzNEy;|(uBjFSb7hzr93~+UoI{&!_n!ljuY**v2V!MjQ440a`FaGv;k-#Rt9s#1!}5>n&y#20)Sg)c{R

$H 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%0D8D7L%;MnI4_feX@Djrs52};;Xb|+#m0@0R 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

te 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%0AxJE!Diz=b9Wz|Y8 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 Y?`-JF=R_)>_V4lR9}CJ&G=y6W0GhLWMF0Q* literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js.br b/apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js.br deleted file mode 100644 index 75d6e99..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js.br +++ /dev/null @@ -1,2 +0,0 @@ -v`)wKքMڜ˿Q@ƺW vEYtcG.h2DJКdS $gdD1,Jy>U`+& -՟xSKp0uj2k^zu$)DyI;z7@W*U}uXf-?!pTvtdgTY_#9C!}(W%nXwvch^Rg`T= zz%^1Gm~b3A^0_&aHYjPKu6uP2)c9a%H%6|V=9wC!v*tcZBxQk+GfCYx(81ynCApp^ z4sUN0)FkS{g#d+t7E8(V3|jp=+vpg{o7LGm10x`!%xRnk08~#2G>XF{t?u.source.v=f:g(u.source,f)}),t=!1}return e&&i in r?l(e):d(u.source)}function m(){const e={};function n(){o(()=>{for(var r in e)e[r].unsubscribe();b(e,i,{enumerable:!1,value:!0})})}return[e,n]}function I(e){var n=s;try{return s=!1,[e(),s]}finally{s=n}}export{y as a,I as c,m as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.br b/apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.br deleted file mode 100644 index 7f962dd5db7606de37f35a4b7308e75e9b187b94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0BdIDf%)n@xI(_Noz$)z=sA8{<9Th0+gng470ffd=gMD!23&|Zbk1~}Xs z4tN%YG~HCBSE28QnrfD@v(F?3mu=!L5^qJ@8Jrxz(?+ZPB)@Nc^YPj`Bn=%&yiozY zgC%_!wV+QcOb2V)nX^SwfC}N8&~%V8(-l+;C+{$8W!&|d<>tnRy|*`BjOf~57?45>miv2n zAj}sCv(`pTE9XN>1-#J0FsxWEr0jRJ`_B~!ZTQZn_dxYVZQ;H{8+1q`?mB%Uxw)xx z_WlHdY8{)RBPlrpKPST0k*6ESbO3;SXC-9BU{?srD4w*ush1$MCo4w{4VNcTewU;% zsr-&Zhb5hjgv?}f^a=8^tQk&p8do+|v^%|T8lC~8^Ttx8gHqs3usu~Lem3&J)&hcdp>w^J9aU`-wH$aT=Y|52 zR;z+bCN;A{%#|BD7jR)BHO;I}h#5sFmpSDbmpO3PiET~FQ9QSnc`VlTeYNKV13pII z+~^F|kzb!Mh$O&cu}PMEu$s|owb*PFCs7?fs3Lu2H1caagfV?)r@4rRbAgX>FqUUi zHfxcfo!#GWTz8y6LL?nVvTdiRDmHL#RiLU^Cy~U((T+gxKWD#j67#wmUG41@FTUpw o-Q_6VJ`Ga0N=?zBPKo}_H#6N_Ne^QNm+CM70mI!_Bzpn?06lKFrvLx| diff --git a/apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js b/apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js new file mode 100644 index 0000000..c7c6805 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js @@ -0,0 +1 @@ +var du=Object.defineProperty;var hu=(E,i,r)=>i in E?du(E,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):E[i]=r;var o=(E,i,r)=>hu(E,typeof i!="symbol"?i+"":i,r);import{StorageBufferAttribute as It,SpriteNodeMaterial as ru}from"./CfobEeQC.js";import{uniform as h,storage as lt,Fn as R,instanceIndex as W,fract as T,float as t,mx_noise_vec3 as X,vec3 as u,sin as m,cos as b,sqrt as Rt,floor as nt,pow as H,abs as et,clamp as C,vec2 as y,smoothstep as mt,oneMinus as at,mix as M,select as n,cross as is,length as $,min as vu,atan as cs,positionView as bu}from"./BZQzXWp7.js";import{V as ds,A as pu,P as gu,I as fu}from"./C-SOZ1Oi.js";const xu={anchor:0,connection:1,contradiction:2};class Bu{constructor(i,r,g={}){o(this,"count");o(this,"scene");o(this,"renderer");o(this,"bufferPos");o(this,"bufferVel");o(this,"bufferPhase");o(this,"computeNode");o(this,"mesh",null);o(this,"material",null);o(this,"computeInFlight",null);o(this,"uTarget",h(new ds(0,0,0)));o(this,"uTime",h(0));o(this,"uIgnition",h(.2));o(this,"uMode",h(0));o(this,"uContainRadius",h(48));o(this,"uHueShift",h(0));o(this,"uModeTintAmt",h(.25));o(this,"uBurst",h(0));o(this,"uActDim",h(.12));o(this,"uWorld",h(0));o(this,"uPrevWorld",h(0));o(this,"uBlend",h(0));o(this,"worldCount",7);o(this,"uBlast",h(0));o(this,"uBlastTime",h(0));o(this,"uMorphSeed",h(0));o(this,"uChaos",h(0));o(this,"uClash",h(0));o(this,"uFadeNear",h(2));o(this,"uFadeBand",h(7));o(this,"uFogDensity",h(.012));o(this,"uFocus",h(28));o(this,"uFocusRange",h(20));o(this,"uDofDim",h(.3));o(this,"uZoomPeriod",h(9));o(this,"uLambda",h(1.923));o(this,"uZoomOn",h(0));o(this,"uCamVelView",h(new ds(0,0,0)));o(this,"uStreak",h(0));o(this,"uMaxStretch",h(7));o(this,"dreamCount",0);this.renderer=i,this.scene=r,this.count=g.count??15e4;const f=g.spawnRadius??34,q=new Float32Array(this.count*3),D=new Float32Array(this.count*3),c=new Float32Array(this.count);for(let S=0;S{const c=f.element(W),p=q.element(W),B=D.element(W),P=B.mul(12.9898).sin().mul(43758.5453),S=B.mul(78.233).sin().mul(12543.531),L=B.mul(39.346).sin().mul(24634.633),O=T(P),V=T(S),a=T(L),l=O.mul(6.28318),d=V.mul(3.14159),e=this.uContainRadius,w=T(B.mul(3.7)),z=t(.62).add(w.mul(w).mul(.38)),A=t(W),v=R(([s])=>{const x=t(.6),es=X(s.add(u(x,0,0))).sub(X(s.sub(u(x,0,0)))),ms=X(s.add(u(0,x,0))).sub(X(s.sub(u(0,x,0)))),as=X(s.add(u(0,0,x))).sub(X(s.sub(u(0,0,x))));return u(ms.z.sub(as.y),as.x.sub(es.z),es.y.sub(ms.x)).normalize()}),F=u(m(d).mul(b(l)),b(d),m(d).mul(m(l))),G=F.mul(e.mul(z)),tt=F.mul(e.mul(t(.5).add(w.mul(.3)))),N=t(.19),Z=u(m(c.y).sub(c.x.mul(N)),m(c.z).sub(c.y.mul(N)),m(c.x).sub(c.z.mul(N))),_=c.add(Z.mul(e.mul(.12))),j=G,st=u(O.sub(.5).mul(2).mul(e.mul(.8)),V.sub(.5).mul(2).mul(e.mul(.8)),a.sub(.5).mul(2).mul(e.mul(.8))),K=O.mul(6.28318).mul(3).add(a.mul(.6)),it=e.mul(.2).add(e.mul(.8).mul(a)),hs=u(it.mul(b(K)),e.mul(.06).mul(m(B.mul(20))),it.mul(m(K))),rs=t(2.39996323),Wt=A.mul(rs),Dt=Rt(A).mul(e.mul(.0042)),vs=u(Wt.cos().mul(Dt),e.mul(.04).mul(m(B.mul(9))),Wt.sin().mul(Dt)),Y=this.uMorphSeed,xt=this.uChaos,bs=T(Y.mul(.731).add(.13)),ps=T(Y.mul(1.323).add(.51)),gs=T(Y.mul(2.117).add(.27)),yt=t(387),J=T(A.div(yt)),k=nt(A.div(yt)).div(yt),Vt=s=>s.exp().sub(s.mul(-1).exp()).mul(.5),Zt=s=>s.exp().add(s.mul(-1).exp()).mul(.5),I=(s,x)=>y(s.x.mul(x.x).sub(s.y.mul(x.y)),s.x.mul(x.y).add(s.y.mul(x.x))),wt=s=>{const x=s.x.exp();return y(x.mul(b(s.y)),x.mul(m(s.y)))},fs=s=>y(s.x.mul(s.x).add(s.y.mul(s.y)).max(1e-12).log().mul(.5),cs(s.y,s.x)),Ot=(s,x)=>wt(I(y(x,t(0)),fs(s))),xs=s=>y(Zt(s.x).mul(b(s.y)),Vt(s.x).mul(m(s.y))),ys=s=>y(Vt(s.x).mul(b(s.y)),Zt(s.x).mul(m(s.y))),Mt=s=>{const x=s.x.mul(s.x).add(s.y.mul(s.y)).max(1e-6);return y(s.x.div(x),s.y.mul(-1).div(x))},ct=t(2).add(nt(bs.mul(14))),Nt=l,ws=H(et(b(ct.mul(Nt).div(4))),t(2).add(ps.mul(8))).add(H(et(m(ct.mul(Nt).div(4))),t(2).add(gs.mul(8)))).add(1e-4).pow(t(-.5)),Ms=H(et(b(ct.mul(d).div(4))),t(3)).add(H(et(m(ct.mul(d).div(4))),t(3))).add(1e-4).pow(t(-.5)),Tt=e.mul(.85).mul(C(ws.mul(Ms).mul(.5),.1,1.4)),Ts=u(m(d).mul(b(l)).mul(Tt),b(d).mul(Tt),m(d).mul(m(l)).mul(Tt)),kt=t(5),Ht=nt(T(Y.mul(.013).add(A.mul(.00667))).mul(25)),Et=nt(Ht.div(5)),qs=Ht.sub(Et.mul(5)),Cs=J.mul(2).sub(1),Bs=k.mul(1.5708),Lt=y(Cs,Bs),As=wt(y(t(0),Et.mul(6.28318).div(kt))),zs=wt(y(t(0),qs.mul(6.28318).div(kt))),Gt=I(As,Ot(xs(Lt),t(.4))),_t=I(zs,Ot(ys(Lt),t(.4))),jt=this.uTime.mul(.25).add(Y).add(xt.mul(1.5)),Ss=u(Gt.x,_t.x,b(jt).mul(Gt.y).add(m(jt).mul(_t.y))).mul(e.mul(.55)),Kt=Rt(J),Yt=k.mul(6.28318),qt=y(Kt.mul(b(Yt)),Kt.mul(m(Yt))),Q=I(qt,qt),ut=I(Q,qt),dt=Mt(Q),ht=Mt(ut),Ps=y(ut.x.sub(ht.x).add(2.2360679),ut.y.sub(ht.y)),Ct=Mt(Ps),Fs=I(y(t(0),t(1)),y(Q.x.sub(dt.x),Q.y.sub(dt.y))),Is=y(Q.x.add(dt.x),Q.y.add(dt.y)),Rs=I(y(t(0),t(.6667)),y(ut.x.add(ht.x),ut.y.add(ht.y))),Bt=I(Ct,Fs).x,At=I(Ct,Is).x,zt=I(Ct,Rs).x.add(.5),St=Bt.mul(Bt).add(At.mul(At)).add(zt.mul(zt)).max(1e-4),Ws=u(Bt.div(St),At.div(St),zt.div(St).sub(.86)).mul(e.mul(.5)),rt=k.mul(2).sub(1),Jt=Rt(t(1).sub(rt.mul(rt)).max(0)).mul(.9).add(.25),Qt=J.mul(6.28318).add(rt.mul(6).mul(xt.add(.4))),Ds=u(Jt.mul(b(Qt)),rt.mul(1.4),Jt.mul(m(Qt))).mul(e.mul(.5)),Ut=t(2.2).add(xt.mul(2)),vt=J.mul(6.28318).mul(Ut),bt=k.mul(6.28318).mul(Ut),pt=this.uTime.mul(.3).add(Y.mul(6.28318)),Vs=m(vt).mul(b(bt)).add(m(bt).mul(b(pt))).add(m(pt).mul(b(vt))),Zs=b(vt).mul(b(bt)).mul(b(pt)).sub(m(vt).mul(m(bt)).mul(m(pt))),Xt=this.uTime.mul(.15),Os=b(Xt).mul(Vs).add(m(Xt).mul(Zs)),Ns=u(m(k.mul(3.14159)).mul(b(J.mul(6.28318))),b(k.mul(3.14159)),m(k.mul(3.14159)).mul(m(J.mul(6.28318)))).mul(e.mul(.5).add(Os.mul(e.mul(.12)))),Pt=s=>n(s.equal(0),G,n(s.equal(1),tt,n(s.equal(2),_,n(s.equal(3),j,n(s.equal(4),st,n(s.equal(5),hs,n(s.equal(6),vs,n(s.equal(7),Ts,n(s.equal(8),Ss,n(s.equal(9),Ws,n(s.equal(10),Ds,Ns))))))))))),ks=Pt(t(this.uWorld)),Hs=Pt(t(this.uPrevWorld)),Es=mt(t(0),t(1),at(this.uBlend)),Ls=M(Hs,ks,Es),Gs=T(A.mul(.001).add(.5)).greaterThan(.66),Ft=t(this.uWorld).add(5),_s=n(Ft.greaterThan(11),Ft.sub(12),Ft),ot=Pt(_s),$t=this.uTime.mul(.4),ts=b($t),ss=m($t),js=u(ot.x.mul(ts).sub(ot.z.mul(ss)),ot.y,ot.x.mul(ss).add(ot.z.mul(ts))).mul(.52),Ks=this.uTime.div(this.uZoomPeriod).fract(),Ys=this.uTime.div(this.uZoomPeriod).add(.5).fract(),Js=M(t(1),this.uLambda.pow(Ks),this.uZoomOn),Qs=M(t(1),this.uLambda.pow(Ys),this.uZoomOn),Us=Ls.mul(Js),Xs=js.mul(Qs.mul(this.uLambda)),us=M(Us,Xs,Gs.select(t(1),t(0))),$s=c.normalize(),tu=at(T(B.mul(7.3)).mul(.4));p.addAssign($s.mul(this.uBurst.mul(.95).mul(tu))),p.addAssign(us.sub(c).mul(.045));const su=v(c.mul(.045).add(u(0,this.uTime.mul(.2),0))),uu=n(this.uWorld.equal(0),t(.05),n(this.uWorld.equal(5),t(.06),t(0)));p.addAssign(su.mul(uu)),p.addAssign(is(u(0,1,0),c).mul(9e-4).mul(n(this.uWorld.equal(1),t(1),t(0)))),p.addAssign(Z.mul(.012).mul(n(this.uWorld.equal(2),t(1),t(0))));const gt=c.x.div(e.mul(.5)),ft=c.y.div(e.mul(.5)),U=c.z.div(e.mul(.5)),ou=u(U.sub(.7).mul(gt).sub(ft.mul(3.5)),gt.mul(3.5).add(U.sub(.7).mul(ft)),t(.6).add(U.mul(.95)).sub(U.mul(U).mul(U).div(3)).sub(gt.mul(gt).add(ft.mul(ft))));p.addAssign(ou.mul(.008).mul(n(this.uWorld.equal(10),t(1),t(0)))),p.addAssign(is(u(0,1,0),c).mul(.0016).mul(n(this.uWorld.equal(5),t(1),t(0))));const lu=us.normalize().mul(m(this.uTime.mul(1.3).add(B.mul(6.1))).mul(.015));p.addAssign(lu);const os=$(p),nu=t(1.3);p.assign(p.mul(vu(nu,os).div(os.max(1e-4)))),c.addAssign(p),p.mulAssign(.9);const eu=n(this.uWorld.equal(4),t(1.6),t(1)),ls=M(t(.55),t(6),C(this.uBurst,0,1)),mu=nt(c.div(ls)).add(.5).mul(ls),au=C(at(this.uBurst.mul(1.4)),0,.9).mul(eu).min(.9);c.assign(M(c,mu,au));const iu=$(c),ns=this.uContainRadius,cu=c.normalize().mul(ns);c.assign(M(c,cu,iu.greaterThan(ns).select(t(1),t(0))))})().compute(this.count)}buildRender(i,r){const g=new ru({transparent:!0,blending:pu,depthWrite:!1}),f=lt(r,"float",this.count),q=lt(i,"vec3",this.count).element(W);g.positionNode=q;const D=g;{const a=u(this.uCamVelView),l=y(a.x,a.y),d=$(l).max(1e-4),e=T(f.element(W).mul(13.17)).mul(.5).add(.75);D.rotationNode=cs(l.y,l.x);const w=C(d.mul(this.uStreak).mul(e).mul(.6).add(1),t(1),this.uMaxStretch),z=t(1);D.scaleNode=y(z.mul(w),z)}const c=R(([a,l,d,e,w])=>l.add(d.mul(b(e.mul(a).add(w).mul(6.28318))))),p=R(([a])=>{const l=a.div(100),d=H(l.sub(60).max(1e-4),t(-.1332047592)).mul(329.698727446),e=l.lessThanEqual(66).select(t(255),d),w=l.max(1e-4).log().mul(99.4708025861).sub(161.1195681661),z=H(l.sub(60).max(1e-4),t(-.0755148492)).mul(288.1221695283),A=l.lessThanEqual(66).select(w,z),v=l.sub(10).max(1e-4).log().mul(138.5177312231).sub(305.0447927307),F=l.greaterThanEqual(66).select(t(255),l.lessThanEqual(19).select(t(0),v));return C(u(e,A,F).div(255),0,1)}),B=R(()=>{const a=q,l=f.element(W),d=$(a.sub(u(this.uTarget))),e=t(W),w=T(e.mul(.001).add(.5)).greaterThan(.66),z=a.x.mul(.03).add(a.y.mul(.021)).add(a.z.mul(.027)),A=T(l.mul(.41).add(d.mul(.06)).add(z).add(this.uTime.mul(.1)).add(this.uHueShift)),v=this.uClash,F=n(v.equal(0),u(0,.85,1),n(v.equal(1),u(.55,1,0),n(v.equal(2),u(1,.82,0),n(v.equal(3),u(0,1,.6),u(.1,.5,1))))),G=n(v.equal(0),u(.3,.2,1),n(v.equal(1),u(0,.7,.5),n(v.equal(2),u(1,.4,0),n(v.equal(3),u(0,.6,1),u(.5,0,1))))),tt=n(v.equal(0),u(1,.25,0),n(v.equal(1),u(1,0,.55),n(v.equal(2),u(.6,0,1),n(v.equal(3),u(1,.1,.3),u(1,.7,0))))),N=n(v.equal(0),u(1,0,.3),n(v.equal(1),u(1,.45,0),n(v.equal(2),u(1,0,.7),n(v.equal(3),u(1,.5,0),u(1,.2,.4))))),Z=mt(t(0),t(1),A),_=M(F,G,Z),j=M(tt,N,Z),st=M(_,j,w.select(t(1),t(0))),K=n(this.uMode.equal(2),u(1,.08,.32),n(this.uMode.equal(3),u(1,.78,.1),u(.1,.9,1)));return M(st,K,this.uModeTintAmt.mul(.4))}),P=R(()=>{const a=q,l=C($(a).div(this.uContainRadius.max(1e-4)),0,1),d=l.mul(l),e=a.normalize(),w=H(at(et(e.z)),t(4)),z=t(.12).add(d.mul(.6)).add(w.mul(.5)),A=t(W),v=T(A.mul(.001).add(.5)).greaterThan(.66),F=t(.07).add(w.mul(.3)),G=v.select(F,z),tt=this.uTime.div(this.uZoomPeriod).fract(),N=this.uTime.div(this.uZoomPeriod).add(.5).fract(),Z=m(tt.mul(3.14159)),_=m(N.mul(3.14159)),j=Z.add(_).max(1e-4),st=M(t(1),Z.div(j).mul(2).min(1),this.uZoomOn),K=M(t(1),_.div(j).mul(2).min(1),this.uZoomOn),it=v.select(K,st);return G.mul(it)}),S=R(()=>{const a=bu.z.negate(),l=mt(this.uFadeNear,this.uFadeNear.add(this.uFadeBand),a),d=C(this.uFogDensity.mul(a).negate().exp(),.45,1),e=C(a.sub(this.uFocus).abs().div(this.uFocusRange),0,1),w=at(e.mul(this.uDofDim));return l.mul(d).mul(w)}),L=R(()=>{const a=q,l=C(this.uBlast,0,1),d=this.uBlastTime,e=C($(a).div(this.uContainRadius.max(1e-4)),0,1),w=M(t(1600),t(5200),l),z=C(l.mul(1.1).add(.4),0,1.3),A=p(w).mul(z),v=T(e.mul(1.6).sub(d.mul(1.5))),F=c(v,u(.55),u(.55),u(3),u(0,.33,.67));return M(A,F,t(.78))});g.colorNode=R(()=>{const a=C(this.uIgnition.mul(.05).add(.72),0,1.25),l=B().mul(a).mul(P()).mul(this.uActDim),d=mt(t(0),t(.85),C(this.uBlast,0,1)).mul(.6);return M(l,L().mul(P()).mul(this.uActDim),d).mul(S())})(),g.emissiveNode=R(()=>{const a=C(this.uIgnition.mul(.04).add(.85),0,1.35),l=B().mul(a).mul(P()).mul(this.uActDim),d=mt(t(0),t(.85),C(this.uBlast,0,1)).mul(.6);return M(l,L().mul(.85).mul(P()).mul(this.uActDim),d).mul(S())})();const O=new gu(.1,.1),V=new fu(O,g,this.count);V.frustumCulled=!1,this.material=g,this.mesh=V,this.scene.add(this.mesh)}async update(i){const r=Math.max(0,Math.min(i,.05));this.uTime.value+=r,this.uHueShift.value=(this.uHueShift.value+r*.06)%1,this.uBlend.value=Math.max(0,this.uBlend.value-r*1),this.uIgnition.value=Math.max(0,this.uIgnition.value-r*2),this.uBurst.value=Math.max(0,this.uBurst.value-r*.85),this.uBlast.value=Math.max(0,this.uBlast.value-r*.35),this.uBlastTime.value+=r;const g=this.uTime.value/this.uZoomPeriod.value%1,f=this.uZoomOn.value>.5?40-g*16:26+Math.sin(this.uTime.value*.18)*9;this.uFocus.value+=(f-this.uFocus.value)*Math.min(1,r*3),this.computeInFlight&&await this.computeInFlight,this.computeInFlight=this.renderer.computeAsync(this.computeNode).finally(()=>{this.computeInFlight=null}),await this.computeInFlight}transitionTo(i,r,g="II",f=99){this.uTarget.value.copy(r);const q=xu[i]??1;this.uMode.value=q,this.uPrevWorld.value=this.uWorld.value,this.uWorld.value=f%this.worldCount,this.uBlend.value=1,this.uClash.value=f%5,this.uZoomOn.value=f>=2?1:0;const D=f===0?.12:f===1?.2:null,c=g==="I"?.26:1;this.uActDim.value=D??c,this.uIgnition.value=f<=1?.4:g==="I"?1.6:4.5;const p=this.uWorld.value===3;this.uBurst.value=q===2||p?1:.8,this.uBlast.value=f<=1?.25:1,this.uBlastTime.value=0,this.uModeTintAmt.value=q>=2?.7:.22}dreamBeat(){this.dreamCount+=1;const i=7+Math.floor(Math.random()*5);this.uPrevWorld.value=this.uWorld.value,this.uWorld.value=i,this.uBlend.value=1,this.uMorphSeed.value=Math.random()*1e3,this.uClash.value=Math.floor(Math.random()*5),this.uChaos.value=Math.min(1,.25+this.dreamCount*.1),this.uZoomOn.value=1,this.uActDim.value=.85,this.uIgnition.value=3,this.uBurst.value=1,this.uBlast.value=1,this.uBlastTime.value=0;const r=[1,2,3];this.uMode.value=r[Math.floor(Math.random()*r.length)],this.uModeTintAmt.value=.3+Math.random()*.5}setContainRadius(i){this.uContainRadius.value=Math.max(8,i)}setZoom(i){this.uZoomOn.value=i?1:0}setCameraVel(i){this.uCamVelView.value.copy(i)}setStreak(i){this.uStreak.value=i}dispose(){var i,r,g,f;this.mesh&&(this.scene.remove(this.mesh),(i=this.mesh.geometry)==null||i.dispose(),(g=(r=this.mesh).dispose)==null||g.call(r),this.mesh=null),(f=this.material)==null||f.dispose(),this.material=null,this.bufferPos=null,this.bufferVel=null,this.bufferPhase=null}}export{Bu as SemanticComputeStorm}; diff --git a/apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js.br b/apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js.br new file mode 100644 index 0000000000000000000000000000000000000000..cb81051453ef864aa0fa6b7d9a75f41bf6562a3d GIT binary patch literal 4626 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 I%8a_|1KB*^;{X5v literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js.gz b/apps/dashboard/build/_app/immutable/chunks/C8kRUgax.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..cc5255bbd7a97fded68792edd8ece5474caf2cda GIT binary patch literal 5104 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%0Aah4pW+g_LrEzm`JaQFf(1cq<&KvtmCV z-Nr2&V!k@yg7*pRkF9>;Rg^?9E;+r zhqQzjqXjDZ0sh6&d6YD0SEa$Go6#h7wXVk1ZA{if(s){if(s.pending.delete(E),s.done.add(E),s.pending.size===0){var o=e.outrogroups;B(U(s.done)),o.delete(s),o.size===0&&(e.outrogroups=null)}}else u-=1},!1)}if(u===0){var f=t.length===0&&l!==null;if(f){var v=l,n=v.parentNode;we(n),n.append(v),e.items.clear()}B(i,!f)}else s={pending:new Set(i),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function B(e,i=!0){for(var l=0;l{var a=l();return _e(a)?a:a==null?[]:U(a)}),o,d=!0;function C(){r.fallback=n,xe(r,o,u,i,t),n!==null&&(o.length===0?(n.f&T)===0?ne(n):(n.f^=T,M(n,null,u)):ae(n,()=>{n=null}))}var N=fe(()=>{o=Z(E);var a=o.length;let S=!1;if(k){var x=ue(u)===se;x!==(a===0)&&(u=$(),L(u),q(!1),S=!0)}for(var _=new Set,w=te,R=ce(),p=0;ps(u)):(n=Y(()=>s(ee??(ee=z()))),n.f|=T)),a>_.size&&de(),k&&a>0&&L($()),!d)if(R){for(const[O,D]of c)_.has(O)||w.skip_effect(D.e);w.oncommit(C),w.ondiscard(()=>{})}else C();S&&q(!0),Z(E)}),r={effect:N,items:c,outrogroups:null,fallback:n};d=!1,k&&(u=F)}function H(e){for(;e!==null&&(e.f&Ae)===0;)e=e.next;return e}function xe(e,i,l,t,g){var h,O,D,J,Q,X,G,K,P;var s=(t&Ce)!==0,u=i.length,c=e.items,f=H(e.effect.first),v,n=null,E,o=[],d=[],C,N,r,a;if(s)for(a=0;a0){var b=(t&re)!==0&&u===0?l:null;if(s){for(a=0;a{var m,W;if(E!==void 0)for(r of E)(W=(m=r.nodes)==null?void 0:m.a)==null||W.apply()})}function Re(e,i,l,t,g,s,u,c){var f=(u&he)!==0?(u&ge)===0?Ee(l,!1,!1):j(l):null,v=(u&me)!==0?j(g):null;return{v:f,i:v,e:Y(()=>(s(i,f??l,v??g,c),()=>{e.delete(t)}))}}function M(e,i,l){if(e.nodes)for(var t=e.nodes.start,g=e.nodes.end,s=i&&(i.f&T)===0?i.nodes.start:l;t!==null;){var u=Ne(t);if(s.before(t),t===g)return;t=u}}function A(e,i,l){i===null?e.effect.first=l:i.next=l,l===null?e.effect.last=i:l.prev=i}export{He as e,ke as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.br b/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.br deleted file mode 100644 index f66f2f9a93c9e2fea6c5382bd8c23c51e5744fd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1804 zcmV+n2lMzFO%MQ#!g23|OKY20B4RN@l37#3)$0paERUFtme)x!L$1}|b+$CKy+9`0 zvj2U4oF=F2yLFZ|fr>LB0x7Y^pmP7Wrd7`V!V##x2zSPntY~Kb?qD~-vjv9TLsE%5 zdY)Wm8g;-5oQQ1YfzuhEd2pBs)MUBpn!E}Wh)m>6P>9zp~ib7haz2gxj;!1k7bLuy0>kou$vTS9(x~~)$>BWqOmyK$xRmO^l|+JTd&S$ca{)K< z%)qUa!JX5?J(;Wh!EUmD!nJRef7!)#cYVFp<@x$qh<#m`PRV1_CEgp$aSANdzQ^nS zk&SpvdV!9iVlh@4c+%{@9F5>Yf9Q>Enn9f00AURUd z-d+vgiuttOBdr?3ZY^5$?akFW&SvA>FTM9TKs_XJ34O0L1O1ddh(+&l^B7@8^fhHdutC_$xYMth=9SD=bMGafD zkwdzrW+0~rl{#NE16t2JnybR>C(7zfnX1=7yhy40BV&t#Z zy7L^tg*S}~s~9eoj0DxxEgKZl!>l{6Glrq$2!%gq-$Bq<0J-u2zIZYMOLew%zf%4m zvzJd6!s(DkX_yHLGtwA~&TLX5CH3^vI?{PoTC#mJ(Yd?SldqURPT=2Mw=Lywmc+tS{j#2Aj=b5}#HI)T%1dF-g0vG|`++ zVPOa7tZCS|n_-gWvQL%5mih_e;wE0f7GMQ)U0W-lPnkKhM4187&UC8)d+lMmP*vm} zzeWu{1ET4sm-sg`k`CFKq3NpG%D(~#CIp9bFYL$r(is0~w&i&Jd_KU~{M&9{`xeWO zzHsV{MZ^Vt_SHUyJp*g(-r;rNMR@f5xBlvx!zj&OJV`;stm>fE`)EPk&~cPkOmo*2 zg&wkNRMmqh8L`u4*!al|X@BZ~qJ23n%-$r9(*aZTyYcYM>n=LL-Gk*LP(R&r%P|++ z^M+F{xr53oC*bX!>0c)hxL$8HnPyH4SGol9aWK->)70Tak(C`8H?%|%At>$Jk!@Y%7axxiV zSBHmmR5+^lhwEAO$bkaewI}`^(URb4giv)qX@-UDJb^d$mkSPcF%48Ih*mUS(B1Gc zja3XVrYan{tsS#elJj-U_t~oE*H*P5B~pI))P-QKhn5a^70_dAAR5{z1IY_G83t%H zF_uWUlq4`q)Y^^iiwD-f$vXYUruaA(r*Pg#v&$A)3HIv7vFGn4{IUdMvs=nRDXac) zs1PC%amvUtid5!Jl%+oxVK9yIjX)TxxB^6wZ5eG!WM0I3M#b+X0lvZH9H0AqN|mae ze$!Q87BZ#$NllB13pvfE`L#Y3xRJTB1-HGqYwDFB5Mz;D7ng09nO*S%y1(>Nr(uoW zugxyfN-KFy^Mi8PlKf4s1*F4iEA{p7%jRj=L+`ys&OFLMd|br@f*lA?HcR$FOFyIw zCZn|q_1Ohtyox=VPrIw8#tqiB7O^t&8cA!4^Lcm9$yyVPtu@3*PI(APdt|5~I?ejX zd|eM^HT3eGTg$#5p8}h6J@jmkPTUOeEcu?p4ii;`$DaFwg4&S4@PYqjD7!uAb)sQmJ>1jS}NmIb_u%Zzx>hgTe=XL$-JyY=oW9iIT-znbI# diff --git a/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.gz b/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.gz deleted file mode 100644 index 19bda0036425f8ed00fe324b44f2f9aa1aa3d172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1954 zcmV;T2VM9diwFP!000026OC9~bJI!^e&1hVpQ5I^i$?1_ZIzV41tCCyB#;CG$K`cR zq?Ro#OG3989RK&No{?`{cK5~IBlS$*zV2x`SrmC$uio@b)%!trLSiOkgejRWgwE+k z$UFKZBw;dEE@heu{hLfEv|%!lFcp(wVII+ykZ<%+$V<8uk~5iDn3l=d1HRKlNX=ws z!rYKagnl9ORcORy=E8(b&x96C=3l~0m`p0nM=}ecGbWP>Gi5pxddg&SVZM?ngf5uO zH(@d+Qwn34vfjSAwr?oKRh*a5nzC2x(U_(>@lwvF^^7WN zc8gFCg7A16gpVKND&@L&s*_PT4h+L70qUo#B!&v@uUBvuCE3)AIOUq*6shu}JY&y9 zky~vfs^kZ2tp~Ug3v$g~-qdA2E%TY#JcYMaz~_nZTAI946zewbxN6Ty~327)faih!97EUlzFBQ>!C$r zFR6J^d11!;@|jgYr@COUSdoWDr+`5R%n5_R zq4AAN#BenBKZ3zEQcjWX4|bNH0Io_eHfefi!nw|9$xu>G4JA|~WnC(jf_yK>L&&^X z-Js<&Nu)1N{;hB595S-zHHf}p$Q+!V&1-bAyU=lGdanP5Q|Fe^`8M2K_pWvSNP;wX zL0amDp%IN02g|=y-DR{lX$w^YCTI4P?dsijSwQ!ZCYBtIu~ zK_!{M-VS27(SyJoH-QltpXg*{#&n^la6(3+dJ+#)%u6gb8nAo1j7EiZ-Im%>^6Ym(w?1lf}vMcNyJ=5|PTj#7t7z_O*8BDAn4E zF44Z&H0Z1y8V$xY2{OI3PTMlL*SS2s()nn!@5#~Ff@h)!!Q^<`{wIQ=bI3=N zF)bxoJDKP}rrj7EjV5CZB%t?JAzgKuaKXNJ%oQz>V!fnHUy*sDk9NU!t)|@rmn0>Y zq}VjMQ_H%WT5O3R#aAknd4u{bGRAezyV&w0Cd&U?@HfVKT{Dd-N@>q@Dcy^(T3w_@+^+wFsk@evH81U-2CwZ$KGWRNWF7qDKMNMo|4tA90QLy!JOBUy diff --git a/apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js b/apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js deleted file mode 100644 index 50e502d..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js +++ /dev/null @@ -1 +0,0 @@ -import{aI as M,J as v,V as o,aJ as y,o as T,aK as p,aL as b,N as d,U as i,aM as w,ab as x,aN as A,T as L,aO as C}from"./CpWkWWOo.js";var h;const m=((h=globalThis==null?void 0:globalThis.window)==null?void 0:h.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function O(e){return(m==null?void 0:m.createHTML(e))??e}function g(e){var a=M("template");return a.innerHTML=O(e.replaceAll("","")),a.content}function n(e,a){var r=T;r.nodes===null&&(r.nodes={start:e,end:a,a:null,t:null})}function R(e,a){var r=(a&p)!==0,f=(a&b)!==0,s,c=!e.startsWith("");return()=>{if(d)return n(i,null),i;s===void 0&&(s=g(c?e:""+e),r||(s=o(s)));var t=f||y?document.importNode(s,!0):s.cloneNode(!0);if(r){var _=o(t),u=t.lastChild;n(_,u)}else n(t,t);return t}}function D(e,a,r="svg"){var f=!e.startsWith(""),s=(a&p)!==0,c=`<${r}>${f?e:""+e}`,t;return()=>{if(d)return n(i,null),i;if(!t){var _=g(c),u=o(_);if(s)for(t=document.createDocumentFragment();o(u);)t.appendChild(o(u));else t=o(u)}var l=t.cloneNode(!0);if(s){var E=o(l),N=l.lastChild;n(E,N)}else n(l,l);return l}}function F(e,a){return D(e,a,"svg")}function H(e=""){if(!d){var a=v(e+"");return n(a,a),a}var r=i;return r.nodeType!==A?(r.before(r=v()),L(r)):C(r),n(r,r),r}function I(){if(d)return n(i,null),i;var e=document.createDocumentFragment(),a=document.createComment(""),r=v();return e.append(a,r),n(a,r),e}function $(e,a){if(d){var r=T;((r.f&w)===0||r.nodes.end===null)&&(r.nodes.end=i),x();return}e!==null&&e.before(a)}export{$ as a,F as b,I as c,n as d,R as f,H as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.br b/apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.br deleted file mode 100644 index e88d0d13bfc9cb800fbf4f2eee4f61879177f6ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbO-G6n#Q!g22sr`9%cQG~Qqby{Vn0cV7#nbb?EWmqfInq>F4XwH0%%au?V zphuSZ3Bv4_|9)-N&zlViEtN)v5NU1Yv8Z@6sbV1$3MZ*u4Y!Ertd!A3MB*1KoLA_p z7d^JZgMNdhkPFW$$v0f;svfQaj$YG%r=MIGL*QC>%;ABY;3lxvccyzj1hv7g;#j`#w2r&Xb1j6yRW%V5W$O6*S|FA_*PE zBfx9n_O_+@-V`y0f1kK9(@#q_lyPa;6@pOEwPxu#m3&(iXU1ye4L;wUKpvWdJla)& zPj+2#2-%odU@tIqu^NV2#Dik8_6GkEEFadN8BAlfL0hbBx3_^5A~|RLAcae)3$*Xd zxAfo=3uR<`8wZV7_V_CK^1q)Fgk;7k-8^u*sq*<%58J;SnbivRsfT8fYgUQ9p}&tB zhL(@kFX&slil5;znu!9jyh>1U4jrP78HdC|xLrw3)Q=0r^%_trA*2@asRfmH(aAFM zG5fXUeJ`?VCW-FnPfp*A2iT2> zX8P$%aB+PQ>q7~edR_Z(S}S_Hu@FQo=*<*x^_>()tiH4ikr2MX4VJJY_b%b{525Fm zdEJ~iA;N7R`q>uQANL0hz#exp$KIiKz~CO8$xN|GiQtB0>aUi`ZuBb4lqqL$tC1NV zr&!IHBlkWtp=6^?J^5e*8n^EGk_r(udieR%t`(h za6|Go;DYW0RP;xHhU8tqXOfG6FC?S-isk`sNj?OewY4?tEdMy$JpTRo_+awCTvqI) z?X8N^XyA0e z_4`cLd1nWVIGu8Pwp#|fP_-0yka=Ejl=Pfok$m-J-e}D>*op_>-10`rlCPA4?6N<} zD7)+rhr{6{LnN7(Mtj!2^RIzPrU+Kd3!7_Gu@fo7!2nKzz4OxgF%#=*EJ==oo_vHB zJAYr_`U5%GU|)z4)#1EIXGf*za~>VK$HuQxrl*ns#bn>qP~ove4Go1bNKFwkOSBCJ z;KUNjDUYN12S&1o12|#8A!2M5FY3eLby}HnyJqe4Cid{XsTdsfM>uwQsf^|*>5s5z zYOpE$Ct<)NZH3R3bbhvKR8?qrqAj+p9QQPM^5^g1+m3@zfdjH4bGv1hywyLgnA{tR zO7ZRTVsG2Y#lG%}YA-)V;WzUCho7c~zCRVPgfbLh;3*d7ur?OFIJ1%3?$hylZRIi` zU}0d31^QfWHms{yIs_ROv2riMr42!p@INx>QUafa0flrg)H?=0)BTx2Me59;dc)v# z>Y}42@tN4{-rN9-EW(V;QX2 z0V3UkMI6t-B5AN>k!%{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{E as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.br b/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.br deleted file mode 100644 index 8c1474664d2ee8a946e9c4e9d6780ce8cecadd93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmV;U09^kYxd4DH4$L#--F*-##bsWaVOrdlD)@E_1@jVrpsMxGlUkotfTK&7m$1Gn zTD$x7Jjy)Rwk&8-Tb{JVIj0A?+t~KG6+!wn;sW=pG`VUMD`4C2e;T4}G90xUo)A)P z6(sMPe{_xH90e?FWrDl??Sr8|wH6j601U#n9fx((hF}GZqIq+#{~nDwu)%R)L=7-9 RK^*&M;|nD6EwroH;|EnAO{f3> diff --git a/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.gz b/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.gz deleted file mode 100644 index b91f18a15a51f483cd5b13b41a3d7e5fb4952846..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmV;a09OAWiwFP!000026E)7U3WG2dh2gzV5gg=R2AsSrg#xtYHEKGw(=>Sj_tF{y(BNYJ4lBQvhMi>f{H$a^79IPq`?D2t^ Xc*JDBd%&I;l05wYEND)(x&QzG+citx diff --git a/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js b/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js deleted file mode 100644 index 0b355f6..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js +++ /dev/null @@ -1 +0,0 @@ -import{W as S,X as h,v as k,Y as T,S as Y}from"./CpWkWWOo.js";function t(r,i){return r===i||(r==null?void 0:r[Y])===i}function x(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))})}),()=>{T(()=>{s&&t(a(...s),r)&&i(null,...s)})}}),r}export{x as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.br b/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.br deleted file mode 100644 index 4f223100cff5742815073986bf0d88ac1720dc06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmV;$06PC0JOLoYG@W~w3CJ&9U~c51c3^l1sF$aj3x}R4z)@Q?Hc;B~#O+d_@V_$= z({Ze?cW6oVaG6Z9JIM|(4YF^n?9w$o0RRA~P-o@< diff --git a/apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js b/apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js new file mode 100644 index 0000000..ba54390 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js @@ -0,0 +1 @@ +import{TempNode as O,NodeUpdateType as D,RendererUtils as F,QuadMesh as L,NodeMaterial as f}from"./CfobEeQC.js";import{nodeObject as P,uniform as g,texture as c,passTexture as W,Fn as B,luminance as j,smoothstep as q,mix as H,vec4 as m,uniformArray as M,float as b,uv as E,Loop as Q,int as U,add as X}from"./BZQzXWp7.js";import{R as N,H as w,b as x,V as _}from"./C-SOZ1Oi.js";const p=new L,Y=new x,G=new x(1,0),I=new x(0,1);let z;class J extends O{static get type(){return"BloomNode"}constructor(r,t=1,i=0,s=0){super("vec4"),this.inputNode=r,this.strength=g(t),this.radius=g(i),this.threshold=g(s),this.smoothWidth=g(.01),this._renderTargetsHorizontal=[],this._renderTargetsVertical=[],this._nMips=5,this._renderTargetBright=new N(1,1,{depthBuffer:!1,type:w}),this._renderTargetBright.texture.name="UnrealBloomPass.bright",this._renderTargetBright.texture.generateMipmaps=!1;for(let e=0;e{const a=this.inputNode,l=j(a.rgb),d=q(this.threshold,this.threshold.add(this.smoothWidth),l);return H(m(0),a,d)});this._highPassFilterMaterial=this._highPassFilterMaterial||new f,this._highPassFilterMaterial.fragmentNode=t().context(r.getSharedContext()),this._highPassFilterMaterial.name="Bloom_highPass",this._highPassFilterMaterial.needsUpdate=!0;const i=[3,5,7,9,11];for(let a=0;a{const d=b(1.2).sub(a);return H(a,d,l)}).setLayout({name:"lerpBloomFactor",type:"float",inputs:[{name:"factor",type:"float"},{name:"radius",type:"float"}]}),u=B(()=>{const a=o(s.element(0),this.radius).mul(m(e.element(0),1)).mul(this._textureNodeBlur0),l=o(s.element(1),this.radius).mul(m(e.element(1),1)).mul(this._textureNodeBlur1),d=o(s.element(2),this.radius).mul(m(e.element(2),1)).mul(this._textureNodeBlur2),h=o(s.element(3),this.radius).mul(m(e.element(3),1)).mul(this._textureNodeBlur3),n=o(s.element(4),this.radius).mul(m(e.element(4),1)).mul(this._textureNodeBlur4);return a.add(l).add(d).add(h).add(n).mul(this.strength)});return this._compositeMaterial=this._compositeMaterial||new f,this._compositeMaterial.fragmentNode=u().context(r.getSharedContext()),this._compositeMaterial.name="Bloom_comp",this._compositeMaterial.needsUpdate=!0,this._textureOutput}dispose(){for(let r=0;rs.sample(n),d=B(()=>{const n=e.element(0).toVar(),T=l(a).rgb.mul(n).toVar();return Q({start:U(1),end:U(t),type:"int",condition:"<"},({i:V})=>{const R=b(V),v=e.element(V),y=u.mul(o).mul(R),A=l(a.add(y)).rgb,C=l(a.sub(y)).rgb;T.addAssign(X(A,C).mul(v)),n.addAssign(b(2).mul(v))}),m(T.div(n),1)}),h=new f;return h.fragmentNode=d().context(r.getSharedContext()),h.name="Bloom_separable",h.needsUpdate=!0,h.colorTexture=s,h.direction=u,h.invSize=o,h}}const k=(S,r,t,i)=>P(new J(P(S),r,t,i));export{k as bloom,J as default}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js.br b/apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js.br new file mode 100644 index 0000000000000000000000000000000000000000..cba39ff9b33f4326cad93a152fdbd483412782b7 GIT binary patch literal 1558 zcmV+x2I=`55ETH7!^RE0SWVN7BuSD+NYZ&s)%IT|n+a0%LXy*QO0CFXLxMm#4yVJ{ zzdu*?R6EJ#{gVPQ3hV4E>a@{%RMgt1M=@<_-81m3m4VP$LG}c@6TGn-_ zqcKqj7DX$Ad(y)U%2!GGzupV=raoQIUe~1hi84luHN5tOB`~f>1k@z(TMuC3whP0q zYqn;)*R0{TjrGzGIxTr6PD4O5{pUmPG{evHlpV(1LG`b)@rXC^xTe7&Bc{N2S54a8 z^(O6Y?ymb3JL^1jiTqL9%9}`)vG#QOeRJK;`e#&4N9;VBKB#|YeR5Ux%!|UO=MQ)M z*oq;-zoygLcRxA@+}?9O*`6JoT5fgKE-u4nF&Mm| z+ervby3~`zjt>N&0GeZ+6E*siR80w=nu&l6E;wj85MU@IxmSz==_bLavMFxU?GO$? zN4a#b>5)>U`PwS$ty$hVmp==!H=w-@y`^1L+&>bDKIAr>p3L9bHj17FwIj$ z9B5KLR6DQwB04h`b$gQiNyR}!1Wu=hkUmv&($<9VBuETG#@Zl3J#Y#ZB&CdjDLVP- z(UO#O8%J~?AxDYQhzJk_(N`MQStOMhy8-0a`{;wp zZ}H-WMREd1ARNRY1*m|Opb}D*s-j`+8F77yEwz!%q;igQ5Z*Vp*(j6mea~ONix+{E zn7LQS`>wxr7ZmZKa*q@f(u*b80f;qTHKdwQyXfZV^xpfD9<$8DJC9l3kwv8=V+${-HFUuk zMG~%|fPI#)g2si>hjGuz=3q0d8Y*6e?tmOs&q~^r=E9)sRRmGG=U(Do<>@<>>)@qO ziQAe=K^T-M+yyfOt#W?;51Xeg5Z8s4)wC{skd~-OWy=sGvo$W=vza?_2Oh_UQ2luE6vu?CNxdJ)hUM7c0R*73gHmWcu@r@AO$Om8b}E#Sy|LW zDo9mTNsE%8Vw`@asWemJ9kFVe^(<}2()Odf*`Q*RMB@oG*-k}62~zBnP}>NyCmN-Q~WiTpu-?D!x{eTkFLO z8oe54A$;T}R#|u9-m!%5++Ig<`c#T0E{YnCsTbVL7-u#S%Uw+Ff~lP*AIb9Zf&`Oo zb{fU;8WAztUY|&q>dFieFqu62%$w;s0Al6-V|q92#mQIb*sZD$O?D}7ejN@ywfFK` IL!18UKiskhXaE2J literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js.gz b/apps/dashboard/build/_app/immutable/chunks/CLrXVRi2.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..16ed5a191b2f31894a8d5335667ee034b52c133c GIT binary patch literal 1739 zcmV;+1~mB}iwFP!000026P;LXbK58o{(is0)hB57h~*^LYg9Uuq|Nm@P1C%#cNtFy zTiBu}feujKT>bYOknBi}ZRPq2u`CbEviq<|WVzCIcFwc>ql$TtncgwDuZuipmY?6{ zUiJn~xs18y`ofCTIME@T6f8dCCULzFe$o-MTnm;u$)ucUl?7z;V4_BE`N;wKW`amm z>q!;!>lPP5r zV|niS|3W5i-N!q)=HqSmmCYB~)0*8m$q`Ia#k>V0D6U=m7CtED5l%ozKXd^sj@`$X z`G)rYKDqz$Ie*dI(5ch-2=82T10&bm!li4zF8uK8+40}uvGCKzN*deCspL1k5Ac_7 zZ{d%sMIrPt{8@MU5aKB1ws#+mQ)W!>eUIN-E@RU>o*B!m826^!_Uv8G5uRyo3oV2F zRH@9JNl^N=bTPI{BMp{@AZQ;9?cD$A7-c0o5(7HL`o zBx0Jl6%R#fxn8DWc+NB%rF=gv77FGeylNX=3e@p5MqTHPm&{EI-CsI&v9GKCumd3M z00_GP1|0x{E`Y5LfUPco?GAwLRRG6@%?nFE``POw_OT-ie|_!qiPHWOqi@LJ>E6-X za?0)bgMkaa>@8WkG~Awvd+taR&s^#XdcpS7HL1;XT|4aB zlIrN59umzBxAT(X%reW7h5I?<2x`fc+c%os2sy3T#&6-T+P#Y{ksEitfFKEXKE~kP zeA;lu%GAY>lWa~8>$n4QQq4xTx`z#2h1qeej}}~c4xQ&TR;ki;AXkS)%{&DC zhceX1z#zuuoa$EGxa$VLe|IItWbKtrCYnt%E~{G9B230gx|l%Pk;7TSG>;Ez5ytDW zs-nb~BMX(FV+!Z7sa`?!S%1MyS6i?HFW@DF;c$`ejP@heN_Vzk@#TSAl{A%x+s!g1 zq(NMI<|G!%uXE7?ca6D+cNCA(mn~LLnJo zVu}%BjUZqULyAl665#{8Q-wt{=i=QUJGhaV1_}v0+GCfMEw<*Z~;2v}*zm zIsgY9fCCIk3vjCgaH|7w3xjL{Zg&7~cK~iLB87QENwII@s!6IwHUQ=?Ovfp$a_n)X zze3(7lt;sDE-9YKC68g6G~z~s)tW8#SXS7Uu`szZt^}Rah^GBWzgqt`OTDKe-B~4S zcQe*2M4c-vo?7ei7uR45ePzkJP$}1uoSk1~f?hpvs-*o$zOs?r*ubKqOS1Ly_m|tx zebLEpbM!0Oc`l#JO=O>2j5qBAQI1i?jKUGy6!{-1jydX2M0SAeU<{1DMK0qdeQk(g zS)OtvUBE&uBv0 z0LDtj!qqOj!K9rgynftNVm zt|igA8{acVOeOk)_TZqJeT^~5#?S~276T=Q44so$Tsx{const o=e?"?"+new URLSearchParams(e).toString():"";return t(`/memories${o}`)},get:e=>t(`/memories/${e}`),delete:e=>t(`/memories/${e}`,{method:"DELETE"}),promote:e=>t(`/memories/${e}/promote`,{method:"POST"}),demote:e=>t(`/memories/${e}/demote`,{method:"POST"}),suppress:(e,o)=>t(`/memories/${e}/suppress`,{method:"POST",body:o?JSON.stringify({reason:o}):void 0}),unsuppress:e=>t(`/memories/${e}/unsuppress`,{method:"POST"})},search:(e,o=20)=>t(`/search?q=${encodeURIComponent(e)}&limit=${o}`),stats:()=>t("/stats"),health:()=>t("/health"),timeline:(e=7,o=200)=>t(`/timeline?days=${e}&limit=${o}`),graph:e=>{const o=e?"?"+new URLSearchParams(Object.entries(e).filter(([,r])=>r!==void 0).map(([r,s])=>[r,String(s)])).toString():"";return t(`/graph${o}`)},dream:()=>t("/dream",{method:"POST"}),explore:(e,o="associations",r,s=10)=>t("/explore",{method:"POST",body:JSON.stringify({from_id:e,action:o,to_id:r,limit:s})}),predict:()=>t("/predict",{method:"POST"}),importance:e=>t("/importance",{method:"POST",body:JSON.stringify({content:e})}),consolidate:()=>t("/consolidate",{method:"POST"}),retentionDistribution:()=>t("/retention-distribution"),intentions:(e="active")=>t(`/intentions?status=${e}`),deepReference:(e,o=20)=>t("/deep_reference",{method:"POST",body:JSON.stringify({query:e,depth:o})}),sanhedrin:{latest:()=>t("/sanhedrin/latest"),telemetry:(e=7)=>t(`/sanhedrin/telemetry?days=${e}`),appeal:(e,o,r,s)=>t("/sanhedrin/appeal",{method:"POST",body:JSON.stringify({reason:e,note:o,claimId:r,receiptId:s})})},traces:{list:(e=50)=>t(`/traces?limit=${e}`),get:e=>t(`/traces/${encodeURIComponent(e)}`),exportUrl:e=>`${i}/traces/${encodeURIComponent(e)}/export`},receipts:{list:(e=50)=>t(`/receipts?limit=${e}`),listForRun:(e,o=50)=>t(`/receipts?run=${encodeURIComponent(e)}&limit=${o}`),get:e=>t(`/receipts/${encodeURIComponent(e)}`)},memoryPrs:{list:(e,o=100)=>{const r=new URLSearchParams;return e&&r.set("status",e),r.set("limit",String(o)),t(`/memory-prs?${r.toString()}`)},get:e=>t(`/memory-prs/${encodeURIComponent(e)}`),act:(e,o)=>t(`/memory-prs/${encodeURIComponent(e)}/${o}`,{method:"POST"}),getMode:()=>t("/memory-prs/mode"),setMode:e=>t("/memory-prs/mode",{method:"POST",body:JSON.stringify({mode:e})})}};export{n as a}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CZfHMhLI.js.br b/apps/dashboard/build/_app/immutable/chunks/CZfHMhLI.js.br new file mode 100644 index 0000000000000000000000000000000000000000..c18a573f0af0663541a8e7ff676b0395f07aa3bb GIT binary patch literal 811 zcmV+`1JwK*nh5}8Gnf7Qd2Lm)rrNlG+R*{P3zONXWjiPP(4(a_t*v&mw#nV41StTy z5gh&q_0)`*L^mDMY%Wlty%6>~RsWg%m)WI29HvWH5GCc>U4v4_mat_q@a9)%T9+50 zUvHN_-l+G~2L7~g1A{YjuX)B$D`5BpICWi@9fbd_T9>b}UReG!OZw;jivI}x{ddo2 z>&-d~pE?WRH<;?)cYE4i77s?Zv6rOXKifzPw|<+l${qU`S@bTPrnl?reE#qX3F4C~ zS5tiXJ7&lLRm^JWW1+vSx9mMSoomU4IukpBkpSY6f~gHWX80KCb{z@k?o7G3(KCYs z!{Uvj&fYTWOuH|>3=dOhc9qJyPZMxjobS41wsWJ+<=MZ`;J@PR$iex*jwAg_b-7K{ z(m2dyCrIP0D|!HS>4jX%Q|vTrDNY*nNmm)PA7ldfe{=84M^ znjbCr4Uvi_sROb%H5etg04gK{=P3)lkRZBlL9L(*MOvVHiKK;X#o9`-A7BDIuC@ZPi2?V8#{27$5ODFF z;-f!wbJMz_H2}1?K#C+q+wwqa^NdJA;`4v=$;#dJW-RB7xR}^~VDYfD`(ZF+Cia%y p^`ZLy>pT*LQ5^i=*Dg{?b-T_YKsZbVJ9XR_uvxS;8_HSB7c1EXqQC$E literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CZfHMhLI.js.gz b/apps/dashboard/build/_app/immutable/chunks/CZfHMhLI.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..cc6616259744aba11247e5fb92533ca47483fd8d GIT binary patch literal 945 zcmV;i15W%OiwFP!000026OC4FZ`(Ey{=Q$K5=J1RjFb)-2FOs2q0N8{-4f*GQ&7~5 zbdK3cJoQL7H3a_mfz*rLSjqg6eD019kIy|)f!f$ex`Ut^L_ALx4_Iz9T>N!&`A=d(lhkS(w*=Cl&d~AfJE}4| zb6jlnc+Mof9ezmB2@~EVFwB2F>q&N-i*Na?1zlhXch?smux?O;wlQ#bQmIvspj_(D1=J|ViljmIzc~Z+Jj_*kr58RXJWoh_l{)$Qiok5}{fvm^N zh7~(h1pH_!Bt71i1e^F%yLIwlLP+0UEBtri( z<9Luhl&Y{J$$mXSQ`HTUmAdE^&(ht_ag>VAkunG;`{%++mD0j^`rh6I0|K9}P=8du z>cb}7YsekZ({c}HTqxZGe&%xK+wmP(FRvZA=!`8NJp`I-SOI~*@%|{V)MH<00FS%; zw++xX15rX_*M3;N7f8K^l9bNcN?I_xXBd&R1N?|U1vOaOh8Y=#a*P|{-JmSFkWB-! z3iQ2}4yt$faX09F288ymhoY#YsxQ2t2ntY*y(l|TIblf_qxHv-|29r@02adp2abD2 z-ofch4zmoyf@JTg@+slN_kT%gm$GyN%_&|3^fNOb_9xQyMt1@@45y7g(hv7;Ib^?b zPbY$3Z?9;_R$%@v*y8vTFyV277s1I1B?fHFI$1LTT=YAE7aI%>ITzyxVtd+nz#9pZyOJH1>J_4o#j#76W3IzGOc_*1x TN76*n&42k17mcKBn+X5_{?f;O literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js b/apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js new file mode 100644 index 0000000..c2d39e6 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js @@ -0,0 +1,376 @@ +import{C as mt,S as vg,c as Ag,d as Rg,G as ll,e as _t,f as Ku,a as Yn,g as Zs,h as Js,W as ln,i as Pn,B as Ct,j as dl,k as Cg,D as zs,l as oa,m as hl,V as j,L as pl,N as en,n as Eg,o as fl,p as wg,q as Mg,r as Bg,s as Fg,t as Ug,u as Pg,v as Dg,E as gl,M as ml,R as Ss,w as ft,x as _o,y as Xs,z as ms,b as Ye,F as Me,J as ze,U as Le,K as yl,O as xl,Q as Lg,T as Ig,X as Xu,Y as Ys,Z as Vg,_ as Gg,$ as Yu,a0 as Og,a1 as tn,a2 as Tl,a3 as kg,a4 as _l,a5 as aa,a6 as vs,H as pt,a7 as ss,a8 as kt,a9 as Ie,aa as Dn,ab as zg,ac as Wg,ad as ua,ae as fr,af as Ln,ag as $g,ah as Hg,ai as Ur,aj as bl,ak as qg,al as Kg,am as Xg,an as Yg,ao as ot,ap as jg,aq as Nl,ar as Qg,as as bo,at as Sl,au as sn,av as ju,aw as Zg,ax as Jg,ay as vl,az as q,aA as em,aB as tm,aC as No,aD as js,aE as sm,aF as nm,aG as rm,aH as im,aI as om,aJ as am,aK as um,aL as cm,aM as lm,aN as dm,aO as hm,aP as pm,aQ as fm,aR as gm,aS as jn,aT as Qn,aU as mm,aV as oi,aW as ai,aX as ui,aY as ys,aZ as ym,a_ as ci,a$ as ca,b0 as li,b1 as So,b2 as bt,b3 as Al,b4 as Rl,b5 as Cl,b6 as El,b7 as wl,b8 as Ml,b9 as Bl,ba as Fl,bb as Ul,bc as Gs,bd as Pl,be as Dl,bf as Ll,bg as Il,bh as Vl,bi as Gl,bj as Ol,bk as kl,bl as zl,bm as Wl,bn as $l,bo as xm,bp as Tm,bq as _m,br as Hl,bs as $r,bt as Hr,A as qr,bu as ql,bv as Kl,bw as Xl,bx as Yl,by as jl,bz as Ql,bA as Zl,bB as Jl,bC as bm,bD as Nm,bE as ed,bF as An,bG as Rn,bH as Ws,bI as Sm,bJ as la,bK as vm,bL as Am,bM as da,bN as ha,bO as pa,bP as fa,bQ as Li,bR as Pr,bS as Dr,bT as Lr,bU as Qu,bV as Zu,bW as Ju,bX as ec,bY as tc,bZ as vo,b_ as Ao,b$ as Ro,c0 as Co,c1 as Eo,c2 as wo,c3 as Mo,c4 as Bo,c5 as Fo,c6 as Uo,c7 as Po,c8 as Do,c9 as Lo,ca as Io,cb as Vo,cc as Go,cd as Ii,ce as Rm,cf as sc,cg as nc,ch as rc,ci as Cm,cj as Em,ck as wm,cl as Mm,cm as Bm,cn as Fm,co as Um,cp as Pm,cq as Dm,cr as Lm,cs as Im,ct as Vm,cu as Gm,cv as Om,cw as km,cx as zm,cy as Wm,cz as $m,cA as Hm,cB as qm,cC as Km,cD as td,cE as Xm}from"./C-SOZ1Oi.js";import{cF as RR,cG as CR,cH as ER,cI as wR,cJ as MR,cK as BR,cL as FR,cM as UR,cN as PR,cO as DR,cP as LR,cQ as IR,cR as VR,cS as GR,cT as OR,cU as kR,cV as zR,cW as WR,cX as $R,cY as HR,cZ as qR,c_ as KR,c$ as XR,d0 as YR,d1 as jR,d2 as QR,d3 as ZR,d4 as JR,d5 as e0,d6 as t0,d7 as s0,d8 as n0,d9 as r0,da as i0,db as o0,dc as a0,dd as u0,de as c0,df as l0,dg as d0,dh as h0,di as p0,dj as f0,dk as g0,dl as m0,dm as y0,dn as x0,dp as T0,dq as _0,dr as b0,ds as N0,dt as S0,du as v0,dv as A0,dw as R0,dx as C0,dy as E0,dz as w0,dA as M0,dB as B0,dC as F0,dD as U0,dE as P0,dF as D0,dG as L0,dH as I0,dI as V0,dJ as G0,dK as O0,dL as k0,dM as z0,dN as W0,dO as $0,dP as H0,dQ as q0,dR as K0,dS as X0,dT as Y0,I as j0,dU as Q0,dV as Z0,dW as J0,dX as eC,dY as tC,dZ as sC,d_ as nC,d$ as rC,e0 as iC,e1 as oC,e2 as aC,e3 as uC,e4 as cC,e5 as lC,e6 as dC,e7 as hC,e8 as pC,e9 as fC,ea as gC,eb as mC,ec as yC,ed as xC,ee as TC,ef as _C,eg as bC,eh as NC,ei as SC,ej as vC,ek as AC,el as RC,em as CC,en as EC,eo as wC,ep as MC,eq as BC,er as FC,es as UC,et as PC,eu as DC,P as LC,ev as IC,ew as VC,ex as GC,ey as OC,ez as kC,eA as zC,eB as WC,eC as $C,eD as HC,eE as qC,eF as KC,eG as XC,eH as YC,eI as jC,eJ as QC,eK as ZC,eL as JC,eM as eE,eN as tE,eO as sE,eP as nE,eQ as rE,eR as iE,eS as oE,eT as aE,eU as uE,eV as cE,eW as lE,eX as dE,eY as hE,eZ as pE,e_ as fE,e$ as gE,f0 as mE,f1 as yE,f2 as xE,f3 as TE,f4 as _E,f5 as bE,f6 as NE,f7 as SE,f8 as vE,f9 as AE,fa as RE,fb as CE,fc as EE,fd as wE,fe as ME,ff as BE,fg as FE,fh as UE,fi as PE,fj as DE,fk as LE,fl as IE,fm as VE,fn as GE,fo as OE,fp as kE,fq as zE,fr as WE,fs as $E,ft as HE,fu as qE,fv as KE,fw as XE,fx as YE,fy as jE,fz as QE,fA as ZE}from"./C-SOZ1Oi.js";/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */const Ym=["alphaMap","alphaTest","anisotropy","anisotropyMap","anisotropyRotation","aoMap","attenuationColor","attenuationDistance","bumpMap","clearcoat","clearcoatMap","clearcoatNormalMap","clearcoatNormalScale","clearcoatRoughness","color","dispersion","displacementMap","emissive","emissiveMap","envMap","gradientMap","ior","iridescence","iridescenceIOR","iridescenceMap","iridescenceThicknessMap","lightMap","map","matcap","metalness","metalnessMap","normalMap","normalScale","opacity","roughness","roughnessMap","sheen","sheenColor","sheenColorMap","sheenRoughnessMap","shininess","specular","specularColor","specularColorMap","specularIntensity","specularIntensityMap","specularMap","thickness","transmission","transmissionMap"];class jm{constructor(e){this.renderObjects=new WeakMap,this.hasNode=this.containsNode(e),this.hasAnimation=e.object.isSkinnedMesh===!0,this.refreshUniforms=Ym,this.renderId=0}firstInitialization(e){return this.renderObjects.has(e)===!1?(this.getRenderObjectData(e),!0):!1}getRenderObjectData(e){let t=this.renderObjects.get(e);if(t===void 0){const{geometry:s,material:n,object:r}=e;if(t={material:this.getMaterialData(n),geometry:{attributes:this.getAttributesData(s.attributes),indexVersion:s.index?s.index.version:null,drawRange:{start:s.drawRange.start,count:s.drawRange.count}},worldMatrix:r.matrixWorld.clone()},r.center&&(t.center=r.center.clone()),r.morphTargetInfluences&&(t.morphTargetInfluences=r.morphTargetInfluences.slice()),e.bundle!==null&&(t.version=e.bundle.version),t.material.transmission>0){const{width:i,height:a}=e.context;t.bufferWidth=i,t.bufferHeight=a}this.renderObjects.set(e,t)}return t}getAttributesData(e){const t={};for(const s in e){const n=e[s];t[s]={version:n.version}}return t}containsNode(e){const t=e.material;for(const s in t)if(t[s]&&t[s].isNode)return!0;return e.renderer.nodes.modelViewMatrix!==null||e.renderer.nodes.modelNormalViewMatrix!==null}getMaterialData(e){const t={};for(const s of this.refreshUniforms){const n=e[s];n!=null&&(typeof n=="object"&&n.clone!==void 0?n.isTexture===!0?t[s]={id:n.id,version:n.version}:t[s]=n.clone():t[s]=n)}return t}equals(e){const{object:t,material:s,geometry:n}=e,r=this.getRenderObjectData(e);if(r.worldMatrix.equals(t.matrixWorld)!==!0)return r.worldMatrix.copy(t.matrixWorld),!1;const i=r.material;for(const m in i){const x=i[m],N=s[m];if(x.equals!==void 0){if(x.equals(N)===!1)return x.copy(N),!1}else if(N.isTexture===!0){if(x.id!==N.id||x.version!==N.version)return x.id=N.id,x.version=N.version,!1}else if(x!==N)return i[m]=N,!1}if(i.transmission>0){const{width:m,height:x}=e.context;if(r.bufferWidth!==m||r.bufferHeight!==x)return r.bufferWidth=m,r.bufferHeight=x,!1}const a=r.geometry,u=n.attributes,c=a.attributes,l=Object.keys(c),d=Object.keys(u);if(l.length!==d.length)return r.geometry.attributes=this.getAttributesData(u),!1;for(const m of l){const x=c[m],N=u[m];if(N===void 0)return delete c[m],!1;if(x.version!==N.version)return x.version=N.version,!1}const h=n.index,p=a.indexVersion,f=h?h.version:null;if(p!==f)return a.indexVersion=f,!1;if(a.drawRange.start!==n.drawRange.start||a.drawRange.count!==n.drawRange.count)return a.drawRange.start=n.drawRange.start,a.drawRange.count=n.drawRange.count,!1;if(r.morphTargetInfluences){let m=!1;for(let x=0;x>>16,2246822507),t^=Math.imul(s^s>>>13,3266489909),s=Math.imul(s^s>>>16,2246822507),s^=Math.imul(t^t>>>13,3266489909),4294967296*(2097151&s)+(t>>>0)}const ga=o=>In(o),Zn=o=>In(o),di=(...o)=>In(o);function ma(o,e=!1){const t=[];o.isNode===!0&&(t.push(o.id),o=o.getSelf());for(const{property:s,childNode:n}of Vn(o))t.push(t,In(s.slice(0,-4)),n.getCacheKey(e));return In(t)}function*Vn(o,e=!1){for(const t in o){if(t.startsWith("_")===!0)continue;const s=o[t];if(Array.isArray(s)===!0)for(let n=0;ne.charCodeAt(0)).buffer}var cR=Object.freeze({__proto__:null,arrayBufferToBase64:Na,base64ToArrayBuffer:Sa,getCacheKey:ma,getDataFromObject:ba,getLengthFromType:Ta,getNodeChildren:Vn,getTypeFromLength:ya,getTypedArrayFromType:xa,getValueFromType:_a,getValueType:Ot,hash:di,hashArray:Zn,hashString:ga});const Oo={VERTEX:"vertex",FRAGMENT:"fragment"},W={NONE:"none",FRAME:"frame",RENDER:"render",OBJECT:"object"},Zm={BOOLEAN:"bool",INTEGER:"int",FLOAT:"float",VECTOR2:"vec2",VECTOR3:"vec3",VECTOR4:"vec4",MATRIX2:"mat2",MATRIX3:"mat3",MATRIX4:"mat4"},Ve={READ_ONLY:"readOnly",WRITE_ONLY:"writeOnly",READ_WRITE:"readWrite"},sd=["fragment","vertex"],ko=["setup","analyze","generate"],zo=[...sd,"compute"],As=["x","y","z","w"];let Jm=0;class O extends gl{static get type(){return"Node"}constructor(e=null){super(),this.nodeType=e,this.updateType=W.NONE,this.updateBeforeType=W.NONE,this.updateAfterType=W.NONE,this.uuid=ml.generateUUID(),this.version=0,this.global=!1,this.isNode=!0,this._cacheKey=null,this._cacheKeyVersion=0,Object.defineProperty(this,"id",{value:Jm++})}set needsUpdate(e){e===!0&&this.version++}get type(){return this.constructor.type}onUpdate(e,t){return this.updateType=t,this.update=e.bind(this.getSelf()),this}onFrameUpdate(e){return this.onUpdate(e,W.FRAME)}onRenderUpdate(e){return this.onUpdate(e,W.RENDER)}onObjectUpdate(e){return this.onUpdate(e,W.OBJECT)}onReference(e){return this.updateReference=e.bind(this.getSelf()),this}getSelf(){return this.self||this}updateReference(){return this}isGlobal(){return this.global}*getChildren(){for(const{childNode:e}of Vn(this))yield e}dispose(){this.dispatchEvent({type:"dispose"})}traverse(e){e(this);for(const t of this.getChildren())t.traverse(e)}getCacheKey(e=!1){return e=e||this.version!==this._cacheKeyVersion,(e===!0||this._cacheKey===null)&&(this._cacheKey=di(ma(this,e),this.customCacheKey()),this._cacheKeyVersion=this.version),this._cacheKey}customCacheKey(){return 0}getScope(){return this}getHash(){return this.uuid}getUpdateType(){return this.updateType}getUpdateBeforeType(){return this.updateBeforeType}getUpdateAfterType(){return this.updateAfterType}getElementType(e){const t=this.getNodeType(e);return e.getElementType(t)}getNodeType(e){const t=e.getNodeProperties(this);return t.outputNode?t.outputNode.getNodeType(e):this.nodeType}getShared(e){const t=this.getHash(e);return e.getNodeFromHash(t)||this}setup(e){const t=e.getNodeProperties(this);let s=0;for(const n of this.getChildren())t["node"+s++]=n;return t.outputNode||null}analyze(e){if(e.increaseUsage(this)===1){const s=e.getNodeProperties(this);for(const n of Object.values(s))n&&n.isNode===!0&&n.build(e)}}generate(e,t){const{outputNode:s}=e.getNodeProperties(this);if(s&&s.isNode===!0)return s.build(e,t)}updateBefore(){console.warn("Abstract function.")}updateAfter(){console.warn("Abstract function.")}update(){console.warn("Abstract function.")}build(e,t=null){const s=this.getShared(e);if(this!==s)return s.build(e,t);e.addNode(this),e.addChain(this);let n=null;const r=e.getBuildStage();if(r==="setup"){this.updateReference(e);const i=e.getNodeProperties(this);if(i.initialized!==!0){i.initialized=!0;const a=this.setup(e),u=a&&a.isNode===!0;for(const c of Object.values(i))c&&c.isNode===!0&&c.build(e);u&&a.build(e),i.outputNode=a}}else if(r==="analyze")this.analyze(e);else if(r==="generate")if(this.generate.length===1){const a=this.getNodeType(e),u=e.getDataFromNode(this);n=u.snippet,n===void 0?(n=this.generate(e)||"",u.snippet=n):u.flowCodes!==void 0&&e.context.nodeBlock!==void 0&&e.addFlowCodeHierarchy(this,e.context.nodeBlock),n=e.format(n,a,t)}else n=this.generate(e,t)||"";return e.removeChain(this),e.addSequentialNode(this),n}getSerializeChildren(){return Vn(this)}serialize(e){const t=this.getSerializeChildren(),s={};for(const{property:n,index:r,childNode:i}of t)r!==void 0?(s[n]===void 0&&(s[n]=Number.isInteger(r)?[]:{}),s[n][r]=i.toJSON(e.meta).uuid):s[n]=i.toJSON(e.meta).uuid;Object.keys(s).length>0&&(e.inputNodes=s)}deserialize(e){if(e.inputNodes!==void 0){const t=e.meta.nodes;for(const s in e.inputNodes)if(Array.isArray(e.inputNodes[s])){const n=[];for(const r of e.inputNodes[s])n.push(t[r]);this[s]=n}else if(typeof e.inputNodes[s]=="object"){const n={};for(const r in e.inputNodes[s]){const i=e.inputNodes[s][r];n[r]=t[i]}this[s]=n}else{const n=e.inputNodes[s];this[s]=t[n]}}}toJSON(e){const{uuid:t,type:s}=this,n=e===void 0||typeof e=="string";n&&(e={textures:{},images:{},nodes:{}});let r=e.nodes[t];r===void 0&&(r={uuid:t,type:s,meta:e,metadata:{version:4.6,type:"Node",generator:"Node.toJSON"}},n!==!0&&(e.nodes[r.uuid]=r),this.serialize(r),delete r.meta);function i(a){const u=[];for(const c in a){const l=a[c];delete l.metadata,u.push(l)}return u}if(n){const a=i(e.textures),u=i(e.images),c=i(e.nodes);a.length>0&&(r.textures=a),u.length>0&&(r.images=u),c.length>0&&(r.nodes=c)}return r}}class Rs extends O{static get type(){return"ArrayElementNode"}constructor(e,t){super(),this.node=e,this.indexNode=t,this.isArrayElementNode=!0}getNodeType(e){return this.node.getElementType(e)}generate(e){const t=this.node.build(e),s=this.indexNode.build(e,"uint");return`${t}[ ${s} ]`}}class nd extends O{static get type(){return"ConvertNode"}constructor(e,t){super(),this.node=e,this.convertTo=t}getNodeType(e){const t=this.node.getNodeType(e);let s=null;for(const n of this.convertTo.split("|"))(s===null||e.getTypeLength(t)===e.getTypeLength(n))&&(s=n);return s}serialize(e){super.serialize(e),e.convertTo=this.convertTo}deserialize(e){super.deserialize(e),this.convertTo=e.convertTo}generate(e,t){const s=this.node,n=this.getNodeType(e),r=s.build(e,n);return e.format(r,n,t)}}class be extends O{static get type(){return"TempNode"}constructor(e=null){super(e),this.isTempNode=!0}hasDependencies(e){return e.getDataFromNode(this).usageCount>1}build(e,t){if(e.getBuildStage()==="generate"){const n=e.getVectorType(this.getNodeType(e,t)),r=e.getDataFromNode(this);if(r.propertyName!==void 0)return e.format(r.propertyName,n,t);if(n!=="void"&&t!=="void"&&this.hasDependencies(e)){const i=super.build(e,n),a=e.getVarFromNode(this,null,n),u=e.getPropertyName(a);return e.addLineFlowCode(`${u} = ${i}`,this),r.snippet=i,r.propertyName=u,e.format(r.propertyName,n,t)}}return super.build(e,t)}}class ey extends be{static get type(){return"JoinNode"}constructor(e=[],t=null){super(t),this.nodes=e}getNodeType(e){return this.nodeType!==null?e.getVectorType(this.nodeType):e.getTypeFromLength(this.nodes.reduce((t,s)=>t+e.getTypeLength(s.getNodeType(e)),0))}generate(e,t){const s=this.getNodeType(e),n=this.nodes,r=e.getComponentType(s),i=[];for(const u of n){let c=u.build(e);const l=e.getComponentType(u.getNodeType(e));l!==r&&(c=e.format(c,l,r)),i.push(c)}const a=`${e.getType(s)}( ${i.join(", ")} )`;return e.format(a,s,t)}}const ty=As.join("");class Wo extends O{static get type(){return"SplitNode"}constructor(e,t="x"){super(),this.node=e,this.components=t,this.isSplitNode=!0}getVectorLength(){let e=this.components.length;for(const t of this.components)e=Math.max(As.indexOf(t)+1,e);return e}getComponentType(e){return e.getComponentType(this.node.getNodeType(e))}getNodeType(e){return e.getTypeFromLength(this.components.length,this.getComponentType(e))}generate(e,t){const s=this.node,n=e.getTypeLength(s.getNodeType(e));let r=null;if(n>1){let i=null;this.getVectorLength()>=n&&(i=e.getTypeFromLength(this.getVectorLength(),this.getComponentType(e)));const u=s.build(e,i);this.components.length===n&&this.components===ty.slice(0,this.components.length)?r=e.format(u,i,t):r=e.format(`${u}.${this.components}`,this.getNodeType(e),t)}else r=s.build(e,t);return r}serialize(e){super.serialize(e),e.components=this.components}deserialize(e){super.deserialize(e),this.components=e.components}}class sy extends be{static get type(){return"SetNode"}constructor(e,t,s){super(),this.sourceNode=e,this.components=t,this.targetNode=s}getNodeType(e){return this.sourceNode.getNodeType(e)}generate(e){const{sourceNode:t,components:s,targetNode:n}=this,r=this.getNodeType(e),i=e.getComponentType(n.getNodeType(e)),a=e.getTypeFromLength(s.length,i),u=n.build(e,a),c=t.build(e,r),l=e.getTypeLength(r),d=[];for(let h=0;ho.replace(/r|s/g,"x").replace(/g|t/g,"y").replace(/b|p/g,"z").replace(/a|q/g,"w"),oc=o=>rd(o).split("").sort().join(""),id={setup(o,e){const t=e.shift();return o(Jn(t),...e)},get(o,e,t){if(typeof e=="string"&&o[e]===void 0){if(o.isStackNode!==!0&&e==="assign")return(...s)=>(nn.assign(t,...s),t);if($s.has(e)){const s=$s.get(e);return o.isStackNode?(...n)=>t.add(s(...n)):(...n)=>s(t,...n)}else{if(e==="self")return o;if(e.endsWith("Assign")&&$s.has(e.slice(0,e.length-6))){const s=$s.get(e.slice(0,e.length-6));return o.isStackNode?(...n)=>t.assign(n[0],s(...n)):(...n)=>t.assign(s(t,...n))}else{if(/^[xyzwrgbastpq]{1,4}$/.test(e)===!0)return e=rd(e),E(new Wo(t,e));if(/^set[XYZWRGBASTPQ]{1,4}$/.test(e)===!0)return e=oc(e.slice(3).toLowerCase()),s=>E(new sy(o,e,s));if(/^flip[XYZWRGBASTPQ]{1,4}$/.test(e)===!0)return e=oc(e.slice(4).toLowerCase()),()=>E(new ny(E(o),e));if(e==="width"||e==="height"||e==="depth")return e==="width"?e="x":e==="height"?e="y":e==="depth"&&(e="z"),E(new Wo(o,e));if(/^\d+$/.test(e)===!0)return E(new Rs(t,new yt(Number(e),"uint")))}}}return Reflect.get(o,e,t)},set(o,e,t,s){return typeof e=="string"&&o[e]===void 0&&(/^[xyzwrgbastpq]{1,4}$/.test(e)===!0||e==="width"||e==="height"||e==="depth"||/^\d+$/.test(e)===!0)?(s[e].assign(t),!0):Reflect.set(o,e,t,s)}},Vi=new WeakMap,ac=new WeakMap,ry=function(o,e=null){const t=Ot(o);if(t==="node"){let s=Vi.get(o);return s===void 0&&(s=new Proxy(o,id),Vi.set(o,s),Vi.set(s,s)),s}else{if(e===null&&(t==="float"||t==="boolean")||t&&t!=="shader"&&t!=="string")return E($o(o,e));if(t==="shader")return b(o)}return o},iy=function(o,e=null){for(const t in o)o[t]=E(o[t],e);return o},oy=function(o,e=null){const t=o.length;for(let s=0;sE(s!==null?Object.assign(r,s):r);return e===null?(...r)=>n(new o(...xs(r))):t!==null?(t=E(t),(...r)=>n(new o(e,...xs(r),t))):(...r)=>n(new o(e,...xs(r)))},uy=function(o,...e){return E(new o(...xs(e)))};class cy extends O{constructor(e,t){super(),this.shaderNode=e,this.inputNodes=t}getNodeType(e){return this.shaderNode.nodeType||this.getOutputNode(e).getNodeType(e)}call(e){const{shaderNode:t,inputNodes:s}=this,n=e.getNodeProperties(t);if(n.onceOutput)return n.onceOutput;let r=null;if(t.layout){let i=ac.get(e.constructor);i===void 0&&(i=new WeakMap,ac.set(e.constructor,i));let a=i.get(t);a===void 0&&(a=E(e.buildFunctionNode(t)),i.set(t,a)),e.currentFunctionNode!==null&&e.currentFunctionNode.includes.push(a),r=E(a.call(s))}else{const i=t.jsFunc,a=s!==null?i(s,e):i(e);r=E(a)}return t.once&&(n.onceOutput=r),r}getOutputNode(e){const t=e.getNodeProperties(this);return t.outputNode===null&&(t.outputNode=this.setupOutput(e)),t.outputNode}setup(e){return this.getOutputNode(e)}setupOutput(e){return e.addStack(),e.stack.outputNode=this.call(e),e.removeStack()}generate(e,t){return this.getOutputNode(e).build(e,t)}}class ly extends O{constructor(e,t){super(t),this.jsFunc=e,this.layout=null,this.global=!0,this.once=!1}setLayout(e){return this.layout=e,this}call(e=null){return Jn(e),E(new cy(this,e))}setup(){return this.call()}}const dy=[!1,!0],hy=[0,1,2,3],py=[-1,-2],od=[.5,1.5,1/3,1e-6,1e6,Math.PI,Math.PI*2,1/Math.PI,2/Math.PI,1/(Math.PI*2),Math.PI/2],Aa=new Map;for(const o of dy)Aa.set(o,new yt(o));const Ra=new Map;for(const o of hy)Ra.set(o,new yt(o,"uint"));const Ca=new Map([...Ra].map(o=>new yt(o.value,"int")));for(const o of py)Ca.set(o,new yt(o,"int"));const hi=new Map([...Ca].map(o=>new yt(o.value)));for(const o of od)hi.set(o,new yt(o));for(const o of od)hi.set(-o,new yt(-o));const pi={bool:Aa,uint:Ra,ints:Ca,float:hi},uc=new Map([...Aa,...hi]),$o=(o,e)=>uc.has(o)?uc.get(o):o.isNode===!0?o:new yt(o,e),fy=o=>{try{return o.getNodeType()}catch{return}},ve=function(o,e=null){return(...t)=>{if((t.length===0||!["bool","float","int","uint"].includes(o)&&t.every(n=>typeof n!="object"))&&(t=[_a(o,...t)]),t.length===1&&e!==null&&e.has(t[0]))return E(e.get(t[0]));if(t.length===1){const n=$o(t[0],o);return fy(n)===o?E(n):E(new nd(n,o))}const s=t.map(n=>$o(n));return E(new ey(s,o))}},Gn=o=>typeof o=="object"&&o!==null?o.value:o,ad=o=>o!=null?o.nodeType||o.convertTo||(typeof o=="string"?o:null):null;function Cn(o,e){return new Proxy(new ly(o,e),id)}const E=(o,e=null)=>ry(o,e),Jn=(o,e=null)=>new iy(o,e),xs=(o,e=null)=>new oy(o,e),C=(...o)=>new ay(...o),U=(...o)=>new uy(...o),b=(o,e)=>{const t=new Cn(o,e),s=(...n)=>{let r;return Jn(n),n[0]&&n[0].isNode?r=[...n]:r=n[0],t.call(r)};return s.shaderNode=t,s.setLayout=n=>(t.setLayout(n),s),s.once=()=>(t.once=!0,s),s},gy=(...o)=>(console.warn("TSL.ShaderNode: tslFn() has been renamed to Fn()."),b(...o));R("toGlobal",o=>(o.global=!0,o));const On=o=>{nn=o},Ea=()=>nn,z=(...o)=>nn.If(...o);function ud(o){return nn&&nn.add(o),o}R("append",ud);const cd=new ve("color"),g=new ve("float",pi.float),y=new ve("int",pi.ints),D=new ve("uint",pi.uint),Ht=new ve("bool",pi.bool),M=new ve("vec2"),Ae=new ve("ivec2"),ld=new ve("uvec2"),dd=new ve("bvec2"),T=new ve("vec3"),hd=new ve("ivec3"),dn=new ve("uvec3"),wa=new ve("bvec3"),P=new ve("vec4"),pd=new ve("ivec4"),fd=new ve("uvec4"),gd=new ve("bvec4"),fi=new ve("mat2"),Oe=new ve("mat3"),Ts=new ve("mat4"),my=(o="")=>E(new yt(o,"string")),yy=o=>E(new yt(o,"ArrayBuffer"));R("toColor",cd);R("toFloat",g);R("toInt",y);R("toUint",D);R("toBool",Ht);R("toVec2",M);R("toIVec2",Ae);R("toUVec2",ld);R("toBVec2",dd);R("toVec3",T);R("toIVec3",hd);R("toUVec3",dn);R("toBVec3",wa);R("toVec4",P);R("toIVec4",pd);R("toUVec4",fd);R("toBVec4",gd);R("toMat2",fi);R("toMat3",Oe);R("toMat4",Ts);const md=C(Rs),yd=(o,e)=>E(new nd(E(o),e)),xy=(o,e)=>E(new Wo(E(o),e));R("element",md);R("convert",yd);class xd extends O{static get type(){return"UniformGroupNode"}constructor(e,t=!1,s=1){super("string"),this.name=e,this.shared=t,this.order=s,this.isUniformGroup=!0}serialize(e){super.serialize(e),e.name=this.name,e.version=this.version,e.shared=this.shared}deserialize(e){super.deserialize(e),this.name=e.name,this.version=e.version,this.shared=e.shared}}const Td=o=>new xd(o),Ma=(o,e=0)=>new xd(o,!0,e),_d=Ma("frame"),k=Ma("render"),Ba=Td("object");class er extends va{static get type(){return"UniformNode"}constructor(e,t=null){super(e,t),this.isUniformNode=!0,this.name="",this.groupNode=Ba}label(e){return this.name=e,this}setGroup(e){return this.groupNode=e,this}getGroup(){return this.groupNode}getUniformHash(e){return this.getHash(e)}onUpdate(e,t){const s=this.getSelf();return e=e.bind(s),super.onUpdate(n=>{const r=e(n,s);r!==void 0&&(this.value=r)},t)}generate(e,t){const s=this.getNodeType(e),n=this.getUniformHash(e);let r=e.getNodeFromHash(n);r===void 0&&(e.setHashNode(this,n),r=this);const i=r.getInputType(e),a=e.getUniformFromNode(r,i,e.shaderStage,this.name||e.context.label),u=e.getPropertyName(a);return e.context.label!==void 0&&delete e.context.label,e.format(u,s,t)}}const V=(o,e)=>{const t=ad(e||o),s=o&&o.isNode===!0?o.node&&o.node.value||o.value:o;return E(new er(s,t))};class se extends O{static get type(){return"PropertyNode"}constructor(e,t=null,s=!1){super(e),this.name=t,this.varying=s,this.isPropertyNode=!0}getHash(e){return this.name||super.getHash(e)}isGlobal(){return!0}generate(e){let t;return this.varying===!0?(t=e.getVaryingFromNode(this,this.name),t.needsInterpolation=!0):t=e.getVarFromNode(this,this.name),e.getPropertyName(t)}}const Fa=(o,e)=>E(new se(o,e)),et=(o,e)=>E(new se(o,e,!0)),ee=U(se,"vec4","DiffuseColor"),Ho=U(se,"vec3","EmissiveColor"),Nt=U(se,"float","Roughness"),kn=U(se,"float","Metalness"),Kr=U(se,"float","Clearcoat"),zn=U(se,"float","ClearcoatRoughness"),fs=U(se,"vec3","Sheen"),gi=U(se,"float","SheenRoughness"),mi=U(se,"float","Iridescence"),Ua=U(se,"float","IridescenceIOR"),Pa=U(se,"float","IridescenceThickness"),Xr=U(se,"float","AlphaT"),Zt=U(se,"float","Anisotropy"),En=U(se,"vec3","AnisotropyT"),_s=U(se,"vec3","AnisotropyB"),We=U(se,"color","SpecularColor"),Wn=U(se,"float","SpecularF90"),Yr=U(se,"float","Shininess"),$n=U(se,"vec4","Output"),bs=U(se,"float","dashSize"),Hn=U(se,"float","gapSize"),Ty=U(se,"float","pointWidth"),wn=U(se,"float","IOR"),jr=U(se,"float","Transmission"),Da=U(se,"float","Thickness"),La=U(se,"float","AttenuationDistance"),Ia=U(se,"color","AttenuationColor"),Va=U(se,"float","Dispersion");class _y extends be{static get type(){return"AssignNode"}constructor(e,t){super(),this.targetNode=e,this.sourceNode=t}hasDependencies(){return!1}getNodeType(e,t){return t!=="void"?this.targetNode.getNodeType(e):"void"}needsSplitAssign(e){const{targetNode:t}=this;if(e.isAvailable("swizzleAssign")===!1&&t.isSplitNode&&t.components.length>1){const s=e.getTypeLength(t.node.getNodeType(e));return As.join("").slice(0,s)!==t.components}return!1}generate(e,t){const{targetNode:s,sourceNode:n}=this,r=this.needsSplitAssign(e),i=s.getNodeType(e),a=s.context({assign:!0}).build(e),u=n.build(e,i),c=n.getNodeType(e),l=e.getDataFromNode(this);let d;if(l.initialized===!0)t!=="void"&&(d=a);else if(r){const h=e.getVarFromNode(this,null,i),p=e.getPropertyName(h);e.addLineFlowCode(`${p} = ${u}`,this);const f=s.node.context({assign:!0}).build(e);for(let m=0;m{const l=c.type,d=l==="pointer";let h;return d?h="&"+u.build(e):h=u.build(e,l),h};if(Array.isArray(r))for(let u=0;u(e=e.length>1||e[0]&&e[0].isNode===!0?xs(e):Jn(e[0]),E(new by(E(o),e)));R("call",Nd);class pe extends be{static get type(){return"OperatorNode"}constructor(e,t,s,...n){if(super(),n.length>0){let r=new pe(e,t,s);for(let i=0;i>"||s==="<<")return e.getIntegerType(i);if(s==="!"||s==="=="||s==="&&"||s==="||"||s==="^^")return"bool";if(s==="<"||s===">"||s==="<="||s===">="){const u=t?e.getTypeLength(t):Math.max(e.getTypeLength(i),e.getTypeLength(a));return u>1?`bvec${u}`:"bool"}else return i==="float"&&e.isMatrix(a)?a:e.isMatrix(i)&&e.isVector(a)?e.getVectorFromMatrix(i):e.isVector(i)&&e.isMatrix(a)?e.getVectorFromMatrix(a):e.getTypeLength(a)>e.getTypeLength(i)?a:i}generate(e,t){const s=this.op,n=this.aNode,r=this.bNode,i=this.getNodeType(e,t);let a=null,u=null;i!=="void"?(a=n.getNodeType(e),u=typeof r<"u"?r.getNodeType(e):null,s==="<"||s===">"||s==="<="||s===">="||s==="=="?e.isVector(a)?u=a:a!==u&&(a=u="float"):s===">>"||s==="<<"?(a=i,u=e.changeComponentType(u,"uint")):e.isMatrix(a)&&e.isVector(u)?u=e.getVectorFromMatrix(a):e.isVector(a)&&e.isMatrix(u)?a=e.getVectorFromMatrix(u):a=u=i):a=u=i;const c=n.build(e,a),l=typeof r<"u"?r.build(e,u):null,d=e.getTypeLength(t),h=e.getFunctionOperator(s);if(t!=="void")return s==="<"&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("lessThan",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} < ${l} )`,i,t):s==="<="&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("lessThanEqual",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} <= ${l} )`,i,t):s===">"&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("greaterThan",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} > ${l} )`,i,t):s===">="&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("greaterThanEqual",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} >= ${l} )`,i,t):s==="!"||s==="~"?e.format(`(${s}${c})`,a,t):h?e.format(`${h}( ${c}, ${l} )`,i,t):e.format(`( ${c} ${s} ${l} )`,i,t);if(a!=="void")return h?e.format(`${h}( ${c}, ${l} )`,i,t):e.format(`${c} ${s} ${l}`,i,t)}serialize(e){super.serialize(e),e.op=this.op}deserialize(e){super.deserialize(e),this.op=e.op}}const _e=C(pe,"+"),Y=C(pe,"-"),$=C(pe,"*"),gt=C(pe,"/"),Ga=C(pe,"%"),Sd=C(pe,"=="),vd=C(pe,"!="),Ad=C(pe,"<"),Oa=C(pe,">"),Rd=C(pe,"<="),Cd=C(pe,">="),Ed=C(pe,"&&"),wd=C(pe,"||"),Md=C(pe,"!"),Bd=C(pe,"^^"),Fd=C(pe,"&"),Ud=C(pe,"~"),Pd=C(pe,"|"),Dd=C(pe,"^"),Ld=C(pe,"<<"),Id=C(pe,">>");R("add",_e);R("sub",Y);R("mul",$);R("div",gt);R("modInt",Ga);R("equal",Sd);R("notEqual",vd);R("lessThan",Ad);R("greaterThan",Oa);R("lessThanEqual",Rd);R("greaterThanEqual",Cd);R("and",Ed);R("or",wd);R("not",Md);R("xor",Bd);R("bitAnd",Fd);R("bitNot",Ud);R("bitOr",Pd);R("bitXor",Dd);R("shiftLeft",Ld);R("shiftRight",Id);const Vd=(...o)=>(console.warn("TSL.OperatorNode: .remainder() has been renamed to .modInt()."),Ga(...o));R("remainder",Vd);class S extends be{static get type(){return"MathNode"}constructor(e,t,s=null,n=null){super(),this.method=e,this.aNode=t,this.bNode=s,this.cNode=n}getInputType(e){const t=this.aNode.getNodeType(e),s=this.bNode?this.bNode.getNodeType(e):null,n=this.cNode?this.cNode.getNodeType(e):null,r=e.isMatrix(t)?0:e.getTypeLength(t),i=e.isMatrix(s)?0:e.getTypeLength(s),a=e.isMatrix(n)?0:e.getTypeLength(n);return r>i&&r>a?t:i>a?s:a>r?n:t}getNodeType(e){const t=this.method;return t===S.LENGTH||t===S.DISTANCE||t===S.DOT?"float":t===S.CROSS?"vec3":t===S.ALL?"bool":t===S.EQUALS?e.changeComponentType(this.aNode.getNodeType(e),"bool"):t===S.MOD?this.aNode.getNodeType(e):this.getInputType(e)}generate(e,t){let s=this.method;const n=this.getNodeType(e),r=this.getInputType(e),i=this.aNode,a=this.bNode,u=this.cNode,c=e.renderer.coordinateSystem;if(s===S.TRANSFORM_DIRECTION){let l=i,d=a;e.isMatrix(l.getNodeType(e))?d=P(T(d),0):l=P(T(l),0);const h=$(l,d).xyz;return qt(h).build(e,t)}else{if(s===S.NEGATE)return e.format("( - "+i.build(e,r)+" )",n,t);if(s===S.ONE_MINUS)return Y(1,i).build(e,t);if(s===S.RECIPROCAL)return gt(1,i).build(e,t);if(s===S.DIFFERENCE)return oe(Y(i,a)).build(e,t);{const l=[];return s===S.CROSS||s===S.MOD?l.push(i.build(e,n),a.build(e,n)):c===Pn&&s===S.STEP?l.push(i.build(e,e.getTypeLength(i.getNodeType(e))===1?"float":r),a.build(e,r)):c===Pn&&(s===S.MIN||s===S.MAX)||s===S.MOD?l.push(i.build(e,r),a.build(e,e.getTypeLength(a.getNodeType(e))===1?"float":r)):s===S.REFRACT?l.push(i.build(e,r),a.build(e,r),u.build(e,"float")):s===S.MIX?l.push(i.build(e,r),a.build(e,r),u.build(e,e.getTypeLength(u.getNodeType(e))===1?"float":r)):(c===ln&&s===S.ATAN&&a!==null&&(s="atan2"),l.push(i.build(e,r)),a!==null&&l.push(a.build(e,r)),u!==null&&l.push(u.build(e,r))),e.format(`${e.getMethod(s,n)}( ${l.join(", ")} )`,n,t)}}}serialize(e){super.serialize(e),e.method=this.method}deserialize(e){super.deserialize(e),this.method=e.method}}S.ALL="all";S.ANY="any";S.RADIANS="radians";S.DEGREES="degrees";S.EXP="exp";S.EXP2="exp2";S.LOG="log";S.LOG2="log2";S.SQRT="sqrt";S.INVERSE_SQRT="inversesqrt";S.FLOOR="floor";S.CEIL="ceil";S.NORMALIZE="normalize";S.FRACT="fract";S.SIN="sin";S.COS="cos";S.TAN="tan";S.ASIN="asin";S.ACOS="acos";S.ATAN="atan";S.ABS="abs";S.SIGN="sign";S.LENGTH="length";S.NEGATE="negate";S.ONE_MINUS="oneMinus";S.DFDX="dFdx";S.DFDY="dFdy";S.ROUND="round";S.RECIPROCAL="reciprocal";S.TRUNC="trunc";S.FWIDTH="fwidth";S.TRANSPOSE="transpose";S.BITCAST="bitcast";S.EQUALS="equals";S.MIN="min";S.MAX="max";S.MOD="mod";S.STEP="step";S.REFLECT="reflect";S.DISTANCE="distance";S.DIFFERENCE="difference";S.DOT="dot";S.CROSS="cross";S.POW="pow";S.TRANSFORM_DIRECTION="transformDirection";S.MIX="mix";S.CLAMP="clamp";S.REFRACT="refract";S.SMOOTHSTEP="smoothstep";S.FACEFORWARD="faceforward";const Gd=g(1e-6),Ny=g(1e6),Qr=g(Math.PI),Sy=g(Math.PI*2),ka=C(S,S.ALL),Od=C(S,S.ANY),kd=C(S,S.RADIANS),zd=C(S,S.DEGREES),za=C(S,S.EXP),rn=C(S,S.EXP2),yi=C(S,S.LOG),vt=C(S,S.LOG2),Pt=C(S,S.SQRT),Wa=C(S,S.INVERSE_SQRT),At=C(S,S.FLOOR),xi=C(S,S.CEIL),qt=C(S,S.NORMALIZE),Xt=C(S,S.FRACT),st=C(S,S.SIN),It=C(S,S.COS),Wd=C(S,S.TAN),$d=C(S,S.ASIN),Hd=C(S,S.ACOS),$a=C(S,S.ATAN),oe=C(S,S.ABS),qn=C(S,S.SIGN),zt=C(S,S.LENGTH),qd=C(S,S.NEGATE),Kd=C(S,S.ONE_MINUS),Ha=C(S,S.DFDX),qa=C(S,S.DFDY),Xd=C(S,S.ROUND),Yd=C(S,S.RECIPROCAL),Ka=C(S,S.TRUNC),jd=C(S,S.FWIDTH),Qd=C(S,S.TRANSPOSE),vy=C(S,S.BITCAST),Zd=C(S,S.EQUALS),Re=C(S,S.MIN),ue=C(S,S.MAX),Xa=C(S,S.MOD),Ti=C(S,S.STEP),Jd=C(S,S.REFLECT),eh=C(S,S.DISTANCE),th=C(S,S.DIFFERENCE),is=C(S,S.DOT),_i=C(S,S.CROSS),ht=C(S,S.POW),Ya=C(S,S.POW,2),sh=C(S,S.POW,3),nh=C(S,S.POW,4),rh=C(S,S.TRANSFORM_DIRECTION),ih=o=>$(qn(o),ht(oe(o),1/3)),ja=o=>is(o,o),Q=C(S,S.MIX),Et=(o,e=0,t=1)=>E(new S(S.CLAMP,E(o),E(e),E(t))),oh=o=>Et(o),Qa=C(S,S.REFRACT),ct=C(S,S.SMOOTHSTEP),Za=C(S,S.FACEFORWARD),ah=b(([o])=>{const s=43758.5453,n=is(o.xy,M(12.9898,78.233)),r=Xa(n,Qr);return Xt(st(r).mul(s))}),uh=(o,e,t)=>Q(e,t,o),ch=(o,e,t)=>ct(e,t,o),lh=(o,e)=>(console.warn('THREE.TSL: "atan2" is overloaded. Use "atan" instead.'),$a(o,e)),Ay=Za,Ry=Wa;R("all",ka);R("any",Od);R("equals",Zd);R("radians",kd);R("degrees",zd);R("exp",za);R("exp2",rn);R("log",yi);R("log2",vt);R("sqrt",Pt);R("inverseSqrt",Wa);R("floor",At);R("ceil",xi);R("normalize",qt);R("fract",Xt);R("sin",st);R("cos",It);R("tan",Wd);R("asin",$d);R("acos",Hd);R("atan",$a);R("abs",oe);R("sign",qn);R("length",zt);R("lengthSq",ja);R("negate",qd);R("oneMinus",Kd);R("dFdx",Ha);R("dFdy",qa);R("round",Xd);R("reciprocal",Yd);R("trunc",Ka);R("fwidth",jd);R("atan2",lh);R("min",Re);R("max",ue);R("mod",Xa);R("step",Ti);R("reflect",Jd);R("distance",eh);R("dot",is);R("cross",_i);R("pow",ht);R("pow2",Ya);R("pow3",sh);R("pow4",nh);R("transformDirection",rh);R("mix",uh);R("clamp",Et);R("refract",Qa);R("smoothstep",ch);R("faceForward",Za);R("difference",th);R("saturate",oh);R("cbrt",ih);R("transpose",Qd);R("rand",ah);class Cy extends O{static get type(){return"ConditionalNode"}constructor(e,t,s=null){super(),this.condNode=e,this.ifNode=t,this.elseNode=s}getNodeType(e){const{ifNode:t,elseNode:s}=e.getNodeProperties(this);if(t===void 0)return this.setup(e),this.getNodeType(e);const n=t.getNodeType(e);if(s!==null){const r=s.getNodeType(e);if(e.getTypeLength(r)>e.getTypeLength(n))return r}return n}setup(e){const t=this.condNode.cache(),s=this.ifNode.cache(),n=this.elseNode?this.elseNode.cache():null,r=e.context.nodeBlock;e.getDataFromNode(s).parentNodeBlock=r,n!==null&&(e.getDataFromNode(n).parentNodeBlock=r);const i=e.getNodeProperties(this);i.condNode=t,i.ifNode=s.context({nodeBlock:s}),i.elseNode=n?n.context({nodeBlock:n}):null}generate(e,t){const s=this.getNodeType(e),n=e.getDataFromNode(this);if(n.nodeProperty!==void 0)return n.nodeProperty;const{condNode:r,ifNode:i,elseNode:a}=e.getNodeProperties(this),u=t!=="void",c=u?Fa(s).build(e):"";n.nodeProperty=c;const l=r.build(e,"bool");e.addFlowCode(` +${e.tab}if ( ${l} ) { + +`).addFlowTab();let d=i.build(e,s);if(d&&(u?d=c+" = "+d+";":d="return "+d+";"),e.removeFlowTab().addFlowCode(e.tab+" "+d+` + +`+e.tab+"}"),a!==null){e.addFlowCode(` else { + +`).addFlowTab();let h=a.build(e,s);h&&(u?h=c+" = "+h+";":h="return "+h+";"),e.removeFlowTab().addFlowCode(e.tab+" "+h+` + +`+e.tab+`} + +`)}else e.addFlowCode(` + +`);return e.format(c,s,t)}}const Ue=C(Cy);R("select",Ue);const dh=(...o)=>(console.warn("TSL.ConditionalNode: cond() has been renamed to select()."),Ue(...o));R("cond",dh);class hh extends O{static get type(){return"ContextNode"}constructor(e,t={}){super(),this.isContextNode=!0,this.node=e,this.value=t}getScope(){return this.node.getScope()}getNodeType(e){return this.node.getNodeType(e)}analyze(e){this.node.build(e)}setup(e){const t=e.getContext();e.setContext({...e.context,...this.value});const s=this.node.build(e);return e.setContext(t),s}generate(e,t){const s=e.getContext();e.setContext({...e.context,...this.value});const n=this.node.build(e,t);return e.setContext(s),n}}const bi=C(hh),ph=(o,e)=>bi(o,{label:e});R("context",bi);R("label",ph);class Ir extends O{static get type(){return"VarNode"}constructor(e,t=null){super(),this.node=e,this.name=t,this.global=!0,this.isVarNode=!0}getHash(e){return this.name||super.getHash(e)}getNodeType(e){return this.node.getNodeType(e)}generate(e){const{node:t,name:s}=this,n=e.getVarFromNode(this,s,e.getVectorType(this.getNodeType(e))),r=e.getPropertyName(n),i=t.build(e,n.type);return e.addLineFlowCode(`${r} = ${i}`,this),r}}const fh=C(Ir);R("toVar",(...o)=>fh(...o).append());const gh=o=>(console.warn('TSL: "temp" is deprecated. Use ".toVar()" instead.'),fh(o));R("temp",gh);class Ey extends O{static get type(){return"VaryingNode"}constructor(e,t=null){super(),this.node=e,this.name=t,this.isVaryingNode=!0}isGlobal(){return!0}getHash(e){return this.name||super.getHash(e)}getNodeType(e){return this.node.getNodeType(e)}setupVarying(e){const t=e.getNodeProperties(this);let s=t.varying;if(s===void 0){const n=this.name,r=this.getNodeType(e);t.varying=s=e.getVaryingFromNode(this,n,r),t.node=this.node}return s.needsInterpolation||(s.needsInterpolation=e.shaderStage==="fragment"),s}setup(e){this.setupVarying(e)}analyze(e){return this.setupVarying(e),this.node.analyze(e)}generate(e){const t=e.getNodeProperties(this),s=this.setupVarying(e),n=e.shaderStage==="fragment"&&t.reassignPosition===!0&&e.context.needsPositionReassign;if(t.propertyName===void 0||n){const r=this.getNodeType(e),i=e.getPropertyName(s,Oo.VERTEX);e.flowNodeFromShaderStage(Oo.VERTEX,this.node,r,i),t.propertyName=i,n?t.reassignPosition=!1:t.reassignPosition===void 0&&e.context.isPositionNodeInput&&(t.reassignPosition=!0)}return e.getPropertyName(s)}}const ke=C(Ey),mh=o=>ke(o);R("varying",ke);R("vertexStage",mh);const yh=b(([o])=>{const e=o.mul(.9478672986).add(.0521327014).pow(2.4),t=o.mul(.0773993808),s=o.lessThanEqual(.04045);return Q(e,t,s)}).setLayout({name:"sRGBTransferEOTF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),xh=b(([o])=>{const e=o.pow(.41666).mul(1.055).sub(.055),t=o.mul(12.92),s=o.lessThanEqual(.0031308);return Q(e,t,s)}).setLayout({name:"sRGBTransferOETF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),tr="WorkingColorSpace",Ja="OutputColorSpace";class sr extends be{static get type(){return"ColorSpaceNode"}constructor(e,t,s){super("vec4"),this.colorNode=e,this.source=t,this.target=s}resolveColorSpace(e,t){return t===tr?_t.workingColorSpace:t===Ja?e.context.outputColorSpace||e.renderer.outputColorSpace:t}setup(e){const{colorNode:t}=this,s=this.resolveColorSpace(e,this.source),n=this.resolveColorSpace(e,this.target);let r=t;return _t.enabled===!1||s===n||!s||!n||(_t.getTransfer(s)===Ku&&(r=P(yh(r.rgb),r.a)),_t.getPrimaries(s)!==_t.getPrimaries(n)&&(r=P(Oe(_t._getMatrix(new Yn,s,n)).mul(r.rgb),r.a)),_t.getTransfer(n)===Ku&&(r=P(xh(r.rgb),r.a))),r}}const Th=o=>E(new sr(E(o),tr,Ja)),_h=o=>E(new sr(E(o),Ja,tr)),bh=(o,e)=>E(new sr(E(o),tr,e)),eu=(o,e)=>E(new sr(E(o),e,tr)),wy=(o,e,t)=>E(new sr(E(o),e,t));R("toOutputColorSpace",Th);R("toWorkingColorSpace",_h);R("workingToColorSpace",bh);R("colorSpaceToWorking",eu);let My=class extends Rs{static get type(){return"ReferenceElementNode"}constructor(e,t){super(e,t),this.referenceNode=e,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(e){const t=super.generate(e),s=this.referenceNode.getNodeType(),n=this.getNodeType();return e.format(t,s,n)}};class Nh extends O{static get type(){return"ReferenceBaseNode"}constructor(e,t,s=null,n=null){super(),this.property=e,this.uniformType=t,this.object=s,this.count=n,this.properties=e.split("."),this.reference=s,this.node=null,this.group=null,this.updateType=W.OBJECT}setGroup(e){return this.group=e,this}element(e){return E(new My(this,E(e)))}setNodeType(e){const t=V(null,e).getSelf();this.group!==null&&t.setGroup(this.group),this.node=t}getNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let s=e[t[0]];for(let n=1;nE(new Nh(o,e,t));class Fy extends Nh{static get type(){return"RendererReferenceNode"}constructor(e,t,s=null){super(e,t,s),this.renderer=s,this.setGroup(k)}updateReference(e){return this.reference=this.renderer!==null?this.renderer:e.renderer,this.reference}}const Sh=(o,e,t=null)=>E(new Fy(o,e,t));class Uy extends be{static get type(){return"ToneMappingNode"}constructor(e,t=Ah,s=null){super("vec3"),this.toneMapping=e,this.exposureNode=t,this.colorNode=s}customCacheKey(){return di(this.toneMapping)}setup(e){const t=this.colorNode||e.context.color,s=this.toneMapping;if(s===ss)return t;let n=null;const r=e.renderer.library.getToneMappingFunction(s);return r!==null?n=P(r(t.rgb,this.exposureNode),t.a):(console.error("ToneMappingNode: Unsupported Tone Mapping configuration.",s),n=t),n}}const vh=(o,e,t)=>E(new Uy(o,E(e),E(t))),Ah=Sh("toneMappingExposure","float");R("toneMapping",(o,e,t)=>vh(e,t,o));class Py extends va{static get type(){return"BufferAttributeNode"}constructor(e,t=null,s=0,n=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferStride=s,this.bufferOffset=n,this.usage=vg,this.instanced=!1,this.attribute=null,this.global=!0,e&&e.isBufferAttribute===!0&&(this.attribute=e,this.usage=e.usage,this.instanced=e.isInstancedBufferAttribute)}getHash(e){if(this.bufferStride===0&&this.bufferOffset===0){let t=e.globalCache.getData(this.value);return t===void 0&&(t={node:this},e.globalCache.setData(this.value,t)),t.node.uuid}return this.uuid}getNodeType(e){return this.bufferType===null&&(this.bufferType=e.getTypeFromAttribute(this.attribute)),this.bufferType}setup(e){if(this.attribute!==null)return;const t=this.getNodeType(e),s=this.value,n=e.getTypeLength(t),r=this.bufferStride||n,i=this.bufferOffset,a=s.isInterleavedBuffer===!0?s:new Ag(s,r),u=new Rg(a,n,i);a.setUsage(this.usage),this.attribute=u,this.attribute.isInstancedBufferAttribute=this.instanced}generate(e){const t=this.getNodeType(e),s=e.getBufferAttributeFromNode(this,t),n=e.getPropertyName(s);let r=null;return e.shaderStage==="vertex"||e.shaderStage==="compute"?(this.name=n,r=n):r=ke(this).build(e,t),r}getInputType(){return"bufferAttribute"}setUsage(e){return this.usage=e,this.attribute&&this.attribute.isBufferAttribute===!0&&(this.attribute.usage=e),this}setInstanced(e){return this.instanced=e,this}}const nr=(o,e=null,t=0,s=0)=>E(new Py(o,e,t,s)),Rh=(o,e=null,t=0,s=0)=>nr(o,e,t,s).setUsage(zs),Zr=(o,e=null,t=0,s=0)=>nr(o,e,t,s).setInstanced(!0),qo=(o,e=null,t=0,s=0)=>Rh(o,e,t,s).setInstanced(!0);R("toAttribute",o=>nr(o.value));class Dy extends O{static get type(){return"ComputeNode"}constructor(e,t,s=[64]){super("void"),this.isComputeNode=!0,this.computeNode=e,this.count=t,this.workgroupSize=s,this.dispatchCount=0,this.version=1,this.name="",this.updateBeforeType=W.OBJECT,this.onInitFunction=null,this.updateDispatchCount()}dispose(){this.dispatchEvent({type:"dispose"})}label(e){return this.name=e,this}updateDispatchCount(){const{count:e,workgroupSize:t}=this;let s=t[0];for(let n=1;nE(new Dy(E(o),e,t));R("compute",Ch);class Ly extends O{static get type(){return"CacheNode"}constructor(e,t=!0){super(),this.node=e,this.parent=t,this.isCacheNode=!0}getNodeType(e){const t=e.getCache(),s=e.getCacheFromNode(this,this.parent);e.setCache(s);const n=this.node.getNodeType(e);return e.setCache(t),n}build(e,...t){const s=e.getCache(),n=e.getCacheFromNode(this,this.parent);e.setCache(n);const r=this.node.build(e,...t);return e.setCache(s),r}}const Mn=(o,e)=>E(new Ly(E(o),e));R("cache",Mn);class Iy extends O{static get type(){return"BypassNode"}constructor(e,t){super(),this.isBypassNode=!0,this.outputNode=e,this.callNode=t}getNodeType(e){return this.outputNode.getNodeType(e)}generate(e){const t=this.callNode.build(e,"void");return t!==""&&e.addLineFlowCode(t,this),this.outputNode.build(e)}}const Eh=C(Iy);R("bypass",Eh);class wh extends O{static get type(){return"RemapNode"}constructor(e,t,s,n=g(0),r=g(1)){super(),this.node=e,this.inLowNode=t,this.inHighNode=s,this.outLowNode=n,this.outHighNode=r,this.doClamp=!0}setup(){const{node:e,inLowNode:t,inHighNode:s,outLowNode:n,outHighNode:r,doClamp:i}=this;let a=e.sub(t).div(s.sub(t));return i===!0&&(a=a.clamp()),a.mul(r.sub(n)).add(n)}}const Mh=C(wh,null,null,{doClamp:!1}),Bh=C(wh);R("remap",Mh);R("remapClamp",Bh);class Vr extends O{static get type(){return"ExpressionNode"}constructor(e="",t="void"){super(t),this.snippet=e}generate(e,t){const s=this.getNodeType(e),n=this.snippet;if(s==="void")e.addLineFlowCode(n,this);else return e.format(`( ${n} )`,s,t)}}const rs=C(Vr),Fh=o=>(o?Ue(o,rs("discard")):rs("discard")).append(),Vy=()=>rs("return").append();R("discard",Fh);class Gy extends be{static get type(){return"RenderOutputNode"}constructor(e,t,s){super("vec4"),this.colorNode=e,this.toneMapping=t,this.outputColorSpace=s,this.isRenderOutputNode=!0}setup({context:e}){let t=this.colorNode||e.color;const s=(this.toneMapping!==null?this.toneMapping:e.toneMapping)||ss,n=(this.outputColorSpace!==null?this.outputColorSpace:e.outputColorSpace)||Dn;return s!==ss&&(t=t.toneMapping(s)),n!==Dn&&n!==_t.workingColorSpace&&(t=t.workingToColorSpace(n)),t}}const tu=(o,e=null,t=null)=>E(new Gy(E(o),e,t));R("renderOutput",tu);function Oy(o){console.warn("THREE.TSLBase: AddNodeElement has been removed in favor of tree-shaking. Trying add",o)}class Uh extends O{static get type(){return"AttributeNode"}constructor(e,t=null){super(t),this.global=!0,this._attributeName=e}getHash(e){return this.getAttributeName(e)}getNodeType(e){let t=this.nodeType;if(t===null){const s=this.getAttributeName(e);if(e.hasGeometryAttribute(s)){const n=e.geometry.getAttribute(s);t=e.getTypeFromAttribute(n)}else t="float"}return t}setAttributeName(e){return this._attributeName=e,this}getAttributeName(){return this._attributeName}generate(e){const t=this.getAttributeName(e),s=this.getNodeType(e);if(e.hasGeometryAttribute(t)===!0){const r=e.geometry.getAttribute(t),i=e.getTypeFromAttribute(r),a=e.getAttribute(t,i);return e.shaderStage==="vertex"?e.format(a.name,i,s):ke(this).build(e,s)}else return console.warn(`AttributeNode: Vertex attribute "${t}" not found on geometry.`),e.generateConst(s)}serialize(e){super.serialize(e),e.global=this.global,e._attributeName=this._attributeName}deserialize(e){super.deserialize(e),this.global=e.global,this._attributeName=e._attributeName}}const we=(o,e)=>E(new Uh(o,e)),le=(o=0)=>we("uv"+(o>0?o:""),"vec2");class ky extends O{static get type(){return"TextureSizeNode"}constructor(e,t=null){super("uvec2"),this.isTextureSizeNode=!0,this.textureNode=e,this.levelNode=t}generate(e,t){const s=this.textureNode.build(e,"property"),n=this.levelNode===null?"0":this.levelNode.build(e,"int");return e.format(`${e.getMethod("textureDimensions")}( ${s}, ${n} )`,this.getNodeType(e),t)}}const ns=C(ky);class zy extends er{static get type(){return"MaxMipLevelNode"}constructor(e){super(0),this._textureNode=e,this.updateType=W.FRAME}get textureNode(){return this._textureNode}get texture(){return this._textureNode.value}update(){const e=this.texture,t=e.images,s=t&&t.length>0?t[0]&&t[0].image||t[0]:e.image;if(s&&s.width!==void 0){const{width:n,height:r}=s;this.value=Math.log2(Math.max(n,r))}}}const Ph=C(zy);class wt extends er{static get type(){return"TextureNode"}constructor(e,t=null,s=null,n=null){super(e),this.isTextureNode=!0,this.uvNode=t,this.levelNode=s,this.biasNode=n,this.compareNode=null,this.depthNode=null,this.gradNode=null,this.sampler=!0,this.updateMatrix=!1,this.updateType=W.NONE,this.referenceNode=null,this._value=e,this._matrixUniform=null,this.setUpdateMatrix(t===null)}set value(e){this.referenceNode?this.referenceNode.value=e:this._value=e}get value(){return this.referenceNode?this.referenceNode.value:this._value}getUniformHash(){return this.value.uuid}getNodeType(){return this.value.isDepthTexture===!0?"float":this.value.type===Le?"uvec4":this.value.type===ze?"ivec4":"vec4"}getInputType(){return"texture"}getDefaultUV(){return le(this.value.channel)}updateReference(){return this.value}getTransformedUV(e){return this._matrixUniform===null&&(this._matrixUniform=V(this.value.matrix)),this._matrixUniform.mul(T(e,1)).xy}setUpdateMatrix(e){return this.updateMatrix=e,this.updateType=e?W.RENDER:W.NONE,this}setupUV(e,t){const s=this.value;return e.isFlipY()&&(s.image instanceof ImageBitmap&&s.flipY===!0||s.isRenderTargetTexture===!0||s.isFramebufferTexture===!0||s.isDepthTexture===!0)&&(this.sampler?t=t.flipY():t=t.setY(y(ns(this,this.levelNode).y).sub(t.y).sub(1))),t}setup(e){const t=e.getNodeProperties(this);t.referenceNode=this.referenceNode;const s=this.value;if(!s||s.isTexture!==!0)throw new Error("THREE.TSL: `texture( value )` function expects a valid instance of THREE.Texture().");let n=this.uvNode;(n===null||e.context.forceUVContext===!0)&&e.context.getUV&&(n=e.context.getUV(this)),n||(n=this.getDefaultUV()),this.updateMatrix===!0&&(n=this.getTransformedUV(n)),n=this.setupUV(e,n);let r=this.levelNode;r===null&&e.context.getTextureLevel&&(r=e.context.getTextureLevel(this)),t.uvNode=n,t.levelNode=r,t.biasNode=this.biasNode,t.compareNode=this.compareNode,t.gradNode=this.gradNode,t.depthNode=this.depthNode}generateUV(e,t){return t.build(e,this.sampler===!0?"vec2":"ivec2")}generateSnippet(e,t,s,n,r,i,a,u){const c=this.value;let l;return n?l=e.generateTextureLevel(c,t,s,n,i):r?l=e.generateTextureBias(c,t,s,r,i):u?l=e.generateTextureGrad(c,t,s,u,i):a?l=e.generateTextureCompare(c,t,s,a,i):this.sampler===!1?l=e.generateTextureLoad(c,t,s,i):l=e.generateTexture(c,t,s,i),l}generate(e,t){const s=this.value,n=e.getNodeProperties(this),r=super.generate(e,"property");if(t==="sampler")return r+"_sampler";if(e.isReference(t))return r;{const i=e.getDataFromNode(this);let a=i.propertyName;if(a===void 0){const{uvNode:l,levelNode:d,biasNode:h,compareNode:p,depthNode:f,gradNode:m}=n,x=this.generateUV(e,l),N=d?d.build(e,"float"):null,v=h?h.build(e,"float"):null,w=f?f.build(e,"int"):null,B=p?p.build(e,"float"):null,F=m?[m[0].build(e,"vec2"),m[1].build(e,"vec2")]:null,L=e.getVarFromNode(this);a=e.getPropertyName(L);const I=this.generateSnippet(e,r,x,N,v,w,B,F);e.addLineFlowCode(`${a} = ${I}`,this),i.snippet=I,i.propertyName=a}let u=a;const c=this.getNodeType(e);return e.needsToWorkingColorSpace(s)&&(u=eu(rs(u,c),s.colorSpace).setup(e).build(e,c)),e.format(u,c,t)}}setSampler(e){return this.sampler=e,this}getSampler(){return this.sampler}uv(e){return console.warn("THREE.TextureNode: .uv() has been renamed. Use .sample() instead."),this.sample(e)}sample(e){const t=this.clone();return t.uvNode=E(e),t.referenceNode=this.getSelf(),E(t)}blur(e){const t=this.clone();return t.biasNode=E(e).mul(Ph(t)),t.referenceNode=this.getSelf(),E(t)}level(e){const t=this.clone();return t.levelNode=E(e),t.referenceNode=this.getSelf(),E(t)}size(e){return ns(this,e)}bias(e){const t=this.clone();return t.biasNode=E(e),t.referenceNode=this.getSelf(),E(t)}compare(e){const t=this.clone();return t.compareNode=E(e),t.referenceNode=this.getSelf(),E(t)}grad(e,t){const s=this.clone();return s.gradNode=[E(e),E(t)],s.referenceNode=this.getSelf(),E(s)}depth(e){const t=this.clone();return t.depthNode=E(e),t.referenceNode=this.getSelf(),E(t)}serialize(e){super.serialize(e),e.value=this.value.toJSON(e.meta).uuid,e.sampler=this.sampler,e.updateMatrix=this.updateMatrix,e.updateType=this.updateType}deserialize(e){super.deserialize(e),this.value=e.meta.textures[e.value],this.sampler=e.sampler,this.updateMatrix=e.updateMatrix,this.updateType=e.updateType}update(){const e=this.value,t=this._matrixUniform;t!==null&&(t.value=e.matrix),e.matrixAutoUpdate===!0&&e.updateMatrix()}clone(){const e=new this.constructor(this.value,this.uvNode,this.levelNode,this.biasNode);return e.sampler=this.sampler,e}}const K=C(wt),ge=(...o)=>K(...o).setSampler(!1),Wy=o=>(o.isNode===!0?o:K(o)).convert("sampler"),Jt=V("float").label("cameraNear").setGroup(k).onRenderUpdate(({camera:o})=>o.near),es=V("float").label("cameraFar").setGroup(k).onRenderUpdate(({camera:o})=>o.far),He=V("mat4").label("cameraProjectionMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.projectionMatrix),$y=V("mat4").label("cameraProjectionMatrixInverse").setGroup(k).onRenderUpdate(({camera:o})=>o.projectionMatrixInverse),je=V("mat4").label("cameraViewMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.matrixWorldInverse),Hy=V("mat4").label("cameraWorldMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.matrixWorld),qy=V("mat3").label("cameraNormalMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.normalMatrix),su=V(new j).label("cameraPosition").setGroup(k).onRenderUpdate(({camera:o},e)=>e.value.setFromMatrixPosition(o.matrixWorld));class J extends O{static get type(){return"Object3DNode"}constructor(e,t=null){super(),this.scope=e,this.object3d=t,this.updateType=W.OBJECT,this._uniformNode=new er(null)}getNodeType(){const e=this.scope;if(e===J.WORLD_MATRIX)return"mat4";if(e===J.POSITION||e===J.VIEW_POSITION||e===J.DIRECTION||e===J.SCALE)return"vec3"}update(e){const t=this.object3d,s=this._uniformNode,n=this.scope;if(n===J.WORLD_MATRIX)s.value=t.matrixWorld;else if(n===J.POSITION)s.value=s.value||new j,s.value.setFromMatrixPosition(t.matrixWorld);else if(n===J.SCALE)s.value=s.value||new j,s.value.setFromMatrixScale(t.matrixWorld);else if(n===J.DIRECTION)s.value=s.value||new j,t.getWorldDirection(s.value);else if(n===J.VIEW_POSITION){const r=e.camera;s.value=s.value||new j,s.value.setFromMatrixPosition(t.matrixWorld),s.value.applyMatrix4(r.matrixWorldInverse)}}generate(e){const t=this.scope;return t===J.WORLD_MATRIX?this._uniformNode.nodeType="mat4":(t===J.POSITION||t===J.VIEW_POSITION||t===J.DIRECTION||t===J.SCALE)&&(this._uniformNode.nodeType="vec3"),this._uniformNode.build(e)}serialize(e){super.serialize(e),e.scope=this.scope}deserialize(e){super.deserialize(e),this.scope=e.scope}}J.WORLD_MATRIX="worldMatrix";J.POSITION="position";J.SCALE="scale";J.VIEW_POSITION="viewPosition";J.DIRECTION="direction";const Ky=C(J,J.DIRECTION),Xy=C(J,J.WORLD_MATRIX),Dh=C(J,J.POSITION),Yy=C(J,J.SCALE),jy=C(J,J.VIEW_POSITION);class Mt extends J{static get type(){return"ModelNode"}constructor(e){super(e)}update(e){this.object3d=e.object,super.update(e)}}const Qy=U(Mt,Mt.DIRECTION),at=U(Mt,Mt.WORLD_MATRIX),Zy=U(Mt,Mt.POSITION),Jy=U(Mt,Mt.SCALE),ex=U(Mt,Mt.VIEW_POSITION),Lh=V(new Yn).onObjectUpdate(({object:o},e)=>e.value.getNormalMatrix(o.matrixWorld)),Ih=V(new Ie).onObjectUpdate(({object:o},e)=>e.value.copy(o.matrixWorld).invert()),Kt=b(o=>o.renderer.nodes.modelViewMatrix||Vh).once()().toVar("modelViewMatrix"),Vh=je.mul(at),tx=b(o=>(o.context.isHighPrecisionModelViewMatrix=!0,V("mat4").onObjectUpdate(({object:e,camera:t})=>e.modelViewMatrix.multiplyMatrices(t.matrixWorldInverse,e.matrixWorld)))).once()().toVar("highpModelViewMatrix"),sx=b(o=>{const e=o.context.isHighPrecisionModelViewMatrix;return V("mat3").onObjectUpdate(({object:t,camera:s})=>(e!==!0&&t.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix)))}).once()().toVar("highpModelNormalViewMatrix"),Ce=we("position","vec3"),me=Ce.varying("positionLocal"),Jr=Ce.varying("positionPrevious"),Wt=at.mul(me).xyz.varying("v_positionWorld").context({needsPositionReassign:!0}),nu=me.transformDirection(at).varying("v_positionWorldDirection").normalize().toVar("positionWorldDirection").context({needsPositionReassign:!0}),xe=b(o=>o.context.setupPositionView(),"vec3").once()().varying("v_positionView").context({needsPositionReassign:!0}),ae=xe.negate().varying("v_positionViewDirection").normalize().toVar("positionViewDirection");class nx extends O{static get type(){return"FrontFacingNode"}constructor(){super("bool"),this.isFrontFacingNode=!0}generate(e){const{renderer:t,material:s}=e;return t.coordinateSystem===Pn&&s.side===Ct?"false":e.getFrontFacing()}}const Gh=U(nx),rr=g(Gh).mul(2).sub(1),Ni=we("normal","vec3"),Xe=b(o=>o.geometry.hasAttribute("normal")===!1?(console.warn('TSL.NormalNode: Vertex attribute "normal" not found on geometry.'),T(0,1,0)):Ni,"vec3").once()().toVar("normalLocal"),Oh=xe.dFdx().cross(xe.dFdy()).normalize().toVar("normalFlat"),lt=b(o=>{let e;return o.material.flatShading===!0?e=Oh:e=ke(ru(Xe),"v_normalView").normalize(),e},"vec3").once()().toVar("normalView"),Si=ke(lt.transformDirection(je),"v_normalWorld").normalize().toVar("normalWorld"),fe=b(o=>o.context.setupNormal(),"vec3").once()().mul(rr).toVar("transformedNormalView"),vi=fe.transformDirection(je).toVar("transformedNormalWorld"),Hs=b(o=>o.context.setupClearcoatNormal(),"vec3").once()().mul(rr).toVar("transformedClearcoatNormalView"),kh=b(([o,e=at])=>{const t=Oe(e),s=o.div(T(t[0].dot(t[0]),t[1].dot(t[1]),t[2].dot(t[2])));return t.mul(s).xyz}),ru=b(([o],e)=>{const t=e.renderer.nodes.modelNormalViewMatrix;if(t!==null)return t.transformDirection(o);const s=Lh.mul(o);return je.transformDirection(s)}),zh=V(0).onReference(({material:o})=>o).onRenderUpdate(({material:o})=>o.refractionRatio),Wh=ae.negate().reflect(fe),$h=ae.negate().refract(fe,zh),Hh=Wh.transformDirection(je).toVar("reflectVector"),qh=$h.transformDirection(je).toVar("reflectVector");class rx extends wt{static get type(){return"CubeTextureNode"}constructor(e,t=null,s=null,n=null){super(e,t,s,n),this.isCubeTextureNode=!0}getInputType(){return"cubeTexture"}getDefaultUV(){const e=this.value;return e.mapping===Zs?Hh:e.mapping===Js?qh:(console.error('THREE.CubeTextureNode: Mapping "%s" not supported.',e.mapping),T(0,0,0))}setUpdateMatrix(){}setupUV(e,t){const s=this.value;return e.renderer.coordinateSystem===ln||!s.isRenderTargetTexture?T(t.x.negate(),t.yz):t}generateUV(e,t){return t.build(e,"vec3")}}const on=C(rx);class iu extends er{static get type(){return"BufferNode"}constructor(e,t,s=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferCount=s}getElementType(e){return this.getNodeType(e)}getInputType(){return"buffer"}}const ir=(o,e,t)=>E(new iu(o,e,t));class ix extends Rs{static get type(){return"UniformArrayElementNode"}constructor(e,t){super(e,t),this.isArrayBufferElementNode=!0}generate(e){const t=super.generate(e),s=this.getNodeType(),n=this.node.getPaddedType();return e.format(t,n,s)}}class Kh extends iu{static get type(){return"UniformArrayNode"}constructor(e,t=null){super(null),this.array=e,this.elementType=t===null?Ot(e[0]):t,this.paddedType=this.getPaddedType(),this.updateType=W.RENDER,this.isArrayBufferNode=!0}getNodeType(){return this.paddedType}getElementType(){return this.elementType}getPaddedType(){const e=this.elementType;let t="vec4";return e==="mat2"?t="mat2":/mat/.test(e)===!0?t="mat4":e.charAt(0)==="i"?t="ivec4":e.charAt(0)==="u"&&(t="uvec4"),t}update(){const{array:e,value:t}=this,s=this.elementType;if(s==="float"||s==="int"||s==="uint")for(let n=0;nE(new Kh(o,e)),ox=(o,e)=>(console.warn("TSL.UniformArrayNode: uniforms() has been renamed to uniformArray()."),E(new Kh(o,e)));class ax extends Rs{static get type(){return"ReferenceElementNode"}constructor(e,t){super(e,t),this.referenceNode=e,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(e){const t=super.generate(e),s=this.referenceNode.getNodeType(),n=this.getNodeType();return e.format(t,s,n)}}class Ai extends O{static get type(){return"ReferenceNode"}constructor(e,t,s=null,n=null){super(),this.property=e,this.uniformType=t,this.object=s,this.count=n,this.properties=e.split("."),this.reference=s,this.node=null,this.group=null,this.name=null,this.updateType=W.OBJECT}element(e){return E(new ax(this,E(e)))}setGroup(e){return this.group=e,this}label(e){return this.name=e,this}setNodeType(e){let t=null;this.count!==null?t=ir(null,e,this.count):Array.isArray(this.getValueFromReference())?t=Gt(null,e):e==="texture"?t=K(null):e==="cubeTexture"?t=on(null):t=V(null,e),this.group!==null&&t.setGroup(this.group),this.name!==null&&t.label(this.name),this.node=t.getSelf()}getNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let s=e[t[0]];for(let n=1;nE(new Ai(o,e,t)),Ko=(o,e,t,s)=>E(new Ai(o,e,s,t));class ux extends Ai{static get type(){return"MaterialReferenceNode"}constructor(e,t,s=null){super(e,t,s),this.material=s,this.isMaterialReferenceNode=!0}updateReference(e){return this.reference=this.material!==null?this.material:e.material,this.reference}}const dt=(o,e,t=null)=>E(new ux(o,e,t)),Ri=b(o=>(o.geometry.hasAttribute("tangent")===!1&&o.geometry.computeTangents(),we("tangent","vec4")))(),or=Ri.xyz.toVar("tangentLocal"),ar=Kt.mul(P(or,0)).xyz.varying("v_tangentView").normalize().toVar("tangentView"),Xh=ar.transformDirection(je).varying("v_tangentWorld").normalize().toVar("tangentWorld"),ou=ar.toVar("transformedTangentView"),cx=ou.transformDirection(je).normalize().toVar("transformedTangentWorld"),ur=o=>o.mul(Ri.w).xyz,lx=ke(ur(Ni.cross(Ri)),"v_bitangentGeometry").normalize().toVar("bitangentGeometry"),dx=ke(ur(Xe.cross(or)),"v_bitangentLocal").normalize().toVar("bitangentLocal"),Yh=ke(ur(lt.cross(ar)),"v_bitangentView").normalize().toVar("bitangentView"),hx=ke(ur(Si.cross(Xh)),"v_bitangentWorld").normalize().toVar("bitangentWorld"),jh=ur(fe.cross(ou)).normalize().toVar("transformedBitangentView"),px=jh.transformDirection(je).normalize().toVar("transformedBitangentWorld"),gs=Oe(ar,Yh,lt),Qh=ae.mul(gs),fx=(o,e)=>o.sub(Qh.mul(e)),Zh=(()=>{let o=_s.cross(ae);return o=o.cross(_s).normalize(),o=Q(o,fe,Zt.mul(Nt.oneMinus()).oneMinus().pow2().pow2()).normalize(),o})(),gx=b(o=>{const{eye_pos:e,surf_norm:t,mapN:s,uv:n}=o,r=e.dFdx(),i=e.dFdy(),a=n.dFdx(),u=n.dFdy(),c=t,l=i.cross(c),d=c.cross(r),h=l.mul(a.x).add(d.mul(u.x)),p=l.mul(a.y).add(d.mul(u.y)),f=h.dot(h).max(p.dot(p)),m=rr.mul(f.inverseSqrt());return _e(h.mul(s.x,m),p.mul(s.y,m),c.mul(s.z)).normalize()});class mx extends be{static get type(){return"NormalMapNode"}constructor(e,t=null){super("vec3"),this.node=e,this.scaleNode=t,this.normalMapType=Yu}setup(e){const{normalMapType:t,scaleNode:s}=this;let n=this.node.mul(2).sub(1);s!==null&&(n=T(n.xy.mul(s),n.z));let r=null;return t===Og?r=ru(n):t===Yu&&(e.hasGeometryAttribute("tangent")===!0?r=gs.mul(n).normalize():r=gx({eye_pos:xe,surf_norm:lt,mapN:n,uv:le()})),r}}const Xo=C(mx),yx=b(({textureNode:o,bumpScale:e})=>{const t=n=>o.cache().context({getUV:r=>n(r.uvNode||le()),forceUVContext:!0}),s=g(t(n=>n));return M(g(t(n=>n.add(n.dFdx()))).sub(s),g(t(n=>n.add(n.dFdy()))).sub(s)).mul(e)}),xx=b(o=>{const{surf_pos:e,surf_norm:t,dHdxy:s}=o,n=e.dFdx().normalize(),r=e.dFdy().normalize(),i=t,a=r.cross(i),u=i.cross(n),c=n.dot(a).mul(rr),l=c.sign().mul(s.x.mul(a).add(s.y.mul(u)));return c.abs().mul(t).sub(l).normalize()});class Tx extends be{static get type(){return"BumpMapNode"}constructor(e,t=null){super("vec3"),this.textureNode=e,this.scaleNode=t}setup(){const e=this.scaleNode!==null?this.scaleNode:1,t=yx({textureNode:this.textureNode,bumpScale:e});return xx({surf_pos:xe,surf_norm:lt,dHdxy:t})}}const Jh=C(Tx),cc=new Map;class A extends O{static get type(){return"MaterialNode"}constructor(e){super(),this.scope=e}getCache(e,t){let s=cc.get(e);return s===void 0&&(s=dt(e,t),cc.set(e,s)),s}getFloat(e){return this.getCache(e,"float")}getColor(e){return this.getCache(e,"color")}getTexture(e){return this.getCache(e==="map"?"map":e+"Map","texture")}setup(e){const t=e.context.material,s=this.scope;let n=null;if(s===A.COLOR){const r=t.color!==void 0?this.getColor(s):T();t.map&&t.map.isTexture===!0?n=r.mul(this.getTexture("map")):n=r}else if(s===A.OPACITY){const r=this.getFloat(s);t.alphaMap&&t.alphaMap.isTexture===!0?n=r.mul(this.getTexture("alpha")):n=r}else if(s===A.SPECULAR_STRENGTH)t.specularMap&&t.specularMap.isTexture===!0?n=this.getTexture("specular").r:n=g(1);else if(s===A.SPECULAR_INTENSITY){const r=this.getFloat(s);t.specularIntensityMap&&t.specularIntensityMap.isTexture===!0?n=r.mul(this.getTexture(s).a):n=r}else if(s===A.SPECULAR_COLOR){const r=this.getColor(s);t.specularColorMap&&t.specularColorMap.isTexture===!0?n=r.mul(this.getTexture(s).rgb):n=r}else if(s===A.ROUGHNESS){const r=this.getFloat(s);t.roughnessMap&&t.roughnessMap.isTexture===!0?n=r.mul(this.getTexture(s).g):n=r}else if(s===A.METALNESS){const r=this.getFloat(s);t.metalnessMap&&t.metalnessMap.isTexture===!0?n=r.mul(this.getTexture(s).b):n=r}else if(s===A.EMISSIVE){const r=this.getFloat("emissiveIntensity"),i=this.getColor(s).mul(r);t.emissiveMap&&t.emissiveMap.isTexture===!0?n=i.mul(this.getTexture(s)):n=i}else if(s===A.NORMAL)t.normalMap?(n=Xo(this.getTexture("normal"),this.getCache("normalScale","vec2")),n.normalMapType=t.normalMapType):t.bumpMap?n=Jh(this.getTexture("bump").r,this.getFloat("bumpScale")):n=lt;else if(s===A.CLEARCOAT){const r=this.getFloat(s);t.clearcoatMap&&t.clearcoatMap.isTexture===!0?n=r.mul(this.getTexture(s).r):n=r}else if(s===A.CLEARCOAT_ROUGHNESS){const r=this.getFloat(s);t.clearcoatRoughnessMap&&t.clearcoatRoughnessMap.isTexture===!0?n=r.mul(this.getTexture(s).r):n=r}else if(s===A.CLEARCOAT_NORMAL)t.clearcoatNormalMap?n=Xo(this.getTexture(s),this.getCache(s+"Scale","vec2")):n=lt;else if(s===A.SHEEN){const r=this.getColor("sheenColor").mul(this.getFloat("sheen"));t.sheenColorMap&&t.sheenColorMap.isTexture===!0?n=r.mul(this.getTexture("sheenColor").rgb):n=r}else if(s===A.SHEEN_ROUGHNESS){const r=this.getFloat(s);t.sheenRoughnessMap&&t.sheenRoughnessMap.isTexture===!0?n=r.mul(this.getTexture(s).a):n=r,n=n.clamp(.07,1)}else if(s===A.ANISOTROPY)if(t.anisotropyMap&&t.anisotropyMap.isTexture===!0){const r=this.getTexture(s);n=fi(Os.x,Os.y,Os.y.negate(),Os.x).mul(r.rg.mul(2).sub(M(1)).normalize().mul(r.b))}else n=Os;else if(s===A.IRIDESCENCE_THICKNESS){const r=ne("1","float",t.iridescenceThicknessRange);if(t.iridescenceThicknessMap){const i=ne("0","float",t.iridescenceThicknessRange);n=r.sub(i).mul(this.getTexture(s).g).add(i)}else n=r}else if(s===A.TRANSMISSION){const r=this.getFloat(s);t.transmissionMap?n=r.mul(this.getTexture(s).r):n=r}else if(s===A.THICKNESS){const r=this.getFloat(s);t.thicknessMap?n=r.mul(this.getTexture(s).g):n=r}else if(s===A.IOR)n=this.getFloat(s);else if(s===A.LIGHT_MAP)n=this.getTexture(s).rgb.mul(this.getFloat("lightMapIntensity"));else if(s===A.AO)n=this.getTexture(s).r.sub(1).mul(this.getFloat("aoMapIntensity")).add(1);else{const r=this.getNodeType(e);n=this.getCache(s,r)}return n}}A.ALPHA_TEST="alphaTest";A.COLOR="color";A.OPACITY="opacity";A.SHININESS="shininess";A.SPECULAR="specular";A.SPECULAR_STRENGTH="specularStrength";A.SPECULAR_INTENSITY="specularIntensity";A.SPECULAR_COLOR="specularColor";A.REFLECTIVITY="reflectivity";A.ROUGHNESS="roughness";A.METALNESS="metalness";A.NORMAL="normal";A.CLEARCOAT="clearcoat";A.CLEARCOAT_ROUGHNESS="clearcoatRoughness";A.CLEARCOAT_NORMAL="clearcoatNormal";A.EMISSIVE="emissive";A.ROTATION="rotation";A.SHEEN="sheen";A.SHEEN_ROUGHNESS="sheenRoughness";A.ANISOTROPY="anisotropy";A.IRIDESCENCE="iridescence";A.IRIDESCENCE_IOR="iridescenceIOR";A.IRIDESCENCE_THICKNESS="iridescenceThickness";A.IOR="ior";A.TRANSMISSION="transmission";A.THICKNESS="thickness";A.ATTENUATION_DISTANCE="attenuationDistance";A.ATTENUATION_COLOR="attenuationColor";A.LINE_SCALE="scale";A.LINE_DASH_SIZE="dashSize";A.LINE_GAP_SIZE="gapSize";A.LINE_WIDTH="linewidth";A.LINE_DASH_OFFSET="dashOffset";A.POINT_WIDTH="pointWidth";A.DISPERSION="dispersion";A.LIGHT_MAP="light";A.AO="ao";const ep=U(A,A.ALPHA_TEST),an=U(A,A.COLOR),tp=U(A,A.SHININESS),sp=U(A,A.EMISSIVE),cr=U(A,A.OPACITY),np=U(A,A.SPECULAR),Yo=U(A,A.SPECULAR_INTENSITY),rp=U(A,A.SPECULAR_COLOR),Bn=U(A,A.SPECULAR_STRENGTH),Gr=U(A,A.REFLECTIVITY),ip=U(A,A.ROUGHNESS),op=U(A,A.METALNESS),ap=U(A,A.NORMAL).context({getUV:null}),up=U(A,A.CLEARCOAT),cp=U(A,A.CLEARCOAT_ROUGHNESS),lp=U(A,A.CLEARCOAT_NORMAL).context({getUV:null}),dp=U(A,A.ROTATION),hp=U(A,A.SHEEN),pp=U(A,A.SHEEN_ROUGHNESS),fp=U(A,A.ANISOTROPY),gp=U(A,A.IRIDESCENCE),mp=U(A,A.IRIDESCENCE_IOR),yp=U(A,A.IRIDESCENCE_THICKNESS),xp=U(A,A.TRANSMISSION),Tp=U(A,A.THICKNESS),_p=U(A,A.IOR),bp=U(A,A.ATTENUATION_DISTANCE),Np=U(A,A.ATTENUATION_COLOR),au=U(A,A.LINE_SCALE),uu=U(A,A.LINE_DASH_SIZE),cu=U(A,A.LINE_GAP_SIZE),Or=U(A,A.LINE_WIDTH),lu=U(A,A.LINE_DASH_OFFSET),Sp=U(A,A.POINT_WIDTH),vp=U(A,A.DISPERSION),du=U(A,A.LIGHT_MAP),Ap=U(A,A.AO),Os=V(new Ye).onReference(function(o){return o.material}).onRenderUpdate(function({material:o}){this.value.set(o.anisotropy*Math.cos(o.anisotropyRotation),o.anisotropy*Math.sin(o.anisotropyRotation))}),hu=b(o=>o.context.setupModelViewProjection(),"vec4").once()().varying("v_modelViewProjection");class de extends O{static get type(){return"IndexNode"}constructor(e){super("uint"),this.scope=e,this.isIndexNode=!0}generate(e){const t=this.getNodeType(e),s=this.scope;let n;if(s===de.VERTEX)n=e.getVertexIndex();else if(s===de.INSTANCE)n=e.getInstanceIndex();else if(s===de.DRAW)n=e.getDrawIndex();else if(s===de.INVOCATION_LOCAL)n=e.getInvocationLocalIndex();else if(s===de.INVOCATION_SUBGROUP)n=e.getInvocationSubgroupIndex();else if(s===de.SUBGROUP)n=e.getSubgroupIndex();else throw new Error("THREE.IndexNode: Unknown scope: "+s);let r;return e.shaderStage==="vertex"||e.shaderStage==="compute"?r=n:r=ke(this).build(e,t),r}}de.VERTEX="vertex";de.INSTANCE="instance";de.SUBGROUP="subgroup";de.INVOCATION_LOCAL="invocationLocal";de.INVOCATION_SUBGROUP="invocationSubgroup";de.DRAW="draw";const Rp=U(de,de.VERTEX),lr=U(de,de.INSTANCE),_x=U(de,de.SUBGROUP),bx=U(de,de.INVOCATION_SUBGROUP),Nx=U(de,de.INVOCATION_LOCAL),Cp=U(de,de.DRAW);class Ep extends O{static get type(){return"InstanceNode"}constructor(e,t,s){super("void"),this.count=e,this.instanceMatrix=t,this.instanceColor=s,this.instanceMatrixNode=null,this.instanceColorNode=null,this.updateType=W.FRAME,this.buffer=null,this.bufferColor=null}setup(e){const{count:t,instanceMatrix:s,instanceColor:n}=this;let{instanceMatrixNode:r,instanceColorNode:i}=this;if(r===null){if(t<=1e3)r=ir(s.array,"mat4",Math.max(t,1)).element(lr);else{const u=new Cg(s.array,16,1);this.buffer=u;const c=s.usage===zs?qo:Zr,l=[c(u,"vec4",16,0),c(u,"vec4",16,4),c(u,"vec4",16,8),c(u,"vec4",16,12)];r=Ts(...l)}this.instanceMatrixNode=r}if(n&&i===null){const u=new oa(n.array,3),c=n.usage===zs?qo:Zr;this.bufferColor=u,i=T(c(u,"vec3",3,0)),this.instanceColorNode=i}const a=r.mul(me).xyz;if(me.assign(a),e.hasGeometryAttribute("normal")){const u=kh(Xe,r);Xe.assign(u)}this.instanceColorNode!==null&&et("vec3","vInstanceColor").assign(this.instanceColorNode)}update(){this.instanceMatrix.usage!==zs&&this.buffer!==null&&this.instanceMatrix.version!==this.buffer.version&&(this.buffer.version=this.instanceMatrix.version),this.instanceColor&&this.instanceColor.usage!==zs&&this.bufferColor!==null&&this.instanceColor.version!==this.bufferColor.version&&(this.bufferColor.version=this.instanceColor.version)}}const Sx=C(Ep);class vx extends Ep{static get type(){return"InstancedMeshNode"}constructor(e){const{count:t,instanceMatrix:s,instanceColor:n}=e;super(t,s,n),this.instancedMesh=e}}const wp=C(vx);class Ax extends O{static get type(){return"BatchNode"}constructor(e){super("void"),this.batchMesh=e,this.batchingIdNode=null}setup(e){this.batchingIdNode===null&&(e.getDrawIndex()===null?this.batchingIdNode=lr:this.batchingIdNode=Cp);const s=b(([f])=>{const m=ns(ge(this.batchMesh._indirectTexture),0),x=y(f).modInt(y(m)),N=y(f).div(y(m));return ge(this.batchMesh._indirectTexture,Ae(x,N)).x}).setLayout({name:"getIndirectIndex",type:"uint",inputs:[{name:"id",type:"int"}]})(y(this.batchingIdNode)),n=this.batchMesh._matricesTexture,r=ns(ge(n),0),i=g(s).mul(4).toInt().toVar(),a=i.modInt(r),u=i.div(y(r)),c=Ts(ge(n,Ae(a,u)),ge(n,Ae(a.add(1),u)),ge(n,Ae(a.add(2),u)),ge(n,Ae(a.add(3),u))),l=this.batchMesh._colorsTexture;if(l!==null){const m=b(([x])=>{const N=ns(ge(l),0).x,v=x,w=v.modInt(N),B=v.div(N);return ge(l,Ae(w,B)).rgb}).setLayout({name:"getBatchingColor",type:"vec3",inputs:[{name:"id",type:"int"}]})(s);et("vec3","vBatchColor").assign(m)}const d=Oe(c);me.assign(c.mul(me));const h=Xe.div(T(d[0].dot(d[0]),d[1].dot(d[1]),d[2].dot(d[2]))),p=d.mul(h).xyz;Xe.assign(p),e.hasGeometryAttribute("tangent")&&or.mulAssign(d)}}const Mp=C(Ax),lc=new WeakMap;class Bp extends O{static get type(){return"SkinningNode"}constructor(e,t=!1){super("void"),this.skinnedMesh=e,this.useReference=t,this.updateType=W.OBJECT,this.skinIndexNode=we("skinIndex","uvec4"),this.skinWeightNode=we("skinWeight","vec4");let s,n,r;t?(s=ne("bindMatrix","mat4"),n=ne("bindMatrixInverse","mat4"),r=Ko("skeleton.boneMatrices","mat4",e.skeleton.bones.length)):(s=V(e.bindMatrix,"mat4"),n=V(e.bindMatrixInverse,"mat4"),r=ir(e.skeleton.boneMatrices,"mat4",e.skeleton.bones.length)),this.bindMatrixNode=s,this.bindMatrixInverseNode=n,this.boneMatricesNode=r,this.previousBoneMatricesNode=null}getSkinnedPosition(e=this.boneMatricesNode,t=me){const{skinIndexNode:s,skinWeightNode:n,bindMatrixNode:r,bindMatrixInverseNode:i}=this,a=e.element(s.x),u=e.element(s.y),c=e.element(s.z),l=e.element(s.w),d=r.mul(t),h=_e(a.mul(n.x).mul(d),u.mul(n.y).mul(d),c.mul(n.z).mul(d),l.mul(n.w).mul(d));return i.mul(h).xyz}getSkinnedNormal(e=this.boneMatricesNode,t=Xe){const{skinIndexNode:s,skinWeightNode:n,bindMatrixNode:r,bindMatrixInverseNode:i}=this,a=e.element(s.x),u=e.element(s.y),c=e.element(s.z),l=e.element(s.w);let d=_e(n.x.mul(a),n.y.mul(u),n.z.mul(c),n.w.mul(l));return d=i.mul(d).mul(r),d.transformDirection(t).xyz}getPreviousSkinnedPosition(e){const t=e.object;return this.previousBoneMatricesNode===null&&(t.skeleton.previousBoneMatrices=new Float32Array(t.skeleton.boneMatrices),this.previousBoneMatricesNode=Ko("skeleton.previousBoneMatrices","mat4",t.skeleton.bones.length)),this.getSkinnedPosition(this.previousBoneMatricesNode,Jr)}needsPreviousBoneMatrices(e){const t=e.renderer.getMRT();return t&&t.has("velocity")||ba(e.object).useVelocity===!0}setup(e){this.needsPreviousBoneMatrices(e)&&Jr.assign(this.getPreviousSkinnedPosition(e));const t=this.getSkinnedPosition();if(me.assign(t),e.hasGeometryAttribute("normal")){const s=this.getSkinnedNormal();Xe.assign(s),e.hasGeometryAttribute("tangent")&&or.assign(s)}}generate(e,t){if(t!=="void")return me.build(e,t)}update(e){const s=(this.useReference?e.object:this.skinnedMesh).skeleton;lc.get(s)!==e.frameId&&(lc.set(s,e.frameId),this.previousBoneMatricesNode!==null&&s.previousBoneMatrices.set(s.boneMatrices),s.update())}}const Rx=o=>E(new Bp(o)),Fp=o=>E(new Bp(o,!0));class Cx extends O{static get type(){return"LoopNode"}constructor(e=[]){super(),this.params=e}getVarName(e){return String.fromCharCode(105+e)}getProperties(e){const t=e.getNodeProperties(this);if(t.stackNode!==void 0)return t;const s={};for(let r=0,i=this.params.length-1;rNumber(d)?f=">=":f="<"));const x={start:l,end:d},N=x.start,v=x.end;let w="",B="",F="";m||(p==="int"||p==="uint"?f.includes("<")?m="++":m="--":f.includes("<")?m="+= 1.":m="-= 1."),w+=e.getVar(p,h)+" = "+N,B+=h+" "+f+" "+v,F+=h+" "+m;const L=`for ( ${w}; ${B}; ${F} )`;e.addFlowCode((a===0?` +`:"")+e.tab+L+` { + +`).addFlowTab()}const r=n.build(e,"void"),i=t.returnsNode?t.returnsNode.build(e):"";e.removeFlowTab().addFlowCode(` +`+e.tab+r);for(let a=0,u=this.params.length-1;aE(new Cx(xs(o,"int"))).append(),Ex=()=>rs("continue").append(),pu=()=>rs("break").append(),wx=(...o)=>(console.warn("TSL.LoopNode: loop() has been renamed to Loop()."),te(...o)),Gi=new WeakMap,Je=new Me,dc=b(({bufferMap:o,influence:e,stride:t,width:s,depth:n,offset:r})=>{const i=y(Rp).mul(t).add(r),a=i.div(s),u=i.sub(a.mul(s));return ge(o,Ae(u,a)).depth(n).mul(e)});function Mx(o){const e=o.morphAttributes.position!==void 0,t=o.morphAttributes.normal!==void 0,s=o.morphAttributes.color!==void 0,n=o.morphAttributes.position||o.morphAttributes.normal||o.morphAttributes.color,r=n!==void 0?n.length:0;let i=Gi.get(o);if(i===void 0||i.count!==r){let N=function(){m.dispose(),Gi.delete(o),o.removeEventListener("dispose",N)};i!==void 0&&i.texture.dispose();const a=o.morphAttributes.position||[],u=o.morphAttributes.normal||[],c=o.morphAttributes.color||[];let l=0;e===!0&&(l=1),t===!0&&(l=2),s===!0&&(l=3);let d=o.attributes.position.count*l,h=1;const p=4096;d>p&&(h=Math.ceil(d/p),d=p);const f=new Float32Array(d*h*4*r),m=new Yg(f,d,h,r);m.type=ot,m.needsUpdate=!0;const x=l*4;for(let v=0;v{const h=g(0).toVar();this.mesh.count>1&&this.mesh.morphTexture!==null&&this.mesh.morphTexture!==void 0?h.assign(ge(this.mesh.morphTexture,Ae(y(d).add(1),y(lr))).r):h.assign(ne("morphTargetInfluences","float").element(d).toVar()),s===!0&&me.addAssign(dc({bufferMap:a,influence:h,stride:u,width:l,depth:d,offset:y(0)})),n===!0&&Xe.addAssign(dc({bufferMap:a,influence:h,stride:u,width:l,depth:d,offset:y(1)}))})}update(){const e=this.morphBaseInfluence;this.mesh.geometry.morphTargetsRelative?e.value=1:e.value=1-this.mesh.morphTargetInfluences.reduce((t,s)=>t+s,0)}}const Up=C(Bx);class hn extends O{static get type(){return"LightingNode"}constructor(){super("vec3"),this.isLightingNode=!0}}class Fx extends hn{static get type(){return"AONode"}constructor(e=null){super(),this.aoNode=e}setup(e){e.context.ambientOcclusion.mulAssign(this.aoNode)}}class Ux extends hh{static get type(){return"LightingContextNode"}constructor(e,t=null,s=null,n=null){super(e),this.lightingModel=t,this.backdropNode=s,this.backdropAlphaNode=n,this._value=null}getContext(){const{backdropNode:e,backdropAlphaNode:t}=this,s=T().toVar("directDiffuse"),n=T().toVar("directSpecular"),r=T().toVar("indirectDiffuse"),i=T().toVar("indirectSpecular"),a={directDiffuse:s,directSpecular:n,indirectDiffuse:r,indirectSpecular:i};return{radiance:T().toVar("radiance"),irradiance:T().toVar("irradiance"),iblIrradiance:T().toVar("iblIrradiance"),ambientOcclusion:g(1).toVar("ambientOcclusion"),reflectedLight:a,backdrop:e,backdropAlpha:t}}setup(e){return this.value=this._value||(this._value=this.getContext()),this.value.lightingModel=this.lightingModel||e.context.lightingModel,super.setup(e)}}const Pp=C(Ux);class Px extends hn{static get type(){return"IrradianceNode"}constructor(e){super(),this.node=e}setup(e){e.context.irradiance.addAssign(this.node)}}let fn,gn;class Se extends O{static get type(){return"ScreenNode"}constructor(e){super(),this.scope=e,this.isViewportNode=!0}getNodeType(){return this.scope===Se.VIEWPORT?"vec4":"vec2"}getUpdateType(){let e=W.NONE;return(this.scope===Se.SIZE||this.scope===Se.VIEWPORT)&&(e=W.RENDER),this.updateType=e,e}update({renderer:e}){const t=e.getRenderTarget();this.scope===Se.VIEWPORT?t!==null?gn.copy(t.viewport):(e.getViewport(gn),gn.multiplyScalar(e.getPixelRatio())):t!==null?(fn.width=t.width,fn.height=t.height):e.getDrawingBufferSize(fn)}setup(){const e=this.scope;let t=null;return e===Se.SIZE?t=V(fn||(fn=new Ye)):e===Se.VIEWPORT?t=V(gn||(gn=new Me)):t=M(dr.div(Kn)),t}generate(e){if(this.scope===Se.COORDINATE){let t=e.getFragCoord();if(e.isFlipY()){const s=e.getNodeProperties(Kn).outputNode.build(e);t=`${e.getType("vec2")}( ${t}.x, ${s}.y - ${t}.y )`}return t}return super.generate(e)}}Se.COORDINATE="coordinate";Se.VIEWPORT="viewport";Se.SIZE="size";Se.UV="uv";const Bt=U(Se,Se.UV),Kn=U(Se,Se.SIZE),dr=U(Se,Se.COORDINATE),$t=U(Se,Se.VIEWPORT),Dp=$t.zw,Lp=dr.sub($t.xy),Dx=Lp.div(Dp),Lx=b(()=>(console.warn('TSL.ViewportNode: "viewportResolution" is deprecated. Use "screenSize" instead.'),Kn),"vec2").once()(),Ix=b(()=>(console.warn('TSL.ViewportNode: "viewportTopLeft" is deprecated. Use "screenUV" instead.'),Bt),"vec2").once()(),Vx=b(()=>(console.warn('TSL.ViewportNode: "viewportBottomLeft" is deprecated. Use "screenUV.flipY()" instead.'),Bt.flipY()),"vec2").once()(),mn=new Ye;class Ci extends wt{static get type(){return"ViewportTextureNode"}constructor(e=Bt,t=null,s=null){s===null&&(s=new bl,s.minFilter=ms),super(s,e,t),this.generateMipmaps=!1,this.isOutputTextureNode=!0,this.updateBeforeType=W.FRAME}updateBefore(e){const t=e.renderer;t.getDrawingBufferSize(mn);const s=this.value;(s.image.width!==mn.width||s.image.height!==mn.height)&&(s.image.width=mn.width,s.image.height=mn.height,s.needsUpdate=!0);const n=s.generateMipmaps;s.generateMipmaps=this.generateMipmaps,t.copyFramebufferToTexture(s),s.generateMipmaps=n}clone(){const e=new this.constructor(this.uvNode,this.levelNode,this.value);return e.generateMipmaps=this.generateMipmaps,e}}const Gx=C(Ci),fu=C(Ci,null,null,{generateMipmaps:!0});let Oi=null;class Ox extends Ci{static get type(){return"ViewportDepthTextureNode"}constructor(e=Bt,t=null){Oi===null&&(Oi=new vs),super(e,t,Oi)}}const gu=C(Ox);class qe extends O{static get type(){return"ViewportDepthNode"}constructor(e,t=null){super("float"),this.scope=e,this.valueNode=t,this.isViewportDepthNode=!0}generate(e){const{scope:t}=this;return t===qe.DEPTH_BASE?e.getFragDepth():super.generate(e)}setup({camera:e}){const{scope:t}=this,s=this.valueNode;let n=null;if(t===qe.DEPTH_BASE)s!==null&&(n=Vp().assign(s));else if(t===qe.DEPTH)e.isPerspectiveCamera?n=Ip(xe.z,Jt,es):n=Qs(xe.z,Jt,es);else if(t===qe.LINEAR_DEPTH)if(s!==null)if(e.isPerspectiveCamera){const r=mu(s,Jt,es);n=Qs(r,Jt,es)}else n=s;else n=Qs(xe.z,Jt,es);return n}}qe.DEPTH_BASE="depthBase";qe.DEPTH="depth";qe.LINEAR_DEPTH="linearDepth";const Qs=(o,e,t)=>o.add(e).div(e.sub(t)),kx=(o,e,t)=>e.sub(t).mul(o).sub(e),Ip=(o,e,t)=>e.add(o).mul(t).div(t.sub(e).mul(o)),mu=(o,e,t)=>e.mul(t).div(t.sub(e).mul(o).sub(t)),yu=(o,e,t)=>{e=e.max(1e-6).toVar();const s=vt(o.negate().div(e)),n=vt(t.div(e));return s.div(n)},zx=(o,e,t)=>{const s=o.mul(yi(t.div(e)));return g(Math.E).pow(s).mul(e).negate()},Vp=C(qe,qe.DEPTH_BASE),xu=U(qe,qe.DEPTH),ei=C(qe,qe.LINEAR_DEPTH),Wx=ei(gu());xu.assign=o=>Vp(o);class $x extends O{constructor(e){super("float"),this.name=e,this.isBuiltinNode=!0}generate(){return this.name}}const Hx=C($x);class ut extends O{static get type(){return"ClippingNode"}constructor(e=ut.DEFAULT){super(),this.scope=e}setup(e){super.setup(e);const t=e.clippingContext,{intersectionPlanes:s,unionPlanes:n}=t;return this.hardwareClipping=e.material.hardwareClipping,this.scope===ut.ALPHA_TO_COVERAGE?this.setupAlphaToCoverage(s,n):this.scope===ut.HARDWARE?this.setupHardwareClipping(n,e):this.setupDefault(s,n)}setupAlphaToCoverage(e,t){return b(()=>{const s=g().toVar("distanceToPlane"),n=g().toVar("distanceToGradient"),r=g(1).toVar("clipOpacity"),i=t.length;if(this.hardwareClipping===!1&&i>0){const u=Gt(t);te(i,({i:c})=>{const l=u.element(c);s.assign(xe.dot(l.xyz).negate().add(l.w)),n.assign(s.fwidth().div(2)),r.mulAssign(ct(n.negate(),n,s))})}const a=e.length;if(a>0){const u=Gt(e),c=g(1).toVar("intersectionClipOpacity");te(a,({i:l})=>{const d=u.element(l);s.assign(xe.dot(d.xyz).negate().add(d.w)),n.assign(s.fwidth().div(2)),c.mulAssign(ct(n.negate(),n,s).oneMinus())}),r.mulAssign(c.oneMinus())}ee.a.mulAssign(r),ee.a.equal(0).discard()})()}setupDefault(e,t){return b(()=>{const s=t.length;if(this.hardwareClipping===!1&&s>0){const r=Gt(t);te(s,({i})=>{const a=r.element(i);xe.dot(a.xyz).greaterThan(a.w).discard()})}const n=e.length;if(n>0){const r=Gt(e),i=Ht(!0).toVar("clipped");te(n,({i:a})=>{const u=r.element(a);i.assign(xe.dot(u.xyz).greaterThan(u.w).and(i))}),i.discard()}})()}setupHardwareClipping(e,t){const s=e.length;return t.enableHardwareClipping(s),b(()=>{const n=Gt(e),r=Hx(t.getClipDistance());te(s,({i})=>{const a=n.element(i),u=xe.dot(a.xyz).sub(a.w).negate();r.element(i).assign(u)})})()}}ut.ALPHA_TO_COVERAGE="alphaToCoverage";ut.DEFAULT="default";ut.HARDWARE="hardware";const qx=()=>E(new ut),Kx=()=>E(new ut(ut.ALPHA_TO_COVERAGE)),Xx=()=>E(new ut(ut.HARDWARE)),Yx=.05,hc=b(([o])=>Xt($(1e4,st($(17,o.x).add($(.1,o.y)))).mul(_e(.1,oe(st($(13,o.y).add(o.x))))))),pc=b(([o])=>hc(M(hc(o.xy),o.z))),jx=b(([o])=>{const e=ue(zt(Ha(o.xyz)),zt(qa(o.xyz))),t=g(1).div(g(Yx).mul(e)).toVar("pixScale"),s=M(rn(At(vt(t))),rn(xi(vt(t)))),n=M(pc(At(s.x.mul(o.xyz))),pc(At(s.y.mul(o.xyz)))),r=Xt(vt(t)),i=_e($(r.oneMinus(),n.x),$(r,n.y)),a=Re(r,r.oneMinus()),u=T(i.mul(i).div($(2,a).mul(Y(1,a))),i.sub($(.5,a)).div(Y(1,a)),Y(1,Y(1,i).mul(Y(1,i)).div($(2,a).mul(Y(1,a))))),c=i.lessThan(a.oneMinus()).select(i.lessThan(a).select(u.x,u.y),u.z);return Et(c,1e-6,1)}).setLayout({name:"getAlphaHashThreshold",type:"float",inputs:[{name:"position",type:"vec3"}]});class ce extends Xu{static get type(){return"NodeMaterial"}get type(){return this.constructor.type}set type(e){}constructor(){super(),this.isNodeMaterial=!0,this.fog=!0,this.lights=!1,this.hardwareClipping=!1,this.lightsNode=null,this.envNode=null,this.aoNode=null,this.colorNode=null,this.normalNode=null,this.opacityNode=null,this.backdropNode=null,this.backdropAlphaNode=null,this.alphaTestNode=null,this.positionNode=null,this.geometryNode=null,this.depthNode=null,this.shadowPositionNode=null,this.receivedShadowNode=null,this.castShadowNode=null,this.outputNode=null,this.mrtNode=null,this.fragmentNode=null,this.vertexNode=null}customProgramCacheKey(){return this.type+ma(this)}build(e){this.setup(e)}setupObserver(e){return new jm(e)}setup(e){e.context.setupNormal=()=>this.setupNormal(e),e.context.setupPositionView=()=>this.setupPositionView(e),e.context.setupModelViewProjection=()=>this.setupModelViewProjection(e);const t=e.renderer,s=t.getRenderTarget();e.addStack();const n=this.vertexNode||this.setupVertex(e);e.stack.outputNode=n,this.setupHardwareClipping(e),this.geometryNode!==null&&(e.stack.outputNode=e.stack.outputNode.bypass(this.geometryNode)),e.addFlow("vertex",e.removeStack()),e.addStack();let r;const i=this.setupClipping(e);if((this.depthWrite===!0||this.depthTest===!0)&&(s!==null?s.depthBuffer===!0&&this.setupDepth(e):t.depth===!0&&this.setupDepth(e)),this.fragmentNode===null){this.setupDiffuseColor(e),this.setupVariants(e);const a=this.setupLighting(e);i!==null&&e.stack.add(i);const u=P(a,ee.a).max(0);if(r=this.setupOutput(e,u),$n.assign(r),this.outputNode!==null&&(r=this.outputNode),s!==null){const c=t.getMRT(),l=this.mrtNode;c!==null?(r=c,l!==null&&(r=c.merge(l))):l!==null&&(r=l)}}else{let a=this.fragmentNode;a.isOutputStructNode!==!0&&(a=P(a)),r=this.setupOutput(e,a)}e.stack.outputNode=r,e.addFlow("fragment",e.removeStack()),e.monitor=this.setupObserver(e)}setupClipping(e){if(e.clippingContext===null)return null;const{unionPlanes:t,intersectionPlanes:s}=e.clippingContext;let n=null;if(t.length>0||s.length>0){const r=e.renderer.samples;this.alphaToCoverage&&r>1?n=Kx():e.stack.add(qx())}return n}setupHardwareClipping(e){if(this.hardwareClipping=!1,e.clippingContext===null)return;const t=e.clippingContext.unionPlanes.length;t>0&&t<=8&&e.isAvailable("clipDistance")&&(e.stack.add(Xx()),this.hardwareClipping=!0)}setupDepth(e){const{renderer:t,camera:s}=e;let n=this.depthNode;if(n===null){const r=t.getMRT();r&&r.has("depth")?n=r.get("depth"):t.logarithmicDepthBuffer===!0&&(s.isPerspectiveCamera?n=yu(xe.z,Jt,es):n=Qs(xe.z,Jt,es))}n!==null&&xu.assign(n).append()}setupPositionView(){return Kt.mul(me).xyz}setupModelViewProjection(){return He.mul(xe)}setupVertex(e){return e.addStack(),this.setupPosition(e),e.context.vertex=e.removeStack(),hu}setupPosition(e){const{object:t,geometry:s}=e;if((s.morphAttributes.position||s.morphAttributes.normal||s.morphAttributes.color)&&Up(t).append(),t.isSkinnedMesh===!0&&Fp(t).append(),this.displacementMap){const n=dt("displacementMap","texture"),r=dt("displacementScale","float"),i=dt("displacementBias","float");me.addAssign(Xe.normalize().mul(n.x.mul(r).add(i)))}return t.isBatchedMesh&&Mp(t).append(),t.isInstancedMesh&&t.instanceMatrix&&t.instanceMatrix.isInstancedBufferAttribute===!0&&wp(t).append(),this.positionNode!==null&&me.assign(this.positionNode.context({isPositionNodeInput:!0})),me}setupDiffuseColor({object:e,geometry:t}){let s=this.colorNode?P(this.colorNode):an;this.vertexColors===!0&&t.hasAttribute("color")&&(s=P(s.xyz.mul(we("color","vec3")),s.a)),e.instanceColor&&(s=et("vec3","vInstanceColor").mul(s)),e.isBatchedMesh&&e._colorsTexture&&(s=et("vec3","vBatchColor").mul(s)),ee.assign(s);const n=this.opacityNode?g(this.opacityNode):cr;if(ee.a.assign(ee.a.mul(n)),this.alphaTestNode!==null||this.alphaTest>0){const r=this.alphaTestNode!==null?g(this.alphaTestNode):ep;ee.a.lessThanEqual(r).discard()}this.alphaHash===!0&&ee.a.lessThan(jx(me)).discard(),this.transparent===!1&&this.blending===Ys&&this.alphaToCoverage===!1&&ee.a.assign(1)}setupVariants(){}setupOutgoingLight(){return this.lights===!0?T(0):ee.rgb}setupNormal(){return this.normalNode?T(this.normalNode):ap}setupEnvironment(){let e=null;return this.envNode?e=this.envNode:this.envMap&&(e=this.envMap.isCubeTexture?dt("envMap","cubeTexture"):dt("envMap","texture")),e}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new Px(du)),t}setupLights(e){const t=[],s=this.setupEnvironment(e);s&&s.isLightingNode&&t.push(s);const n=this.setupLightMap(e);if(n&&n.isLightingNode&&t.push(n),this.aoNode!==null||e.material.aoMap){const i=this.aoNode!==null?this.aoNode:Ap;t.push(new Fx(i))}let r=this.lightsNode||e.lightsNode;return t.length>0&&(r=e.renderer.lighting.createNode([...r.getLights(),...t])),r}setupLightingModel(){}setupLighting(e){const{material:t}=e,{backdropNode:s,backdropAlphaNode:n,emissiveNode:r}=this,a=this.lights===!0||this.lightsNode!==null?this.setupLights(e):null;let u=this.setupOutgoingLight(e);if(a&&a.getScope().hasLights){const c=this.setupLightingModel(e);u=Pp(a,c,s,n)}else s!==null&&(u=T(n!==null?Q(u,s,n):s));return(r&&r.isNode===!0||t.emissive&&t.emissive.isColor===!0)&&(Ho.assign(T(r||sp)),u=u.add(Ho)),u}setupOutput(e,t){if(this.fog===!0){const s=e.fogNode;s&&($n.assign(t),t=P(s))}return t}setDefaultValues(e){for(const s in e){const n=e[s];this[s]===void 0&&(this[s]=n,n&&n.clone&&(this[s]=n.clone()))}const t=Object.getOwnPropertyDescriptors(e.constructor.prototype);for(const s in t)Object.getOwnPropertyDescriptor(this.constructor.prototype,s)===void 0&&t[s].get!==void 0&&Object.defineProperty(this.constructor.prototype,s,t[s])}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{},nodes:{}});const s=Xu.prototype.toJSON.call(this,e),n=Vn(this);s.inputNodes={};for(const{property:i,childNode:a}of n)s.inputNodes[i]=a.toJSON(e).uuid;function r(i){const a=[];for(const u in i){const c=i[u];delete c.metadata,a.push(c)}return a}if(t){const i=r(e.textures),a=r(e.images),u=r(e.nodes);i.length>0&&(s.textures=i),a.length>0&&(s.images=a),u.length>0&&(s.nodes=u)}return s}copy(e){return this.lightsNode=e.lightsNode,this.envNode=e.envNode,this.colorNode=e.colorNode,this.normalNode=e.normalNode,this.opacityNode=e.opacityNode,this.backdropNode=e.backdropNode,this.backdropAlphaNode=e.backdropAlphaNode,this.alphaTestNode=e.alphaTestNode,this.positionNode=e.positionNode,this.geometryNode=e.geometryNode,this.depthNode=e.depthNode,this.shadowPositionNode=e.shadowPositionNode,this.receivedShadowNode=e.receivedShadowNode,this.castShadowNode=e.castShadowNode,this.outputNode=e.outputNode,this.mrtNode=e.mrtNode,this.fragmentNode=e.fragmentNode,this.vertexNode=e.vertexNode,super.copy(e)}}const Qx=new hl;class dR extends ce{static get type(){return"InstancedPointsNodeMaterial"}constructor(e={}){super(),this.isInstancedPointsNodeMaterial=!0,this.useColor=e.vertexColors,this.pointWidth=1,this.pointColorNode=null,this.pointWidthNode=null,this._useAlphaToCoverage=!0,this.setDefaultValues(Qx),this.setValues(e)}setup(e){const{renderer:t}=e,s=this._useAlphaToCoverage,n=this.useColor;this.vertexNode=b(()=>{const r=we("instancePosition").xyz,i=P(Kt.mul(P(r,1))),a=$t.z.div($t.w),u=He.mul(i),c=Ce.xy.toVar();return c.mulAssign(this.pointWidthNode?this.pointWidthNode:Sp),c.assign(c.div($t.z)),c.y.assign(c.y.mul(a)),c.assign(c.mul(u.w)),u.addAssign(P(c,0,0)),u})(),this.fragmentNode=b(()=>{const r=g(1).toVar(),i=ja(le().mul(2).sub(1));if(s&&t.samples>1){const u=g(i.fwidth()).toVar();r.assign(ct(u.oneMinus(),u.add(1),i).oneMinus())}else i.greaterThan(1).discard();let a;return this.pointColorNode?a=this.pointColorNode:n?a=we("instanceColor").mul(an):a=an,r.mulAssign(cr),P(a,r)})(),super.setup(e)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(e){this._useAlphaToCoverage!==e&&(this._useAlphaToCoverage=e,this.needsUpdate=!0)}}const Zx=new Eg;class Jx extends ce{static get type(){return"LineBasicNodeMaterial"}constructor(e){super(),this.isLineBasicNodeMaterial=!0,this.setDefaultValues(Zx),this.setValues(e)}}const eT=new pl;class tT extends ce{static get type(){return"LineDashedNodeMaterial"}constructor(e){super(),this.isLineDashedNodeMaterial=!0,this.setDefaultValues(eT),this.dashOffset=0,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.setValues(e)}setupVariants(){const e=this.offsetNode?g(this.offsetNode):lu,t=this.dashScaleNode?g(this.dashScaleNode):au,s=this.dashSizeNode?g(this.dashSizeNode):uu,n=this.gapSizeNode?g(this.gapSizeNode):cu;bs.assign(s),Hn.assign(n);const r=ke(we("lineDistance").mul(t));(e?r.add(e):r).mod(bs.add(Hn)).greaterThan(bs).discard()}}let ki=null;class sT extends Ci{static get type(){return"ViewportSharedTextureNode"}constructor(e=Bt,t=null){ki===null&&(ki=new bl),super(e,t,ki)}updateReference(){return this}}const Gp=C(sT),nT=new pl;class hR extends ce{static get type(){return"Line2NodeMaterial"}constructor(e={}){super(),this.isLine2NodeMaterial=!0,this.setDefaultValues(nT),this.useColor=e.vertexColors,this.dashOffset=0,this.lineWidth=1,this.lineColorNode=null,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.blending=en,this._useDash=e.dashed,this._useAlphaToCoverage=!0,this._useWorldUnits=!1,this.setValues(e)}setup(e){const{renderer:t}=e,s=this._useAlphaToCoverage,n=this.useColor,r=this._useDash,i=this._useWorldUnits,a=b(({start:c,end:l})=>{const d=He.element(2).element(2),f=He.element(3).element(2).mul(-.5).div(d).sub(c.z).div(l.z.sub(c.z));return P(Q(c.xyz,l.xyz,f),l.w)}).setLayout({name:"trimSegment",type:"vec4",inputs:[{name:"start",type:"vec4"},{name:"end",type:"vec4"}]});this.vertexNode=b(()=>{const c=we("instanceStart"),l=we("instanceEnd"),d=P(Kt.mul(P(c,1))).toVar("start"),h=P(Kt.mul(P(l,1))).toVar("end");if(r){const F=this.dashScaleNode?g(this.dashScaleNode):au,L=this.offsetNode?g(this.offsetNode):lu,I=we("instanceDistanceStart"),G=we("instanceDistanceEnd");let X=Ce.y.lessThan(.5).select(F.mul(I),F.mul(G));X=X.add(L),et("float","lineDistance").assign(X)}i&&(et("vec3","worldStart").assign(d.xyz),et("vec3","worldEnd").assign(h.xyz));const p=$t.z.div($t.w),f=He.element(2).element(3).equal(-1);z(f,()=>{z(d.z.lessThan(0).and(h.z.greaterThan(0)),()=>{h.assign(a({start:d,end:h}))}).ElseIf(h.z.lessThan(0).and(d.z.greaterThanEqual(0)),()=>{d.assign(a({start:h,end:d}))})});const m=He.mul(d),x=He.mul(h),N=m.xyz.div(m.w),v=x.xyz.div(x.w),w=v.xy.sub(N.xy).toVar();w.x.assign(w.x.mul(p)),w.assign(w.normalize());const B=P().toVar();if(i){const F=h.xyz.sub(d.xyz).normalize(),L=Q(d.xyz,h.xyz,.5).normalize(),I=F.cross(L).normalize(),G=F.cross(I),X=et("vec4","worldPos");X.assign(Ce.y.lessThan(.5).select(d,h));const ie=Or.mul(.5);X.addAssign(P(Ce.x.lessThan(0).select(I.mul(ie),I.mul(ie).negate()),0)),r||(X.addAssign(P(Ce.y.lessThan(.5).select(F.mul(ie).negate(),F.mul(ie)),0)),X.addAssign(P(G.mul(ie),0)),z(Ce.y.greaterThan(1).or(Ce.y.lessThan(0)),()=>{X.subAssign(P(G.mul(2).mul(ie),0))})),B.assign(He.mul(X));const Z=T().toVar();Z.assign(Ce.y.lessThan(.5).select(N,v)),B.z.assign(Z.z.mul(B.w))}else{const F=M(w.y,w.x.negate()).toVar("offset");w.x.assign(w.x.div(p)),F.x.assign(F.x.div(p)),F.assign(Ce.x.lessThan(0).select(F.negate(),F)),z(Ce.y.lessThan(0),()=>{F.assign(F.sub(w))}).ElseIf(Ce.y.greaterThan(1),()=>{F.assign(F.add(w))}),F.assign(F.mul(Or)),F.assign(F.div($t.w)),B.assign(Ce.y.lessThan(.5).select(m,x)),F.assign(F.mul(B.w)),B.assign(B.add(P(F,0,0)))}return B})();const u=b(({p1:c,p2:l,p3:d,p4:h})=>{const p=c.sub(d),f=h.sub(d),m=l.sub(c),x=p.dot(f),N=f.dot(m),v=p.dot(m),w=f.dot(f),F=m.dot(m).mul(w).sub(N.mul(N)),I=x.mul(N).sub(v.mul(w)).div(F).clamp(),G=x.add(N.mul(I)).div(w).clamp();return M(I,G)});if(this.colorNode=b(()=>{const c=le();if(r){const h=this.dashSizeNode?g(this.dashSizeNode):uu,p=this.gapSizeNode?g(this.gapSizeNode):cu;bs.assign(h),Hn.assign(p);const f=et("float","lineDistance");c.y.lessThan(-1).or(c.y.greaterThan(1)).discard(),f.mod(bs.add(Hn)).greaterThan(bs).discard()}const l=g(1).toVar("alpha");if(i){const h=et("vec3","worldStart"),p=et("vec3","worldEnd"),f=et("vec4","worldPos").xyz.normalize().mul(1e5),m=p.sub(h),x=u({p1:h,p2:p,p3:T(0,0,0),p4:f}),N=h.add(m.mul(x.x)),v=f.mul(x.y),F=N.sub(v).length().div(Or);if(!r)if(s&&t.samples>1){const L=F.fwidth();l.assign(ct(L.negate().add(.5),L.add(.5),F).oneMinus())}else F.greaterThan(.5).discard()}else if(s&&t.samples>1){const h=c.x,p=c.y.greaterThan(0).select(c.y.sub(1),c.y.add(1)),f=h.mul(h).add(p.mul(p)),m=g(f.fwidth()).toVar("dlen");z(c.y.abs().greaterThan(1),()=>{l.assign(ct(m.oneMinus(),m.add(1),f).oneMinus())})}else z(c.y.abs().greaterThan(1),()=>{const h=c.x,p=c.y.greaterThan(0).select(c.y.sub(1),c.y.add(1));h.mul(h).add(p.mul(p)).greaterThan(1).discard()});let d;if(this.lineColorNode)d=this.lineColorNode;else if(n){const h=we("instanceColorStart"),p=we("instanceColorEnd");d=Ce.y.lessThan(.5).select(h,p).mul(an)}else d=an;return P(d,l)})(),this.transparent){const c=this.opacityNode?g(this.opacityNode):cr;this.outputNode=P(this.colorNode.rgb.mul(c).add(Gp().rgb.mul(c.oneMinus())),this.colorNode.a)}super.setup(e)}get worldUnits(){return this._useWorldUnits}set worldUnits(e){this._useWorldUnits!==e&&(this._useWorldUnits=e,this.needsUpdate=!0)}get dashed(){return this._useDash}set dashed(e){this._useDash!==e&&(this._useDash=e,this.needsUpdate=!0)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(e){this._useAlphaToCoverage!==e&&(this._useAlphaToCoverage=e,this.needsUpdate=!0)}}const Op=o=>E(o).mul(.5).add(.5),rT=o=>E(o).mul(2).sub(1),iT=new Bg;class oT extends ce{static get type(){return"MeshNormalNodeMaterial"}constructor(e){super(),this.isMeshNormalNodeMaterial=!0,this.setDefaultValues(iT),this.setValues(e)}setupDiffuseColor(){const e=this.opacityNode?g(this.opacityNode):cr;ee.assign(P(Op(fe),e))}}class aT extends be{static get type(){return"EquirectUVNode"}constructor(e=nu){super("vec2"),this.dirNode=e}setup(){const e=this.dirNode,t=e.z.atan(e.x).mul(1/(Math.PI*2)).add(.5),s=e.y.clamp(-1,1).asin().mul(1/Math.PI).add(.5);return M(t,s)}}const Tu=C(aT);class kp extends jg{constructor(e=1,t={}){super(e,t),this.isCubeRenderTarget=!0}fromEquirectangularTexture(e,t){const s=t.minFilter,n=t.generateMipmaps;t.generateMipmaps=!0,this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const r=new _l(5,5,5),i=Tu(nu),a=new ce;a.colorNode=K(t,i,0),a.side=Ct,a.blending=en;const u=new tn(r,a),c=new Nl;c.add(u),t.minFilter===ms&&(t.minFilter=ft);const l=new Qg(1,10,this),d=e.getMRT();return e.setMRT(null),l.update(e,c),e.setMRT(d),t.minFilter=s,t.currentGenerateMipmaps=n,u.geometry.dispose(),u.material.dispose(),this}}const Fn=new WeakMap;class uT extends be{static get type(){return"CubeMapNode"}constructor(e){super("vec3"),this.envNode=e,this._cubeTexture=null,this._cubeTextureNode=on();const t=new td;t.isRenderTargetTexture=!0,this._defaultTexture=t,this.updateBeforeType=W.RENDER}updateBefore(e){const{renderer:t,material:s}=e,n=this.envNode;if(n.isTextureNode||n.isMaterialReferenceNode){const r=n.isTextureNode?n.value:s[n.property];if(r&&r.isTexture){const i=r.mapping;if(i===jn||i===Qn){if(Fn.has(r)){const a=Fn.get(r);fc(a,r.mapping),this._cubeTexture=a}else{const a=r.image;if(cT(a)){const u=new kp(a.height);u.fromEquirectangularTexture(t,r),fc(u.texture,r.mapping),this._cubeTexture=u.texture,Fn.set(r,u.texture),r.addEventListener("dispose",zp)}else this._cubeTexture=this._defaultTexture}this._cubeTextureNode.value=this._cubeTexture}else this._cubeTextureNode=this.envNode}}}setup(e){return this.updateBefore(e),this._cubeTextureNode}}function cT(o){return o==null?!1:o.height>0}function zp(o){const e=o.target;e.removeEventListener("dispose",zp);const t=Fn.get(e);t!==void 0&&(Fn.delete(e),t.dispose())}function fc(o,e){e===jn?o.mapping=Zs:e===Qn&&(o.mapping=Js)}const Wp=C(uT);class _u extends hn{static get type(){return"BasicEnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){e.context.environment=Wp(this.envNode)}}class lT extends hn{static get type(){return"BasicLightMapNode"}constructor(e=null){super(),this.lightMapNode=e}setup(e){const t=g(1/Math.PI);e.context.irradianceLightMap=this.lightMapNode.mul(t)}}class Ei{start(){}finish(){}direct(){}directRectArea(){}indirect(){}ambientOcclusion(){}}class $p extends Ei{constructor(){super()}indirect(e,t,s){const n=e.ambientOcclusion,r=e.reflectedLight,i=s.context.irradianceLightMap;r.indirectDiffuse.assign(P(0)),i?r.indirectDiffuse.addAssign(i):r.indirectDiffuse.addAssign(P(1,1,1,0)),r.indirectDiffuse.mulAssign(n),r.indirectDiffuse.mulAssign(ee.rgb)}finish(e,t,s){const n=s.material,r=e.outgoingLight,i=s.context.environment;if(i)switch(n.combine){case Xg:r.rgb.assign(Q(r.rgb,r.rgb.mul(i.rgb),Bn.mul(Gr)));break;case Kg:r.rgb.assign(Q(r.rgb,i.rgb,Bn.mul(Gr)));break;case qg:r.rgb.addAssign(i.rgb.mul(Bn.mul(Gr)));break;default:console.warn("THREE.BasicLightingModel: Unsupported .combine value:",n.combine);break}}}const dT=new fl;class hT extends ce{static get type(){return"MeshBasicNodeMaterial"}constructor(e){super(),this.isMeshBasicNodeMaterial=!0,this.lights=!0,this.setDefaultValues(dT),this.setValues(e)}setupNormal(){return lt}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new _u(t):null}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new lT(du)),t}setupOutgoingLight(){return ee.rgb}setupLightingModel(){return new $p}}const un=b(({f0:o,f90:e,dotVH:t})=>{const s=t.mul(-5.55473).sub(6.98316).mul(t).exp2();return o.mul(s.oneMinus()).add(e.mul(s))}),Ns=b(o=>o.diffuseColor.mul(1/Math.PI)),pT=()=>g(.25),fT=b(({dotNH:o})=>Yr.mul(g(.5)).add(1).mul(g(1/Math.PI)).mul(o.pow(Yr))),gT=b(({lightDirection:o})=>{const e=o.add(ae).normalize(),t=fe.dot(e).clamp(),s=ae.dot(e).clamp(),n=un({f0:We,f90:1,dotVH:s}),r=pT(),i=fT({dotNH:t});return n.mul(r).mul(i)});class Hp extends $p{constructor(e=!0){super(),this.specular=e}direct({lightDirection:e,lightColor:t,reflectedLight:s}){const r=fe.dot(e).clamp().mul(t);s.directDiffuse.addAssign(r.mul(Ns({diffuseColor:ee.rgb}))),this.specular===!0&&s.directSpecular.addAssign(r.mul(gT({lightDirection:e})).mul(Bn))}indirect({ambientOcclusion:e,irradiance:t,reflectedLight:s}){s.indirectDiffuse.addAssign(t.mul(Ns({diffuseColor:ee}))),s.indirectDiffuse.mulAssign(e)}}const mT=new wg;class yT extends ce{static get type(){return"MeshLambertNodeMaterial"}constructor(e){super(),this.isMeshLambertNodeMaterial=!0,this.lights=!0,this.setDefaultValues(mT),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new _u(t):null}setupLightingModel(){return new Hp(!1)}}const xT=new Fg;class TT extends ce{static get type(){return"MeshPhongNodeMaterial"}constructor(e){super(),this.isMeshPhongNodeMaterial=!0,this.lights=!0,this.shininessNode=null,this.specularNode=null,this.setDefaultValues(xT),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new _u(t):null}setupLightingModel(){return new Hp}setupVariants(){const e=(this.shininessNode?g(this.shininessNode):tp).max(1e-4);Yr.assign(e);const t=this.specularNode||np;We.assign(t)}copy(e){return this.shininessNode=e.shininessNode,this.specularNode=e.specularNode,super.copy(e)}}const qp=b(o=>{if(o.geometry.hasAttribute("normal")===!1)return g(0);const e=lt.dFdx().abs().max(lt.dFdy().abs());return e.x.max(e.y).max(e.z)}),bu=b(o=>{const{roughness:e}=o,t=qp();let s=e.max(.0525);return s=s.add(t),s=s.min(1),s}),Kp=b(({alpha:o,dotNL:e,dotNV:t})=>{const s=o.pow2(),n=e.mul(s.add(s.oneMinus().mul(t.pow2())).sqrt()),r=t.mul(s.add(s.oneMinus().mul(e.pow2())).sqrt());return gt(.5,n.add(r).max(Gd))}).setLayout({name:"V_GGX_SmithCorrelated",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNL",type:"float"},{name:"dotNV",type:"float"}]}),_T=b(({alphaT:o,alphaB:e,dotTV:t,dotBV:s,dotTL:n,dotBL:r,dotNV:i,dotNL:a})=>{const u=a.mul(T(o.mul(t),e.mul(s),i).length()),c=i.mul(T(o.mul(n),e.mul(r),a).length());return gt(.5,u.add(c)).saturate()}).setLayout({name:"V_GGX_SmithCorrelated_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotTV",type:"float",qualifier:"in"},{name:"dotBV",type:"float",qualifier:"in"},{name:"dotTL",type:"float",qualifier:"in"},{name:"dotBL",type:"float",qualifier:"in"},{name:"dotNV",type:"float",qualifier:"in"},{name:"dotNL",type:"float",qualifier:"in"}]}),Xp=b(({alpha:o,dotNH:e})=>{const t=o.pow2(),s=e.pow2().mul(t.oneMinus()).oneMinus();return t.div(s.pow2()).mul(1/Math.PI)}).setLayout({name:"D_GGX",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNH",type:"float"}]}),bT=g(1/Math.PI),NT=b(({alphaT:o,alphaB:e,dotNH:t,dotTH:s,dotBH:n})=>{const r=o.mul(e),i=T(e.mul(s),o.mul(n),r.mul(t)),a=i.dot(i),u=r.div(a);return bT.mul(r.mul(u.pow2()))}).setLayout({name:"D_GGX_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotNH",type:"float",qualifier:"in"},{name:"dotTH",type:"float",qualifier:"in"},{name:"dotBH",type:"float",qualifier:"in"}]}),jo=b(o=>{const{lightDirection:e,f0:t,f90:s,roughness:n,f:r,USE_IRIDESCENCE:i,USE_ANISOTROPY:a}=o,u=o.normalView||fe,c=n.pow2(),l=e.add(ae).normalize(),d=u.dot(e).clamp(),h=u.dot(ae).clamp(),p=u.dot(l).clamp(),f=ae.dot(l).clamp();let m=un({f0:t,f90:s,dotVH:f}),x,N;if(Gn(i)&&(m=mi.mix(m,r)),Gn(a)){const v=En.dot(e),w=En.dot(ae),B=En.dot(l),F=_s.dot(e),L=_s.dot(ae),I=_s.dot(l);x=_T({alphaT:Xr,alphaB:c,dotTV:w,dotBV:L,dotTL:v,dotBL:F,dotNV:h,dotNL:d}),N=NT({alphaT:Xr,alphaB:c,dotNH:p,dotTH:B,dotBH:I})}else x=Kp({alpha:c,dotNL:d,dotNV:h}),N=Xp({alpha:c,dotNH:p});return m.mul(x).mul(N)}),Nu=b(({roughness:o,dotNV:e})=>{const t=P(-1,-.0275,-.572,.022),s=P(1,.0425,1.04,-.04),n=o.mul(t).add(s),r=n.x.mul(n.x).min(e.mul(-9.28).exp2()).mul(n.x).add(n.y);return M(-1.04,1.04).mul(r).add(n.zw)}).setLayout({name:"DFGApprox",type:"vec2",inputs:[{name:"roughness",type:"float"},{name:"dotNV",type:"vec3"}]}),Yp=b(o=>{const{dotNV:e,specularColor:t,specularF90:s,roughness:n}=o,r=Nu({dotNV:e,roughness:n});return t.mul(r.x).add(s.mul(r.y))}),jp=b(({f:o,f90:e,dotVH:t})=>{const s=t.oneMinus().saturate(),n=s.mul(s),r=s.mul(n,n).clamp(0,.9999);return o.sub(T(e).mul(r)).div(r.oneMinus())}).setLayout({name:"Schlick_to_F0",type:"vec3",inputs:[{name:"f",type:"vec3"},{name:"f90",type:"float"},{name:"dotVH",type:"float"}]}),ST=b(({roughness:o,dotNH:e})=>{const t=o.pow2(),s=g(1).div(t),r=e.pow2().oneMinus().max(.0078125);return g(2).add(s).mul(r.pow(s.mul(.5))).div(2*Math.PI)}).setLayout({name:"D_Charlie",type:"float",inputs:[{name:"roughness",type:"float"},{name:"dotNH",type:"float"}]}),vT=b(({dotNV:o,dotNL:e})=>g(1).div(g(4).mul(e.add(o).sub(e.mul(o))))).setLayout({name:"V_Neubelt",type:"float",inputs:[{name:"dotNV",type:"float"},{name:"dotNL",type:"float"}]}),AT=b(({lightDirection:o})=>{const e=o.add(ae).normalize(),t=fe.dot(o).clamp(),s=fe.dot(ae).clamp(),n=fe.dot(e).clamp(),r=ST({roughness:gi,dotNH:n}),i=vT({dotNV:s,dotNL:t});return fs.mul(r).mul(i)}),RT=b(({N:o,V:e,roughness:t})=>{const r=.0078125,i=o.dot(e).saturate(),a=M(t,i.oneMinus().sqrt());return a.assign(a.mul(.984375).add(r)),a}).setLayout({name:"LTC_Uv",type:"vec2",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"roughness",type:"float"}]}),CT=b(({f:o})=>{const e=o.length();return ue(e.mul(e).add(o.z).div(e.add(1)),0)}).setLayout({name:"LTC_ClippedSphereFormFactor",type:"float",inputs:[{name:"f",type:"vec3"}]}),gr=b(({v1:o,v2:e})=>{const t=o.dot(e),s=t.abs().toVar(),n=s.mul(.0145206).add(.4965155).mul(s).add(.8543985).toVar(),r=s.add(4.1616724).mul(s).add(3.417594).toVar(),i=n.div(r),a=t.greaterThan(0).select(i,ue(t.mul(t).oneMinus(),1e-7).inverseSqrt().mul(.5).sub(i));return o.cross(e).mul(a)}).setLayout({name:"LTC_EdgeVectorFormFactor",type:"vec3",inputs:[{name:"v1",type:"vec3"},{name:"v2",type:"vec3"}]}),gc=b(({N:o,V:e,P:t,mInv:s,p0:n,p1:r,p2:i,p3:a})=>{const u=r.sub(n).toVar(),c=a.sub(n).toVar(),l=u.cross(c),d=T().toVar();return z(l.dot(t.sub(n)).greaterThanEqual(0),()=>{const h=e.sub(o.mul(e.dot(o))).normalize(),p=o.cross(h).negate(),f=s.mul(Oe(h,p,o).transpose()).toVar(),m=f.mul(n.sub(t)).normalize().toVar(),x=f.mul(r.sub(t)).normalize().toVar(),N=f.mul(i.sub(t)).normalize().toVar(),v=f.mul(a.sub(t)).normalize().toVar(),w=T(0).toVar();w.addAssign(gr({v1:m,v2:x})),w.addAssign(gr({v1:x,v2:N})),w.addAssign(gr({v1:N,v2:v})),w.addAssign(gr({v1:v,v2:m})),d.assign(T(CT({f:w})))}),d}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"P",type:"vec3"},{name:"mInv",type:"mat3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),wi=1/6,Qp=o=>$(wi,$(o,$(o,o.negate().add(3)).sub(3)).add(1)),Qo=o=>$(wi,$(o,$(o,$(3,o).sub(6))).add(4)),Zp=o=>$(wi,$(o,$(o,$(-3,o).add(3)).add(3)).add(1)),Zo=o=>$(wi,ht(o,3)),mc=o=>Qp(o).add(Qo(o)),yc=o=>Zp(o).add(Zo(o)),xc=o=>_e(-1,Qo(o).div(Qp(o).add(Qo(o)))),Tc=o=>_e(1,Zo(o).div(Zp(o).add(Zo(o)))),_c=(o,e,t)=>{const s=o.uvNode,n=$(s,e.zw).add(.5),r=At(n),i=Xt(n),a=mc(i.x),u=yc(i.x),c=xc(i.x),l=Tc(i.x),d=xc(i.y),h=Tc(i.y),p=M(r.x.add(c),r.y.add(d)).sub(.5).mul(e.xy),f=M(r.x.add(l),r.y.add(d)).sub(.5).mul(e.xy),m=M(r.x.add(c),r.y.add(h)).sub(.5).mul(e.xy),x=M(r.x.add(l),r.y.add(h)).sub(.5).mul(e.xy),N=mc(i.y).mul(_e(a.mul(o.sample(p).level(t)),u.mul(o.sample(f).level(t)))),v=yc(i.y).mul(_e(a.mul(o.sample(m).level(t)),u.mul(o.sample(x).level(t))));return N.add(v)},Jp=b(([o,e=g(3)])=>{const t=M(o.size(y(e))),s=M(o.size(y(e.add(1)))),n=gt(1,t),r=gt(1,s),i=_c(o,P(n,t),At(e)),a=_c(o,P(r,s),xi(e));return Xt(e).mix(i,a)}),bc=b(([o,e,t,s,n])=>{const r=T(Qa(e.negate(),qt(o),gt(1,s))),i=T(zt(n[0].xyz),zt(n[1].xyz),zt(n[2].xyz));return qt(r).mul(t.mul(i))}).setLayout({name:"getVolumeTransmissionRay",type:"vec3",inputs:[{name:"n",type:"vec3"},{name:"v",type:"vec3"},{name:"thickness",type:"float"},{name:"ior",type:"float"},{name:"modelMatrix",type:"mat4"}]}),ET=b(([o,e])=>o.mul(Et(e.mul(2).sub(2),0,1))).setLayout({name:"applyIorToRoughness",type:"float",inputs:[{name:"roughness",type:"float"},{name:"ior",type:"float"}]}),wT=fu(),MT=fu(),Nc=b(([o,e,t],{material:s})=>{const r=(s.side===Ct?wT:MT).sample(o),i=vt(Kn.x).mul(ET(e,t));return Jp(r,i)}),Sc=b(([o,e,t])=>(z(t.notEqual(0),()=>{const s=yi(e).negate().div(t);return za(s.negate().mul(o))}),T(1))).setLayout({name:"volumeAttenuation",type:"vec3",inputs:[{name:"transmissionDistance",type:"float"},{name:"attenuationColor",type:"vec3"},{name:"attenuationDistance",type:"float"}]}),BT=b(([o,e,t,s,n,r,i,a,u,c,l,d,h,p,f])=>{let m,x;if(f){m=P().toVar(),x=T().toVar();const F=l.sub(1).mul(f.mul(.025)),L=T(l.sub(F),l,l.add(F));te({start:0,end:3},({i:I})=>{const G=L.element(I),X=bc(o,e,d,G,a),ie=i.add(X),Z=c.mul(u.mul(P(ie,1))),Qe=M(Z.xy.div(Z.w)).toVar();Qe.addAssign(1),Qe.divAssign(2),Qe.assign(M(Qe.x,Qe.y.oneMinus()));const Ze=Nc(Qe,t,G);m.element(I).assign(Ze.element(I)),m.a.addAssign(Ze.a),x.element(I).assign(s.element(I).mul(Sc(zt(X),h,p).element(I)))}),m.a.divAssign(3)}else{const F=bc(o,e,d,l,a),L=i.add(F),I=c.mul(u.mul(P(L,1))),G=M(I.xy.div(I.w)).toVar();G.addAssign(1),G.divAssign(2),G.assign(M(G.x,G.y.oneMinus())),m=Nc(G,t,l),x=s.mul(Sc(zt(F),h,p))}const N=x.rgb.mul(m.rgb),v=o.dot(e).clamp(),w=T(Yp({dotNV:v,specularColor:n,specularF90:r,roughness:t})),B=x.r.add(x.g,x.b).div(3);return P(w.oneMinus().mul(N),m.a.oneMinus().mul(B).oneMinus())}),FT=Oe(3.2404542,-.969266,.0556434,-1.5371385,1.8760108,-.2040259,-.4985314,.041556,1.0572252),UT=o=>{const e=o.sqrt();return T(1).add(e).div(T(1).sub(e))},vc=(o,e)=>o.sub(e).div(o.add(e)).pow2(),PT=(o,e)=>{const t=o.mul(2*Math.PI*1e-9),s=T(54856e-17,44201e-17,52481e-17),n=T(1681e3,1795300,2208400),r=T(43278e5,93046e5,66121e5),i=g(9747e-17*Math.sqrt(2*Math.PI*45282e5)).mul(t.mul(2239900).add(e.x).cos()).mul(t.pow2().mul(-45282e5).exp());let a=s.mul(r.mul(2*Math.PI).sqrt()).mul(n.mul(t).add(e).cos()).mul(t.pow2().negate().mul(r).exp());return a=T(a.x.add(i),a.y,a.z).div(10685e-11),FT.mul(a)},DT=b(({outsideIOR:o,eta2:e,cosTheta1:t,thinFilmThickness:s,baseF0:n})=>{const r=Q(o,e,ct(0,.03,s)),a=o.div(r).pow2().mul(t.pow2().oneMinus()).oneMinus();z(a.lessThan(0),()=>T(1));const u=a.sqrt(),c=vc(r,o),l=un({f0:c,f90:1,dotVH:t}),d=l.oneMinus(),h=r.lessThan(o).select(Math.PI,0),p=g(Math.PI).sub(h),f=UT(n.clamp(0,.9999)),m=vc(f,r.toVec3()),x=un({f0:m,f90:1,dotVH:u}),N=T(f.x.lessThan(r).select(Math.PI,0),f.y.lessThan(r).select(Math.PI,0),f.z.lessThan(r).select(Math.PI,0)),v=r.mul(s,u,2),w=T(p).add(N),B=l.mul(x).clamp(1e-5,.9999),F=B.sqrt(),L=d.pow2().mul(x).div(T(1).sub(B)),G=l.add(L).toVar(),X=L.sub(d).toVar();return te({start:1,end:2,condition:"<=",name:"m"},({m:ie})=>{X.mulAssign(F);const Z=PT(g(ie).mul(v),g(ie).mul(w)).mul(2);G.addAssign(X.mul(Z))}),G.max(T(0))}).setLayout({name:"evalIridescence",type:"vec3",inputs:[{name:"outsideIOR",type:"float"},{name:"eta2",type:"float"},{name:"cosTheta1",type:"float"},{name:"thinFilmThickness",type:"float"},{name:"baseF0",type:"vec3"}]}),LT=b(({normal:o,viewDir:e,roughness:t})=>{const s=o.dot(e).saturate(),n=t.pow2(),r=Ue(t.lessThan(.25),g(-339.2).mul(n).add(g(161.4).mul(t)).sub(25.9),g(-8.48).mul(n).add(g(14.3).mul(t)).sub(9.95)),i=Ue(t.lessThan(.25),g(44).mul(n).sub(g(23.7).mul(t)).add(3.26),g(1.97).mul(n).sub(g(3.27).mul(t)).add(.72));return Ue(t.lessThan(.25),0,g(.1).mul(t).sub(.025)).add(r.mul(s).add(i).exp()).mul(1/Math.PI).saturate()}),zi=T(.04),Wi=g(1);class Su extends Ei{constructor(e=!1,t=!1,s=!1,n=!1,r=!1,i=!1){super(),this.clearcoat=e,this.sheen=t,this.iridescence=s,this.anisotropy=n,this.transmission=r,this.dispersion=i,this.clearcoatRadiance=null,this.clearcoatSpecularDirect=null,this.clearcoatSpecularIndirect=null,this.sheenSpecularDirect=null,this.sheenSpecularIndirect=null,this.iridescenceFresnel=null,this.iridescenceF0=null}start(e){if(this.clearcoat===!0&&(this.clearcoatRadiance=T().toVar("clearcoatRadiance"),this.clearcoatSpecularDirect=T().toVar("clearcoatSpecularDirect"),this.clearcoatSpecularIndirect=T().toVar("clearcoatSpecularIndirect")),this.sheen===!0&&(this.sheenSpecularDirect=T().toVar("sheenSpecularDirect"),this.sheenSpecularIndirect=T().toVar("sheenSpecularIndirect")),this.iridescence===!0){const t=fe.dot(ae).clamp();this.iridescenceFresnel=DT({outsideIOR:g(1),eta2:Ua,cosTheta1:t,thinFilmThickness:Pa,baseF0:We}),this.iridescenceF0=jp({f:this.iridescenceFresnel,f90:1,dotVH:t})}if(this.transmission===!0){const t=Wt,s=su.sub(Wt).normalize(),n=vi;e.backdrop=BT(n,s,Nt,ee,We,Wn,t,at,je,He,wn,Da,Ia,La,this.dispersion?Va:null),e.backdropAlpha=jr,ee.a.mulAssign(Q(1,e.backdrop.a,jr))}}computeMultiscattering(e,t,s){const n=fe.dot(ae).clamp(),r=Nu({roughness:Nt,dotNV:n}),a=(this.iridescenceF0?mi.mix(We,this.iridescenceF0):We).mul(r.x).add(s.mul(r.y)),c=r.x.add(r.y).oneMinus(),l=We.add(We.oneMinus().mul(.047619)),d=a.mul(l).div(c.mul(l).oneMinus());e.addAssign(a),t.addAssign(d.mul(c))}direct({lightDirection:e,lightColor:t,reflectedLight:s}){const r=fe.dot(e).clamp().mul(t);if(this.sheen===!0&&this.sheenSpecularDirect.addAssign(r.mul(AT({lightDirection:e}))),this.clearcoat===!0){const a=Hs.dot(e).clamp().mul(t);this.clearcoatSpecularDirect.addAssign(a.mul(jo({lightDirection:e,f0:zi,f90:Wi,roughness:zn,normalView:Hs})))}s.directDiffuse.addAssign(r.mul(Ns({diffuseColor:ee.rgb}))),s.directSpecular.addAssign(r.mul(jo({lightDirection:e,f0:We,f90:1,roughness:Nt,iridescence:this.iridescence,f:this.iridescenceFresnel,USE_IRIDESCENCE:this.iridescence,USE_ANISOTROPY:this.anisotropy})))}directRectArea({lightColor:e,lightPosition:t,halfWidth:s,halfHeight:n,reflectedLight:r,ltc_1:i,ltc_2:a}){const u=t.add(s).sub(n),c=t.sub(s).sub(n),l=t.sub(s).add(n),d=t.add(s).add(n),h=fe,p=ae,f=xe.toVar(),m=RT({N:h,V:p,roughness:Nt}),x=i.sample(m).toVar(),N=a.sample(m).toVar(),v=Oe(T(x.x,0,x.y),T(0,1,0),T(x.z,0,x.w)).toVar(),w=We.mul(N.x).add(We.oneMinus().mul(N.y)).toVar();r.directSpecular.addAssign(e.mul(w).mul(gc({N:h,V:p,P:f,mInv:v,p0:u,p1:c,p2:l,p3:d}))),r.directDiffuse.addAssign(e.mul(ee).mul(gc({N:h,V:p,P:f,mInv:Oe(1,0,0,0,1,0,0,0,1),p0:u,p1:c,p2:l,p3:d})))}indirect(e,t,s){this.indirectDiffuse(e,t,s),this.indirectSpecular(e,t,s),this.ambientOcclusion(e,t,s)}indirectDiffuse({irradiance:e,reflectedLight:t}){t.indirectDiffuse.addAssign(e.mul(Ns({diffuseColor:ee})))}indirectSpecular({radiance:e,iblIrradiance:t,reflectedLight:s}){if(this.sheen===!0&&this.sheenSpecularIndirect.addAssign(t.mul(fs,LT({normal:fe,viewDir:ae,roughness:gi}))),this.clearcoat===!0){const c=Hs.dot(ae).clamp(),l=Yp({dotNV:c,specularColor:zi,specularF90:Wi,roughness:zn});this.clearcoatSpecularIndirect.addAssign(this.clearcoatRadiance.mul(l))}const n=T().toVar("singleScattering"),r=T().toVar("multiScattering"),i=t.mul(1/Math.PI);this.computeMultiscattering(n,r,Wn);const a=n.add(r),u=ee.mul(a.r.max(a.g).max(a.b).oneMinus());s.indirectSpecular.addAssign(e.mul(n)),s.indirectSpecular.addAssign(r.mul(i)),s.indirectDiffuse.addAssign(u.mul(i))}ambientOcclusion({ambientOcclusion:e,reflectedLight:t}){const n=fe.dot(ae).clamp().add(e),r=Nt.mul(-16).oneMinus().negate().exp2(),i=e.sub(n.pow(r).oneMinus()).clamp();this.clearcoat===!0&&this.clearcoatSpecularIndirect.mulAssign(e),this.sheen===!0&&this.sheenSpecularIndirect.mulAssign(e),t.indirectDiffuse.mulAssign(e),t.indirectSpecular.mulAssign(i)}finish(e){const{outgoingLight:t}=e;if(this.clearcoat===!0){const s=Hs.dot(ae).clamp(),n=un({dotVH:s,f0:zi,f90:Wi}),r=t.mul(Kr.mul(n).oneMinus()).add(this.clearcoatSpecularDirect.add(this.clearcoatSpecularIndirect).mul(Kr));t.assign(r)}if(this.sheen===!0){const s=fs.r.max(fs.g).max(fs.b).mul(.157).oneMinus(),n=t.mul(s).add(this.sheenSpecularDirect,this.sheenSpecularIndirect);t.assign(n)}}}const Ac=g(1),Jo=g(-2),mr=g(.8),$i=g(-1),yr=g(.4),Hi=g(2),xr=g(.305),qi=g(3),Rc=g(.21),IT=g(4),Cc=g(4),VT=g(16),GT=b(([o])=>{const e=T(oe(o)).toVar(),t=g(-1).toVar();return z(e.x.greaterThan(e.z),()=>{z(e.x.greaterThan(e.y),()=>{t.assign(Ue(o.x.greaterThan(0),0,3))}).Else(()=>{t.assign(Ue(o.y.greaterThan(0),1,4))})}).Else(()=>{z(e.z.greaterThan(e.y),()=>{t.assign(Ue(o.z.greaterThan(0),2,5))}).Else(()=>{t.assign(Ue(o.y.greaterThan(0),1,4))})}),t}).setLayout({name:"getFace",type:"float",inputs:[{name:"direction",type:"vec3"}]}),OT=b(([o,e])=>{const t=M().toVar();return z(e.equal(0),()=>{t.assign(M(o.z,o.y).div(oe(o.x)))}).ElseIf(e.equal(1),()=>{t.assign(M(o.x.negate(),o.z.negate()).div(oe(o.y)))}).ElseIf(e.equal(2),()=>{t.assign(M(o.x.negate(),o.y).div(oe(o.z)))}).ElseIf(e.equal(3),()=>{t.assign(M(o.z.negate(),o.y).div(oe(o.x)))}).ElseIf(e.equal(4),()=>{t.assign(M(o.x.negate(),o.z).div(oe(o.y)))}).Else(()=>{t.assign(M(o.x,o.y).div(oe(o.z)))}),$(.5,t.add(1))}).setLayout({name:"getUV",type:"vec2",inputs:[{name:"direction",type:"vec3"},{name:"face",type:"float"}]}),kT=b(([o])=>{const e=g(0).toVar();return z(o.greaterThanEqual(mr),()=>{e.assign(Ac.sub(o).mul($i.sub(Jo)).div(Ac.sub(mr)).add(Jo))}).ElseIf(o.greaterThanEqual(yr),()=>{e.assign(mr.sub(o).mul(Hi.sub($i)).div(mr.sub(yr)).add($i))}).ElseIf(o.greaterThanEqual(xr),()=>{e.assign(yr.sub(o).mul(qi.sub(Hi)).div(yr.sub(xr)).add(Hi))}).ElseIf(o.greaterThanEqual(Rc),()=>{e.assign(xr.sub(o).mul(IT.sub(qi)).div(xr.sub(Rc)).add(qi))}).Else(()=>{e.assign(g(-2).mul(vt($(1.16,o))))}),e}).setLayout({name:"roughnessToMip",type:"float",inputs:[{name:"roughness",type:"float"}]}),ef=b(([o,e])=>{const t=o.toVar();t.assign($(2,t).sub(1));const s=T(t,1).toVar();return z(e.equal(0),()=>{s.assign(s.zyx)}).ElseIf(e.equal(1),()=>{s.assign(s.xzy),s.xz.mulAssign(-1)}).ElseIf(e.equal(2),()=>{s.x.mulAssign(-1)}).ElseIf(e.equal(3),()=>{s.assign(s.zyx),s.xz.mulAssign(-1)}).ElseIf(e.equal(4),()=>{s.assign(s.xzy),s.xy.mulAssign(-1)}).ElseIf(e.equal(5),()=>{s.z.mulAssign(-1)}),s}).setLayout({name:"getDirection",type:"vec3",inputs:[{name:"uv",type:"vec2"},{name:"face",type:"float"}]}),tf=b(([o,e,t,s,n,r])=>{const i=g(t),a=T(e),u=Et(kT(i),Jo,r),c=Xt(u),l=At(u),d=T(ea(o,a,l,s,n,r)).toVar();return z(c.notEqual(0),()=>{const h=T(ea(o,a,l.add(1),s,n,r)).toVar();d.assign(Q(d,h,c))}),d}),ea=b(([o,e,t,s,n,r])=>{const i=g(t).toVar(),a=T(e),u=g(GT(a)).toVar(),c=g(ue(Cc.sub(i),0)).toVar();i.assign(ue(i,Cc));const l=g(rn(i)).toVar(),d=M(OT(a,u).mul(l.sub(2)).add(1)).toVar();return z(u.greaterThan(2),()=>{d.y.addAssign(l),u.subAssign(3)}),d.x.addAssign(u.mul(l)),d.x.addAssign(c.mul($(3,VT))),d.y.addAssign($(4,rn(r).sub(l))),d.x.mulAssign(s),d.y.mulAssign(n),o.sample(d).grad(M(),M())}),Ki=b(({envMap:o,mipInt:e,outputDirection:t,theta:s,axis:n,CUBEUV_TEXEL_WIDTH:r,CUBEUV_TEXEL_HEIGHT:i,CUBEUV_MAX_MIP:a})=>{const u=It(s),c=t.mul(u).add(n.cross(t).mul(st(s))).add(n.mul(n.dot(t).mul(u.oneMinus())));return ea(o,c,e,r,i,a)}),sf=b(({n:o,latitudinal:e,poleAxis:t,outputDirection:s,weights:n,samples:r,dTheta:i,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d})=>{const h=T(Ue(e,t,_i(t,s))).toVar();z(ka(h.equals(T(0))),()=>{h.assign(T(s.z,0,s.x.negate()))}),h.assign(qt(h));const p=T().toVar();return p.addAssign(n.element(y(0)).mul(Ki({theta:0,axis:h,outputDirection:s,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d}))),te({start:y(1),end:o},({i:f})=>{z(f.greaterThanEqual(r),()=>{pu()});const m=g(i.mul(g(f))).toVar();p.addAssign(n.element(f).mul(Ki({theta:m.mul(-1),axis:h,outputDirection:s,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d}))),p.addAssign(n.element(f).mul(Ki({theta:m,axis:h,outputDirection:s,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d})))}),P(p,1)});let ti=null;const Ec=new WeakMap;function zT(o){const e=Math.log2(o)-2,t=1/o;return{texelWidth:1/(3*Math.max(Math.pow(2,e),112)),texelHeight:t,maxMip:e}}function WT(o){let e=Ec.get(o);if((e!==void 0?e.pmremVersion:-1)!==o.pmremVersion){const s=o.image;if(o.isCubeTexture)if(HT(s))e=ti.fromCubemap(o,e);else return null;else if(qT(s))e=ti.fromEquirectangular(o,e);else return null;e.pmremVersion=o.pmremVersion,Ec.set(o,e)}return e.texture}class $T extends be{static get type(){return"PMREMNode"}constructor(e,t=null,s=null){super("vec3"),this._value=e,this._pmrem=null,this.uvNode=t,this.levelNode=s,this._generator=null;const n=new aa;n.isRenderTargetTexture=!0,this._texture=K(n),this._width=V(0),this._height=V(0),this._maxMip=V(0),this.updateBeforeType=W.RENDER}set value(e){this._value=e,this._pmrem=null}get value(){return this._value}updateFromTexture(e){const t=zT(e.image.height);this._texture.value=e,this._width.value=t.texelWidth,this._height.value=t.texelHeight,this._maxMip.value=t.maxMip}updateBefore(){let e=this._pmrem;const t=e?e.pmremVersion:-1,s=this._value;t!==s.pmremVersion&&(s.isPMREMTexture===!0?e=s:e=WT(s),e!==null&&(this._pmrem=e,this.updateFromTexture(e)))}setup(e){ti===null&&(ti=e.createPMREMGenerator()),this.updateBefore(e);let t=this.uvNode;t===null&&e.context.getUV&&(t=e.context.getUV(this));const s=this.value;e.renderer.coordinateSystem===Pn&&s.isPMREMTexture!==!0&&s.isRenderTargetTexture===!0&&(t=T(t.x.negate(),t.yz)),t=T(t.x,t.y.negate(),t.z);let n=this.levelNode;return n===null&&e.context.getTextureLevel&&(n=e.context.getTextureLevel(this)),tf(this._texture,t,n,this._width,this._height,this._maxMip)}}function HT(o){if(o==null)return!1;let e=0;const t=6;for(let s=0;s0}const vu=C($T),wc=new WeakMap;class KT extends hn{static get type(){return"EnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){const{material:t}=e;let s=this.envNode;if(s.isTextureNode||s.isMaterialReferenceNode){const p=s.isTextureNode?s.value:t[s.property];let f=wc.get(p);f===void 0&&(f=vu(p),wc.set(p,f)),s=f}const r=t.envMap?ne("envMapIntensity","float",e.material):ne("environmentIntensity","float",e.scene),a=t.useAnisotropy===!0||t.anisotropy>0?Zh:fe,u=s.context(Mc(Nt,a)).mul(r),c=s.context(XT(vi)).mul(Math.PI).mul(r),l=Mn(u),d=Mn(c);e.context.radiance.addAssign(l),e.context.iblIrradiance.addAssign(d);const h=e.context.lightingModel.clearcoatRadiance;if(h){const p=s.context(Mc(zn,Hs)).mul(r),f=Mn(p);h.addAssign(f)}}}const Mc=(o,e)=>{let t=null;return{getUV:()=>(t===null&&(t=ae.negate().reflect(e),t=o.mul(o).mix(t,e).normalize(),t=t.transformDirection(je)),t),getTextureLevel:()=>o}},XT=o=>({getUV:()=>o,getTextureLevel:()=>g(1)}),YT=new Pg;class nf extends ce{static get type(){return"MeshStandardNodeMaterial"}constructor(e){super(),this.isMeshStandardNodeMaterial=!0,this.lights=!0,this.emissiveNode=null,this.metalnessNode=null,this.roughnessNode=null,this.setDefaultValues(YT),this.setValues(e)}setupEnvironment(e){let t=super.setupEnvironment(e);return t===null&&e.environmentNode&&(t=e.environmentNode),t?new KT(t):null}setupLightingModel(){return new Su}setupSpecular(){const e=Q(T(.04),ee.rgb,kn);We.assign(e),Wn.assign(1)}setupVariants(){const e=this.metalnessNode?g(this.metalnessNode):op;kn.assign(e);let t=this.roughnessNode?g(this.roughnessNode):ip;t=bu({roughness:t}),Nt.assign(t),this.setupSpecular(),ee.assign(P(ee.rgb.mul(e.oneMinus()),ee.a))}copy(e){return this.emissiveNode=e.emissiveNode,this.metalnessNode=e.metalnessNode,this.roughnessNode=e.roughnessNode,super.copy(e)}}const jT=new Ug;class rf extends nf{static get type(){return"MeshPhysicalNodeMaterial"}constructor(e){super(),this.isMeshPhysicalNodeMaterial=!0,this.clearcoatNode=null,this.clearcoatRoughnessNode=null,this.clearcoatNormalNode=null,this.sheenNode=null,this.sheenRoughnessNode=null,this.iridescenceNode=null,this.iridescenceIORNode=null,this.iridescenceThicknessNode=null,this.specularIntensityNode=null,this.specularColorNode=null,this.iorNode=null,this.transmissionNode=null,this.thicknessNode=null,this.attenuationDistanceNode=null,this.attenuationColorNode=null,this.dispersionNode=null,this.anisotropyNode=null,this.setDefaultValues(jT),this.setValues(e)}get useClearcoat(){return this.clearcoat>0||this.clearcoatNode!==null}get useIridescence(){return this.iridescence>0||this.iridescenceNode!==null}get useSheen(){return this.sheen>0||this.sheenNode!==null}get useAnisotropy(){return this.anisotropy>0||this.anisotropyNode!==null}get useTransmission(){return this.transmission>0||this.transmissionNode!==null}get useDispersion(){return this.dispersion>0||this.dispersionNode!==null}setupSpecular(){const e=this.iorNode?g(this.iorNode):_p;wn.assign(e),We.assign(Q(Re(Ya(wn.sub(1).div(wn.add(1))).mul(rp),T(1)).mul(Yo),ee.rgb,kn)),Wn.assign(Q(Yo,1,kn))}setupLightingModel(){return new Su(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion)}setupVariants(e){if(super.setupVariants(e),this.useClearcoat){const t=this.clearcoatNode?g(this.clearcoatNode):up,s=this.clearcoatRoughnessNode?g(this.clearcoatRoughnessNode):cp;Kr.assign(t),zn.assign(bu({roughness:s}))}if(this.useSheen){const t=this.sheenNode?T(this.sheenNode):hp,s=this.sheenRoughnessNode?g(this.sheenRoughnessNode):pp;fs.assign(t),gi.assign(s)}if(this.useIridescence){const t=this.iridescenceNode?g(this.iridescenceNode):gp,s=this.iridescenceIORNode?g(this.iridescenceIORNode):mp,n=this.iridescenceThicknessNode?g(this.iridescenceThicknessNode):yp;mi.assign(t),Ua.assign(s),Pa.assign(n)}if(this.useAnisotropy){const t=(this.anisotropyNode?M(this.anisotropyNode):fp).toVar();Zt.assign(t.length()),z(Zt.equal(0),()=>{t.assign(M(1,0))}).Else(()=>{t.divAssign(M(Zt)),Zt.assign(Zt.saturate())}),Xr.assign(Zt.pow2().mix(Nt.pow2(),1)),En.assign(gs[0].mul(t.x).add(gs[1].mul(t.y))),_s.assign(gs[1].mul(t.x).sub(gs[0].mul(t.y)))}if(this.useTransmission){const t=this.transmissionNode?g(this.transmissionNode):xp,s=this.thicknessNode?g(this.thicknessNode):Tp,n=this.attenuationDistanceNode?g(this.attenuationDistanceNode):bp,r=this.attenuationColorNode?T(this.attenuationColorNode):Np;if(jr.assign(t),Da.assign(s),La.assign(n),Ia.assign(r),this.useDispersion){const i=this.dispersionNode?g(this.dispersionNode):vp;Va.assign(i)}}}setupClearcoatNormal(){return this.clearcoatNormalNode?T(this.clearcoatNormalNode):lp}setup(e){e.context.setupClearcoatNormal=()=>this.setupClearcoatNormal(e),super.setup(e)}copy(e){return this.clearcoatNode=e.clearcoatNode,this.clearcoatRoughnessNode=e.clearcoatRoughnessNode,this.clearcoatNormalNode=e.clearcoatNormalNode,this.sheenNode=e.sheenNode,this.sheenRoughnessNode=e.sheenRoughnessNode,this.iridescenceNode=e.iridescenceNode,this.iridescenceIORNode=e.iridescenceIORNode,this.iridescenceThicknessNode=e.iridescenceThicknessNode,this.specularIntensityNode=e.specularIntensityNode,this.specularColorNode=e.specularColorNode,this.transmissionNode=e.transmissionNode,this.thicknessNode=e.thicknessNode,this.attenuationDistanceNode=e.attenuationDistanceNode,this.attenuationColorNode=e.attenuationColorNode,this.dispersionNode=e.dispersionNode,this.anisotropyNode=e.anisotropyNode,super.copy(e)}}class QT extends Su{constructor(e=!1,t=!1,s=!1,n=!1,r=!1,i=!1,a=!1){super(e,t,s,n,r,i),this.useSSS=a}direct({lightDirection:e,lightColor:t,reflectedLight:s},n,r){if(this.useSSS===!0){const i=r.material,{thicknessColorNode:a,thicknessDistortionNode:u,thicknessAmbientNode:c,thicknessAttenuationNode:l,thicknessPowerNode:d,thicknessScaleNode:h}=i,p=e.add(fe.mul(u)).normalize(),f=g(ae.dot(p.negate()).saturate().pow(d).mul(h)),m=T(f.add(c).mul(a));s.directDiffuse.addAssign(m.mul(l.mul(t)))}super.direct({lightDirection:e,lightColor:t,reflectedLight:s},n,r)}}class pR extends rf{static get type(){return"MeshSSSNodeMaterial"}constructor(e){super(e),this.thicknessColorNode=null,this.thicknessDistortionNode=g(.1),this.thicknessAmbientNode=g(0),this.thicknessAttenuationNode=g(.1),this.thicknessPowerNode=g(2),this.thicknessScaleNode=g(10)}get useSSS(){return this.thicknessColorNode!==null}setupLightingModel(){return new QT(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion,this.useSSS)}copy(e){return this.thicknessColorNode=e.thicknessColorNode,this.thicknessDistortionNode=e.thicknessDistortionNode,this.thicknessAmbientNode=e.thicknessAmbientNode,this.thicknessAttenuationNode=e.thicknessAttenuationNode,this.thicknessPowerNode=e.thicknessPowerNode,this.thicknessScaleNode=e.thicknessScaleNode,super.copy(e)}}const ZT=b(({normal:o,lightDirection:e,builder:t})=>{const s=o.dot(e),n=M(s.mul(.5).add(.5),0);if(t.material.gradientMap){const r=dt("gradientMap","texture").context({getUV:()=>n});return T(r.r)}else{const r=n.fwidth().mul(.5);return Q(T(.7),T(1),ct(g(.7).sub(r.x),g(.7).add(r.x),n.x))}});class JT extends Ei{direct({lightDirection:e,lightColor:t,reflectedLight:s},n,r){const i=ZT({normal:Ni,lightDirection:e,builder:r}).mul(t);s.directDiffuse.addAssign(i.mul(Ns({diffuseColor:ee.rgb})))}indirect({ambientOcclusion:e,irradiance:t,reflectedLight:s}){s.indirectDiffuse.addAssign(t.mul(Ns({diffuseColor:ee}))),s.indirectDiffuse.mulAssign(e)}}const e_=new Dg;class t_ extends ce{static get type(){return"MeshToonNodeMaterial"}constructor(e){super(),this.isMeshToonNodeMaterial=!0,this.lights=!0,this.setDefaultValues(e_),this.setValues(e)}setupLightingModel(){return new JT}}class s_ extends be{static get type(){return"MatcapUVNode"}constructor(){super("vec2")}setup(){const e=T(ae.z,0,ae.x.negate()).normalize(),t=ae.cross(e);return M(e.dot(fe),t.dot(fe)).mul(.495).add(.5)}}const of=U(s_),n_=new Mg;class r_ extends ce{static get type(){return"MeshMatcapNodeMaterial"}constructor(e){super(),this.isMeshMatcapNodeMaterial=!0,this.setDefaultValues(n_),this.setValues(e)}setupVariants(e){const t=of;let s;e.material.matcap?s=dt("matcap","texture").context({getUV:()=>t}):s=T(Q(.2,.8,t.y)),ee.rgb.mulAssign(s.rgb)}}const i_=new hl;class o_ extends ce{static get type(){return"PointsNodeMaterial"}constructor(e){super(),this.isPointsNodeMaterial=!0,this.setDefaultValues(i_),this.setValues(e)}}class a_ extends be{static get type(){return"RotateNode"}constructor(e,t){super(),this.positionNode=e,this.rotationNode=t}getNodeType(e){return this.positionNode.getNodeType(e)}setup(e){const{rotationNode:t,positionNode:s}=this;if(this.getNodeType(e)==="vec2"){const r=t.cos(),i=t.sin();return fi(r,i,i.negate(),r).mul(s)}else{const r=t,i=Ts(P(1,0,0,0),P(0,It(r.x),st(r.x).negate(),0),P(0,st(r.x),It(r.x),0),P(0,0,0,1)),a=Ts(P(It(r.y),0,st(r.y),0),P(0,1,0,0),P(st(r.y).negate(),0,It(r.y),0),P(0,0,0,1)),u=Ts(P(It(r.z),st(r.z).negate(),0,0),P(st(r.z),It(r.z),0,0),P(0,0,1,0),P(0,0,0,1));return i.mul(a).mul(u).mul(P(s,1)).xyz}}}const Au=C(a_),u_=new Hg;class c_ extends ce{static get type(){return"SpriteNodeMaterial"}constructor(e){super(),this.isSpriteNodeMaterial=!0,this._useSizeAttenuation=!0,this.positionNode=null,this.rotationNode=null,this.scaleNode=null,this.setDefaultValues(u_),this.setValues(e)}setupPositionView(e){const{object:t,camera:s}=e,n=this.sizeAttenuation,{positionNode:r,rotationNode:i,scaleNode:a}=this,u=Kt.mul(T(r||0));let c=M(at[0].xyz.length(),at[1].xyz.length());if(a!==null&&(c=c.mul(a)),n===!1)if(s.isPerspectiveCamera)c=c.mul(u.z.negate());else{const p=g(2).div(He.element(1).element(1));c=c.mul(p.mul(2))}let l=Ce.xy;if(t.center&&t.center.isVector2===!0){const p=By("center","vec2",t);l=l.sub(p.sub(.5))}l=l.mul(c);const d=g(i||dp),h=Au(l,d);return P(u.xy.add(h),u.zw)}copy(e){return this.positionNode=e.positionNode,this.rotationNode=e.rotationNode,this.scaleNode=e.scaleNode,super.copy(e)}get sizeAttenuation(){return this._useSizeAttenuation}set sizeAttenuation(e){this._useSizeAttenuation!==e&&(this._useSizeAttenuation=e,this.needsUpdate=!0)}}class l_ extends Ei{constructor(){super(),this.shadowNode=g(1).toVar("shadowMask")}direct({shadowMask:e}){this.shadowNode.mulAssign(e)}finish(e){ee.a.mulAssign(this.shadowNode.oneMinus()),e.outgoingLight.rgb.assign(ee.rgb)}}const d_=new $g;class h_ extends ce{static get type(){return"ShadowNodeMaterial"}constructor(e){super(),this.isShadowNodeMaterial=!0,this.lights=!0,this.setDefaultValues(d_),this.setValues(e)}setupLightingModel(){return new l_}}const p_=b(({texture:o,uv:e})=>{const s=T().toVar();return z(e.x.lessThan(1e-4),()=>{s.assign(T(1,0,0))}).ElseIf(e.y.lessThan(1e-4),()=>{s.assign(T(0,1,0))}).ElseIf(e.z.lessThan(1e-4),()=>{s.assign(T(0,0,1))}).ElseIf(e.x.greaterThan(1-1e-4),()=>{s.assign(T(-1,0,0))}).ElseIf(e.y.greaterThan(1-1e-4),()=>{s.assign(T(0,-1,0))}).ElseIf(e.z.greaterThan(1-1e-4),()=>{s.assign(T(0,0,-1))}).Else(()=>{const r=o.sample(e.add(T(-.01,0,0))).r.sub(o.sample(e.add(T(.01,0,0))).r),i=o.sample(e.add(T(0,-.01,0))).r.sub(o.sample(e.add(T(0,.01,0))).r),a=o.sample(e.add(T(0,0,-.01))).r.sub(o.sample(e.add(T(0,0,.01))).r);s.assign(T(r,i,a))}),s.normalize()});class f_ extends wt{static get type(){return"Texture3DNode"}constructor(e,t=null,s=null){super(e,t,s),this.isTexture3DNode=!0}getInputType(){return"texture3D"}getDefaultUV(){return T(.5,.5,.5)}setUpdateMatrix(){}setupUV(e,t){const s=this.value;return e.isFlipY()&&(s.isRenderTargetTexture===!0||s.isFramebufferTexture===!0)&&(this.sampler?t=t.flipY():t=t.setY(y(ns(this,this.levelNode).y).sub(t.y).sub(1))),t}generateUV(e,t){return t.build(e,"vec3")}normal(e){return p_({texture:this,uv:e})}}const af=C(f_);class fR extends ce{static get type(){return"VolumeNodeMaterial"}constructor(e){super(),this.isVolumeNodeMaterial=!0,this.base=new mt(16777215),this.map=null,this.steps=100,this.testNode=null,this.setValues(e)}setup(e){const t=af(this.map,null,0),s=b(({orig:n,dir:r})=>{const i=T(-.5),a=T(.5),u=r.reciprocal(),c=i.sub(n).mul(u),l=a.sub(n).mul(u),d=Re(c,l),h=ue(c,l),p=ue(d.x,ue(d.y,d.z)),f=Re(h.x,Re(h.y,h.z));return M(p,f)});this.fragmentNode=b(()=>{const n=ke(T(Ih.mul(P(su,1)))),i=ke(Ce.sub(n)).normalize(),a=M(s({orig:n,dir:i})).toVar();a.x.greaterThan(a.y).discard(),a.assign(M(ue(a.x,0),a.y));const u=T(n.add(a.x.mul(i))).toVar(),c=T(i.abs().reciprocal()).toVar(),l=g(Re(c.x,Re(c.y,c.z))).toVar("delta");l.divAssign(dt("steps","float"));const d=P(dt("base","color"),0).toVar();return te({type:"float",start:a.x,end:a.y,update:"+= delta"},()=>{const h=Fa("float","d").assign(t.sample(u.add(.5)).r);this.testNode!==null?this.testNode({map:t,mapValue:h,probe:u,finalColor:d}).append():(d.a.assign(1),pu()),u.addAssign(i.mul(l))}),d.a.equal(0).discard(),P(d)})(),super.setup(e)}}class g_{constructor(e,t){this.nodes=e,this.info=t,this._context=self,this._animationLoop=null,this._requestId=null}start(){const e=(t,s)=>{this._requestId=this._context.requestAnimationFrame(e),this.info.autoReset===!0&&this.info.reset(),this.nodes.nodeFrame.update(),this.info.frame=this.nodes.nodeFrame.frameId,this._animationLoop!==null&&this._animationLoop(t,s)};e()}stop(){this._context.cancelAnimationFrame(this._requestId),this._requestId=null}setAnimationLoop(e){this._animationLoop=e}setContext(e){this._context=e}dispose(){this.stop()}}class Ft{constructor(){this.weakMap=new WeakMap}get(e){let t=this.weakMap;for(let s=0;s{this.dispose()},this.material.addEventListener("dispose",this.onMaterialDispose)}updateClipping(e){this.clippingContext=e}get clippingNeedsUpdate(){return this.clippingContext===null||this.clippingContext.cacheKey===this.clippingContextCacheKey?!1:(this.clippingContextCacheKey=this.clippingContext.cacheKey,!0)}get hardwareClippingPlanes(){return this.material.hardwareClipping===!0?this.clippingContext.unionClippingCount:0}getNodeBuilderState(){return this._nodeBuilderState||(this._nodeBuilderState=this._nodes.getForRender(this))}getMonitor(){return this._monitor||(this._monitor=this.getNodeBuilderState().monitor)}getBindings(){return this._bindings||(this._bindings=this.getNodeBuilderState().createBindings())}getIndex(){return this._geometries.getIndex(this)}getIndirect(){return this._geometries.getIndirect(this)}getChainArray(){return[this.object,this.material,this.context,this.lightsNode]}setGeometry(e){this.geometry=e,this.attributes=null}getAttributes(){if(this.attributes!==null)return this.attributes;const e=this.getNodeBuilderState().nodeAttributes,t=this.geometry,s=[],n=new Set;for(const r of e){const i=r.node&&r.node.attribute?r.node.attribute:t.getAttribute(r.name);if(i===void 0)continue;s.push(i);const a=i.isInterleavedBufferAttribute?i.data:i;n.add(a)}return this.attributes=s,this.vertexBuffers=Array.from(n.values()),s}getVertexBuffers(){return this.vertexBuffers===null&&this.getAttributes(),this.vertexBuffers}getDrawParameters(){const{object:e,material:t,geometry:s,group:n,drawRange:r}=this,i=this.drawParams||(this.drawParams={vertexCount:0,firstVertex:0,instanceCount:0,firstInstance:0}),a=this.getIndex(),u=a!==null,c=s.isInstancedBufferGeometry?s.instanceCount:e.count>1?e.count:1;if(c===0)return null;if(i.instanceCount=c,e.isBatchedMesh===!0)return i;let l=1;t.wireframe===!0&&!e.isPoints&&!e.isLineSegments&&!e.isLine&&!e.isLineLoop&&(l=2);let d=r.start*l,h=(r.start+r.count)*l;n!==null&&(d=Math.max(d,n.start*l),h=Math.min(h,(n.start+n.count)*l));const p=s.attributes.position;let f=1/0;u?f=a.count:p!=null&&(f=p.count),d=Math.max(d,0),h=Math.min(h,f);const m=h-d;return m<0||m===1/0?null:(i.vertexCount=m,i.firstVertex=d,i)}getGeometryCacheKey(){const{geometry:e}=this;let t="";for(const s of Object.keys(e.attributes).sort()){const n=e.attributes[s];t+=s+",",n.data&&(t+=n.data.stride+","),n.offset&&(t+=n.offset+","),n.itemSize&&(t+=n.itemSize+","),n.normalized&&(t+="n,")}return e.index&&(t+="index,"),t}getMaterialCacheKey(){const{object:e,material:t}=this;let s=t.customProgramCacheKey();for(const n of y_(t)){if(/^(is[A-Z]|_)|^(visible|version|uuid|name|opacity|userData)$/.test(n))continue;const r=t[n];let i;if(r!==null){const a=typeof r;a==="number"?i=r!==0?"1":"0":a==="object"?(i="{",r.isTexture&&(i+=r.mapping),i+="}"):i=String(r)}else i=String(r);s+=i+","}return s+=this.clippingContextCacheKey+",",e.geometry&&(s+=this.getGeometryCacheKey()),e.skeleton&&(s+=e.skeleton.bones.length+","),e.morphTargetInfluences&&(s+=e.morphTargetInfluences.length+","),e.isBatchedMesh&&(s+=e._matricesTexture.uuid+",",e._colorsTexture!==null&&(s+=e._colorsTexture.uuid+",")),e.count>1&&(s+=e.uuid+","),s+=e.receiveShadow+",",ga(s)}get needsGeometryUpdate(){return this.geometry.id!==this.object.geometry.id}get needsUpdate(){return this.initialNodesCacheKey!==this.getDynamicCacheKey()||this.clippingNeedsUpdate}getDynamicCacheKey(){let e=this._nodes.getCacheKey(this.scene,this.lightsNode);return this.object.receiveShadow&&(e+=1),e}getCacheKey(){return this.getMaterialCacheKey()+this.getDynamicCacheKey()}dispose(){this.material.removeEventListener("dispose",this.onMaterialDispose),this.onDispose()}}const Bs=[];class T_{constructor(e,t,s,n,r,i){this.renderer=e,this.nodes=t,this.geometries=s,this.pipelines=n,this.bindings=r,this.info=i,this.chainMaps={}}get(e,t,s,n,r,i,a,u){const c=this.getChainMap(u);Bs[0]=e,Bs[1]=t,Bs[2]=i,Bs[3]=r;let l=c.get(Bs);return l===void 0?(l=this.createRenderObject(this.nodes,this.geometries,this.renderer,e,t,s,n,r,i,a,u),c.set(Bs,l)):(l.updateClipping(a),l.needsGeometryUpdate&&l.setGeometry(e.geometry),(l.version!==t.version||l.needsUpdate)&&(l.initialCacheKey!==l.getCacheKey()?(l.dispose(),l=this.get(e,t,s,n,r,i,a,u)):l.version=t.version)),l}getChainMap(e="default"){return this.chainMaps[e]||(this.chainMaps[e]=new Ft)}dispose(){this.chainMaps={}}createRenderObject(e,t,s,n,r,i,a,u,c,l,d){const h=this.getChainMap(d),p=new x_(e,t,s,n,r,i,a,u,c,l);return p.onDispose=()=>{this.pipelines.delete(p),this.bindings.delete(p),this.nodes.delete(p),h.delete(p.getChainArray())},p}}class os{constructor(){this.data=new WeakMap}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}delete(e){let t=null;return this.data.has(e)&&(t=this.data.get(e),this.data.delete(e)),t}has(e){return this.data.has(e)}dispose(){this.data=new WeakMap}}const St={VERTEX:1,INDEX:2,STORAGE:3,INDIRECT:4},ts=16,__=211,b_=212;class N_ extends os{constructor(e){super(),this.backend=e}delete(e){const t=super.delete(e);return t!==void 0&&this.backend.destroyAttribute(e),t}update(e,t){const s=this.get(e);if(s.version===void 0)t===St.VERTEX?this.backend.createAttribute(e):t===St.INDEX?this.backend.createIndexAttribute(e):t===St.STORAGE?this.backend.createStorageAttribute(e):t===St.INDIRECT&&this.backend.createIndirectStorageAttribute(e),s.version=this._getBufferAttribute(e).version;else{const n=this._getBufferAttribute(e);(s.version=0;--e)if(o[e]>=65535)return!0;return!1}function uf(o){return o.index!==null?o.index.version:o.attributes.position.version}function Bc(o){const e=[],t=o.index,s=o.attributes.position;if(t!==null){const r=t.array;for(let i=0,a=r.length;i{this.info.memory.geometries--;const r=t.index,i=e.getAttributes();r!==null&&this.attributes.delete(r);for(const u of i)this.attributes.delete(u);const a=this.wireframes.get(t);a!==void 0&&this.attributes.delete(a),t.removeEventListener("dispose",n)};t.addEventListener("dispose",n)}updateAttributes(e){const t=e.getAttributes();for(const r of t)r.isStorageBufferAttribute||r.isStorageInstancedBufferAttribute?this.updateAttribute(r,St.STORAGE):this.updateAttribute(r,St.VERTEX);const s=this.getIndex(e);s!==null&&this.updateAttribute(s,St.INDEX);const n=e.geometry.indirect;n!==null&&this.updateAttribute(n,St.INDIRECT)}updateAttribute(e,t){const s=this.info.render.calls;e.isInterleavedBufferAttribute?this.attributeCall.get(e)===void 0?(this.attributes.update(e,t),this.attributeCall.set(e,s)):this.attributeCall.get(e.data)!==s&&(this.attributes.update(e,t),this.attributeCall.set(e.data,s),this.attributeCall.set(e,s)):this.attributeCall.get(e)!==s&&(this.attributes.update(e,t),this.attributeCall.set(e,s))}getIndirect(e){return e.geometry.indirect}getIndex(e){const{geometry:t,material:s}=e;let n=t.index;if(s.wireframe===!0){const r=this.wireframes;let i=r.get(t);i===void 0?(i=Bc(t),r.set(t,i)):i.version!==uf(t)&&(this.attributes.delete(i),i=Bc(t),r.set(t,i)),n=i}return n}}class A_{constructor(){this.autoReset=!0,this.frame=0,this.calls=0,this.render={calls:0,frameCalls:0,drawCalls:0,triangles:0,points:0,lines:0,timestamp:0,previousFrameCalls:0,timestampCalls:0},this.compute={calls:0,frameCalls:0,timestamp:0,previousFrameCalls:0,timestampCalls:0},this.memory={geometries:0,textures:0}}update(e,t,s){this.render.drawCalls++,e.isMesh||e.isSprite?this.render.triangles+=s*(t/3):e.isPoints?this.render.points+=s*t:e.isLineSegments?this.render.lines+=s*(t/2):e.isLine?this.render.lines+=s*(t-1):console.error("THREE.WebGPUInfo: Unknown object type.")}updateTimestamp(e,t){this[e].timestampCalls===0&&(this[e].timestamp=0),this[e].timestamp+=t,this[e].timestampCalls++,this[e].timestampCalls>=this[e].previousFrameCalls&&(this[e].timestampCalls=0)}reset(){const e=this.render.frameCalls;this.render.previousFrameCalls=e;const t=this.compute.frameCalls;this.compute.previousFrameCalls=t,this.render.drawCalls=0,this.render.frameCalls=0,this.compute.frameCalls=0,this.render.triangles=0,this.render.points=0,this.render.lines=0}dispose(){this.reset(),this.calls=0,this.render.calls=0,this.compute.calls=0,this.render.timestamp=0,this.compute.timestamp=0,this.memory.geometries=0,this.memory.textures=0}}class cf{constructor(e){this.cacheKey=e,this.usedTimes=0}}class R_ extends cf{constructor(e,t,s){super(e),this.vertexProgram=t,this.fragmentProgram=s}}class C_ extends cf{constructor(e,t){super(e),this.computeProgram=t,this.isComputePipeline=!0}}let E_=0;class Xi{constructor(e,t,s,n=null,r=null){this.id=E_++,this.code=e,this.stage=t,this.name=s,this.transforms=n,this.attributes=r,this.usedTimes=0}}class w_ extends os{constructor(e,t){super(),this.backend=e,this.nodes=t,this.bindings=null,this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}getForCompute(e,t){const{backend:s}=this,n=this.get(e);if(this._needsComputeUpdate(e)){const r=n.pipeline;r&&(r.usedTimes--,r.computeProgram.usedTimes--);const i=this.nodes.getForCompute(e);let a=this.programs.compute.get(i.computeShader);a===void 0&&(r&&r.computeProgram.usedTimes===0&&this._releaseProgram(r.computeProgram),a=new Xi(i.computeShader,"compute",e.name,i.transforms,i.nodeAttributes),this.programs.compute.set(i.computeShader,a),s.createProgram(a));const u=this._getComputeCacheKey(e,a);let c=this.caches.get(u);c===void 0&&(r&&r.usedTimes===0&&this._releasePipeline(r),c=this._getComputePipeline(e,a,u,t)),c.usedTimes++,a.usedTimes++,n.version=e.version,n.pipeline=c}return n.pipeline}getForRender(e,t=null){const{backend:s}=this,n=this.get(e);if(this._needsRenderUpdate(e)){const r=n.pipeline;r&&(r.usedTimes--,r.vertexProgram.usedTimes--,r.fragmentProgram.usedTimes--);const i=e.getNodeBuilderState(),a=e.material?e.material.name:"";let u=this.programs.vertex.get(i.vertexShader);u===void 0&&(r&&r.vertexProgram.usedTimes===0&&this._releaseProgram(r.vertexProgram),u=new Xi(i.vertexShader,"vertex",a),this.programs.vertex.set(i.vertexShader,u),s.createProgram(u));let c=this.programs.fragment.get(i.fragmentShader);c===void 0&&(r&&r.fragmentProgram.usedTimes===0&&this._releaseProgram(r.fragmentProgram),c=new Xi(i.fragmentShader,"fragment",a),this.programs.fragment.set(i.fragmentShader,c),s.createProgram(c));const l=this._getRenderCacheKey(e,u,c);let d=this.caches.get(l);d===void 0?(r&&r.usedTimes===0&&this._releasePipeline(r),d=this._getRenderPipeline(e,u,c,l,t)):e.pipeline=d,d.usedTimes++,u.usedTimes++,c.usedTimes++,n.pipeline=d}return n.pipeline}delete(e){const t=this.get(e).pipeline;return t&&(t.usedTimes--,t.usedTimes===0&&this._releasePipeline(t),t.isComputePipeline?(t.computeProgram.usedTimes--,t.computeProgram.usedTimes===0&&this._releaseProgram(t.computeProgram)):(t.fragmentProgram.usedTimes--,t.vertexProgram.usedTimes--,t.vertexProgram.usedTimes===0&&this._releaseProgram(t.vertexProgram),t.fragmentProgram.usedTimes===0&&this._releaseProgram(t.fragmentProgram))),super.delete(e)}dispose(){super.dispose(),this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}updateForRender(e){this.getForRender(e)}_getComputePipeline(e,t,s,n){s=s||this._getComputeCacheKey(e,t);let r=this.caches.get(s);return r===void 0&&(r=new C_(s,t),this.caches.set(s,r),this.backend.createComputePipeline(r,n)),r}_getRenderPipeline(e,t,s,n,r){n=n||this._getRenderCacheKey(e,t,s);let i=this.caches.get(n);return i===void 0&&(i=new R_(n,t,s),this.caches.set(n,i),e.pipeline=i,this.backend.createRenderPipeline(e,r)),i}_getComputeCacheKey(e,t){return e.id+","+t.id}_getRenderCacheKey(e,t,s){return t.id+","+s.id+","+this.backend.getRenderCacheKey(e)}_releasePipeline(e){this.caches.delete(e.cacheKey)}_releaseProgram(e){const t=e.code,s=e.stage;this.programs[s].delete(t)}_needsComputeUpdate(e){const t=this.get(e);return t.pipeline===void 0||t.version!==e.version}_needsRenderUpdate(e){return this.get(e).pipeline===void 0||this.backend.needsRenderUpdate(e)}}class M_ extends os{constructor(e,t,s,n,r,i){super(),this.backend=e,this.textures=s,this.pipelines=r,this.attributes=n,this.nodes=t,this.info=i,this.pipelines.bindings=this}getForRender(e){const t=e.getBindings();for(const s of t){const n=this.get(s);n.bindGroup===void 0&&(this._init(s),this.backend.createBindings(s,t,0),n.bindGroup=s)}return t}getForCompute(e){const t=this.nodes.getForCompute(e).bindings;for(const s of t){const n=this.get(s);n.bindGroup===void 0&&(this._init(s),this.backend.createBindings(s,t,0),n.bindGroup=s)}return t}updateForCompute(e){this._updateBindings(this.getForCompute(e))}updateForRender(e){this._updateBindings(this.getForRender(e))}_updateBindings(e){for(const t of e)this._update(t,e)}_init(e){for(const t of e.bindings)if(t.isSampledTexture)this.textures.updateTexture(t.texture);else if(t.isStorageBuffer){const s=t.attribute,n=s.isIndirectStorageBufferAttribute?St.INDIRECT:St.STORAGE;this.attributes.update(s,n)}}_update(e,t){const{backend:s}=this;let n=!1,r=!0,i=0,a=0;for(const u of e.bindings)if(!(u.isNodeUniformsGroup&&this.nodes.updateGroup(u)===!1)){if(u.isUniformBuffer)u.update()&&s.updateBinding(u);else if(u.isSampler)u.update();else if(u.isSampledTexture){const c=this.textures.get(u.texture);u.needsBindingsUpdate(c.generation)&&(n=!0);const l=u.update(),d=u.texture;l&&this.textures.updateTexture(d);const h=s.get(d);if(h.externalTexture!==void 0||c.isDefaultTexture?r=!1:(i=i*10+d.id,a+=d.version),s.isWebGPUBackend===!0&&h.texture===void 0&&h.externalTexture===void 0&&(console.error("Bindings._update: binding should be available:",u,l,d,u.textureNode.value,n),this.textures.updateTexture(d),n=!0),d.isStorageTexture===!0){const p=this.get(d);u.store===!0?p.needsMipmap=!0:this.textures.needsMipmaps(d)&&p.needsMipmap===!0&&(this.backend.generateMipmaps(d),p.needsMipmap=!1)}}}n===!0&&this.backend.updateBindings(e,t,r?i:0,a)}}function B_(o,e){return o.groupOrder!==e.groupOrder?o.groupOrder-e.groupOrder:o.renderOrder!==e.renderOrder?o.renderOrder-e.renderOrder:o.material.id!==e.material.id?o.material.id-e.material.id:o.z!==e.z?o.z-e.z:o.id-e.id}function Fc(o,e){return o.groupOrder!==e.groupOrder?o.groupOrder-e.groupOrder:o.renderOrder!==e.renderOrder?o.renderOrder-e.renderOrder:o.z!==e.z?e.z-o.z:o.id-e.id}function Uc(o){return(o.transmission>0||o.transmissionNode)&&o.side===js&&o.forceSinglePass===!1}class F_{constructor(e,t,s){this.renderItems=[],this.renderItemsIndex=0,this.opaque=[],this.transparentDoublePass=[],this.transparent=[],this.bundles=[],this.lightsNode=e.getNode(t,s),this.lightsArray=[],this.scene=t,this.camera=s,this.occlusionQueryCount=0}begin(){return this.renderItemsIndex=0,this.opaque.length=0,this.transparentDoublePass.length=0,this.transparent.length=0,this.bundles.length=0,this.lightsArray.length=0,this.occlusionQueryCount=0,this}getNextRenderItem(e,t,s,n,r,i,a){let u=this.renderItems[this.renderItemsIndex];return u===void 0?(u={id:e.id,object:e,geometry:t,material:s,groupOrder:n,renderOrder:e.renderOrder,z:r,group:i,clippingContext:a},this.renderItems[this.renderItemsIndex]=u):(u.id=e.id,u.object=e,u.geometry=t,u.material=s,u.groupOrder=n,u.renderOrder=e.renderOrder,u.z=r,u.group=i,u.clippingContext=a),this.renderItemsIndex++,u}push(e,t,s,n,r,i,a){const u=this.getNextRenderItem(e,t,s,n,r,i,a);e.occlusionTest===!0&&this.occlusionQueryCount++,s.transparent===!0||s.transmission>0?(Uc(s)&&this.transparentDoublePass.push(u),this.transparent.push(u)):this.opaque.push(u)}unshift(e,t,s,n,r,i,a){const u=this.getNextRenderItem(e,t,s,n,r,i,a);s.transparent===!0||s.transmission>0?(Uc(s)&&this.transparentDoublePass.unshift(u),this.transparent.unshift(u)):this.opaque.unshift(u)}pushBundle(e){this.bundles.push(e)}pushLight(e){this.lightsArray.push(e)}sort(e,t){this.opaque.length>1&&this.opaque.sort(e||B_),this.transparentDoublePass.length>1&&this.transparentDoublePass.sort(t||Fc),this.transparent.length>1&&this.transparent.sort(t||Fc)}finish(){this.lightsNode.setLights(this.lightsArray);for(let e=this.renderItemsIndex,t=this.renderItems.length;e>t,c=a.height>>t;let l=e.depthTexture||r[t];const d=e.depthBuffer===!0||e.stencilBuffer===!0;let h=!1;l===void 0&&d&&(l=new vs,l.format=e.stencilBuffer?oi:ai,l.type=e.stencilBuffer?ui:Le,l.image.width=u,l.image.height=c,r[t]=l),(s.width!==a.width||a.height!==s.height)&&(h=!0,l&&(l.needsUpdate=!0,l.image.width=u,l.image.height=c)),s.width=a.width,s.height=a.height,s.textures=i,s.depthTexture=l||null,s.depth=e.depthBuffer,s.stencil=e.stencilBuffer,s.renderTarget=e,s.sampleCount!==n&&(h=!0,l&&(l.needsUpdate=!0),s.sampleCount=n);const p={sampleCount:n};for(let f=0;f{e.removeEventListener("dispose",f);for(let m=0;m0){const l=e.image;if(l===void 0)console.warn("THREE.Renderer: Texture marked for update but image is undefined.");else if(l.complete===!1)console.warn("THREE.Renderer: Texture marked for update but image is incomplete.");else{if(e.images){const d=[];for(const h of e.images)d.push(h);t.images=d}else t.image=l;(s.isDefaultTexture===void 0||s.isDefaultTexture===!0)&&(r.createTexture(e,t),s.isDefaultTexture=!1,s.generation=e.version),e.source.dataReady===!0&&r.updateTexture(e,t),t.needsMipmaps&&e.mipmaps.length===0&&r.generateMipmaps(e)}}else r.createDefaultTexture(e),s.isDefaultTexture=!0,s.generation=e.version;if(s.initialized!==!0){s.initialized=!0,s.generation=e.version,this.info.memory.textures++;const c=()=>{e.removeEventListener("dispose",c),this._destroyTexture(e),this.info.memory.textures--};e.addEventListener("dispose",c)}s.version=e.version}getSize(e,t=I_){let s=e.images?e.images[0]:e.image;return s?(s.image!==void 0&&(s=s.image),t.width=s.width||1,t.height=s.height||1,t.depth=e.isCubeTexture?6:s.depth||1):t.width=t.height=t.depth=1,t}getMipLevels(e,t,s){let n;return e.isCompressedTexture?e.mipmaps?n=e.mipmaps.length:n=1:n=Math.floor(Math.log2(Math.max(t,s)))+1,n}needsMipmaps(e){return this.isEnvironmentTexture(e)||e.isCompressedTexture===!0||e.generateMipmaps}isEnvironmentTexture(e){const t=e.mapping;return t===jn||t===Qn||t===Zs||t===Js}_destroyTexture(e){this.backend.destroySampler(e),this.backend.destroyTexture(e),this.delete(e)}}class Ru extends mt{constructor(e,t,s,n=1){super(e,t,s),this.a=n}set(e,t,s,n=1){return this.a=n,super.set(e,t,s)}copy(e){return e.a!==void 0&&(this.a=e.a),super.copy(e)}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}}class df extends se{static get type(){return"ParameterNode"}constructor(e,t=null){super(e,t),this.isParameterNode=!0}getHash(){return this.uuid}generate(){return this.name}}const G_=(o,e)=>E(new df(o,e));class O_ extends O{static get type(){return"StackNode"}constructor(e=null){super(),this.nodes=[],this.outputNode=null,this.parent=e,this._currentCond=null,this.isStackNode=!0}getNodeType(e){return this.outputNode?this.outputNode.getNodeType(e):"void"}add(e){return this.nodes.push(e),this}If(e,t){const s=new Cn(t);return this._currentCond=Ue(e,s),this.add(this._currentCond)}ElseIf(e,t){const s=new Cn(t),n=Ue(e,s);return this._currentCond.elseNode=n,this._currentCond=n,this}Else(e){return this._currentCond.elseNode=new Cn(e),this}build(e,...t){const s=Ea();On(this);for(const n of this.nodes)n.build(e,"void");return On(s),this.outputNode?this.outputNode.build(e,...t):super.build(e,...t)}else(...e){return console.warn("TSL.StackNode: .else() has been renamed to .Else()."),this.Else(...e)}elseif(...e){return console.warn("TSL.StackNode: .elseif() has been renamed to .ElseIf()."),this.ElseIf(...e)}}const kr=C(O_);class hf extends O{static get type(){return"OutputStructNode"}constructor(...e){super(),this.members=e,this.isOutputStructNode=!0}setup(e){super.setup(e);const t=this.members,s=[];for(let n=0;n{const e=o.toUint().mul(747796405).add(2891336453),t=e.shiftRight(e.shiftRight(28).add(4)).bitXor(e).mul(277803737);return t.shiftRight(22).bitXor(t).toFloat().mul(1/2**32)}),ta=(o,e)=>ht($(4,o.mul(Y(1,o))),e),$_=(o,e)=>o.lessThan(.5)?ta(o.mul(2),e).div(2):Y(1,ta($(Y(1,o),2),e).div(2)),H_=(o,e,t)=>ht(gt(ht(o,e),_e(ht(o,e),ht(Y(1,o),t))),1/e),q_=(o,e)=>st(Qr.mul(e.mul(o).sub(1))).div(Qr.mul(e.mul(o).sub(1))),Vt=b(([o])=>o.fract().sub(.5).abs()).setLayout({name:"tri",type:"float",inputs:[{name:"x",type:"float"}]}),K_=b(([o])=>T(Vt(o.z.add(Vt(o.y.mul(1)))),Vt(o.z.add(Vt(o.x.mul(1)))),Vt(o.y.add(Vt(o.x.mul(1)))))).setLayout({name:"tri3",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),X_=b(([o,e,t])=>{const s=T(o).toVar(),n=g(1.4).toVar(),r=g(0).toVar(),i=T(s).toVar();return te({start:g(0),end:g(3),type:"float",condition:"<="},()=>{const a=T(K_(i.mul(2))).toVar();s.addAssign(a.add(t.mul(g(.1).mul(e)))),i.mulAssign(1.8),n.mulAssign(1.5),s.mulAssign(1.2);const u=g(Vt(s.z.add(Vt(s.x.add(Vt(s.y)))))).toVar();r.addAssign(u.div(n)),i.addAssign(.14)}),r}).setLayout({name:"triNoise3D",type:"float",inputs:[{name:"position",type:"vec3"},{name:"speed",type:"float"},{name:"time",type:"float"}]});class Y_ extends O{static get type(){return"FunctionOverloadingNode"}constructor(e=[],...t){super(),this.functionNodes=e,this.parametersNodes=t,this._candidateFnCall=null,this.global=!0}getNodeType(){return this.functionNodes[0].shaderNode.layout.type}setup(e){const t=this.parametersNodes;let s=this._candidateFnCall;if(s===null){let n=null,r=-1;for(const i of this.functionNodes){const u=i.shaderNode.layout;if(u===null)throw new Error("FunctionOverloadingNode: FunctionNode must be a layout.");const c=u.inputs;if(t.length===c.length){let l=0;for(let d=0;dr&&(n=i,r=l)}}this._candidateFnCall=s=n(...t)}return s}}const j_=C(Y_),Pe=o=>(...e)=>j_(o,...e),Cs=V(0).setGroup(k).onRenderUpdate(o=>o.time),gf=V(0).setGroup(k).onRenderUpdate(o=>o.deltaTime),Q_=V(0,"uint").setGroup(k).onRenderUpdate(o=>o.frameId),Z_=(o=1)=>(console.warn('TSL: timerLocal() is deprecated. Use "time" instead.'),Cs.mul(o)),J_=(o=1)=>(console.warn('TSL: timerGlobal() is deprecated. Use "time" instead.'),Cs.mul(o)),eb=(o=1)=>(console.warn('TSL: timerDelta() is deprecated. Use "deltaTime" instead.'),gf.mul(o)),tb=(o=Cs)=>o.add(.75).mul(Math.PI*2).sin().mul(.5).add(.5),sb=(o=Cs)=>o.fract().round(),nb=(o=Cs)=>o.add(.5).fract().mul(2).sub(1).abs(),rb=(o=Cs)=>o.fract(),ib=b(([o,e,t=M(.5)])=>Au(o.sub(t),e).add(t)),ob=b(([o,e,t=M(.5)])=>{const s=o.sub(t),n=s.dot(s),i=n.mul(n).mul(e);return o.add(s.mul(i))}),ab=b(({position:o=null,horizontal:e=!0,vertical:t=!1})=>{let s;o!==null?(s=at.toVar(),s[3][0]=o.x,s[3][1]=o.y,s[3][2]=o.z):s=at;const n=je.mul(s);return Gn(e)&&(n[0][0]=at[0].length(),n[0][1]=0,n[0][2]=0),Gn(t)&&(n[1][0]=0,n[1][1]=at[1].length(),n[1][2]=0),n[2][0]=0,n[2][1]=0,n[2][2]=1,He.mul(n).mul(me)}),ub=b(([o=null])=>{const e=ei();return ei(gu(o)).sub(e).lessThan(0).select(Bt,o)});class cb extends O{static get type(){return"SpriteSheetUVNode"}constructor(e,t=le(),s=g(0)){super("vec2"),this.countNode=e,this.uvNode=t,this.frameNode=s}setup(){const{frameNode:e,uvNode:t,countNode:s}=this,{width:n,height:r}=s,i=e.mod(n.mul(r)).floor(),a=i.mod(n),u=r.sub(i.add(1).div(n).ceil()),c=s.reciprocal(),l=M(a,u);return t.add(l).mul(c)}}const lb=C(cb);class db extends O{static get type(){return"TriplanarTexturesNode"}constructor(e,t=null,s=null,n=g(1),r=me,i=Xe){super("vec4"),this.textureXNode=e,this.textureYNode=t,this.textureZNode=s,this.scaleNode=n,this.positionNode=r,this.normalNode=i}setup(){const{textureXNode:e,textureYNode:t,textureZNode:s,scaleNode:n,positionNode:r,normalNode:i}=this;let a=i.abs().normalize();a=a.div(a.dot(T(1)));const u=r.yz.mul(n),c=r.zx.mul(n),l=r.xy.mul(n),d=e.value,h=t!==null?t.value:d,p=s!==null?s.value:d,f=K(d,u).mul(a.x),m=K(h,c).mul(a.y),x=K(p,l).mul(a.z);return _e(f,m,x)}}const mf=C(db),hb=(...o)=>mf(...o),Fs=new vl,as=new j,Us=new j,Yi=new j,yn=new Ie,Tr=new j(0,0,-1),xt=new Me,xn=new j,_r=new j,Tn=new Me,br=new Ye,si=new Ss,pb=Bt.flipX();si.depthTexture=new vs(1,1);let ji=!1;class Cu extends wt{static get type(){return"ReflectorNode"}constructor(e={}){super(e.defaultTexture||si.texture,pb),this._reflectorBaseNode=e.reflector||new fb(this,e),this._depthNode=null,this.setUpdateMatrix(!1)}get reflector(){return this._reflectorBaseNode}get target(){return this._reflectorBaseNode.target}getDepthNode(){if(this._depthNode===null){if(this._reflectorBaseNode.depth!==!0)throw new Error("THREE.ReflectorNode: Depth node can only be requested when the reflector is created with { depth: true }. ");this._depthNode=E(new Cu({defaultTexture:si.depthTexture,reflector:this._reflectorBaseNode}))}return this._depthNode}setup(e){return e.object.isQuadMesh||this._reflectorBaseNode.build(e),super.setup(e)}clone(){const e=new this.constructor(this.reflectorNode);return e._reflectorBaseNode=this._reflectorBaseNode,e}}class fb extends O{static get type(){return"ReflectorBaseNode"}constructor(e,t={}){super();const{target:s=new Zg,resolution:n=1,generateMipmaps:r=!1,bounces:i=!0,depth:a=!1}=t;this.textureNode=e,this.target=s,this.resolution=n,this.generateMipmaps=r,this.bounces=i,this.depth=a,this.updateBeforeType=i?W.RENDER:W.FRAME,this.virtualCameras=new WeakMap,this.renderTargets=new WeakMap}_updateResolution(e,t){const s=this.resolution;t.getDrawingBufferSize(br),e.setSize(Math.round(br.width*s),Math.round(br.height*s))}setup(e){return this._updateResolution(si,e.renderer),super.setup(e)}getVirtualCamera(e){let t=this.virtualCameras.get(e);return t===void 0&&(t=e.clone(),this.virtualCameras.set(e,t)),t}getRenderTarget(e){let t=this.renderTargets.get(e);return t===void 0&&(t=new Ss(0,0,{type:pt}),this.generateMipmaps===!0&&(t.texture.minFilter=Jg,t.texture.generateMipmaps=!0),this.depth===!0&&(t.depthTexture=new vs),this.renderTargets.set(e,t)),t}updateBefore(e){if(this.bounces===!1&&ji)return!1;ji=!0;const{scene:t,camera:s,renderer:n,material:r}=e,{target:i}=this,a=this.getVirtualCamera(s),u=this.getRenderTarget(a);if(n.getDrawingBufferSize(br),this._updateResolution(u,n),Us.setFromMatrixPosition(i.matrixWorld),Yi.setFromMatrixPosition(s.matrixWorld),yn.extractRotation(i.matrixWorld),as.set(0,0,1),as.applyMatrix4(yn),xn.subVectors(Us,Yi),xn.dot(as)>0)return;xn.reflect(as).negate(),xn.add(Us),yn.extractRotation(s.matrixWorld),Tr.set(0,0,-1),Tr.applyMatrix4(yn),Tr.add(Yi),_r.subVectors(Us,Tr),_r.reflect(as).negate(),_r.add(Us),a.coordinateSystem=s.coordinateSystem,a.position.copy(xn),a.up.set(0,1,0),a.up.applyMatrix4(yn),a.up.reflect(as),a.lookAt(_r),a.near=s.near,a.far=s.far,a.updateMatrixWorld(),a.projectionMatrix.copy(s.projectionMatrix),Fs.setFromNormalAndCoplanarPoint(as,Us),Fs.applyMatrix4(a.matrixWorldInverse),xt.set(Fs.normal.x,Fs.normal.y,Fs.normal.z,Fs.constant);const c=a.projectionMatrix;Tn.x=(Math.sign(xt.x)+c.elements[8])/c.elements[0],Tn.y=(Math.sign(xt.y)+c.elements[9])/c.elements[5],Tn.z=-1,Tn.w=(1+c.elements[10])/c.elements[14],xt.multiplyScalar(1/xt.dot(Tn));const l=0;c.elements[2]=xt.x,c.elements[6]=xt.y,c.elements[10]=n.coordinateSystem===ln?xt.z-l:xt.z+1-l,c.elements[14]=xt.w,this.textureNode.value=u.texture,this.depth===!0&&(this.textureNode.getDepthNode().value=u.depthTexture),r.visible=!1;const d=n.getRenderTarget(),h=n.getMRT(),p=n.autoClear;n.setMRT(null),n.setRenderTarget(u),n.autoClear=!0,n.render(t,a),n.setMRT(h),n.setRenderTarget(d),n.autoClear=p,r.visible=!0,ji=!1}}const gb=o=>E(new Cu(o)),Qi=new Tl(-1,1,1,-1,0,1);class mb extends Sl{constructor(e=!1){super();const t=e===!1?[0,-1,0,1,2,1]:[0,2,0,0,2,0];this.setAttribute("position",new ju([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new ju(t,2))}}const yb=new mb;class Mi extends tn{constructor(e=null){super(yb,e),this.camera=Qi,this.isQuadMesh=!0}async renderAsync(e){return e.renderAsync(this,Qi)}render(e){e.render(this,Qi)}}const xb=new Ye;class Tb extends wt{static get type(){return"RTTNode"}constructor(e,t=null,s=null,n={type:pt}){const r=new Ss(t,s,n);super(r.texture,le()),this.node=e,this.width=t,this.height=s,this.pixelRatio=1,this.renderTarget=r,this.textureNeedsUpdate=!0,this.autoUpdate=!0,this._rttNode=null,this._quadMesh=new Mi(new ce),this.updateBeforeType=W.RENDER}get autoSize(){return this.width===null}setup(e){return this._rttNode=this.node.context(e.getSharedContext()),this._quadMesh.material.name="RTT",this._quadMesh.material.needsUpdate=!0,super.setup(e)}setSize(e,t){this.width=e,this.height=t;const s=e*this.pixelRatio,n=t*this.pixelRatio;this.renderTarget.setSize(s,n),this.textureNeedsUpdate=!0}setPixelRatio(e){this.pixelRatio=e,this.setSize(this.width,this.height)}updateBefore({renderer:e}){if(this.textureNeedsUpdate===!1&&this.autoUpdate===!1)return;if(this.textureNeedsUpdate=!1,this.autoSize===!0){this.pixelRatio=e.getPixelRatio();const s=e.getSize(xb);this.setSize(s.width,s.height)}this._quadMesh.material.fragmentNode=this._rttNode;const t=e.getRenderTarget();e.setRenderTarget(this.renderTarget),this._quadMesh.render(e),e.setRenderTarget(t)}clone(){const e=new wt(this.value,this.uvNode,this.levelNode);return e.sampler=this.sampler,e.referenceNode=this,e}}const yf=(o,...e)=>E(new Tb(E(o),...e)),_b=(o,...e)=>o.isTextureNode?o:o.isPassNode?o.getTextureNode():yf(o,...e),ks=b(([o,e,t],s)=>{let n;s.renderer.coordinateSystem===ln?(o=M(o.x,o.y.oneMinus()).mul(2).sub(1),n=P(T(o,e),1)):n=P(T(o.x,o.y.oneMinus(),e).mul(2).sub(1),1);const r=P(t.mul(n));return r.xyz.div(r.w)}),bb=b(([o,e])=>{const t=e.mul(P(o,1)),s=t.xy.div(t.w).mul(.5).add(.5).toVar();return M(s.x,s.y.oneMinus())}),Nb=b(([o,e,t])=>{const s=ns(ge(e)),n=Ae(o.mul(s)).toVar(),r=ge(e,n).toVar(),i=ge(e,n.sub(Ae(2,0))).toVar(),a=ge(e,n.sub(Ae(1,0))).toVar(),u=ge(e,n.add(Ae(1,0))).toVar(),c=ge(e,n.add(Ae(2,0))).toVar(),l=ge(e,n.add(Ae(0,2))).toVar(),d=ge(e,n.add(Ae(0,1))).toVar(),h=ge(e,n.sub(Ae(0,1))).toVar(),p=ge(e,n.sub(Ae(0,2))).toVar(),f=oe(Y(g(2).mul(a).sub(i),r)).toVar(),m=oe(Y(g(2).mul(u).sub(c),r)).toVar(),x=oe(Y(g(2).mul(d).sub(l),r)).toVar(),N=oe(Y(g(2).mul(h).sub(p),r)).toVar(),v=ks(o,r,t).toVar(),w=f.lessThan(m).select(v.sub(ks(o.sub(M(g(1).div(s.x),0)),a,t)),v.negate().add(ks(o.add(M(g(1).div(s.x),0)),u,t))),B=x.lessThan(N).select(v.sub(ks(o.add(M(0,g(1).div(s.y))),d,t)),v.negate().add(ks(o.sub(M(0,g(1).div(s.y))),h,t)));return qt(_i(w,B))});class Sb extends oa{constructor(e,t,s=Float32Array){const n=ArrayBuffer.isView(e)?e:new s(e*t);super(n,t),this.isStorageInstancedBufferAttribute=!0}}class xf extends Ur{constructor(e,t,s=Float32Array){const n=ArrayBuffer.isView(e)?e:new s(e*t);super(n,t),this.isStorageBufferAttribute=!0}}class vb extends Rs{static get type(){return"StorageArrayElementNode"}constructor(e,t){super(e,t),this.isStorageArrayElementNode=!0}set storageBufferNode(e){this.node=e}get storageBufferNode(){return this.node}setup(e){return e.isAvailable("storageBuffer")===!1&&this.node.isPBO===!0&&e.setupPBO(this.node),super.setup(e)}generate(e,t){let s;const n=e.context.assign;if(e.isAvailable("storageBuffer")===!1?this.node.isPBO===!0&&n!==!0&&(this.node.value.isInstancedBufferAttribute||e.shaderStage!=="compute")?s=e.generatePBO(this):s=this.node.build(e):s=super.generate(e),n!==!0){const r=this.getNodeType(e);s=e.format(s,r,t)}return s}}const Ab=C(vb);class Rb extends iu{static get type(){return"StorageBufferNode"}constructor(e,t=null,s=0){t===null&&(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute)&&(t=ya(e.itemSize),s=e.count),super(e,t,s),this.isStorageBufferNode=!0,this.access=Ve.READ_WRITE,this.isAtomic=!1,this.isPBO=!1,this._attribute=null,this._varying=null,this.global=!0,e.isStorageBufferAttribute!==!0&&e.isStorageInstancedBufferAttribute!==!0&&(e.isInstancedBufferAttribute?e.isStorageInstancedBufferAttribute=!0:e.isStorageBufferAttribute=!0)}getHash(e){if(this.bufferCount===0){let t=e.globalCache.getData(this.value);return t===void 0&&(t={node:this},e.globalCache.setData(this.value,t)),t.node.uuid}return this.uuid}getInputType(){return this.value.isIndirectStorageBufferAttribute?"indirectStorageBuffer":"storageBuffer"}element(e){return Ab(this,e)}setPBO(e){return this.isPBO=e,this}getPBO(){return this.isPBO}setAccess(e){return this.access=e,this}toReadOnly(){return this.setAccess(Ve.READ_ONLY)}setAtomic(e){return this.isAtomic=e,this}toAtomic(){return this.setAtomic(!0)}getAttributeData(){return this._attribute===null&&(this._attribute=nr(this.value),this._varying=ke(this._attribute)),{attribute:this._attribute,varying:this._varying}}getNodeType(e){if(e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.getNodeType(e);const{attribute:t}=this.getAttributeData();return t.getNodeType(e)}generate(e){if(e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.generate(e);const{attribute:t,varying:s}=this.getAttributeData(),n=s.build(e);return e.registerTransform(n,t),n}}const Bi=(o,e=null,t=0)=>E(new Rb(o,e,t)),Cb=(o,e,t)=>(console.warn('THREE.TSL: "storageObject()" is deprecated. Use "storage().setPBO( true )" instead.'),Bi(o,e,t).setPBO(!0)),Eb=(o,e="float")=>{const t=Ta(e),s=xa(e),n=new xf(o,t,s);return Bi(n,e,o)},wb=(o,e="float")=>{const t=Ta(e),s=xa(e),n=new Sb(o,t,s);return Bi(n,e,o)};class Mb extends Uh{static get type(){return"VertexColorNode"}constructor(e=0){super(null,"vec4"),this.isVertexColorNode=!0,this.index=e}getAttributeName(){const e=this.index;return"color"+(e>0?e:"")}generate(e){const t=this.getAttributeName(e),s=e.hasGeometryAttribute(t);let n;return s===!0?n=super.generate(e):n=e.generateConst(this.nodeType,new Me(1,1,1,1)),n}serialize(e){super.serialize(e),e.index=this.index}deserialize(e){super.deserialize(e),this.index=e.index}}const Bb=o=>E(new Mb(o));class Fb extends O{static get type(){return"PointUVNode"}constructor(){super("vec2"),this.isPointUVNode=!0}generate(){return"vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y )"}}const Ub=U(Fb),_n=new Wg,Zi=new Ie;class Ke extends O{static get type(){return"SceneNode"}constructor(e=Ke.BACKGROUND_BLURRINESS,t=null){super(),this.scope=e,this.scene=t}setup(e){const t=this.scope,s=this.scene!==null?this.scene:e.scene;let n;return t===Ke.BACKGROUND_BLURRINESS?n=ne("backgroundBlurriness","float",s):t===Ke.BACKGROUND_INTENSITY?n=ne("backgroundIntensity","float",s):t===Ke.BACKGROUND_ROTATION?n=V("mat4").label("backgroundRotation").setGroup(k).onRenderUpdate(()=>{const r=s.background;return r!==null&&r.isTexture&&r.mapping!==zg?(_n.copy(s.backgroundRotation),_n.x*=-1,_n.y*=-1,_n.z*=-1,Zi.makeRotationFromEuler(_n)):Zi.identity(),Zi}):console.error("THREE.SceneNode: Unknown scope:",t),n}}Ke.BACKGROUND_BLURRINESS="backgroundBlurriness";Ke.BACKGROUND_INTENSITY="backgroundIntensity";Ke.BACKGROUND_ROTATION="backgroundRotation";const Tf=U(Ke,Ke.BACKGROUND_BLURRINESS),sa=U(Ke,Ke.BACKGROUND_INTENSITY),_f=U(Ke,Ke.BACKGROUND_ROTATION);class Pb extends wt{static get type(){return"StorageTextureNode"}constructor(e,t,s=null){super(e,t),this.storeNode=s,this.isStorageTextureNode=!0,this.access=Ve.WRITE_ONLY}getInputType(){return"storageTexture"}setup(e){super.setup(e);const t=e.getNodeProperties(this);t.storeNode=this.storeNode}setAccess(e){return this.access=e,this}generate(e,t){let s;return this.storeNode!==null?s=this.generateStore(e):s=super.generate(e,t),s}toReadWrite(){return this.setAccess(Ve.READ_WRITE)}toReadOnly(){return this.setAccess(Ve.READ_ONLY)}toWriteOnly(){return this.setAccess(Ve.WRITE_ONLY)}generateStore(e){const t=e.getNodeProperties(this),{uvNode:s,storeNode:n}=t,r=super.generate(e,"property"),i=s.build(e,"uvec2"),a=n.build(e,"vec4"),u=e.generateTextureStore(e,r,i,a);e.addLineFlowCode(u,this)}}const bf=C(Pb),Db=(o,e,t)=>{const s=bf(o,e,t);return t!==null&&s.append(),s};class Lb extends Ai{static get type(){return"UserDataNode"}constructor(e,t,s=null){super(e,t,s),this.userData=s}updateReference(e){return this.reference=this.userData!==null?this.userData:e.object.userData,this.reference}}const Ib=(o,e,t)=>E(new Lb(o,e,t)),Pc=new WeakMap;class Vb extends be{static get type(){return"VelocityNode"}constructor(){super("vec2"),this.projectionMatrix=null,this.updateType=W.OBJECT,this.updateAfterType=W.OBJECT,this.previousModelWorldMatrix=V(new Ie),this.previousProjectionMatrix=V(new Ie).setGroup(k),this.previousCameraViewMatrix=V(new Ie)}setProjectionMatrix(e){this.projectionMatrix=e}update({frameId:e,camera:t,object:s}){const n=Dc(s);this.previousModelWorldMatrix.value.copy(n);const r=Nf(t);r.frameId!==e&&(r.frameId=e,r.previousProjectionMatrix===void 0?(r.previousProjectionMatrix=new Ie,r.previousCameraViewMatrix=new Ie,r.currentProjectionMatrix=new Ie,r.currentCameraViewMatrix=new Ie,r.previousProjectionMatrix.copy(this.projectionMatrix||t.projectionMatrix),r.previousCameraViewMatrix.copy(t.matrixWorldInverse)):(r.previousProjectionMatrix.copy(r.currentProjectionMatrix),r.previousCameraViewMatrix.copy(r.currentCameraViewMatrix)),r.currentProjectionMatrix.copy(this.projectionMatrix||t.projectionMatrix),r.currentCameraViewMatrix.copy(t.matrixWorldInverse),this.previousProjectionMatrix.value.copy(r.previousProjectionMatrix),this.previousCameraViewMatrix.value.copy(r.previousCameraViewMatrix))}updateAfter({object:e}){Dc(e).copy(e.matrixWorld)}setup(){const e=this.projectionMatrix===null?He:V(this.projectionMatrix),t=this.previousCameraViewMatrix.mul(this.previousModelWorldMatrix),s=e.mul(Kt).mul(me),n=this.previousProjectionMatrix.mul(t).mul(Jr),r=s.xy.div(s.w),i=n.xy.div(n.w);return Y(r,i)}}function Nf(o){let e=Pc.get(o);return e===void 0&&(e={},Pc.set(o,e)),e}function Dc(o,e=0){const t=Nf(o);let s=t[e];return s===void 0&&(t[e]=s=new Ie),s}const Gb=U(Vb),Sf=b(([o,e])=>Re(1,o.oneMinus().div(e)).oneMinus()).setLayout({name:"blendBurn",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),vf=b(([o,e])=>Re(o.div(e.oneMinus()),1)).setLayout({name:"blendDodge",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),Af=b(([o,e])=>o.oneMinus().mul(e.oneMinus()).oneMinus()).setLayout({name:"blendScreen",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),Rf=b(([o,e])=>Q(o.mul(2).mul(e),o.oneMinus().mul(2).mul(e.oneMinus()).oneMinus(),Ti(.5,o))).setLayout({name:"blendOverlay",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),Ob=b(([o,e])=>{const t=e.a.add(o.a.mul(e.a.oneMinus()));return P(e.rgb.mul(e.a).add(o.rgb.mul(o.a).mul(e.a.oneMinus())).div(t),t)}).setLayout({name:"blendColor",type:"vec4",inputs:[{name:"base",type:"vec4"},{name:"blend",type:"vec4"}]}),kb=(...o)=>(console.warn('THREE.TSL: "burn" has been renamed. Use "blendBurn" instead.'),Sf(o)),zb=(...o)=>(console.warn('THREE.TSL: "dodge" has been renamed. Use "blendDodge" instead.'),vf(o)),Wb=(...o)=>(console.warn('THREE.TSL: "screen" has been renamed. Use "blendScreen" instead.'),Af(o)),$b=(...o)=>(console.warn('THREE.TSL: "overlay" has been renamed. Use "blendOverlay" instead.'),Rf(o)),Hb=b(([o])=>Eu(o.rgb)),qb=b(([o,e=g(1)])=>e.mix(Eu(o.rgb),o.rgb)),Kb=b(([o,e=g(1)])=>{const t=_e(o.r,o.g,o.b).div(3),s=o.r.max(o.g.max(o.b)),n=s.sub(t).mul(e).mul(-3);return Q(o.rgb,s,n)}),Xb=b(([o,e=g(1)])=>{const t=T(.57735,.57735,.57735),s=e.cos();return T(o.rgb.mul(s).add(t.cross(o.rgb).mul(e.sin()).add(t.mul(is(t,o.rgb).mul(s.oneMinus())))))}),Eu=(o,e=T(_t.getLuminanceCoefficients(new j)))=>is(o,e),Yb=b(([o,e=T(1),t=T(0),s=T(1),n=g(1),r=T(_t.getLuminanceCoefficients(new j,kt))])=>{const i=o.rgb.dot(T(r)),a=ue(o.rgb.mul(e).add(t),0).toVar(),u=a.pow(s).toVar();return z(a.r.greaterThan(0),()=>{a.r.assign(u.r)}),z(a.g.greaterThan(0),()=>{a.g.assign(u.g)}),z(a.b.greaterThan(0),()=>{a.b.assign(u.b)}),a.assign(i.add(a.sub(i).mul(n))),P(a.rgb,o.a)});class jb extends be{static get type(){return"PosterizeNode"}constructor(e,t){super(),this.sourceNode=e,this.stepsNode=t}setup(){const{sourceNode:e,stepsNode:t}=this;return e.mul(t).floor().div(t)}}const Qb=C(jb),Zb=new Ye;class Cf extends wt{static get type(){return"PassTextureNode"}constructor(e,t){super(t),this.passNode=e,this.setUpdateMatrix(!1)}setup(e){return e.object.isQuadMesh&&this.passNode.build(e),super.setup(e)}clone(){return new this.constructor(this.passNode,this.value)}}class Lc extends Cf{static get type(){return"PassMultipleTextureNode"}constructor(e,t,s=!1){super(e,null),this.textureName=t,this.previousTexture=s}updateTexture(){this.value=this.previousTexture?this.passNode.getPreviousTexture(this.textureName):this.passNode.getTexture(this.textureName)}setup(e){return this.updateTexture(),super.setup(e)}clone(){return new this.constructor(this.passNode,this.textureName,this.previousTexture)}}class Ut extends be{static get type(){return"PassNode"}constructor(e,t,s,n={}){super("vec4"),this.scope=e,this.scene=t,this.camera=s,this.options=n,this._pixelRatio=1,this._width=1,this._height=1;const r=new vs;r.isRenderTargetTexture=!0,r.name="depth";const i=new Ss(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:pt,...n});i.texture.name="output",i.depthTexture=r,this.renderTarget=i,this._textures={output:i.texture,depth:r},this._textureNodes={},this._linearDepthNodes={},this._viewZNodes={},this._previousTextures={},this._previousTextureNodes={},this._cameraNear=V(0),this._cameraFar=V(0),this._mrt=null,this.isPassNode=!0,this.updateBeforeType=W.FRAME}setMRT(e){return this._mrt=e,this}getMRT(){return this._mrt}isGlobal(){return!0}getTexture(e){let t=this._textures[e];return t===void 0&&(t=this.renderTarget.texture.clone(),t.name=e,this._textures[e]=t,this.renderTarget.textures.push(t)),t}getPreviousTexture(e){let t=this._previousTextures[e];return t===void 0&&(t=this.getTexture(e).clone(),this._previousTextures[e]=t),t}toggleTexture(e){const t=this._previousTextures[e];if(t!==void 0){const s=this._textures[e],n=this.renderTarget.textures.indexOf(s);this.renderTarget.textures[n]=t,this._textures[e]=t,this._previousTextures[e]=s,this._textureNodes[e].updateTexture(),this._previousTextureNodes[e].updateTexture()}}getTextureNode(e="output"){let t=this._textureNodes[e];return t===void 0&&(t=E(new Lc(this,e)),t.updateTexture(),this._textureNodes[e]=t),t}getPreviousTextureNode(e="output"){let t=this._previousTextureNodes[e];return t===void 0&&(this._textureNodes[e]===void 0&&this.getTextureNode(e),t=E(new Lc(this,e,!0)),t.updateTexture(),this._previousTextureNodes[e]=t),t}getViewZNode(e="depth"){let t=this._viewZNodes[e];if(t===void 0){const s=this._cameraNear,n=this._cameraFar;this._viewZNodes[e]=t=mu(this.getTextureNode(e),s,n)}return t}getLinearDepthNode(e="depth"){let t=this._linearDepthNodes[e];if(t===void 0){const s=this._cameraNear,n=this._cameraFar,r=this.getViewZNode(e);this._linearDepthNodes[e]=t=Qs(r,s,n)}return t}setup({renderer:e}){return this.renderTarget.samples=this.options.samples===void 0?e.samples:this.options.samples,e.backend.isWebGLBackend===!0&&(this.renderTarget.samples=0),this.scope===Ut.COLOR?this.getTextureNode():this.getLinearDepthNode()}updateBefore(e){const{renderer:t}=e,{scene:s,camera:n}=this;this._pixelRatio=t.getPixelRatio();const r=t.getSize(Zb);this.setSize(r.width,r.height);const i=t.getRenderTarget(),a=t.getMRT();this._cameraNear.value=n.near,this._cameraFar.value=n.far;for(const u in this._previousTextures)this.toggleTexture(u);t.setRenderTarget(this.renderTarget),t.setMRT(this._mrt),t.render(s,n),t.setRenderTarget(i),t.setMRT(a)}setSize(e,t){this._width=e,this._height=t;const s=this._width*this._pixelRatio,n=this._height*this._pixelRatio;this.renderTarget.setSize(s,n)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget.dispose()}}Ut.COLOR="color";Ut.DEPTH="depth";const Jb=(o,e,t)=>E(new Ut(Ut.COLOR,o,e,t)),eN=(o,e)=>E(new Cf(o,e)),tN=(o,e,t)=>E(new Ut(Ut.DEPTH,o,e,t));class sN extends Ut{static get type(){return"ToonOutlinePassNode"}constructor(e,t,s,n,r){super(Ut.COLOR,e,t),this.colorNode=s,this.thicknessNode=n,this.alphaNode=r,this._materialCache=new WeakMap}updateBefore(e){const{renderer:t}=e,s=t.getRenderObjectFunction();t.setRenderObjectFunction((n,r,i,a,u,c,l,d)=>{if((u.isMeshToonMaterial||u.isMeshToonNodeMaterial)&&u.wireframe===!1){const h=this._getOutlineMaterial(u);t.renderObject(n,r,i,a,h,c,l,d)}t.renderObject(n,r,i,a,u,c,l,d)}),super.updateBefore(e),t.setRenderObjectFunction(s)}_createMaterial(){const e=new ce;e.isMeshToonOutlineMaterial=!0,e.name="Toon_Outline",e.side=Ct;const t=Xe.negate(),s=He.mul(Kt),n=g(1),r=s.mul(P(me,1)),i=s.mul(P(me.add(t),1)),a=qt(r.sub(i));return e.vertexNode=r.add(a.mul(this.thicknessNode).mul(r.w).mul(n)),e.colorNode=P(this.colorNode,this.alphaNode),e}_getOutlineMaterial(e){let t=this._materialCache.get(e);return t===void 0&&(t=this._createMaterial(),this._materialCache.set(e,t)),t}}const nN=(o,e,t=new mt(0,0,0),s=.003,n=1)=>E(new sN(o,e,E(t),E(s),E(n))),Ef=b(([o,e])=>o.mul(e).clamp()).setLayout({name:"linearToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),wf=b(([o,e])=>(o=o.mul(e),o.div(o.add(1)).clamp())).setLayout({name:"reinhardToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Mf=b(([o,e])=>{o=o.mul(e),o=o.sub(.004).max(0);const t=o.mul(o.mul(6.2).add(.5)),s=o.mul(o.mul(6.2).add(1.7)).add(.06);return t.div(s).pow(2.2)}).setLayout({name:"cineonToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),rN=b(([o])=>{const e=o.mul(o.add(.0245786)).sub(90537e-9),t=o.mul(o.add(.432951).mul(.983729)).add(.238081);return e.div(t)}),Bf=b(([o,e])=>{const t=Oe(.59719,.35458,.04823,.076,.90834,.01566,.0284,.13383,.83777),s=Oe(1.60475,-.53108,-.07367,-.10208,1.10813,-.00605,-.00327,-.07276,1.07602);return o=o.mul(e).div(.6),o=t.mul(o),o=rN(o),o=s.mul(o),o.clamp()}).setLayout({name:"acesFilmicToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),iN=Oe(T(1.6605,-.1246,-.0182),T(-.5876,1.1329,-.1006),T(-.0728,-.0083,1.1187)),oN=Oe(T(.6274,.0691,.0164),T(.3293,.9195,.088),T(.0433,.0113,.8956)),aN=b(([o])=>{const e=T(o).toVar(),t=T(e.mul(e)).toVar(),s=T(t.mul(t)).toVar();return g(15.5).mul(s.mul(t)).sub($(40.14,s.mul(e))).add($(31.96,s).sub($(6.868,t.mul(e))).add($(.4298,t).add($(.1191,e).sub(.00232))))}),Ff=b(([o,e])=>{const t=T(o).toVar(),s=Oe(T(.856627153315983,.137318972929847,.11189821299995),T(.0951212405381588,.761241990602591,.0767994186031903),T(.0482516061458583,.101439036467562,.811302368396859)),n=Oe(T(1.1271005818144368,-.1413297634984383,-.14132976349843826),T(-.11060664309660323,1.157823702216272,-.11060664309660294),T(-.016493938717834573,-.016493938717834257,1.2519364065950405)),r=g(-12.47393),i=g(4.026069);return t.mulAssign(e),t.assign(oN.mul(t)),t.assign(s.mul(t)),t.assign(ue(t,1e-10)),t.assign(vt(t)),t.assign(t.sub(r).div(i.sub(r))),t.assign(Et(t,0,1)),t.assign(aN(t)),t.assign(n.mul(t)),t.assign(ht(ue(T(0),t),T(2.2))),t.assign(iN.mul(t)),t.assign(Et(t,0,1)),t}).setLayout({name:"agxToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Uf=b(([o,e])=>{const t=g(.76),s=g(.15);o=o.mul(e);const n=Re(o.r,Re(o.g,o.b)),r=Ue(n.lessThan(.08),n.sub($(6.25,n.mul(n))),.04);o.subAssign(r);const i=ue(o.r,ue(o.g,o.b));z(i.lessThan(t),()=>o);const a=Y(1,t),u=Y(1,a.mul(a).div(i.add(a.sub(t))));o.mulAssign(u.div(i));const c=Y(1,gt(1,s.mul(i.sub(u)).add(1)));return Q(o,T(u),c)}).setLayout({name:"neutralToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]});class Ne extends O{static get type(){return"CodeNode"}constructor(e="",t=[],s=""){super("code"),this.isCodeNode=!0,this.code=e,this.includes=t,this.language=s}isGlobal(){return!0}setIncludes(e){return this.includes=e,this}getIncludes(){return this.includes}generate(e){const t=this.getIncludes(e);for(const n of t)n.build(e);const s=e.getCodeFromNode(this,this.getNodeType(e));return s.code=this.code,s.code}serialize(e){super.serialize(e),e.code=this.code,e.language=this.language}deserialize(e){super.deserialize(e),this.code=e.code,this.language=e.language}}const Fi=C(Ne),uN=(o,e)=>Fi(o,e,"js"),cN=(o,e)=>Fi(o,e,"wgsl"),lN=(o,e)=>Fi(o,e,"glsl");class Pf extends Ne{static get type(){return"FunctionNode"}constructor(e="",t=[],s=""){super(e,t,s)}getNodeType(e){return this.getNodeFunction(e).type}getInputs(e){return this.getNodeFunction(e).inputs}getNodeFunction(e){const t=e.getDataFromNode(this);let s=t.nodeFunction;return s===void 0&&(s=e.parser.parseFunction(this.code),t.nodeFunction=s),s}generate(e,t){super.generate(e);const s=this.getNodeFunction(e),n=s.name,r=s.type,i=e.getCodeFromNode(this,r);n!==""&&(i.name=n);const a=e.getPropertyName(i),u=this.getNodeFunction(e).getCode(a);return i.code=u+` +`,t==="property"?a:e.format(`${a}()`,r,t)}}const Df=(o,e=[],t="")=>{for(let r=0;rs.call(...r);return n.functionNode=s,n},dN=(o,e)=>Df(o,e,"glsl"),hN=(o,e)=>Df(o,e,"wgsl");class pN extends O{static get type(){return"ScriptableValueNode"}constructor(e=null){super(),this._value=e,this._cache=null,this.inputType=null,this.outputType=null,this.events=new gl,this.isScriptableValueNode=!0}get isScriptableOutputNode(){return this.outputType!==null}set value(e){this._value!==e&&(this._cache&&this.inputType==="URL"&&this.value.value instanceof ArrayBuffer&&(URL.revokeObjectURL(this._cache),this._cache=null),this._value=e,this.events.dispatchEvent({type:"change"}),this.refresh())}get value(){return this._value}refresh(){this.events.dispatchEvent({type:"refresh"})}getValue(){const e=this.value;if(e&&this._cache===null&&this.inputType==="URL"&&e.value instanceof ArrayBuffer)this._cache=URL.createObjectURL(new Blob([e.value]));else if(e&&e.value!==null&&e.value!==void 0&&((this.inputType==="URL"||this.inputType==="String")&&typeof e.value=="string"||this.inputType==="Number"&&typeof e.value=="number"||this.inputType==="Vector2"&&e.value.isVector2||this.inputType==="Vector3"&&e.value.isVector3||this.inputType==="Vector4"&&e.value.isVector4||this.inputType==="Color"&&e.value.isColor||this.inputType==="Matrix3"&&e.value.isMatrix3||this.inputType==="Matrix4"&&e.value.isMatrix4))return e.value;return this._cache||e}getNodeType(e){return this.value&&this.value.isNode?this.value.getNodeType(e):"float"}setup(){return this.value&&this.value.isNode?this.value:g()}serialize(e){super.serialize(e),this.value!==null?this.inputType==="ArrayBuffer"?e.value=Na(this.value):e.value=this.value?this.value.toJSON(e.meta).uuid:null:e.value=null,e.inputType=this.inputType,e.outputType=this.outputType}deserialize(e){super.deserialize(e);let t=null;e.value!==null&&(e.inputType==="ArrayBuffer"?t=Sa(e.value):e.inputType==="Texture"?t=e.meta.textures[e.value]:t=e.meta.nodes[e.value]||null),this.value=t,this.inputType=e.inputType,this.outputType=e.outputType}}const zr=C(pN);class Lf extends Map{get(e,t=null,...s){if(this.has(e))return super.get(e);if(t!==null){const n=t(...s);return this.set(e,n),n}}}class fN{constructor(e){this.scriptableNode=e}get parameters(){return this.scriptableNode.parameters}get layout(){return this.scriptableNode.getLayout()}getInputLayout(e){return this.scriptableNode.getInputLayout(e)}get(e){const t=this.parameters[e];return t?t.getValue():null}}const Wr=new Lf;class gN extends O{static get type(){return"ScriptableNode"}constructor(e=null,t={}){super(),this.codeNode=e,this.parameters=t,this._local=new Lf,this._output=zr(),this._outputs={},this._source=this.source,this._method=null,this._object=null,this._value=null,this._needsOutputUpdate=!0,this.onRefresh=this.onRefresh.bind(this),this.isScriptableNode=!0}get source(){return this.codeNode?this.codeNode.code:""}setLocal(e,t){return this._local.set(e,t)}getLocal(e){return this._local.get(e)}onRefresh(){this._refresh()}getInputLayout(e){for(const t of this.getLayout())if(t.inputType&&(t.id===e||t.name===e))return t}getOutputLayout(e){for(const t of this.getLayout())if(t.outputType&&(t.id===e||t.name===e))return t}setOutput(e,t){const s=this._outputs;return s[e]===void 0?s[e]=zr(t):s[e].value=t,this}getOutput(e){return this._outputs[e]}getParameter(e){return this.parameters[e]}setParameter(e,t){const s=this.parameters;return t&&t.isScriptableNode?(this.deleteParameter(e),s[e]=t,s[e].getDefaultOutput().events.addEventListener("refresh",this.onRefresh)):t&&t.isScriptableValueNode?(this.deleteParameter(e),s[e]=t,s[e].events.addEventListener("refresh",this.onRefresh)):s[e]===void 0?(s[e]=zr(t),s[e].events.addEventListener("refresh",this.onRefresh)):s[e].value=t,this}getValue(){return this.getDefaultOutput().getValue()}deleteParameter(e){let t=this.parameters[e];return t&&(t.isScriptableNode&&(t=t.getDefaultOutput()),t.events.removeEventListener("refresh",this.onRefresh)),this}clearParameters(){for(const e of Object.keys(this.parameters))this.deleteParameter(e);return this.needsUpdate=!0,this}call(e,...t){const n=this.getObject()[e];if(typeof n=="function")return n(...t)}async callAsync(e,...t){const n=this.getObject()[e];if(typeof n=="function")return n.constructor.name==="AsyncFunction"?await n(...t):n(...t)}getNodeType(e){return this.getDefaultOutputNode().getNodeType(e)}refresh(e=null){e!==null?this.getOutput(e).refresh():this._refresh()}getObject(){if(this.needsUpdate&&this.dispose(),this._object!==null)return this._object;const e=()=>this.refresh(),t=(c,l)=>this.setOutput(c,l),s=new fN(this),n=Wr.get("THREE"),r=Wr.get("TSL"),i=this.getMethod(),a=[s,this._local,Wr,e,t,n,r];this._object=i(...a);const u=this._object.layout;if(u&&(u.cache===!1&&this._local.clear(),this._output.outputType=u.outputType||null,Array.isArray(u.elements)))for(const c of u.elements){const l=c.id||c.name;c.inputType&&(this.getParameter(l)===void 0&&this.setParameter(l,null),this.getParameter(l).inputType=c.inputType),c.outputType&&(this.getOutput(l)===void 0&&this.setOutput(l,null),this.getOutput(l).outputType=c.outputType)}return this._object}deserialize(e){super.deserialize(e);for(const t in this.parameters){let s=this.parameters[t];s.isScriptableNode&&(s=s.getDefaultOutput()),s.events.addEventListener("refresh",this.onRefresh)}}getLayout(){return this.getObject().layout}getDefaultOutputNode(){const e=this.getDefaultOutput().value;return e&&e.isNode?e:g()}getDefaultOutput(){return this._exec()._output}getMethod(){if(this.needsUpdate&&this.dispose(),this._method!==null)return this._method;const e=["parameters","local","global","refresh","setOutput","THREE","TSL"],s=["layout","init","main","dispose"].join(", "),n="var "+s+`; var output = {}; +`,r=` +return { ...output, `+s+" };",i=n+this.codeNode.code+r;return this._method=new Function(...e,i),this._method}dispose(){this._method!==null&&(this._object&&typeof this._object.dispose=="function"&&this._object.dispose(),this._method=null,this._object=null,this._source=null,this._value=null,this._needsOutputUpdate=!0,this._output.value=null,this._outputs={})}setup(){return this.getDefaultOutputNode()}getCacheKey(e){const t=[ga(this.source),this.getDefaultOutputNode().getCacheKey(e)];for(const s in this.parameters)t.push(this.parameters[s].getCacheKey(e));return Zn(t)}set needsUpdate(e){e===!0&&this.dispose()}get needsUpdate(){return this.source!==this._source}_exec(){return this.codeNode===null?this:(this._needsOutputUpdate===!0&&(this._value=this.call("main"),this._needsOutputUpdate=!1),this._output.value=this._value,this)}_refresh(){this.needsUpdate=!0,this._exec(),this._output.refresh()}}const mN=C(gN);function If(o){let e;const t=o.context.getViewZ;return t!==void 0&&(e=t(this)),(e||xe.z).negate()}const wu=b(([o,e],t)=>{const s=If(t);return ct(o,e,s)}),Mu=b(([o],e)=>{const t=If(e);return o.mul(o,t,t).negate().exp().oneMinus()}),Xn=b(([o,e])=>P(e.toFloat().mix($n.rgb,o.toVec3()),$n.a));function yN(o,e,t){return console.warn('THREE.TSL: "rangeFog( color, near, far )" is deprecated. Use "fog( color, rangeFogFactor( near, far ) )" instead.'),Xn(o,wu(e,t))}function xN(o,e){return console.warn('THREE.TSL: "densityFog( color, density )" is deprecated. Use "fog( color, densityFogFactor( density ) )" instead.'),Xn(o,Mu(e))}let us=null,cs=null;class TN extends O{static get type(){return"RangeNode"}constructor(e=g(),t=g()){super(),this.minNode=e,this.maxNode=t}getVectorLength(e){const t=e.getTypeLength(Ot(this.minNode.value)),s=e.getTypeLength(Ot(this.maxNode.value));return t>s?t:s}getNodeType(e){return e.object.count>1?e.getTypeFromLength(this.getVectorLength(e)):"float"}setup(e){const t=e.object;let s=null;if(t.count>1){const n=this.minNode.value,r=this.maxNode.value,i=e.getTypeLength(Ot(n)),a=e.getTypeLength(Ot(r));us=us||new Me,cs=cs||new Me,us.setScalar(0),cs.setScalar(0),i===1?us.setScalar(n):n.isColor?us.set(n.r,n.g,n.b,1):us.set(n.x,n.y,n.z||0,n.w||0),a===1?cs.setScalar(r):r.isColor?cs.set(r.r,r.g,r.b,1):cs.set(r.x,r.y,r.z||0,r.w||0);const u=4,c=u*t.count,l=new Float32Array(c);for(let h=0;hE(new bN(o,e)),NN=Ui("numWorkgroups","uvec3"),SN=Ui("workgroupId","uvec3"),vN=Ui("localId","uvec3"),AN=Ui("subgroupSize","uint");class RN extends O{constructor(e){super(),this.scope=e}generate(e){const{scope:t}=this,{renderer:s}=e;s.backend.isWebGLBackend===!0?e.addFlowCode(` // ${t}Barrier +`):e.addLineFlowCode(`${t}Barrier()`,this)}}const Bu=C(RN),CN=()=>Bu("workgroup").append(),EN=()=>Bu("storage").append(),wN=()=>Bu("texture").append();class MN extends Rs{constructor(e,t){super(e,t),this.isWorkgroupInfoElementNode=!0}generate(e,t){let s;const n=e.context.assign;if(s=super.generate(e),n!==!0){const r=this.getNodeType(e);s=e.format(s,r,t)}return s}}class BN extends O{constructor(e,t,s=0){super(t),this.bufferType=t,this.bufferCount=s,this.isWorkgroupInfoNode=!0,this.elementType=t,this.scope=e}label(e){return this.name=e,this}setScope(e){return this.scope=e,this}getElementType(){return this.elementType}getInputType(){return`${this.scope}Array`}element(e){return E(new MN(this,e))}generate(e){return e.getScopedArray(this.name||`${this.scope}Array_${this.id}`,this.scope.toLowerCase(),this.bufferType,this.bufferCount)}}const FN=(o,e)=>E(new BN("Workgroup",o,e));class Be extends be{static get type(){return"AtomicFunctionNode"}constructor(e,t,s,n=null){super("uint"),this.method=e,this.pointerNode=t,this.valueNode=s,this.storeNode=n}getInputType(e){return this.pointerNode.getNodeType(e)}getNodeType(e){return this.getInputType(e)}generate(e){const t=this.method,s=this.getNodeType(e),n=this.getInputType(e),r=this.pointerNode,i=this.valueNode,a=[];a.push(`&${r.build(e,n)}`),a.push(i.build(e,n));const u=`${e.getMethod(t,s)}( ${a.join(", ")} )`;if(this.storeNode!==null){const c=this.storeNode.build(e,n);e.addLineFlowCode(`${c} = ${u}`,this)}else e.addLineFlowCode(u,this)}}Be.ATOMIC_LOAD="atomicLoad";Be.ATOMIC_STORE="atomicStore";Be.ATOMIC_ADD="atomicAdd";Be.ATOMIC_SUB="atomicSub";Be.ATOMIC_MAX="atomicMax";Be.ATOMIC_MIN="atomicMin";Be.ATOMIC_AND="atomicAnd";Be.ATOMIC_OR="atomicOr";Be.ATOMIC_XOR="atomicXor";const UN=C(Be),Yt=(o,e,t,s=null)=>{const n=UN(o,e,t,s);return n.append(),n},PN=(o,e,t=null)=>Yt(Be.ATOMIC_STORE,o,e,t),DN=(o,e,t=null)=>Yt(Be.ATOMIC_ADD,o,e,t),LN=(o,e,t=null)=>Yt(Be.ATOMIC_SUB,o,e,t),IN=(o,e,t=null)=>Yt(Be.ATOMIC_MAX,o,e,t),VN=(o,e,t=null)=>Yt(Be.ATOMIC_MIN,o,e,t),GN=(o,e,t=null)=>Yt(Be.ATOMIC_AND,o,e,t),ON=(o,e,t=null)=>Yt(Be.ATOMIC_OR,o,e,t),kN=(o,e,t=null)=>Yt(Be.ATOMIC_XOR,o,e,t);let Nr;function hr(o){Nr=Nr||new WeakMap;let e=Nr.get(o);return e===void 0&&Nr.set(o,e={}),e}function Fu(o){const e=hr(o);return e.shadowMatrix||(e.shadowMatrix=V("mat4").setGroup(k).onRenderUpdate(()=>(o.castShadow!==!0&&o.shadow.updateMatrices(o),o.shadow.matrix)))}function Vf(o){const e=hr(o);if(e.projectionUV===void 0){const t=Fu(o).mul(Wt);e.projectionUV=t.xyz.div(t.w)}return e.projectionUV}function Uu(o){const e=hr(o);return e.position||(e.position=V(new j).setGroup(k).onRenderUpdate((t,s)=>s.value.setFromMatrixPosition(o.matrixWorld)))}function Gf(o){const e=hr(o);return e.targetPosition||(e.targetPosition=V(new j).setGroup(k).onRenderUpdate((t,s)=>s.value.setFromMatrixPosition(o.target.matrixWorld)))}function Pi(o){const e=hr(o);return e.viewPosition||(e.viewPosition=V(new j).setGroup(k).onRenderUpdate(({camera:t},s)=>{s.value=s.value||new j,s.value.setFromMatrixPosition(o.matrixWorld),s.value.applyMatrix4(t.matrixWorldInverse)}))}const Pu=o=>je.transformDirection(Uu(o).sub(Gf(o))),zN=o=>o.sort((e,t)=>e.id-t.id),WN=(o,e)=>{for(const t of e)if(t.isAnalyticLightNode&&t.light.id===o)return t;return null},Ji=new WeakMap;class Du extends O{static get type(){return"LightsNode"}constructor(){super("vec3"),this.totalDiffuseNode=T().toVar("totalDiffuse"),this.totalSpecularNode=T().toVar("totalSpecular"),this.outgoingLightNode=T().toVar("outgoingLight"),this._lights=[],this._lightNodes=null,this._lightNodesHash=null,this.global=!0}customCacheKey(){const e=[],t=this._lights;for(let s=0;s0}}const $N=(o=[])=>E(new Du).setLights(o);class HN extends O{static get type(){return"ShadowBaseNode"}constructor(e){super(),this.light=e,this.updateBeforeType=W.RENDER,this.isShadowBaseNode=!0}setupShadowPosition({material:e}){Lu.assign(e.shadowPositionNode||Wt)}dispose(){this.updateBeforeType=W.NONE}}const Lu=T().toVar("shadowPositionWorld");function Iu(o,e={}){return e.toneMapping=o.toneMapping,e.toneMappingExposure=o.toneMappingExposure,e.outputColorSpace=o.outputColorSpace,e.renderTarget=o.getRenderTarget(),e.activeCubeFace=o.getActiveCubeFace(),e.activeMipmapLevel=o.getActiveMipmapLevel(),e.renderObjectFunction=o.getRenderObjectFunction(),e.pixelRatio=o.getPixelRatio(),e.mrt=o.getMRT(),e.clearColor=o.getClearColor(e.clearColor||new mt),e.clearAlpha=o.getClearAlpha(),e.autoClear=o.autoClear,e.scissorTest=o.getScissorTest(),e}function Of(o,e){return e=Iu(o,e),o.setMRT(null),o.setRenderObjectFunction(null),o.setClearColor(0,1),o.autoClear=!0,e}function kf(o,e){o.toneMapping=e.toneMapping,o.toneMappingExposure=e.toneMappingExposure,o.outputColorSpace=e.outputColorSpace,o.setRenderTarget(e.renderTarget,e.activeCubeFace,e.activeMipmapLevel),o.setRenderObjectFunction(e.renderObjectFunction),o.setPixelRatio(e.pixelRatio),o.setMRT(e.mrt),o.setClearColor(e.clearColor,e.clearAlpha),o.autoClear=e.autoClear,o.setScissorTest(e.scissorTest)}function Vu(o,e={}){return e.background=o.background,e.backgroundNode=o.backgroundNode,e.overrideMaterial=o.overrideMaterial,e}function zf(o,e){return e=Vu(o,e),o.background=null,o.backgroundNode=null,o.overrideMaterial=null,e}function Wf(o,e){o.background=e.background,o.backgroundNode=e.backgroundNode,o.overrideMaterial=e.overrideMaterial}function qN(o,e,t={}){return t=Iu(o,t),t=Vu(e,t),t}function $f(o,e,t){return t=Of(o,t),t=zf(e,t),t}function Hf(o,e,t){kf(o,t),Wf(e,t)}var gR=Object.freeze({__proto__:null,resetRendererAndSceneState:$f,resetRendererState:Of,resetSceneState:zf,restoreRendererAndSceneState:Hf,restoreRendererState:kf,restoreSceneState:Wf,saveRendererAndSceneState:qN,saveRendererState:Iu,saveSceneState:Vu});const Ic=new WeakMap,KN=b(([o,e,t])=>{let s=Wt.sub(o).length();return s=s.sub(e).div(t.sub(e)),s=s.saturate(),s}),XN=o=>{const e=o.shadow.camera,t=ne("near","float",e).setGroup(k),s=ne("far","float",e).setGroup(k),n=Dh(o);return KN(n,t,s)},YN=o=>{let e=Ic.get(o);if(e===void 0){const t=o.isPointLight?XN(o):null;e=new ce,e.colorNode=P(0,0,0,1),e.depthNode=t,e.isShadowNodeMaterial=!0,e.name="ShadowMaterial",e.fog=!1,Ic.set(o,e)}return e},qf=b(({depthTexture:o,shadowCoord:e})=>K(o,e.xy).compare(e.z)),Kf=b(({depthTexture:o,shadowCoord:e,shadow:t})=>{const s=(m,x)=>K(o,m).compare(x),n=ne("mapSize","vec2",t).setGroup(k),r=ne("radius","float",t).setGroup(k),i=M(1).div(n),a=i.x.negate().mul(r),u=i.y.negate().mul(r),c=i.x.mul(r),l=i.y.mul(r),d=a.div(2),h=u.div(2),p=c.div(2),f=l.div(2);return _e(s(e.xy.add(M(a,u)),e.z),s(e.xy.add(M(0,u)),e.z),s(e.xy.add(M(c,u)),e.z),s(e.xy.add(M(d,h)),e.z),s(e.xy.add(M(0,h)),e.z),s(e.xy.add(M(p,h)),e.z),s(e.xy.add(M(a,0)),e.z),s(e.xy.add(M(d,0)),e.z),s(e.xy,e.z),s(e.xy.add(M(p,0)),e.z),s(e.xy.add(M(c,0)),e.z),s(e.xy.add(M(d,f)),e.z),s(e.xy.add(M(0,f)),e.z),s(e.xy.add(M(p,f)),e.z),s(e.xy.add(M(a,l)),e.z),s(e.xy.add(M(0,l)),e.z),s(e.xy.add(M(c,l)),e.z)).mul(1/17)}),Xf=b(({depthTexture:o,shadowCoord:e,shadow:t})=>{const s=(l,d)=>K(o,l).compare(d),n=ne("mapSize","vec2",t).setGroup(k),r=M(1).div(n),i=r.x,a=r.y,u=e.xy,c=Xt(u.mul(n).add(.5));return u.subAssign(c.mul(r)),_e(s(u,e.z),s(u.add(M(i,0)),e.z),s(u.add(M(0,a)),e.z),s(u.add(r),e.z),Q(s(u.add(M(i.negate(),0)),e.z),s(u.add(M(i.mul(2),0)),e.z),c.x),Q(s(u.add(M(i.negate(),a)),e.z),s(u.add(M(i.mul(2),a)),e.z),c.x),Q(s(u.add(M(0,a.negate())),e.z),s(u.add(M(0,a.mul(2))),e.z),c.y),Q(s(u.add(M(i,a.negate())),e.z),s(u.add(M(i,a.mul(2))),e.z),c.y),Q(Q(s(u.add(M(i.negate(),a.negate())),e.z),s(u.add(M(i.mul(2),a.negate())),e.z),c.x),Q(s(u.add(M(i.negate(),a.mul(2))),e.z),s(u.add(M(i.mul(2),a.mul(2))),e.z),c.x),c.y)).mul(1/9)}),Yf=b(({depthTexture:o,shadowCoord:e})=>{const t=g(1).toVar(),s=K(o).sample(e.xy).rg,n=Ti(e.z,s.x);return z(n.notEqual(g(1)),()=>{const r=e.z.sub(s.x),i=ue(0,s.y.mul(s.y));let a=i.div(i.add(r.mul(r)));a=Et(Y(a,.3).div(.95-.3)),t.assign(Et(ue(n,a)))}),t}),jN=b(({samples:o,radius:e,size:t,shadowPass:s})=>{const n=g(0).toVar(),r=g(0).toVar(),i=o.lessThanEqual(g(1)).select(g(0),g(2).div(o.sub(1))),a=o.lessThanEqual(g(1)).select(g(0),g(-1));te({start:y(0),end:y(o),type:"int",condition:"<"},({i:c})=>{const l=a.add(g(c).mul(i)),d=s.sample(_e(dr.xy,M(0,l).mul(e)).div(t)).x;n.addAssign(d),r.addAssign(d.mul(d))}),n.divAssign(o),r.divAssign(o);const u=Pt(r.sub(n.mul(n)));return M(n,u)}),QN=b(({samples:o,radius:e,size:t,shadowPass:s})=>{const n=g(0).toVar(),r=g(0).toVar(),i=o.lessThanEqual(g(1)).select(g(0),g(2).div(o.sub(1))),a=o.lessThanEqual(g(1)).select(g(0),g(-1));te({start:y(0),end:y(o),type:"int",condition:"<"},({i:c})=>{const l=a.add(g(c).mul(i)),d=s.sample(_e(dr.xy,M(l,0).mul(e)).div(t));n.addAssign(d.x),r.addAssign(_e(d.y.mul(d.y),d.x.mul(d.x)))}),n.divAssign(o),r.divAssign(o);const u=Pt(r.sub(n.mul(n)));return M(n,u)}),ZN=[qf,Kf,Xf,Yf];let eo;const Sr=new Mi;class jf extends HN{static get type(){return"ShadowNode"}constructor(e,t=null){super(e),this.shadow=t||e.shadow,this.shadowMap=null,this.vsmShadowMapVertical=null,this.vsmShadowMapHorizontal=null,this.vsmMaterialVertical=null,this.vsmMaterialHorizontal=null,this._node=null,this.isShadowNode=!0}setupShadowFilter(e,{filterFn:t,depthTexture:s,shadowCoord:n,shadow:r}){const i=n.x.greaterThanEqual(0).and(n.x.lessThanEqual(1)).and(n.y.greaterThanEqual(0)).and(n.y.lessThanEqual(1)).and(n.z.lessThanEqual(1)),a=t({depthTexture:s,shadowCoord:n,shadow:r});return i.select(a,g(1))}setupShadowCoord(e,t){const{shadow:s}=this,{renderer:n}=e,r=ne("bias","float",s).setGroup(k);let i=t,a;if(s.camera.isOrthographicCamera||n.logarithmicDepthBuffer!==!0)i=i.xyz.div(i.w),a=i.z,n.coordinateSystem===ln&&(a=a.mul(2).sub(1));else{const u=i.w;i=i.xy.div(u);const c=ne("near","float",s.camera).setGroup(k),l=ne("far","float",s.camera).setGroup(k);a=yu(u.negate(),c,l)}return i=T(i.x,i.y.oneMinus(),a.add(r)),i}getShadowFilterFn(e){return ZN[e]}setupShadow(e){const{renderer:t}=e,{light:s,shadow:n}=this,r=t.shadowMap.type,i=new vs(n.mapSize.width,n.mapSize.height);i.compareFunction=ua;const a=e.createRenderTarget(n.mapSize.width,n.mapSize.height);if(a.depthTexture=i,n.camera.updateProjectionMatrix(),r===fr){i.compareFunction=null,this.vsmShadowMapVertical=e.createRenderTarget(n.mapSize.width,n.mapSize.height,{format:Ln,type:pt}),this.vsmShadowMapHorizontal=e.createRenderTarget(n.mapSize.width,n.mapSize.height,{format:Ln,type:pt});const N=K(i),v=K(this.vsmShadowMapVertical.texture),w=ne("blurSamples","float",n).setGroup(k),B=ne("radius","float",n).setGroup(k),F=ne("mapSize","vec2",n).setGroup(k);let L=this.vsmMaterialVertical||(this.vsmMaterialVertical=new ce);L.fragmentNode=jN({samples:w,radius:B,size:F,shadowPass:N}).context(e.getSharedContext()),L.name="VSMVertical",L=this.vsmMaterialHorizontal||(this.vsmMaterialHorizontal=new ce),L.fragmentNode=QN({samples:w,radius:B,size:F,shadowPass:v}).context(e.getSharedContext()),L.name="VSMHorizontal"}const u=ne("intensity","float",n).setGroup(k),c=ne("normalBias","float",n).setGroup(k),l=Fu(s).mul(Lu.add(vi.mul(c))),d=this.setupShadowCoord(e,l),h=n.filterNode||this.getShadowFilterFn(t.shadowMap.type)||null;if(h===null)throw new Error("THREE.WebGPURenderer: Shadow map type not supported yet.");const p=r===fr?this.vsmShadowMapHorizontal.texture:i,f=this.setupShadowFilter(e,{filterFn:h,shadowTexture:a.texture,depthTexture:p,shadowCoord:d,shadow:n}),m=K(a.texture,d),x=Q(1,f.rgb.mix(m,1),u.mul(m.a)).toVar();return this.shadowMap=a,this.shadow.map=a,x}setup(e){if(e.renderer.shadowMap.enabled!==!1)return b(()=>{let t=this._node;return this.setupShadowPosition(e),t===null&&(this._node=t=this.setupShadow(e)),e.material.shadowNode&&console.warn('THREE.NodeMaterial: ".shadowNode" is deprecated. Use ".castShadowNode" instead.'),e.material.receivedShadowNode&&(t=e.material.receivedShadowNode(t)),t})()}renderShadow(e){const{shadow:t,shadowMap:s,light:n}=this,{renderer:r,scene:i}=e;t.updateMatrices(n),s.setSize(t.mapSize.width,t.mapSize.height),r.render(i,t.camera)}updateShadow(e){const{shadowMap:t,light:s,shadow:n}=this,{renderer:r,scene:i,camera:a}=e,u=r.shadowMap.type,c=t.depthTexture.version;this._depthVersionCached=c,n.camera.layers.mask=a.layers.mask;const l=r.getRenderObjectFunction(),d=r.getMRT(),h=d?d.has("velocity"):!1;eo=$f(r,i,eo),i.overrideMaterial=YN(s),r.setRenderObjectFunction((p,f,m,x,N,v,...w)=>{(p.castShadow===!0||p.receiveShadow&&u===fr)&&(h&&(ba(p).useVelocity=!0),p.onBeforeShadow(r,p,a,n.camera,x,f.overrideMaterial,v),r.renderObject(p,f,m,x,N,v,...w),p.onAfterShadow(r,p,a,n.camera,x,f.overrideMaterial,v))}),r.setRenderTarget(t),this.renderShadow(e),r.setRenderObjectFunction(l),s.isPointLight!==!0&&u===fr&&this.vsmPass(r),Hf(r,i,eo)}vsmPass(e){const{shadow:t}=this;this.vsmShadowMapVertical.setSize(t.mapSize.width,t.mapSize.height),this.vsmShadowMapHorizontal.setSize(t.mapSize.width,t.mapSize.height),e.setRenderTarget(this.vsmShadowMapVertical),Sr.material=this.vsmMaterialVertical,Sr.render(e),e.setRenderTarget(this.vsmShadowMapHorizontal),Sr.material=this.vsmMaterialHorizontal,Sr.render(e)}dispose(){this.shadowMap.dispose(),this.shadowMap=null,this.vsmShadowMapVertical!==null&&(this.vsmShadowMapVertical.dispose(),this.vsmShadowMapVertical=null,this.vsmMaterialVertical.dispose(),this.vsmMaterialVertical=null),this.vsmShadowMapHorizontal!==null&&(this.vsmShadowMapHorizontal.dispose(),this.vsmShadowMapHorizontal=null,this.vsmMaterialHorizontal.dispose(),this.vsmMaterialHorizontal=null),super.dispose()}updateBefore(e){const{shadow:t}=this;(t.needsUpdate||t.autoUpdate)&&(this.updateShadow(e),this.shadowMap.depthTexture.version===this._depthVersionCached&&(t.needsUpdate=!1))}}const Qf=(o,e)=>E(new jf(o,e));class Es extends hn{static get type(){return"AnalyticLightNode"}constructor(e=null){super(),this.light=e,this.color=new mt,this.colorNode=e&&e.colorNode||V(this.color).setGroup(k),this.baseColorNode=null,this.shadowNode=null,this.shadowColorNode=null,this.isAnalyticLightNode=!0,this.updateType=W.FRAME}customCacheKey(){return di(this.light.id,this.light.castShadow?1:0)}getHash(){return this.light.uuid}setupShadowNode(){return Qf(this.light)}setupShadow(e){const{renderer:t}=e;if(t.shadowMap.enabled===!1)return;let s=this.shadowColorNode;if(s===null){const n=this.light.shadow.shadowNode;let r;n!==void 0?r=E(n):r=this.setupShadowNode(e),this.shadowNode=r,this.shadowColorNode=s=this.colorNode.mul(r),this.baseColorNode=this.colorNode}this.colorNode=s}setup(e){this.colorNode=this.baseColorNode||this.colorNode,this.light.castShadow?e.object.receiveShadow&&this.setupShadow(e):this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null,this.shadowColorNode=null)}update(){const{light:e}=this;this.color.copy(e.color).multiplyScalar(e.intensity)}}const Gu=b(o=>{const{lightDistance:e,cutoffDistance:t,decayExponent:s}=o,n=e.pow(s).max(.01).reciprocal();return t.greaterThan(0).select(n.mul(e.div(t).pow4().oneMinus().clamp().pow2()),n)}),JN=new mt,Tt=b(([o,e])=>{const t=o.toVar(),s=oe(t),n=gt(1,ue(s.x,ue(s.y,s.z)));s.mulAssign(n),t.mulAssign(n.mul(e.mul(2).oneMinus()));const r=M(t.xy).toVar(),a=e.mul(1.5).oneMinus();return z(s.z.greaterThanEqual(a),()=>{z(t.z.greaterThan(0),()=>{r.x.assign(Y(4,t.x))})}).ElseIf(s.x.greaterThanEqual(a),()=>{const u=qn(t.x);r.x.assign(t.z.mul(u).add(u.mul(2)))}).ElseIf(s.y.greaterThanEqual(a),()=>{const u=qn(t.y);r.x.assign(t.x.add(u.mul(2)).add(2)),r.y.assign(t.z.mul(u).sub(2))}),M(.125,.25).mul(r).add(M(.375,.75)).flipY()}).setLayout({name:"cubeToUV",type:"vec2",inputs:[{name:"pos",type:"vec3"},{name:"texelSizeY",type:"float"}]}),eS=b(({depthTexture:o,bd3D:e,dp:t,texelSize:s})=>K(o,Tt(e,s.y)).compare(t)),tS=b(({depthTexture:o,bd3D:e,dp:t,texelSize:s,shadow:n})=>{const r=ne("radius","float",n).setGroup(k),i=M(-1,1).mul(r).mul(s.y);return K(o,Tt(e.add(i.xyy),s.y)).compare(t).add(K(o,Tt(e.add(i.yyy),s.y)).compare(t)).add(K(o,Tt(e.add(i.xyx),s.y)).compare(t)).add(K(o,Tt(e.add(i.yyx),s.y)).compare(t)).add(K(o,Tt(e,s.y)).compare(t)).add(K(o,Tt(e.add(i.xxy),s.y)).compare(t)).add(K(o,Tt(e.add(i.yxy),s.y)).compare(t)).add(K(o,Tt(e.add(i.xxx),s.y)).compare(t)).add(K(o,Tt(e.add(i.yxx),s.y)).compare(t)).mul(1/9)}),sS=b(({filterFn:o,depthTexture:e,shadowCoord:t,shadow:s})=>{const n=t.xyz.toVar(),r=n.length(),i=V("float").setGroup(k).onRenderUpdate(()=>s.camera.near),a=V("float").setGroup(k).onRenderUpdate(()=>s.camera.far),u=ne("bias","float",s).setGroup(k),c=V(s.mapSize).setGroup(k),l=g(1).toVar();return z(r.sub(a).lessThanEqual(0).and(r.sub(i).greaterThanEqual(0)),()=>{const d=r.sub(i).div(a.sub(i)).toVar();d.addAssign(u);const h=n.normalize(),p=M(1).div(c.mul(M(4,2)));l.assign(o({depthTexture:e,bd3D:h,dp:d,texelSize:p,shadow:s}))}),l}),Vc=new Me,Ps=new Ye,bn=new Ye;class nS extends jf{static get type(){return"PointShadowNode"}constructor(e,t=null){super(e,t)}getShadowFilterFn(e){return e===gm?eS:tS}setupShadowCoord(e,t){return t}setupShadowFilter(e,{filterFn:t,shadowTexture:s,depthTexture:n,shadowCoord:r,shadow:i}){return sS({filterFn:t,shadowTexture:s,depthTexture:n,shadowCoord:r,shadow:i})}renderShadow(e){const{shadow:t,shadowMap:s,light:n}=this,{renderer:r,scene:i}=e,a=t.getFrameExtents();bn.copy(t.mapSize),bn.multiply(a),s.setSize(bn.width,bn.height),Ps.copy(t.mapSize);const u=r.autoClear,c=r.getClearColor(JN),l=r.getClearAlpha();r.autoClear=!1,r.setClearColor(t.clearColor,t.clearAlpha),r.clear();const d=t.getViewportCount();for(let h=0;hE(new nS(o,e)),Zf=b(({color:o,lightViewPosition:e,cutoffDistance:t,decayExponent:s},n)=>{const r=n.context.lightingModel,i=e.sub(xe),a=i.normalize(),u=i.length(),c=Gu({lightDistance:u,cutoffDistance:t,decayExponent:s}),l=o.mul(c),d=n.context.reflectedLight;r.direct({lightDirection:a,lightColor:l,reflectedLight:d},n.stack,n)});class iS extends Es{static get type(){return"PointLightNode"}constructor(e=null){super(e),this.cutoffDistanceNode=V(0).setGroup(k),this.decayExponentNode=V(2).setGroup(k)}update(e){const{light:t}=this;super.update(e),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}setupShadowNode(){return rS(this.light)}setup(e){super.setup(e),Zf({color:this.colorNode,lightViewPosition:Pi(this.light),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode}).append()}}const oS=b(([o=le()])=>{const e=o.mul(2),t=e.x.floor(),s=e.y.floor();return t.add(s).mod(2).sign()}),Un=b(([o,e,t])=>{const s=g(t).toVar(),n=g(e).toVar(),r=Ht(o).toVar();return Ue(r,n,s)}).setLayout({name:"mx_select",type:"float",inputs:[{name:"b",type:"bool"},{name:"t",type:"float"},{name:"f",type:"float"}]}),ni=b(([o,e])=>{const t=Ht(e).toVar(),s=g(o).toVar();return Ue(t,s.negate(),s)}).setLayout({name:"mx_negate_if",type:"float",inputs:[{name:"val",type:"float"},{name:"b",type:"bool"}]}),Te=b(([o])=>{const e=g(o).toVar();return y(At(e))}).setLayout({name:"mx_floor",type:"int",inputs:[{name:"x",type:"float"}]}),he=b(([o,e])=>{const t=g(o).toVar();return e.assign(Te(t)),t.sub(g(e))}),aS=b(([o,e,t,s,n,r])=>{const i=g(r).toVar(),a=g(n).toVar(),u=g(s).toVar(),c=g(t).toVar(),l=g(e).toVar(),d=g(o).toVar(),h=g(Y(1,a)).toVar();return Y(1,i).mul(d.mul(h).add(l.mul(a))).add(i.mul(c.mul(h).add(u.mul(a))))}).setLayout({name:"mx_bilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"}]}),uS=b(([o,e,t,s,n,r])=>{const i=g(r).toVar(),a=g(n).toVar(),u=T(s).toVar(),c=T(t).toVar(),l=T(e).toVar(),d=T(o).toVar(),h=g(Y(1,a)).toVar();return Y(1,i).mul(d.mul(h).add(l.mul(a))).add(i.mul(c.mul(h).add(u.mul(a))))}).setLayout({name:"mx_bilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"}]}),Jf=Pe([aS,uS]),cS=b(([o,e,t,s,n,r,i,a,u,c,l])=>{const d=g(l).toVar(),h=g(c).toVar(),p=g(u).toVar(),f=g(a).toVar(),m=g(i).toVar(),x=g(r).toVar(),N=g(n).toVar(),v=g(s).toVar(),w=g(t).toVar(),B=g(e).toVar(),F=g(o).toVar(),L=g(Y(1,p)).toVar(),I=g(Y(1,h)).toVar();return g(Y(1,d)).toVar().mul(I.mul(F.mul(L).add(B.mul(p))).add(h.mul(w.mul(L).add(v.mul(p))))).add(d.mul(I.mul(N.mul(L).add(x.mul(p))).add(h.mul(m.mul(L).add(f.mul(p))))))}).setLayout({name:"mx_trilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"v4",type:"float"},{name:"v5",type:"float"},{name:"v6",type:"float"},{name:"v7",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]}),lS=b(([o,e,t,s,n,r,i,a,u,c,l])=>{const d=g(l).toVar(),h=g(c).toVar(),p=g(u).toVar(),f=T(a).toVar(),m=T(i).toVar(),x=T(r).toVar(),N=T(n).toVar(),v=T(s).toVar(),w=T(t).toVar(),B=T(e).toVar(),F=T(o).toVar(),L=g(Y(1,p)).toVar(),I=g(Y(1,h)).toVar();return g(Y(1,d)).toVar().mul(I.mul(F.mul(L).add(B.mul(p))).add(h.mul(w.mul(L).add(v.mul(p))))).add(d.mul(I.mul(N.mul(L).add(x.mul(p))).add(h.mul(m.mul(L).add(f.mul(p))))))}).setLayout({name:"mx_trilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"v4",type:"vec3"},{name:"v5",type:"vec3"},{name:"v6",type:"vec3"},{name:"v7",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]}),eg=Pe([cS,lS]),dS=b(([o,e,t])=>{const s=g(t).toVar(),n=g(e).toVar(),r=D(o).toVar(),i=D(r.bitAnd(D(7))).toVar(),a=g(Un(i.lessThan(D(4)),n,s)).toVar(),u=g($(2,Un(i.lessThan(D(4)),s,n))).toVar();return ni(a,Ht(i.bitAnd(D(1)))).add(ni(u,Ht(i.bitAnd(D(2)))))}).setLayout({name:"mx_gradient_float_0",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"}]}),hS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=g(e).toVar(),a=D(o).toVar(),u=D(a.bitAnd(D(15))).toVar(),c=g(Un(u.lessThan(D(8)),i,r)).toVar(),l=g(Un(u.lessThan(D(4)),r,Un(u.equal(D(12)).or(u.equal(D(14))),i,n))).toVar();return ni(c,Ht(u.bitAnd(D(1)))).add(ni(l,Ht(u.bitAnd(D(2)))))}).setLayout({name:"mx_gradient_float_1",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]}),Ee=Pe([dS,hS]),pS=b(([o,e,t])=>{const s=g(t).toVar(),n=g(e).toVar(),r=dn(o).toVar();return T(Ee(r.x,n,s),Ee(r.y,n,s),Ee(r.z,n,s))}).setLayout({name:"mx_gradient_vec3_0",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"}]}),fS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=g(e).toVar(),a=dn(o).toVar();return T(Ee(a.x,i,r,n),Ee(a.y,i,r,n),Ee(a.z,i,r,n))}).setLayout({name:"mx_gradient_vec3_1",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]}),nt=Pe([pS,fS]),gS=b(([o])=>{const e=g(o).toVar();return $(.6616,e)}).setLayout({name:"mx_gradient_scale2d_0",type:"float",inputs:[{name:"v",type:"float"}]}),mS=b(([o])=>{const e=g(o).toVar();return $(.982,e)}).setLayout({name:"mx_gradient_scale3d_0",type:"float",inputs:[{name:"v",type:"float"}]}),yS=b(([o])=>{const e=T(o).toVar();return $(.6616,e)}).setLayout({name:"mx_gradient_scale2d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]}),tg=Pe([gS,yS]),xS=b(([o])=>{const e=T(o).toVar();return $(.982,e)}).setLayout({name:"mx_gradient_scale3d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]}),sg=Pe([mS,xS]),tt=b(([o,e])=>{const t=y(e).toVar(),s=D(o).toVar();return s.shiftLeft(t).bitOr(s.shiftRight(y(32).sub(t)))}).setLayout({name:"mx_rotl32",type:"uint",inputs:[{name:"x",type:"uint"},{name:"k",type:"int"}]}),ng=b(([o,e,t])=>{o.subAssign(t),o.bitXorAssign(tt(t,y(4))),t.addAssign(e),e.subAssign(o),e.bitXorAssign(tt(o,y(6))),o.addAssign(t),t.subAssign(e),t.bitXorAssign(tt(e,y(8))),e.addAssign(o),o.subAssign(t),o.bitXorAssign(tt(t,y(16))),t.addAssign(e),e.subAssign(o),e.bitXorAssign(tt(o,y(19))),o.addAssign(t),t.subAssign(e),t.bitXorAssign(tt(e,y(4))),e.addAssign(o)}),pr=b(([o,e,t])=>{const s=D(t).toVar(),n=D(e).toVar(),r=D(o).toVar();return s.bitXorAssign(n),s.subAssign(tt(n,y(14))),r.bitXorAssign(s),r.subAssign(tt(s,y(11))),n.bitXorAssign(r),n.subAssign(tt(r,y(25))),s.bitXorAssign(n),s.subAssign(tt(n,y(16))),r.bitXorAssign(s),r.subAssign(tt(s,y(4))),n.bitXorAssign(r),n.subAssign(tt(r,y(14))),s.bitXorAssign(n),s.subAssign(tt(n,y(24))),s}).setLayout({name:"mx_bjfinal",type:"uint",inputs:[{name:"a",type:"uint"},{name:"b",type:"uint"},{name:"c",type:"uint"}]}),Ge=b(([o])=>{const e=D(o).toVar();return g(e).div(g(D(y(4294967295))))}).setLayout({name:"mx_bits_to_01",type:"float",inputs:[{name:"bits",type:"uint"}]}),Rt=b(([o])=>{const e=g(o).toVar();return e.mul(e).mul(e).mul(e.mul(e.mul(6).sub(15)).add(10))}).setLayout({name:"mx_fade",type:"float",inputs:[{name:"t",type:"float"}]}),TS=b(([o])=>{const e=y(o).toVar(),t=D(D(1)).toVar(),s=D(D(y(3735928559)).add(t.shiftLeft(D(2))).add(D(13))).toVar();return pr(s.add(D(e)),s,s)}).setLayout({name:"mx_hash_int_0",type:"uint",inputs:[{name:"x",type:"int"}]}),_S=b(([o,e])=>{const t=y(e).toVar(),s=y(o).toVar(),n=D(D(2)).toVar(),r=D().toVar(),i=D().toVar(),a=D().toVar();return r.assign(i.assign(a.assign(D(y(3735928559)).add(n.shiftLeft(D(2))).add(D(13))))),r.addAssign(D(s)),i.addAssign(D(t)),pr(r,i,a)}).setLayout({name:"mx_hash_int_1",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),bS=b(([o,e,t])=>{const s=y(t).toVar(),n=y(e).toVar(),r=y(o).toVar(),i=D(D(3)).toVar(),a=D().toVar(),u=D().toVar(),c=D().toVar();return a.assign(u.assign(c.assign(D(y(3735928559)).add(i.shiftLeft(D(2))).add(D(13))))),a.addAssign(D(r)),u.addAssign(D(n)),c.addAssign(D(s)),pr(a,u,c)}).setLayout({name:"mx_hash_int_2",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]}),NS=b(([o,e,t,s])=>{const n=y(s).toVar(),r=y(t).toVar(),i=y(e).toVar(),a=y(o).toVar(),u=D(D(4)).toVar(),c=D().toVar(),l=D().toVar(),d=D().toVar();return c.assign(l.assign(d.assign(D(y(3735928559)).add(u.shiftLeft(D(2))).add(D(13))))),c.addAssign(D(a)),l.addAssign(D(i)),d.addAssign(D(r)),ng(c,l,d),c.addAssign(D(n)),pr(c,l,d)}).setLayout({name:"mx_hash_int_3",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"}]}),SS=b(([o,e,t,s,n])=>{const r=y(n).toVar(),i=y(s).toVar(),a=y(t).toVar(),u=y(e).toVar(),c=y(o).toVar(),l=D(D(5)).toVar(),d=D().toVar(),h=D().toVar(),p=D().toVar();return d.assign(h.assign(p.assign(D(y(3735928559)).add(l.shiftLeft(D(2))).add(D(13))))),d.addAssign(D(c)),h.addAssign(D(u)),p.addAssign(D(a)),ng(d,h,p),d.addAssign(D(i)),h.addAssign(D(r)),pr(d,h,p)}).setLayout({name:"mx_hash_int_4",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"},{name:"yy",type:"int"}]}),re=Pe([TS,_S,bS,NS,SS]),vS=b(([o,e])=>{const t=y(e).toVar(),s=y(o).toVar(),n=D(re(s,t)).toVar(),r=dn().toVar();return r.x.assign(n.bitAnd(y(255))),r.y.assign(n.shiftRight(y(8)).bitAnd(y(255))),r.z.assign(n.shiftRight(y(16)).bitAnd(y(255))),r}).setLayout({name:"mx_hash_vec3_0",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),AS=b(([o,e,t])=>{const s=y(t).toVar(),n=y(e).toVar(),r=y(o).toVar(),i=D(re(r,n,s)).toVar(),a=dn().toVar();return a.x.assign(i.bitAnd(y(255))),a.y.assign(i.shiftRight(y(8)).bitAnd(y(255))),a.z.assign(i.shiftRight(y(16)).bitAnd(y(255))),a}).setLayout({name:"mx_hash_vec3_1",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]}),rt=Pe([vS,AS]),RS=b(([o])=>{const e=M(o).toVar(),t=y().toVar(),s=y().toVar(),n=g(he(e.x,t)).toVar(),r=g(he(e.y,s)).toVar(),i=g(Rt(n)).toVar(),a=g(Rt(r)).toVar(),u=g(Jf(Ee(re(t,s),n,r),Ee(re(t.add(y(1)),s),n.sub(1),r),Ee(re(t,s.add(y(1))),n,r.sub(1)),Ee(re(t.add(y(1)),s.add(y(1))),n.sub(1),r.sub(1)),i,a)).toVar();return tg(u)}).setLayout({name:"mx_perlin_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"}]}),CS=b(([o])=>{const e=T(o).toVar(),t=y().toVar(),s=y().toVar(),n=y().toVar(),r=g(he(e.x,t)).toVar(),i=g(he(e.y,s)).toVar(),a=g(he(e.z,n)).toVar(),u=g(Rt(r)).toVar(),c=g(Rt(i)).toVar(),l=g(Rt(a)).toVar(),d=g(eg(Ee(re(t,s,n),r,i,a),Ee(re(t.add(y(1)),s,n),r.sub(1),i,a),Ee(re(t,s.add(y(1)),n),r,i.sub(1),a),Ee(re(t.add(y(1)),s.add(y(1)),n),r.sub(1),i.sub(1),a),Ee(re(t,s,n.add(y(1))),r,i,a.sub(1)),Ee(re(t.add(y(1)),s,n.add(y(1))),r.sub(1),i,a.sub(1)),Ee(re(t,s.add(y(1)),n.add(y(1))),r,i.sub(1),a.sub(1)),Ee(re(t.add(y(1)),s.add(y(1)),n.add(y(1))),r.sub(1),i.sub(1),a.sub(1)),u,c,l)).toVar();return sg(d)}).setLayout({name:"mx_perlin_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"}]}),Ou=Pe([RS,CS]),ES=b(([o])=>{const e=M(o).toVar(),t=y().toVar(),s=y().toVar(),n=g(he(e.x,t)).toVar(),r=g(he(e.y,s)).toVar(),i=g(Rt(n)).toVar(),a=g(Rt(r)).toVar(),u=T(Jf(nt(rt(t,s),n,r),nt(rt(t.add(y(1)),s),n.sub(1),r),nt(rt(t,s.add(y(1))),n,r.sub(1)),nt(rt(t.add(y(1)),s.add(y(1))),n.sub(1),r.sub(1)),i,a)).toVar();return tg(u)}).setLayout({name:"mx_perlin_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),wS=b(([o])=>{const e=T(o).toVar(),t=y().toVar(),s=y().toVar(),n=y().toVar(),r=g(he(e.x,t)).toVar(),i=g(he(e.y,s)).toVar(),a=g(he(e.z,n)).toVar(),u=g(Rt(r)).toVar(),c=g(Rt(i)).toVar(),l=g(Rt(a)).toVar(),d=T(eg(nt(rt(t,s,n),r,i,a),nt(rt(t.add(y(1)),s,n),r.sub(1),i,a),nt(rt(t,s.add(y(1)),n),r,i.sub(1),a),nt(rt(t.add(y(1)),s.add(y(1)),n),r.sub(1),i.sub(1),a),nt(rt(t,s,n.add(y(1))),r,i,a.sub(1)),nt(rt(t.add(y(1)),s,n.add(y(1))),r.sub(1),i,a.sub(1)),nt(rt(t,s.add(y(1)),n.add(y(1))),r,i.sub(1),a.sub(1)),nt(rt(t.add(y(1)),s.add(y(1)),n.add(y(1))),r.sub(1),i.sub(1),a.sub(1)),u,c,l)).toVar();return sg(d)}).setLayout({name:"mx_perlin_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),ku=Pe([ES,wS]),MS=b(([o])=>{const e=g(o).toVar(),t=y(Te(e)).toVar();return Ge(re(t))}).setLayout({name:"mx_cell_noise_float_0",type:"float",inputs:[{name:"p",type:"float"}]}),BS=b(([o])=>{const e=M(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar();return Ge(re(t,s))}).setLayout({name:"mx_cell_noise_float_1",type:"float",inputs:[{name:"p",type:"vec2"}]}),FS=b(([o])=>{const e=T(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar();return Ge(re(t,s,n))}).setLayout({name:"mx_cell_noise_float_2",type:"float",inputs:[{name:"p",type:"vec3"}]}),US=b(([o])=>{const e=P(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar(),r=y(Te(e.w)).toVar();return Ge(re(t,s,n,r))}).setLayout({name:"mx_cell_noise_float_3",type:"float",inputs:[{name:"p",type:"vec4"}]}),PS=Pe([MS,BS,FS,US]),DS=b(([o])=>{const e=g(o).toVar(),t=y(Te(e)).toVar();return T(Ge(re(t,y(0))),Ge(re(t,y(1))),Ge(re(t,y(2))))}).setLayout({name:"mx_cell_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"float"}]}),LS=b(([o])=>{const e=M(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar();return T(Ge(re(t,s,y(0))),Ge(re(t,s,y(1))),Ge(re(t,s,y(2))))}).setLayout({name:"mx_cell_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),IS=b(([o])=>{const e=T(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar();return T(Ge(re(t,s,n,y(0))),Ge(re(t,s,n,y(1))),Ge(re(t,s,n,y(2))))}).setLayout({name:"mx_cell_noise_vec3_2",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),VS=b(([o])=>{const e=P(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar(),r=y(Te(e.w)).toVar();return T(Ge(re(t,s,n,r,y(0))),Ge(re(t,s,n,r,y(1))),Ge(re(t,s,n,r,y(2))))}).setLayout({name:"mx_cell_noise_vec3_3",type:"vec3",inputs:[{name:"p",type:"vec4"}]}),rg=Pe([DS,LS,IS,VS]),ri=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar(),u=g(0).toVar(),c=g(1).toVar();return te(i,()=>{u.addAssign(c.mul(Ou(a))),c.mulAssign(n),a.mulAssign(r)}),u}).setLayout({name:"mx_fractal_noise_float",type:"float",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),ig=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar(),u=T(0).toVar(),c=g(1).toVar();return te(i,()=>{u.addAssign(c.mul(ku(a))),c.mulAssign(n),a.mulAssign(r)}),u}).setLayout({name:"mx_fractal_noise_vec3",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),GS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar();return M(ri(a,i,r,n),ri(a.add(T(y(19),y(193),y(17))),i,r,n))}).setLayout({name:"mx_fractal_noise_vec2",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),OS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar(),u=T(ig(a,i,r,n)).toVar(),c=g(ri(a.add(T(y(19),y(193),y(17))),i,r,n)).toVar();return P(u,c)}).setLayout({name:"mx_fractal_noise_vec4",type:"vec4",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),kS=b(([o,e,t,s,n,r,i])=>{const a=y(i).toVar(),u=g(r).toVar(),c=y(n).toVar(),l=y(s).toVar(),d=y(t).toVar(),h=y(e).toVar(),p=M(o).toVar(),f=T(rg(M(h.add(l),d.add(c)))).toVar(),m=M(f.x,f.y).toVar();m.subAssign(.5),m.mulAssign(u),m.addAssign(.5);const x=M(M(g(h),g(d)).add(m)).toVar(),N=M(x.sub(p)).toVar();return z(a.equal(y(2)),()=>oe(N.x).add(oe(N.y))),z(a.equal(y(3)),()=>ue(oe(N.x),oe(N.y))),is(N,N)}).setLayout({name:"mx_worley_distance_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),zS=b(([o,e,t,s,n,r,i,a,u])=>{const c=y(u).toVar(),l=g(a).toVar(),d=y(i).toVar(),h=y(r).toVar(),p=y(n).toVar(),f=y(s).toVar(),m=y(t).toVar(),x=y(e).toVar(),N=T(o).toVar(),v=T(rg(T(x.add(p),m.add(h),f.add(d)))).toVar();v.subAssign(.5),v.mulAssign(l),v.addAssign(.5);const w=T(T(g(x),g(m),g(f)).add(v)).toVar(),B=T(w.sub(N)).toVar();return z(c.equal(y(2)),()=>oe(B.x).add(oe(B.y)).add(oe(B.z))),z(c.equal(y(3)),()=>ue(ue(oe(B.x),oe(B.y)),oe(B.z))),is(B,B)}).setLayout({name:"mx_worley_distance_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"zoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),pn=Pe([kS,zS]),WS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=M(o).toVar(),i=y().toVar(),a=y().toVar(),u=M(he(r.x,i),he(r.y,a)).toVar(),c=g(1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:l})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:d})=>{const h=g(pn(u,l,d,i,a,n,s)).toVar();c.assign(Re(c,h))})}),z(s.equal(y(0)),()=>{c.assign(Pt(c))}),c}).setLayout({name:"mx_worley_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),$S=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=M(o).toVar(),i=y().toVar(),a=y().toVar(),u=M(he(r.x,i),he(r.y,a)).toVar(),c=M(1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:l})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:d})=>{const h=g(pn(u,l,d,i,a,n,s)).toVar();z(h.lessThan(c.x),()=>{c.y.assign(c.x),c.x.assign(h)}).ElseIf(h.lessThan(c.y),()=>{c.y.assign(h)})})}),z(s.equal(y(0)),()=>{c.assign(Pt(c))}),c}).setLayout({name:"mx_worley_noise_vec2_0",type:"vec2",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),HS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=M(o).toVar(),i=y().toVar(),a=y().toVar(),u=M(he(r.x,i),he(r.y,a)).toVar(),c=T(1e6,1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:l})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:d})=>{const h=g(pn(u,l,d,i,a,n,s)).toVar();z(h.lessThan(c.x),()=>{c.z.assign(c.y),c.y.assign(c.x),c.x.assign(h)}).ElseIf(h.lessThan(c.y),()=>{c.z.assign(c.y),c.y.assign(h)}).ElseIf(h.lessThan(c.z),()=>{c.z.assign(h)})})}),z(s.equal(y(0)),()=>{c.assign(Pt(c))}),c}).setLayout({name:"mx_worley_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),qS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=T(o).toVar(),i=y().toVar(),a=y().toVar(),u=y().toVar(),c=T(he(r.x,i),he(r.y,a),he(r.z,u)).toVar(),l=g(1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:d})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:h})=>{te({start:-1,end:y(1),name:"z",condition:"<="},({z:p})=>{const f=g(pn(c,d,h,p,i,a,u,n,s)).toVar();l.assign(Re(l,f))})})}),z(s.equal(y(0)),()=>{l.assign(Pt(l))}),l}).setLayout({name:"mx_worley_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),KS=Pe([WS,qS]),XS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=T(o).toVar(),i=y().toVar(),a=y().toVar(),u=y().toVar(),c=T(he(r.x,i),he(r.y,a),he(r.z,u)).toVar(),l=M(1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:d})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:h})=>{te({start:-1,end:y(1),name:"z",condition:"<="},({z:p})=>{const f=g(pn(c,d,h,p,i,a,u,n,s)).toVar();z(f.lessThan(l.x),()=>{l.y.assign(l.x),l.x.assign(f)}).ElseIf(f.lessThan(l.y),()=>{l.y.assign(f)})})})}),z(s.equal(y(0)),()=>{l.assign(Pt(l))}),l}).setLayout({name:"mx_worley_noise_vec2_1",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),YS=Pe([$S,XS]),jS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=T(o).toVar(),i=y().toVar(),a=y().toVar(),u=y().toVar(),c=T(he(r.x,i),he(r.y,a),he(r.z,u)).toVar(),l=T(1e6,1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:d})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:h})=>{te({start:-1,end:y(1),name:"z",condition:"<="},({z:p})=>{const f=g(pn(c,d,h,p,i,a,u,n,s)).toVar();z(f.lessThan(l.x),()=>{l.z.assign(l.y),l.y.assign(l.x),l.x.assign(f)}).ElseIf(f.lessThan(l.y),()=>{l.z.assign(l.y),l.y.assign(f)}).ElseIf(f.lessThan(l.z),()=>{l.z.assign(f)})})})}),z(s.equal(y(0)),()=>{l.assign(Pt(l))}),l}).setLayout({name:"mx_worley_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),QS=Pe([HS,jS]),ZS=b(([o])=>{const e=o.y,t=o.z,s=T().toVar();return z(e.lessThan(1e-4),()=>{s.assign(T(t,t,t))}).Else(()=>{let n=o.x;n=n.sub(At(n)).mul(6).toVar();const r=y(Ka(n)),i=n.sub(g(r)),a=t.mul(e.oneMinus()),u=t.mul(e.mul(i).oneMinus()),c=t.mul(e.mul(i.oneMinus()).oneMinus());z(r.equal(y(0)),()=>{s.assign(T(t,c,a))}).ElseIf(r.equal(y(1)),()=>{s.assign(T(u,t,a))}).ElseIf(r.equal(y(2)),()=>{s.assign(T(a,t,c))}).ElseIf(r.equal(y(3)),()=>{s.assign(T(a,u,t))}).ElseIf(r.equal(y(4)),()=>{s.assign(T(c,a,t))}).Else(()=>{s.assign(T(t,a,u))})}),s}).setLayout({name:"mx_hsvtorgb",type:"vec3",inputs:[{name:"hsv",type:"vec3"}]}),JS=b(([o])=>{const e=T(o).toVar(),t=g(e.x).toVar(),s=g(e.y).toVar(),n=g(e.z).toVar(),r=g(Re(t,Re(s,n))).toVar(),i=g(ue(t,ue(s,n))).toVar(),a=g(i.sub(r)).toVar(),u=g().toVar(),c=g().toVar(),l=g().toVar();return l.assign(i),z(i.greaterThan(0),()=>{c.assign(a.div(i))}).Else(()=>{c.assign(0)}),z(c.lessThanEqual(0),()=>{u.assign(0)}).Else(()=>{z(t.greaterThanEqual(i),()=>{u.assign(s.sub(n).div(a))}).ElseIf(s.greaterThanEqual(i),()=>{u.assign(_e(2,n.sub(t).div(a)))}).Else(()=>{u.assign(_e(4,t.sub(s).div(a)))}),u.mulAssign(1/6),z(u.lessThan(0),()=>{u.addAssign(1)})}),T(u,c,l)}).setLayout({name:"mx_rgbtohsv",type:"vec3",inputs:[{name:"c",type:"vec3"}]}),ev=b(([o])=>{const e=T(o).toVar(),t=wa(Oa(e,T(.04045))).toVar(),s=T(e.div(12.92)).toVar(),n=T(ht(ue(e.add(T(.055)),T(0)).div(1.055),T(2.4))).toVar();return Q(s,n,t)}).setLayout({name:"mx_srgb_texture_to_lin_rec709",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),og=(o,e)=>{o=g(o),e=g(e);const t=M(e.dFdx(),e.dFdy()).length().mul(.7071067811865476);return ct(o.sub(t),o.add(t),e)},ag=(o,e,t,s)=>Q(o,e,t[s].clamp()),tv=(o,e,t=le())=>ag(o,e,t,"x"),sv=(o,e,t=le())=>ag(o,e,t,"y"),ug=(o,e,t,s,n)=>Q(o,e,og(t,s[n])),nv=(o,e,t,s=le())=>ug(o,e,t,s,"x"),rv=(o,e,t,s=le())=>ug(o,e,t,s,"y"),iv=(o=1,e=0,t=le())=>t.mul(o).add(e),ov=(o,e=1)=>(o=g(o),o.abs().pow(e).mul(o.sign())),av=(o,e=1,t=.5)=>g(o).sub(t).mul(e).add(t),uv=(o=le(),e=1,t=0)=>Ou(o.convert("vec2|vec3")).mul(e).add(t),cv=(o=le(),e=1,t=0)=>ku(o.convert("vec2|vec3")).mul(e).add(t),lv=(o=le(),e=1,t=0)=>(o=o.convert("vec2|vec3"),P(ku(o),Ou(o.add(M(19,73)))).mul(e).add(t)),dv=(o=le(),e=1)=>KS(o.convert("vec2|vec3"),e,y(1)),hv=(o=le(),e=1)=>YS(o.convert("vec2|vec3"),e,y(1)),pv=(o=le(),e=1)=>QS(o.convert("vec2|vec3"),e,y(1)),fv=(o=le())=>PS(o.convert("vec2|vec3")),gv=(o=le(),e=3,t=2,s=.5,n=1)=>ri(o,y(e),t,s).mul(n),mv=(o=le(),e=3,t=2,s=.5,n=1)=>GS(o,y(e),t,s).mul(n),yv=(o=le(),e=3,t=2,s=.5,n=1)=>ig(o,y(e),t,s).mul(n),xv=(o=le(),e=3,t=2,s=.5,n=1)=>OS(o,y(e),t,s).mul(n),Tv=b(([o,e,t])=>{const s=qt(o).toVar("nDir"),n=Y(g(.5).mul(e.sub(t)),Wt).div(s).toVar("rbmax"),r=Y(g(-.5).mul(e.sub(t)),Wt).div(s).toVar("rbmin"),i=T().toVar("rbminmax");i.x=s.x.greaterThan(g(0)).select(n.x,r.x),i.y=s.y.greaterThan(g(0)).select(n.y,r.y),i.z=s.z.greaterThan(g(0)).select(n.z,r.z);const a=Re(Re(i.x,i.y),i.z).toVar("correction");return Wt.add(s.mul(a)).toVar("boxIntersection").sub(t)}),cg=b(([o,e])=>{const t=o.x,s=o.y,n=o.z;let r=e.element(0).mul(.886227);return r=r.add(e.element(1).mul(2*.511664).mul(s)),r=r.add(e.element(2).mul(2*.511664).mul(n)),r=r.add(e.element(3).mul(2*.511664).mul(t)),r=r.add(e.element(4).mul(2*.429043).mul(t).mul(s)),r=r.add(e.element(5).mul(2*.429043).mul(s).mul(n)),r=r.add(e.element(6).mul(n.mul(n).mul(.743125).sub(.247708))),r=r.add(e.element(7).mul(2*.429043).mul(t).mul(n)),r=r.add(e.element(8).mul(.429043).mul($(t,t).sub($(s,s)))),r});var mR=Object.freeze({__proto__:null,BRDF_GGX:jo,BRDF_Lambert:Ns,BasicShadowFilter:qf,Break:pu,Continue:Ex,DFGApprox:Nu,D_GGX:Xp,Discard:Fh,EPSILON:Gd,F_Schlick:un,Fn:b,INFINITY:Ny,If:z,Loop:te,NodeAccess:Ve,NodeShaderStage:Oo,NodeType:Zm,NodeUpdateType:W,PCFShadowFilter:Kf,PCFSoftShadowFilter:Xf,PI:Qr,PI2:Sy,Return:Vy,Schlick_to_F0:jp,ScriptableNodeResources:Wr,ShaderNode:Cn,TBNViewMatrix:gs,VSMShadowFilter:Yf,V_GGX_SmithCorrelated:Kp,abs:oe,acesFilmicToneMapping:Bf,acos:Hd,add:_e,addMethodChaining:R,addNodeElement:Oy,agxToneMapping:Ff,all:ka,alphaT:Xr,and:Ed,anisotropy:Zt,anisotropyB:_s,anisotropyT:En,any:Od,append:ud,arrayBuffer:yy,asin:$d,assign:bd,atan:$a,atan2:lh,atomicAdd:DN,atomicAnd:GN,atomicFunc:Yt,atomicMax:IN,atomicMin:VN,atomicOr:ON,atomicStore:PN,atomicSub:LN,atomicXor:kN,attenuationColor:Ia,attenuationDistance:La,attribute:we,attributeArray:Eb,backgroundBlurriness:Tf,backgroundIntensity:sa,backgroundRotation:_f,batch:Mp,billboarding:ab,bitAnd:Fd,bitNot:Ud,bitOr:Pd,bitXor:Dd,bitangentGeometry:lx,bitangentLocal:dx,bitangentView:Yh,bitangentWorld:hx,bitcast:vy,blendBurn:Sf,blendColor:Ob,blendDodge:vf,blendOverlay:Rf,blendScreen:Af,blur:sf,bool:Ht,buffer:ir,bufferAttribute:nr,bumpMap:Jh,burn:kb,bvec2:dd,bvec3:wa,bvec4:gd,bypass:Eh,cache:Mn,call:Nd,cameraFar:es,cameraNear:Jt,cameraNormalMatrix:qy,cameraPosition:su,cameraProjectionMatrix:He,cameraProjectionMatrixInverse:$y,cameraViewMatrix:je,cameraWorldMatrix:Hy,cbrt:ih,cdl:Yb,ceil:xi,checker:oS,cineonToneMapping:Mf,clamp:Et,clearcoat:Kr,clearcoatRoughness:zn,code:Fi,color:cd,colorSpaceToWorking:eu,colorToDirection:rT,compute:Ch,cond:dh,context:bi,convert:yd,convertColorSpace:wy,convertToTexture:_b,cos:It,cross:_i,cubeTexture:on,dFdx:Ha,dFdy:qa,dashSize:bs,defaultBuildStages:ko,defaultShaderStages:sd,defined:Gn,degrees:zd,deltaTime:gf,densityFog:xN,densityFogFactor:Mu,depth:xu,depthPass:tN,difference:th,diffuseColor:ee,directPointLight:Zf,directionToColor:Op,dispersion:Va,distance:eh,div:gt,dodge:zb,dot:is,drawIndex:Cp,dynamicBufferAttribute:Rh,element:md,emissive:Ho,equal:Sd,equals:Zd,equirectUV:Tu,exp:za,exp2:rn,expression:rs,faceDirection:rr,faceForward:Za,faceforward:Ay,float:g,floor:At,fog:Xn,fract:Xt,frameGroup:_d,frameId:Q_,frontFacing:Gh,fwidth:jd,gain:$_,gapSize:Hn,getConstNodeType:ad,getCurrentStack:Ea,getDirection:ef,getDistanceAttenuation:Gu,getGeometryRoughness:qp,getNormalFromDepth:Nb,getParallaxCorrectNormal:Tv,getRoughness:bu,getScreenPosition:bb,getShIrradianceAt:cg,getTextureIndex:pf,getViewPosition:ks,glsl:lN,glslFn:dN,grayscale:Hb,greaterThan:Oa,greaterThanEqual:Cd,hash:W_,highpModelNormalViewMatrix:sx,highpModelViewMatrix:tx,hue:Xb,instance:Sx,instanceIndex:lr,instancedArray:wb,instancedBufferAttribute:Zr,instancedDynamicBufferAttribute:qo,instancedMesh:wp,int:y,inverseSqrt:Wa,inversesqrt:Ry,invocationLocalIndex:Nx,invocationSubgroupIndex:bx,ior:wn,iridescence:mi,iridescenceIOR:Ua,iridescenceThickness:Pa,ivec2:Ae,ivec3:hd,ivec4:pd,js:uN,label:ph,length:zt,lengthSq:ja,lessThan:Ad,lessThanEqual:Rd,lightPosition:Uu,lightProjectionUV:Vf,lightShadowMatrix:Fu,lightTargetDirection:Pu,lightTargetPosition:Gf,lightViewPosition:Pi,lightingContext:Pp,lights:$N,linearDepth:ei,linearToneMapping:Ef,localId:vN,log:yi,log2:vt,logarithmicDepthToViewZ:zx,loop:wx,luminance:Eu,mat2:fi,mat3:Oe,mat4:Ts,matcapUV:of,materialAO:Ap,materialAlphaTest:ep,materialAnisotropy:fp,materialAnisotropyVector:Os,materialAttenuationColor:Np,materialAttenuationDistance:bp,materialClearcoat:up,materialClearcoatNormal:lp,materialClearcoatRoughness:cp,materialColor:an,materialDispersion:vp,materialEmissive:sp,materialIOR:_p,materialIridescence:gp,materialIridescenceIOR:mp,materialIridescenceThickness:yp,materialLightMap:du,materialLineDashOffset:lu,materialLineDashSize:uu,materialLineGapSize:cu,materialLineScale:au,materialLineWidth:Or,materialMetalness:op,materialNormal:ap,materialOpacity:cr,materialPointWidth:Sp,materialReference:dt,materialReflectivity:Gr,materialRefractionRatio:zh,materialRotation:dp,materialRoughness:ip,materialSheen:hp,materialSheenRoughness:pp,materialShininess:tp,materialSpecular:np,materialSpecularColor:rp,materialSpecularIntensity:Yo,materialSpecularStrength:Bn,materialThickness:Tp,materialTransmission:xp,max:ue,maxMipLevel:Ph,mediumpModelViewMatrix:Vh,metalness:kn,min:Re,mix:Q,mixElement:uh,mod:Xa,modInt:Ga,modelDirection:Qy,modelNormalMatrix:Lh,modelPosition:Zy,modelScale:Jy,modelViewMatrix:Kt,modelViewPosition:ex,modelViewProjection:hu,modelWorldMatrix:at,modelWorldMatrixInverse:Ih,morphReference:Up,mrt:ff,mul:$,mx_aastep:og,mx_cell_noise_float:fv,mx_contrast:av,mx_fractal_noise_float:gv,mx_fractal_noise_vec2:mv,mx_fractal_noise_vec3:yv,mx_fractal_noise_vec4:xv,mx_hsvtorgb:ZS,mx_noise_float:uv,mx_noise_vec3:cv,mx_noise_vec4:lv,mx_ramplr:tv,mx_ramptb:sv,mx_rgbtohsv:JS,mx_safepower:ov,mx_splitlr:nv,mx_splittb:rv,mx_srgb_texture_to_lin_rec709:ev,mx_transform_uv:iv,mx_worley_noise_float:dv,mx_worley_noise_vec2:hv,mx_worley_noise_vec3:pv,negate:qd,neutralToneMapping:Uf,nodeArray:xs,nodeImmutable:U,nodeObject:E,nodeObjects:Jn,nodeProxy:C,normalFlat:Oh,normalGeometry:Ni,normalLocal:Xe,normalMap:Xo,normalView:lt,normalWorld:Si,normalize:qt,not:Md,notEqual:vd,numWorkgroups:NN,objectDirection:Ky,objectGroup:Ba,objectPosition:Dh,objectScale:Yy,objectViewPosition:jy,objectWorldMatrix:Xy,oneMinus:Kd,or:wd,orthographicDepthToViewZ:kx,oscSawtooth:rb,oscSine:tb,oscSquare:sb,oscTriangle:nb,output:$n,outputStruct:k_,overlay:$b,overloadingFn:Pe,parabola:ta,parallaxDirection:Qh,parallaxUV:fx,parameter:G_,pass:Jb,passTexture:eN,pcurve:H_,perspectiveDepthToViewZ:mu,pmremTexture:vu,pointUV:Ub,pointWidth:Ty,positionGeometry:Ce,positionLocal:me,positionPrevious:Jr,positionView:xe,positionViewDirection:ae,positionWorld:Wt,positionWorldDirection:nu,posterize:Qb,pow:ht,pow2:Ya,pow3:sh,pow4:nh,property:Fa,radians:kd,rand:ah,range:_N,rangeFog:yN,rangeFogFactor:wu,reciprocal:Yd,reference:ne,referenceBuffer:Ko,reflect:Jd,reflectVector:Hh,reflectView:Wh,reflector:gb,refract:Qa,refractVector:qh,refractView:$h,reinhardToneMapping:wf,remainder:Vd,remap:Mh,remapClamp:Bh,renderGroup:k,renderOutput:tu,rendererReference:Sh,rotate:Au,rotateUV:ib,roughness:Nt,round:Xd,rtt:yf,sRGBTransferEOTF:yh,sRGBTransferOETF:xh,sampler:Wy,saturate:oh,saturation:qb,screen:Wb,screenCoordinate:dr,screenSize:Kn,screenUV:Bt,scriptable:mN,scriptableValue:zr,select:Ue,setCurrentStack:On,shaderStages:zo,shadow:Qf,shadowPositionWorld:Lu,sharedUniformGroup:Ma,sheen:fs,sheenRoughness:gi,shiftLeft:Ld,shiftRight:Id,shininess:Yr,sign:qn,sin:st,sinc:q_,skinning:Rx,skinningReference:Fp,smoothstep:ct,smoothstepElement:ch,specularColor:We,specularF90:Wn,spherizeUV:ob,split:xy,spritesheetUV:lb,sqrt:Pt,stack:kr,step:Ti,storage:Bi,storageBarrier:EN,storageObject:Cb,storageTexture:bf,string:my,sub:Y,subgroupIndex:_x,subgroupSize:AN,tan:Wd,tangentGeometry:Ri,tangentLocal:or,tangentView:ar,tangentWorld:Xh,temp:gh,texture:K,texture3D:af,textureBarrier:wN,textureBicubic:Jp,textureCubeUV:tf,textureLoad:ge,textureSize:ns,textureStore:Db,thickness:Da,time:Cs,timerDelta:eb,timerGlobal:J_,timerLocal:Z_,toOutputColorSpace:Th,toWorkingColorSpace:_h,toneMapping:vh,toneMappingExposure:Ah,toonOutlinePass:nN,transformDirection:rh,transformNormal:kh,transformNormalToView:ru,transformedBentNormalView:Zh,transformedBitangentView:jh,transformedBitangentWorld:px,transformedClearcoatNormalView:Hs,transformedNormalView:fe,transformedNormalWorld:vi,transformedTangentView:ou,transformedTangentWorld:cx,transmission:jr,transpose:Qd,triNoise3D:X_,triplanarTexture:hb,triplanarTextures:mf,trunc:Ka,tslFn:gy,uint:D,uniform:V,uniformArray:Gt,uniformGroup:Td,uniforms:ox,userData:Ib,uv:le,uvec2:ld,uvec3:dn,uvec4:fd,varying:ke,varyingProperty:et,vec2:M,vec3:T,vec4:P,vectorComponents:As,velocity:Gb,vertexColor:Bb,vertexIndex:Rp,vertexStage:mh,vibrance:Kb,viewZToLogarithmicDepth:yu,viewZToOrthographicDepth:Qs,viewZToPerspectiveDepth:Ip,viewport:$t,viewportBottomLeft:Vx,viewportCoordinate:Lp,viewportDepthTexture:gu,viewportLinearDepth:Wx,viewportMipTexture:fu,viewportResolution:Lx,viewportSafeUV:ub,viewportSharedTexture:Gp,viewportSize:Dp,viewportTexture:Gx,viewportTopLeft:Ix,viewportUV:Dx,wgsl:cN,wgslFn:hN,workgroupArray:FN,workgroupBarrier:CN,workgroupId:SN,workingToColorSpace:bh,xor:Bd});const Lt=new Ru;class _v extends os{constructor(e,t){super(),this.renderer=e,this.nodes=t}update(e,t,s){const n=this.renderer,r=this.nodes.getBackgroundNode(e)||e.background;let i=!1;if(r===null)n._clearColor.getRGB(Lt,kt),Lt.a=n._clearColor.a;else if(r.isColor===!0)r.getRGB(Lt,kt),Lt.a=1,i=!0;else if(r.isNode===!0){const a=this.get(e),u=r;Lt.copy(n._clearColor);let c=a.backgroundMesh;if(c===void 0){const d=bi(P(u).mul(sa),{getUV:()=>_f.mul(Si),getTextureLevel:()=>Tf});let h=hu;h=h.setZ(h.w);const p=new ce;p.name="Background.material",p.side=Ct,p.depthTest=!1,p.depthWrite=!1,p.fog=!1,p.lights=!1,p.vertexNode=h,p.colorNode=d,a.backgroundMeshNode=d,a.backgroundMesh=c=new tn(new mm(1,32,32),p),c.frustumCulled=!1,c.name="Background.mesh",c.onBeforeRender=function(f,m,x){this.matrixWorld.copyPosition(x.matrixWorld)}}const l=u.getCacheKey();a.backgroundCacheKey!==l&&(a.backgroundMeshNode.node=P(u).mul(sa),a.backgroundMeshNode.needsUpdate=!0,c.material.needsUpdate=!0,a.backgroundCacheKey=l),t.unshift(c,c.geometry,c.material,0,0,null,null)}else console.error("THREE.Renderer: Unsupported background configuration.",r);if(n.autoClear===!0||i===!0){const a=s.clearColorValue;a.r=Lt.r,a.g=Lt.g,a.b=Lt.b,a.a=Lt.a,(n.backend.isWebGLBackend===!0||n.alpha===!0)&&(a.r*=a.a,a.g*=a.a,a.b*=a.a),s.depthClearValue=n._clearDepth,s.stencilClearValue=n._clearStencil,s.clearColor=n.autoClearColor===!0,s.clearDepth=n.autoClearDepth===!0,s.clearStencil=n.autoClearStencil===!0}else s.clearColor=!1,s.clearDepth=!1,s.clearStencil=!1}}let bv=0;class na{constructor(e="",t=[],s=0,n=[]){this.name=e,this.bindings=t,this.index=s,this.bindingsReference=n,this.id=bv++}}class Nv{constructor(e,t,s,n,r,i,a,u,c,l=[]){this.vertexShader=e,this.fragmentShader=t,this.computeShader=s,this.transforms=l,this.nodeAttributes=n,this.bindings=r,this.updateNodes=i,this.updateBeforeNodes=a,this.updateAfterNodes=u,this.monitor=c,this.usedTimes=0}createBindings(){const e=[];for(const t of this.bindings)if(t.bindings[0].groupNode.shared!==!0){const n=new na(t.name,[],t.index,t);e.push(n);for(const r of t.bindings)n.bindings.push(r.clone())}else e.push(t);return e}}class Gc{constructor(e,t,s=null){this.isNodeAttribute=!0,this.name=e,this.type=t,this.node=s}}class Sv{constructor(e,t,s){this.isNodeUniform=!0,this.name=e,this.type=t,this.node=s.getSelf()}get value(){return this.node.value}set value(e){this.node.value=e}get id(){return this.node.id}get groupNode(){return this.node.groupNode}}class lg{constructor(e,t){this.isNodeVar=!0,this.name=e,this.type=t}}class vv extends lg{constructor(e,t){super(e,t),this.needsInterpolation=!1,this.isNodeVarying=!0}}class Av{constructor(e,t,s=""){this.name=e,this.type=t,this.code=s,Object.defineProperty(this,"isNodeCode",{value:!0})}}let Rv=0;class to{constructor(e=null){this.id=Rv++,this.nodesData=new WeakMap,this.parent=e}getData(e){let t=this.nodesData.get(e);return t===void 0&&this.parent!==null&&(t=this.parent.getData(e)),t}setData(e,t){this.nodesData.set(e,t)}}class Cv extends O{static get type(){return"StructTypeNode"}constructor(e,t){super(),this.name=e,this.types=t,this.isStructTypeNode=!0}getMemberTypes(){return this.types}}class ws{constructor(e,t){this.name=e,this.value=t,this.boundary=0,this.itemSize=0,this.offset=0}setValue(e){this.value=e}getValue(){return this.value}}class Ev extends ws{constructor(e,t=0){super(e,t),this.isNumberUniform=!0,this.boundary=4,this.itemSize=1}}class wv extends ws{constructor(e,t=new Ye){super(e,t),this.isVector2Uniform=!0,this.boundary=8,this.itemSize=2}}class Mv extends ws{constructor(e,t=new j){super(e,t),this.isVector3Uniform=!0,this.boundary=16,this.itemSize=3}}class Bv extends ws{constructor(e,t=new Me){super(e,t),this.isVector4Uniform=!0,this.boundary=16,this.itemSize=4}}class Fv extends ws{constructor(e,t=new mt){super(e,t),this.isColorUniform=!0,this.boundary=16,this.itemSize=3}}class Uv extends ws{constructor(e,t=new Yn){super(e,t),this.isMatrix3Uniform=!0,this.boundary=48,this.itemSize=12}}class Pv extends ws{constructor(e,t=new Ie){super(e,t),this.isMatrix4Uniform=!0,this.boundary=64,this.itemSize=16}}class Dv extends Ev{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Lv extends wv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Iv extends Mv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Vv extends Bv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Gv extends Fv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Ov extends Uv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class kv extends Pv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}const qs=4,Oc=[.125,.215,.35,.446,.526,.582],hs=20,so=new Tl(-1,1,1,-1,0,1),zv=new kg(90,1),kc=new mt;let no=null,ro=0,io=0;const ds=(1+Math.sqrt(5))/2,Ds=1/ds,zc=[new j(-ds,Ds,0),new j(ds,Ds,0),new j(-Ds,0,ds),new j(Ds,0,ds),new j(0,ds,-Ds),new j(0,ds,Ds),new j(-1,1,-1),new j(1,1,-1),new j(-1,1,1),new j(1,1,1)],Wv=[3,1,5,0,4,2],oo=ef(le(),we("faceIndex")).normalize(),zu=T(oo.x,oo.y,oo.z);class $v{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._backgroundBox=null}get _hasInitialized(){return this._renderer.hasInitialized()}fromScene(e,t=0,s=.1,n=100,r=null){if(this._setSize(256),this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromScene() called before the backend is initialized. Try using .fromSceneAsync() instead.");const a=r||this._allocateTargets();return this.fromSceneAsync(e,t,s,n,a),a}no=this._renderer.getRenderTarget(),ro=this._renderer.getActiveCubeFace(),io=this._renderer.getActiveMipmapLevel();const i=r||this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,s,n,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i}async fromSceneAsync(e,t=0,s=.1,n=100,r=null){return this._hasInitialized===!1&&await this._renderer.init(),this.fromScene(e,t,s,n,r)}fromEquirectangular(e,t=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromEquirectangular() called before the backend is initialized. Try using .fromEquirectangularAsync() instead."),this._setSizeFromTexture(e);const s=t||this._allocateTargets();return this.fromEquirectangularAsync(e,s),s}return this._fromTexture(e,t)}async fromEquirectangularAsync(e,t=null){return this._hasInitialized===!1&&await this._renderer.init(),this._fromTexture(e,t)}fromCubemap(e,t=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromCubemap() called before the backend is initialized. Try using .fromCubemapAsync() instead."),this._setSizeFromTexture(e);const s=t||this._allocateTargets();return this.fromCubemapAsync(e,t),s}return this._fromTexture(e,t)}async fromCubemapAsync(e,t=null){return this._hasInitialized===!1&&await this._renderer.init(),this._fromTexture(e,t)}async compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=$c(),await this._compileMaterial(this._cubemapMaterial))}async compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Hc(),await this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSizeFromTexture(e){e.mapping===Zs||e.mapping===Js?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4)}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?m:0,m,m),u.render(e,r)}u.autoClear=c,e.background=h}_textureToCubeUV(e,t){const s=this._renderer,n=e.mapping===Zs||e.mapping===Js;n?this._cubemapMaterial===null&&(this._cubemapMaterial=$c(e)):this._equirectMaterial===null&&(this._equirectMaterial=Hc(e));const r=n?this._cubemapMaterial:this._equirectMaterial;r.fragmentNode.value=e;const i=this._lodMeshes[0];i.material=r;const a=this._cubeSize;vr(t,0,0,3*a,2*a),s.setRenderTarget(t),s.render(i,so)}_applyPMREM(e){const t=this._renderer,s=t.autoClear;t.autoClear=!1;const n=this._lodPlanes.length;for(let r=1;rhs&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${x} samples when the maximum is set to ${hs}`);const N=[];let v=0;for(let I=0;Iw-qs?n-w+qs:0),L=4*(this._cubeSize-B);vr(t,F,L,3*B,2*B),u.setRenderTarget(t),u.render(d,so)}}function Hv(o){const e=[],t=[],s=[],n=[];let r=o;const i=o-qs+1+Oc.length;for(let a=0;ao-qs?c=Oc[a-o+qs-1]:a===0&&(c=0),s.push(c);const l=1/(u-2),d=-l,h=1+l,p=[d,d,h,d,h,h,d,d,h,h,d,h],f=6,m=6,x=3,N=2,v=1,w=new Float32Array(x*m*f),B=new Float32Array(N*m*f),F=new Float32Array(v*m*f);for(let I=0;I2?0:-1,ie=[G,X,0,G+2/3,X,0,G+2/3,X+1,0,G,X,0,G+2/3,X+1,0,G,X+1,0],Z=Wv[I];w.set(ie,x*m*Z),B.set(p,N*m*Z);const Qe=[Z,Z,Z,Z,Z,Z];F.set(Qe,v*m*Z)}const L=new Sl;L.setAttribute("position",new Ur(w,x)),L.setAttribute("uv",new Ur(B,N)),L.setAttribute("faceIndex",new Ur(F,v)),e.push(L),n.push(new tn(L,null)),r>qs&&r--}return{lodPlanes:e,sizeLods:t,sigmas:s,lodMeshes:n}}function Wc(o,e,t){const s=new Ss(o,e,t);return s.texture.mapping=bo,s.texture.name="PMREM.cubeUv",s.texture.isPMREMTexture=!0,s.scissorTest=!0,s}function vr(o,e,t,s,n){o.viewport.set(e,t,s,n),o.scissor.set(e,t,s,n)}function Wu(o){const e=new ce;return e.depthTest=!1,e.depthWrite=!1,e.blending=en,e.name=`PMREM_${o}`,e}function qv(o,e,t){const s=Gt(new Array(hs).fill(0)),n=V(new j(0,1,0)),r=V(0),i=g(hs),a=V(0),u=V(1),c=K(null),l=V(0),d=g(1/e),h=g(1/t),p=g(o),f={n:i,latitudinal:a,weights:s,poleAxis:n,outputDirection:zu,dTheta:r,samples:u,envMap:c,mipInt:l,CUBEUV_TEXEL_WIDTH:d,CUBEUV_TEXEL_HEIGHT:h,CUBEUV_MAX_MIP:p},m=Wu("blur");return m.uniforms=f,m.fragmentNode=sf({...f,latitudinal:a.equal(1)}),m}function $c(o){const e=Wu("cubemap");return e.fragmentNode=on(o,zu),e}function Hc(o){const e=Wu("equirect");return e.fragmentNode=K(o,Tu(zu),0),e}const qc=new WeakMap,Kv=new Map([[Int8Array,"int"],[Int16Array,"int"],[Int32Array,"int"],[Uint8Array,"uint"],[Uint16Array,"uint"],[Uint32Array,"uint"],[Float32Array,"float"]]),Ar=o=>/e/g.test(o)?String(o).replace(/\+/g,""):(o=Number(o),o+(o%1?"":".0"));class dg{constructor(e,t,s){this.object=e,this.material=e&&e.material||null,this.geometry=e&&e.geometry||null,this.renderer=t,this.parser=s,this.scene=null,this.camera=null,this.nodes=[],this.sequentialNodes=[],this.updateNodes=[],this.updateBeforeNodes=[],this.updateAfterNodes=[],this.hashNodes={},this.monitor=null,this.lightsNode=null,this.environmentNode=null,this.fogNode=null,this.clippingContext=null,this.vertexShader=null,this.fragmentShader=null,this.computeShader=null,this.flowNodes={vertex:[],fragment:[],compute:[]},this.flowCode={vertex:"",fragment:"",compute:""},this.uniforms={vertex:[],fragment:[],compute:[],index:0},this.structs={vertex:[],fragment:[],compute:[],index:0},this.bindings={vertex:{},fragment:{},compute:{}},this.bindingsIndexes={},this.bindGroups=null,this.attributes=[],this.bufferAttributes=[],this.varyings=[],this.codes={},this.vars={},this.flow={code:""},this.chaining=[],this.stack=kr(),this.stacks=[],this.tab=" ",this.currentFunctionNode=null,this.context={material:this.material},this.cache=new to,this.globalCache=this.cache,this.flowsData=new WeakMap,this.shaderStage=null,this.buildStage=null,this.useComparisonMethod=!1}getBindGroupsCache(){let e=qc.get(this.renderer);return e===void 0&&(e=new Ft,qc.set(this.renderer,e)),e}createRenderTarget(e,t,s){return new Ss(e,t,s)}createCubeRenderTarget(e,t){return new kp(e,t)}createPMREMGenerator(){return new $v(this.renderer)}includes(e){return this.nodes.includes(e)}_getBindGroup(e,t){const s=this.getBindGroupsCache(),n=[];let r=!0;for(const a of t)n.push(a),r=r&&a.groupNode.shared!==!0;let i;return r?(i=s.get(n),i===void 0&&(i=new na(e,n,this.bindingsIndexes[e].group,n),s.set(n,i))):i=new na(e,n,this.bindingsIndexes[e].group,n),i}getBindGroupArray(e,t){const s=this.bindings[t];let n=s[e];return n===void 0&&(this.bindingsIndexes[e]===void 0&&(this.bindingsIndexes[e]={binding:0,group:Object.keys(this.bindingsIndexes).length}),s[e]=n=[]),n}getBindings(){let e=this.bindGroups;if(e===null){const t={},s=this.bindings;for(const n of zo)for(const r in s[n]){const i=s[n][r];(t[r]||(t[r]=[])).push(...i)}e=[];for(const n in t){const r=t[n],i=this._getBindGroup(n,r);e.push(i)}this.bindGroups=e}return e}sortBindingGroups(){const e=this.getBindings();e.sort((t,s)=>t.bindings[0].groupNode.order-s.bindings[0].groupNode.order);for(let t=0;t=0?`${Math.round(t)}u`:"0u";if(e==="bool")return t?"true":"false";if(e==="color")return`${this.getType("vec3")}( ${Ar(t.r)}, ${Ar(t.g)}, ${Ar(t.b)} )`;const s=this.getTypeLength(e),n=this.getComponentType(e),r=i=>this.generateConst(n,i);if(s===2)return`${this.getType(e)}( ${r(t.x)}, ${r(t.y)} )`;if(s===3)return`${this.getType(e)}( ${r(t.x)}, ${r(t.y)}, ${r(t.z)} )`;if(s===4)return`${this.getType(e)}( ${r(t.x)}, ${r(t.y)}, ${r(t.z)}, ${r(t.w)} )`;if(s>4&&t&&(t.isMatrix3||t.isMatrix4))return`${this.getType(e)}( ${t.elements.map(r).join(", ")} )`;if(s>4)return`${this.getType(e)}()`;throw new Error(`NodeBuilder: Type '${e}' not found in generate constant attempt.`)}getType(e){return e==="color"?"vec3":e}hasGeometryAttribute(e){return this.geometry&&this.geometry.getAttribute(e)!==void 0}getAttribute(e,t){const s=this.attributes;for(const r of s)if(r.name===e)return r;const n=new Gc(e,t);return s.push(n),n}getPropertyName(e){return e.name}isVector(e){return/vec\d/.test(e)}isMatrix(e){return/mat\d/.test(e)}isReference(e){return e==="void"||e==="property"||e==="sampler"||e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="depthTexture"||e==="texture3D"}needsToWorkingColorSpace(){return!1}getComponentTypeFromTexture(e){const t=e.type;if(e.isDataTexture){if(t===ze)return"int";if(t===Le)return"uint"}return"float"}getElementType(e){return e==="mat2"?"vec2":e==="mat3"?"vec3":e==="mat4"?"vec4":this.getComponentType(e)}getComponentType(e){if(e=this.getVectorType(e),e==="float"||e==="bool"||e==="int"||e==="uint")return e;const t=/(b|i|u|)(vec|mat)([2-4])/.exec(e);return t===null?null:t[1]==="b"?"bool":t[1]==="i"?"int":t[1]==="u"?"uint":"float"}getVectorType(e){return e==="color"?"vec3":e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="texture3D"?"vec4":e}getTypeFromLength(e,t="float"){if(e===1)return t;const s=ya(e);return(t==="float"?"":t[0])+s}getTypeFromArray(e){return Kv.get(e.constructor)}getTypeFromAttribute(e){let t=e;e.isInterleavedBufferAttribute&&(t=e.data);const s=t.array,n=e.itemSize,r=e.normalized;let i;return!(e instanceof yl)&&r!==!0&&(i=this.getTypeFromArray(s)),this.getTypeFromLength(n,i)}getTypeLength(e){const t=this.getVectorType(e),s=/vec([2-4])/.exec(t);return s!==null?Number(s[1]):t==="float"||t==="bool"||t==="int"||t==="uint"?1:/mat2/.test(e)===!0?4:/mat3/.test(e)===!0?9:/mat4/.test(e)===!0?16:0}getVectorFromMatrix(e){return e.replace("mat","vec")}changeComponentType(e,t){return this.getTypeFromLength(this.getTypeLength(e),t)}getIntegerType(e){const t=this.getComponentType(e);return t==="int"||t==="uint"?e:this.changeComponentType(e,"int")}addStack(){return this.stack=kr(this.stack),this.stacks.push(Ea()||this.stack),On(this.stack),this.stack}removeStack(){const e=this.stack;return this.stack=e.parent,On(this.stacks.pop()),e}getDataFromNode(e,t=this.shaderStage,s=null){s=s===null?e.isGlobal(this)?this.globalCache:this.cache:s;let n=s.getData(e);return n===void 0&&(n={},s.setData(e,n)),n[t]===void 0&&(n[t]={}),n[t]}getNodeProperties(e,t="any"){const s=this.getDataFromNode(e,t);return s.properties||(s.properties={outputNode:null})}getBufferAttributeFromNode(e,t){const s=this.getDataFromNode(e);let n=s.bufferAttribute;if(n===void 0){const r=this.uniforms.index++;n=new Gc("nodeAttribute"+r,t,e),this.bufferAttributes.push(n),s.bufferAttribute=n}return n}getStructTypeFromNode(e,t,s=this.shaderStage){const n=this.getDataFromNode(e,s);let r=n.structType;if(r===void 0){const i=this.structs.index++;r=new Cv("StructType"+i,t),this.structs[s].push(r),n.structType=r}return r}getUniformFromNode(e,t,s=this.shaderStage,n=null){const r=this.getDataFromNode(e,s,this.globalCache);let i=r.uniform;if(i===void 0){const a=this.uniforms.index++;i=new Sv(n||"nodeUniform"+a,t,e),this.uniforms[s].push(i),r.uniform=i}return i}getVarFromNode(e,t=null,s=e.getNodeType(this),n=this.shaderStage){const r=this.getDataFromNode(e,n);let i=r.variable;if(i===void 0){const a=this.vars[n]||(this.vars[n]=[]);t===null&&(t="nodeVar"+a.length),i=new lg(t,s),a.push(i),r.variable=i}return i}getVaryingFromNode(e,t=null,s=e.getNodeType(this)){const n=this.getDataFromNode(e,"any");let r=n.varying;if(r===void 0){const i=this.varyings,a=i.length;t===null&&(t="nodeVarying"+a),r=new vv(t,s),i.push(r),n.varying=r}return r}getCodeFromNode(e,t,s=this.shaderStage){const n=this.getDataFromNode(e);let r=n.code;if(r===void 0){const i=this.codes[s]||(this.codes[s]=[]),a=i.length;r=new Av("nodeCode"+a,t),i.push(r),n.code=r}return r}addFlowCodeHierarchy(e,t){const{flowCodes:s,flowCodeBlock:n}=this.getDataFromNode(e);let r=!0,i=t;for(;i;){if(n.get(i)===!0){r=!1;break}i=this.getDataFromNode(i).parentNodeBlock}if(r)for(const a of s)this.addLineFlowCode(a)}addLineFlowCodeBlock(e,t,s){const n=this.getDataFromNode(e),r=n.flowCodes||(n.flowCodes=[]),i=n.flowCodeBlock||(n.flowCodeBlock=new WeakMap);r.push(t),i.set(s,!0)}addLineFlowCode(e,t=null){return e===""?this:(t!==null&&this.context.nodeBlock&&this.addLineFlowCodeBlock(t,e,this.context.nodeBlock),e=this.tab+e,/;\s*$/.test(e)||(e=e+`; +`),this.flow.code+=e,this)}addFlowCode(e){return this.flow.code+=e,this}addFlowTab(){return this.tab+=" ",this}removeFlowTab(){return this.tab=this.tab.slice(0,-1),this}getFlowData(e){return this.flowsData.get(e)}flowNode(e){const t=e.getNodeType(this),s=this.flowChildNode(e,t);return this.flowsData.set(e,s),s}buildFunctionNode(e){const t=new Pf,s=this.currentFunctionNode;return this.currentFunctionNode=t,t.code=this.buildFunctionCode(e),this.currentFunctionNode=s,t}flowShaderNode(e){const t=e.layout,s={[Symbol.iterator](){let i=0;const a=Object.values(this);return{next:()=>({value:a[i],done:i++>=a.length})}}};for(const i of t.inputs)s[i.name]=new df(i.type,i.name);e.layout=null;const n=e.call(s),r=this.flowStagesNode(n,t.type);return e.layout=t,r}flowStagesNode(e,t=null){const s=this.flow,n=this.vars,r=this.cache,i=this.buildStage,a=this.stack,u={code:""};this.flow=u,this.vars={},this.cache=new to,this.stack=kr();for(const c of ko)this.setBuildStage(c),u.result=e.build(this,t);return u.vars=this.getVars(this.shaderStage),this.flow=s,this.vars=n,this.cache=r,this.stack=a,this.setBuildStage(i),u}getFunctionOperator(){return null}flowChildNode(e,t=null){const s=this.flow,n={code:""};return this.flow=n,n.result=e.build(this,t),this.flow=s,n}flowNodeFromShaderStage(e,t,s=null,n=null){const r=this.shaderStage;this.setShaderStage(e);const i=this.flowChildNode(t,s);return n!==null&&(i.code+=`${this.tab+n} = ${i.result}; +`),this.flowCode[e]=this.flowCode[e]+i.code,this.setShaderStage(r),i}getAttributesArray(){return this.attributes.concat(this.bufferAttributes)}getAttributes(){console.warn("Abstract function.")}getVaryings(){console.warn("Abstract function.")}getVar(e,t){return`${this.getType(e)} ${t}`}getVars(e){let t="";const s=this.vars[e];if(s!==void 0)for(const n of s)t+=`${this.getVar(n.type,n.name)}; `;return t}getUniforms(){console.warn("Abstract function.")}getCodes(e){const t=this.codes[e];let s="";if(t!==void 0)for(const n of t)s+=n.code+` +`;return s}getHash(){return this.vertexShader+this.fragmentShader+this.computeShader}setShaderStage(e){this.shaderStage=e}getShaderStage(){return this.shaderStage}setBuildStage(e){this.buildStage=e}getBuildStage(){return this.buildStage}buildCode(){console.warn("Abstract function.")}build(){const{object:e,material:t,renderer:s}=this;if(t!==null){let n=s.library.fromMaterial(t);n===null&&(console.error(`NodeMaterial: Material "${t.type}" is not compatible.`),n=new ce),n.build(this)}else this.addFlow("compute",e);for(const n of ko){this.setBuildStage(n),this.context.vertex&&this.context.vertex.isNode&&this.flowNodeFromShaderStage("vertex",this.context.vertex);for(const r of zo){this.setShaderStage(r);const i=this.flowNodes[r];for(const a of i)n==="generate"?this.flowNode(a):a.build(this)}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}getNodeUniform(e,t){if(t==="float"||t==="int"||t==="uint")return new Dv(e);if(t==="vec2"||t==="ivec2"||t==="uvec2")return new Lv(e);if(t==="vec3"||t==="ivec3"||t==="uvec3")return new Iv(e);if(t==="vec4"||t==="ivec4"||t==="uvec4")return new Vv(e);if(t==="color")return new Gv(e);if(t==="mat3")return new Ov(e);if(t==="mat4")return new kv(e);throw new Error(`Uniform "${t}" not declared.`)}format(e,t,s){if(t=this.getVectorType(t),s=this.getVectorType(s),t===s||s===null||this.isReference(s))return e;const n=this.getTypeLength(t),r=this.getTypeLength(s);return n===16&&r===9?`${this.getType(s)}(${e}[0].xyz, ${e}[1].xyz, ${e}[2].xyz)`:n===9&&r===4?`${this.getType(s)}(${e}[0].xy, ${e}[1].xy)`:n>4||r>4||r===0?e:n===r?`${this.getType(s)}( ${e} )`:n>r?this.format(`${e}.${"xyz".slice(0,r)}`,this.getTypeFromLength(r,this.getComponentType(t)),s):r===4&&n>1?`${this.getType(s)}( ${this.format(e,t,"vec3")}, 1.0 )`:n===2?`${this.getType(s)}( ${this.format(e,t,"vec2")}, 0.0 )`:(n===1&&r>1&&t!==this.getComponentType(s)&&(e=`${this.getType(this.getComponentType(s))}( ${e} )`),`${this.getType(s)}( ${e} )`)}getSignature(){return`// Three.js r${xl} - Node System +`}createNodeMaterial(e="NodeMaterial"){throw new Error(`THREE.NodeBuilder: createNodeMaterial() was deprecated. Use new ${e}() instead.`)}}class Kc{constructor(){this.time=0,this.deltaTime=0,this.frameId=0,this.renderId=0,this.updateMap=new WeakMap,this.updateBeforeMap=new WeakMap,this.updateAfterMap=new WeakMap,this.renderer=null,this.material=null,this.camera=null,this.object=null,this.scene=null}_getMaps(e,t){let s=e.get(t);return s===void 0&&(s={renderMap:new WeakMap,frameMap:new WeakMap},e.set(t,s)),s}updateBeforeNode(e){const t=e.getUpdateBeforeType(),s=e.updateReference(this);if(t===W.FRAME){const{frameMap:n}=this._getMaps(this.updateBeforeMap,s);n.get(s)!==this.frameId&&e.updateBefore(this)!==!1&&n.set(s,this.frameId)}else if(t===W.RENDER){const{renderMap:n}=this._getMaps(this.updateBeforeMap,s);n.get(s)!==this.renderId&&e.updateBefore(this)!==!1&&n.set(s,this.renderId)}else t===W.OBJECT&&e.updateBefore(this)}updateAfterNode(e){const t=e.getUpdateAfterType(),s=e.updateReference(this);if(t===W.FRAME){const{frameMap:n}=this._getMaps(this.updateAfterMap,s);n.get(s)!==this.frameId&&e.updateAfter(this)!==!1&&n.set(s,this.frameId)}else if(t===W.RENDER){const{renderMap:n}=this._getMaps(this.updateAfterMap,s);n.get(s)!==this.renderId&&e.updateAfter(this)!==!1&&n.set(s,this.renderId)}else t===W.OBJECT&&e.updateAfter(this)}updateNode(e){const t=e.getUpdateType(),s=e.updateReference(this);if(t===W.FRAME){const{frameMap:n}=this._getMaps(this.updateMap,s);n.get(s)!==this.frameId&&e.update(this)!==!1&&n.set(s,this.frameId)}else if(t===W.RENDER){const{renderMap:n}=this._getMaps(this.updateMap,s);n.get(s)!==this.renderId&&e.update(this)!==!1&&n.set(s,this.renderId)}else t===W.OBJECT&&e.update(this)}update(){this.frameId++,this.lastTime===void 0&&(this.lastTime=performance.now()),this.deltaTime=(performance.now()-this.lastTime)/1e3,this.lastTime=performance.now(),this.time+=this.deltaTime}}class $u{constructor(e,t,s=null,n="",r=!1){this.type=e,this.name=t,this.count=s,this.qualifier=n,this.isConst=r}}$u.isNodeFunctionInput=!0;class Xv extends Es{static get type(){return"DirectionalLightNode"}constructor(e=null){super(e)}setup(e){super.setup(e);const t=e.context.lightingModel,s=this.colorNode,n=Pu(this.light),r=e.context.reflectedLight;t.direct({lightDirection:n,lightColor:s,reflectedLight:r},e.stack,e)}}const ao=new Ie,Rr=new Ie;let Nn=null;class Yv extends Es{static get type(){return"RectAreaLightNode"}constructor(e=null){super(e),this.halfHeight=V(new j).setGroup(k),this.halfWidth=V(new j).setGroup(k),this.updateType=W.RENDER}update(e){super.update(e);const{light:t}=this,s=e.camera.matrixWorldInverse;Rr.identity(),ao.copy(t.matrixWorld),ao.premultiply(s),Rr.extractRotation(ao),this.halfWidth.value.set(t.width*.5,0,0),this.halfHeight.value.set(0,t.height*.5,0),this.halfWidth.value.applyMatrix4(Rr),this.halfHeight.value.applyMatrix4(Rr)}setup(e){super.setup(e);let t,s;e.isAvailable("float32Filterable")?(t=K(Nn.LTC_FLOAT_1),s=K(Nn.LTC_FLOAT_2)):(t=K(Nn.LTC_HALF_1),s=K(Nn.LTC_HALF_2));const{colorNode:n,light:r}=this,i=e.context.lightingModel,a=Pi(r),u=e.context.reflectedLight;i.directRectArea({lightColor:n,lightPosition:a,halfWidth:this.halfWidth,halfHeight:this.halfHeight,reflectedLight:u,ltc_1:t,ltc_2:s},e.stack,e)}static setLTC(e){Nn=e}}class hg extends Es{static get type(){return"SpotLightNode"}constructor(e=null){super(e),this.coneCosNode=V(0).setGroup(k),this.penumbraCosNode=V(0).setGroup(k),this.cutoffDistanceNode=V(0).setGroup(k),this.decayExponentNode=V(0).setGroup(k)}update(e){super.update(e);const{light:t}=this;this.coneCosNode.value=Math.cos(t.angle),this.penumbraCosNode.value=Math.cos(t.angle*(1-t.penumbra)),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}getSpotAttenuation(e){const{coneCosNode:t,penumbraCosNode:s}=this;return ct(t,s,e)}setup(e){super.setup(e);const t=e.context.lightingModel,{colorNode:s,cutoffDistanceNode:n,decayExponentNode:r,light:i}=this,a=Pi(i).sub(xe),u=a.normalize(),c=u.dot(Pu(i)),l=this.getSpotAttenuation(c),d=a.length(),h=Gu({lightDistance:d,cutoffDistance:n,decayExponent:r});let p=s.mul(l).mul(h);if(i.map){const m=Vf(i),x=K(i.map,m.xy).onRenderUpdate(()=>i.map);p=m.mul(2).sub(1).abs().lessThan(1).all().select(p.mul(x),p)}const f=e.context.reflectedLight;t.direct({lightDirection:u,lightColor:p,reflectedLight:f},e.stack,e)}}class jv extends hg{static get type(){return"IESSpotLightNode"}getSpotAttenuation(e){const t=this.light.iesMap;let s=null;if(t&&t.isTexture===!0){const n=e.acos().mul(1/Math.PI);s=K(t,M(n,0),0).r}else s=super.getSpotAttenuation(e);return s}}class Qv extends Es{static get type(){return"AmbientLightNode"}constructor(e=null){super(e)}setup({context:e}){e.irradiance.addAssign(this.colorNode)}}class Zv extends Es{static get type(){return"HemisphereLightNode"}constructor(e=null){super(e),this.lightPositionNode=Uu(e),this.lightDirectionNode=this.lightPositionNode.normalize(),this.groundColorNode=V(new mt).setGroup(k)}update(e){const{light:t}=this;super.update(e),this.lightPositionNode.object3d=t,this.groundColorNode.value.copy(t.groundColor).multiplyScalar(t.intensity)}setup(e){const{colorNode:t,groundColorNode:s,lightDirectionNode:n}=this,i=lt.dot(n).mul(.5).add(.5),a=Q(s,t,i);e.context.irradiance.addAssign(a)}}class Jv extends Es{static get type(){return"LightProbeNode"}constructor(e=null){super(e);const t=[];for(let s=0;s<9;s++)t.push(new j);this.lightProbe=Gt(t)}update(e){const{light:t}=this;super.update(e);for(let s=0;s<9;s++)this.lightProbe.array[s].copy(t.sh.coefficients[s]).multiplyScalar(t.intensity)}setup(e){const t=cg(Si,this.lightProbe);e.context.irradiance.addAssign(t)}}class pg{parseFunction(){console.warn("Abstract function.")}}class Hu{constructor(e,t,s="",n=""){this.type=e,this.inputs=t,this.name=s,this.precision=n}getCode(){console.warn("Abstract function.")}}Hu.isNodeFunction=!0;const eA=/^\s*(highp|mediump|lowp)?\s*([a-z_0-9]+)\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)/i,tA=/[a-z_0-9]+/ig,Xc="#pragma main",sA=o=>{o=o.trim();const e=o.indexOf(Xc),t=e!==-1?o.slice(e+Xc.length):o,s=t.match(eA);if(s!==null&&s.length===5){const n=s[4],r=[];let i=null;for(;(i=tA.exec(n))!==null;)r.push(i);const a=[];let u=0;for(;u0||e.backgroundBlurriness>0&&t.backgroundBlurriness===0;if(t.background!==s||n){const r=this.getCacheNode("background",s,()=>{if(s.isCubeTexture===!0||s.mapping===jn||s.mapping===Qn||s.mapping===bo){if(e.backgroundBlurriness>0||s.mapping===bo)return vu(s);{let i;return s.isCubeTexture===!0?i=on(s):i=K(s),Wp(i)}}else{if(s.isTexture===!0)return K(s,Bt.flipY()).setUpdateMatrix(!0);s.isColor!==!0&&console.error("WebGPUNodes: Unsupported background configuration.",s)}},n);t.backgroundNode=r,t.background=s,t.backgroundBlurriness=e.backgroundBlurriness}}else t.backgroundNode&&(delete t.backgroundNode,delete t.background)}getCacheNode(e,t,s,n=!1){const r=this.cacheLib[e]||(this.cacheLib[e]=new WeakMap);let i=r.get(t);return(i===void 0||n)&&(i=s(),r.set(t,i)),i}updateFog(e){const t=this.get(e),s=e.fog;if(s){if(t.fog!==s){const n=this.getCacheNode("fog",s,()=>{if(s.isFogExp2){const r=ne("color","color",s).setGroup(k),i=ne("density","float",s).setGroup(k);return Xn(r,Mu(i))}else if(s.isFog){const r=ne("color","color",s).setGroup(k),i=ne("near","float",s).setGroup(k),a=ne("far","float",s).setGroup(k);return Xn(r,wu(i,a))}else console.error("THREE.Renderer: Unsupported fog configuration.",s)});t.fogNode=n,t.fog=s}}else delete t.fogNode,delete t.fog}updateEnvironment(e){const t=this.get(e),s=e.environment;if(s){if(t.environment!==s){const n=this.getCacheNode("environment",s,()=>{if(s.isCubeTexture===!0)return on(s);if(s.isTexture===!0)return K(s);console.error("Nodes: Unsupported environment configuration.",s)});t.environmentNode=n,t.environment=s}}else t.environmentNode&&(delete t.environmentNode,delete t.environment)}getNodeFrame(e=this.renderer,t=null,s=null,n=null,r=null){const i=this.nodeFrame;return i.renderer=e,i.scene=t,i.object=s,i.camera=n,i.material=r,i}getNodeFrameForRender(e){return this.getNodeFrame(e.renderer,e.scene,e.object,e.camera,e.material)}getOutputCacheKey(){const e=this.renderer;return e.toneMapping+","+e.currentColorSpace}hasOutputChange(e){return Yc.get(e)!==this.getOutputCacheKey()}getOutputNode(e){const t=this.renderer,s=this.getOutputCacheKey(),n=K(e,Bt).renderOutput(t.toneMapping,t.currentColorSpace);return Yc.set(e,s),n}updateBefore(e){const t=e.getNodeBuilderState();for(const s of t.updateBeforeNodes)this.getNodeFrameForRender(e).updateBeforeNode(s)}updateAfter(e){const t=e.getNodeBuilderState();for(const s of t.updateAfterNodes)this.getNodeFrameForRender(e).updateAfterNode(s)}updateForCompute(e){const t=this.getNodeFrame(),s=this.getForCompute(e);for(const n of s.updateNodes)t.updateNode(n)}updateForRender(e){const t=this.getNodeFrameForRender(e),s=e.getNodeBuilderState();for(const n of s.updateNodes)t.updateNode(n)}needsRefresh(e){const t=this.getNodeFrameForRender(e);return e.getMonitor().needsRefresh(e,t)}dispose(){super.dispose(),this.nodeFrame=new Kc,this.nodeBuilderCache=new Map,this.cacheLib={}}}const uo=new vl;class ii{constructor(e=null){this.version=0,this.clipIntersection=null,this.cacheKey="",this.shadowPass=!1,this.viewNormalMatrix=new Yn,this.clippingGroupContexts=new WeakMap,this.intersectionPlanes=[],this.unionPlanes=[],this.parentVersion=null,e!==null&&(this.viewNormalMatrix=e.viewNormalMatrix,this.clippingGroupContexts=e.clippingGroupContexts,this.shadowPass=e.shadowPass,this.viewMatrix=e.viewMatrix)}projectPlanes(e,t,s){const n=e.length;for(let r=0;r{await this.compileAsync(d,h);const f=this._renderLists.get(d,h),m=this._renderContexts.get(d,h,this._renderTarget),x=d.overrideMaterial||p.material,N=this._objects.get(p,x,d,h,f.lightsNode,m,m.clippingContext),{fragmentShader:v,vertexShader:w}=N.getNodeBuilderState();return{fragmentShader:v,vertexShader:w}}}}async init(){if(this._initialized)throw new Error("Renderer: Backend has already been initialized.");return this._initPromise!==null?this._initPromise:(this._initPromise=new Promise(async(e,t)=>{let s=this.backend;try{await s.init(this)}catch(n){if(this._getFallback!==null)try{this.backend=s=this._getFallback(n),await s.init(this)}catch(r){t(r);return}else{t(n);return}}this._nodes=new iA(this,s),this._animation=new g_(this._nodes,this.info),this._attributes=new N_(s),this._background=new _v(this,this._nodes),this._geometries=new v_(this._attributes,this.info),this._textures=new V_(this,s,this.info),this._pipelines=new w_(s,this._nodes),this._bindings=new M_(s,this._nodes,this._textures,this._attributes,this._pipelines,this.info),this._objects=new T_(this,this._nodes,this._geometries,this._pipelines,this._bindings,this.info),this._renderLists=new U_(this.lighting),this._bundles=new aA,this._renderContexts=new L_,this._animation.start(),this._initialized=!0,e()}),this._initPromise)}get coordinateSystem(){return this.backend.coordinateSystem}async compileAsync(e,t,s=null){if(this._isDeviceLost===!0)return;this._initialized===!1&&await this.init();const n=this._nodes.nodeFrame,r=n.renderId,i=this._currentRenderContext,a=this._currentRenderObjectFunction,u=this._compilationPromises,c=e.isScene===!0?e:jc;s===null&&(s=e);const l=this._renderTarget,d=this._renderContexts.get(s,t,l),h=this._activeMipmapLevel,p=[];this._currentRenderContext=d,this._currentRenderObjectFunction=this.renderObject,this._handleObjectFunction=this._createObjectPipeline,this._compilationPromises=p,n.renderId++,n.update(),d.depth=this.depth,d.stencil=this.stencil,d.clippingContext||(d.clippingContext=new ii),d.clippingContext.updateGlobal(c,t),c.onBeforeRender(this,e,t,l);const f=this._renderLists.get(e,t);if(f.begin(),this._projectObject(e,t,0,f,d.clippingContext),s!==e&&s.traverseVisible(function(w){w.isLight&&w.layers.test(t.layers)&&f.pushLight(w)}),f.finish(),l!==null){this._textures.updateRenderTarget(l,h);const w=this._textures.get(l);d.textures=w.textures,d.depthTexture=w.depthTexture}else d.textures=null,d.depthTexture=null;this._background.update(c,f,d);const m=f.opaque,x=f.transparent,N=f.transparentDoublePass,v=f.lightsNode;this.opaque===!0&&m.length>0&&this._renderObjects(m,t,c,v),this.transparent===!0&&x.length>0&&this._renderTransparents(x,N,t,c,v),n.renderId=r,this._currentRenderContext=i,this._currentRenderObjectFunction=a,this._compilationPromises=u,this._handleObjectFunction=this._renderObjectDirect,await Promise.all(p)}async renderAsync(e,t){this._initialized===!1&&await this.init();const s=this._renderScene(e,t);await this.backend.resolveTimestampAsync(s,"render")}async waitForGPU(){await this.backend.waitForGPU()}setMRT(e){return this._mrt=e,this}getMRT(){return this._mrt}_onDeviceLost(e){let t=`THREE.WebGPURenderer: ${e.api} Device Lost: + +Message: ${e.message}`;e.reason&&(t+=` +Reason: ${e.reason}`),console.error(t),this._isDeviceLost=!0}_renderBundle(e,t,s){const{bundleGroup:n,camera:r,renderList:i}=e,a=this._currentRenderContext,u=this._bundles.get(n,r),c=this.backend.get(u);c.renderContexts===void 0&&(c.renderContexts=new Set);const l=n.version!==c.version,d=c.renderContexts.has(a)===!1||l;if(c.renderContexts.add(a),d){this.backend.beginBundle(a),(c.renderObjects===void 0||l)&&(c.renderObjects=[]),this._currentRenderBundle=u;const h=i.opaque;this.opaque===!0&&h.length>0&&this._renderObjects(h,r,t,s),this._currentRenderBundle=null,this.backend.finishBundle(a,u),c.version=n.version}else{const{renderObjects:h}=c;for(let p=0,f=h.length;p>=h,f.viewportValue.height>>=h,f.viewportValue.minDepth=w,f.viewportValue.maxDepth=B,f.viewport=f.viewportValue.equals(co)===!1,f.scissorValue.copy(N).multiplyScalar(v).floor(),f.scissor=this._scissorTest&&f.scissorValue.equals(co)===!1,f.scissorValue.width>>=h,f.scissorValue.height>>=h,f.clippingContext||(f.clippingContext=new ii),f.clippingContext.updateGlobal(c,t),c.onBeforeRender(this,e,t,p),Er.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),lo.setFromProjectionMatrix(Er,m);const F=this._renderLists.get(e,t);if(F.begin(),this._projectObject(e,t,0,F,f.clippingContext),F.finish(),this.sortObjects===!0&&F.sort(this._opaqueSort,this._transparentSort),p!==null){this._textures.updateRenderTarget(p,h);const Z=this._textures.get(p);f.textures=Z.textures,f.depthTexture=Z.depthTexture,f.width=Z.width,f.height=Z.height,f.renderTarget=p,f.depth=p.depthBuffer,f.stencil=p.stencilBuffer}else f.textures=null,f.depthTexture=null,f.width=this.domElement.width,f.height=this.domElement.height,f.depth=this.depth,f.stencil=this.stencil;f.width>>=h,f.height>>=h,f.activeCubeFace=d,f.activeMipmapLevel=h,f.occlusionQueryCount=F.occlusionQueryCount,this._background.update(c,F,f),this.backend.beginRender(f);const{bundles:L,lightsNode:I,transparentDoublePass:G,transparent:X,opaque:ie}=F;if(L.length>0&&this._renderBundles(L,c,I),this.opaque===!0&&ie.length>0&&this._renderObjects(ie,t,c,I),this.transparent===!0&&X.length>0&&this._renderTransparents(X,G,t,c,I),this.backend.finishRender(f),r.renderId=i,this._currentRenderContext=a,this._currentRenderObjectFunction=u,n!==null){this.setRenderTarget(l,d,h);const Z=this._quad;this._nodes.hasOutputChange(p.texture)&&(Z.material.fragmentNode=this._nodes.getOutputNode(p.texture),Z.material.needsUpdate=!0),this._renderScene(Z,Z.camera,!1)}return c.onAfterRender(this,e,t,p),f}getMaxAnisotropy(){return this.backend.getMaxAnisotropy()}getActiveCubeFace(){return this._activeCubeFace}getActiveMipmapLevel(){return this._activeMipmapLevel}async setAnimationLoop(e){this._initialized===!1&&await this.init(),this._animation.setAnimationLoop(e)}async getArrayBufferAsync(e){return await this.backend.getArrayBufferAsync(e)}getContext(){return this.backend.getContext()}getPixelRatio(){return this._pixelRatio}getDrawingBufferSize(e){return e.set(this._width*this._pixelRatio,this._height*this._pixelRatio).floor()}getSize(e){return e.set(this._width,this._height)}setPixelRatio(e=1){this._pixelRatio!==e&&(this._pixelRatio=e,this.setSize(this._width,this._height,!1))}setDrawingBufferSize(e,t,s){this._width=e,this._height=t,this._pixelRatio=s,this.domElement.width=Math.floor(e*s),this.domElement.height=Math.floor(t*s),this.setViewport(0,0,e,t),this._initialized&&this.backend.updateSize()}setSize(e,t,s=!0){this._width=e,this._height=t,this.domElement.width=Math.floor(e*this._pixelRatio),this.domElement.height=Math.floor(t*this._pixelRatio),s===!0&&(this.domElement.style.width=e+"px",this.domElement.style.height=t+"px"),this.setViewport(0,0,e,t),this._initialized&&this.backend.updateSize()}setOpaqueSort(e){this._opaqueSort=e}setTransparentSort(e){this._transparentSort=e}getScissor(e){const t=this._scissor;return e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height,e}setScissor(e,t,s,n){const r=this._scissor;e.isVector4?r.copy(e):r.set(e,t,s,n)}getScissorTest(){return this._scissorTest}setScissorTest(e){this._scissorTest=e,this.backend.setScissorTest(e)}getViewport(e){return e.copy(this._viewport)}setViewport(e,t,s,n,r=0,i=1){const a=this._viewport;e.isVector4?a.copy(e):a.set(e,t,s,n),a.minDepth=r,a.maxDepth=i}getClearColor(e){return e.copy(this._clearColor)}setClearColor(e,t=1){this._clearColor.set(e),this._clearColor.a=t}getClearAlpha(){return this._clearColor.a}setClearAlpha(e){this._clearColor.a=e}getClearDepth(){return this._clearDepth}setClearDepth(e){this._clearDepth=e}getClearStencil(){return this._clearStencil}setClearStencil(e){this._clearStencil=e}isOccluded(e){const t=this._currentRenderContext;return t&&this.backend.isOccluded(t,e)}clear(e=!0,t=!0,s=!0){if(this._initialized===!1)return console.warn("THREE.Renderer: .clear() called before the backend is initialized. Try using .clearAsync() instead."),this.clearAsync(e,t,s);const n=this._renderTarget||this._getFrameBufferTarget();let r=null;if(n!==null){this._textures.updateRenderTarget(n);const i=this._textures.get(n);r=this._renderContexts.get(null,null,n),r.textures=i.textures,r.depthTexture=i.depthTexture,r.width=i.width,r.height=i.height,r.renderTarget=n,r.depth=n.depthBuffer,r.stencil=n.stencilBuffer}if(this.backend.clear(e,t,s,r),n!==null&&this._renderTarget===null){const i=this._quad;this._nodes.hasOutputChange(n.texture)&&(i.material.fragmentNode=this._nodes.getOutputNode(n.texture),i.material.needsUpdate=!0),this._renderScene(i,i.camera,!1)}}clearColor(){return this.clear(!0,!1,!1)}clearDepth(){return this.clear(!1,!0,!1)}clearStencil(){return this.clear(!1,!1,!0)}async clearAsync(e=!0,t=!0,s=!0){this._initialized===!1&&await this.init(),this.clear(e,t,s)}async clearColorAsync(){this.clearAsync(!0,!1,!1)}async clearDepthAsync(){this.clearAsync(!1,!0,!1)}async clearStencilAsync(){this.clearAsync(!1,!1,!0)}get currentToneMapping(){return this._renderTarget!==null?ss:this.toneMapping}get currentColorSpace(){return this._renderTarget!==null?kt:this.outputColorSpace}dispose(){this.info.dispose(),this.backend.dispose(),this._animation.dispose(),this._objects.dispose(),this._pipelines.dispose(),this._nodes.dispose(),this._bindings.dispose(),this._renderLists.dispose(),this._renderContexts.dispose(),this._textures.dispose(),this.setRenderTarget(null),this.setAnimationLoop(null)}setRenderTarget(e,t=0,s=0){this._renderTarget=e,this._activeCubeFace=t,this._activeMipmapLevel=s}getRenderTarget(){return this._renderTarget}setRenderObjectFunction(e){this._renderObjectFunction=e}getRenderObjectFunction(){return this._renderObjectFunction}compute(e){if(this.isDeviceLost===!0)return;if(this._initialized===!1)return console.warn("THREE.Renderer: .compute() called before the backend is initialized. Try using .computeAsync() instead."),this.computeAsync(e);const t=this._nodes.nodeFrame,s=t.renderId;this.info.calls++,this.info.compute.calls++,this.info.compute.frameCalls++,t.renderId=this.info.calls;const n=this.backend,r=this._pipelines,i=this._bindings,a=this._nodes,u=Array.isArray(e)?e:[e];if(u[0]===void 0||u[0].isComputeNode!==!0)throw new Error("THREE.Renderer: .compute() expects a ComputeNode.");n.beginCompute(e);for(const c of u){if(r.has(c)===!1){const h=()=>{c.removeEventListener("dispose",h),r.delete(c),i.delete(c),a.delete(c)};c.addEventListener("dispose",h);const p=c.onInitFunction;p!==null&&p.call(c,{renderer:this})}a.updateForCompute(c),i.updateForCompute(c);const l=i.getForCompute(c),d=r.getForCompute(c,l);n.compute(e,c,l,d)}n.finishCompute(e),t.renderId=s}async computeAsync(e){this._initialized===!1&&await this.init(),this.compute(e),await this.backend.resolveTimestampAsync(e,"compute")}async hasFeatureAsync(e){return this._initialized===!1&&await this.init(),this.backend.hasFeature(e)}hasFeature(e){return this._initialized===!1?(console.warn("THREE.Renderer: .hasFeature() called before the backend is initialized. Try using .hasFeatureAsync() instead."),!1):this.backend.hasFeature(e)}hasInitialized(){return this._initialized}async initTextureAsync(e){this._initialized===!1&&await this.init(),this._textures.updateTexture(e)}initTexture(e){this._initialized===!1&&console.warn("THREE.Renderer: .initTexture() called before the backend is initialized. Try using .initTextureAsync() instead."),this._textures.updateTexture(e)}copyFramebufferToTexture(e,t=null){if(t!==null)if(t.isVector2)t=jt.set(t.x,t.y,e.image.width,e.image.height).floor();else if(t.isVector4)t=jt.copy(t).floor();else{console.error("THREE.Renderer.copyFramebufferToTexture: Invalid rectangle.");return}else t=jt.set(0,0,e.image.width,e.image.height);let s=this._currentRenderContext,n;s!==null?n=s.renderTarget:(n=this._renderTarget||this._getFrameBufferTarget(),n!==null&&(this._textures.updateRenderTarget(n),s=this._textures.get(n))),this._textures.updateTexture(e,{renderTarget:n}),this.backend.copyFramebufferToTexture(e,s,t)}copyTextureToTexture(e,t,s=null,n=null,r=0){this._textures.updateTexture(e),this._textures.updateTexture(t),this.backend.copyTextureToTexture(e,t,s,n,r)}async readRenderTargetPixelsAsync(e,t,s,n,r,i=0,a=0){return this.backend.copyTextureToBuffer(e.textures[i],t,s,n,r,a)}_projectObject(e,t,s,n,r){if(e.visible===!1)return;if(e.layers.test(t.layers)){if(e.isGroup)s=e.renderOrder,e.isClippingGroup&&e.enabled&&(r=r.getGroupContext(e));else if(e.isLOD)e.autoUpdate===!0&&e.update(t);else if(e.isLight)n.pushLight(e);else if(e.isSprite){if(!e.frustumCulled||lo.intersectsSprite(e)){this.sortObjects===!0&&jt.setFromMatrixPosition(e.matrixWorld).applyMatrix4(Er);const{geometry:u,material:c}=e;c.visible&&n.push(e,u,c,s,jt.z,null,r)}}else if(e.isLineLoop)console.error("THREE.Renderer: Objects of type THREE.LineLoop are not supported. Please use THREE.Line or THREE.LineSegments.");else if((e.isMesh||e.isLine||e.isPoints)&&(!e.frustumCulled||lo.intersectsObject(e))){const{geometry:u,material:c}=e;if(this.sortObjects===!0&&(u.boundingSphere===null&&u.computeBoundingSphere(),jt.copy(u.boundingSphere.center).applyMatrix4(e.matrixWorld).applyMatrix4(Er)),Array.isArray(c)){const l=u.groups;for(let d=0,h=l.length;d0){for(const{material:i}of t)i.side=Ct;this._renderObjects(t,s,n,r,"backSide");for(const{material:i}of t)i.side=No;this._renderObjects(e,s,n,r);for(const{material:i}of t)i.side=js}else this._renderObjects(e,s,n,r)}_renderObjects(e,t,s,n,r=null){for(let i=0,a=e.length;i0,p.isShadowNodeMaterial&&(p.side=r.shadowSide===null?r.side:r.shadowSide,r.depthNode&&r.depthNode.isNode&&(h=p.depthNode,p.depthNode=r.depthNode),r.castShadowNode&&r.castShadowNode.isNode&&(d=p.colorNode,p.colorNode=r.castShadowNode)),r=p}r.transparent===!0&&r.side===js&&r.forceSinglePass===!1?(r.side=Ct,this._handleObjectFunction(e,r,t,s,a,i,u,"backSide"),r.side=No,this._handleObjectFunction(e,r,t,s,a,i,u,c),r.side=js):this._handleObjectFunction(e,r,t,s,a,i,u,c),l!==void 0&&(t.overrideMaterial.positionNode=l),h!==void 0&&(t.overrideMaterial.depthNode=h),d!==void 0&&(t.overrideMaterial.colorNode=d),e.onAfterRender(this,t,s,n,r,i)}_renderObjectDirect(e,t,s,n,r,i,a,u){const c=this._objects.get(e,t,s,n,r,this._currentRenderContext,a,u);c.drawRange=e.geometry.drawRange,c.group=i;const l=this._nodes.needsRefresh(c);l&&(this._nodes.updateBefore(c),this._geometries.updateForRender(c),this._nodes.updateForRender(c),this._bindings.updateForRender(c)),this._pipelines.updateForRender(c),this._currentRenderBundle!==null&&(this.backend.get(this._currentRenderBundle).renderObjects.push(c),c.bundle=this._currentRenderBundle.bundleGroup),this.backend.draw(c,this.info),l&&this._nodes.updateAfter(c)}_createObjectPipeline(e,t,s,n,r,i,a,u){const c=this._objects.get(e,t,s,n,r,this._currentRenderContext,a,u);c.drawRange=e.geometry.drawRange,c.group=i,this._nodes.updateBefore(c),this._geometries.updateForRender(c),this._nodes.updateForRender(c),this._bindings.updateForRender(c),this._pipelines.getForRender(c,this._compilationPromises),this._nodes.updateAfter(c)}get compile(){return this.compileAsync}}class qu{constructor(e=""){this.name=e,this.visibility=0}setVisibility(e){this.visibility|=e}clone(){return Object.assign(new this.constructor,this)}}function dA(o){return o+(ts-o%ts)%ts}class gg extends qu{constructor(e,t=null){super(e),this.isBuffer=!0,this.bytesPerElement=Float32Array.BYTES_PER_ELEMENT,this._buffer=t}get byteLength(){return dA(this._buffer.byteLength)}get buffer(){return this._buffer}update(){return!0}}class mg extends gg{constructor(e,t=null){super(e,t),this.isUniformBuffer=!0}}let hA=0;class yg extends mg{constructor(e,t){super("UniformBuffer_"+hA++,e?e.value:null),this.nodeUniform=e,this.groupNode=t}get buffer(){return this.nodeUniform.value}}class pA extends mg{constructor(e){super(e),this.isUniformsGroup=!0,this._values=null,this.uniforms=[]}addUniform(e){return this.uniforms.push(e),this}removeUniform(e){const t=this.uniforms.indexOf(e);return t!==-1&&this.uniforms.splice(t,1),this}get values(){return this._values===null&&(this._values=Array.from(this.buffer)),this._values}get buffer(){let e=this._buffer;if(e===null){const t=this.byteLength;e=new Float32Array(new ArrayBuffer(t)),this._buffer=e}return e}get byteLength(){let e=0;for(let t=0,s=this.uniforms.length;t0?h:"";a=`${l.name} { + ${d} ${i.name}[${p}]; +}; +`}else a=`${this.getVectorType(i.type)} ${this.getPropertyName(i,e)};`,u=!0;const c=i.node.precision;if(c!==null&&(a=_A[c]+" "+a),u){a=" "+a;const l=i.groupNode.name;(n[l]||(n[l]=[])).push(a)}else a="uniform "+a,s.push(a)}let r="";for(const i in n){const a=n[i];r+=this._getGLSLUniformStruct(e+"_"+i,a.join(` +`))+` +`}return r+=s.join(` +`),r}getTypeFromAttribute(e){let t=super.getTypeFromAttribute(e);if(/^[iu]/.test(t)&&e.gpuType!==ze){let s=e;e.isInterleavedBufferAttribute&&(s=e.data);const n=s.array;n instanceof Uint32Array||n instanceof Int32Array||(t=t.slice(1))}return t}getAttributes(e){let t="";if(e==="vertex"||e==="compute"){const s=this.getAttributesArray();let n=0;for(const r of s)t+=`layout( location = ${n++} ) in ${r.type} ${r.name}; +`}return t}getStructMembers(e){const t=[],s=e.getMemberTypes();for(let n=0;ns*n,1)}u`}getDrawIndex(){return this.renderer.backend.extensions.has("WEBGL_multi_draw")?"uint( gl_DrawID )":null}getFrontFacing(){return"gl_FrontFacing"}getFragCoord(){return"gl_FragCoord.xy"}getFragDepth(){return"gl_FragDepth"}enableExtension(e,t,s=this.shaderStage){const n=this.extensions[s]||(this.extensions[s]=new Map);n.has(e)===!1&&n.set(e,{name:e,behavior:t})}getExtensions(e){const t=[];if(e==="vertex"){const n=this.renderer.backend.extensions;this.object.isBatchedMesh&&n.has("WEBGL_multi_draw")&&this.enableExtension("GL_ANGLE_multi_draw","require",e)}const s=this.extensions[e];if(s!==void 0)for(const{name:n,behavior:r}of s.values())t.push(`#extension ${n} : ${r}`);return t.join(` +`)}getClipDistance(){return"gl_ClipDistance"}isAvailable(e){let t=Qc[e];if(t===void 0){let s;switch(t=!1,e){case"float32Filterable":s="OES_texture_float_linear";break;case"clipDistance":s="WEBGL_clip_cull_distance";break}if(s!==void 0){const n=this.renderer.backend.extensions;n.has(s)&&(n.get(s),t=!0)}Qc[e]=t}return t}isFlipY(){return!0}enableHardwareClipping(e){this.enableExtension("GL_ANGLE_clip_cull_distance","require"),this.builtins.vertex.push(`out float gl_ClipDistance[ ${e} ]`)}registerTransform(e,t){this.transforms.push({varyingName:e,attributeNode:t})}getTransforms(){const e=this.transforms;let t="";for(let s=0;s0&&(s+=` +`),s+=` // flow -> ${c} + `),s+=`${u.code} + `,a===r&&t!=="compute"&&(s+=`// result + `,t==="vertex"?(s+="gl_Position = ",s+=`${u.result};`):t==="fragment"&&(a.outputNode.isOutputStructNode||(s+="fragColor = ",s+=`${u.result};`)))}const i=e[t];i.extensions=this.getExtensions(t),i.uniforms=this.getUniforms(t),i.attributes=this.getAttributes(t),i.varyings=this.getVaryings(t),i.vars=this.getVars(t),i.structs=this.getStructs(t),i.codes=this.getCodes(t),i.transforms=this.getTransforms(t),i.flow=s}this.material!==null?(this.vertexShader=this._getGLSLVertexCode(e.vertex),this.fragmentShader=this._getGLSLFragmentCode(e.fragment)):this.computeShader=this._getGLSLVertexCode(e.compute)}getUniformFromNode(e,t,s,n=null){const r=super.getUniformFromNode(e,t,s,n),i=this.getDataFromNode(e,s,this.globalCache);let a=i.uniformGPU;if(a===void 0){const u=e.groupNode,c=u.name,l=this.getBindGroupArray(c,s);if(t==="texture")a=new Di(r.name,r.node,u),l.push(a);else if(t==="cubeTexture")a=new Tg(r.name,r.node,u),l.push(a);else if(t==="texture3D")a=new _g(r.name,r.node,u),l.push(a);else if(t==="buffer"){e.name=`NodeBuffer_${e.id}`,r.name=`buffer${e.id}`;const d=new yg(e,u);d.name=e.name,l.push(d),a=d}else{const d=this.uniformGroups[s]||(this.uniformGroups[s]={});let h=d[c];h===void 0&&(h=new xg(s+"_"+c,u),d[c]=h,l.push(h)),a=this.getNodeUniform(r,t),h.addUniform(a)}i.uniformGPU=a}return r}}let ho=null,Ls=null;class bg{constructor(e={}){this.parameters=Object.assign({},e),this.data=new WeakMap,this.renderer=null,this.domElement=null}async init(e){this.renderer=e}get coordinateSystem(){}beginRender(){}finishRender(){}beginCompute(){}finishCompute(){}draw(){}compute(){}createProgram(){}destroyProgram(){}createBindings(){}updateBindings(){}updateBinding(){}createRenderPipeline(){}createComputePipeline(){}needsRenderUpdate(){}getRenderCacheKey(){}createNodeBuilder(){}createSampler(){}destroySampler(){}createDefaultTexture(){}createTexture(){}updateTexture(){}generateMipmaps(){}destroyTexture(){}copyTextureToBuffer(){}copyTextureToTexture(){}copyFramebufferToTexture(){}createAttribute(){}createIndexAttribute(){}createStorageAttribute(){}updateAttribute(){}destroyAttribute(){}getContext(){}updateSize(){}updateViewport(){}isOccluded(){}async resolveTimestampAsync(){}async waitForGPU(){}async hasFeatureAsync(){}hasFeature(){}getMaxAnisotropy(){}getDrawingBufferSize(){return ho=ho||new Ye,this.renderer.getDrawingBufferSize(ho)}setScissorTest(){}getClearColor(){const e=this.renderer;return Ls=Ls||new Ru,e.getClearColor(Ls),Ls.getRGB(Ls,this.renderer.currentColorSpace),Ls}getDomElement(){let e=this.domElement;return e===null&&(e=this.parameters.canvas!==void 0?this.parameters.canvas:ym(),"setAttribute"in e&&e.setAttribute("data-engine",`three.js r${xl} webgpu`),this.domElement=e),e}set(e,t){this.data.set(e,t)}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}has(e){return this.data.has(e)}delete(e){this.data.delete(e)}dispose(){}}let NA=0;class SA{constructor(e,t){this.buffers=[e.bufferGPU,t],this.type=e.type,this.bufferType=e.bufferType,this.pbo=e.pbo,this.byteLength=e.byteLength,this.bytesPerElement=e.BYTES_PER_ELEMENT,this.version=e.version,this.isInteger=e.isInteger,this.activeBufferIndex=0,this.baseId=e.id}get id(){return`${this.baseId}|${this.activeBufferIndex}`}get bufferGPU(){return this.buffers[this.activeBufferIndex]}get transformBuffer(){return this.buffers[this.activeBufferIndex^1]}switchBuffers(){this.activeBufferIndex^=1}}class vA{constructor(e){this.backend=e}createAttribute(e,t){const s=this.backend,{gl:n}=s,r=e.array,i=e.usage||n.STATIC_DRAW,a=e.isInterleavedBufferAttribute?e.data:e,u=s.get(a);let c=u.bufferGPU;c===void 0&&(c=this._createBuffer(n,t,r,i),u.bufferGPU=c,u.bufferType=t,u.version=a.version);let l;if(r instanceof Float32Array)l=n.FLOAT;else if(r instanceof Uint16Array)e.isFloat16BufferAttribute?l=n.HALF_FLOAT:l=n.UNSIGNED_SHORT;else if(r instanceof Int16Array)l=n.SHORT;else if(r instanceof Uint32Array)l=n.UNSIGNED_INT;else if(r instanceof Int32Array)l=n.INT;else if(r instanceof Int8Array)l=n.BYTE;else if(r instanceof Uint8Array)l=n.UNSIGNED_BYTE;else if(r instanceof Uint8ClampedArray)l=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLBackend: Unsupported buffer data format: "+r);let d={bufferGPU:c,bufferType:t,type:l,byteLength:r.byteLength,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version,pbo:e.pbo,isInteger:l===n.INT||l===n.UNSIGNED_INT||e.gpuType===ze,id:NA++};if(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute){const h=this._createBuffer(n,t,r,i);d=new SA(d,h)}s.set(e,d)}updateAttribute(e){const t=this.backend,{gl:s}=t,n=e.array,r=e.isInterleavedBufferAttribute?e.data:e,i=t.get(r),a=i.bufferType,u=e.isInterleavedBufferAttribute?e.data.updateRanges:e.updateRanges;if(s.bindBuffer(a,i.bufferGPU),u.length===0)s.bufferSubData(a,0,n);else{for(let c=0,l=u.length;c1?this.enable(n.SAMPLE_ALPHA_TO_COVERAGE):this.disable(n.SAMPLE_ALPHA_TO_COVERAGE),s>0&&this.currentClippingPlanes!==s)for(let u=0;u<8;u++)u{function r(){const i=e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0);if(i===e.WAIT_FAILED){e.deleteSync(t),n();return}if(i===e.TIMEOUT_EXPIRED){requestAnimationFrame(r);return}e.deleteSync(t),s()}r()})}}let el=!1,wr,fo,tl;class CA{constructor(e){this.backend=e,this.gl=e.gl,this.extensions=e.extensions,this.defaultTextures={},el===!1&&(this._init(this.gl),el=!0)}_init(e){wr={[li]:e.REPEAT,[ca]:e.CLAMP_TO_EDGE,[ci]:e.MIRRORED_REPEAT},fo={[bt]:e.NEAREST,[So]:e.NEAREST_MIPMAP_NEAREST,[Xs]:e.NEAREST_MIPMAP_LINEAR,[ft]:e.LINEAR,[_o]:e.LINEAR_MIPMAP_NEAREST,[ms]:e.LINEAR_MIPMAP_LINEAR},tl={[Bl]:e.NEVER,[Ml]:e.ALWAYS,[ua]:e.LESS,[wl]:e.LEQUAL,[El]:e.EQUAL,[Cl]:e.GEQUAL,[Rl]:e.GREATER,[Al]:e.NOTEQUAL}}filterFallback(e){const{gl:t}=this;return e===bt||e===So||e===Xs?t.NEAREST:t.LINEAR}getGLTextureType(e){const{gl:t}=this;let s;return e.isCubeTexture===!0?s=t.TEXTURE_CUBE_MAP:e.isDataArrayTexture===!0||e.isCompressedArrayTexture===!0?s=t.TEXTURE_2D_ARRAY:e.isData3DTexture===!0?s=t.TEXTURE_3D:s=t.TEXTURE_2D,s}getInternalFormat(e,t,s,n,r=!1){const{gl:i,extensions:a}=this;if(e!==null){if(i[e]!==void 0)return i[e];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+e+"'")}let u=t;return t===i.RED&&(s===i.FLOAT&&(u=i.R32F),s===i.HALF_FLOAT&&(u=i.R16F),s===i.UNSIGNED_BYTE&&(u=i.R8),s===i.UNSIGNED_SHORT&&(u=i.R16),s===i.UNSIGNED_INT&&(u=i.R32UI),s===i.BYTE&&(u=i.R8I),s===i.SHORT&&(u=i.R16I),s===i.INT&&(u=i.R32I)),t===i.RED_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.R8UI),s===i.UNSIGNED_SHORT&&(u=i.R16UI),s===i.UNSIGNED_INT&&(u=i.R32UI),s===i.BYTE&&(u=i.R8I),s===i.SHORT&&(u=i.R16I),s===i.INT&&(u=i.R32I)),t===i.RG&&(s===i.FLOAT&&(u=i.RG32F),s===i.HALF_FLOAT&&(u=i.RG16F),s===i.UNSIGNED_BYTE&&(u=i.RG8),s===i.UNSIGNED_SHORT&&(u=i.RG16),s===i.UNSIGNED_INT&&(u=i.RG32UI),s===i.BYTE&&(u=i.RG8I),s===i.SHORT&&(u=i.RG16I),s===i.INT&&(u=i.RG32I)),t===i.RG_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.RG8UI),s===i.UNSIGNED_SHORT&&(u=i.RG16UI),s===i.UNSIGNED_INT&&(u=i.RG32UI),s===i.BYTE&&(u=i.RG8I),s===i.SHORT&&(u=i.RG16I),s===i.INT&&(u=i.RG32I)),t===i.RGB&&(s===i.FLOAT&&(u=i.RGB32F),s===i.HALF_FLOAT&&(u=i.RGB16F),s===i.UNSIGNED_BYTE&&(u=i.RGB8),s===i.UNSIGNED_SHORT&&(u=i.RGB16),s===i.UNSIGNED_INT&&(u=i.RGB32UI),s===i.BYTE&&(u=i.RGB8I),s===i.SHORT&&(u=i.RGB16I),s===i.INT&&(u=i.RGB32I),s===i.UNSIGNED_BYTE&&(u=n===q&&r===!1?i.SRGB8:i.RGB8),s===i.UNSIGNED_SHORT_5_6_5&&(u=i.RGB565),s===i.UNSIGNED_SHORT_5_5_5_1&&(u=i.RGB5_A1),s===i.UNSIGNED_SHORT_4_4_4_4&&(u=i.RGB4),s===i.UNSIGNED_INT_5_9_9_9_REV&&(u=i.RGB9_E5)),t===i.RGB_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.RGB8UI),s===i.UNSIGNED_SHORT&&(u=i.RGB16UI),s===i.UNSIGNED_INT&&(u=i.RGB32UI),s===i.BYTE&&(u=i.RGB8I),s===i.SHORT&&(u=i.RGB16I),s===i.INT&&(u=i.RGB32I)),t===i.RGBA&&(s===i.FLOAT&&(u=i.RGBA32F),s===i.HALF_FLOAT&&(u=i.RGBA16F),s===i.UNSIGNED_BYTE&&(u=i.RGBA8),s===i.UNSIGNED_SHORT&&(u=i.RGBA16),s===i.UNSIGNED_INT&&(u=i.RGBA32UI),s===i.BYTE&&(u=i.RGBA8I),s===i.SHORT&&(u=i.RGBA16I),s===i.INT&&(u=i.RGBA32I),s===i.UNSIGNED_BYTE&&(u=n===q&&r===!1?i.SRGB8_ALPHA8:i.RGBA8),s===i.UNSIGNED_SHORT_4_4_4_4&&(u=i.RGBA4),s===i.UNSIGNED_SHORT_5_5_5_1&&(u=i.RGB5_A1)),t===i.RGBA_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.RGBA8UI),s===i.UNSIGNED_SHORT&&(u=i.RGBA16UI),s===i.UNSIGNED_INT&&(u=i.RGBA32UI),s===i.BYTE&&(u=i.RGBA8I),s===i.SHORT&&(u=i.RGBA16I),s===i.INT&&(u=i.RGBA32I)),t===i.DEPTH_COMPONENT&&(s===i.UNSIGNED_INT&&(u=i.DEPTH24_STENCIL8),s===i.FLOAT&&(u=i.DEPTH_COMPONENT32F)),t===i.DEPTH_STENCIL&&s===i.UNSIGNED_INT_24_8&&(u=i.DEPTH24_STENCIL8),(u===i.R16F||u===i.R32F||u===i.RG16F||u===i.RG32F||u===i.RGBA16F||u===i.RGBA32F)&&a.get("EXT_color_buffer_float"),u}setTextureParameters(e,t){const{gl:s,extensions:n,backend:r}=this;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,t.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,t.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE),s.texParameteri(e,s.TEXTURE_WRAP_S,wr[t.wrapS]),s.texParameteri(e,s.TEXTURE_WRAP_T,wr[t.wrapT]),(e===s.TEXTURE_3D||e===s.TEXTURE_2D_ARRAY)&&s.texParameteri(e,s.TEXTURE_WRAP_R,wr[t.wrapR]),s.texParameteri(e,s.TEXTURE_MAG_FILTER,fo[t.magFilter]);const i=t.mipmaps!==void 0&&t.mipmaps.length>0,a=t.minFilter===ft&&i?ms:t.minFilter;if(s.texParameteri(e,s.TEXTURE_MIN_FILTER,fo[a]),t.compareFunction&&(s.texParameteri(e,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE),s.texParameteri(e,s.TEXTURE_COMPARE_FUNC,tl[t.compareFunction])),n.has("EXT_texture_filter_anisotropic")===!0){if(t.magFilter===bt||t.minFilter!==Xs&&t.minFilter!==ms||t.type===ot&&n.has("OES_texture_float_linear")===!1)return;if(t.anisotropy>1){const u=n.get("EXT_texture_filter_anisotropic");s.texParameterf(e,u.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(t.anisotropy,r.getMaxAnisotropy()))}}}createDefaultTexture(e){const{gl:t,backend:s,defaultTextures:n}=this,r=this.getGLTextureType(e);let i=n[r];i===void 0&&(i=t.createTexture(),s.state.bindTexture(r,i),t.texParameteri(r,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(r,t.TEXTURE_MAG_FILTER,t.NEAREST),n[r]=i),s.set(e,{textureGPU:i,glTextureType:r,isDefault:!0})}createTexture(e,t){const{gl:s,backend:n}=this,{levels:r,width:i,height:a,depth:u}=t,c=n.utils.convert(e.format,e.colorSpace),l=n.utils.convert(e.type),d=this.getInternalFormat(e.internalFormat,c,l,e.colorSpace,e.isVideoTexture),h=s.createTexture(),p=this.getGLTextureType(e);n.state.bindTexture(p,h),this.setTextureParameters(p,e),e.isDataArrayTexture||e.isCompressedArrayTexture?s.texStorage3D(s.TEXTURE_2D_ARRAY,r,d,i,a,u):e.isData3DTexture?s.texStorage3D(s.TEXTURE_3D,r,d,i,a,u):e.isVideoTexture||s.texStorage2D(p,r,d,i,a),n.set(e,{textureGPU:h,glTextureType:p,glFormat:c,glType:l,glInternalFormat:d})}copyBufferToTexture(e,t){const{gl:s,backend:n}=this,{textureGPU:r,glTextureType:i,glFormat:a,glType:u}=n.get(t),{width:c,height:l}=t.source.data;s.bindBuffer(s.PIXEL_UNPACK_BUFFER,e),n.state.bindTexture(i,r),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.texSubImage2D(i,0,0,0,c,l,a,u,0),s.bindBuffer(s.PIXEL_UNPACK_BUFFER,null),n.state.unbindTexture()}updateTexture(e,t){const{gl:s}=this,{width:n,height:r}=t,{textureGPU:i,glTextureType:a,glFormat:u,glType:c,glInternalFormat:l}=this.backend.get(e);if(e.isRenderTargetTexture||i===void 0)return;const d=h=>h.isDataTexture?h.image.data:typeof HTMLImageElement<"u"&&h instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&h instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&h instanceof ImageBitmap||h instanceof OffscreenCanvas?h:h.data;if(this.backend.state.bindTexture(a,i),this.setTextureParameters(a,e),e.isCompressedTexture){const h=e.mipmaps,p=t.image;for(let f=0;f0,h=t.renderTarget?t.renderTarget.height:this.backend.getDrawingBufferSize().y;if(d){const p=a!==0||u!==0;let f,m;if(e.isDepthTexture===!0?(f=n.DEPTH_BUFFER_BIT,m=n.DEPTH_ATTACHMENT,t.stencil&&(f|=n.STENCIL_BUFFER_BIT)):(f=n.COLOR_BUFFER_BIT,m=n.COLOR_ATTACHMENT0),p){const x=this.backend.get(t.renderTarget),N=x.framebuffers[t.getCacheKey()],v=x.msaaFrameBuffer;r.bindFramebuffer(n.DRAW_FRAMEBUFFER,N),r.bindFramebuffer(n.READ_FRAMEBUFFER,v);const w=h-u-l;n.blitFramebuffer(a,w,a+c,w+l,a,w,a+c,w+l,f,n.NEAREST),r.bindFramebuffer(n.READ_FRAMEBUFFER,N),r.bindTexture(n.TEXTURE_2D,i),n.copyTexSubImage2D(n.TEXTURE_2D,0,0,0,a,w,c,l),r.unbindTexture()}else{const x=n.createFramebuffer();r.bindFramebuffer(n.DRAW_FRAMEBUFFER,x),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,m,n.TEXTURE_2D,i,0),n.blitFramebuffer(0,0,c,l,0,0,c,l,f,n.NEAREST),n.deleteFramebuffer(x)}}else r.bindTexture(n.TEXTURE_2D,i),n.copyTexSubImage2D(n.TEXTURE_2D,0,0,0,a,h-l-u,c,l),r.unbindTexture();e.generateMipmaps&&this.generateMipmaps(e),this.backend._setFramebuffer(t)}setupRenderBufferStorage(e,t){const{gl:s}=this,n=t.renderTarget,{samples:r,depthTexture:i,depthBuffer:a,stencilBuffer:u,width:c,height:l}=n;if(s.bindRenderbuffer(s.RENDERBUFFER,e),a&&!u){let d=s.DEPTH_COMPONENT24;r>0?(i&&i.isDepthTexture&&i.type===s.FLOAT&&(d=s.DEPTH_COMPONENT32F),s.renderbufferStorageMultisample(s.RENDERBUFFER,r,d,c,l)):s.renderbufferStorage(s.RENDERBUFFER,d,c,l),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,e)}else a&&u&&(r>0?s.renderbufferStorageMultisample(s.RENDERBUFFER,r,s.DEPTH24_STENCIL8,c,l):s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_STENCIL,c,l),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,e))}async copyTextureToBuffer(e,t,s,n,r,i){const{backend:a,gl:u}=this,{textureGPU:c,glFormat:l,glType:d}=this.backend.get(e),h=u.createFramebuffer();u.bindFramebuffer(u.READ_FRAMEBUFFER,h);const p=e.isCubeTexture?u.TEXTURE_CUBE_MAP_POSITIVE_X+i:u.TEXTURE_2D;u.framebufferTexture2D(u.READ_FRAMEBUFFER,u.COLOR_ATTACHMENT0,p,c,0);const f=this._getTypedArrayType(d),m=this._getBytesPerTexel(d,l),N=n*r*m,v=u.createBuffer();u.bindBuffer(u.PIXEL_PACK_BUFFER,v),u.bufferData(u.PIXEL_PACK_BUFFER,N,u.STREAM_READ),u.readPixels(t,s,n,r,l,d,0),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),await a.utils._clientWaitAsync();const w=new f(N/f.BYTES_PER_ELEMENT);return u.bindBuffer(u.PIXEL_PACK_BUFFER,v),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,w),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),u.deleteFramebuffer(h),w}_getTypedArrayType(e){const{gl:t}=this;if(e===t.UNSIGNED_BYTE)return Uint8Array;if(e===t.UNSIGNED_SHORT_4_4_4_4||e===t.UNSIGNED_SHORT_5_5_5_1||e===t.UNSIGNED_SHORT_5_6_5||e===t.UNSIGNED_SHORT)return Uint16Array;if(e===t.UNSIGNED_INT)return Uint32Array;if(e===t.HALF_FLOAT)return Uint16Array;if(e===t.FLOAT)return Float32Array;throw new Error(`Unsupported WebGL type: ${e}`)}_getBytesPerTexel(e,t){const{gl:s}=this;let n=0;if(e===s.UNSIGNED_BYTE&&(n=1),(e===s.UNSIGNED_SHORT_4_4_4_4||e===s.UNSIGNED_SHORT_5_5_5_1||e===s.UNSIGNED_SHORT_5_6_5||e===s.UNSIGNED_SHORT||e===s.HALF_FLOAT)&&(n=2),(e===s.UNSIGNED_INT||e===s.FLOAT)&&(n=4),t===s.RGBA)return n*4;if(t===s.RGB)return n*3;if(t===s.ALPHA)return n}}class EA{constructor(e){this.backend=e,this.gl=this.backend.gl,this.availableExtensions=this.gl.getSupportedExtensions(),this.extensions={}}get(e){let t=this.extensions[e];return t===void 0&&(t=this.gl.getExtension(e),this.extensions[e]=t),t}has(e){return this.availableExtensions.includes(e)}}class wA{constructor(e){this.backend=e,this.maxAnisotropy=null}getMaxAnisotropy(){if(this.maxAnisotropy!==null)return this.maxAnisotropy;const e=this.backend.gl,t=this.backend.extensions;if(t.has("EXT_texture_filter_anisotropic")===!0){const s=t.get("EXT_texture_filter_anisotropic");this.maxAnisotropy=e.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else this.maxAnisotropy=0;return this.maxAnisotropy}}const sl={WEBGL_multi_draw:"WEBGL_multi_draw",WEBGL_compressed_texture_astc:"texture-compression-astc",WEBGL_compressed_texture_etc:"texture-compression-etc2",WEBGL_compressed_texture_etc1:"texture-compression-etc1",WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBKIT_WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBGL_compressed_texture_s3tc:"texture-compression-bc",EXT_texture_compression_bptc:"texture-compression-bptc",EXT_disjoint_timer_query_webgl2:"timestamp-query"};class MA{constructor(e){this.gl=e.gl,this.extensions=e.extensions,this.info=e.renderer.info,this.mode=null,this.index=0,this.type=null,this.object=null}render(e,t){const{gl:s,mode:n,object:r,type:i,info:a,index:u}=this;u!==0?s.drawElements(n,t,i,e):s.drawArrays(n,e,t),a.update(r,t,n,1)}renderInstances(e,t,s){const{gl:n,mode:r,type:i,index:a,object:u,info:c}=this;s!==0&&(a!==0?n.drawElementsInstanced(r,t,i,e,s):n.drawArraysInstanced(r,e,t,s),c.update(u,t,r,s))}renderMultiDraw(e,t,s){const{extensions:n,mode:r,object:i,info:a}=this;if(s===0)return;const u=n.get("WEBGL_multi_draw");if(u===null)for(let c=0;c0)){const s=t.queryQueue.shift();this.initTimestampQuery(s)}}async resolveTimestampAsync(e,t="render"){if(!this.disjoint||!this.trackTimestamp)return;const s=this.get(e);s.gpuQueries||(s.gpuQueries=[]);for(let n=0;n0&&(s.currentOcclusionQueries=s.occlusionQueries,s.currentOcclusionQueryObjects=s.occlusionQueryObjects,s.lastOcclusionObject=null,s.occlusionQueries=new Array(n),s.occlusionQueryObjects=new Array(n),s.occlusionQueryIndex=0)}finishRender(e){const{gl:t,state:s}=this,n=this.get(e),r=n.previousContext,i=e.occlusionQueryCount;i>0&&(i>n.occlusionQueryIndex&&t.endQuery(t.ANY_SAMPLES_PASSED),this.resolveOccludedAsync(e));const a=e.textures;if(a!==null)for(let u=0;u0){const l=u.framebuffers[e.getCacheKey()],d=t.COLOR_BUFFER_BIT,h=u.msaaFrameBuffer,p=e.textures;s.bindFramebuffer(t.READ_FRAMEBUFFER,h),s.bindFramebuffer(t.DRAW_FRAMEBUFFER,l);for(let f=0;f{let u=0;for(let c=0;c0&&r.add(n[c]),s[c]=null,i.deleteQuery(l),u++)}u1?N.renderInstances(B,v,w):N.render(B,v),u.bindVertexArray(null)}needsRenderUpdate(){return!1}getRenderCacheKey(){return""}createDefaultTexture(e){this.textureUtils.createDefaultTexture(e)}createTexture(e,t){this.textureUtils.createTexture(e,t)}updateTexture(e,t){this.textureUtils.updateTexture(e,t)}generateMipmaps(e){this.textureUtils.generateMipmaps(e)}destroyTexture(e){this.textureUtils.destroyTexture(e)}copyTextureToBuffer(e,t,s,n,r,i){return this.textureUtils.copyTextureToBuffer(e,t,s,n,r,i)}createSampler(){}destroySampler(){}createNodeBuilder(e,t){return new bA(e,t)}createProgram(e){const t=this.gl,{stage:s,code:n}=e,r=s==="fragment"?t.createShader(t.FRAGMENT_SHADER):t.createShader(t.VERTEX_SHADER);t.shaderSource(r,n),t.compileShader(r),this.set(e,{shaderGPU:r})}destroyProgram(e){this.delete(e)}createRenderPipeline(e,t){const s=this.gl,n=e.pipeline,{fragmentProgram:r,vertexProgram:i}=n,a=s.createProgram(),u=this.get(r).shaderGPU,c=this.get(i).shaderGPU;if(s.attachShader(a,u),s.attachShader(a,c),s.linkProgram(a),this.set(n,{programGPU:a,fragmentShader:u,vertexShader:c}),t!==null&&this.parallel){const l=new Promise(d=>{const h=this.parallel,p=()=>{s.getProgramParameter(a,h.COMPLETION_STATUS_KHR)?(this._completeCompile(e,n),d()):requestAnimationFrame(p)};p()});t.push(l);return}this._completeCompile(e,n)}_handleSource(e,t){const s=e.split(` +`),n=[],r=Math.max(t-6,0),i=Math.min(t+6,s.length);for(let a=r;a":" "} ${u}: ${s[a]}`)}return n.join(` +`)}_getShaderErrors(e,t,s){const n=e.getShaderParameter(t,e.COMPILE_STATUS),r=e.getShaderInfoLog(t).trim();if(n&&r==="")return"";const i=/ERROR: 0:(\d+)/.exec(r);if(i){const a=parseInt(i[1]);return s.toUpperCase()+` + +`+r+` + +`+this._handleSource(e.getShaderSource(t),a)}else return r}_logProgramError(e,t,s){if(this.renderer.debug.checkShaderErrors){const n=this.gl,r=n.getProgramInfoLog(e).trim();if(n.getProgramParameter(e,n.LINK_STATUS)===!1)if(typeof this.renderer.debug.onShaderError=="function")this.renderer.debug.onShaderError(n,e,s,t);else{const i=this._getShaderErrors(n,s,"vertex"),a=this._getShaderErrors(n,t,"fragment");console.error("THREE.WebGLProgram: Shader Error "+n.getError()+" - VALIDATE_STATUS "+n.getProgramParameter(e,n.VALIDATE_STATUS)+` + +Program Info Log: `+r+` +`+i+` +`+a)}else r!==""&&console.warn("THREE.WebGLProgram: Program Info Log:",r)}}_completeCompile(e,t){const{state:s,gl:n}=this,r=this.get(t),{programGPU:i,fragmentShader:a,vertexShader:u}=r;n.getProgramParameter(i,n.LINK_STATUS)===!1&&this._logProgramError(i,a,u),s.useProgram(i);const c=e.getBindings();this._setupBindings(c,i),this.set(t,{programGPU:i})}createComputePipeline(e,t){const{state:s,gl:n}=this,r={stage:"fragment",code:`#version 300 es +precision highp float; +void main() {}`};this.createProgram(r);const{computeProgram:i}=e,a=n.createProgram(),u=this.get(r).shaderGPU,c=this.get(i).shaderGPU,l=i.transforms,d=[],h=[];for(let x=0;xsl[n]===e),s=this.extensions;for(let n=0;n0){if(p===void 0){const N=[];p=t.createFramebuffer(),s.bindFramebuffer(t.FRAMEBUFFER,p);const v=[],w=e.textures;for(let B=0;B, + @location( 0 ) vTex : vec2 +}; + +@vertex +fn main( @builtin( vertex_index ) vertexIndex : u32 ) -> VarysStruct { + + var Varys : VarysStruct; + + var pos = array< vec2, 4 >( + vec2( -1.0, 1.0 ), + vec2( 1.0, 1.0 ), + vec2( -1.0, -1.0 ), + vec2( 1.0, -1.0 ) + ); + + var tex = array< vec2, 4 >( + vec2( 0.0, 0.0 ), + vec2( 1.0, 0.0 ), + vec2( 0.0, 1.0 ), + vec2( 1.0, 1.0 ) + ); + + Varys.vTex = tex[ vertexIndex ]; + Varys.Position = vec4( pos[ vertexIndex ], 0.0, 1.0 ); + + return Varys; + +} +`,s=` +@group( 0 ) @binding( 0 ) +var imgSampler : sampler; + +@group( 0 ) @binding( 1 ) +var img : texture_2d; + +@fragment +fn main( @location( 0 ) vTex : vec2 ) -> @location( 0 ) vec4 { + + return textureSample( img, imgSampler, vTex ); + +} +`,n=` +@group( 0 ) @binding( 0 ) +var imgSampler : sampler; + +@group( 0 ) @binding( 1 ) +var img : texture_2d; + +@fragment +fn main( @location( 0 ) vTex : vec2 ) -> @location( 0 ) vec4 { + + return textureSample( img, imgSampler, vec2( vTex.x, 1.0 - vTex.y ) ); + +} +`;this.mipmapSampler=e.createSampler({minFilter:ps.Linear}),this.flipYSampler=e.createSampler({minFilter:ps.Nearest}),this.transferPipelines={},this.flipYPipelines={},this.mipmapVertexShaderModule=e.createShaderModule({label:"mipmapVertex",code:t}),this.mipmapFragmentShaderModule=e.createShaderModule({label:"mipmapFragment",code:s}),this.flipYFragmentShaderModule=e.createShaderModule({label:"flipYFragment",code:n})}getTransferPipeline(e){let t=this.transferPipelines[e];return t===void 0&&(t=this.device.createRenderPipeline({label:`mipmap-${e}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.mipmapFragmentShaderModule,entryPoint:"main",targets:[{format:e}]},primitive:{topology:Ks.TriangleStrip,stripIndexFormat:cn.Uint32},layout:"auto"}),this.transferPipelines[e]=t),t}getFlipYPipeline(e){let t=this.flipYPipelines[e];return t===void 0&&(t=this.device.createRenderPipeline({label:`flipY-${e}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.flipYFragmentShaderModule,entryPoint:"main",targets:[{format:e}]},primitive:{topology:Ks.TriangleStrip,stripIndexFormat:cn.Uint32},layout:"auto"}),this.flipYPipelines[e]=t),t}flipY(e,t,s=0){const n=t.format,{width:r,height:i}=t.size,a=this.getTransferPipeline(n),u=this.getFlipYPipeline(n),c=this.device.createTexture({size:{width:r,height:i,depthOrArrayLayers:1},format:n,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),l=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:$e.TwoD,baseArrayLayer:s}),d=c.createView({baseMipLevel:0,mipLevelCount:1,dimension:$e.TwoD,baseArrayLayer:0}),h=this.device.createCommandEncoder({}),p=(f,m,x)=>{const N=f.getBindGroupLayout(0),v=this.device.createBindGroup({layout:N,entries:[{binding:0,resource:this.flipYSampler},{binding:1,resource:m}]}),w=h.beginRenderPass({colorAttachments:[{view:x,loadOp:ye.Clear,storeOp:De.Store,clearValue:[0,0,0,0]}]});w.setPipeline(f),w.setBindGroup(0,v),w.draw(4,1,0,0),w.end()};p(a,l,d),p(u,d,l),this.device.queue.submit([h.finish()]),c.destroy()}generateMipmaps(e,t,s=0){const n=this.get(e);n.useCount===void 0&&(n.useCount=0,n.layers=[]);const r=n.layers[s]||this._mipmapCreateBundles(e,t,s),i=this.device.createCommandEncoder({});this._mipmapRunBundles(i,r),this.device.queue.submit([i.finish()]),n.useCount!==0&&(n.layers[s]=r),n.useCount++}_mipmapCreateBundles(e,t,s){const n=this.getTransferPipeline(t.format),r=n.getBindGroupLayout(0);let i=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:$e.TwoD,baseArrayLayer:s});const a=[];for(let u=1;u1;for(let a=0;a]*\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/i,zA=/([a-z_0-9]+)\s*:\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/ig,ol={f32:"float",i32:"int",u32:"uint",bool:"bool","vec2":"vec2","vec2":"ivec2","vec2":"uvec2","vec2":"bvec2",vec2f:"vec2",vec2i:"ivec2",vec2u:"uvec2",vec2b:"bvec2","vec3":"vec3","vec3":"ivec3","vec3":"uvec3","vec3":"bvec3",vec3f:"vec3",vec3i:"ivec3",vec3u:"uvec3",vec3b:"bvec3","vec4":"vec4","vec4":"ivec4","vec4":"uvec4","vec4":"bvec4",vec4f:"vec4",vec4i:"ivec4",vec4u:"uvec4",vec4b:"bvec4","mat2x2":"mat2",mat2x2f:"mat2","mat3x3":"mat3",mat3x3f:"mat3","mat4x4":"mat4",mat4x4f:"mat4",sampler:"sampler",texture_1d:"texture",texture_2d:"texture",texture_2d_array:"texture",texture_multisampled_2d:"cubeTexture",texture_depth_2d:"depthTexture",texture_depth_multisampled_2d:"depthTexture",texture_3d:"texture3D",texture_cube:"cubeTexture",texture_cube_array:"cubeTexture",texture_storage_1d:"storageTexture",texture_storage_2d:"storageTexture",texture_storage_2d_array:"storageTexture",texture_storage_3d:"storageTexture"},WA=o=>{o=o.trim();const e=o.match(kA);if(e!==null&&e.length===4){const t=e[2],s=[];let n=null;for(;(n=zA.exec(t))!==null;)s.push({name:n[1],type:n[2]});const r=[];for(let l=0;l "+this.outputType:"";return`fn ${e} ( ${this.inputsCode.trim()} ) ${t}`+this.blockCode}}class HA extends pg{parseFunction(e){return new $A(e)}}const Vs=typeof self<"u"?self.GPUShaderStage:{VERTEX:1,FRAGMENT:2,COMPUTE:4},qA={[Ve.READ_ONLY]:"read",[Ve.WRITE_ONLY]:"write",[Ve.READ_WRITE]:"read_write"},al={[li]:"repeat",[ca]:"clamp",[ci]:"mirror"},Br={vertex:Vs?Vs.VERTEX:1,fragment:Vs?Vs.FRAGMENT:2,compute:Vs?Vs.COMPUTE:4},ul={instance:!0,swizzleAssign:!1,storageBuffer:!0},KA={"^^":"tsl_xor"},XA={float:"f32",int:"i32",uint:"u32",bool:"bool",color:"vec3",vec2:"vec2",ivec2:"vec2",uvec2:"vec2",bvec2:"vec2",vec3:"vec3",ivec3:"vec3",uvec3:"vec3",bvec3:"vec3",vec4:"vec4",ivec4:"vec4",uvec4:"vec4",bvec4:"vec4",mat2:"mat2x2",mat3:"mat3x3",mat4:"mat4x4"},cl={},it={tsl_xor:new Ne("fn tsl_xor( a : bool, b : bool ) -> bool { return ( a || b ) && !( a && b ); }"),mod_float:new Ne("fn tsl_mod_float( x : f32, y : f32 ) -> f32 { return x - y * floor( x / y ); }"),mod_vec2:new Ne("fn tsl_mod_vec2( x : vec2f, y : vec2f ) -> vec2f { return x - y * floor( x / y ); }"),mod_vec3:new Ne("fn tsl_mod_vec3( x : vec3f, y : vec3f ) -> vec3f { return x - y * floor( x / y ); }"),mod_vec4:new Ne("fn tsl_mod_vec4( x : vec4f, y : vec4f ) -> vec4f { return x - y * floor( x / y ); }"),equals_bool:new Ne("fn tsl_equals_bool( a : bool, b : bool ) -> bool { return a == b; }"),equals_bvec2:new Ne("fn tsl_equals_bvec2( a : vec2f, b : vec2f ) -> vec2 { return vec2( a.x == b.x, a.y == b.y ); }"),equals_bvec3:new Ne("fn tsl_equals_bvec3( a : vec3f, b : vec3f ) -> vec3 { return vec3( a.x == b.x, a.y == b.y, a.z == b.z ); }"),equals_bvec4:new Ne("fn tsl_equals_bvec4( a : vec4f, b : vec4f ) -> vec4 { return vec4( a.x == b.x, a.y == b.y, a.z == b.z, a.w == b.w ); }"),repeatWrapping_float:new Ne("fn tsl_repeatWrapping_float( coord: f32 ) -> f32 { return fract( coord ); }"),mirrorWrapping_float:new Ne("fn tsl_mirrorWrapping_float( coord: f32 ) -> f32 { let mirrored = fract( coord * 0.5 ) * 2.0; return 1.0 - abs( 1.0 - mirrored ); }"),clampWrapping_float:new Ne("fn tsl_clampWrapping_float( coord: f32 ) -> f32 { return clamp( coord, 0.0, 1.0 ); }"),biquadraticTexture:new Ne(` +fn tsl_biquadraticTexture( map : texture_2d, coord : vec2f, iRes : vec2u, level : u32 ) -> vec4f { + + let res = vec2f( iRes ); + + let uvScaled = coord * res; + let uvWrapping = ( ( uvScaled % res ) + res ) % res; + + // https://www.shadertoy.com/view/WtyXRy + + let uv = uvWrapping - 0.5; + let iuv = floor( uv ); + let f = fract( uv ); + + let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, level ); + let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, level ); + let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, level ); + let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, level ); + + return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y ); + +} +`)},vn={dFdx:"dpdx",dFdy:"- dpdy",mod_float:"tsl_mod_float",mod_vec2:"tsl_mod_vec2",mod_vec3:"tsl_mod_vec3",mod_vec4:"tsl_mod_vec4",equals_bool:"tsl_equals_bool",equals_bvec2:"tsl_equals_bvec2",equals_bvec3:"tsl_equals_bvec3",equals_bvec4:"tsl_equals_bvec4",inversesqrt:"inverseSqrt",bitcast:"bitcast"};typeof navigator<"u"&&/Windows/g.test(navigator.userAgent)&&(it.pow_float=new Ne("fn tsl_pow_float( a : f32, b : f32 ) -> f32 { return select( -pow( -a, b ), pow( a, b ), a > 0.0 ); }"),it.pow_vec2=new Ne("fn tsl_pow_vec2( a : vec2f, b : vec2f ) -> vec2f { return vec2f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ) ); }",[it.pow_float]),it.pow_vec3=new Ne("fn tsl_pow_vec3( a : vec3f, b : vec3f ) -> vec3f { return vec3f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ) ); }",[it.pow_float]),it.pow_vec4=new Ne("fn tsl_pow_vec4( a : vec4f, b : vec4f ) -> vec4f { return vec4f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ), tsl_pow_float( a.w, b.w ) ); }",[it.pow_float]),vn.pow_float="tsl_pow_float",vn.pow_vec2="tsl_pow_vec2",vn.pow_vec3="tsl_pow_vec3",vn.pow_vec4="tsl_pow_vec4");let Ng="";(typeof navigator<"u"&&/Firefox|Deno/g.test(navigator.userAgent))!==!0&&(Ng+=`diagnostic( off, derivative_uniformity ); +`);class YA extends dg{constructor(e,t){super(e,t,new HA),this.uniformGroups={},this.builtins={},this.directives={},this.scopedArrays=new Map}needsToWorkingColorSpace(e){return e.isVideoTexture===!0&&e.colorSpace!==Dn}_generateTextureSample(e,t,s,n,r=this.shaderStage){return r==="fragment"?n?`textureSample( ${t}, ${t}_sampler, ${s}, ${n} )`:`textureSample( ${t}, ${t}_sampler, ${s} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,s):this.generateTextureLod(e,t,s,n,"0")}_generateVideoSample(e,t,s=this.shaderStage){if(s==="fragment")return`textureSampleBaseClampToEdge( ${e}, ${e}_sampler, vec2( ${t}.x, 1.0 - ${t}.y ) )`;console.error(`WebGPURenderer: THREE.VideoTexture does not support ${s} shader.`)}_generateTextureSampleLevel(e,t,s,n,r,i=this.shaderStage){return(i==="fragment"||i==="compute")&&this.isUnfilterable(e)===!1?`textureSampleLevel( ${t}, ${t}_sampler, ${s}, ${n} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,s,n):this.generateTextureLod(e,t,s,r,n)}generateWrapFunction(e){const t=`tsl_coord_${al[e.wrapS]}S_${al[e.wrapT]}_${e.isData3DTexture?"3d":"2d"}T`;let s=cl[t];if(s===void 0){const n=[],r=e.isData3DTexture?"vec3f":"vec2f";let i=`fn ${t}( coord : ${r} ) -> ${r} { + + return ${r}( +`;const a=(u,c)=>{u===li?(n.push(it.repeatWrapping_float),i+=` tsl_repeatWrapping_float( coord.${c} )`):u===ca?(n.push(it.clampWrapping_float),i+=` tsl_clampWrapping_float( coord.${c} )`):u===ci?(n.push(it.mirrorWrapping_float),i+=` tsl_mirrorWrapping_float( coord.${c} )`):(i+=` coord.${c}`,console.warn(`WebGPURenderer: Unsupported texture wrap type "${u}" for vertex shader.`))};a(e.wrapS,"x"),i+=`, +`,a(e.wrapT,"y"),e.isData3DTexture&&(i+=`, +`,a(e.wrapR,"z")),i+=` + ); + +} +`,cl[t]=s=new Ne(i,n)}return s.build(this),t}generateTextureDimension(e,t,s){const n=this.getDataFromNode(e,this.shaderStage,this.globalCache);n.dimensionsSnippet===void 0&&(n.dimensionsSnippet={});let r=n.dimensionsSnippet[s];if(n.dimensionsSnippet[s]===void 0){let i,a;const{primarySamples:u}=this.renderer.backend.utils.getTextureSampleData(e),c=u>1;e.isData3DTexture?a="vec3":a="vec2",c||e.isVideoTexture||e.isStorageTexture?i=t:i=`${t}${s?`, u32( ${s} )`:""}`,r=new Ir(new Vr(`textureDimensions( ${i} )`,a)),n.dimensionsSnippet[s]=r,(e.isDataArrayTexture||e.isData3DTexture)&&(n.arrayLayerCount=new Ir(new Vr(`textureNumLayers(${t})`,"u32"))),e.isTextureCube&&(n.cubeFaceCount=new Ir(new Vr("6u","u32")))}return r.build(this)}generateFilteredTexture(e,t,s,n="0u"){this._include("biquadraticTexture");const r=this.generateWrapFunction(e),i=this.generateTextureDimension(e,t,n);return`tsl_biquadraticTexture( ${t}, ${r}( ${s} ), ${i}, u32( ${n} ) )`}generateTextureLod(e,t,s,n,r="0u"){const i=this.generateWrapFunction(e),a=this.generateTextureDimension(e,t,r),u=e.isData3DTexture?"vec3":"vec2",c=`${u}(${i}(${s}) * ${u}(${a}))`;return this.generateTextureLoad(e,t,c,n,r)}generateTextureLoad(e,t,s,n,r="0u"){return e.isVideoTexture===!0||e.isStorageTexture===!0?`textureLoad( ${t}, ${s} )`:n?`textureLoad( ${t}, ${s}, ${n}, u32( ${r} ) )`:`textureLoad( ${t}, ${s}, u32( ${r} ) )`}generateTextureStore(e,t,s,n){return`textureStore( ${t}, ${s}, ${n} )`}isSampleCompare(e){return e.isDepthTexture===!0&&e.compareFunction!==null}isUnfilterable(e){return this.getComponentTypeFromTexture(e)!=="float"||!this.isAvailable("float32Filterable")&&e.isDataTexture===!0&&e.type===ot||this.isSampleCompare(e)===!1&&e.minFilter===bt&&e.magFilter===bt||this.renderer.backend.utils.getTextureSampleData(e).primarySamples>1}generateTexture(e,t,s,n,r=this.shaderStage){let i=null;return e.isVideoTexture===!0?i=this._generateVideoSample(t,s,r):this.isUnfilterable(e)?i=this.generateTextureLod(e,t,s,n,"0",r):i=this._generateTextureSample(e,t,s,n,r),i}generateTextureGrad(e,t,s,n,r,i=this.shaderStage){if(i==="fragment")return`textureSampleGrad( ${t}, ${t}_sampler, ${s}, ${n[0]}, ${n[1]} )`;console.error(`WebGPURenderer: THREE.TextureNode.gradient() does not support ${i} shader.`)}generateTextureCompare(e,t,s,n,r,i=this.shaderStage){if(i==="fragment")return`textureSampleCompare( ${t}, ${t}_sampler, ${s}, ${n} )`;console.error(`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${i} shader.`)}generateTextureLevel(e,t,s,n,r,i=this.shaderStage){let a=null;return e.isVideoTexture===!0?a=this._generateVideoSample(t,s,i):a=this._generateTextureSampleLevel(e,t,s,n,r,i),a}generateTextureBias(e,t,s,n,r,i=this.shaderStage){if(i==="fragment")return`textureSampleBias( ${t}, ${t}_sampler, ${s}, ${n} )`;console.error(`WebGPURenderer: THREE.TextureNode.biasNode does not support ${i} shader.`)}getPropertyName(e,t=this.shaderStage){if(e.isNodeVarying===!0&&e.needsInterpolation===!0){if(t==="vertex")return`varyings.${e.name}`}else if(e.isNodeUniform===!0){const s=e.name,n=e.type;return n==="texture"||n==="cubeTexture"||n==="storageTexture"||n==="texture3D"?s:n==="buffer"||n==="storageBuffer"||n==="indirectStorageBuffer"?`NodeBuffer_${e.id}.${s}`:e.groupNode.name+"."+s}return super.getPropertyName(e)}getOutputStructName(){return"output"}_getUniformGroupCount(e){return Object.keys(this.uniforms[e]).length}getFunctionOperator(e){const t=KA[e];return t!==void 0?(this._include(t),t):null}getNodeAccess(e,t){return t!=="compute"?Ve.READ_ONLY:e.access}getStorageAccess(e,t){return qA[this.getNodeAccess(e,t)]}getUniformFromNode(e,t,s,n=null){const r=super.getUniformFromNode(e,t,s,n),i=this.getDataFromNode(e,s,this.globalCache);if(i.uniformGPU===void 0){let a;const u=e.groupNode,c=u.name,l=this.getBindGroupArray(c,s);if(t==="texture"||t==="cubeTexture"||t==="storageTexture"||t==="texture3D"){let d=null;const h=this.getNodeAccess(e,s);if(t==="texture"||t==="storageTexture"?d=new Di(r.name,r.node,u,h):t==="cubeTexture"?d=new Tg(r.name,r.node,u,h):t==="texture3D"&&(d=new _g(r.name,r.node,u,h)),d.store=e.isStorageTextureNode===!0,d.setVisibility(Br[s]),(s==="fragment"||s==="compute")&&this.isUnfilterable(e.value)===!1&&d.store===!1){const p=new UA(`${r.name}_sampler`,r.node,u);p.setVisibility(Br[s]),l.push(p,d),a=[p,d]}else l.push(d),a=[d]}else if(t==="buffer"||t==="storageBuffer"||t==="indirectStorageBuffer"){const d=t==="buffer"?yg:LA,h=new d(e,u);h.setVisibility(Br[s]),l.push(h),a=h}else{const d=this.uniformGroups[s]||(this.uniformGroups[s]={});let h=d[c];h===void 0&&(h=new xg(c,u),h.setVisibility(Br[s]),d[c]=h,l.push(h)),a=this.getNodeUniform(r,t),h.addUniform(a)}i.uniformGPU=a}return r}getBuiltin(e,t,s,n=this.shaderStage){const r=this.builtins[n]||(this.builtins[n]=new Map);return r.has(e)===!1&&r.set(e,{name:e,property:t,type:s}),t}hasBuiltin(e,t=this.shaderStage){return this.builtins[t]!==void 0&&this.builtins[t].has(e)}getVertexIndex(){return this.shaderStage==="vertex"?this.getBuiltin("vertex_index","vertexIndex","u32","attribute"):"vertexIndex"}buildFunctionCode(e){const t=e.layout,s=this.flowShaderNode(e),n=[];for(const i of t.inputs)n.push(i.name+" : "+this.getType(i.type));let r=`fn ${t.name}( ${n.join(", ")} ) -> ${this.getType(t.type)} { +${s.vars} +${s.code} +`;return s.result&&(r+=` return ${s.result}; +`),r+=` +} +`,r}getInstanceIndex(){return this.shaderStage==="vertex"?this.getBuiltin("instance_index","instanceIndex","u32","attribute"):"instanceIndex"}getInvocationLocalIndex(){return this.getBuiltin("local_invocation_index","invocationLocalIndex","u32","attribute")}getSubgroupSize(){return this.enableSubGroups(),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute")}getInvocationSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_invocation_id","invocationSubgroupIndex","u32","attribute")}getSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_id","subgroupIndex","u32","attribute")}getDrawIndex(){return null}getFrontFacing(){return this.getBuiltin("front_facing","isFront","bool")}getFragCoord(){return this.getBuiltin("position","fragCoord","vec4")+".xy"}getFragDepth(){return"output."+this.getBuiltin("frag_depth","depth","f32","output")}getClipDistance(){return"varyings.hw_clip_distances"}isFlipY(){return!1}enableDirective(e,t=this.shaderStage){(this.directives[t]||(this.directives[t]=new Set)).add(e)}getDirectives(e){const t=[],s=this.directives[e];if(s!==void 0)for(const n of s)t.push(`enable ${n};`);return t.join(` +`)}enableSubGroups(){this.enableDirective("subgroups")}enableSubgroupsF16(){this.enableDirective("subgroups-f16")}enableClipDistances(){this.enableDirective("clip_distances")}enableShaderF16(){this.enableDirective("f16")}enableDualSourceBlending(){this.enableDirective("dual_source_blending")}enableHardwareClipping(e){this.enableClipDistances(),this.getBuiltin("clip_distances","hw_clip_distances",`array`,"vertex")}getBuiltins(e){const t=[],s=this.builtins[e];if(s!==void 0)for(const{name:n,property:r,type:i}of s.values())t.push(`@builtin( ${n} ) ${r} : ${i}`);return t.join(`, + `)}getScopedArray(e,t,s,n){return this.scopedArrays.has(e)===!1&&this.scopedArrays.set(e,{name:e,scope:t,bufferType:s,bufferCount:n}),e}getScopedArrays(e){if(e!=="compute")return;const t=[];for(const{name:s,scope:n,bufferType:r,bufferCount:i}of this.scopedArrays.values()){const a=this.getType(r);t.push(`var<${n}> ${s}: array< ${a}, ${i} >;`)}return t.join(` +`)}getAttributes(e){const t=[];if(e==="compute"&&(this.getBuiltin("global_invocation_id","id","vec3","attribute"),this.getBuiltin("workgroup_id","workgroupId","vec3","attribute"),this.getBuiltin("local_invocation_id","localId","vec3","attribute"),this.getBuiltin("num_workgroups","numWorkgroups","vec3","attribute"),this.renderer.hasFeature("subgroups")&&(this.enableDirective("subgroups",e),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute"))),e==="vertex"||e==="compute"){const s=this.getBuiltins("attribute");s&&t.push(s);const n=this.getAttributesArray();for(let r=0,i=n.length;r`)}const n=this.getBuiltins("output");return n&&t.push(" "+n),t.join(`, +`)}getStructs(e){const t=[],s=this.structs[e];for(let n=0,r=s.length;n output : ${a}; + +`)}return t.join(` + +`)}getVar(e,t){return`var ${t} : ${this.getType(e)}`}getVars(e){const t=[],s=this.vars[e];if(s!==void 0)for(const n of s)t.push(` ${this.getVar(n.type,n.name)};`);return` +${t.join(` +`)} +`}getVaryings(e){const t=[];if(e==="vertex"&&this.getBuiltin("position","Vertex","vec4","vertex"),e==="vertex"||e==="fragment"){const r=this.varyings,i=this.vars[e];for(let a=0;a1&&(p="_multisampled"),d.isCubeTexture===!0)h="texture_cube";else if(d.isDataArrayTexture===!0||d.isCompressedArrayTexture===!0)h="texture_2d_array";else if(d.isDepthTexture===!0)h=`texture_depth${p}_2d`;else if(d.isVideoTexture===!0)h="texture_external";else if(d.isData3DTexture===!0)h="texture_3d";else if(u.node.isStorageTextureNode===!0){const m=ia(d),x=this.getStorageAccess(u.node,e);h=`texture_storage_2d<${m}, ${x}>`}else{const m=this.getComponentTypeFromTexture(d).charAt(0);h=`texture${p}_2d<${m}32>`}s.push(`@binding( ${l.binding++} ) @group( ${l.group} ) var ${u.name} : ${h};`)}else if(u.type==="buffer"||u.type==="storageBuffer"||u.type==="indirectStorageBuffer"){const d=u.node,h=this.getType(d.bufferType),p=d.bufferCount,f=p>0&&u.type==="buffer"?", "+p:"",m=d.isAtomic?`atomic<${h}>`:`${h}`,x=` ${u.name} : array< ${m}${f} > +`,N=d.isStorageBufferNode?`storage, ${this.getStorageAccess(d,e)}`:"uniform";n.push(this._getWGSLStructBinding("NodeBuffer_"+d.id,x,N,l.binding++,l.group))}else{const d=this.getType(this.getVectorType(u.type)),h=u.groupNode.name;(i[h]||(i[h]={index:l.binding++,id:l.group,snippets:[]})).snippets.push(` ${u.name} : ${d}`)}}for(const u in i){const c=i[u];r.push(this._getWGSLStructBinding(u,c.snippets.join(`, +`),"uniform",c.index,c.id))}let a=s.join(` +`);return a+=n.join(` +`),a+=r.join(` +`),a}buildCode(){const e=this.material!==null?{fragment:{},vertex:{}}:{compute:{}};this.sortBindingGroups();for(const t in e){const s=e[t];s.uniforms=this.getUniforms(t),s.attributes=this.getAttributes(t),s.varyings=this.getVaryings(t),s.structs=this.getStructs(t),s.vars=this.getVars(t),s.codes=this.getCodes(t),s.directives=this.getDirectives(t),s.scopedArrays=this.getScopedArrays(t);let n=`// code + +`;n+=this.flowCode[t];const r=this.flowNodes[t],i=r[r.length-1],a=i.outputNode,u=a!==void 0&&a.isOutputStructNode===!0;for(const c of r){const l=this.getFlowData(c),d=c.name;if(d&&(n.length>0&&(n+=` +`),n+=` // flow -> ${d} + `),n+=`${l.code} + `,c===i&&t!=="compute"){if(n+=`// result + + `,t==="vertex")n+=`varyings.Vertex = ${l.result};`;else if(t==="fragment")if(u)s.returnType=a.nodeType,n+=`return ${l.result};`;else{let h=" @location(0) color: vec4";const p=this.getBuiltins("output");p&&(h+=`, + `+p),s.returnType="OutputStruct",s.structs+=this._getWGSLStruct("OutputStruct",h),s.structs+=` +var output : OutputStruct; + +`,n+=`output.color = ${l.result}; + + return output;`}}}s.flow=n}this.material!==null?(this.vertexShader=this._getWGSLVertexCode(e.vertex),this.fragmentShader=this._getWGSLFragmentCode(e.fragment)):this.computeShader=this._getWGSLComputeCode(e.compute,(this.object.workgroupSize||[64]).join(", "))}getMethod(e,t=null){let s;return t!==null&&(s=this._getWGSLMethod(e+"_"+t)),s===void 0&&(s=this._getWGSLMethod(e)),s||e}getType(e){return XA[e]||e}isAvailable(e){let t=ul[e];return t===void 0&&(e==="float32Filterable"?t=this.renderer.hasFeature("float32-filterable"):e==="clipDistance"&&(t=this.renderer.hasFeature("clip-distances")),ul[e]=t),t}_getWGSLMethod(e){return it[e]!==void 0&&this._include(e),vn[e]}_include(e){const t=it[e];return t.build(this),this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(t),t}_getWGSLVertexCode(e){return`${this.getSignature()} +// directives +${e.directives} + +// uniforms +${e.uniforms} + +// varyings +${e.varyings} +var varyings : VaryingsStruct; + +// codes +${e.codes} + +@vertex +fn main( ${e.attributes} ) -> VaryingsStruct { + + // vars + ${e.vars} + + // flow + ${e.flow} + + return varyings; + +} +`}_getWGSLFragmentCode(e){return`${this.getSignature()} +// global +${Ng} + +// uniforms +${e.uniforms} + +// structs +${e.structs} + +// codes +${e.codes} + +@fragment +fn main( ${e.varyings} ) -> ${e.returnType} { + + // vars + ${e.vars} + + // flow + ${e.flow} + +} +`}_getWGSLComputeCode(e,t){return`${this.getSignature()} +// directives +${e.directives} + +// system +var instanceIndex : u32; + +// locals +${e.scopedArrays} + +// uniforms +${e.uniforms} + +// codes +${e.codes} + +@compute @workgroup_size( ${t} ) +fn main( ${e.attributes} ) { + + // system + instanceIndex = id.x + id.y * numWorkgroups.x * u32(${t}) + id.z * numWorkgroups.x * numWorkgroups.y * u32(${t}); + + // vars + ${e.vars} + + // flow + ${e.flow} + +} +`}_getWGSLStruct(e,t){return` +struct ${e} { +${t} +};`}_getWGSLStructBinding(e,t,s,n=0,r=0){const i=e+"Struct";return`${this._getWGSLStruct(i,t)} +@binding( ${n} ) @group( ${r} ) +var<${s}> ${e} : ${i};`}}class jA{constructor(e){this.backend=e}getCurrentDepthStencilFormat(e){let t;return e.depthTexture!==null?t=this.getTextureFormatGPU(e.depthTexture):e.depth&&e.stencil?t=_.Depth24PlusStencil8:e.depth&&(t=_.Depth24Plus),t}getTextureFormatGPU(e){return this.backend.get(e).format}getTextureSampleData(e){let t;if(e.isFramebufferTexture)t=1;else if(e.isDepthTexture&&!e.renderTarget){const r=this.backend.renderer,i=r.getRenderTarget();t=i?i.samples:r.samples}else e.renderTarget&&(t=e.renderTarget.samples);t=t||1;const s=t>1&&e.renderTarget!==null&&e.isDepthTexture!==!0&&e.isFramebufferTexture!==!0;return{samples:t,primarySamples:s?1:t,isMSAA:s}}getCurrentColorFormat(e){let t;return e.textures!==null?t=this.getTextureFormatGPU(e.textures[0]):t=this.getPreferredCanvasFormat(),t}getCurrentColorSpace(e){return e.textures!==null?e.textures[0].colorSpace:this.backend.renderer.outputColorSpace}getPrimitiveTopology(e,t){if(e.isPoints)return Ks.PointList;if(e.isLineSegments||e.isMesh&&t.wireframe===!0)return Ks.LineList;if(e.isLine)return Ks.LineStrip;if(e.isMesh)return Ks.TriangleList}getSampleCount(e){let t=1;return e>1&&(t=Math.pow(2,Math.floor(Math.log2(e))),t===2&&(t=4)),t}getSampleCountRenderContext(e){return e.textures!==null?this.getSampleCount(e.sampleCount):this.getSampleCount(this.backend.renderer.samples)}getPreferredCanvasFormat(){return navigator.userAgent.includes("Quest")?_.BGRA8Unorm:navigator.gpu.getPreferredCanvasFormat()}}const QA=new Map([[Int8Array,["sint8","snorm8"]],[Uint8Array,["uint8","unorm8"]],[Int16Array,["sint16","snorm16"]],[Uint16Array,["uint16","unorm16"]],[Int32Array,["sint32","snorm32"]],[Uint32Array,["uint32","unorm32"]],[Float32Array,["float32"]]]),ZA=new Map([[yl,["float16"]]]),JA=new Map([[Int32Array,"sint32"],[Int16Array,"sint32"],[Uint32Array,"uint32"],[Uint16Array,"uint32"],[Float32Array,"float32"]]);class eR{constructor(e){this.backend=e}createAttribute(e,t){const s=this._getBufferAttribute(e),n=this.backend,r=n.get(s);let i=r.buffer;if(i===void 0){const a=n.device;let u=s.array;if(e.normalized===!1&&(u.constructor===Int16Array||u.constructor===Uint16Array)){const l=new Uint32Array(u.length);for(let d=0;d1&&(u.multisampled=!0,i.texture.isDepthTexture||(u.sampleType=Is.UnfilterableFloat)),i.texture.isDepthTexture)u.sampleType=Is.Depth;else if(i.texture.isDataTexture||i.texture.isDataArrayTexture||i.texture.isData3DTexture){const l=i.texture.type;l===ze?u.sampleType=Is.SInt:l===Le?u.sampleType=Is.UInt:l===ot&&(this.backend.hasFeature("float32-filterable")?u.sampleType=Is.Float:u.sampleType=Is.UnfilterableFloat)}i.isSampledCubeTexture?u.viewDimension=$e.Cube:i.texture.isDataArrayTexture||i.texture.isCompressedArrayTexture?u.viewDimension=$e.TwoDArray:i.isSampledTexture3D&&(u.viewDimension=$e.ThreeD),a.texture=u}else console.error(`WebGPUBindingUtils: Unsupported binding "${i}".`);n.push(a)}return s.createBindGroupLayout({entries:n})}createBindings(e,t,s,n=0){const{backend:r,bindGroupLayoutCache:i}=this,a=r.get(e);let u=i.get(e.bindingsReference);u===void 0&&(u=this.createBindingsLayout(e),i.set(e.bindingsReference,u));let c;s>0&&(a.groups===void 0&&(a.groups=[],a.versions=[]),a.versions[s]===n&&(c=a.groups[s])),c===void 0&&(c=this.createBindGroup(e,u),s>0&&(a.groups[s]=c,a.versions[s]=n)),a.group=c,a.layout=u}updateBinding(e){const t=this.backend,s=t.device,n=e.buffer,r=t.get(e).buffer;s.queue.writeBuffer(r,0,n,0)}createBindGroup(e,t){const s=this.backend,n=s.device;let r=0;const i=[];for(const a of e.bindings){if(a.isUniformBuffer){const u=s.get(a);if(u.buffer===void 0){const c=a.byteLength,l=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,d=n.createBuffer({label:"bindingBuffer_"+a.name,size:c,usage:l});u.buffer=d}i.push({binding:r,resource:{buffer:u.buffer}})}else if(a.isStorageBuffer){const u=s.get(a);if(u.buffer===void 0){const c=a.attribute;u.buffer=s.get(c).buffer}i.push({binding:r,resource:{buffer:u.buffer}})}else if(a.isSampler){const u=s.get(a.texture);i.push({binding:r,resource:u.sampler})}else if(a.isSampledTexture){const u=s.get(a.texture);let c;if(u.externalTexture!==void 0)c=n.importExternalTexture({source:u.externalTexture});else{const l=a.store?1:u.texture.mipLevelCount,d=`view-${u.texture.width}-${u.texture.height}-${l}`;if(c=u[d],c===void 0){const h=BA.All;let p;a.isSampledCubeTexture?p=$e.Cube:a.isSampledTexture3D?p=$e.ThreeD:a.texture.isDataArrayTexture||a.texture.isCompressedArrayTexture?p=$e.TwoDArray:p=$e.TwoD,c=u[d]=u.texture.createView({aspect:h,dimension:p,mipLevelCount:l})}}i.push({binding:r,resource:c})}r++}return n.createBindGroup({label:"bindGroup_"+e.name,layout:t,entries:i})}}class sR{constructor(e){this.backend=e}_getSampleCount(e){return this.backend.utils.getSampleCountRenderContext(e)}createRenderPipeline(e,t){const{object:s,material:n,geometry:r,pipeline:i}=e,{vertexProgram:a,fragmentProgram:u}=i,c=this.backend,l=c.device,d=c.utils,h=c.get(i),p=[];for(const Ze of e.getBindings()){const Dt=c.get(Ze);p.push(Dt.layout)}const f=c.attributeUtils.createShaderVertexBuffers(e);let m;n.transparent===!0&&n.blending!==en&&(m=this._getBlending(n));let x={};n.stencilWrite===!0&&(x={compare:this._getStencilCompare(n),failOp:this._getStencilOperation(n.stencilFail),depthFailOp:this._getStencilOperation(n.stencilZFail),passOp:this._getStencilOperation(n.stencilZPass)});const N=this._getColorWriteMask(n),v=[];if(e.context.textures!==null){const Ze=e.context.textures;for(let Dt=0;Dt1},layout:l.createPipelineLayout({bindGroupLayouts:p})},ie={},Z=e.context.depth,Qe=e.context.stencil;if((Z===!0||Qe===!0)&&(Z===!0&&(ie.format=I,ie.depthWriteEnabled=n.depthWrite,ie.depthCompare=L),Qe===!0&&(ie.stencilFront=x,ie.stencilBack={},ie.stencilReadMask=n.stencilFuncMask,ie.stencilWriteMask=n.stencilWriteMask),X.depthStencil=ie),t===null)h.pipeline=l.createRenderPipeline(X);else{const Ze=new Promise(Dt=>{l.createRenderPipelineAsync(X).then(Ms=>{h.pipeline=Ms,Dt()})});t.push(Ze)}}createBundleEncoder(e){const t=this.backend,{utils:s,device:n}=t,r=s.getCurrentDepthStencilFormat(e),i=s.getCurrentColorFormat(e),a=this._getSampleCount(e),u={label:"renderBundleEncoder",colorFormats:[i],depthStencilFormat:r,sampleCount:a};return n.createRenderBundleEncoder(u)}createComputePipeline(e,t){const s=this.backend,n=s.device,r=s.get(e.computeProgram).module,i=s.get(e),a=[];for(const u of t){const c=s.get(u);a.push(c.layout)}i.pipeline=n.createComputePipeline({compute:r,layout:n.createPipelineLayout({bindGroupLayouts:a})})}_getBlending(e){let t,s;const n=e.blending,r=e.blendSrc,i=e.blendDst,a=e.blendEquation;if(n===Hl){const u=e.blendSrcAlpha!==null?e.blendSrcAlpha:r,c=e.blendDstAlpha!==null?e.blendDstAlpha:i,l=e.blendEquationAlpha!==null?e.blendEquationAlpha:a;t={srcFactor:this._getBlendFactor(r),dstFactor:this._getBlendFactor(i),operation:this._getBlendOperation(a)},s={srcFactor:this._getBlendFactor(u),dstFactor:this._getBlendFactor(c),operation:this._getBlendOperation(l)}}else{const u=e.premultipliedAlpha,c=(l,d,h,p)=>{t={srcFactor:l,dstFactor:d,operation:ls.Add},s={srcFactor:h,dstFactor:p,operation:ls.Add}};if(u)switch(n){case Ys:c(H.One,H.OneMinusSrcAlpha,H.One,H.OneMinusSrcAlpha);break;case qr:c(H.One,H.One,H.One,H.One);break;case Hr:c(H.Zero,H.OneMinusSrc,H.Zero,H.One);break;case $r:c(H.Zero,H.Src,H.Zero,H.SrcAlpha);break}else switch(n){case Ys:c(H.SrcAlpha,H.OneMinusSrcAlpha,H.One,H.OneMinusSrcAlpha);break;case qr:c(H.SrcAlpha,H.One,H.SrcAlpha,H.One);break;case Hr:c(H.Zero,H.OneMinusSrc,H.Zero,H.One);break;case $r:c(H.Zero,H.Src,H.Zero,H.Src);break}}if(t!==void 0&&s!==void 0)return{color:t,alpha:s};console.error("THREE.WebGPURenderer: Invalid blending: ",n)}_getBlendFactor(e){let t;switch(e){case $l:t=H.Zero;break;case Wl:t=H.One;break;case zl:t=H.Src;break;case Il:t=H.OneMinusSrc;break;case kl:t=H.SrcAlpha;break;case Ll:t=H.OneMinusSrcAlpha;break;case Gl:t=H.Dst;break;case Dl:t=H.OneMinusDstColor;break;case Vl:t=H.DstAlpha;break;case Pl:t=H.OneMinusDstAlpha;break;case Ol:t=H.SrcAlphaSaturated;break;case __:t=H.Constant;break;case b_:t=H.OneMinusConstant;break;default:console.error("THREE.WebGPURenderer: Blend factor not supported.",e)}return t}_getStencilCompare(e){let t;const s=e.stencilFunc;switch(s){case Im:t=Fe.Never;break;case Lm:t=Fe.Always;break;case Dm:t=Fe.Less;break;case Pm:t=Fe.LessEqual;break;case Um:t=Fe.Equal;break;case Fm:t=Fe.GreaterEqual;break;case Bm:t=Fe.Greater;break;case Mm:t=Fe.NotEqual;break;default:console.error("THREE.WebGPURenderer: Invalid stencil function.",s)}return t}_getStencilOperation(e){let t;switch(e){case Hm:t=Qt.Keep;break;case $m:t=Qt.Zero;break;case Wm:t=Qt.Replace;break;case zm:t=Qt.Invert;break;case km:t=Qt.IncrementClamp;break;case Om:t=Qt.DecrementClamp;break;case Gm:t=Qt.IncrementWrap;break;case Vm:t=Qt.DecrementWrap;break;default:console.error("THREE.WebGPURenderer: Invalid stencil operation.",t)}return t}_getBlendOperation(e){let t;switch(e){case Gs:t=ls.Add;break;case Ul:t=ls.Subtract;break;case Fl:t=ls.ReverseSubtract;break;case Km:t=ls.Min;break;case qm:t=ls.Max;break;default:console.error("THREE.WebGPUPipelineUtils: Blend equation not supported.",e)}return t}_getPrimitiveState(e,t,s){const n={},r=this.backend.utils;switch(n.topology=r.getPrimitiveTopology(e,s),t.index!==null&&e.isLine===!0&&e.isLineSegments!==!0&&(n.stripIndexFormat=t.index.array instanceof Uint16Array?cn.Uint16:cn.Uint32),s.side){case No:n.frontFace=go.CCW,n.cullMode=mo.Back;break;case Ct:n.frontFace=go.CCW,n.cullMode=mo.Front;break;case js:n.frontFace=go.CCW,n.cullMode=mo.None;break;default:console.error("THREE.WebGPUPipelineUtils: Unknown material.side value.",s.side);break}return n}_getColorWriteMask(e){return e.colorWrite===!0?rl.All:rl.None}_getDepthCompare(e){let t;if(e.depthTest===!1)t=Fe.Always;else{const s=e.depthFunc;switch(s){case Jl:t=Fe.Never;break;case Zl:t=Fe.Always;break;case Ql:t=Fe.Less;break;case jl:t=Fe.LessEqual;break;case Yl:t=Fe.Equal;break;case Xl:t=Fe.GreaterEqual;break;case Kl:t=Fe.Greater;break;case ql:t=Fe.NotEqual;break;default:console.error("THREE.WebGPUPipelineUtils: Invalid depth function.",s)}}return t}}class nR extends bg{constructor(e={}){super(e),this.isWebGPUBackend=!0,this.parameters.alpha=e.alpha===void 0?!0:e.alpha,this.parameters.requiredLimits=e.requiredLimits===void 0?{}:e.requiredLimits,this.trackTimestamp=e.trackTimestamp===!0,this.device=null,this.context=null,this.colorBuffer=null,this.defaultRenderPassdescriptor=null,this.utils=new jA(this),this.attributeUtils=new eR(this),this.bindingUtils=new tR(this),this.pipelineUtils=new sR(this),this.textureUtils=new OA(this),this.occludedResolveCache=new Map}async init(e){await super.init(e);const t=this.parameters;let s;if(t.device===void 0){const i={powerPreference:t.powerPreference},a=typeof navigator<"u"?await navigator.gpu.requestAdapter(i):null;if(a===null)throw new Error("WebGPUBackend: Unable to create WebGPU adapter.");const u=Object.values(ra),c=[];for(const d of u)a.features.has(d)&&c.push(d);const l={requiredFeatures:c,requiredLimits:t.requiredLimits};s=await a.requestDevice(l)}else s=t.device;s.lost.then(i=>{const a={api:"WebGPU",message:i.message||"Unknown reason",reason:i.reason||null,originalEvent:i};e.onDeviceLost(a)});const n=t.context!==void 0?t.context:e.domElement.getContext("webgpu");this.device=s,this.context=n;const r=t.alpha?"premultiplied":"opaque";this.trackTimestamp=this.trackTimestamp&&this.hasFeature(ra.TimestampQuery),this.context.configure({device:this.device,format:this.utils.getPreferredCanvasFormat(),usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,alphaMode:r}),this.updateSize()}get coordinateSystem(){return ln}async getArrayBufferAsync(e){return await this.attributeUtils.getArrayBufferAsync(e)}getContext(){return this.context}_getDefaultRenderPassDescriptor(){let e=this.defaultRenderPassdescriptor;if(e===null){const s=this.renderer;e={colorAttachments:[{view:null}]},(this.renderer.depth===!0||this.renderer.stencil===!0)&&(e.depthStencilAttachment={view:this.textureUtils.getDepthBuffer(s.depth,s.stencil).createView()});const n=e.colorAttachments[0];this.renderer.samples>0?n.view=this.colorBuffer.createView():n.resolveTarget=void 0,this.defaultRenderPassdescriptor=e}const t=e.colorAttachments[0];return this.renderer.samples>0?t.resolveTarget=this.context.getCurrentTexture().createView():t.view=this.context.getCurrentTexture().createView(),e}_getRenderPassDescriptor(e,t={}){const s=e.renderTarget,n=this.get(s);let r=n.descriptors;if(r===void 0||n.width!==s.width||n.height!==s.height||n.dimensions!==s.dimensions||n.activeMipmapLevel!==s.activeMipmapLevel||n.activeCubeFace!==e.activeCubeFace||n.samples!==s.samples||n.loadOp!==t.loadOp){r={},n.descriptors=r;const u=()=>{s.removeEventListener("dispose",u),this.delete(s)};s.addEventListener("dispose",u)}const i=e.getCacheKey();let a=r[i];if(a===void 0){const u=e.textures,c=[];let l;for(let d=0;d0&&(t.currentOcclusionQuerySet&&t.currentOcclusionQuerySet.destroy(),t.currentOcclusionQueryBuffer&&t.currentOcclusionQueryBuffer.destroy(),t.currentOcclusionQuerySet=t.occlusionQuerySet,t.currentOcclusionQueryBuffer=t.occlusionQueryBuffer,t.currentOcclusionQueryObjects=t.occlusionQueryObjects,r=s.createQuerySet({type:"occlusion",count:n,label:`occlusionQuerySet_${e.id}`}),t.occlusionQuerySet=r,t.occlusionQueryIndex=0,t.occlusionQueryObjects=new Array(n),t.lastOcclusionObject=null);let i;e.textures===null?i=this._getDefaultRenderPassDescriptor():i=this._getRenderPassDescriptor(e,{loadOp:ye.Load}),this.initTimestampQuery(e,i),i.occlusionQuerySet=r;const a=i.depthStencilAttachment;if(e.textures!==null){const l=i.colorAttachments;for(let d=0;d0&&t.currentPass.executeBundles(t.renderBundles),s>t.occlusionQueryIndex&&t.currentPass.endOcclusionQuery(),t.currentPass.end(),s>0){const n=s*8;let r=this.occludedResolveCache.get(n);r===void 0&&(r=this.device.createBuffer({size:n,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),this.occludedResolveCache.set(n,r));const i=this.device.createBuffer({size:n,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});t.encoder.resolveQuerySet(t.occlusionQuerySet,0,s,r,0),t.encoder.copyBufferToBuffer(r,0,i,0,n),t.occlusionQueryBuffer=i,this.resolveOccludedAsync(e)}if(this.prepareTimestampBuffer(e,t.encoder),this.device.queue.submit([t.encoder.finish()]),e.textures!==null){const n=e.textures;for(let r=0;ra?(c.x=Math.min(t.dispatchCount,a),c.y=Math.ceil(t.dispatchCount/a)):c.x=t.dispatchCount,r.dispatchWorkgroups(c.x,c.y,c.z)}finishCompute(e){const t=this.get(e);t.passEncoderGPU.end(),this.prepareTimestampBuffer(e,t.cmdEncoderGPU),this.device.queue.submit([t.cmdEncoderGPU.finish()])}async waitForGPU(){await this.device.queue.onSubmittedWorkDone()}draw(e,t){const{object:s,context:n,pipeline:r}=e,i=e.getBindings(),a=this.get(n),u=this.get(r).pipeline,c=a.currentSets,l=a.currentPass,d=e.getDrawParameters();if(d===null)return;c.pipeline!==u&&(l.setPipeline(u),c.pipeline=u);const h=c.bindingGroups;for(let x=0,N=i.length;x1?0:B;f===!0?l.drawIndexed(N[B],F,x[B]/p.array.BYTES_PER_ELEMENT,0,L):l.draw(N[B],F,x[B],L)}}else if(f===!0){const{vertexCount:x,instanceCount:N,firstVertex:v}=d,w=e.getIndirect();if(w!==null){const B=this.get(w).buffer;l.drawIndexedIndirect(B,0)}else l.drawIndexed(x,N,v,0,0);t.update(s,x,N)}else{const{vertexCount:x,instanceCount:N,firstVertex:v}=d,w=e.getIndirect();if(w!==null){const B=this.get(w).buffer;l.drawIndirect(B,0)}else l.draw(x,N,v,0);t.update(s,x,N)}}needsRenderUpdate(e){const t=this.get(e),{object:s,material:n}=e,r=this.utils,i=r.getSampleCountRenderContext(e.context),a=r.getCurrentColorSpace(e.context),u=r.getCurrentColorFormat(e.context),c=r.getCurrentDepthStencilFormat(e.context),l=r.getPrimitiveTopology(s,n);let d=!1;return(t.material!==n||t.materialVersion!==n.version||t.transparent!==n.transparent||t.blending!==n.blending||t.premultipliedAlpha!==n.premultipliedAlpha||t.blendSrc!==n.blendSrc||t.blendDst!==n.blendDst||t.blendEquation!==n.blendEquation||t.blendSrcAlpha!==n.blendSrcAlpha||t.blendDstAlpha!==n.blendDstAlpha||t.blendEquationAlpha!==n.blendEquationAlpha||t.colorWrite!==n.colorWrite||t.depthWrite!==n.depthWrite||t.depthTest!==n.depthTest||t.depthFunc!==n.depthFunc||t.stencilWrite!==n.stencilWrite||t.stencilFunc!==n.stencilFunc||t.stencilFail!==n.stencilFail||t.stencilZFail!==n.stencilZFail||t.stencilZPass!==n.stencilZPass||t.stencilFuncMask!==n.stencilFuncMask||t.stencilWriteMask!==n.stencilWriteMask||t.side!==n.side||t.alphaToCoverage!==n.alphaToCoverage||t.sampleCount!==i||t.colorSpace!==a||t.colorFormat!==u||t.depthStencilFormat!==c||t.primitiveTopology!==l||t.clippingContextCacheKey!==e.clippingContextCacheKey)&&(t.material=n,t.materialVersion=n.version,t.transparent=n.transparent,t.blending=n.blending,t.premultipliedAlpha=n.premultipliedAlpha,t.blendSrc=n.blendSrc,t.blendDst=n.blendDst,t.blendEquation=n.blendEquation,t.blendSrcAlpha=n.blendSrcAlpha,t.blendDstAlpha=n.blendDstAlpha,t.blendEquationAlpha=n.blendEquationAlpha,t.colorWrite=n.colorWrite,t.depthWrite=n.depthWrite,t.depthTest=n.depthTest,t.depthFunc=n.depthFunc,t.stencilWrite=n.stencilWrite,t.stencilFunc=n.stencilFunc,t.stencilFail=n.stencilFail,t.stencilZFail=n.stencilZFail,t.stencilZPass=n.stencilZPass,t.stencilFuncMask=n.stencilFuncMask,t.stencilWriteMask=n.stencilWriteMask,t.side=n.side,t.alphaToCoverage=n.alphaToCoverage,t.sampleCount=i,t.colorSpace=a,t.colorFormat=u,t.depthStencilFormat=c,t.primitiveTopology=l,t.clippingContextCacheKey=e.clippingContextCacheKey,d=!0),d}getRenderCacheKey(e){const{object:t,material:s}=e,n=this.utils,r=e.context;return[s.transparent,s.blending,s.premultipliedAlpha,s.blendSrc,s.blendDst,s.blendEquation,s.blendSrcAlpha,s.blendDstAlpha,s.blendEquationAlpha,s.colorWrite,s.depthWrite,s.depthTest,s.depthFunc,s.stencilWrite,s.stencilFunc,s.stencilFail,s.stencilZFail,s.stencilZPass,s.stencilFuncMask,s.stencilWriteMask,s.side,n.getSampleCountRenderContext(r),n.getCurrentColorSpace(r),n.getCurrentColorFormat(r),n.getCurrentDepthStencilFormat(r),n.getPrimitiveTopology(t,s),e.getGeometryCacheKey(),e.clippingContextCacheKey].join()}createSampler(e){this.textureUtils.createSampler(e)}destroySampler(e){this.textureUtils.destroySampler(e)}createDefaultTexture(e){this.textureUtils.createDefaultTexture(e)}createTexture(e,t){this.textureUtils.createTexture(e,t)}updateTexture(e,t){this.textureUtils.updateTexture(e,t)}generateMipmaps(e){this.textureUtils.generateMipmaps(e)}destroyTexture(e){this.textureUtils.destroyTexture(e)}copyTextureToBuffer(e,t,s,n,r,i){return this.textureUtils.copyTextureToBuffer(e,t,s,n,r,i)}initTimestampQuery(e,t){if(!this.trackTimestamp)return;const s=this.get(e);if(!s.timeStampQuerySet){const n=e.isComputeNode?"compute":"render",r=this.device.createQuerySet({type:"timestamp",count:2,label:`timestamp_${n}_${e.id}`});Object.assign(t,{timestampWrites:{querySet:r,beginningOfPassWriteIndex:0,endOfPassWriteIndex:1}}),s.timeStampQuerySet=r}}prepareTimestampBuffer(e,t){if(!this.trackTimestamp)return;const s=this.get(e),n=2*BigInt64Array.BYTES_PER_ELEMENT;s.currentTimestampQueryBuffers===void 0&&(s.currentTimestampQueryBuffers={resolveBuffer:this.device.createBuffer({label:"timestamp resolve buffer",size:n,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),resultBuffer:this.device.createBuffer({label:"timestamp result buffer",size:n,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})});const{resolveBuffer:r,resultBuffer:i}=s.currentTimestampQueryBuffers;t.resolveQuerySet(s.timeStampQuerySet,0,2,r,0),i.mapState==="unmapped"&&t.copyBufferToBuffer(r,0,i,0,n)}async resolveTimestampAsync(e,t="render"){if(!this.trackTimestamp)return;const s=this.get(e);if(s.currentTimestampQueryBuffers===void 0)return;const{resultBuffer:n}=s.currentTimestampQueryBuffers;n.mapState==="unmapped"&&n.mapAsync(GPUMapMode.READ).then(()=>{const r=new BigUint64Array(n.getMappedRange()),i=Number(r[1]-r[0])/1e6;this.renderer.info.updateTimestamp(t,i),n.unmap()})}createNodeBuilder(e,t){return new YA(e,t)}createProgram(e){const t=this.get(e);t.module={module:this.device.createShaderModule({code:e.code,label:e.stage+(e.name!==""?`_${e.name}`:"")}),entryPoint:"main"}}destroyProgram(e){this.delete(e)}createRenderPipeline(e,t){this.pipelineUtils.createRenderPipeline(e,t)}createComputePipeline(e,t){this.pipelineUtils.createComputePipeline(e,t)}beginBundle(e){const t=this.get(e);t._currentPass=t.currentPass,t._currentSets=t.currentSets,t.currentSets={attributes:{},bindingGroups:[],pipeline:null,index:null},t.currentPass=this.pipelineUtils.createBundleEncoder(e)}finishBundle(e,t){const s=this.get(e),r=s.currentPass.finish();this.get(t).bundleGPU=r,s.currentSets=s._currentSets,s.currentPass=s._currentPass}addBundle(e,t){this.get(e).renderBundles.push(this.get(t).bundleGPU)}createBindings(e,t,s,n){this.bindingUtils.createBindings(e,t,s,n)}updateBindings(e,t,s,n){this.bindingUtils.createBindings(e,t,s,n)}updateBinding(e){this.bindingUtils.updateBinding(e)}createIndexAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.INDEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createStorageAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.STORAGE|GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createIndirectStorageAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.STORAGE|GPUBufferUsage.INDIRECT|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}updateAttribute(e){this.attributeUtils.updateAttribute(e)}destroyAttribute(e){this.attributeUtils.destroyAttribute(e)}updateSize(){this.colorBuffer=this.textureUtils.getColorBuffer(),this.defaultRenderPassdescriptor=null}getMaxAnisotropy(){return 16}hasFeature(e){return this.device.features.has(e)}copyTextureToTexture(e,t,s=null,n=null,r=0){let i=0,a=0,u=0,c=0,l=0,d=0,h=e.image.width,p=e.image.height;s!==null&&(c=s.x,l=s.y,d=s.z||0,h=s.width,p=s.height),n!==null&&(i=n.x,a=n.y,u=n.z||0);const f=this.device.createCommandEncoder({label:"copyTextureToTexture_"+e.id+"_"+t.id}),m=this.get(e).texture,x=this.get(t).texture;f.copyTextureToTexture({texture:m,mipLevel:r,origin:{x:c,y:l,z:d}},{texture:x,mipLevel:r,origin:{x:i,y:a,z:u}},[h,p,1]),this.device.queue.submit([f.finish()])}copyFramebufferToTexture(e,t,s){const n=this.get(t);let r=null;t.renderTarget?e.isDepthTexture?r=this.get(t.depthTexture).texture:r=this.get(t.textures[0]).texture:e.isDepthTexture?r=this.textureUtils.getDepthBuffer(t.depth,t.stencil):r=this.context.getCurrentTexture();const i=this.get(e).texture;if(r.format!==i.format){console.error("WebGPUBackend: copyFramebufferToTexture: Source and destination formats do not match.",r.format,i.format);return}let a;if(n.currentPass?(n.currentPass.end(),a=n.encoder):a=this.device.createCommandEncoder({label:"copyFramebufferToTexture_"+e.id}),a.copyTextureToTexture({texture:r,origin:[s.x,s.y,0]},{texture:i},[s.z,s.w]),e.generateMipmaps&&this.textureUtils.generateMipmaps(e),n.currentPass){const{descriptor:u}=n;for(let c=0;c(console.warn("THREE.WebGPURenderer: WebGPU is not available, running under WebGL2 backend."),new nl(e)));const s=new t(e);super(s,e),this.library=new iR,this.isWebGPURenderer=!0}}class xR extends ll{constructor(){super(),this.isBundleGroup=!0,this.type="BundleGroup",this.static=!0,this.version=0}set needsUpdate(e){e===!0&&this.version++}}const Sg=new ce,Fr=new Mi(Sg);class TR{constructor(e,t=P(0,0,1,1)){this.renderer=e,this.outputNode=t,this.outputColorTransform=!0,this.needsUpdate=!0,Sg.name="PostProcessing"}render(){this._update();const e=this.renderer,t=e.toneMapping,s=e.outputColorSpace;e.toneMapping=ss,e.outputColorSpace=kt,Fr.render(e),e.toneMapping=t,e.outputColorSpace=s}_update(){if(this.needsUpdate===!0){const e=this.renderer,t=e.toneMapping,s=e.outputColorSpace;Fr.material.fragmentNode=this.outputColorTransform===!0?tu(this.outputNode,t,s):this.outputNode.context({toneMapping:t,outputColorSpace:s}),Fr.material.needsUpdate=!0,this.needsUpdate=!1}}async renderAsync(){this._update();const e=this.renderer,t=e.toneMapping,s=e.outputColorSpace;e.toneMapping=ss,e.outputColorSpace=kt,await Fr.renderAsync(e),e.toneMapping=t,e.outputColorSpace=s}}class _R extends aa{constructor(e=1,t=1){super(),this.image={width:e,height:t},this.magFilter=ft,this.minFilter=ft,this.isStorageTexture=!0}}class bR extends xf{constructor(e,t){super(e,t,Uint32Array),this.isIndirectStorageBufferAttribute=!0}}class oR extends Lg{constructor(e){super(e),this.textures={},this.nodes={}}load(e,t,s,n){const r=new Ig(this.manager);r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(e,i=>{try{t(this.parse(JSON.parse(i)))}catch(a){n?n(a):console.error(a),this.manager.itemError(e)}},s,n)}parseNodes(e){const t={};if(e!==void 0){for(const n of e){const{uuid:r,type:i}=n;t[r]=this.createNodeFromType(i),t[r].uuid=r}const s={nodes:t,textures:this.textures};for(const n of e)n.meta=s,t[n.uuid].deserialize(n),delete n.meta}return t}parse(e){const t=this.createNodeFromType(e.type);t.uuid=e.uuid;const n={nodes:this.parseNodes(e.nodes),textures:this.textures};return e.meta=n,t.deserialize(e),delete e.meta,t}setTextures(e){return this.textures=e,this}setNodes(e){return this.nodes=e,this}createNodeFromType(e){return this.nodes[e]===void 0?(console.error("THREE.NodeLoader: Node type not found:",e),g()):E(new this.nodes[e])}}class aR extends Vg{constructor(e){super(e),this.nodes={},this.nodeMaterials={}}parse(e){const t=super.parse(e),s=this.nodes,n=e.inputNodes;for(const r in n){const i=n[r];t[r]=s[i]}return t}setNodes(e){return this.nodes=e,this}setNodeMaterials(e){return this.nodeMaterials=e,this}createMaterialFromType(e){const t=this.nodeMaterials[e];return t!==void 0?new t:super.createMaterialFromType(e)}}class NR extends Gg{constructor(e){super(e),this.nodes={},this.nodeMaterials={},this._nodesJSON=null}setNodes(e){return this.nodes=e,this}setNodeMaterials(e){return this.nodeMaterials=e,this}parse(e,t){this._nodesJSON=e.nodes;const s=super.parse(e,t);return this._nodesJSON=null,s}parseNodes(e,t){if(e!==void 0){const s=new oR;return s.setNodes(this.nodes),s.setTextures(t),s.parseNodes(e)}return{}}parseMaterials(e,t){const s={};if(e!==void 0){const n=this.parseNodes(this._nodesJSON,t),r=new aR;r.setTextures(t),r.setNodes(n),r.setNodeMaterials(this.nodeMaterials);for(let i=0,a=e.length;icf{F;)SJvfA(rbqw!ev}UE- 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 '),Ie=b(''),qe=b(''),ze=b(''),Ce=b(''),Le=b(' '),Se=b(''),Te=b(''),Fe=b('

'),Me=b('
');function Ne(te,s){ge(s,!0);let k=H(s,"value",15),K=H(s,"placeholder",3,"Select…"),ne=H(s,"class",3,""),o=C(!1),A=C(void 0),h=C(void 0),i=C(-1),T="",U,x=xe(()=>s.options.find(e=>e.value===k()));function W(e){var t,n;k(e.value),(t=s.onChange)==null||t.call(s,e.value),I(),(n=a(A))==null||n.focus()}function se(){a(o)?I():E()}function E(){c(o,!0),c(i,Math.max(0,s.options.findIndex(e=>e.value===k())),!0),requestAnimationFrame(()=>{var e,t;(t=(e=a(h))==null?void 0:e.querySelectorAll('[role="option"]')[a(i)])==null||t.scrollIntoView({block:"nearest"})})}function I(){c(o,!1),c(i,-1)}function le(e){if(e.key==="ArrowDown"||e.key==="Enter"||e.key===" ")e.preventDefault(),a(o)?B(1):E();else if(e.key==="ArrowUp")e.preventDefault(),a(o)?B(-1):E();else if(e.key==="Escape")I();else if(e.key==="Home"&&a(o))e.preventDefault(),c(i,0);else if(e.key==="End"&&a(o))e.preventDefault(),c(i,s.options.length-1);else if(a(o)&&e.key==="Enter"&&a(i)>=0)e.preventDefault(),W(s.options[a(i)]);else if(e.key.length===1&&/\S/.test(e.key)){a(o)||E(),clearTimeout(U),T+=e.key.toLowerCase(),U=setTimeout(()=>T="",600);const t=s.options.findIndex(n=>n.label.toLowerCase().startsWith(T));t>=0&&c(i,t,!0)}}function B(e){const t=s.options.length;c(i,(a(i)+e+t)%t),requestAnimationFrame(()=>{var n,l;(l=(n=a(h))==null?void 0:n.querySelectorAll('[role="option"]')[a(i)])==null||l.scrollIntoView({block:"nearest"})})}ke(()=>{if(!a(o))return;function e(t){var n,l;!((n=a(A))!=null&&n.contains(t.target))&&!((l=a(h))!=null&&l.contains(t.target))&&I()}return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)});var q=Me(),G=u(q);{var re=e=>{var t=Ee(),n=u(t,!0);v(t),g(()=>L(n,s.label)),f(e,t)};p(G,e=>{s.label&&e(re)})}var m=_(G,2);let J;var N=u(m);{var oe=e=>{var t=Ie(),n=u(t);S(n,{get name(){return s.icon},size:15}),v(t),f(e,t)};p(N,e=>{s.icon&&e(oe)})}var z=_(N,2);let O;var P=u(z);{var de=e=>{var t=qe();g(()=>ee(t,`background:${a(x).color??""}`)),f(e,t)};p(P,e=>{var t;(t=a(x))!=null&&t.color&&e(de)})}var ie=_(P);v(z);var F=_(z,2);let Q;var ve=u(F);S(ve,{name:"chevron",size:14}),v(F),v(m),ae(m,e=>c(A,e),()=>a(A));var ce=_(m,2);{var ue=e=>{var t=Fe();Ae(t,23,()=>s.options,n=>n.value,(n,l,R)=>{var y=Te();let X;var Y=u(y);{var fe=r=>{var d=ze(),w=u(d);S(w,{get name(){return a(l).icon},size:15}),v(d),f(r,d)};p(Y,r=>{a(l).icon&&r(fe)})}var Z=_(Y,2);{var be=r=>{var d=Ce();g(()=>ee(d,`background:${a(l).color??""}`)),f(r,d)};p(Z,r=>{a(l).color&&r(be)})}var M=_(Z,2),_e=u(M,!0);v(M);var $=_(M,2);{var me=r=>{var d=Le(),w=u(d,!0);v(d),g(()=>L(w,a(l).badge)),f(r,d)};p($,r=>{a(l).badge!==void 0&&r(me)})}var pe=_($,2);{var ye=r=>{var d=Se(),w=u(d);S(w,{name:"sparkle",size:12}),v(d),f(r,d)};p(pe,r=>{a(l).value===k()&&r(ye)})}v(y),g(()=>{j(y,"aria-selected",a(l).value===k()),X=D(y,1,"dd-option svelte-1fd3ybn",null,X,{"dd-active":a(R)===a(i),"dd-selected":a(l).value===k()}),L(_e,a(l).label)}),De("mouseenter",y,()=>c(i,a(R),!0)),V("click",y,()=>W(a(l))),f(n,y)}),v(t),ae(t,n=>c(h,n),()=>a(h)),g(()=>j(t,"aria-label",s.label??K())),f(e,t)};p(ce,e=>{a(o)&&e(ue)})}v(q),g(()=>{D(q,1,`dd ${ne()??""}`,"svelte-1fd3ybn"),J=D(m,1,"dd-trigger svelte-1fd3ybn",null,J,{"dd-open":a(o)}),j(m,"aria-expanded",a(o)),O=D(z,1,"dd-value svelte-1fd3ybn",null,O,{"dd-placeholder":!a(x)}),L(ie,` ${(a(x)?a(x).label:K())??""}`),Q=D(F,1,"dd-chevron svelte-1fd3ybn",null,Q,{"dd-chevron-open":a(o)})}),V("click",m,se),V("keydown",m,le),f(te,q),he()}we(["click","keydown"]);export{Ne as D}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CmbJHhgy.js.br b/apps/dashboard/build/_app/immutable/chunks/CmbJHhgy.js.br new file mode 100644 index 0000000000000000000000000000000000000000..e0c34cbf9ebb97996d8f13b54acab0042f9f8ab8 GIT binary patch literal 1688 zcmV;J250#j7!m*+gKe{UoaPP5ZS9*EBT0tTuTH=HmWfyq-*?Kp%Q=;ndHyiOQTY>~Qj;Bk&@nYYZQ|9JcicoK84GNmt7UH#0> zxi09y=DCiDM>8JQs{dv3e`fj2%ln?!N`pm;7jmk3^<@r;@|mSZ*MkR}?1fq<{4)8; zJ>cr2!Jf~$K+DsI?!HT?p{hh=)D)Oa;gTz<-(}CyRoEx^)2p5@*Bg8Wp8Z|ux%trg zQ)Y7W^gO`Yx44|aFrD=%qKZl`Di#pctexlDqqzI%A2}m++y~`L*_#77tYNSSj#S)C zs#+>2NG{WZQ@Jv#KE8`3&=)NdJYT^XgI>_Io+bs_47%~6CS226=vWF`9neiPk4F*p z@9hezB>ra>C!{iDcm>H#HKu}Iyl^ibUkQ!anPu8m#Iu6xfeHT`8BsX26heFt5rPzy zdL-mhP=oT;jIpjWJ5u+*9tI(0#3`p@OtO3%PX!oKku5yG-52TUnwEDWR%7Wzyh_;z z5W^MhL;{8+`@zRb$dRO)b+;Rg=}23`muezl5vrUQv3RyuJXy6T#ha)CpCO%gxpZ?> z3f>M(crQEIyw~@0_)kwbqv(QZz zqY(X=)QMg_@T$ny0ib>0(2h(ek3MRC)C}G8`N%MJN>E*&Q`ARNfP01=*-S|Cfwq?% zu16DZ>z&-XzqzeX1LM-(=D1?38OS?AWdS1 zHE+$~!S`6Xssu^uo=86Km$?}&s&wwL1z6_-pPIqqizVxOw4N?nF+ z?d;_(+Z|nq-b_rjn4&T zJ#4Q%FPog+mp?r#mAp~P3aSz(DOljqH>Nyi2qOE_Xcp|5LyKgDv17S-nH@Rn@pv~X z&uh+P40D=67NN=4^I{on9?uj!Oc&wsf@`~H-Fup?m=hRmh0a=R-eBXbYAf&9mdT@Z z5Us;}q2i`Z6xtyyyCp~dv9X>ON2Cd0X-Z4^2yzKO3O(J1(}$gTA93IdN>(Q6lDB&N zC{NZO4LhY;N5DNekLaw%9{(JjK`rAMubyy3us4}$im=0vO6&h9c0b6FgH|h3u3&>N zH1NU8RDCCTD%0cZZqE^PtJ26dS80Sgl-w#<<)G|f37-%So|Iw|Tx8m(Ml7j#k` zk*$|gR3~?M_U5gW{)Z#Y*#$C*`3frc?L#j`m6@r+uE3u6G+bJj!=@A0_#};UZqGA! iV9C7S8-gm4v5Lw3RlGpbz|eB5{GJbC+p}5R9De{-|4gX> literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CmbJHhgy.js.gz b/apps/dashboard/build/_app/immutable/chunks/CmbJHhgy.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2dc5371103961d68802de2ef1e100e830c04b11 GIT binary patch literal 1935 zcmV;A2XOcwiwFP!000026P;M=R@+Dt{=ZKlbXceQq-^Y5CNnqm&%|6&Z$)4_(g^0bGIr9VB?yjn@>Z^-dj*?Vm+HY;WxDk_Q(W~Ru zMecVayE{)kk$WRTW!4Gd$gBdj-9}-SAr8zkCd|#ckC9mdyfDiE$t(qq&CLtKU8{Etnoq-5P^fPKs*Qy0$3MN1I@ysa>3ayp&^eiRryDz?%shGI0QXMI$=GnhBT>LzB zUa9(g%UL$KhYmN4rZrOu$-*0%ugz4*Rg0xZag^(Uy7oOS29XTun)}U;Au)`m#`Z~N z+c~{9IFUu7ITm@U(jvXHxl@JcJ}o0y?vxu@nxScc>0gY80Qs(1h^iL_KK>zpO|M3}0ax#`Bd+IY(d>=MC z4EOjxOjQ(mZHD98=ZNn^v%~O=`#zrIHNPeR#&`0T%VyphMluBAJJho7aLy;dSS^Il zKx}TBRio@qpp;_>n&&Mg_s2qxh;c59IKI8rtw6*vv1LhXF)*BJ{YGh-+x${Wy+H4Xg>qYG!mwx7W(G$aMZW(qlMdtgCl;yU{Q-Y10RbyQ+F& zifR?Yh1WG2VB&vB4>kLz{?iVU7OXwgM%!h-41BrA0O(%~+$c0T8=DmV)tm!6RS`2kC_>C=!yoCBpE) z6xDH*Ym$_KAH-2G@saE(GX7Sw86|2;KM`Lrdsn*TC#G6n@&Ybd*9Mdkr;>cl56r3L z1=uuqr=S^*EH%d!R93~dCOdq7MMpjwB32SU})XDbLDO6iV-uOsLGQY-iNnK zPu^Ki-tz)(N>9SNCzk}Q>tZGXjo$|%n2a)2$Z&geF5sHA0u`%lch~n9-|unp9xF5E zF<@k?#A~Nz{0b|-BI12`Z+O0O`8ni$xLG>-!EQ~77jS4;nG((oCEI>5rfH_6Uvlxp za&c(>B@6{YVjKxz56RVutyOC+Fo=mkuznWx$PZ2AdnV>bkMZ6E9_^g4k3$5BF@9Y3 z>x`cnE#vMN3-FZ}Fe|MOiD#u;$Zt%BuXq8WiREfth6TiIO_D>yafYGg_$wNdm1Lul z!LZ`<8}Gx{D!4%%e*a!t!qbZ_!L zoKy}ab%%~CK1!AFuGOy4qS=f3Jy$mGT(O56oV(d*d`c>xQj_J)3U^k=J^e8cuB7r* zWRsYdCG}{P`IPR!Yd0fik!$k$Z=+?-8`#| zWs?qupQ`!kPCtXOVUrH?C| zVY*I*3|-z7WB88u;HETd8D4Mnoikd03EAE-lhCFjBK+=c&cST#+F5Gp*fwmGorfQI z4-QM9a?q`Z`rx2SnR{_8>IqCRC;NRuv(VgjF~OJ&`I_*O;h2Cet_Xf#DpZ2z)^=@w VgLvzHVp(+m@jsU>YQh;3002Vb!Vmxe literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js b/apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js new file mode 100644 index 0000000..cbdf8cb --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js @@ -0,0 +1 @@ +import{v as k,w as f,O as m,P as t,Q as _,G as b,C as i}from"./wpu9U-D0.js";function E(e,a,v=a){var c=new WeakSet;k(e,"input",async r=>{var l=r?e.defaultValue:e.value;if(l=o(e)?u(l):l,v(l),f!==null&&c.add(f),await m(),l!==(l=a())){var h=e.selectionStart,d=e.selectionEnd,n=e.value.length;if(e.value=l??"",d!==null){var s=e.value.length;h===d&&d===n&&s>n?(e.selectionStart=s,e.selectionEnd=s):(e.selectionStart=h,e.selectionEnd=Math.min(d,s))}}}),(b&&e.defaultValue!==e.value||t(a)==null&&e.value)&&(v(o(e)?u(e.value):e.value),f!==null&&c.add(f)),_(()=>{var r=a();if(e===document.activeElement){var l=i??f;if(c.has(l))return}o(e)&&r===u(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function S(e,a,v=a){k(e,"change",c=>{var r=c?e.defaultChecked:e.checked;v(r)}),(b&&e.defaultChecked!==e.checked||t(a)==null)&&v(e.checked),_(()=>{var c=a();e.checked=!!c})}function o(e){var a=e.type;return a==="number"||a==="range"}function u(e){return e===""?null:+e}export{S as a,E as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js.br b/apps/dashboard/build/_app/immutable/chunks/CnZzd20v.js.br new file mode 100644 index 0000000000000000000000000000000000000000..9ca395fc29c9e35edfef800b3b0403f9c8417ba2 GIT binary patch literal 462 zcmV;<0Wtm?<^v$aH~s0JWr{uMq^kley}0GEJm>5WA&2Y${&Da053q;y?*o3bF;;ui z-WFh&MO{FhFYpkvx%PCr(RySUcpm)9#bG#lJv4o8F7#NT)=yaK7wq&K#`*z4U!2+9 z%2(U&95?&kf9ti|o@YC-HTlMsdOg6yTQ9Jxj+--&|5m%ff-AMoxmMG1B4MQ36_H%k z_KPJ?qF=S0{^ej+bHth}aeI!^k9y!JS{q=skCCWo`?BO()MxfrOBRg=;0Vtmo>Zo& z+K96ZIn%PY>upu)3P#2EbW*dL+Z3X6)@mu-V^8KG|2PFu5|sc}M0vDwY?uOBuOLfb zk#xGeYwwfgY{jK!k^A|8CogL)Fb?|MB@mbv06;wpx_w)SvtCC#l_9Rfs^3ME3(4Nl5~XVz&Dri!V6I@ zU`*jIvgY9OJOB{Vvf`28A~j)ew+=Q59N6L5o*#i#j&=WS)Oe`w)hVR0--OqS)l_#Vs?d=6#{kHIuk z<@RkR-yaYC#~<%LeUQJqEU$X2eY3a8niD7(P>I(;xkRI-WAcmCZbLrbae}O|hu&wP zx)-YxhYwL_&=n+0s#I_MPi1;qksN}}n~EFUa}q_*jaV5NxDimLh_*L|F)dYD@=Aa@ zs>UZR7hqCEZcuR{PHEIgvLiz=$BkFcLwW65+Y&6!5v3vf?CTJC_Mj<>EQ4~6d3v+E z*Vl+xGFBp@WvqL!1;3Aq9o$C6POSb_)%U6|%Ga`OEH9xGVwxrae9PD^u@ui4jicvE zoB_>F!5AO-4D#$dQ~n=N0Z*KZxj`<_j7UP2d)>EWy;Rya1Fa2(otQh>6h#%3TGp!L zMhHi~cXkS)8FPqui9e1c{mUUdnw82^##rhYOP502r7Fgjez?#NF^OrJyUk_p;*{xH z*=Nc?FZt`sfIZfvcT}!O>eDJ8xD)qKXH`sK)?I@Yj17D_xq+o4tmO>TRA1*BKt!Fw zQ}y|YP@)0`+qYYC**M0Xi)CEy_Tla{throw TypeError(e)};var _n=(e,t,n)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var de=(e,t,n)=>_n(e,typeof t!="symbol"?t+"":t,n),Ke=(e,t,n)=>t.has(e)||wt("Cannot "+n);var p=(e,t,n)=>(Ke(e,t,"read from private field"),n?n.call(e):t.get(e)),F=(e,t,n)=>t.has(e)?wt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),z=(e,t,n,r)=>(Ke(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),K=(e,t,n)=>(Ke(e,t,"access private method"),n);var vn=Array.isArray,dn=Array.prototype.indexOf,me=Array.prototype.includes,lr=Array.from,or=Object.defineProperty,Re=Object.getOwnPropertyDescriptor,pn=Object.getOwnPropertyDescriptors,hn=Object.prototype,wn=Array.prototype,kt=Object.getPrototypeOf,yt=Object.isExtensible;const yn=()=>{};function ur(e){return e()}function En(e){for(var t=0;t{e=r,t=s});return{promise:n,resolve:e,reject:t}}function cr(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const A=2,De=4,Ie=8,Dt=1<<24,G=16,H=32,ve=64,mn=128,P=512,g=1024,R=2048,Y=4096,j=8192,Z=16384,oe=32768,je=65536,Et=1<<17,It=1<<18,Pe=1<<19,Pt=1<<20,_r=1<<25,ue=65536,Xe=1<<21,st=1<<22,W=1<<23,ae=Symbol("$state"),vr=Symbol("legacy props"),dr=Symbol(""),ne=new class extends Error{constructor(){super(...arguments);de(this,"name","StaleReactionError");de(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Nt;const hr=!!((Nt=globalThis.document)!=null&&Nt.contentType)&&globalThis.document.contentType.includes("xml"),Ue=3,Ct=8;function gn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function wr(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Tn(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function bn(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function An(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Sn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function yr(){throw new Error("https://svelte.dev/e/hydration_failed")}function Er(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Rn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function On(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Nn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function mr(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const gr=1,Tr=2,br=4,Ar=8,Sr=16,Rr=1,Or=2,Nr=4,kr=8,xr=16,Dr=1,Ir=2,kn="[",xn="[!",Pr="[?",Dn="]",ft={},T=Symbol(),In="http://www.w3.org/1999/xhtml";function it(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Cr(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Fr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let Q=!1;function Mr(e){Q=e}let m;function ge(e){if(e===null)throw it(),ft;return m=e}function Lr(){return ge(te(m))}function jr(e){if(Q){if(te(m)!==null)throw it(),ft;m=e}}function Yr(e=1){if(Q){for(var t=e,n=m;t--;)n=te(n);m=n}}function Hr(e=!0){for(var t=0,n=m;;){if(n.nodeType===Ct){var r=n.data;if(r===Dn){if(t===0)return n;t-=1}else(r===kn||r===xn||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=te(n);e&&n.remove(),n=s}}function qr(e){if(!e||e.nodeType!==Ct)throw it(),ft;return e.data}function Ft(e){return e===this.v}function Pn(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Mt(e){return!Pn(e,this.v)}let Be=!1;function Vr(){Be=!0}let S=null;function Ye(e){S=e}function Ur(e,t=!1,n){S={p:S,i:!1,c:null,e:null,s:e,x:null,l:Be&&!t?{s:null,u:null,$:[]}:null}}function Br(e){var t=S,n=t.e;if(n!==null){t.e=null;for(var r of n)Jt(r)}return t.i=!0,S=t.p,{}}function Ce(){return!Be||S!==null&&S.l===null}let re=[];function Lt(){var e=re;re=[],En(e)}function mt(e){if(re.length===0&&!Oe){var t=re;queueMicrotask(()=>{t===re&&Lt()})}re.push(e)}function Cn(){for(;re.length>0;)Lt()}function Fn(e){var t=w;if(t===null)return _.f|=W,e;if((t.f&oe)===0&&(t.f&De)===0)throw e;He(e,t)}function He(e,t){for(;t!==null;){if((t.f&mn)!==0){if((t.f&oe)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Mn=-7169;function E(e,t){e.f=e.f&Mn|t}function at(e){(e.f&P)!==0||e.deps===null?E(e,g):E(e,Y)}function jt(e){if(e!==null)for(const t of e)(t.f&A)===0||(t.f&ue)===0||(t.f^=ue,jt(t.deps))}function Ln(e,t,n){(e.f&R)!==0?t.add(e):(e.f&Y)!==0&&n.add(e),jt(e.deps),E(e,g)}const Me=new Set;let d=null,gt=null,b=null,N=[],Ge=null,Ze=!1,Oe=!1;var he,we,fe,ye,ke,xe,ie,U,Ee,D,We,Je,Qe,Yt;const dt=class dt{constructor(){F(this,D);de(this,"current",new Map);de(this,"previous",new Map);F(this,he,new Set);F(this,we,new Set);F(this,fe,0);F(this,ye,0);F(this,ke,null);F(this,xe,new Set);F(this,ie,new Set);F(this,U,new Map);de(this,"is_fork",!1);F(this,Ee,!1)}skip_effect(t){p(this,U).has(t)||p(this,U).set(t,{d:[],m:[]})}unskip_effect(t){var n=p(this,U).get(t);if(n){p(this,U).delete(t);for(var r of n.d)E(r,R),B(r);for(r of n.m)E(r,Y),B(r)}}process(t){var s;N=[],this.apply();var n=[],r=[];for(const f of t)K(this,D,Je).call(this,f,n,r);if(K(this,D,We).call(this)){K(this,D,Qe).call(this,r),K(this,D,Qe).call(this,n);for(const[f,a]of p(this,U))Ut(f,a)}else{for(const f of p(this,he))f();p(this,he).clear(),p(this,fe)===0&&K(this,D,Yt).call(this),gt=this,d=null,Tt(r),Tt(n),gt=null,(s=p(this,ke))==null||s.resolve()}b=null}capture(t,n){n!==T&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&W)===0&&(this.current.set(t,t.v),b==null||b.set(t,t.v))}activate(){d=this,this.apply()}deactivate(){d===this&&(d=null,b=null)}flush(){if(this.activate(),N.length>0){if(Ht(),d!==null&&d!==this)return}else p(this,fe)===0&&this.process([]);this.deactivate()}discard(){for(const t of p(this,we))t(this);p(this,we).clear()}increment(t){z(this,fe,p(this,fe)+1),t&&z(this,ye,p(this,ye)+1)}decrement(t){z(this,fe,p(this,fe)-1),t&&z(this,ye,p(this,ye)-1),!p(this,Ee)&&(z(this,Ee,!0),mt(()=>{z(this,Ee,!1),K(this,D,We).call(this)?N.length>0&&this.flush():this.revive()}))}revive(){for(const t of p(this,xe))p(this,ie).delete(t),E(t,R),B(t);for(const t of p(this,ie))E(t,Y),B(t);this.flush()}oncommit(t){p(this,he).add(t)}ondiscard(t){p(this,we).add(t)}settled(){return(p(this,ke)??z(this,ke,xt())).promise}static ensure(){if(d===null){const t=d=new dt;Me.add(d),Oe||mt(()=>{d===t&&t.flush()})}return d}apply(){}};he=new WeakMap,we=new WeakMap,fe=new WeakMap,ye=new WeakMap,ke=new WeakMap,xe=new WeakMap,ie=new WeakMap,U=new WeakMap,Ee=new WeakMap,D=new WeakSet,We=function(){return this.is_fork||p(this,ye)>0},Je=function(t,n,r){t.f^=g;for(var s=t.first;s!==null;){var f=s.f,a=(f&(H|ve))!==0,l=a&&(f&g)!==0,i=l||(f&j)!==0||p(this,U).has(s);if(!i&&s.fn!==null){a?s.f^=g:(f&De)!==0?n.push(s):Fe(s)&&((f&G)!==0&&p(this,ie).add(s),Ae(s));var o=s.first;if(o!==null){s=o;continue}}for(;s!==null;){var c=s.next;if(c!==null){s=c;break}s=s.parent}}},Qe=function(t){for(var n=0;n1){this.previous.clear();var t=b,n=!0;for(const f of Me){if(f===this){n=!1;continue}const a=[];for(const[i,o]of this.current){if(f.current.has(i))if(n&&o!==f.current.get(i))f.current.set(i,o);else continue;a.push(i)}if(a.length===0)continue;const l=[...f.current.keys()].filter(i=>!this.current.has(i));if(l.length>0){var r=N;N=[];const i=new Set,o=new Map;for(const c of a)qt(c,l,i,o);if(N.length>0){d=f,f.apply();for(const c of N)K(s=f,D,Je).call(s,c,[],[]);f.deactivate()}N=r}}d=null,b=t}Me.delete(this)};let Te=dt;function jn(e){var t=Oe;Oe=!0;try{for(var n;;){if(Cn(),N.length===0&&(d==null||d.flush(),N.length===0))return Ge=null,n;Ht()}}finally{Oe=t}}function Ht(){Ze=!0;var e=null;try{for(var t=0;N.length>0;){var n=Te.ensure();if(t++>1e3){var r,s;Yn()}n.process(N),J.clear()}}finally{N=[],Ze=!1,Ge=null}}function Yn(){try{Sn()}catch(e){He(e,Ge)}}let M=null;function Tt(e){var t=e.length;if(t!==0){for(var n=0;n0)){J.clear();for(const s of M){if((s.f&(Z|j))!==0)continue;const f=[s];let a=s.parent;for(;a!==null;)M.has(a)&&(M.delete(a),f.push(a)),a=a.parent;for(let l=f.length-1;l>=0;l--){const i=f[l];(i.f&(Z|j))===0&&Ae(i)}}M.clear()}}M=null}}function qt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;(f&A)!==0?qt(s,t,n,r):(f&(st|G))!==0&&(f&R)===0&&Vt(s,t,r)&&(E(s,R),B(s))}}function Vt(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(me.call(t,s))return!0;if((s.f&A)!==0&&Vt(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function B(e){var t=Ge=e,n=t.b;if(n!=null&&n.is_pending&&(e.f&(De|Ie|Dt))!==0&&(e.f&oe)===0){n.defer_effect(e);return}for(;t.parent!==null;){t=t.parent;var r=t.f;if(Ze&&t===w&&(r&G)!==0&&(r&It)===0&&(r&oe)!==0)return;if((r&(ve|H))!==0){if((r&g)===0)return;t.f^=g}}N.push(t)}function Ut(e,t){if(!((e.f&H)!==0&&(e.f&g)!==0)){(e.f&R)!==0?t.d.push(e):(e.f&Y)!==0&&t.m.push(e),E(e,g);for(var n=e.first;n!==null;)Ut(n,t),n=n.next}}function Hn(e,t,n,r){const s=Ce()?lt:Bn;var f=e.filter(u=>!u.settled);if(n.length===0&&f.length===0){r(t.map(s));return}var a=w,l=qn(),i=f.length===1?f[0].promise:f.length>1?Promise.all(f.map(u=>u.promise)):null;function o(u){l();try{r(u)}catch(v){(a.f&Z)===0&&He(v,a)}et()}if(n.length===0){i.then(()=>o(t.map(s)));return}function c(){l(),Promise.all(n.map(u=>Un(u))).then(u=>o([...t.map(s),...u])).catch(u=>He(u,a))}i?i.then(c):c()}function qn(){var e=w,t=_,n=S,r=d;return function(f=!0){be(e),ee(t),Ye(n),f&&(r==null||r.activate())}}function et(e=!0){be(null),ee(null),Ye(null),e&&(d==null||d.deactivate())}function Vn(){var e=w.b,t=d,n=e.is_rendered();return e.update_pending_count(1),t.increment(n),()=>{e.update_pending_count(-1),t.decrement(n)}}function lt(e){var t=A|R,n=_!==null&&(_.f&A)!==0?_:null;return w!==null&&(w.f|=Pe),{ctx:S,deps:null,effects:null,equals:Ft,f:t,fn:e,reactions:null,rv:0,v:T,wv:0,parent:n??w,ac:null}}function Un(e,t,n){w===null&&gn();var s=void 0,f=ut(T),a=!_,l=new Map;return tr(()=>{var v;var i=xt();s=i.promise;try{Promise.resolve(e()).then(i.resolve,i.reject).finally(et)}catch(y){i.reject(y),et()}var o=d;if(a){var c=Vn();(v=l.get(o))==null||v.reject(ne),l.delete(o),l.set(o,i)}const u=(y,h=void 0)=>{if(o.activate(),h)h!==ne&&(f.f|=W,nt(f,h));else{(f.f&W)!==0&&(f.f^=W),nt(f,y);for(const[V,O]of l){if(l.delete(V),V===o)break;O.reject(ne)}}c&&c()};i.promise.then(u,y=>u(null,y||"unknown"))}),er(()=>{for(const i of l.values())i.reject(ne)}),new Promise(i=>{function o(c){function u(){c===s?i(f):o(s)}c.then(u,u)}o(s)})}function Gr(e){const t=lt(e);return rn(t),t}function Bn(e){const t=lt(e);return t.equals=Mt,t}function Gn(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!zt&&$n()}return t}function $n(){zt=!1;for(const e of tt)(e.f&g)!==0&&E(e,Y),Fe(e)&&Ae(e);tt.clear()}function Kr(e,t=1){var n=pe(e),r=t===1?n++:n--;return X(e,n),r}function $e(e){X(e,e.v+1)}function Kt(e,t){var n=e.reactions;if(n!==null)for(var r=Ce(),s=n.length,f=0;f{if(le===f)return l();var i=_,o=le;ee(null),Ot(f);var c=l();return ee(i),Ot(o),c};return r&&n.set("length",$(e.length)),new Proxy(e,{defineProperty(l,i,o){(!("value"in o)||o.configurable===!1||o.enumerable===!1||o.writable===!1)&&Rn();var c=n.get(i);return c===void 0?a(()=>{var u=$(o.value);return n.set(i,u),u}):X(c,o.value,!0),!0},deleteProperty(l,i){var o=n.get(i);if(o===void 0){if(i in l){const c=a(()=>$(T));n.set(i,c),$e(s)}}else X(o,T),$e(s);return!0},get(l,i,o){var y;if(i===ae)return e;var c=n.get(i),u=i in l;if(c===void 0&&(!u||(y=Re(l,i))!=null&&y.writable)&&(c=a(()=>{var h=Se(u?l[i]:T),V=$(h);return V}),n.set(i,c)),c!==void 0){var v=pe(c);return v===T?void 0:v}return Reflect.get(l,i,o)},getOwnPropertyDescriptor(l,i){var o=Reflect.getOwnPropertyDescriptor(l,i);if(o&&"value"in o){var c=n.get(i);c&&(o.value=pe(c))}else if(o===void 0){var u=n.get(i),v=u==null?void 0:u.v;if(u!==void 0&&v!==T)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return o},has(l,i){var v;if(i===ae)return!0;var o=n.get(i),c=o!==void 0&&o.v!==T||Reflect.has(l,i);if(o!==void 0||w!==null&&(!c||(v=Re(l,i))!=null&&v.writable)){o===void 0&&(o=a(()=>{var y=c?Se(l[i]):T,h=$(y);return h}),n.set(i,o));var u=pe(o);if(u===T)return!1}return c},set(l,i,o,c){var ht;var u=n.get(i),v=i in l;if(r&&i==="length")for(var y=o;y$(T)),n.set(y+"",h))}if(u===void 0)(!v||(ht=Re(l,i))!=null&&ht.writable)&&(u=a(()=>$(void 0)),X(u,Se(o)),n.set(i,u));else{v=u.v!==T;var V=a(()=>Se(o));X(u,V)}var O=Reflect.getOwnPropertyDescriptor(l,i);if(O!=null&&O.set&&O.set.call(c,o),!v){if(r&&typeof i=="string"){var pt=n.get("length"),ze=Number(i);Number.isInteger(ze)&&ze>=pt.v&&X(pt,ze+1)}$e(s)}return!0},ownKeys(l){pe(s);var i=Reflect.ownKeys(l).filter(u=>{var v=n.get(u);return v===void 0||v.v!==T});for(var[o,c]of n)c.v!==T&&!(o in l)&&i.push(o);return i},setPrototypeOf(){On()}})}function bt(e){try{if(e!==null&&typeof e=="object"&&ae in e)return e[ae]}catch{}return e}function $r(e,t){return Object.is(bt(e),bt(t))}var At,Xn,Zn,$t,Xt;function Xr(){if(At===void 0){At=window,Xn=document,Zn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;$t=Re(t,"firstChild").get,Xt=Re(t,"nextSibling").get,yt(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),yt(n)&&(n.__t=void 0)}}function qe(e=""){return document.createTextNode(e)}function Ve(e){return $t.call(e)}function te(e){return Xt.call(e)}function Zr(e,t){if(!Q)return Ve(e);var n=Ve(m);if(n===null)n=m.appendChild(qe());else if(t&&n.nodeType!==Ue){var r=qe();return n==null||n.before(r),ge(r),r}return t&&ct(n),ge(n),n}function Wr(e,t=!1){if(!Q){var n=Ve(e);return n instanceof Comment&&n.data===""?te(n):n}if(t){if((m==null?void 0:m.nodeType)!==Ue){var r=qe();return m==null||m.before(r),ge(r),r}ct(m)}return m}function Jr(e,t=1,n=!1){let r=Q?m:e;for(var s;t--;)s=r,r=te(r);if(!Q)return r;if(n){if((r==null?void 0:r.nodeType)!==Ue){var f=qe();return r===null?s==null||s.after(f):r.before(f),ge(f),f}ct(r)}return ge(r),r}function Wn(e){e.textContent=""}function Qr(){return!1}function es(e,t,n){return document.createElementNS(In,e,void 0)}function ct(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Ue;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function ts(e){Q&&Ve(e)!==null&&Wn(e)}let St=!1;function Jn(){St||(St=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const n of e.target.elements)(t=n.__on_r)==null||t.call(n)})},{capture:!0}))}function _t(e){var t=_,n=w;ee(null),be(null);try{return e()}finally{ee(t),be(n)}}function ns(e,t,n,r=n){e.addEventListener(t,()=>_t(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Jn()}function Zt(e){w===null&&(_===null&&An(),bn()),_e&&Tn()}function Qn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function q(e,t,n){var r=w;r!==null&&(r.f&j)!==0&&(e|=j);var s={ctx:S,deps:null,nodes:null,f:e|R|P,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{Ae(s)}catch(l){throw ce(s),l}else t!==null&&B(s);var f=s;if(n&&f.deps===null&&f.teardown===null&&f.nodes===null&&f.first===f.last&&(f.f&Pe)===0&&(f=f.first,(e&G)!==0&&(e&je)!==0&&f!==null&&(f.f|=je)),f!==null&&(f.parent=r,r!==null&&Qn(f,r),_!==null&&(_.f&A)!==0&&(e&ve)===0)){var a=_;(a.effects??(a.effects=[])).push(f)}return s}function Wt(){return _!==null&&!L}function er(e){const t=q(Ie,null,!1);return E(t,g),t.teardown=e,t}function rs(e){Zt();var t=w.f,n=!_&&(t&H)!==0&&(t&oe)===0;if(n){var r=S;(r.e??(r.e=[])).push(e)}else return Jt(e)}function Jt(e){return q(De|Pt,e,!1)}function ss(e){return Zt(),q(Ie|Pt,e,!0)}function fs(e){Te.ensure();const t=q(ve|Pe,e,!0);return(n={})=>new Promise(r=>{n.outro?sr(t,()=>{ce(t),r(void 0)}):(ce(t),r(void 0))})}function is(e){return q(De,e,!1)}function tr(e){return q(st|Pe,e,!0)}function as(e,t=0){return q(Ie|t,e,!0)}function ls(e,t=[],n=[],r=[]){Hn(r,t,n,s=>{q(Ie,()=>e(...s.map(pe)),!0)})}function os(e,t=0){var n=q(G|t,e,!0);return n}function us(e){return q(H|Pe,e,!0)}function Qt(e){var t=e.teardown;if(t!==null){const n=_e,r=_;Rt(!0),ee(null);try{t.call(null)}finally{Rt(n),ee(r)}}}function vt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&_t(()=>{s.abort(ne)});var r=n.next;(n.f&ve)!==0?n.parent=null:ce(n,t),n=r}}function nr(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&H)===0&&ce(t),t=n}}function ce(e,t=!0){var n=!1;(t||(e.f&It)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(rr(e.nodes.start,e.nodes.end),n=!0),vt(e,t&&!n),Ne(e,0),E(e,Z);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();Qt(e);var s=e.parent;s!==null&&s.first!==null&&en(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function rr(e,t){for(;e!==null;){var n=e===t?null:te(e);e.remove(),e=n}}function en(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function sr(e,t,n=!0){var r=[];tn(e,r,!0);var s=()=>{n&&ce(e),t&&t()},f=r.length;if(f>0){var a=()=>--f||s();for(var l of r)l.out(a)}else s()}function tn(e,t,n){if((e.f&j)===0){e.f^=j;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var f=s.next,a=(s.f&je)!==0||(s.f&H)!==0&&(e.f&G)!==0;tn(s,t,a?n:!1),s=f}}}function cs(e){nn(e,!0)}function nn(e,t){if((e.f&j)!==0){e.f^=j,(e.f&g)===0&&(E(e,R),B(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&je)!==0||(n.f&H)!==0;nn(n,s?t:!1),n=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const a of f)(a.is_global||t)&&a.in()}}function _s(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:te(n);t.append(n),n=s}}let Le=!1,_e=!1;function Rt(e){_e=e}let _=null,L=!1;function ee(e){_=e}let w=null;function be(e){w=e}let C=null;function rn(e){_!==null&&(C===null?C=[e]:C.push(e))}let k=null,x=0,I=null;function fr(e){I=e}let sn=1,se=0,le=se;function Ot(e){le=e}function fn(){return++sn}function Fe(e){var t=e.f;if((t&R)!==0)return!0;if(t&A&&(e.f&=~ue),(t&Y)!==0){for(var n=e.deps,r=n.length,s=0;se.wv)return!0}(t&P)!==0&&b===null&&E(e,g)}return!1}function an(e,t,n=!0){var r=e.reactions;if(r!==null&&!(C!==null&&me.call(C,e)))for(var s=0;s{e.ac.abort(ne)}),e.ac=null);try{e.f|=Xe;var c=e.fn,u=c();e.f|=oe;var v=e.deps,y=d==null?void 0:d.is_fork;if(k!==null){var h;if(y||Ne(e,x),v!==null&&x>0)for(v.length=x+k.length,h=0;h=nQAdo}5T;_&jsnB`^X{(!)V04n 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 diff --git a/apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.gz b/apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.gz deleted file mode 100644 index c34ad846af85ca0387dea173a94668915013a832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9697 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
PeDzsih#rfw;`4 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 diff --git a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js b/apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js similarity index 97% rename from apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js rename to apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js index 99ccabc..7367f60 100644 --- a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js +++ b/apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js @@ -1 +1 @@ -import{w as N,g as T}from"./BeMFXnHE.js";import{e as E}from"./MAY1QfFZ.js";import{E as p}from"./CcUbQ_Wl.js";const y=4,R=5500,F=1500;function x(){const{subscribe:b,update:u}=N([]);let m=1,f=0;const c=new Map,a=new Map,l=new Map;function w(e,s){l.set(e,Date.now());const t=setTimeout(()=>{c.delete(e),l.delete(e),h(e)},s);c.set(e,t)}function g(e){const s=m++,t=Date.now(),o={id:s,createdAt:t,...e};u(n=>{const r=[o,...n];if(r.length>y){for(const i of r.slice(y)){const d=c.get(i.id);d&&clearTimeout(d),c.delete(i.id),a.delete(i.id),l.delete(i.id)}return r.slice(0,y)}return r}),w(s,e.dwellMs)}function h(e){const s=c.get(e);s&&(clearTimeout(s),c.delete(e)),a.delete(e),l.delete(e),u(t=>t.filter(o=>o.id!==e))}function D(e,s){const t=c.get(e);if(!t)return;clearTimeout(t),c.delete(e);const o=l.get(e)??Date.now(),n=Date.now()-o,r=Math.max(200,s-n);a.set(e,{remaining:r})}function C(e){const s=a.get(e);s&&(a.delete(e),w(e,s.remaining))}function S(){for(const e of c.values())clearTimeout(e);c.clear(),a.clear(),l.clear(),u(()=>[])}function _(e){const s=p[e.type]??"#818CF8",t=e.data;switch(e.type){case"DreamCompleted":{const o=Number(t.memories_replayed??0),n=Number(t.connections_found??0),r=Number(t.insights_generated??0),i=Number(t.duration_ms??0),d=[];return d.push(`Replayed ${o} ${o===1?"memory":"memories"}`),n>0&&d.push(`${n} new connection${n===1?"":"s"}`),r>0&&d.push(`${r} insight${r===1?"":"s"}`),{type:e.type,title:"Dream consolidated",body:`${d.join(" · ")} in ${(i/1e3).toFixed(1)}s`,color:s,dwellMs:7e3}}case"ConsolidationCompleted":{const o=Number(t.nodes_processed??0),n=Number(t.decay_applied??0),r=Number(t.embeddings_generated??0),i=Number(t.duration_ms??0),d=[];return n>0&&d.push(`${n} decayed`),r>0&&d.push(`${r} embedded`),{type:e.type,title:"Consolidation swept",body:`${o} node${o===1?"":"s"}${d.length?" · "+d.join(" · "):""} in ${(i/1e3).toFixed(1)}s`,color:s,dwellMs:6e3}}case"ConnectionDiscovered":{const o=Date.now();if(o-f0?`suppression #${o} · Rac1 cascade ~${n} neighbors`:`suppression #${o}`,color:s,dwellMs:5500}}case"MemoryUnsuppressed":{const o=Number(t.remaining_count??0);return{type:e.type,title:"Recovered",body:o>0?`${o} suppression${o===1?"":"s"} remain`:"fully unsuppressed",color:s,dwellMs:5e3}}case"Rac1CascadeSwept":{const o=Number(t.seeds??0),n=Number(t.neighbors_affected??0);return{type:e.type,title:"Rac1 cascade",body:`${o} seed${o===1?"":"s"} · ${n} dendritic spine${n===1?"":"s"} pruned`,color:s,dwellMs:6e3}}case"MemoryDeleted":return{type:e.type,title:"Memory deleted",body:String(t.id??"").slice(0,8),color:s,dwellMs:4e3};case"HookVerdictRecorded":{const o=String(t.verdict??"NOTE"),n=String(t.reason??"Sanhedrin receipt updated");return{type:e.type,title:`Sanhedrin ${o}`,body:n,color:s,dwellMs:o==="VETO"?8e3:R}}case"Heartbeat":case"SearchPerformed":case"RetentionDecayed":case"ActivationSpread":case"ImportanceScored":case"MemoryCreated":case"MemoryUpdated":case"DreamStarted":case"DreamProgress":case"ConsolidationStarted":case"Connected":return null;default:return null}}let M=null;return E.subscribe(e=>{if(e.length===0)return;const s=[];for(const t of e){if(t===M)break;s.push(t)}if(s.length!==0){M=e[0];for(let t=s.length-1;t>=0;t--){const o=_(s[t]);o&&g(o)}}}),{subscribe:b,dismiss:h,clear:S,pauseDwell:D,resumeDwell:C,push:g}}const $=x();function I(){[{type:"DreamCompleted",title:"Dream consolidated",body:"Replayed 127 memories · 43 new connections · 5 insights in 2.4s",color:p.DreamCompleted,dwellMs:7e3},{type:"ConnectionDiscovered",title:"Bridge discovered",body:"semantic · weight 0.87",color:p.ConnectionDiscovered,dwellMs:4500},{type:"MemorySuppressed",title:"Forgetting",body:"suppression #2 · Rac1 cascade ~8 neighbors",color:p.MemorySuppressed,dwellMs:5500},{type:"ConsolidationCompleted",title:"Consolidation swept",body:"892 nodes · 156 decayed · 48 embedded in 1.1s",color:p.ConsolidationCompleted,dwellMs:6e3}].forEach((u,m)=>{setTimeout(()=>{$.push(u)},m*800)}),T($)}export{I as f,$ as t}; +import{w as N,g as T}from"./D8mhvFt8.js";import{e as E}from"./BhIgFntf.js";import{E as p}from"./CcUbQ_Wl.js";const y=4,R=5500,F=1500;function x(){const{subscribe:b,update:u}=N([]);let m=1,f=0;const c=new Map,a=new Map,l=new Map;function w(e,s){l.set(e,Date.now());const t=setTimeout(()=>{c.delete(e),l.delete(e),h(e)},s);c.set(e,t)}function g(e){const s=m++,t=Date.now(),o={id:s,createdAt:t,...e};u(n=>{const r=[o,...n];if(r.length>y){for(const i of r.slice(y)){const d=c.get(i.id);d&&clearTimeout(d),c.delete(i.id),a.delete(i.id),l.delete(i.id)}return r.slice(0,y)}return r}),w(s,e.dwellMs)}function h(e){const s=c.get(e);s&&(clearTimeout(s),c.delete(e)),a.delete(e),l.delete(e),u(t=>t.filter(o=>o.id!==e))}function D(e,s){const t=c.get(e);if(!t)return;clearTimeout(t),c.delete(e);const o=l.get(e)??Date.now(),n=Date.now()-o,r=Math.max(200,s-n);a.set(e,{remaining:r})}function C(e){const s=a.get(e);s&&(a.delete(e),w(e,s.remaining))}function S(){for(const e of c.values())clearTimeout(e);c.clear(),a.clear(),l.clear(),u(()=>[])}function _(e){const s=p[e.type]??"#818CF8",t=e.data;switch(e.type){case"DreamCompleted":{const o=Number(t.memories_replayed??0),n=Number(t.connections_found??0),r=Number(t.insights_generated??0),i=Number(t.duration_ms??0),d=[];return d.push(`Replayed ${o} ${o===1?"memory":"memories"}`),n>0&&d.push(`${n} new connection${n===1?"":"s"}`),r>0&&d.push(`${r} insight${r===1?"":"s"}`),{type:e.type,title:"Dream consolidated",body:`${d.join(" · ")} in ${(i/1e3).toFixed(1)}s`,color:s,dwellMs:7e3}}case"ConsolidationCompleted":{const o=Number(t.nodes_processed??0),n=Number(t.decay_applied??0),r=Number(t.embeddings_generated??0),i=Number(t.duration_ms??0),d=[];return n>0&&d.push(`${n} decayed`),r>0&&d.push(`${r} embedded`),{type:e.type,title:"Consolidation swept",body:`${o} node${o===1?"":"s"}${d.length?" · "+d.join(" · "):""} in ${(i/1e3).toFixed(1)}s`,color:s,dwellMs:6e3}}case"ConnectionDiscovered":{const o=Date.now();if(o-f0?`suppression #${o} · Rac1 cascade ~${n} neighbors`:`suppression #${o}`,color:s,dwellMs:5500}}case"MemoryUnsuppressed":{const o=Number(t.remaining_count??0);return{type:e.type,title:"Recovered",body:o>0?`${o} suppression${o===1?"":"s"} remain`:"fully unsuppressed",color:s,dwellMs:5e3}}case"Rac1CascadeSwept":{const o=Number(t.seeds??0),n=Number(t.neighbors_affected??0);return{type:e.type,title:"Rac1 cascade",body:`${o} seed${o===1?"":"s"} · ${n} dendritic spine${n===1?"":"s"} pruned`,color:s,dwellMs:6e3}}case"MemoryDeleted":return{type:e.type,title:"Memory deleted",body:String(t.id??"").slice(0,8),color:s,dwellMs:4e3};case"HookVerdictRecorded":{const o=String(t.verdict??"NOTE"),n=String(t.reason??"Sanhedrin receipt updated");return{type:e.type,title:`Sanhedrin ${o}`,body:n,color:s,dwellMs:o==="VETO"?8e3:R}}case"Heartbeat":case"SearchPerformed":case"RetentionDecayed":case"ActivationSpread":case"ImportanceScored":case"MemoryCreated":case"MemoryUpdated":case"DreamStarted":case"DreamProgress":case"ConsolidationStarted":case"Connected":return null;default:return null}}let M=null;return E.subscribe(e=>{if(e.length===0)return;const s=[];for(const t of e){if(t===M)break;s.push(t)}if(s.length!==0){M=e[0];for(let t=s.length-1;t>=0;t--){const o=_(s[t]);o&&g(o)}}}),{subscribe:b,dismiss:h,clear:S,pauseDwell:D,resumeDwell:C,push:g}}const $=x();function I(){[{type:"DreamCompleted",title:"Dream consolidated",body:"Replayed 127 memories · 43 new connections · 5 insights in 2.4s",color:p.DreamCompleted,dwellMs:7e3},{type:"ConnectionDiscovered",title:"Bridge discovered",body:"semantic · weight 0.87",color:p.ConnectionDiscovered,dwellMs:4500},{type:"MemorySuppressed",title:"Forgetting",body:"suppression #2 · Rac1 cascade ~8 neighbors",color:p.MemorySuppressed,dwellMs:5500},{type:"ConsolidationCompleted",title:"Consolidation swept",body:"892 nodes · 156 decayed · 48 embedded in 1.1s",color:p.ConsolidationCompleted,dwellMs:6e3}].forEach((u,m)=>{setTimeout(()=>{$.push(u)},m*800)}),T($)}export{I as f,$ as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js.br b/apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js.br new file mode 100644 index 0000000000000000000000000000000000000000..3a8183cf0649d067849a40f35fd38bf988a5e056 GIT binary patch literal 1610 zcmV-Q2DSMc9TET>g>l1Omi@SBXNnRL>9nQ&_w#aH6d5gLO-|N`(BrxZ#goK2Y-A6; zQ1}1XxYbhCX)TSgp^xVBbD zngHiRVh3s$o702IuEufxPH|OctGs!;$nO^6&Y=Ga`BFEyOnW`fgWWXhah`;-@3Z*r ztecRwi#LY($3$(NvZoi+MIu=$3dZ8jeyEhr4{|bALGi74VR-Qy9|h>p7U2>ZaJxVV z^~(qI;nvY8s?BG^-6rU9XgXb?gXQbLE(0{iG8LG%TANVre_~t~uKTd&q=n#$>bdDH6=f}*_Th3p+GMZ^E`bC~Vc{uh9 zWR}HOuAQxqD0~*C)t9hd9Bd=vCQ$ zKWheDzDG*WzCNa(aI?hphO$P8uL;wQpLWl@`HX>NEF-S!wd_5bdt!OqTeFOIiIhI2 z$-s#XbaqlpHXCW!491~WJND8g_Ru!cUfZ!7==L~Y%MK<&mmQNxY^(Akw~3%*5g?S{ zBD5!pH*|t?Whb+WIQRIW-iC79Y{PC_$=n$Y)jQ8s4uWl^DR0fPXiGnnyc}IwNQg_v zuCW#^#3NPrn{4D&Em_S#JYh^+j%7q#t|R}Fi`fUD3%HTMb40k@-o@W&cSJ2IH$mca zoJ&a3F>?_yFvDk)0_wt>wvnKf9`>n2<%k64aZV7mwToX#8z;lAn;;#NkZg&(JQn0i zNKa+j4qSp1tO8N`_q4PMRY}~d(xAic?nU)pYmhPwGYqJXpqZh<0#Ix%RZEsp>RXq` zk9~jhx&`%p`^L;~!AezP%NHhT(OvZp)|zE>!b%?vib+{!V}IY?RiURKZKs1eRE4c^ zA1tN!UL#DAh#^>~; zg#WB^4(6}SYbPmexidUCjVO>0u0;v<;t6(ZexmxXIdfawqnf+cq!`!+OQtY8uayx8sK(mCc1q|F+d*$M)7Rj8>oI~cVG z#B}Ak{dnDusVe?y>=7fHTQ7s{uOE595LF zPN%6N#6Z~Z$*HS-soFU}TTkiuWYWRv2h~u76iypDpuO2kzlQLYdSV$ zIfE)kVU&coR6dXHWBg*L{$ww!xvYX=t)ij49OBhq=5iHt?i;*jp6~pvev^MNZA_08 IANN+*U&3}LmjD0& literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js.gz b/apps/dashboard/build/_app/immutable/chunks/CqMQEF-F.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1fcfe84745e71d5a60c01904d909b9cc9ad4f470 GIT binary patch literal 1765 zcmVbHhT@{7_<8+db;)%+q_{8?Sxa#ieSY}Y^502C5ecrewI%PI zYjSepdCn!7o_Jmm=RDF(aO(--q9Q6({-7es9>9Na@{EQW{JbO|(d``$63|vkrcO+} zhGj%JY^Xf3MU-DCZpFQn2y${Cc#A%DzMKbgz1?`Gh+$0{i4P5W1c>MMA}Uu6_SBkO30FM z3v@pB46+?TBshmk8MTZ>&T9hM6ELpWYOU3B1stSFpo)U^6f~EiVX#b9wMEJ8UC=}< zb+cTp(fxHJ-kKDmG(Uup>D;c=+uFX}>S>qv*x{$%!9ja+Qt;9;m8I8oQtsI*0-;gjSXXK zQXuxj6ppd0#U*F#hKyZZXM|B#4P;G zo^M~R>oA&H4Oi>_Qt+o%QcL{Sr}6)?FYK; zQ~;|Maqru4o+MiU>j9R)?l^RXtG&+U)D-dxxQ-EL1ps7&tKi;%B@O2#b-5wJ{K z^&NxSFJOJ&pQ;16&WJsg4d(W57dOA!^BElb*9~UBKq&PCgxdD2_XUJ9T7Lo=3z-^Q z>d0wp#ChH7n&qD&%^s`Pwa6rd?ed4}$`$em7Lkx0b&dL2eZLs3eQwP3`+04lL%Fl` zNs5&T@@8$+I>+QqBkO~pZcr5BFi-Swtt`#8?TS?U&H9DgUGor-(}KkanvP2d@w$n< z8AxyMf`0bZX7&Ya&S*l&6@HKqehE}P5@=kq7^#NY8^f%)B5>=~EQ~6ewA+W%K%WvX z(1(Y(3#cVhxB3nT;^1I~1TM=GJEL1EWh!M#`D>>dsQrbLg}H)r69xXcBSGb9^LFMK zrTkS{*4!uL3E}=)`T^nMwhp-65&G4M(C#ML>Ct)dJb`n))ayfF} zskV+~?pXF{Y-~oV=LeV91_xU~8gf%^`r*NIXYYH-&#@gh!B&C2Hu#6F${w|xqx~K= z>l;+B$u9qKcN)O(-2D9dtZC2waa4_(l{2O%Kei)n<*`{e#2V*J-KiQu^o+<+ZN773 zAuqycjZp5S=Ih1o*NjP>9XT$Y^!u6T;SxJHXo5?4s=nQPFyC%sXJYz literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js b/apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js deleted file mode 100644 index ee5b8f4..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as J,bd as ee}from"./CpWkWWOo.js";import{w as ae}from"./BeMFXnHE.js";import{c as ne,H as N,N as B,r as mt,i as _t,b as L,s as C,p as x,n as ft,f as $t,g as ut,a as X,d as it,S as Nt,P as re,e as oe,h as se,o as Dt,j as q,k as ie,l as qt,m as ce,q as le,t as Kt,u as Pt,v as fe}from"./g4XF1_b9.js";class wt{constructor(a,e){this.status=a,typeof e=="string"?this.body={message:e}:e?this.body=e:this.body={message:`Error: ${a}`}}toString(){return JSON.stringify(this.body)}}class vt{constructor(a,e){this.status=a,this.location=e}}class yt extends Error{constructor(a,e,r){super(r),this.status=a,this.text=e}}const ue=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function he(t){const a=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${pe(t).map(r=>{const n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(n)return a.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(o)return a.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return ct(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return ct(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const h=ue.exec(c),[,u,w,f,d]=h;return a.push({name:f,matcher:d,optional:!!u,rest:!!w,chained:w?l===1&&s[0]==="":!1}),w?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return ct(c)}).join("")}).join("")}/?$`),params:a}}function de(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function pe(t){return t.slice(1).split("/").filter(de)}function ge(t,a,e){const r={},n=t.slice(1),o=n.filter(i=>i!==void 0);let s=0;for(let i=0;ih).join("/"),s=0),l===void 0)if(c.rest)l="";else continue;if(!c.matcher||e[c.matcher](l)){r[c.name]=l;const h=a[i+1],u=n[i+1];h&&!h.rest&&h.optional&&u&&c.chained&&(s=0),!h&&!u&&Object.keys(r).length===o.length&&(s=0);continue}if(c.optional&&c.chained){s++;continue}return}if(!s)return r}function ct(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function me({nodes:t,server_loads:a,dictionary:e,matchers:r}){const n=new Set(a);return Object.entries(e).map(([i,[c,l,h]])=>{const{pattern:u,params:w}=he(i),f={id:i,exec:d=>{const _=u.exec(d);if(_)return ge(_,w,r)},errors:[1,...h||[]].map(d=>t[d]),layouts:[0,...l||[]].map(s),leaf:o(c)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function o(i){const c=i<0;return c&&(i=~i),[c,t[i]]}function s(i){return i===void 0?i:[n.has(i),t[i]]}}function Ft(t,a=JSON.parse){try{return a(sessionStorage[t])}catch{}}function It(t,a,e=JSON.stringify){const r=e(a);try{sessionStorage[t]=r}catch{}}function _e(t){return t.filter(a=>a!=null)}function Et(t){return t instanceof wt||t instanceof yt?t.status:500}function we(t){return t instanceof yt?t.text:"Internal Error"}const ve=new Set(["icon","shortcut icon","apple-touch-icon"]),I=Ft(Kt)??{},M=Ft(qt)??{},P={url:Pt({}),page:Pt({}),navigating:ae(null),updated:ne()};function bt(t){I[t]=C()}function ye(t,a){let e=t+1;for(;I[e];)delete I[e],e+=1;for(e=a+1;M[e];)delete M[e],e+=1}function V(t,a=!1){return a?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function Bt(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(L||"/");t&&await t.update()}}function Tt(){}let kt,ht,Q,U,dt,b;const Z=[],tt=[];let v=null;function pt(){var t;(t=v==null?void 0:v.fork)==null||t.then(a=>a==null?void 0:a.discard()),v=null}const G=new Map,Mt=new Set,Ee=new Set,F=new Set;let m={branch:[],error:null,url:null},Vt=!1,et=!1,Ot=!0,H=!1,K=!1,Ht=!1,St=!1,Yt,E,R,O;const at=new Set,Ct=new Map;async function Fe(t,a,e){var o,s,i,c,l;(o=globalThis.__sveltekit_1p6kag3)!=null&&o.data&&globalThis.__sveltekit_1p6kag3.data,document.URL!==location.href&&(location.href=location.href),b=t,await((i=(s=t.hooks).init)==null?void 0:i.call(s)),kt=me(t),U=document.documentElement,dt=a,ht=t.nodes[0],Q=t.nodes[1],ht(),Q(),E=(c=history.state)==null?void 0:c[N],R=(l=history.state)==null?void 0:l[B],E||(E=R=Date.now(),history.replaceState({...history.state,[N]:E,[B]:R},""));const r=I[E];function n(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}e?(n(),await Ce(dt,e)):(await D({type:"enter",url:mt(b.hash?Ne(new URL(location.href)):location.href),replace_state:!0}),n()),Oe()}function be(){Z.length=0,St=!1}function zt(t){tt.some(a=>a==null?void 0:a.snapshot)&&(M[t]=tt.map(a=>{var e;return(e=a==null?void 0:a.snapshot)==null?void 0:e.capture()}))}function Wt(t){var a;(a=M[t])==null||a.forEach((e,r)=>{var n,o;(o=(n=tt[r])==null?void 0:n.snapshot)==null||o.restore(e)})}function jt(){bt(E),It(Kt,I),zt(R),It(qt,M)}async function Gt(t,a,e,r){let n;a.invalidateAll&&pt(),await D({type:"goto",url:mt(t),keepfocus:a.keepFocus,noscroll:a.noScroll,replace_state:a.replaceState,state:a.state,redirect_count:e,nav_token:r,accept:()=>{a.invalidateAll&&(St=!0,n=[...Ct.keys()]),a.invalidate&&a.invalidate.forEach(Te)}}),a.invalidateAll&&J().then(J).then(()=>{Ct.forEach(({resource:o},s)=>{var i;n!=null&&n.includes(s)&&((i=o.refresh)==null||i.call(o))})})}async function ke(t){if(t.id!==(v==null?void 0:v.id)){pt();const a={};at.add(a),v={id:t.id,token:a,promise:Xt({...t,preload:a}).then(e=>(at.delete(a),e.type==="loaded"&&e.state.error&&pt(),e)),fork:null}}return v.promise}async function lt(t){var e;const a=(e=await ot(t,!1))==null?void 0:e.route;a&&await Promise.all([...a.layouts,a.leaf].filter(Boolean).map(r=>r[1]()))}async function Jt(t,a,e){var n;m=t.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(x,t.props.page),Yt=new b.root({target:a,props:{...t.props,stores:P,components:tt},hydrate:e,sync:!1}),await Promise.resolve(),Wt(R),e){const o={from:null,to:{params:m.params,route:{id:((n=m.route)==null?void 0:n.id)??null},url:new URL(location.href),scroll:I[E]??C()},willUnload:!1,type:"enter",complete:Promise.resolve()};F.forEach(s=>s(o))}et=!0}function nt({url:t,params:a,branch:e,status:r,error:n,route:o,form:s}){let i="never";if(L&&(t.pathname===L||t.pathname===L+"/"))i="always";else for(const f of e)(f==null?void 0:f.slash)!==void 0&&(i=f.slash);t.pathname=se(t.pathname,i),t.search=t.search;const c={type:"loaded",state:{url:t,params:a,branch:e,error:n,route:o},props:{constructors:_e(e).map(f=>f.node.component),page:At(x)}};s!==void 0&&(c.props.form=s);let l={},h=!x,u=0;for(let f=0;fi(new URL(s))))return!0;return!1}function xt(t,a){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?a??null:null}function xe(t,a){if(!t)return new Set(a.searchParams.keys());const e=new Set([...t.searchParams.keys(),...a.searchParams.keys()]);for(const r of e){const n=t.searchParams.getAll(r),o=a.searchParams.getAll(r);n.every(s=>o.includes(s))&&o.every(s=>n.includes(s))&&e.delete(r)}return e}function Le({error:t,url:a,route:e,params:r}){return{type:"loaded",state:{error:t,url:a,route:e,params:r,branch:[]},props:{page:At(x),constructors:[]}}}async function Xt({id:t,invalidating:a,url:e,params:r,route:n,preload:o}){if((v==null?void 0:v.id)===t)return at.delete(v.token),v.promise;const{errors:s,layouts:i,leaf:c}=n,l=[...i,c];s.forEach(g=>g==null?void 0:g().catch(()=>{})),l.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));const h=m.url?t!==rt(m.url):!1,u=m.route?n.id!==m.route.id:!1,w=xe(m.url,e);let f=!1;const d=l.map(async(g,p)=>{var A;if(!g)return;const y=m.branch[p];return g[1]===(y==null?void 0:y.loader)&&!Re(f,u,h,w,(A=y.universal)==null?void 0:A.uses,r)?y:(f=!0,Rt({loader:g[1],url:e,params:r,route:n,parent:async()=>{var z;const T={};for(let j=0;j{});const _=[];for(let g=0;gPromise.resolve({}),server_data_node:xt(o)}),i={node:await Q(),loader:Q,universal:null,server:null,data:null};return nt({url:e,params:n,branch:[s,i],status:t,error:a,route:null})}catch(s){if(s instanceof vt)return Gt(new URL(s.location,location.href),{},0);throw s}}async function Ae(t){const a=t.href;if(G.has(a))return G.get(a);let e;try{const r=(async()=>{let n=await b.hooks.reroute({url:new URL(t),fetch:async(o,s)=>Se(o,s,t).promise})??t;if(typeof n=="string"){const o=new URL(t);b.hash?o.hash=n:o.pathname=n,n=o}return n})();G.set(a,r),e=await r}catch{G.delete(a);return}return e}async function ot(t,a){if(t&&!_t(t,L,b.hash)){const e=await Ae(t);if(!e)return;const r=Pe(e);for(const n of kt){const o=n.exec(r);if(o)return{id:rt(t),invalidating:a,route:n,params:oe(o),url:t}}}}function Pe(t){return ie(b.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(L.length))||"/"}function rt(t){return(b.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Qt({url:t,type:a,intent:e,delta:r,event:n,scroll:o}){let s=!1;const i=Ut(m,e,t,a,o??null);r!==void 0&&(i.navigation.delta=r),n!==void 0&&(i.navigation.event=n);const c={...i.navigation,cancel:()=>{s=!0,i.reject(new Error("navigation cancelled"))}};return H||Mt.forEach(l=>l(c)),s?null:i}async function D({type:t,url:a,popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s={},redirect_count:i=0,nav_token:c={},accept:l=Tt,block:h=Tt,event:u}){var j;const w=O;O=c;const f=await ot(a,!1),d=t==="enter"?Ut(m,f,a,t):Qt({url:a,type:t,delta:e==null?void 0:e.delta,intent:f,scroll:e==null?void 0:e.scroll,event:u});if(!d){h(),O===c&&(O=w);return}const _=E,g=R;l(),H=!0,et&&d.navigation.type!=="enter"&&P.navigating.set(ft.current=d.navigation);let p=f&&await Xt(f);if(!p){if(_t(a,L,b.hash))return await V(a,o);p=await Zt(a,{id:null},await Y(new yt(404,"Not Found",`Not found: ${a.pathname}`),{url:a,params:{},route:{id:null}}),404,o)}if(a=(f==null?void 0:f.url)||a,O!==c)return d.reject(new Error("navigation aborted")),!1;if(p.type==="redirect"){if(i<20){await D({type:t,url:new URL(p.location,a),popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s,redirect_count:i+1,nav_token:c}),d.fulfil(void 0);return}p=await Lt({status:500,error:await Y(new Error("Redirect loop"),{url:a,params:{},route:{id:null}}),url:a,route:{id:null}})}else p.props.page.status>=400&&await P.updated.check()&&(await Bt(),await V(a,o));if(be(),bt(_),zt(g),p.props.page.url.pathname!==a.pathname&&(a.pathname=p.props.page.url.pathname),s=e?e.state:s,!e){const k=o?0:1,W={[N]:E+=k,[B]:R+=k,[Nt]:s};(o?history.replaceState:history.pushState).call(history,W,"",a),o||ye(E,R)}const y=f&&(v==null?void 0:v.id)===f.id?v.fork:null;v=null,p.props.page.state=s;let S;if(et){const k=(await Promise.all(Array.from(Ee,$=>$(d.navigation)))).filter($=>typeof $=="function");if(k.length>0){let $=function(){k.forEach(st=>{F.delete(st)})};k.push($),k.forEach(st=>{F.add(st)})}m=p.state,p.props.page&&(p.props.page.url=a);const W=y&&await y;W?S=W.commit():(Yt.$set(p.props),fe(p.props.page),S=(j=ee)==null?void 0:j()),Ht=!0}else await Jt(p,dt,!1);const{activeElement:A}=document;await S,await J(),await J();let T=null;if(Ot){const k=e?e.scroll:n?C():null;k?scrollTo(k.x,k.y):(T=a.hash&&document.getElementById(te(a)))?T.scrollIntoView():scrollTo(0,0)}const z=document.activeElement!==A&&document.activeElement!==document.body;!r&&!z&&$e(a,!T),Ot=!0,p.props.page&&Object.assign(x,p.props.page),H=!1,t==="popstate"&&Wt(R),d.fulfil(void 0),d.navigation.to&&(d.navigation.to.scroll=C()),F.forEach(k=>k(d.navigation)),P.navigating.set(ft.current=null)}async function Zt(t,a,e,r,n){return t.origin===Dt&&t.pathname===location.pathname&&!Vt?await Lt({status:r,error:e,url:t,route:a}):await V(t,n)}function Ie(){let t,a={element:void 0,href:void 0},e;U.addEventListener("mousemove",i=>{const c=i.target;clearTimeout(t),t=setTimeout(()=>{o(c,q.hover)},20)});function r(i){i.defaultPrevented||o(i.composedPath()[0],q.tap)}U.addEventListener("mousedown",r),U.addEventListener("touchstart",r,{passive:!0});const n=new IntersectionObserver(i=>{for(const c of i)c.isIntersecting&&(lt(new URL(c.target.href)),n.unobserve(c.target))},{threshold:0});async function o(i,c){const l=$t(i,U),h=l===a.element&&(l==null?void 0:l.href)===a.href&&c>=e;if(!l||h)return;const{url:u,external:w,download:f}=ut(l,L,b.hash);if(w||f)return;const d=X(l),_=u&&rt(m.url)===rt(u);if(!(d.reload||_))if(c<=d.preload_data){a={element:l,href:l.href},e=q.tap;const g=await ot(u,!1);if(!g)return;ke(g)}else c<=d.preload_code&&(a={element:l,href:l.href},e=c,lt(u))}function s(){n.disconnect();for(const i of U.querySelectorAll("a")){const{url:c,external:l,download:h}=ut(i,L,b.hash);if(l||h)continue;const u=X(i);u.reload||(u.preload_code===q.viewport&&n.observe(i),u.preload_code===q.eager&<(c))}}F.add(s),s()}function Y(t,a){if(t instanceof wt)return t.body;const e=Et(t),r=we(t);return b.hooks.handleError({error:t,event:a,status:e,message:r})??{message:r}}function Be(t,a={}){return t=new URL(mt(t)),t.origin!==Dt?Promise.reject(new Error("goto: invalid URL")):Gt(t,a,0)}function Te(t){if(typeof t=="function")Z.push(t);else{const{href:a}=new URL(t,location.href);Z.push(e=>e.href===a)}}function Oe(){var a;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let r=!1;if(jt(),!H){const n=Ut(m,void 0,null,"leave"),o={...n.navigation,cancel:()=>{r=!0,n.reject(new Error("navigation cancelled"))}};Mt.forEach(s=>s(o))}r?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&jt()}),(a=navigator.connection)!=null&&a.saveData||Ie(),U.addEventListener("click",async e=>{if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const r=$t(e.composedPath()[0],U);if(!r)return;const{url:n,external:o,target:s,download:i}=ut(r,L,b.hash);if(!n)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=X(r);if(!(r instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||i)return;const[h,u]=(b.hash?n.hash.replace(/^#/,""):n.href).split("#"),w=h===it(location);if(o||c.reload&&(!w||!u)){Qt({url:n,type:"link",event:e})?H=!0:e.preventDefault();return}if(u!==void 0&&w){const[,f]=m.url.href.split("#");if(f===u){if(e.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const d=r.ownerDocument.getElementById(decodeURIComponent(u));d&&(d.scrollIntoView(),d.focus())}return}if(K=!0,bt(E),t(n),!c.replace_state)return;K=!1}e.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await D({type:"link",url:n,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??n.href===location.href,event:e})}),U.addEventListener("submit",e=>{if(e.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if(((n==null?void 0:n.formTarget)||r.target)==="_blank"||((n==null?void 0:n.formMethod)||r.method)!=="get")return;const i=new URL((n==null?void 0:n.hasAttribute("formaction"))&&(n==null?void 0:n.formAction)||r.action);if(_t(i,L,!1))return;const c=e.target,l=X(c);if(l.reload)return;e.preventDefault(),e.stopPropagation();const h=new FormData(c,n);i.search=new URLSearchParams(h).toString(),D({type:"form",url:i,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??i.href===location.href,event:e})}),addEventListener("popstate",async e=>{var r;if(!gt){if((r=e.state)!=null&&r[N]){const n=e.state[N];if(O={},n===E)return;const o=I[n],s=e.state[Nt]??{},i=new URL(e.state[re]??location.href),c=e.state[B],l=m.url?it(location)===it(m.url):!1;if(c===R&&(Ht||l)){s!==x.state&&(x.state=s),t(i),I[E]=C(),o&&scrollTo(o.x,o.y),E=n;return}const u=n-E;await D({type:"popstate",url:i,popped:{state:s,scroll:o,delta:u},accept:()=>{E=n,R=c},block:()=>{history.go(-u)},nav_token:O,event:e})}else if(!K){const n=new URL(location.href);t(n),b.hash&&location.reload()}}}),addEventListener("hashchange",()=>{K&&(K=!1,history.replaceState({...history.state,[N]:++E,[B]:R},"",location.href))});for(const e of document.querySelectorAll("link"))ve.has(e.rel)&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&P.navigating.set(ft.current=null)});function t(e){m.url=x.url=e,P.page.set(At(x)),P.page.notify()}}async function Ce(t,{status:a=200,error:e,node_ids:r,params:n,route:o,server_route:s,data:i,form:c}){Vt=!0;const l=new URL(location.href);let h;({params:n={},route:o={id:null}}=await ot(l,!1)||{}),h=kt.find(({id:f})=>f===o.id);let u,w=!0;try{const f=r.map(async(_,g)=>{const p=i[g];return p!=null&&p.uses&&(p.uses=je(p.uses)),Rt({loader:b.nodes[_],url:l,params:n,route:o,parent:async()=>{const y={};for(let S=0;S{const i=history.state;gt=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(i,"",t),a&&scrollTo(o,s),gt=!1})}else{const o=document.body,s=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),s!==null?o.setAttribute("tabindex",s):o.removeAttribute("tabindex")}const n=getSelection();if(n&&n.type!=="None"){const o=[];for(let s=0;s{if(n.rangeCount===o.length){for(let s=0;s{o=u,s=w});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((l=t.route)==null?void 0:l.id)??null},url:t.url,scroll:C()},to:e&&{params:(a==null?void 0:a.params)??null,route:{id:((h=a==null?void 0:a.route)==null?void 0:h.id)??null},url:e,scroll:n},willUnload:!a,type:r,complete:i},fulfil:o,reject:s}}function At(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 Ne(t){const a=new URL(t);return a.hash=decodeURIComponent(t.hash),a}function te(t){let a;if(b.hash){const[,,e]=t.hash.split("#",3);a=e??""}else a=t.hash.slice(1);return decodeURIComponent(a)}export{Fe as a,Be as g,P as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.br b/apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.br deleted file mode 100644 index 8f904e8f1d14c1e9d4658eca8a594937338401ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7651 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

cC)puAg~9S+6Bi|URjqH;pz2KAieth$ zTD$2-Jixq|(jLyht=|m4tF0Hbh6IV6-3voad*apR5U~u6HN@E2`heK`mZa;Sv>h90 zL^Lt#oNPem>Y5KWsuD6T(Rj1YuEq zH)+5@+A%aVVzQqX{sZ8Rl%M0-d!W1&7#3<#>PS~*m{*s^_A*s_wovO=OW{6EBB|D% z0i5fF&c-l15gjd$lvd-S)vQ3O+yF?kVf4%rDr^)a72ro+#+^f{qPH$g%h~>`=Weq# zGU|cfw`&_?JtxE{W_}@yJEfK%&{33c6||Ui@jhBfFW=Elv~5sT2lYaPj%NwEbwDsN z3LelRz8%zsYx<-QFZ_@jQ{=`AAneNrXUCI0Mn8nZDIE_>RUO=0w6laT2$I)vcda2x;~!Eflniy>WSrM^`XEIpnY0pxEH_H zsFHE5lj}h99MEJ4m0pl^qG_f4y>s@BudG4DM@9I&PBvaf)b)h8V*&@^1)rt&X`lLe z^t&U2!A=(4$$8vU^zOwb?=lPQWv4pBk=4=6 zB4X-y(6-CuNxYtSHw?SvT?A!nl)`I2L22@d26Er_cxVwm5za3Jfdlq|4{s=?{Vw2{ z$85ob-Qtn5AI;_Tz`ZO3DD~Nnd3}Mk{#AV3=%a;GIZwioYPp+s<29VARK#qs_B)Fx zySB*pv9+FYFDo9)@m}S0!ieRps2yA!`1Od`t&{r#W>Mc4y)2qFVDe>gYIQPc@p`&7 zAS5%MSYVH+&ewcd09*f&g}C+qeEKlx@g_izjgDGrt`Z8C-h$uh@^&!=z&WS}ploX6 zXg>E{Z5;5f8E~JC4qE?&mB1>cTUsW#B9dEP-~21IJeW*jZ^Z5SEPdMU2+jT$;={SS z1k)7N2SS!eM0gx=H`xb85DDL7AjBdsU>H0DKxxX!j4f4*+ip{q4xkFt(JhH52;`aQ z^Ll880oy*ud5jZkU3k1!-DK+pHR%=BgFtjVc%^1@85-VTP{~8*j%BhCtIts~wdKug;-DX(K2X+kTK(|c#9n!UEsnv>ULiN;uYnw)! zufT6_oy$2u-oUa(YYP52l*xooo0Q#nM^Ey4oX1MBbW8M<>enwjt!Qa*-?1l_=^s24a2J!Q1MWlTT<4;%>*v>)C`#Y(b}+!&o>sHxr=7LJ@E^#H%_& zv>s9?1q96|$%PV-iSN4G#k0MHDUDOh{LQLmRKDa_h3muICIXY~Q9n-R(a)#PHApYl zh^KuFK@Vs#z}zBf%K#sPPiCJC>IS+t5qI7Ghn(^u*w4@Ev!y<}RHuS^A9aIjv~V5u zflCDT6~pZ!-Nh=x8O|EeeDq=b75LE$8g+*M$pZJRQ%9d8Mk zujHc#4C%oTSk>?h&uC*Gl_Q(4t2!MSbUo!)ia|>E*$upo2oGiTU_%ZI{r0WGlonYP zE4~>2xr`5mg)^ilvH4;p9VmL@TOPDS{B=yJeY}Pg7kxTx5)^kDnyK3}RGxO&eiaJB z8fiiURWHd}0SUJ}$G?T7&2fC&gv?0FKtiWb@Ua6e^zP12*|5{n%&IJ R^2?`yCN#GE02C4w;5bHuct~b zg6Q{yuYl=MOub%%>e1F+3l0uP!lkegBn!JX~Q=;Iq&_uxX zMw45(z9c1Fo{=S79!LR~sU}mn9&0j#Yo!T;>o3HNPiS&&TGr$(ToorAu9A~ETuV+Q zT))-iGhF{5ccvOAxp~xN0oRn1Kj4~kqT%|ZCKX)YYI1Kz(adr7&tIOO-Q51SnPZx> zvOHSpO)860t18t}Ax1df=(#APQZrqZlo7pNaydQXlm?|%qL>9EQ{Yx+Yr0wRvSc$J z^E&38_dGsO=F_E8QpHEd8&-d+Yb~!$dkAk7*Oe-cez<<~Iz5nac z!c#6&riCmh_Z8Rrh(BmvWaW_=#BMW0;Z0dBxk3t)11)O)piOH~?Wp4P^mp`ej7R8W z1b=X|I>BfZQ*#5)6FfRTO{P_m!cdOp9BFL3Jz{h`N$i|AOQtnfMXV{M!D%o${r%(V z@o8M})zKB7T|O+)r{9k^OQ;F*!Mb^yEGf1DhjM*M-NNZ~|GQGp$a zS+uOmIocF#!Q*0lHX#e9(>YghG5&f&#4Vs9fek zqtlOL6rGIl#|at@K2Go{cGM3}gOk#b6{RG{^n4?xDF55n7_KSsfYRj$q30-gI0>*H ze5#RU-3T_;vpG}GWX92wsgl1aG}O#R%F)-Doc$YPGxL6H)nB(3MN!+1n@I2^uv~CM z&zs(EY$w=Fdrm8ENuFXdCKXwcDaj^uo*W|mw4r;}A^MG|A~@HD`r zq(e+#mE4$2o6r!>X%HklFZod_3oVL@n;nxzZuPfYK5iZ+D93oC#%TmBGNF0HS!^s$ z&L*USL7$vWl6e>o=5DC-$n#GaRxpERGRTZ;0EMeCd~^Gmr#iah>k=vK$U`ZW?$(u0 z{6K3ni?;2iVZ13%PTFF2v7z*!^jk}{OPlH*M-);mST6qL2uF%9bCz;+Iv#(VOipJc z`1tWS3_2hF1~32i^}o9BKAzf_!@BPTU|Htn8uWa#ubl;7mzn_eLKi<>`Z$EzQ zblr}7!O^CW882f^O0Mp?y2&NW%9xQ%m?BKAWA3+c8LJvM3IepqHP?uFfp_Gn&kL;t zFA=xm1dRn5rz9uy$pm`^)2OD(Z_8Cp=Nt)4rgS5+SP&31an@+08(LY(lNphB}3 z8rcRt8%-lu-@kap^gLRy2eea??3To2TH{t-OC;LeD!v)|4%0A1g8q-dKrcNOlS#W& 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 G00020Y+=X% diff --git a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.br b/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.br deleted file mode 100644 index fffecbf06186e02af556fade966edb3924229bb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1616 zcmV-W2Cw-W9TET>g-w}zG%i0RyjaUxtRzWYOSS)fUSy-WL8-{@IHh)35o;S4(6FnN z7Pr2yIj0r61v=4+^UtZvMD+vRL}{sh+Lzq7UkdcYLPe@*%D7WWk1Av?Su{@Ap!67bo05*It<$--LzEh92+SxxMX$ z;T<}_`Iy*-+Qsq9eRAI0dC1=`F3N1~u3yj7+e5fB=)WR9G2{!3MoP`?pf^&g6Ux31 z7pJrS4r#l7!;9Z|cgRF(ETk-v zw<6<$JHN}A+&Y>;wfQo}O3H=tsS=6D-y?(PLNX@u`LT=1{POw`mxl?$vE80y__vWg zlHF@!ZhUi{HS>aqnlGJ0j@%ot@P92lt-LK{P*m$yekt|NLBh?kC0~dzwLuy`$=`o7 z*hybmTCw}sn?@rS4@pBDF#&ZP&VC9VE6Y0Q)me%^e}9b;zdK?SlR%F?COY^B5T*#8 zJla?8{Zxl^aMOHV=@|KA0oM3qkNhllKZRu^f7KR`<=w|z-ZU`jA{vBHhLq6Zalk%0 ztnzMe$H*Hq&jI~W{>CJJ$VykuQFbDqB?$dJ_CQAm3*phdLl|LQRST;r+S%k+im_C&Tn z;1g;CarN0c^QjU0Tzb4e1`QU^N>3T7-_X4X!l;Onw-57xm!Pvg=w`X?he`uFHeky%JOnDXy{6#eG@_7Sn##gTPd>a3*ita zxD>r=^}e4r11{ej;OuK)`Uy8nOm8S_g!r29S@E=U=FMjebb2_8t9l1}kLI3O8u!-K z09_)bPiZo6VgsF>)RN6c8a9J*sC5>5=@NVB5NWUC*bUT1O08uF6QRqFNhG#a`kvmD z(ZwP_D8WT&PZV$H1n0_5zSZk0PaSGKl-p(tciYP7&Sw*|q~vm)_)9KkAAl}E-8r5k!sXU4{@T$I zwWQnxiO+E^G)c$&MZ~}ipG^v=k~eMLIaGSsrwo-N5}3z1LDbtWekpC747;wPAtoW& z5@~rX$d! z)c_D%m&b3Bzj?I+|GvGmAKhRuHs_WvOwyve>J6-QHNb?GKAKoe$}$`K`}QuQ8=wiD z4(hN4x5j<2K<~Y}m?9BFuCNE2)BT-r^Ko?wp{3RN1>HmoCA_oXas8VtjbiH{@K54G zPN*$)2Y=04&)L3Zd)Z-HSR3uMh&E|5kwwt8SNbTuE)3diqOfeagxe&64OO2M1(cci zjVLK7T$0~wf34_NcMKT#Pj63;nhl6N*+Qb$9a_e+vf8Cl%B=&#{>|rFB)mBcEFV)@ zy1qkZK?{@pSw#-!Pt8lm(1mh_2d9w%^1=C@=N!s&mc@zcziuQgctzef8hz)<%!o^- zFgvj72VB)<)g>3PB-}~~9eRs-Q%N%}DG@$gTr?fumvMSbbXGGum{q93 znjK8~O<}t7+?h_vF;ozMysv(AQIXdNS!?^@D0CLJFr19njwFh1RUHlWgitMh&x8 za7|AQSgKQL1O diff --git a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.gz b/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.gz deleted file mode 100644 index 4c9d6c29ebd20a16238cd7c477bb1eb90b16d104..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1768 zcmVxyI!>7J7Isb{}I;3!-qt^$p~IVT!iE;b0`hK~*v=o^-T$TdPZJS`%Z zLIN5PU?&+ouMyzVQ8(ebRVj)pY!z>Y7(p3qI0BvzAlZKJI0*#o?Ubh>kqZQHLA{qzQ&XLP{8CeC5k>py1gM6fy*5Xm=H+ zZpUJ1;Q|f)561tI`G~c@^QecLVmzp?=vdxO$tx-F$9; zH=EARE@!r*LvSh4Bv2csqcy5Ya1jv&_PGR-o{2OwmQdR-T0Gz9=>tfl-4s$G8K|X% zEFoK<^SNh`?Fb^lIaJE1Wh`=D6Ud%`am7|^t(Gg`AWZ^Q6s)J9xg>_cGF8i2X2yW9({i$sU2CDK6E$6NyAfUpY;3`mf=*EGtKyb*!1-&pM0?3Tl~25rIdm&Wp%i!~`^XYdg&_w9Xk z;(3k1S5;ztkRlbo7ih3qO3=WK1>exH=4NFryGFn6xbcYie(HI>M?75q^$%!x4u7VC z6#i`e7I~J*DifblQ8l|J1|pGjy_>F}G)qkyE+e8MLg5>BTnf1Ytr=f6HtCP*c_lb|s6^`P{Z~H(Ac` zeg?pC8B{Xg3i0Vzkd#H*xKh$lP;@*$*Cg|~{r=~h3)`UE?MWcY-+vx9l&))?5S)pw|~93`PrV&;Ml)zFnbF`>IWd&_N(^=5E-pMfQ*Gq zjV*QLv^CF3KvZJn1KdbK-qqUEXnSMX7Ei{ok zOCO|InILc0My+#9-ZZj42ye%;Ga7ZRGv0( zXO2^xA62R+H(kj(5h?YW1X@M3tFb zj@(zOtz(%xmOUC9o0012!R1?ngRLMX+?1Psc<|iW>t6CxY{yNoRba0T{%)(XM=j@Q zzemmb2Gwh_%YWRR1~5D|KYx4Hv}b=isz%Mq8Pk&=+mW{N*sL33jdP~%RE;2dLgc76 z-?_1n7bIFElsl>Uda?U8V^U{Fj!P%~e&%_&#Lf+x;1V9IZ#VDEx0~3Rm_J{var o=C;if(r===(r=c()??"")){f&&v();return}if(o.nodes!==null&&(g(o.nodes.start,o.nodes.end),o.nodes=null),r!==""){if(f){x.data;for(var e=v(),y=e;e!==null&&(e.nodeType!==_||e.data!=="");)y=e,e=w(e);if(e===null)throw A(),z;u(x,y),a=L(e);return}var m=t?V:l?E:void 0,s=H(t?"svg":l?"math":"template",m);s.innerHTML=r;var i=t||l?s:s.content;if(u(d(i),i.lastChild),t||l)for(;d(i);)a.before(d(i));else a.before(i)}})}const R={blackbox:'',memorypr:'',graph:'',reasoning:'',memories:'',timeline:'',feed:'',explore:'',activation:'',dreams:'',schedule:'',importance:'',duplicates:'',contradictions:'',patterns:'',intentions:'',stats:'',settings:'',command:'',search:'',filter:'',sparkle:'',chevron:'',close:'',pulse:'',logo:''};var S=T('');function W(h,c){let t=n(c,"size",3,20),l=n(c,"strokeWidth",3,1.6),p=n(c,"class",3,""),a=n(c,"draw",3,!1);var r=S(),o=b(r);Z(o,()=>R[c.name],!0),I(r),k(()=>{M(r,"width",t()),M(r,"height",t()),M(r,"stroke-width",l()),O(r,0,`vestige-icon ${a()?"vestige-icon-draw":""} ${p()??""}`,"svelte-1eqehiz")}),N(h,r)}export{W as I}; diff --git a/apps/dashboard/build/_app/immutable/chunks/D7A-gG4Z.js.br b/apps/dashboard/build/_app/immutable/chunks/D7A-gG4Z.js.br new file mode 100644 index 0000000000000000000000000000000000000000..009a8a450d6b301f1def078cec6817aec7350d19 GIT binary patch literal 1915 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js b/apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js new file mode 100644 index 0000000..def1896 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js @@ -0,0 +1,2 @@ +var qe=Object.defineProperty;var pe=t=>{throw TypeError(t)};var xe=(t,e,s)=>e in t?qe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var J=(t,e,s)=>xe(t,typeof e!="symbol"?e+"":e,s),ie=(t,e,s)=>e.has(t)||pe("Cannot "+s);var r=(t,e,s)=>(ie(t,e,"read from private field"),s?s.call(t):e.get(t)),_=(t,e,s)=>e.has(t)?pe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),f=(t,e,s,i)=>(ie(t,e,"write to private field"),i?i.call(t,s):e.set(t,s),s),b=(t,e,s)=>(ie(t,e,"access private method"),s);import{aX as Be,g as me,Q as Ce,P as Re,aY as ge,R as z,aL as Se,M as Y,G as k,ai as H,aZ as be,q as He,T as Pe,W as Ve,a_ as ye,$ as M,D as Ae,a$ as ne,_ as ae,a0 as We,b0 as ve,b1 as $e,b2 as Ee,b3 as ze,b4 as je,b5 as U,b6 as ee,b7 as we,b8 as Je,b9 as De,a2 as Ne,aF as Qe,Z as fe,L as te,n as Xe,X as Ze,ba as Q,E as Ge,F as Ke,bb as Ue,bc as et,y as tt,bd as st,ad as rt,be as oe,N as it,I as Fe,V as nt,J as at,ax as ue,K as X,bf as ft,aQ as ot,bg as ut,aI as ct,p as ht,ay as lt,aE as dt,aw as _t,b as pt,ab as P,aa as gt,a4 as bt}from"./wpu9U-D0.js";function yt(t){let e=0,s=Se(0),i;return()=>{Be()&&(me(s),Ce(()=>(e===0&&(i=Re(()=>t(()=>ge(s)))),e+=1,()=>{z(()=>{e-=1,e===0&&(i==null||i(),i=void 0,ge(s))})})))}}var vt=Ge|Ke;function Et(t,e,s,i){new wt(t,e,s,i)}var E,j,S,x,y,A,w,m,F,B,I,V,W,$,O,se,l,Oe,Ie,Le,ce,G,K,he;class wt{constructor(e,s,i,o){_(this,l);J(this,"parent");J(this,"is_pending",!1);J(this,"transform_error");_(this,E);_(this,j,k?Y:null);_(this,S);_(this,x);_(this,y);_(this,A,null);_(this,w,null);_(this,m,null);_(this,F,null);_(this,B,0);_(this,I,0);_(this,V,!1);_(this,W,new Set);_(this,$,new Set);_(this,O,null);_(this,se,yt(()=>(f(this,O,Se(r(this,B))),()=>{f(this,O,null)})));var n;f(this,E,e),f(this,S,s),f(this,x,u=>{var h=H;h.b=this,h.f|=be,i(u)}),this.parent=H.b,this.transform_error=o??((n=this.parent)==null?void 0:n.transform_error)??(u=>u),f(this,y,He(()=>{if(k){const u=r(this,j);Pe();const h=u.data===Ve;if(u.data.startsWith(ye)){const a=JSON.parse(u.data.slice(ye.length));b(this,l,Ie).call(this,a)}else h?b(this,l,Le).call(this):b(this,l,Oe).call(this)}else b(this,l,ce).call(this)},vt)),k&&f(this,E,Y)}defer_effect(e){je(e,r(this,W),r(this,$))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!r(this,S).pending}update_pending_count(e){b(this,l,he).call(this,e),f(this,B,r(this,B)+e),!(!r(this,O)||r(this,V))&&(f(this,V,!0),z(()=>{f(this,V,!1),r(this,O)&&Qe(r(this,O),r(this,B))}))}get_effect_pending(){return r(this,se).call(this),me(r(this,O))}error(e){var s=r(this,S).onerror;let i=r(this,S).failed;if(!s&&!i)throw e;r(this,A)&&(fe(r(this,A)),f(this,A,null)),r(this,w)&&(fe(r(this,w)),f(this,w,null)),r(this,m)&&(fe(r(this,m)),f(this,m,null)),k&&(te(r(this,j)),Xe(),te(Ze()));var o=!1,n=!1;const u=()=>{if(o){et();return}o=!0,n&&Ue(),r(this,m)!==null&&ae(r(this,m),()=>{f(this,m,null)}),b(this,l,K).call(this,()=>{ne.ensure(),b(this,l,ce).call(this)})},h=c=>{try{n=!0,s==null||s(c,u),n=!1}catch(a){Q(a,r(this,y)&&r(this,y).parent)}i&&f(this,m,b(this,l,K).call(this,()=>{ne.ensure();try{return M(()=>{var a=H;a.b=this,a.f|=be,i(r(this,E),()=>c,()=>u)})}catch(a){return Q(a,r(this,y).parent),null}}))};z(()=>{var c;try{c=this.transform_error(e)}catch(a){Q(a,r(this,y)&&r(this,y).parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(h,a=>Q(a,r(this,y)&&r(this,y).parent)):h(c)})}}E=new WeakMap,j=new WeakMap,S=new WeakMap,x=new WeakMap,y=new WeakMap,A=new WeakMap,w=new WeakMap,m=new WeakMap,F=new WeakMap,B=new WeakMap,I=new WeakMap,V=new WeakMap,W=new WeakMap,$=new WeakMap,O=new WeakMap,se=new WeakMap,l=new WeakSet,Oe=function(){try{f(this,A,M(()=>r(this,x).call(this,r(this,E))))}catch(e){this.error(e)}},Ie=function(e){const s=r(this,S).failed;s&&f(this,m,M(()=>{s(r(this,E),()=>e,()=>()=>{})}))},Le=function(){const e=r(this,S).pending;e&&(this.is_pending=!0,f(this,w,M(()=>e(r(this,E)))),z(()=>{var s=f(this,F,document.createDocumentFragment()),i=Ae();s.append(i),f(this,A,b(this,l,K).call(this,()=>(ne.ensure(),M(()=>r(this,x).call(this,i))))),r(this,I)===0&&(r(this,E).before(s),f(this,F,null),ae(r(this,w),()=>{f(this,w,null)}),b(this,l,G).call(this))}))},ce=function(){try{if(this.is_pending=this.has_pending_snippet(),f(this,I,0),f(this,B,0),f(this,A,M(()=>{r(this,x).call(this,r(this,E))})),r(this,I)>0){var e=f(this,F,document.createDocumentFragment());We(r(this,A),e);const s=r(this,S).pending;f(this,w,M(()=>s(r(this,E))))}else b(this,l,G).call(this)}catch(s){this.error(s)}},G=function(){this.is_pending=!1;for(const e of r(this,W))ve(e,$e),Ee(e);for(const e of r(this,$))ve(e,ze),Ee(e);r(this,W).clear(),r(this,$).clear()},K=function(e){var s=H,i=De,o=Ne;U(r(this,y)),ee(r(this,y)),we(r(this,y).ctx);try{return e()}catch(n){return Je(n),null}finally{U(s),ee(i),we(o)}},he=function(e){var s;if(!this.has_pending_snippet()){this.parent&&b(s=this.parent,l,he).call(s,e);return}f(this,I,r(this,I)+e),r(this,I)===0&&(b(this,l,G).call(this),r(this,w)&&ae(r(this,w),()=>{f(this,w,null)}),r(this,F)&&(r(this,E).before(r(this,F)),f(this,F,null)))};const Tt=["touchstart","touchmove"];function mt(t){return Tt.includes(t)}const q=Symbol("events"),Me=new Set,le=new Set;function Rt(t,e,s,i={}){function o(n){if(i.capture||de.call(e,n),!n.cancelBubble)return st(()=>s==null?void 0:s.call(this,n))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?z(()=>{e.addEventListener(t,o,i)}):e.addEventListener(t,o,i),o}function Ot(t,e,s,i,o){var n={capture:i,passive:o},u=Rt(t,e,s,n);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&tt(()=>{e.removeEventListener(t,u,n)})}function It(t,e,s){(e[q]??(e[q]={}))[t]=s}function Lt(t){for(var e=0;e{throw L});throw T}}finally{t[q]=e,delete t.currentTarget,ee(R),U(D)}}}function Mt(t,e){var s=e==null?"":typeof e=="object"?e+"":e;s!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=s,t.nodeValue=s+"")}function St(t,e){return Ye(t,e)}function Yt(t,e){oe(),e.intro=e.intro??!1;const s=e.target,i=k,o=Y;try{for(var n=it(s);n&&(n.nodeType!==Fe||n.data!==nt);)n=at(n);if(!n)throw ue;X(!0),te(n);const u=Ye(t,{...e,anchor:n});return X(!1),u}catch(u){if(u instanceof Error&&u.message.split(` +`).some(h=>h.startsWith("https://svelte.dev/e/")))throw u;return u!==ue&&console.warn("Failed to hydrate: ",u),e.recover===!1&&ft(),oe(),ot(s),X(!1),St(t,e)}finally{X(i),te(o)}}const Z=new Map;function Ye(t,{target:e,anchor:s,props:i={},events:o,context:n,intro:u=!0,transformError:h}){oe();var c=void 0,a=ut(()=>{var R=s??e.appendChild(Ae());Et(R,{pending:()=>{}},g=>{ht({});var d=Ne;if(n&&(d.c=n),o&&(i.$$events=o),k&<(g,null),c=t(g,i)||{},k&&(H.nodes.end=Y,Y===null||Y.nodeType!==Fe||Y.data!==dt))throw _t(),ue;pt()},h);var D=new Set,T=g=>{for(var d=0;d{var N;for(var g of D)for(const v of[e,document]){var d=Z.get(v),p=d.get(g);--p==0?(v.removeEventListener(g,de),d.delete(g),d.size===0&&Z.delete(v)):d.set(g,p)}le.delete(T),R!==s&&((N=R.parentNode)==null||N.removeChild(R))}});return _e.set(c,a),c}let _e=new WeakMap;function kt(t,e){const s=_e.get(t);return s?(_e.delete(t),s(e)):Promise.resolve()}function ke(t,e,s){if(t==null)return e(void 0),s&&s(void 0),P;const i=Re(()=>t.subscribe(e,s));return i.unsubscribe?()=>i.unsubscribe():i}const C=[];function At(t,e){return{subscribe:Dt(t,e).subscribe}}function Dt(t,e=P){let s=null;const i=new Set;function o(h){if(gt(t,h)&&(t=h,s)){const c=!C.length;for(const a of i)a[1](),C.push(a,t);if(c){for(let a=0;a{i.delete(a),i.size===0&&s&&(s(),s=null)}}return{set:o,update:n,subscribe:u}}function qt(t,e,s){const i=!Array.isArray(t),o=i?[t]:t;if(!o.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const n=e.length<2;return At(s,(u,h)=>{let c=!1;const a=[];let R=0,D=P;const T=()=>{if(R)return;D();const d=e(i?a[0]:a,u,h);n?u(d):D=typeof d=="function"?d:P},g=o.map((d,p)=>ke(d,N=>{a[p]=N,R&=~(1<{R|=1<e=s)(),e}export{It as a,qt as b,ke as c,Lt as d,Ot as e,xt as g,Yt as h,St as m,Mt as s,kt as u,Dt as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js.br b/apps/dashboard/build/_app/immutable/chunks/D8mhvFt8.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8b6310a83ded58b13ae5ff0451a663e892a9e63c GIT binary patch literal 3589 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 a=!1;u((r,s=0)=>{a=!0,i(s,r)}),a||i(!1,null)},c)}export{S as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DKve45Wd.js.br b/apps/dashboard/build/_app/immutable/chunks/DKve45Wd.js.br new file mode 100644 index 0000000000000000000000000000000000000000..324107334d0e06fbe04d06b5cca4b52a32c3d37c GIT binary patch literal 279 zcmV+y0qFi4t^pv7lr9g{nP#)9-3{8(99IG70k8|h0k=Zfm>Zw(9Nz(c(sPQ1CAN1w zpAI!?W1nvG4uYPhri^t~q;NRTk80?vZ`?KP@r?y;Fv1TG_{9bOaD#t*;u&*1Ih!)| zXT`MQL)iK;u5EMWS2{W9r4czXmw#(--~WEqOML&L03rIK9nSZS#)35W!%lY7SVa^t zlK$DKZAU#XX^0c&%NgxCzhu3orgESl*!DZNgQT=!5Mw-jlQ-|pOh)e;>q7SxNgoyX$go&2b~s~faLH)!jWNL$V}|dHIleHq z_{^yL%Gv!Oxj8oN-SYY&O+Ne}*OvuTb{u{k)79s#T^FxsN7b4#XltSc1Z;6laV9!D z9PU8m2k9b1MjfLA1c4>3$D2|57ttWmiB4BwMORwmL!_vIa7p@HSD=V!GWL{?xSEYU z#o5SHBb`@ICV)zOyYazkvxQ6ulrfPP9p@{WgUGi~2{ef`<<2^)u!cBeK^fmVbv}T# zROC*D)|tNl*Xs)aLHFl@lHx3H0UUZtS(Fr~sKK*Opgf&4#2K2lu0@Zf=+*c6dkg-a P?(?f3zTmAPuK@r6A*Pw3 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js b/apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js new file mode 100644 index 0000000..a887f81 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js @@ -0,0 +1 @@ +const c=()=>{var e;return typeof window<"u"&&((e=window.matchMedia)==null?void 0:e.call(window,"(prefers-reduced-motion: reduce)").matches)};function f(e,r={}){if(c())return{};const i=r.strength??8;let t=0;function o(a){const n=e.getBoundingClientRect(),m=a.clientX-(n.left+n.width/2),l=a.clientY-(n.top+n.height/2),p=Math.max(-1,Math.min(1,m/(n.width/2)))*i,v=Math.max(-1,Math.min(1,l/(n.height/2)))*i;cancelAnimationFrame(t),t=requestAnimationFrame(()=>{e.style.transform=`translate(${p}px, ${v}px)`})}function s(){cancelAnimationFrame(t),e.style.transform=""}return e.style.transition="transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1)",e.addEventListener("pointermove",o),e.addEventListener("pointerleave",s),{destroy(){e.removeEventListener("pointermove",o),e.removeEventListener("pointerleave",s),cancelAnimationFrame(t)}}}function u(e){if(c())return{};let r=0;function i(o){const s=e.getBoundingClientRect();cancelAnimationFrame(r),r=requestAnimationFrame(()=>{e.style.setProperty("--spot-x",`${o.clientX-s.left}px`),e.style.setProperty("--spot-y",`${o.clientY-s.top}px`),e.style.setProperty("--spot-o","1")})}function t(){e.style.setProperty("--spot-o","0")}return e.addEventListener("pointermove",i),e.addEventListener("pointerleave",t),{destroy(){e.removeEventListener("pointermove",i),e.removeEventListener("pointerleave",t),cancelAnimationFrame(r)}}}export{f as m,u as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js.br b/apps/dashboard/build/_app/immutable/chunks/DPdYG9yN.js.br new file mode 100644 index 0000000000000000000000000000000000000000..7b2a8c1eea2098e2a6629aedaa91098527c7c290 GIT binary patch literal 480 zcmV<60U!PwXaxXd)24ft$>)+(LkLwE)=tfaO3n}H5BdD_=hF9=U<01$C2~e;G<5(E z=)w-!TcE+gD{gQ(JJRK#`VztJ_GB9Ld4+Ca0JBR3WT^G=9Htx z0?hvYUaT|rb2R8kp@cn#=IaY$dtrYZSHKmQD>Z%k1*SVsXMC(r`GSR82>F? zt}Nv0s0lo3PcrRQTQ0sCeBTE(Bj#v#5=bY!hALKfEsD{#jJt>tElUg5Kz;4g;h>a} zBHi`nA2vrlJNk2AN7GguyMsHL13w)%FtFo^7DGFoXu3viwFP!000026P1%uZ__Xoh2QxVmNiW_bG&x239Xn45PM=0;)%W0b8cEo zjvefqt|iKUM{c0q*xHS!T<4s7?D&2$!6zg}F|IyzOC1SJB48Um!F2G3gRpoX=qHJZgWlvZ=4eCynF8Ei>LmmrOHjtw?JSregxn2HExYoILZfHwF`GORh} zLlh+5Ppa0Ntdfd>h^p&(XDenH=fj!0equJ~wJOSl5&Rq%)9Jg310<+MyMVwn?*^|| zAm@OeLhDQG=bxPgkKe%{#CW%F$H$?R_J8nr zpxNA}=+;L@^6Wej)81NB+`=ylk&Wb=w}Oo2`Gp`Od68>Q1xQ_%UzXtUt4#P z9wF9Y2~-4r$m2j~Q{tj4Az=(_#ygM^a`UsXhitp#J-5^MyGv{tJVrG`8Sg`BS@;WO z+7IQ^^N(D_m&`u_ev6@jh-*fRA~gYv6&16iE^J9p8_@e^HQSB&slN4tzMCTDKj8Vc zKm{FBejhU2OyzLPi1Hm<&p=^c0tNmz6!wKs;2tPqh5}Yih}cy`CsK ");function U(v,t){var x;B(t,!0);let A=a(t,"decimals",3,0),_=a(t,"scale",3,1),g=a(t,"prefix",3,""),w=a(t,"suffix",3,""),F=a(t,"duration",3,900),M=a(t,"class",3,""),b=a(t,"group",3,!0),r=C(0),i=0,c=0,o=0,l=!1;const q=typeof window<"u"&&((x=window.matchMedia)==null?void 0:x.call(window,"(prefers-reduced-motion: reduce)").matches);function y(e){return e===1?1:1-Math.pow(2,-10*e)}function p(e){if(q){m(r,e,!0);return}cancelAnimationFrame(i),c=d(r),o=0;function s(f){o||(o=f);const n=Math.min(1,(f-o)/F());m(r,c+(e-c)*y(n)),n<1?i=requestAnimationFrame(s):m(r,e,!0)}i=requestAnimationFrame(s)}E(()=>{const e=t.value;return l||(l=!0),p(e),()=>cancelAnimationFrame(i)});let j=H(()=>(()=>{const s=(d(r)*_()).toFixed(A());if(!b())return s;const[f,n]=s.split("."),h=f.replace(/\B(?=(\d{3})+(?!\d))/g,",");return n!==void 0?`${h}.${n}`:h})());var u=K(),k=D(u);G(u),N(()=>{J(u,1,`tabular-nums ${M()??""}`),I(k,`${g()??""}${d(j)??""}${w()??""}`)}),O(v,u),T()}export{U as A}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DcKTNC6e.js.br b/apps/dashboard/build/_app/immutable/chunks/DcKTNC6e.js.br new file mode 100644 index 0000000000000000000000000000000000000000..62a25568e7181081988a285d7bfc0a317814c120 GIT binary patch literal 655 zcmV;A0&x8s#RNbUA<67wPW$ikO1uN9Q)ob$2FL*}J1+Z=d#8VM_edj&v}n&MngzI~ zb>AZm+=h>W=-J5T+FEn@>*ojrPxzE-LKA)zwzEG8s6IBap^Eb#6GK z8m=jT8w%l(3TROVF_kbO2?vzGA@$*el>SuL?jK=0!>-zRvJPE=m{gz9aD2Gl$_K~w zI(5!w)&05uc@Ar=O9f2($SPGz96Msw$3FkEZn&kB*FO4gqgh^Z_~3T9lqb~ z3}KNh&ut{AAHllkiWGV{Z9$(B%L`e|=nXvT_S)l93pN#6Um!&sLmxHo63vj1wsdAQ z=x~a*Ftqu2-74DP5u{cJont`sMbU~DAh9BBjG>K4?JaMo;BM1Tq(|ar-Imm3P5KA` zd3!3{k#N1_2C>J@YtClSdwyz_{>4@dY4NdPeXFfn()csI0^HdV pLjNM2K}EkmGUKv4hBB#!#b5lQM!JCkDWpe0os7CW_T=Bw{v18^L?QqH literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DcKTNC6e.js.gz b/apps/dashboard/build/_app/immutable/chunks/DcKTNC6e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c23038698344e950b324b4c7d8bd1586cdcfccdc GIT binary patch literal 731 zcmV<10wnz(iwFP!000026LnK-Z`(K!{C>YeCX8Y?UCUB?=)(?c#7*6_y|logIpA

zRG?lj8G1@hZCd^XjjK{i$VfP)zUso<_gFc00vd=->;#2X<^~QN9a~ zhdX3A&Rm&TRh7X7tjS{ImD}+YEcGHB=h6lzT!1B(%0v|+H;i6Vgml%hCK0*xRE)Ij zs9MWRZ9T^r(q^x7*%NZMFX^=K-kyFNMM&ozpX9=rgLctzOI^9zbG-;j^Y;)TDIQV6 zBdT~rIq${eq$-UKZn?dyWt9aRRi@SEm^t?B8Nilz`>+r;S)I#N3FN$Vc|KWJDh;C1 zHcUjGLnk8!K8e(3pk?Y3nGTA|cRLEYJu>V{N%LfkcObFR(mGuRl5-wU;!!*}7j_la z)dpVBAdZeCwvPvDe?Vn$i%kKV1hM^}It+G?h@ zGKCW#NoCMm0OH=wbQAa|qw-&FLR06;0t*?^if5sgbuJPK!^0hIt2XR6Wji0OTJ*O5yEy&@kZ$-XI2?ZjhxE1U`7=0*X>P^B z{throw TypeError(i)};var F=(i,e,s)=>e in i?D(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var w=(i,e,s)=>F(i,typeof e!="symbol"?e+"":e,s),y=(i,e,s)=>e.has(i)||g("Cannot "+s);var t=(i,e,s)=>(y(i,e,"read from private field"),s?s.call(i):e.get(i)),l=(i,e,s)=>e.has(i)?g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,s),M=(i,e,s,a)=>(y(i,e,"write to private field"),a?a.call(i,s):e.set(i,s),s);import{_ as x,aq as q,aw as k,ar as C,J as A,ai as B,N as J,U as N,ay as S,ak as U}from"./CpWkWWOo.js";var h,n,f,u,p,_,v;class E{constructor(e,s=!0){w(this,"anchor");l(this,h,new Map);l(this,n,new Map);l(this,f,new Map);l(this,u,new Set);l(this,p,!0);l(this,_,()=>{var e=x;if(t(this,h).has(e)){var s=t(this,h).get(e),a=t(this,n).get(s);if(a)q(a),t(this,u).delete(s);else{var c=t(this,f).get(s);c&&(t(this,n).set(s,c.effect),t(this,f).delete(s),c.fragment.lastChild.remove(),this.anchor.before(c.fragment),a=c.effect)}for(const[r,o]of t(this,h)){if(t(this,h).delete(r),r===e)break;const d=t(this,f).get(o);d&&(k(d.effect),t(this,f).delete(o))}for(const[r,o]of t(this,n)){if(r===s||t(this,u).has(r))continue;const d=()=>{if(Array.from(t(this,h).values()).includes(r)){var b=document.createDocumentFragment();S(o,b),b.append(A()),t(this,f).set(r,{effect:o,fragment:b})}else k(o);t(this,u).delete(r),t(this,n).delete(r)};t(this,p)||!a?(t(this,u).add(r),C(o,d,!1)):d()}}});l(this,v,e=>{t(this,h).delete(e);const s=Array.from(t(this,h).values());for(const[a,c]of t(this,f))s.includes(a)||(k(c.effect),t(this,f).delete(a))});this.anchor=e,M(this,p,s)}ensure(e,s){var a=x,c=U();if(s&&!t(this,n).has(e)&&!t(this,f).has(e))if(c){var r=document.createDocumentFragment(),o=A();r.append(o),t(this,f).set(e,{effect:B(()=>s(o)),fragment:r})}else t(this,n).set(e,B(()=>s(this.anchor)));if(t(this,h).set(a,e),c){for(const[d,m]of t(this,n))d===e?a.unskip_effect(m):a.skip_effect(m);for(const[d,m]of t(this,f))d===e?a.unskip_effect(m.effect):a.skip_effect(m.effect);a.oncommit(t(this,_)),a.ondiscard(t(this,v))}else J&&(this.anchor=N),t(this,_).call(this)}}h=new WeakMap,n=new WeakMap,f=new WeakMap,u=new WeakMap,p=new WeakMap,_=new WeakMap,v=new WeakMap;export{E as B}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.br b/apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.br deleted file mode 100644 index 4a2afa5feadd751669987b3997c9b809ae19970b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmV-(1C0C|!UzD2!nWn}QNvuS9!!NY%}iZYtuIg7xec|}=z+Sg5S=`Ot!=99SvKi~5k3-pk#H^NZU3E<=Jx%i51zug3Kw_q^M7tl9FYt=9fI@0om~S%Gxoe4oOAs! z={U4`e!z|>_#Ry~>X04L9pkC7*^0inDIN2x0wyOys&lKQVJgHS)mDz~_-~V6vN)7- zBjO7D^Gg%N^aJK98o!KxZDM4qSZN9cG^YZ2iD$S*#34S%mP2z2SXsAZ>5vAK8trjI zX_yiPSx|aOAYy|oAK3v{w{Byzgbk!*t(L)yhL^1b$75e;1|Fth3AU4sN-#9O49RH# z4g=xsH~H88kW%{|yW-d4p5AoTLM}EyL0-X4=}2bh~uDm%@tY{Qd5-6)NXcBnLt06~}yhx#ue2w=VUF^pIYcoP88q@}3@Tp{5= z1C82kxv%K?O?hfLLER({;-Iu?>ZVI2Ta!3o*20Q*ajBTpQz_Dwj-!VO+%GJs`}h(? z7hT7Zbow#|-)=*e3AevFg3(S+5J{C?*>?)YTZA;`jHMWl?2+IAy$8$ETvifAy^zS$ zUEu=IBrxI38iat@>v)=2rbJ=Bia4Wg*OXON@Epv!DK9CHwl7J{z^ssSO)jMJ5hyGX zIUiDyDCt_v99~$ol_D7&D%{bar5^5b;x__HnOrVO-Wa5G`Tj~04U-;-MwGh;=x9eg z3|3kYA*y|_iD-#x#1g29UGgEnrv;QEr3BGC0dQzIEE)181|}F@HmFM^<3eB#wf#u- zF7y26L^v!W_JEDHfxA((5$lYK>>$~NR2mN}(#eFrOBtYUdQ)`psj748(4_qN JCXeJmhX838$ObtSg)yc^ zF>8rbNXm&}>%SM2Ey+%h?rAhn+JjD7fYYyTqw=|T2r(2n{-V!dd^gK zvGq%9UZejuHQ!iktWeN)e{VCPkkLVQ!I9FDnq7CmmUUCHrA5ip$vH}+3-#O#{;O5K z|6Wts@YJ<1RX_M==DN7AW87Pz&~IusMZ}XVcAIKp%6P_K;&>WX;O3}?WJyja*zKN0 zd_`ItAH`oBbTR$7PHei**fQl&VNDg)R;|f%R46X<7|_jJBB?Bef+;7@?1cir@?)ym zn2GW{@=J~!RXhZ&xLUA{Dq}hFOVW|il4F<#x|}C1Lt{@&s|WToPAJd!DP2ez+PgpG zL^>)w5Xg}?AL^zV9qLAR62?KQs@hn;ok!%NH>8(fUyxpdT_M?EukbFIOC%NSSNs;t z9XmCx2hnPphY=?;*RSjYAmq98t1r9Wl7FOH(P16^R|)R zSi$JB$vJFagGRd_bBGd0;;vHBQb4XO050i*2Zo zv$s?g!XL6hCnp1RKV3HBL3;+I9@2X#@L33g7eRoBUkxNVm+U$G<{4_;0bPC%OJ`TAppv|(3VPTn8X}2}X-?d~Q&CkxnO5~q6Vc_%RdY?Qb za=YEgX3)d}NTa>d4G-Bn6;&ZFt))#8hVZEH?m}?_AW>SDP0n46PKrgA8`*R$O3UQ= z`rzIkxDt>)2!jj2MM8DWIv1A$j=KqBS={d1oEq#|o-SHwgXYmH(D7j+><~mBVQs&# zhTU#LGcoQ9H-QDb5(aae`~xt}1+;BD4D%W}+|2Ir;{vOm+4j%pCfBQ**DH*!a? z+liI2uJsc8%q5;`b_0_J%Th6x|7OXJ?a%Gp_f(@k@ro0#Iq~WfZ+_yfkG+)Nx_9iRd!X9% NuivljkGR7K005+?-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/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.br b/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8835f5a3eb8f48c117f41153e7b8fdfb9e1db3fd GIT binary patch literal 623 zcmV-#0+9V1@dN;z1$HdF4H>0Eg+F{eZIZ{>Ue+>YSjx5Pvi+7RxSuVVh+9E!|7H3S zgqA*`{Hh?e(^ooEf7`oCh}LSX4{$ti&T)N>q@{XRYxz!u>0DC-l9~PeDs0`TpMatK zLUjb(zr^^iXXJuZ8J>Pxiqc^i1` z%fNcA&ckF1)U1?^-)}Vf6MwOiWv)Y3R=mz3Wun=)IT%EAR z0@Vg*XdEXKJlha@y+9N_q{bE)Vmw2h?flcD;gr~@+^PeG-o^uc7B6U6B|(X_5foB)&z6)9;yMRy=syBb4=|%MFITqrt=axA{QBgAFN5VHIkX= zpeuBFW5Rsop}>vd<5WT+vCs?Rnr-wq{@Dej=IG-~^ZKNYWmag2z2@6S(B8FmkeWwT z^s08a$cHDB8V9}cI^|T6srs>IermM$9*D@eZa)8Dqn%hAjD0cE7gd6v<{F|GpK%X& JWtmmi(H|00JyHMw literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.gz b/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..4f6661eac281f3e6cfce7a97f89fea8aa3de2b15 GIT binary patch literal 728 zcmV;}0w?_+iwFP!000026LnL;j@vd6z4t35LdARph%yf@Fpkda&!ZKLfybP0UamWqq2`(V(;z-poSkO2D> zNPr9Z_}lyGPBsbZQS8+)iqk7xi(XhhctFyq4=J`TgG`X4KLg{Ht69HZ_tHZ+VYA!J z$o%>rUW(m6YwsDzR(C9^-TxUAm)JmHUhUYBQDdLCwC;WFya!9gS^FNge&pf{M1sG- zU;!l1IfjDZoR5{61VLq^>01aWPk?(5<(PlI{;p5I=oT3DF8ocoh_ASRdPvtN@L(_| zMq5CA=u+$;;Z>R3J%ktx94QxP#iCN7_x|x5oh6%Xl+z=>-M)S~0se%T+@~Ia(FsR6 zuNswEKZycrH@KRCx-bxy3m`6#J)cFa_6Ins)n=J1DUc9s{=;Fzs5Cj#B20RGdr06F z&3N^Y8vvxow_8e!U8|Mlbxf@IJ^Wa?o!V6H;eih`xlwp<$MVHYyP=eV^_s2H z?Pg@5S6>w1ON%4;48+y!J5oLutq&6+eKWvFk8cJ)KHtADlZ96&OahItn0B|Sv=yc< z(&Oh{Y_B5SZY)Th70o8O4k;HwniO;XHMx@uic%5gi9np!>mc(tJP~IuURr2CTdBJa zf_>LGZ&~0X@y|lEtTAIw7_N3hklNb)83Mj{86iMobWWlx-F*EBDaAwu<7#JEVceGs z_WUvEPaX(HvSgXOdwL>uOr&V{Ty~s~oR9ask(TAVfv6^;^Ca8ZA#4|p{akD?IvDV! zz;?A6Crwdy`dTn5i;D|3UZi!o(`cHR2)S6Hv{38bE7-CLB&gXY%J*{qP^+ K#>ctx1ONbLZ)orU literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js b/apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js new file mode 100644 index 0000000..1f1e177 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js @@ -0,0 +1 @@ +import{v as s,w as v,x as o,y as c,z as b,A as m,B as h,C as y}from"./wpu9U-D0.js";function _(e,r,f=!1){if(e.multiple){if(r==null)return;if(!b(r))return m();for(var a of e.options)a.selected=r.includes(i(a));return}for(a of e.options){var t=i(a);if(h(t,r)){a.selected=!0;return}}(!f||r!==void 0)&&(e.selectedIndex=-1)}function q(e){var r=new MutationObserver(()=>{_(e,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),c(()=>{r.disconnect()})}function p(e,r,f=r){var a=new WeakSet,t=!0;s(e,"change",u=>{var l=u?"[selected]":":checked",n;if(e.multiple)n=[].map.call(e.querySelectorAll(l),i);else{var d=e.querySelector(l)??e.querySelector("option:not([disabled])");n=d&&i(d)}f(n),v!==null&&a.add(v)}),o(()=>{var u=r();if(e===document.activeElement){var l=y??v;if(a.has(l))return}if(_(e,u,t),t&&u===void 0){var n=e.querySelector(":checked");n!==null&&(u=i(n),f(u))}e.__value=u,t=!1}),q(e)}function i(e){return"__value"in e?e.__value:e.value}export{p as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js.br b/apps/dashboard/build/_app/immutable/chunks/DrafHjYM.js.br new file mode 100644 index 0000000000000000000000000000000000000000..a9014f78c2fa50b9ebca6a2a1ea48f55818237a3 GIT binary patch literal 507 zcmVt14Gk4~dO$%>Na+O$&EZZ9IMLF2I#Dkb ze-CB%^EX-rd}&l9@c97@)s%}r#`ie~!;YelXe|OY73T*E5QPM4EKTnY7Clbg^rSzIYCQh_dS~D2mB`-`1$8k`y#iU;{j?7 zhSA!R(HNbrNX1B)t;L$b`|Vmhv#V%z*8nJ!w?p!V4~K+qIE-pevm6+DY2If+O*Ux)A|e~lKpNrz)T#SPq$DY`x?l6N|4ky@=gK?%*d-&(Zht`tUA!7Oxg xR(T|c4$!@Jy-%=X z9}?`x#&vDM-#+y5-H(fp3;x>|RTFI;bZ4_$Am&&j@=HAE28g%O1l=2&LMMcc#-O7R zovm~O`4$`=T_&@x$%uD-O6yT_PloD1N;s} z(PwP}x#hZ;vK5;VSv{9=Txnl-)>0h+#}{4pM?>7)tDJiMN%HQ70t;z=55$UkC+#mP zSQJ+i&xp7x)~D$=#j;q|JF4$U6>Ku@g|k+yH@uZSuca|S{63P~-%QfZT^j=inZ}BY zrzy7*uQ*_EwR(M5%qA{v7htWlms>+>g9TPrsIt_caBRRL8}fOp%2INv6bv{b>*jY! z<)Uyf*-t_U)zz^j8@Q~49_W*y6yb5^{c1HNrsO;6!JHOz)D0vfBMZnvSw?YQl1XU) z8|eA9u(Id=APSv2ZXhC#=d}3&dMe62}gRIzH~o* Q+p&7{7wf*Sg5v`K0G-PZjQ{`u literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js b/apps/dashboard/build/_app/immutable/chunks/DzesjbbJ.js similarity index 51% rename from apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js rename to apps/dashboard/build/_app/immutable/chunks/DzesjbbJ.js index d271740..6d7e420 100644 --- a/apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js +++ b/apps/dashboard/build/_app/immutable/chunks/DzesjbbJ.js @@ -1 +1 @@ -import{J as y,b as u,K as _,M as o,N as t,O as g,Q as i,R as l,T as d,U as p,V as m}from"./CpWkWWOo.js";function T(n,r){let s=null,E=t;var a;if(t){s=p;for(var e=m(document.head);e!==null&&(e.nodeType!==g||e.data!==n);)e=i(e);if(e===null)l(!1);else{var f=i(e);e.remove(),d(f)}}t||(a=document.head.appendChild(y()));try{u(()=>r(a),_|o)}finally{E&&(l(!0),d(s))}}export{T as h}; +import{D as y,q as u,H as _,F as o,G as t,I as g,J as i,K as l,L as d,M as p,N as m}from"./wpu9U-D0.js";function F(n,r){let s=null,E=t;var a;if(t){s=p;for(var e=m(document.head);e!==null&&(e.nodeType!==g||e.data!==n);)e=i(e);if(e===null)l(!1);else{var f=i(e);e.remove(),d(f)}}t||(a=document.head.appendChild(y()));try{u(()=>r(a),_|o)}finally{E&&(l(!0),d(s))}}export{F as h}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DzesjbbJ.js.br b/apps/dashboard/build/_app/immutable/chunks/DzesjbbJ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..7c75650f9e588a65e48026e017f5d9227604ecad GIT binary patch literal 260 zcmV+f0sHEdc1lDP zGE!utOi6{BDjhX)>P$3zukRl_vGtjDcN*R{_j;CH%tILHqwIJ)u0ldN=;k9|CcYK0 zp2nLYdf5&doX$sGWNTOdJ-)QEaI7xD!F9h_{W99BfFpT9^l KJpR`|YX1QF4vk#>mgBxA~mEVIy-Zzh;4t3J0ujvXAQ z5GDTa=*qlI69v0WA$oDjH zxci$RnW&8?0u&Y;mXhZgjQ)34ny#Z@?~aYPFajc~oW^MYKz*CQpxDh3i)(`Mew;RS e4IUONPV5m&p`Y`c&mTP&b@2;^iZFL~0RRAo)QK|y literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js b/apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js new file mode 100644 index 0000000..459bed2 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js @@ -0,0 +1 @@ +import{t as b}from"./60_R_Vbt.js";import{G as c}from"./wpu9U-D0.js";function A(i,u={},r,f){for(var a in r){var o=r[a];u[a]!==o&&(r[a]==null?i.style.removeProperty(a):i.style.setProperty(a,o,f))}}function P(i,u,r,f){var a=i.__style;if(c||a!==u){var o=b(u,f);(!c||o!==i.getAttribute("style"))&&(o==null?i.removeAttribute("style"):i.style.cssText=o),i.__style=u}else f&&(Array.isArray(f)?(A(i,r==null?void 0:r[0],f[0]),A(i,r==null?void 0:r[1],f[1],"important")):A(i,r,f));return f}export{P as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js.br b/apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..c593293132dc269dd214a79588c828b0b0cff8ce GIT binary patch literal 273 zcmV+s0q*`A?EwH}$G+(@_I+?9M*ev8x2sC^WT zbmGSM#>Q7R`A`1IRn66hm0@FYQ#V&0LxDwfig}*yk-C!886$tvu$J%i{mU15f#2oK zjM@6YF0NiX(xp4@$L?(`5FG;n=+lYLU65R>bg7U0LoGEdA;A zde5q%BgzbXy8pvSu?PepzkJ5}s`s$KBsfmG7{TM*njXD$^}f7N?xTzV47@0O=L?P) Xg(va?kEONvKfDorOYArC{y*jcMNW+I literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js.gz b/apps/dashboard/build/_app/immutable/chunks/EqHb-9AZ.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..1fda5c799bc45bb4e5c57239b2fe063af1c7a636 GIT binary patch literal 322 zcmV-I0loeoiwFP!000026K#>rO2jY}h4(&1+C@nq#?D4?N*D$Nw}YsgQc7AAiL}jd zlZ-R8eRoOf)P=6{bI#>E+@t%W0XI4%ENW&2rcc@3eO^D;Z;fN0HZAnxcnXg8>i9bP zhu7Q3JUWygTBpr`_E=NT$C(0EWK;(5NdOW^4+zK@?uJ7ts=}9|N;o%JhQpil!FSzG zGwUv$WFUKUk_RwH3GRXg*5jVD%Qhr`m~2XHd_9pzgn^NOl6uL%8D-2`=0(RArX3@#;P8?9j_1xV*%Kx&rf U*xey?XXoPP8(ZVQ-tGYa042{const n=o(e);if(typeof n=="function")return n})}function f(e){t===null&&c(),l(()=>()=>o(e))}function i(e){var n=e.l;return n.u??(n.u={a:[],b:[],m:[]})}export{f as a,l as o}; diff --git a/apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.br b/apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.br deleted file mode 100644 index 62d783214cfa5a333ac42b2c5f97dab1cec0f7e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmV<90381tcmV*6)JFAI7G1izcbULHm9WEobr~IbY9Yb2uRxyG4xZBmRDOR$oHHiwygAC89x}7|af5x#T3IQqa>Rf%5-A7(LY70xfIFGR0J0raj0bbHg3PR+YglIRP{Co zLki+}B;+8+oK74>r#TnuWi}WRv7nHH=$++s9RV#1N>z7s zB_dFcfraIv&;IZ8E3#anJ!DGfUlXFvH0RR9g;C|!) diff --git a/apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js b/apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js new file mode 100644 index 0000000..28f1b46 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js @@ -0,0 +1 @@ +import{q as p,E as t}from"./wpu9U-D0.js";import{B as c}from"./BWk3o_TN.js";function E(r,s,...a){var e=new c(r);p(()=>{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{E as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js.br b/apps/dashboard/build/_app/immutable/chunks/LDOJP_6N.js.br new file mode 100644 index 0000000000000000000000000000000000000000..23ccb63a51389ba254e26d5bc8ad091b8d2837a4 GIT binary patch literal 178 zcmV;j08RfJxd4Ey3T$I|WRD%GDa%HqFU7b|@j_eNmMZw}8M72FR5d+Ws*Ocs!Y6Yp^b&_**vUH`KbJ^{0AJdY^wDWRhItM~76@kh Zpfs^Slm4y&YobqL_XADB%(l7!006CvPR0NL literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js b/apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js deleted file mode 100644 index bf47818..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js +++ /dev/null @@ -1 +0,0 @@ -import{d as i,w as S}from"./BeMFXnHE.js";const b=200;function H(){const{subscribe:t,set:o,update:e}=S({connected:!1,events:[],lastHeartbeat:null,error:null});let n=null,a=null,d=0;function m(s){const c=s||(window.location.port==="5173"?`ws://${window.location.hostname}:3927/ws`:`ws://${window.location.host}/ws`);if((n==null?void 0:n.readyState)!==WebSocket.OPEN)try{n=new WebSocket(c),n.onopen=()=>{d=0,e(r=>({...r,connected:!0,error:null}))},n.onmessage=r=>{try{const l=JSON.parse(r.data);e(f=>{if(l.type==="Heartbeat")return{...f,lastHeartbeat:l};const $=[l,...f.events].slice(0,b);return{...f,events:$}})}catch(l){console.warn("[vestige] Failed to parse WebSocket message:",l)}},n.onclose=()=>{e(r=>({...r,connected:!1})),p(c)},n.onerror=()=>{e(r=>({...r,error:"WebSocket connection failed"}))}}catch(r){e(l=>({...l,error:String(r)}))}}function p(s){a&&clearTimeout(a);const c=Math.min(1e3*2**d,3e4);d++,a=setTimeout(()=>m(s),c)}function v(){a&&clearTimeout(a),n==null||n.close(),n=null,o({connected:!1,events:[],lastHeartbeat:null,error:null})}function h(){e(s=>({...s,events:[]}))}function w(s){e(c=>{const r=[s,...c.events].slice(0,b);return{...c,events:r}})}return{subscribe:t,connect:m,disconnect:v,clearEvents:h,injectEvent:w}}const u=H(),g=i(u,t=>t.connected),k=i(u,t=>t.events);i(u,t=>t.lastHeartbeat);const M=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.memory_count)??0}),E=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.avg_retention)??0}),T=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.suppressed_count)??0}),W=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.uptime_secs)??0});function _(t){if(!Number.isFinite(t)||t<0)return"—";const o=Math.floor(t/86400),e=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),a=Math.floor(t%60);return o>0?e>0?`${o}d ${e}h`:`${o}d`:e>0?n>0?`${e}h ${n}m`:`${e}h`:n>0?a>0?`${n}m ${a}s`:`${n}m`:`${a}s`}export{E as a,k as e,_ as f,g as i,M as m,T as s,W as u,u as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.br b/apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.br deleted file mode 100644 index 04a9af2449a93e253120fe0c8149b372b3657ba9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmV-31I+vz3J3rkhq2>jDdbNMjjqj9{rB@ylm$3Anoc%VbdFcnq$Sv!%89hq9>oHr z>=c(BaRURmSY_5{Q)<_- z^TgvL?A#9S^ zf^&%e$se&sIlKo8fzh~kI)a4?cr=dN0g0RxLBYF?e3M+H2KsL# zf6L{@CSU=r-{#pIPl%ao!Os~zWzeK)RA&NCgJDLR$ zhMFl?=^O%e7OnzFh$dvIPfH2*Hsx z$F?>zl94p_hOwXzu}`>9QZzqyoVI&W$kma~kG^xhb0o=Pt&OX)h}%e#Z4gtxFuLf` z!EbPV`KP*?(9gD)3azY*=IlI<(?zL-lUhYr2v@bCvgO=_0r=s2Nx+;>vwj+*xJYBd#*ls z;8ZRUQmoEuywNg?;zUscJbRux?f{=Kb_esR7Ej>lr#~h)*qP@_F$LRbZ$JVQMYYmv zPz+%1C5=G!+r0u z7u<;z%9}>%9O#xCg?jfJuud-FA-d!;hb(eBs?$A?6ScJ^J(6SJlq+&=p<(JjSUU3< zlQj}8KQ(3l3}~3_9kALH!dNZpgnEJEHhY6BKzSS7&FIt_sg}s#+HpUW>oAo3-8+#3 zH@C6?T{^^Z+Rf=TcPm;*h0b7jdVYGEks*A*Y4-j-;mm^TLPE-6z=^a=B#w<7-7|s7(?Q$d<8-e$ zVy0`{br(==xQR4@wg!ZNA@k_V0Swi.map(i=>d[i]); +var x=Object.defineProperty;var C=(m,t,e)=>t in m?x(m,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):m[t]=e;var i=(m,t,e)=>C(m,typeof t!="symbol"?t+"":t,e);import{_ as d}from"./Dp1pzeXC.js";import{V as p,M as w,a as T}from"./C-SOZ1Oi.js";const f=new p(0,0,0),R=30,l=44;function S(){return typeof navigator<"u"&&"gpu"in navigator}class V{constructor(t){i(this,"container");i(this,"deps");i(this,"renderer");i(this,"scene");i(this,"camera");i(this,"storm");i(this,"post",null);i(this,"booted",!1);i(this,"target",new p(0,0,0));i(this,"flythrough",0);i(this,"prevCamPos",new p);i(this,"camVel",new p);this.container=t}get cameraRef(){return this.camera}async boot(){if(this.booted)return;if(!S())throw new Error("WebGPU not supported");const t=await d(()=>import("./CfobEeQC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]),import.meta.url),e=await d(()=>import("./BZQzXWp7.js"),__vite__mapDeps([25,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]),import.meta.url),s=await d(()=>import("./CLrXVRi2.js"),__vite__mapDeps([26,0,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]),import.meta.url),{SemanticComputeStorm:a}=await d(async()=>{const{SemanticComputeStorm:n}=await import("./C8kRUgax.js");return{SemanticComputeStorm:n}},__vite__mapDeps([27,0,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]),import.meta.url);if(this.deps={WebGPURenderer:t.WebGPURenderer,PostProcessing:t.PostProcessing,StormCtor:a,tsl:e,bloomMod:s},!t.WebGPURenderer||!t.Scene||!t.PerspectiveCamera||!t.Color)throw new Error("[cinema] three/webgpu is missing expected exports");const h=Math.max(1,this.container.clientWidth),c=Math.max(1,this.container.clientHeight);this.scene=new t.Scene,this.scene.background=new t.Color(131594),this.camera=new t.PerspectiveCamera(60,h/c,.1,2e3),this.camera.position.set(0,18,60);const o=new this.deps.WebGPURenderer({antialias:!0,alpha:!1});o.setPixelRatio(Math.min(window.devicePixelRatio,2)),o.setSize(h,c),await o.init(),this.container.appendChild(o.domElement),this.renderer=o,this.storm=new this.deps.StormCtor(o,this.scene,{});try{const{pass:n,mrt:b,output:g,emissive:_}=this.deps.tsl,r=n(this.scene,this.camera);if(typeof(r==null?void 0:r.setMRT)!="function"||typeof(r==null?void 0:r.getTextureNode)!="function")throw new Error("three/tsl pass() API mismatch — setMRT/getTextureNode missing");r.setMRT(b({output:g,emissive:_}));const M=r.getTextureNode("output"),P=r.getTextureNode("emissive"),v=this.deps.bloomMod.bloom(P,.6,.65,.35),u=new this.deps.PostProcessing(o);u.outputNode=M.add(v),this.post=u}catch(n){console.warn("[cinema] selective bloom unavailable, rendering without MRT:",n),this.post=null}this.booted=!0}transitionTo(t,e,s="II",a=99){this.booted&&this.storm.transitionTo(t,f,s,a)}dreamBeat(){this.booted&&this.storm.dreamBeat()}setFlythrough(t){this.flythrough=w.clamp(t,0,1),this.booted&&this.storm.setStreak(t)}setStreak(t){this.booted&&this.storm.setStreak(t)}setCameraVel(t){this.booted&&this.storm.setCameraVel(t)}async render(t){if(!this.booted)return;this.camVel.copy(this.camera.position).sub(this.prevCamPos).divideScalar(Math.max(t,.001)),this.prevCamPos.copy(this.camera.position);const e=w.lerp(R,6,this.flythrough),s=this.camera.position.length();if(sl||!Number.isFinite(s)){const n=Math.min(l,Math.max(e,s||l));s>.001?this.camera.position.setLength(n):this.camera.position.set(0,12,n)}this.camera.lookAt(f);const a=this.camVel.clone().applyMatrix3(new T().setFromMatrix4(this.camera.matrixWorldInverse)).negate();this.storm.setCameraVel(a);const h=this.camera.position.length(),c=this.camera.fov*Math.PI/180,o=Math.tan(c/2)*h*.82;this.storm.setContainRadius(o),await this.storm.update(t),this.post?await this.post.renderAsync():await this.renderer.renderAsync(this.scene,this.camera)}resize(){if(!this.booted)return;const t=Math.max(1,this.container.clientWidth),e=Math.max(1,this.container.clientHeight);this.camera.aspect=t/e,this.camera.updateProjectionMatrix(),this.renderer.setSize(t,e)}dispose(){var t,e,s,a,h;this.booted&&((t=this.storm)==null||t.dispose(),(s=(e=this.renderer)==null?void 0:e.dispose)==null||s.call(e),(h=(a=this.renderer)==null?void 0:a.domElement)!=null&&h.parentNode&&this.renderer.domElement.parentNode.removeChild(this.renderer.domElement),this.booted=!1)}}export{V as CinemaSandbox,S as isWebGPUSupported}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Ma4NfFrG.js.br b/apps/dashboard/build/_app/immutable/chunks/Ma4NfFrG.js.br new file mode 100644 index 0000000000000000000000000000000000000000..d7d785293764f502916d14daf33e5014100f4b33 GIT binary patch literal 1872 zcmV-W2e0@WWD^k;q#ytt2RWIp`60WMJ484A-g&4Ar^upgdjB@9UGo%aa!aV zDAG%D;8J&d&g6es1Ayn|z5w7bIa`bKO$JYpEfzz)3;|jG|MyprKO4I=m#3+{$W3H> zYhqRrF4G>KZVbkEvST-1WT<)%-s0I_{_9*=!xk1|afkKOxpNi6=Ypc!bA!>|kta|k z1_lEKXie`1`{GSuUhf&qWA8gBuxE(z=^7ZtJ}SO%bY1Xp(27ov*SZ@<#aTVgL3m>$$JFy`>kgBR@@>UHdENcwdI{G#p2a_o>YVOWeP~=;hx|`^>H} zqid&CYzVWG+^(osAGyoxeMLlm=xuNZ@cgjzOY8JPQ}-m?-~#E^kc!9T-6&tI%&(6XWoCyQO?x?Ryc0- zif=k^zSR$Yi@pYhgr!p8?Z-VZN3&R%-Qj3_v~r4a5PLU4{nRvq;^grzMuu}+4YuaD z_j1TagbunZ1S@qbr zXmpZdFj>fvP@sl7N>pf|i5B66h#(r#A4u_iQ5!^^J&psCBuD3I_w|2wBRTIp>xkmM z-n(_+ywhAgy_Vpj`fgf5`!$8PHLj!;=>!r?tmeT_ZWOuFF;PtS=P7{oO0NIKv8rxq z9pE6$6Dd~}kE=9l4Q(1#SQ&kIAB|dvvhf%Gs%dN-X&xG(&5%-fn))Ues>7_CXJZ^6 z8vjzqIHtKb;uFVGcHz1upF1BVxUXYFtX!UDvpXCsKkoz1!IGb6&rhB1ZEzP@ z0~YFnzuXv7=a>{!204hAi0&+7N0F7X)FkAJvX&awO}V-e7Lgm50{KO_l4VE`-RY1@ zd<9JfTOEHgDtwWyWs$gK_oGeiB@Si$~=LGSB(pFwgaJ|2F#k2Ov%p$cR%+ zvB>Zm8z|*Pgz`KOjctCIh2uIQU;Y>6bw_N3LT%t^y8^Wby-yUj**(*7;ZGS-6u?Cf zTJ+TE=r1>cZyVnL1`AUOk<}Tu;OT@1P8`H$oc>iI+K=p<3SdhhM>*;2y;RSn&P~@g zovw;(*^9qXP3K#d`RYDnx4dCj`zt#mViG{BUb)^MGbAacI;3AX_Gm=|`DiW7m~@g) z^g-FU(8ZSK%9A*e<+rc(#tl?1Cq*@uJt(Xo9j9nq$+}D+D+yL(*X&d5;C>*Tg}~pS zBv`(;bXcHP3;}W@Ioh`%aT|d0L!xNxn`gBl+@Byb2uJ3FBDDJQA;Pe8`}SCJNZ;?e zJLaiwIQ8@L#bRIMcIIMnP`#)Q)utozbUhPEh6Jpw6uHzIIKRp(m;iKelP>hyIP9~I KCZ-W=EbTQ>G^#NG literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Ma4NfFrG.js.gz b/apps/dashboard/build/_app/immutable/chunks/Ma4NfFrG.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6441d507bc9e654a753d59f6ab39985a71a65b59 GIT binary patch literal 2050 zcmV+d2>tgTiwFP!000026SY|Ha@#l#|GrNl>qCa@F^uK>w^!}7PP0j`X1+pWDCw7nkmIhjQ>1K6U9g?Gj6GUw*vvKJt=&^PN2$^0W6PeRY=| zpBx|FmGmUdj<2^*nk9X5ltklGb5zm)9K+uJZCKg6eb|-vS076Hpn2cFzZsa4e*4GS zVEg!WWxp%#zK5;mxYB?8{Y`W4FstaP-oNf2Z%ph{+qm*avEkXb z-!Cft_bi+YP7ka1sh56-&s9E74qtDNe%mYU(H*8W7`<~INI}ijH+c6s>e4_jPfG^x z&Z5!dru2!DX(%Uxc3XGbhrK9VY1|FZE~5A6l|Rw>=v0{DrUlQVZ>IA0=-tq(bl=>4 z`u_Pgt$gpkSD$bCyj9Uh5B=*An_BuS#@K(!X~I&({g>ev{uOtA88hWf{f~oh5EvT5 zkPGN3nSwHp9s929ql6d&*neppE}Z1mG-u2}WCve6TrRmO%g`4vaZ=PIP13}q@9#EA?C4fPfkuFq`|jfRQSx(W%tNB_fOC6>lJ=fzTxlZ^biAjlfFQ60v$a zj2}&;WHyRi(ySR*Fz&LXC-qWs&9NJZE4F3QDrDa*Mqr%6`92J5$<5_*{(|X85jfUa zglBx18>WTtxDfB~A!=MAjIDDM$DZ|8DXEZq3xnT!*N%|J(OGJ10zwxruiN-+!nkol zglr?^C4)8q5R(nOL|>Z3BQ3H^_Q*atAcy3L922ieJdb!S;_VV|k9hmUJ0RX6@s5ah zOj=FS@<^*iTDzpR_Z5@kESi8}G*dAq@Qf?tt2Cd1M_ZXb^J{=9Y&h!X)@p!872a$SmO|$I2YpmqC#gn+{m; zFj6uT;ZhgfKZRLV0TT0rc!e|H>d`Kn)dz=nq|1M zFj!vl#ucEMEkPD@rtQdNaT>99!&~5vw8naT3UQwqE>V#SF3^OFP)=wFV;;atfV40s zxzZ*74k#i4CPf=a$^|zFZ|0DtDTuHe@i;`1hBA2@LjuAq1Macu-s6&#Ya zY?IjncZ_;mHfhSVZVQqq(;g6+nKU!)5rMo=#?ZcB_$z}($3*!8)r{2=UGz&nkdg9z zJLX=EB@dluTiM7j`d7H&yX6>n=kw=;M_{gCYBB{MWC&|YKh}Ct;zq}g4FzH6b?@BP zdBRK(Isf_Bzn$Xjopq~aD_F!?dWQyR_EZLNSuGd-rf&SN&6>n58*OkF;l3*ZbN9Z>EZHfEBT+8Up52y6B>g`QJ)-; zjcnWPXc2)Ib%9vQht~!T%TSrWmiSl-K-eO5{CL5P;?rGZd-e)p zYw}ddq+su@B{0c(w^GI7xfp}efH4&?Vg^t-C4Vdqwwla8%_s@h-Vf#YMV_wS`Hpwg zB(lh(VFCp^E&L*SL62IShZe)9&qAJQB+Cg^6Ux%idTVM(@Tw+c>E&d4UF?GG+S_tu ztw}sHN)`&V9hA>@LizFV7q=Do-?o)y5?Q`v_-1F#xn&l5O4`qJE=6(KXk#*0!`^-^ zFG8+Usck^^J39wQ!bsFv0|g415lxu_kq?|Dj8##t#A`xSK_bUcY%kBruYs`N@bF?$Y@@}047&NO gx@008$SJwBEUt_F?6UldTy%c{var r=d(()=>n(e,t==null?void 0:t())||{});if(t&&(r!=null&&r.update)){var a=!1,i={};l(()=>{var s=t();u(s),a&&p(i,s)&&(i=s,r.update(s))}),a=!0}if(r!=null&&r.destroy)return()=>r.destroy()})}const y=()=>{var e;return typeof window<"u"&&((e=window.matchMedia)==null?void 0:e.call(window,"(prefers-reduced-motion: reduce)").matches)};function x(e,n={}){const{y:t=16,delay:r=0,once:a=!0,threshold:i=.12}=n;if(y())return e.classList.add("reveal-in"),{};e.classList.add("reveal"),e.style.setProperty("--reveal-y",`${t}px`),r&&e.style.setProperty("--reveal-delay",`${r}ms`);const s=new IntersectionObserver(o=>{for(const c of o)c.isIntersecting?(e.classList.add("reveal-in"),a&&s.unobserve(e)):a||e.classList.remove("reveal-in")},{threshold:i,rootMargin:"0px 0px -8% 0px"});return s.observe(e),{destroy(){s.disconnect()}}}export{m as a,x as r}; diff --git a/apps/dashboard/build/_app/immutable/chunks/P1-U_Xsj.js.br b/apps/dashboard/build/_app/immutable/chunks/P1-U_Xsj.js.br new file mode 100644 index 0000000000000000000000000000000000000000..6cee03974deaf6c0b00dcb04f7a1e9703c5b06f9 GIT binary patch literal 482 zcmV<80UiDungalg(;YMOH)^Y@{(UY*Xay3W)UoX{Io|g8BE)jW7Ue9JMN~Ea=Nj&P zz|lYlfSnhebUHdbOge6_MjOc4W+VDE>QfBW&7JlMt5HTAtQQl-^z>Vhj{XuGiXSUC z>>wHk75&kM$Ma$M?mdN-*jB;aEhO4e!P)~LkE@iUlB>2G;Xer%z;*yZiq0KiNrFpe$wDHqAc%@I^Q6mO z1?}Y$VuFy%*7LxoXtMUGxw1wjxeR^Zq=w+cj~%RY0EvxG4mkN>l>_!yNOQMAkw(cv zmUmk`NF)yyt1)#Uv?y*W39603rN~vWwsELlo5If@^s7FJ%uj?Sq3Lo1l|@bhlEG%l z;rT^*XXx}55c^`L07PPL`O2~Dz`g|q_G__7Ra+W-b4ah3h)62aP8YV`%lM0{rRjYw zdbmuHvU40{^GPl=>sF-J_^X6>>73ny_6Ry1*^vx;9@l=Kf!NK=?0d7vSy&3kvb*^N zx=3OsEn(P&xC4+7oB03FMmfl6nN+HV6)2EU>A)Hq`*gUNbHIN+TzjoXg)s?=yi`%v YRwZ;xi4V242EYnSBGOQl9l54|rn&k2h=CK_i+&yZUlA+?Nwyh(fIiI;jQEJGfpv}4!Z?w!$OQ$+@FI;9M? zX<4L{`K#reQZL3qtB3%LhLTrXZe+@JcNPvZGN?xufGbJ|W_SQfnUR4%x3d6{fh&2n z$)>%O*BGLA6L^fHx3lKU9)k?IaW+IU$(P%(Ua2Hb1G<(RjMeV&wHOOZ8AG|&qF1qb zyhCjiy!MKsQC-JY8ZX%3u|*$Bk9urSm%W=4tjJnJ0jm@S$me{IbG|ZVNXz@uR7JVH z<{CRSRbFnmvkg|WT^=7jhDX=w%1E*Ol%<_Ro)|n?CMcRth490KD3sQ$@VH0SmBtpp zQ?CDWUI0fC;?$uC81KCs(8q}tW%<-U6@2$T#XKB$z&)jJvzMnY9X|JA2lX0!kQNW* zyN&1rF5Z9s3F!CenUgoEb)K!nhPakEXoLx8wtcu|Z`xCo1~FQ{const t=n(e);if(typeof t=="function")return t})}function p(e){o===null&&a(),s(()=>()=>n(e))}function d(e){var t=e.l;return t.u??(t.u={a:[],b:[],m:[]})}const b=Object.freeze(Object.defineProperty({__proto__:null,flushSync:c,hydrate:f,mount:m,onDestroy:p,onMount:s,settled:r,tick:i,unmount:_,untrack:n},Symbol.toStringTag,{value:"Module"}));export{p as a,s as o,b as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/TZu9D97Z.js.br b/apps/dashboard/build/_app/immutable/chunks/TZu9D97Z.js.br new file mode 100644 index 0000000000000000000000000000000000000000..86c1102b256629d37e03e8c34f09964721e7d754 GIT binary patch literal 367 zcmV-#0g(P1eF6aFQm1>C$yG_Z`{0zy0p1EUkxX((WTO8$+i?4+1Dx7*9d;Lmg`w`H z(KMICCStwp1x~-ji$+^+VhM03J*q*38N5kULBjhS(lCZsZl1eK{Y8UeVX~+1{%$n5 zB*;D|oW>9&WSPo#$L*%_lpoS5`$)(KHUd9Vys)?U3nRy&UMD#hDIWwpAM)W{Q?FlP zNYj`BZXW3xNJ>4Q&++{G;lafOvWEvf5I3vW%K&RKkPx`X2^AQV`J(Z)N>VGGE6mA+ z`A@d#e2z}{_@7^5V5GZa~J`mB^seK=J??53QC;Gv*Kf>uVJ z8Pw#`^A;xox(#Uzq&w3yWa=P+Em63xsp`OdE7s)@)0caM24XfviB4kC5n}Ta6JTN& N5{NmT<+}N>vwMU^w2S}% literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/TZu9D97Z.js.gz b/apps/dashboard/build/_app/immutable/chunks/TZu9D97Z.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..86a9647024adfeaa45c92aeb9496e46219fcb694 GIT binary patch literal 430 zcmV;f0a5-RiwFP!000026J?UYZW|#GhVOlf?H(+UD6V=+v9`WAxkZWO_7p`c%+6*> zSO&phce~nmudw4PQV;L}`uS!KW5SW$-8OhwtT0K3BL)k|4^t|xp($=AQIJ|-(*++msz}{~i z^wz^;!~l^dHn(kvNZ7Wj^dfqf)3BesQAP|?7d3(E#faIH8U^|tB#JnxAkg2RUz12c zPyP-{*M< YWel`Pm+?9jq-FEzFK8A)^nL;W0M)6}SpWb4 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js b/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js deleted file mode 100644 index f9c6462..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js +++ /dev/null @@ -1 +0,0 @@ -import{k as L,l as D,P as T,g as P,c as B,h as b,m as Y,o as h,D as x,q as M,v as N,w as U,x as q,y as w,z,A as $,B as y,S as C,L as G}from"./CpWkWWOo.js";import{c as Z}from"./C6HuKgyx.js";function H(r,a,t,s){var o;var f=!U||(t&q)!==0,v=(t&M)!==0,E=(t&y)!==0,n=s,S=!0,g=()=>(S&&(S=!1,n=E?N(s):s),n),u;if(v){var O=C in r||G in r;u=((o=L(r,a))==null?void 0:o.set)??(O&&a in r?e=>r[a]=e:void 0)}var _,I=!1;v?[_,I]=Z(()=>r[a]):_=r[a],_===void 0&&s!==void 0&&(_=g(),u&&(f&&D(),u(_)));var i;if(f?i=()=>{var e=r[a];return e===void 0?g():(S=!0,e)}:i=()=>{var e=r[a];return e!==void 0&&(n=void 0),e===void 0?n:e},f&&(t&T)===0)return i;if(u){var R=r.$$legacy;return(function(e,l){return arguments.length>0?((!f||!l||R||I)&&u(l?i():e),e):i()})}var c=!1,d=((t&w)!==0?z:$)(()=>(c=!1,i()));v&&P(d);var m=h;return(function(e,l){if(arguments.length>0){const A=l?P(d):f&&v?B(e):e;return b(d,A),c=!0,n!==void 0&&(n=A),e}return Y&&c||(m.f&x)!==0?d.v:P(d)})}export{H as p}; diff --git a/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.br b/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.br deleted file mode 100644 index e9fafc8605294b59e6662e68a676fd2e75b4a8ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vVFxdR{^g-w|&{v}>s)>?@qNygnp@aZoN(Z2zfM|vsfidPd8eg$rhw)!uf z+g&z5bDvFSTd5xiwU^71&vP!{8_2%U0sx~fA}ONuXnv6-ncy?GhD1gneH?A`b~XJ4 z2^@C*>Eq*%ImU@TYwS_5=7%mSzL>aRL#2-d7YiaRiE$u-OPYzv=p4Z^-GY=Idd!`p z3Ht5saO^#w^wVi&)82L~I^t)$DsivIVI}>RgXu9k*R zL>9>fF(6ZeE&J>&R8b7n=iCK>odp@ogI=bu@`WYBm0vO%q-Eva;MVY}Y1HjlLj%~J zLrF?@8fm>~J*$>|@V7wSf>n@@!Kp?!U++JU-b&4>>37eIi3NF$`Xg!Uid1r3MWi~9>iX@MQa|9IpncsYwu7lr;J!e=7K0V3Z z{)_E@F;S2(jpj)U1*&+`$!pusg3RA=QL&b6XH}-`n)0@bCs(;3>-=*zgJ~7f6n;rG zUj2RCKQlTu+RMdaL89&^s&MQ0=AVxEkvqZSFW(V3+sR9i-+uw-fkgs0`9DMjEju;0 O?~Kro$6sXx=UM^=I0Cc) diff --git a/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.gz b/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.gz deleted file mode 100644 index 60f21a11ad2e61abf554a6aa97630a52c05b216f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yj$iwFP!000026LphYPuoBch2Q%tY!t0#q){4P`e19Y!bO0}O$3Ahp~yIE z$HiHLZzRP2?`YP6Qnh{YcO=i8Jw7X^i|4$k)=y4YIwzC~_US@!MTy{oBEc@r1&_24 z+)^%>)4pIyFM?BQ1ZVUrxTdAxg;s)BdZV$30qqJ_G!g94iQuq{i+r&){J!^m^K^4_ zo)3SOTYlO{v&Y|kPW(8kefgaLU6CQ8AC-EA^_5S&4YUWsIoYCnyk=}$Q4Jts9z(YA+{ ze$4aTb(B$dN8F~4z)D;E+oGTUD=|J;NaUVXg_WBv@#B@r>>~8x_a6hHv z2fhP|BXj6YSx8f6?l+Vw-QOCfoB&d-6vRsHi-aj6+8$EL9S5oXI-6cwH^0zTT^L7y zng$7=2eu21o%jEZuSc7WMEYW6Jl#>O6jbU8nR$epRU4-6OT6S_I2dF)38U4<8a}QR zG-bHnEQLi5n8$2N7&xb{iRW{vYAzj}@O+@stDgT3E?w0u zoJ6oeyp%b4WTY>h|1!fIjEZFS*}e@oV*&+Dv4}8?ciwI{i-b;o$K27T+E;sOg_g#4 z=c8lXZtC9(=gXt2@+soC0!T0Is^w7U*yjvW3W8H8m_Io0oS`tfD+6e?c#fE_Uf0>= zZp^Z$071Y@nA?t#F+OWKfTp#@ul(dYj;F0wLH!h_XL}GQBt!i5LrT-r<05z=h%CU5 jY5tJM@39m$!Y+9b diff --git a/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.gz b/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.gz deleted file mode 100644 index 03ebef4b2ea9e62f268f1ffa03cb21b93c6ad23b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0p{const n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(n)return a.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(o)return a.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return ct(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return ct(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const h=de.exec(c),[,u,w,f,d]=h;return a.push({name:f,matcher:d,optional:!!u,rest:!!w,chained:w?l===1&&s[0]==="":!1}),w?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return ct(c)}).join("")}).join("")}/?$`),params:a}}function ge(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function me(t){return t.slice(1).split("/").filter(ge)}function _e(t,a,e){const r={},n=t.slice(1),o=n.filter(i=>i!==void 0);let s=0;for(let i=0;ih).join("/"),s=0),l===void 0)if(c.rest)l="";else continue;if(!c.matcher||e[c.matcher](l)){r[c.name]=l;const h=a[i+1],u=n[i+1];h&&!h.rest&&h.optional&&u&&c.chained&&(s=0),!h&&!u&&Object.keys(r).length===o.length&&(s=0);continue}if(c.optional&&c.chained){s++;continue}return}if(!s)return r}function ct(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function we({nodes:t,server_loads:a,dictionary:e,matchers:r}){const n=new Set(a);return Object.entries(e).map(([i,[c,l,h]])=>{const{pattern:u,params:w}=pe(i),f={id:i,exec:d=>{const _=u.exec(d);if(_)return _e(_,w,r)},errors:[1,...h||[]].map(d=>t[d]),layouts:[0,...l||[]].map(s),leaf:o(c)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function o(i){const c=i<0;return c&&(i=~i),[c,t[i]]}function s(i){return i===void 0?i:[n.has(i),t[i]]}}function Ft(t,a=JSON.parse){try{return a(sessionStorage[t])}catch{}}function It(t,a,e=JSON.stringify){const r=e(a);try{sessionStorage[t]=r}catch{}}function ve(t){return t.filter(a=>a!=null)}function Et(t){return t instanceof wt||t instanceof yt?t.status:500}function ye(t){return t instanceof yt?t.text:"Internal Error"}const{onMount:Ee}=ae,be=new Set(["icon","shortcut icon","apple-touch-icon"]),I=Ft(Kt)??{},B=Ft(qt)??{},P={url:Pt({}),page:Pt({}),navigating:he(null),updated:ne()};function bt(t){I[t]=C()}function ke(t,a){let e=t+1;for(;I[e];)delete I[e],e+=1;for(e=a+1;B[e];)delete B[e],e+=1}function V(t,a=!1){return a?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function Mt(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(L||"/");t&&await t.update()}}function Tt(){}let kt,ht,Q,U,dt,b;const Z=[],tt=[];let v=null;function pt(){var t;(t=v==null?void 0:v.fork)==null||t.then(a=>a==null?void 0:a.discard()),v=null}const G=new Map,Bt=new Set,Vt=new Set,F=new Set;let m={branch:[],error:null,url:null},Ht=!1,et=!1,Ot=!0,H=!1,K=!1,Yt=!1,St=!1,zt,E,R,O;const at=new Set,Ct=new Map;async function He(t,a,e){var o,s,i,c,l;(o=globalThis.__sveltekit_1wncwk)!=null&&o.data&&globalThis.__sveltekit_1wncwk.data,document.URL!==location.href&&(location.href=location.href),b=t,await((i=(s=t.hooks).init)==null?void 0:i.call(s)),kt=we(t),U=document.documentElement,dt=a,ht=t.nodes[0],Q=t.nodes[1],ht(),Q(),E=(c=history.state)==null?void 0:c[$],R=(l=history.state)==null?void 0:l[M],E||(E=R=Date.now(),history.replaceState({...history.state,[$]:E,[M]:R},""));const r=I[E];function n(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}e?(n(),await $e(dt,e)):(await D({type:"enter",url:mt(b.hash?Ke(new URL(location.href)):location.href),replace_state:!0}),n()),Ne()}function Se(){Z.length=0,St=!1}function Wt(t){tt.some(a=>a==null?void 0:a.snapshot)&&(B[t]=tt.map(a=>{var e;return(e=a==null?void 0:a.snapshot)==null?void 0:e.capture()}))}function Gt(t){var a;(a=B[t])==null||a.forEach((e,r)=>{var n,o;(o=(n=tt[r])==null?void 0:n.snapshot)==null||o.restore(e)})}function jt(){bt(E),It(Kt,I),Wt(R),It(qt,B)}async function Jt(t,a,e,r){let n;a.invalidateAll&&pt(),await D({type:"goto",url:mt(t),keepfocus:a.keepFocus,noscroll:a.noScroll,replace_state:a.replaceState,state:a.state,redirect_count:e,nav_token:r,accept:()=>{a.invalidateAll&&(St=!0,n=[...Ct.keys()]),a.invalidate&&a.invalidate.forEach(je)}}),a.invalidateAll&&X().then(X).then(()=>{Ct.forEach(({resource:o},s)=>{var i;n!=null&&n.includes(s)&&((i=o.refresh)==null||i.call(o))})})}async function Re(t){if(t.id!==(v==null?void 0:v.id)){pt();const a={};at.add(a),v={id:t.id,token:a,promise:Qt({...t,preload:a}).then(e=>(at.delete(a),e.type==="loaded"&&e.state.error&&pt(),e)),fork:null}}return v.promise}async function lt(t){var e;const a=(e=await ot(t,!1))==null?void 0:e.route;a&&await Promise.all([...a.layouts,a.leaf].filter(Boolean).map(r=>r[1]()))}async function Xt(t,a,e){var n;m=t.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(x,t.props.page),zt=new b.root({target:a,props:{...t.props,stores:P,components:tt},hydrate:e,sync:!1}),await Promise.resolve(),Gt(R),e){const o={from:null,to:{params:m.params,route:{id:((n=m.route)==null?void 0:n.id)??null},url:new URL(location.href),scroll:I[E]??C()},willUnload:!1,type:"enter",complete:Promise.resolve()};F.forEach(s=>s(o))}et=!0}function nt({url:t,params:a,branch:e,status:r,error:n,route:o,form:s}){let i="never";if(L&&(t.pathname===L||t.pathname===L+"/"))i="always";else for(const f of e)(f==null?void 0:f.slash)!==void 0&&(i=f.slash);t.pathname=se(t.pathname,i),t.search=t.search;const c={type:"loaded",state:{url:t,params:a,branch:e,error:n,route:o},props:{constructors:ve(e).map(f=>f.node.component),page:At(x)}};s!==void 0&&(c.props.form=s);let l={},h=!x,u=0;for(let f=0;fi(new URL(s))))return!0;return!1}function xt(t,a){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?a??null:null}function Ue(t,a){if(!t)return new Set(a.searchParams.keys());const e=new Set([...t.searchParams.keys(),...a.searchParams.keys()]);for(const r of e){const n=t.searchParams.getAll(r),o=a.searchParams.getAll(r);n.every(s=>o.includes(s))&&o.every(s=>n.includes(s))&&e.delete(r)}return e}function Ae({error:t,url:a,route:e,params:r}){return{type:"loaded",state:{error:t,url:a,route:e,params:r,branch:[]},props:{page:At(x),constructors:[]}}}async function Qt({id:t,invalidating:a,url:e,params:r,route:n,preload:o}){if((v==null?void 0:v.id)===t)return at.delete(v.token),v.promise;const{errors:s,layouts:i,leaf:c}=n,l=[...i,c];s.forEach(g=>g==null?void 0:g().catch(()=>{})),l.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));const h=m.url?t!==rt(m.url):!1,u=m.route?n.id!==m.route.id:!1,w=Ue(m.url,e);let f=!1;const d=l.map(async(g,p)=>{var A;if(!g)return;const y=m.branch[p];return g[1]===(y==null?void 0:y.loader)&&!Le(f,u,h,w,(A=y.universal)==null?void 0:A.uses,r)?y:(f=!0,Rt({loader:g[1],url:e,params:r,route:n,parent:async()=>{var z;const T={};for(let j=0;j{});const _=[];for(let g=0;gPromise.resolve({}),server_data_node:xt(o)}),i={node:await Q(),loader:Q,universal:null,server:null,data:null};return nt({url:e,params:n,branch:[s,i],status:t,error:a,route:null})}catch(s){if(s instanceof vt)return Jt(new URL(s.location,location.href),{},0);throw s}}async function Ie(t){const a=t.href;if(G.has(a))return G.get(a);let e;try{const r=(async()=>{let n=await b.hooks.reroute({url:new URL(t),fetch:async(o,s)=>xe(o,s,t).promise})??t;if(typeof n=="string"){const o=new URL(t);b.hash?o.hash=n:o.pathname=n,n=o}return n})();G.set(a,r),e=await r}catch{G.delete(a);return}return e}async function ot(t,a){if(t&&!_t(t,L,b.hash)){const e=await Ie(t);if(!e)return;const r=Te(e);for(const n of kt){const o=n.exec(r);if(o)return{id:rt(t),invalidating:a,route:n,params:oe(o),url:t}}}}function Te(t){return ie(b.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(L.length))||"/"}function rt(t){return(b.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Zt({url:t,type:a,intent:e,delta:r,event:n,scroll:o}){let s=!1;const i=Ut(m,e,t,a,o??null);r!==void 0&&(i.navigation.delta=r),n!==void 0&&(i.navigation.event=n);const c={...i.navigation,cancel:()=>{s=!0,i.reject(new Error("navigation cancelled"))}};return H||Bt.forEach(l=>l(c)),s?null:i}async function D({type:t,url:a,popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s={},redirect_count:i=0,nav_token:c={},accept:l=Tt,block:h=Tt,event:u}){var j;const w=O;O=c;const f=await ot(a,!1),d=t==="enter"?Ut(m,f,a,t):Zt({url:a,type:t,delta:e==null?void 0:e.delta,intent:f,scroll:e==null?void 0:e.scroll,event:u});if(!d){h(),O===c&&(O=w);return}const _=E,g=R;l(),H=!0,et&&d.navigation.type!=="enter"&&P.navigating.set(ft.current=d.navigation);let p=f&&await Qt(f);if(!p){if(_t(a,L,b.hash))return await V(a,o);p=await te(a,{id:null},await Y(new yt(404,"Not Found",`Not found: ${a.pathname}`),{url:a,params:{},route:{id:null}}),404,o)}if(a=(f==null?void 0:f.url)||a,O!==c)return d.reject(new Error("navigation aborted")),!1;if(p.type==="redirect"){if(i<20){await D({type:t,url:new URL(p.location,a),popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s,redirect_count:i+1,nav_token:c}),d.fulfil(void 0);return}p=await Lt({status:500,error:await Y(new Error("Redirect loop"),{url:a,params:{},route:{id:null}}),url:a,route:{id:null}})}else p.props.page.status>=400&&await P.updated.check()&&(await Mt(),await V(a,o));if(Se(),bt(_),Wt(g),p.props.page.url.pathname!==a.pathname&&(a.pathname=p.props.page.url.pathname),s=e?e.state:s,!e){const k=o?0:1,W={[$]:E+=k,[M]:R+=k,[$t]:s};(o?history.replaceState:history.pushState).call(history,W,"",a),o||ke(E,R)}const y=f&&(v==null?void 0:v.id)===f.id?v.fork:null;v=null,p.props.page.state=s;let S;if(et){const k=(await Promise.all(Array.from(Vt,N=>N(d.navigation)))).filter(N=>typeof N=="function");if(k.length>0){let N=function(){k.forEach(st=>{F.delete(st)})};k.push(N),k.forEach(st=>{F.add(st)})}m=p.state,p.props.page&&(p.props.page.url=a);const W=y&&await y;W?S=W.commit():(zt.$set(p.props),fe(p.props.page),S=(j=ue)==null?void 0:j()),Yt=!0}else await Xt(p,dt,!1);const{activeElement:A}=document;await S,await X(),await X();let T=null;if(Ot){const k=e?e.scroll:n?C():null;k?scrollTo(k.x,k.y):(T=a.hash&&document.getElementById(ee(a)))?T.scrollIntoView():scrollTo(0,0)}const z=document.activeElement!==A&&document.activeElement!==document.body;!r&&!z&&qe(a,!T),Ot=!0,p.props.page&&Object.assign(x,p.props.page),H=!1,t==="popstate"&&Gt(R),d.fulfil(void 0),d.navigation.to&&(d.navigation.to.scroll=C()),F.forEach(k=>k(d.navigation)),P.navigating.set(ft.current=null)}async function te(t,a,e,r,n){return t.origin===Dt&&t.pathname===location.pathname&&!Ht?await Lt({status:r,error:e,url:t,route:a}):await V(t,n)}function Oe(){let t,a={element:void 0,href:void 0},e;U.addEventListener("mousemove",i=>{const c=i.target;clearTimeout(t),t=setTimeout(()=>{o(c,q.hover)},20)});function r(i){i.defaultPrevented||o(i.composedPath()[0],q.tap)}U.addEventListener("mousedown",r),U.addEventListener("touchstart",r,{passive:!0});const n=new IntersectionObserver(i=>{for(const c of i)c.isIntersecting&&(lt(new URL(c.target.href)),n.unobserve(c.target))},{threshold:0});async function o(i,c){const l=Nt(i,U),h=l===a.element&&(l==null?void 0:l.href)===a.href&&c>=e;if(!l||h)return;const{url:u,external:w,download:f}=ut(l,L,b.hash);if(w||f)return;const d=J(l),_=u&&rt(m.url)===rt(u);if(!(d.reload||_))if(c<=d.preload_data){a={element:l,href:l.href},e=q.tap;const g=await ot(u,!1);if(!g)return;Re(g)}else c<=d.preload_code&&(a={element:l,href:l.href},e=c,lt(u))}function s(){n.disconnect();for(const i of U.querySelectorAll("a")){const{url:c,external:l,download:h}=ut(i,L,b.hash);if(l||h)continue;const u=J(i);u.reload||(u.preload_code===q.viewport&&n.observe(i),u.preload_code===q.eager&<(c))}}F.add(s),s()}function Y(t,a){if(t instanceof wt)return t.body;const e=Et(t),r=ye(t);return b.hooks.handleError({error:t,event:a,status:e,message:r})??{message:r}}function Ce(t,a){Ee(()=>(t.add(a),()=>{t.delete(a)}))}function Ye(t){Ce(Vt,t)}function ze(t,a={}){return t=new URL(mt(t)),t.origin!==Dt?Promise.reject(new Error("goto: invalid URL")):Jt(t,a,0)}function je(t){if(typeof t=="function")Z.push(t);else{const{href:a}=new URL(t,location.href);Z.push(e=>e.href===a)}}function Ne(){var a;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let r=!1;if(jt(),!H){const n=Ut(m,void 0,null,"leave"),o={...n.navigation,cancel:()=>{r=!0,n.reject(new Error("navigation cancelled"))}};Bt.forEach(s=>s(o))}r?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&jt()}),(a=navigator.connection)!=null&&a.saveData||Oe(),U.addEventListener("click",async e=>{if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const r=Nt(e.composedPath()[0],U);if(!r)return;const{url:n,external:o,target:s,download:i}=ut(r,L,b.hash);if(!n)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=J(r);if(!(r instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||i)return;const[h,u]=(b.hash?n.hash.replace(/^#/,""):n.href).split("#"),w=h===it(location);if(o||c.reload&&(!w||!u)){Zt({url:n,type:"link",event:e})?H=!0:e.preventDefault();return}if(u!==void 0&&w){const[,f]=m.url.href.split("#");if(f===u){if(e.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const d=r.ownerDocument.getElementById(decodeURIComponent(u));d&&(d.scrollIntoView(),d.focus())}return}if(K=!0,bt(E),t(n),!c.replace_state)return;K=!1}e.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await D({type:"link",url:n,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??n.href===location.href,event:e})}),U.addEventListener("submit",e=>{if(e.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if(((n==null?void 0:n.formTarget)||r.target)==="_blank"||((n==null?void 0:n.formMethod)||r.method)!=="get")return;const i=new URL((n==null?void 0:n.hasAttribute("formaction"))&&(n==null?void 0:n.formAction)||r.action);if(_t(i,L,!1))return;const c=e.target,l=J(c);if(l.reload)return;e.preventDefault(),e.stopPropagation();const h=new FormData(c,n);i.search=new URLSearchParams(h).toString(),D({type:"form",url:i,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??i.href===location.href,event:e})}),addEventListener("popstate",async e=>{var r;if(!gt){if((r=e.state)!=null&&r[$]){const n=e.state[$];if(O={},n===E)return;const o=I[n],s=e.state[$t]??{},i=new URL(e.state[re]??location.href),c=e.state[M],l=m.url?it(location)===it(m.url):!1;if(c===R&&(Yt||l)){s!==x.state&&(x.state=s),t(i),I[E]=C(),o&&scrollTo(o.x,o.y),E=n;return}const u=n-E;await D({type:"popstate",url:i,popped:{state:s,scroll:o,delta:u},accept:()=>{E=n,R=c},block:()=>{history.go(-u)},nav_token:O,event:e})}else if(!K){const n=new URL(location.href);t(n),b.hash&&location.reload()}}}),addEventListener("hashchange",()=>{K&&(K=!1,history.replaceState({...history.state,[$]:++E,[M]:R},"",location.href))});for(const e of document.querySelectorAll("link"))be.has(e.rel)&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&P.navigating.set(ft.current=null)});function t(e){m.url=x.url=e,P.page.set(At(x)),P.page.notify()}}async function $e(t,{status:a=200,error:e,node_ids:r,params:n,route:o,server_route:s,data:i,form:c}){Ht=!0;const l=new URL(location.href);let h;({params:n={},route:o={id:null}}=await ot(l,!1)||{}),h=kt.find(({id:f})=>f===o.id);let u,w=!0;try{const f=r.map(async(_,g)=>{const p=i[g];return p!=null&&p.uses&&(p.uses=De(p.uses)),Rt({loader:b.nodes[_],url:l,params:n,route:o,parent:async()=>{const y={};for(let S=0;S{const i=history.state;gt=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(i,"",t),a&&scrollTo(o,s),gt=!1})}else{const o=document.body,s=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),s!==null?o.setAttribute("tabindex",s):o.removeAttribute("tabindex")}const n=getSelection();if(n&&n.type!=="None"){const o=[];for(let s=0;s{if(n.rangeCount===o.length){for(let s=0;s{o=u,s=w});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((l=t.route)==null?void 0:l.id)??null},url:t.url,scroll:C()},to:e&&{params:(a==null?void 0:a.params)??null,route:{id:((h=a==null?void 0:a.route)==null?void 0:h.id)??null},url:e,scroll:n},willUnload:!a,type:r,complete:i},fulfil:o,reject:s}}function At(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 Ke(t){const a=new URL(t);return a.hash=decodeURIComponent(t.hash),a}function ee(t){let a;if(b.hash){const[,,e]=t.hash.split("#",3);a=e??""}else a=t.hash.slice(1);return decodeURIComponent(a)}export{He as a,ze as g,Ye as o,P as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/dCAmqaEc.js.br b/apps/dashboard/build/_app/immutable/chunks/dCAmqaEc.js.br new file mode 100644 index 0000000000000000000000000000000000000000..af54f987016a9a44ae8c7414f358210ef0b35b8f GIT binary patch literal 7742 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 E06*X`6#xJL literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/dCAmqaEc.js.gz b/apps/dashboard/build/_app/immutable/chunks/dCAmqaEc.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..dd113f9e873ca83be31c68deb60567237771aef6 GIT binary patch literal 8475 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 TypeError(t)};var B=(t,e,n)=>e.has(t)||x("Cannot "+n);var a=(t,e,n)=>(B(t,e,"read from private field"),n?n.call(t):e.get(t)),c=(t,e,n)=>e.has(t)?x("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{o as I}from"./GG5zm9kr.js";import{s as u,g as f,h as d}from"./CpWkWWOo.js";import{w as G}from"./BeMFXnHE.js";new URL("sveltekit-internal://");function ae(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function oe(t){return t.split("%25").map(decodeURI).join("%25")}function ie(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function le({href:t}){return t.split("#")[0]}function W(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let s=r.length;for(;s;)e=e*33^r[--s]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function X(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&b.delete(U(t)),z(t,e));const b=new Map;function ce(t,e){const n=U(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:s,...l}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&b.set(n,{body:s,init:l,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(s=X(s)),Promise.resolve(new Response(s,l))}return window.fetch(t,e)}function ue(t,e,n){if(b.size>0){const r=U(t,n),s=b.get(r);if(s){if(performance.now()o)}function s(o){n=!1,e.set(o)}function l(o){let i;return e.subscribe(h=>{(i===void 0||n&&h!==i)&&o(i=h)})}return{notify:r,set:s,subscribe:l}}const D={v:()=>{}};function Ae(){const{set:t,subscribe:e}=G(!1);let n;async function r(){clearTimeout(n);try{const s=await fetch(`${M}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!s.ok)return!1;const o=(await s.json()).version!==F;return o&&(t(!0),D.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function Q(t,e,n){return t.origin!==Y||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function Re(t){}const H=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...H];const Z=new Set([...H]);[...Z];let E,O,T;const ee=I.toString().includes("$$")||/function \w+\(\) \{\}/.test(I.toString());var _,w,m,p,v,y,k,A,P,R,V,S,j;ee?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},O={current:null},T={current:!1}):(E=new(P=class{constructor(){c(this,_,u({}));c(this,w,u(null));c(this,m,u(null));c(this,p,u({}));c(this,v,u({id:null}));c(this,y,u({}));c(this,k,u(-1));c(this,A,u(new URL("https://example.com")))}get data(){return f(a(this,_))}set data(e){d(a(this,_),e)}get form(){return f(a(this,w))}set form(e){d(a(this,w),e)}get error(){return f(a(this,m))}set error(e){d(a(this,m),e)}get params(){return f(a(this,p))}set params(e){d(a(this,p),e)}get route(){return f(a(this,v))}set route(e){d(a(this,v),e)}get state(){return f(a(this,y))}set state(e){d(a(this,y),e)}get status(){return f(a(this,k))}set status(e){d(a(this,k),e)}get url(){return f(a(this,A))}set url(e){d(a(this,A),e)}},_=new WeakMap,w=new WeakMap,m=new WeakMap,p=new WeakMap,v=new WeakMap,y=new WeakMap,k=new WeakMap,A=new WeakMap,P),O=new(V=class{constructor(){c(this,R,u(null))}get current(){return f(a(this,R))}set current(e){d(a(this,R),e)}},R=new WeakMap,V),T=new(j=class{constructor(){c(this,S,u(!1))}get current(){return f(a(this,S))}set current(e){d(a(this,S),e)}},S=new WeakMap,j),D.v=()=>T.current=!0);function Ue(t){Object.assign(E,t)}export{be as H,_e as N,ge as P,he as S,ye as a,J as b,Ae as c,le as d,ie as e,pe as f,ve as g,ae as h,Q as i,N as j,oe as k,fe as l,ue as m,O as n,Y as o,E as p,ce as q,we as r,me as s,de as t,ke as u,Ue as v,Re as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.br b/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.br deleted file mode 100644 index 0f34e32c395bdaf0cc1e5c0baf94689773f6ffed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2611 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 Vu3Iu4DfI=nLzi5$u~h}x{sA?a9DM)) diff --git a/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.gz b/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.gz deleted file mode 100644 index e6c5fda155aeb4cc6ab84492bfb32fbfaf87992b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2949 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 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/apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js.br b/apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js.br new file mode 100644 index 0000000..86c4713 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js.br @@ -0,0 +1 @@ +< dkN_6ߥ`/1'<\8DڢҖ'nc}CK"pCB^+m0_ e<1!070Dt/K`1OzVZ*E3qGP4*> R]\HPhg׉`Nx9%^r;%U]6%`ruN͡h \ No newline at end of file diff --git a/apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js.gz b/apps/dashboard/build/_app/immutable/chunks/g5OnrUYZ.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..4f31ccd978737d4ba5c44aea74c8b6ccf1e763ec GIT binary patch literal 229 zcmVu;4POTPGHj{|GjljrS@PQxzG%oP}8JZcRNgz`*Q>i}7>NP=2BNWV}fFk(c?`EEGl fN4x)T_sJcRBp$k4)*==16^o}|tFcYrJplj!!o_NE literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js b/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js deleted file mode 100644 index d2ed67a..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js +++ /dev/null @@ -1 +0,0 @@ -import{Z as k,_ as f,$ as m,v as t,X as _,N as b,a0 as i}from"./CpWkWWOo.js";function E(e,a,v=a){var c=new WeakSet;k(e,"input",async r=>{var l=r?e.defaultValue:e.value;if(l=o(e)?u(l):l,v(l),f!==null&&c.add(f),await m(),l!==(l=a())){var h=e.selectionStart,d=e.selectionEnd,n=e.value.length;if(e.value=l??"",d!==null){var s=e.value.length;h===d&&d===n&&s>n?(e.selectionStart=s,e.selectionEnd=s):(e.selectionStart=h,e.selectionEnd=Math.min(d,s))}}}),(b&&e.defaultValue!==e.value||t(a)==null&&e.value)&&(v(o(e)?u(e.value):e.value),f!==null&&c.add(f)),_(()=>{var r=a();if(e===document.activeElement){var l=i??f;if(c.has(l))return}o(e)&&r===u(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function S(e,a,v=a){k(e,"change",c=>{var r=c?e.defaultChecked:e.checked;v(r)}),(b&&e.defaultChecked!==e.checked||t(a)==null)&&v(e.checked),_(()=>{var c=a();e.checked=!!c})}function o(e){var a=e.type;return a==="number"||a==="range"}function u(e){return e===""?null:+e}export{S as a,E as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.br b/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.br deleted file mode 100644 index a7a27e79b8c1b1903e94f439c049a9724adff328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSU<=K}!5RMqxhrdW6oB%UdAjElamy{On}iqrc1Uruj;eWZH_cxGel)*KdK zFN=Bs1r~US*=Bq67!8b~<E#ng*siq0bC8JiuLE2XP=5iKIB4;d$!TU9Gjt|JCHE5 zMZ+_iKCyPuaQl~ezvP557h;#3q@8rdNwmy>YMByIXt)@;6m_}1GGfuB(9a2uMO-QM zP&6>7IdY@1dElmsTEQy+q)wt=a$P{O));xqC!hjI*ioxV6hxATR2SopvWs;=X zM#GW<5K9c#*hHzyY-an`mfG{7(Q|W7A|WUp&A%X;0q`MrI24VP8v%yJ6+@KGj{IQG zW+U^7<^-9QLy@l z;N=ck7W{?A3|@`{0$gI29288f#?0Z+LZ^W<(;r!~U68^u_Ro!KXT`DD1U2#$b9xiF H(J?;(aX;Z2 diff --git a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.gz b/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.gz deleted file mode 100644 index 3b8812f3dc2b31acac9b6c2b350f9ce38a0dafd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i_RiwFP!000026K#`CkK7;(hVT6qNmLkxSHfGLVBljRcg^k)C4 zuK}QBtONkdSpQ@T{umW{c^?&evHDk4KdQc>uT|SvUdmpGd7g#jd&cgGrEtz@nmk8w z2DCT@V|?Tb$g}TE`F}u#+;J|J2Dv~pA_-M?dT7adh1xeGtqp~pSUTAhMHQ4<)!1_* zgd;yVJBQGWIRLoEpC(fN?HC@-O7xU5mO94LOCj!B6=RovxX=$Vi}^Blo9o=gDbqFD z7s{l*z94MP*? G0{{R&cJa{w diff --git a/apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js b/apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js new file mode 100644 index 0000000..b5a27f7 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js @@ -0,0 +1 @@ +var wn=Object.defineProperty;var mt=e=>{throw TypeError(e)};var yn=(e,t,n)=>t in e?wn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ye=(e,t,n)=>yn(e,typeof t!="symbol"?t+"":t,n),We=(e,t,n)=>t.has(e)||mt("Cannot "+n);var p=(e,t,n)=>(We(e,t,"read from private field"),n?n.call(e):t.get(e)),F=(e,t,n)=>t.has(e)?mt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),W=(e,t,n,r)=>(We(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),X=(e,t,n)=>(We(e,t,"access private method"),n);var mn=Array.isArray,En=Array.prototype.indexOf,Ae=Array.prototype.includes,yr=Array.from,mr=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,gn=Object.getOwnPropertyDescriptors,Tn=Object.prototype,bn=Array.prototype,Ct=Object.getPrototypeOf,Et=Object.isExtensible;const An=()=>{};function Er(e){return e()}function Sn(e){for(var t=0;t{e=r,t=s});return{promise:n,resolve:e,reject:t}}function gr(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const A=2,Pe=4,Me=8,Pt=1<<24,K=16,U=32,we=64,Rn=128,P=512,g=1024,R=2048,V=4096,Y=8192,Q=16384,ne=32768,Ve=65536,gt=1<<17,Mt=1<<18,Fe=1<<19,Ft=1<<20,Tr=1<<25,_e=65536,Je=1<<21,it=1<<22,ee=1<<23,ue=Symbol("$state"),br=Symbol("legacy props"),Ar=Symbol(""),fe=new class extends Error{constructor(){super(...arguments);ye(this,"name","StaleReactionError");ye(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var kt;const Rr=!!((kt=globalThis.document)!=null&&kt.contentType)&&globalThis.document.contentType.includes("xml"),Le=3,Lt=8;function Nn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Nr(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function On(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function xn(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function kn(e){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/hydration_failed")}function xr(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Cn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function In(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Pn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function kr(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Dr=1,Cr=2,Ir=4,Pr=8,Mr=16,Fr=1,Lr=2,jr=4,Hr=8,Yr=16,jt=1,Mn=2,Fn="[",Ln="[!",qr="[?",jn="]",lt={},T=Symbol(),Hn="http://www.w3.org/1999/xhtml",Vr="http://www.w3.org/2000/svg",Ur="http://www.w3.org/1998/Math/MathML";function ot(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Br(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Gr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let D=!1;function $r(e){D=e}let y;function ve(e){if(e===null)throw ot(),lt;return y=e}function Yn(){return ve(se(y))}function zr(e){if(D){if(se(y)!==null)throw ot(),lt;y=e}}function Kr(e=1){if(D){for(var t=e,n=y;t--;)n=se(n);y=n}}function Wr(e=!0){for(var t=0,n=y;;){if(n.nodeType===Lt){var r=n.data;if(r===jn){if(t===0)return n;t-=1}else(r===Fn||r===Ln||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=se(n);e&&n.remove(),n=s}}function Xr(e){if(!e||e.nodeType!==Lt)throw ot(),lt;return e.data}function Ht(e){return e===this.v}function qn(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Yt(e){return!qn(e,this.v)}let Ge=!1;function Zr(){Ge=!0}let S=null;function Ue(e){S=e}function Jr(e,t=!1,n){S={p:S,i:!1,c:null,e:null,s:e,x:null,l:Ge&&!t?{s:null,u:null,$:[]}:null}}function Qr(e){var t=S,n=t.e;if(n!==null){t.e=null;for(var r of n)rn(r)}return t.i=!0,S=t.p,{}}function je(){return!Ge||S!==null&&S.l===null}let ae=[];function qt(){var e=ae;ae=[],Sn(e)}function Tt(e){if(ae.length===0&&!ke){var t=ae;queueMicrotask(()=>{t===ae&&qt()})}ae.push(e)}function Vn(){for(;ae.length>0;)qt()}function Un(e){var t=h;if(t===null)return _.f|=ee,e;if((t.f&ne)===0&&(t.f&Pe)===0)throw e;Be(e,t)}function Be(e,t){for(;t!==null;){if((t.f&Rn)!==0){if((t.f&ne)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Bn=-7169;function E(e,t){e.f=e.f&Bn|t}function ut(e){(e.f&P)!==0||e.deps===null?E(e,g):E(e,V)}function Vt(e){if(e!==null)for(const t of e)(t.f&A)===0||(t.f&_e)===0||(t.f^=_e,Vt(t.deps))}function Gn(e,t,n){(e.f&R)!==0?t.add(e):(e.f&V)!==0&&n.add(e),Vt(e.deps),E(e,g)}const Ye=new Set;let d=null,bt=null,b=null,O=[],$e=null,Qe=!1,ke=!1;var Ee,ge,le,Te,Ce,Ie,oe,$,be,C,et,tt,nt,Ut;const ht=class ht{constructor(){F(this,C);ye(this,"current",new Map);ye(this,"previous",new Map);F(this,Ee,new Set);F(this,ge,new Set);F(this,le,0);F(this,Te,0);F(this,Ce,null);F(this,Ie,new Set);F(this,oe,new Set);F(this,$,new Map);ye(this,"is_fork",!1);F(this,be,!1)}skip_effect(t){p(this,$).has(t)||p(this,$).set(t,{d:[],m:[]})}unskip_effect(t){var n=p(this,$).get(t);if(n){p(this,$).delete(t);for(var r of n.d)E(r,R),z(r);for(r of n.m)E(r,V),z(r)}}process(t){var s;O=[],this.apply();var n=[],r=[];for(const f of t)X(this,C,tt).call(this,f,n,r);if(X(this,C,et).call(this)){X(this,C,nt).call(this,r),X(this,C,nt).call(this,n);for(const[f,i]of p(this,$))zt(f,i)}else{for(const f of p(this,Ee))f();p(this,Ee).clear(),p(this,le)===0&&X(this,C,Ut).call(this),bt=this,d=null,At(r),At(n),bt=null,(s=p(this,Ce))==null||s.resolve()}b=null}capture(t,n){n!==T&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&ee)===0&&(this.current.set(t,t.v),b==null||b.set(t,t.v))}activate(){d=this,this.apply()}deactivate(){d===this&&(d=null,b=null)}flush(){if(this.activate(),O.length>0){if(Bt(),d!==null&&d!==this)return}else p(this,le)===0&&this.process([]);this.deactivate()}discard(){for(const t of p(this,ge))t(this);p(this,ge).clear()}increment(t){W(this,le,p(this,le)+1),t&&W(this,Te,p(this,Te)+1)}decrement(t){W(this,le,p(this,le)-1),t&&W(this,Te,p(this,Te)-1),!p(this,be)&&(W(this,be,!0),Tt(()=>{W(this,be,!1),X(this,C,et).call(this)?O.length>0&&this.flush():this.revive()}))}revive(){for(const t of p(this,Ie))p(this,oe).delete(t),E(t,R),z(t);for(const t of p(this,oe))E(t,V),z(t);this.flush()}oncommit(t){p(this,Ee).add(t)}ondiscard(t){p(this,ge).add(t)}settled(){return(p(this,Ce)??W(this,Ce,It())).promise}static ensure(){if(d===null){const t=d=new ht;Ye.add(d),ke||Tt(()=>{d===t&&t.flush()})}return d}apply(){}};Ee=new WeakMap,ge=new WeakMap,le=new WeakMap,Te=new WeakMap,Ce=new WeakMap,Ie=new WeakMap,oe=new WeakMap,$=new WeakMap,be=new WeakMap,C=new WeakSet,et=function(){return this.is_fork||p(this,Te)>0},tt=function(t,n,r){t.f^=g;for(var s=t.first;s!==null;){var f=s.f,i=(f&(U|we))!==0,o=i&&(f&g)!==0,a=o||(f&Y)!==0||p(this,$).has(s);if(!a&&s.fn!==null){i?s.f^=g:(f&Pe)!==0?n.push(s):He(s)&&((f&K)!==0&&p(this,oe).add(s),Ne(s));var l=s.first;if(l!==null){s=l;continue}}for(;s!==null;){var c=s.next;if(c!==null){s=c;break}s=s.parent}}},nt=function(t){for(var n=0;n1){this.previous.clear();var t=b,n=!0;for(const f of Ye){if(f===this){n=!1;continue}const i=[];for(const[a,l]of this.current){if(f.current.has(a))if(n&&l!==f.current.get(a))f.current.set(a,l);else continue;i.push(a)}if(i.length===0)continue;const o=[...f.current.keys()].filter(a=>!this.current.has(a));if(o.length>0){var r=O;O=[];const a=new Set,l=new Map;for(const c of i)Gt(c,o,a,l);if(O.length>0){d=f,f.apply();for(const c of O)X(s=f,C,tt).call(s,c,[],[]);f.deactivate()}O=r}}d=null,b=t}Ye.delete(this)};let Se=ht;function $n(e){var t=ke;ke=!0;try{for(var n;;){if(Vn(),O.length===0&&(d==null||d.flush(),O.length===0))return $e=null,n;Bt()}}finally{ke=t}}function Bt(){Qe=!0;var e=null;try{for(var t=0;O.length>0;){var n=Se.ensure();if(t++>1e3){var r,s;zn()}n.process(O),te.clear()}}finally{O=[],Qe=!1,$e=null}}function zn(){try{Dn()}catch(e){Be(e,$e)}}let L=null;function At(e){var t=e.length;if(t!==0){for(var n=0;n0)){te.clear();for(const s of L){if((s.f&(Q|Y))!==0)continue;const f=[s];let i=s.parent;for(;i!==null;)L.has(i)&&(L.delete(i),f.push(i)),i=i.parent;for(let o=f.length-1;o>=0;o--){const a=f[o];(a.f&(Q|Y))===0&&Ne(a)}}L.clear()}}L=null}}function Gt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;(f&A)!==0?Gt(s,t,n,r):(f&(it|K))!==0&&(f&R)===0&&$t(s,t,r)&&(E(s,R),z(s))}}function $t(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Ae.call(t,s))return!0;if((s.f&A)!==0&&$t(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function z(e){var t=$e=e,n=t.b;if(n!=null&&n.is_pending&&(e.f&(Pe|Me|Pt))!==0&&(e.f&ne)===0){n.defer_effect(e);return}for(;t.parent!==null;){t=t.parent;var r=t.f;if(Qe&&t===h&&(r&K)!==0&&(r&Mt)===0&&(r&ne)!==0)return;if((r&(we|U))!==0){if((r&g)===0)return;t.f^=g}}O.push(t)}function zt(e,t){if(!((e.f&U)!==0&&(e.f&g)!==0)){(e.f&R)!==0?t.d.push(e):(e.f&V)!==0&&t.m.push(e),E(e,g);for(var n=e.first;n!==null;)zt(n,t),n=n.next}}function Kn(e,t,n,r){const s=je()?ct:Jn;var f=e.filter(u=>!u.settled);if(n.length===0&&f.length===0){r(t.map(s));return}var i=h,o=Wn(),a=f.length===1?f[0].promise:f.length>1?Promise.all(f.map(u=>u.promise)):null;function l(u){o();try{r(u)}catch(v){(i.f&Q)===0&&Be(v,i)}rt()}if(n.length===0){a.then(()=>l(t.map(s)));return}function c(){o(),Promise.all(n.map(u=>Zn(u))).then(u=>l([...t.map(s),...u])).catch(u=>Be(u,i))}a?a.then(c):c()}function Wn(){var e=h,t=_,n=S,r=d;return function(f=!0){Re(e),re(t),Ue(n),f&&(r==null||r.activate())}}function rt(e=!0){Re(null),re(null),Ue(null),e&&(d==null||d.deactivate())}function Xn(){var e=h.b,t=d,n=e.is_rendered();return e.update_pending_count(1),t.increment(n),()=>{e.update_pending_count(-1),t.decrement(n)}}function ct(e){var t=A|R,n=_!==null&&(_.f&A)!==0?_:null;return h!==null&&(h.f|=Fe),{ctx:S,deps:null,effects:null,equals:Ht,f:t,fn:e,reactions:null,rv:0,v:T,wv:0,parent:n??h,ac:null}}function Zn(e,t,n){h===null&&Nn();var s=void 0,f=vt(T),i=!_,o=new Map;return or(()=>{var v;var a=It();s=a.promise;try{Promise.resolve(e()).then(a.resolve,a.reject).finally(rt)}catch(m){a.reject(m),rt()}var l=d;if(i){var c=Xn();(v=o.get(l))==null||v.reject(fe),o.delete(l),o.set(l,a)}const u=(m,w=void 0)=>{if(l.activate(),w)w!==fe&&(f.f|=ee,ft(f,w));else{(f.f&ee)!==0&&(f.f^=ee),ft(f,m);for(const[G,N]of o){if(o.delete(G),G===l)break;N.reject(fe)}}c&&c()};a.promise.then(u,m=>u(null,m||"unknown"))}),lr(()=>{for(const a of o.values())a.reject(fe)}),new Promise(a=>{function l(c){function u(){c===s?a(f):l(s)}c.then(u,u)}l(s)})}function es(e){const t=ct(e);return on(t),t}function Jn(e){const t=ct(e);return t.equals=Yt,t}function Qn(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!Xt&&nr()}return t}function nr(){Xt=!1;for(const e of st)(e.f&g)!==0&&E(e,V),He(e)&&Ne(e);st.clear()}function ns(e,t=1){var n=me(e),r=t===1?n++:n--;return J(e,n),r}function Xe(e){J(e,e.v+1)}function Zt(e,t){var n=e.reactions;if(n!==null)for(var r=je(),s=n.length,f=0;f{if(ce===f)return o();var a=_,l=ce;re(null),xt(f);var c=o();return re(a),xt(l),c};return r&&n.set("length",Z(e.length)),new Proxy(e,{defineProperty(o,a,l){(!("value"in l)||l.configurable===!1||l.enumerable===!1||l.writable===!1)&&Cn();var c=n.get(a);return c===void 0?i(()=>{var u=Z(l.value);return n.set(a,u),u}):J(c,l.value,!0),!0},deleteProperty(o,a){var l=n.get(a);if(l===void 0){if(a in o){const c=i(()=>Z(T));n.set(a,c),Xe(s)}}else J(l,T),Xe(s);return!0},get(o,a,l){var m;if(a===ue)return e;var c=n.get(a),u=a in o;if(c===void 0&&(!u||(m=xe(o,a))!=null&&m.writable)&&(c=i(()=>{var w=Oe(u?o[a]:T),G=Z(w);return G}),n.set(a,c)),c!==void 0){var v=me(c);return v===T?void 0:v}return Reflect.get(o,a,l)},getOwnPropertyDescriptor(o,a){var l=Reflect.getOwnPropertyDescriptor(o,a);if(l&&"value"in l){var c=n.get(a);c&&(l.value=me(c))}else if(l===void 0){var u=n.get(a),v=u==null?void 0:u.v;if(u!==void 0&&v!==T)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return l},has(o,a){var v;if(a===ue)return!0;var l=n.get(a),c=l!==void 0&&l.v!==T||Reflect.has(o,a);if(l!==void 0||h!==null&&(!c||(v=xe(o,a))!=null&&v.writable)){l===void 0&&(l=i(()=>{var m=c?Oe(o[a]):T,w=Z(m);return w}),n.set(a,l));var u=me(l);if(u===T)return!1}return c},set(o,a,l,c){var yt;var u=n.get(a),v=a in o;if(r&&a==="length")for(var m=l;mZ(T)),n.set(m+"",w))}if(u===void 0)(!v||(yt=xe(o,a))!=null&&yt.writable)&&(u=i(()=>Z(void 0)),J(u,Oe(l)),n.set(a,u));else{v=u.v!==T;var G=i(()=>Oe(l));J(u,G)}var N=Reflect.getOwnPropertyDescriptor(o,a);if(N!=null&&N.set&&N.set.call(c,l),!v){if(r&&typeof a=="string"){var wt=n.get("length"),Ke=Number(a);Number.isInteger(Ke)&&Ke>=wt.v&&J(wt,Ke+1)}Xe(s)}return!0},ownKeys(o){me(s);var a=Reflect.ownKeys(o).filter(u=>{var v=n.get(u);return v===void 0||v.v!==T});for(var[l,c]of n)c.v!==T&&!(l in o)&&a.push(l);return a},setPrototypeOf(){In()}})}function St(e){try{if(e!==null&&typeof e=="object"&&ue in e)return e[ue]}catch{}return e}function rs(e,t){return Object.is(St(e),St(t))}var Rt,rr,Jt,Qt,en;function ss(){if(Rt===void 0){Rt=window,rr=document,Jt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Qt=xe(t,"firstChild").get,en=xe(t,"nextSibling").get,Et(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Et(n)&&(n.__t=void 0)}}function de(e=""){return document.createTextNode(e)}function j(e){return Qt.call(e)}function se(e){return en.call(e)}function fs(e,t){if(!D)return j(e);var n=j(y);if(n===null)n=y.appendChild(de());else if(t&&n.nodeType!==Le){var r=de();return n==null||n.before(r),ve(r),r}return t&&ze(n),ve(n),n}function as(e,t=!1){if(!D){var n=j(e);return n instanceof Comment&&n.data===""?se(n):n}if(t){if((y==null?void 0:y.nodeType)!==Le){var r=de();return y==null||y.before(r),ve(r),r}ze(y)}return y}function is(e,t=1,n=!1){let r=D?y:e;for(var s;t--;)s=r,r=se(r);if(!D)return r;if(n){if((r==null?void 0:r.nodeType)!==Le){var f=de();return r===null?s==null||s.after(f):r.before(f),ve(f),f}ze(r)}return ve(r),r}function sr(e){e.textContent=""}function ls(){return!1}function fr(e,t,n){return document.createElementNS(t??Hn,e,void 0)}function ze(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Le;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function os(e){D&&j(e)!==null&&sr(e)}let Nt=!1;function ar(){Nt||(Nt=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const n of e.target.elements)(t=n.__on_r)==null||t.call(n)})},{capture:!0}))}function dt(e){var t=_,n=h;re(null),Re(null);try{return e()}finally{re(t),Re(n)}}function us(e,t,n,r=n){e.addEventListener(t,()=>dt(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),ar()}function tn(e){h===null&&(_===null&&kn(),xn()),he&&On()}function ir(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function B(e,t,n){var r=h;r!==null&&(r.f&Y)!==0&&(e|=Y);var s={ctx:S,deps:null,nodes:null,f:e|R|P,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{Ne(s)}catch(o){throw pe(s),o}else t!==null&&z(s);var f=s;if(n&&f.deps===null&&f.teardown===null&&f.nodes===null&&f.first===f.last&&(f.f&Fe)===0&&(f=f.first,(e&K)!==0&&(e&Ve)!==0&&f!==null&&(f.f|=Ve)),f!==null&&(f.parent=r,r!==null&&ir(f,r),_!==null&&(_.f&A)!==0&&(e&we)===0)){var i=_;(i.effects??(i.effects=[])).push(f)}return s}function nn(){return _!==null&&!H}function lr(e){const t=B(Me,null,!1);return E(t,g),t.teardown=e,t}function cs(e){tn();var t=h.f,n=!_&&(t&U)!==0&&(t&ne)===0;if(n){var r=S;(r.e??(r.e=[])).push(e)}else return rn(e)}function rn(e){return B(Pe|Ft,e,!1)}function _s(e){return tn(),B(Me|Ft,e,!0)}function vs(e){Se.ensure();const t=B(we|Fe,e,!0);return(n={})=>new Promise(r=>{n.outro?_r(t,()=>{pe(t),r(void 0)}):(pe(t),r(void 0))})}function ds(e){return B(Pe,e,!1)}function or(e){return B(it|Fe,e,!0)}function ps(e,t=0){return B(Me|t,e,!0)}function hs(e,t=[],n=[],r=[]){Kn(r,t,n,s=>{B(Me,()=>e(...s.map(me)),!0)})}function ws(e,t=0){var n=B(K|t,e,!0);return n}function ys(e){return B(U|Fe,e,!0)}function sn(e){var t=e.teardown;if(t!==null){const n=he,r=_;Ot(!0),re(null);try{t.call(null)}finally{Ot(n),re(r)}}}function pt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&dt(()=>{s.abort(fe)});var r=n.next;(n.f&we)!==0?n.parent=null:pe(n,t),n=r}}function ur(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&U)===0&&pe(t),t=n}}function pe(e,t=!0){var n=!1;(t||(e.f&Mt)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(cr(e.nodes.start,e.nodes.end),n=!0),pt(e,t&&!n),De(e,0),E(e,Q);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();sn(e);var s=e.parent;s!==null&&s.first!==null&&fn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function cr(e,t){for(;e!==null;){var n=e===t?null:se(e);e.remove(),e=n}}function fn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function _r(e,t,n=!0){var r=[];an(e,r,!0);var s=()=>{n&&pe(e),t&&t()},f=r.length;if(f>0){var i=()=>--f||s();for(var o of r)o.out(i)}else s()}function an(e,t,n){if((e.f&Y)===0){e.f^=Y;var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)(o.is_global||n)&&t.push(o);for(var s=e.first;s!==null;){var f=s.next,i=(s.f&Ve)!==0||(s.f&U)!==0&&(e.f&K)!==0;an(s,t,i?n:!1),s=f}}}function ms(e){ln(e,!0)}function ln(e,t){if((e.f&Y)!==0){e.f^=Y,(e.f&g)===0&&(E(e,R),z(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Ve)!==0||(n.f&U)!==0;ln(n,s?t:!1),n=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const i of f)(i.is_global||t)&&i.in()}}function Es(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:se(n);t.append(n),n=s}}let qe=!1,he=!1;function Ot(e){he=e}let _=null,H=!1;function re(e){_=e}let h=null;function Re(e){h=e}let M=null;function on(e){_!==null&&(M===null?M=[e]:M.push(e))}let x=null,k=0,I=null;function vr(e){I=e}let un=1,ie=0,ce=ie;function xt(e){ce=e}function cn(){return++un}function He(e){var t=e.f;if((t&R)!==0)return!0;if(t&A&&(e.f&=~_e),(t&V)!==0){for(var n=e.deps,r=n.length,s=0;se.wv)return!0}(t&P)!==0&&b===null&&E(e,g)}return!1}function _n(e,t,n=!0){var r=e.reactions;if(r!==null&&!(M!==null&&Ae.call(M,e)))for(var s=0;s{e.ac.abort(fe)}),e.ac=null);try{e.f|=Je;var c=e.fn,u=c();e.f|=ne;var v=e.deps,m=d==null?void 0:d.is_fork;if(x!==null){var w;if(m||De(e,k),v!==null&&k>0)for(v.length=k+x.length,w=0;we});function pr(e){return(Ze==null?void 0:Ze.createHTML(e))??e}function hn(e){var t=fr("template");return t.innerHTML=pr(e.replaceAll("","")),t.content}function q(e,t){var n=h;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function Ss(e,t){var n=(t&jt)!==0,r=(t&Mn)!==0,s,f=!e.startsWith("");return()=>{if(D)return q(y,null),y;s===void 0&&(s=hn(f?e:""+e),n||(s=j(s)));var i=r||Jt?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=j(i),a=i.lastChild;q(o,a)}else q(i,i);return i}}function hr(e,t,n="svg"){var r=!e.startsWith(""),s=(t&jt)!==0,f=`<${n}>${r?e:""+e}`,i;return()=>{if(D)return q(y,null),y;if(!i){var o=hn(f),a=j(o);if(s)for(i=document.createDocumentFragment();j(a);)i.appendChild(j(a));else i=j(a)}var l=i.cloneNode(!0);if(s){var c=j(l),u=l.lastChild;q(c,u)}else q(l,l);return l}}function Rs(e,t){return hr(e,t,"svg")}function Ns(e=""){if(!D){var t=de(e+"");return q(t,t),t}var n=y;return n.nodeType!==Le?(n.before(n=de()),ve(n)):ze(n),q(n,n),n}function Os(){if(D)return q(y,null),y;var e=document.createDocumentFragment(),t=document.createComment(""),n=de();return e.append(t,n),q(t,n),e}function xs(e,t){if(D){var n=h;((n.f&ne)===0||n.nodes.end===null)&&(n.nodes.end=y),Yn();return}e!==null&&e.before(t)}export{ys as $,Br as A,rs as B,bt as C,de as D,Ve as E,Fe as F,D as G,Mt as H,Lt as I,se as J,$r as K,ve as L,y as M,j as N,gs as O,bs as P,ps as Q,Tt as R,ue as S,Yn as T,Xr as U,Fn as V,Ln as W,Wr as X,ms as Y,pe as Z,_r as _,xs as a,Se as a$,Es as a0,ls as a1,S as a2,_s as a3,Sn as a4,Er as a5,As as a6,ct as a7,Zr as a8,ns as a9,Vr as aA,Ur as aB,je as aC,Ir as aD,jn as aE,ft as aF,Tr as aG,Nr as aH,yr as aI,Dr as aJ,Mr as aK,vt as aL,Cr as aM,Y as aN,U as aO,Pr as aP,sr as aQ,Ar as aR,Hn as aS,Ct as aT,gn as aU,Rr as aV,ar as aW,nn as aX,Xe as aY,Rn as aZ,qr as a_,qn as aa,An as ab,ts as ac,mr as ad,xe as ae,xr as af,jr as ag,he as ah,h as ai,Q as aj,Hr as ak,Ge as al,Lr as am,Fr as an,Jn as ao,Yr as ap,br as aq,rr as ar,$n as as,Ts as at,Rs as au,cr as av,ot as aw,lt as ax,q as ay,fr as az,Qr as b,E as b0,R as b1,z as b2,V as b3,Gn as b4,Re as b5,re as b6,Ue as b7,Un as b8,_ as b9,Be as ba,kr as bb,Gr as bc,dt as bd,ss as be,Or as bf,vs as bg,Os as c,Oe as d,fs as e,as as f,me as g,is as h,J as i,Ss as j,os as k,gr as l,Ns as m,Kr as n,cs as o,Jr as p,ws as q,zr as r,Z as s,hs as t,es as u,us as v,d as w,ds as x,lr as y,mn as z}; diff --git a/apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js.br b/apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js.br new file mode 100644 index 0000000000000000000000000000000000000000..6e70ac508b128efa194f9e7b7ef26b37ef49101a GIT binary patch literal 9258 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 MYVD;1#JvCc03YM)B>(^b literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js.gz b/apps/dashboard/build/_app/immutable/chunks/wpu9U-D0.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..65c3116b6a5f724e8e8b7c2b48eebced62a524c0 GIT binary patch literal 10302 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.map(i=>d[i]); -var Q=r=>{throw TypeError(r)};var X=(r,t,e)=>t.has(r)||Q("Cannot "+e);var l=(r,t,e)=>(X(r,t,"read from private field"),e?e.call(r):t.get(r)),H=(r,t,e)=>t.has(r)?Q("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,e),W=(r,t,e,n)=>(X(r,t,"write to private field"),n?n.call(r,e):t.set(r,e),e);import{N as Z,ab as ut,b as _t,E as ct,ac as lt,ae as dt,T as ft,R as $,ax as vt,U as ht,h as U,L as pt,g as h,bc as Et,G as gt,I as Pt,p as Rt,aA as yt,aB as Ot,$ as At,f as L,e as Tt,a as bt,s as z,d as Lt,r as It,u as x,t as Dt}from"../chunks/CpWkWWOo.js";import{h as Vt,m as wt,u as kt,s as xt}from"../chunks/BlVfL1ME.js";import"../chunks/Bzak7iHL.js";import{o as St}from"../chunks/GG5zm9kr.js";import{i as B}from"../chunks/B4yTwGkE.js";import{a as g,c as V,f as et,t as jt}from"../chunks/CHOnp4oo.js";import{B as Ct}from"../chunks/DdEqwvdI.js";import{b as S}from"../chunks/CJsMJEun.js";import{p as N}from"../chunks/V6gjw5Ec.js";function j(r,t,e){var n;Z&&(n=ht,ut());var i=new Ct(r);_t(()=>{var c=t()??null;if(Z){var s=lt(n),a=s===vt,m=c!==null;if(a!==m){var R=dt();ft(R),i.anchor=R,$(!1),i.ensure(c,c&&(u=>e(u,c))),$(!0);return}}i.ensure(c,c&&(u=>e(u,c)))},ct)}function Bt(r){return class extends Nt{constructor(t){super({component:r,...t})}}}var P,d;class Nt{constructor(t){H(this,P);H(this,d);var c;var e=new Map,n=(s,a)=>{var m=Pt(a,!1,!1);return e.set(s,m),m};const i=new Proxy({...t.props||{},$$events:{}},{get(s,a){return h(e.get(a)??n(a,Reflect.get(s,a)))},has(s,a){return a===pt?!0:(h(e.get(a)??n(a,Reflect.get(s,a))),Reflect.has(s,a))},set(s,a,m){return U(e.get(a)??n(a,m),m),Reflect.set(s,a,m)}});W(this,d,(t.hydrate?Vt:wt)(t.component,{target:t.target,anchor:t.anchor,props:i,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError})),(!((c=t==null?void 0:t.props)!=null&&c.$$host)||t.sync===!1)&&Et(),W(this,P,i.$$events);for(const s of Object.keys(l(this,d)))s==="$set"||s==="$destroy"||s==="$on"||gt(this,s,{get(){return l(this,d)[s]},set(a){l(this,d)[s]=a},enumerable:!0});l(this,d).$set=s=>{Object.assign(i,s)},l(this,d).$destroy=()=>{kt(l(this,d))}}$set(t){l(this,d).$set(t)}$on(t,e){l(this,P)[t]=l(this,P)[t]||[];const n=(...i)=>e.call(this,...i);return l(this,P)[t].push(n),()=>{l(this,P)[t]=l(this,P)[t].filter(i=>i!==n)}}$destroy(){l(this,d).$destroy()}}P=new WeakMap,d=new WeakMap;const Ut="modulepreload",qt=function(r,t){return new URL(r,t).href},tt={},o=function(t,e,n){let i=Promise.resolve();if(e&&e.length>0){let s=function(u){return Promise.all(u.map(p=>Promise.resolve(p).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};const a=document.getElementsByTagName("link"),m=document.querySelector("meta[property=csp-nonce]"),R=(m==null?void 0:m.nonce)||(m==null?void 0:m.getAttribute("nonce"));i=s(e.map(u=>{if(u=qt(u,n),u in tt)return;tt[u]=!0;const p=u.endsWith(".css"),y=p?'[rel="stylesheet"]':"";if(!!n)for(let O=a.length-1;O>=0;O--){const _=a[O];if(_.href===u&&(!p||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${y}`))return;const E=document.createElement("link");if(E.rel=p?"stylesheet":Ut,p||(E.as="script"),E.crossOrigin="",E.href=u,R&&E.setAttribute("nonce",R),document.head.appendChild(E),p)return new Promise((O,_)=>{E.addEventListener("load",O),E.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${u}`)))})}))}function c(s){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s}return i.then(s=>{for(const a of s||[])a.status==="rejected"&&c(a.reason);return t().catch(c)})},ae={};var Ft=et('

'),Gt=et(" ",1);function Yt(r,t){Rt(t,!0);let e=N(t,"components",23,()=>[]),n=N(t,"data_0",3,null),i=N(t,"data_1",3,null),c=N(t,"data_2",3,null);yt(()=>t.stores.page.set(t.page)),Ot(()=>{t.stores,t.page,t.constructors,e(),t.form,n(),i(),c(),t.stores.page.notify()});let s=z(!1),a=z(!1),m=z(null);St(()=>{const _=t.stores.page.subscribe(()=>{h(s)&&(U(a,!0),At().then(()=>{U(m,document.title||"untitled page",!0)}))});return U(s,!0),_});const R=x(()=>t.constructors[2]);var u=Gt(),p=L(u);{var y=_=>{const A=x(()=>t.constructors[0]);var T=V(),w=L(T);j(w,()=>h(A),(b,I)=>{S(I(b,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(f,Wt)=>{var K=V(),at=L(K);{var st=D=>{const q=x(()=>t.constructors[1]);var k=V(),F=L(k);j(F,()=>h(q),(G,Y)=>{S(Y(G,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(v,zt)=>{var M=V(),nt=L(M);j(nt,()=>h(R),(it,mt)=>{S(mt(it,{get data(){return c()},get form(){return t.form},get params(){return t.page.params}}),C=>e()[2]=C,()=>{var C;return(C=e())==null?void 0:C[2]})}),g(v,M)},$$slots:{default:!0}}),v=>e()[1]=v,()=>{var v;return(v=e())==null?void 0:v[1]})}),g(D,k)},ot=D=>{const q=x(()=>t.constructors[1]);var k=V(),F=L(k);j(F,()=>h(q),(G,Y)=>{S(Y(G,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),v=>e()[1]=v,()=>{var v;return(v=e())==null?void 0:v[1]})}),g(D,k)};B(at,D=>{t.constructors[2]?D(st):D(ot,!1)})}g(f,K)},$$slots:{default:!0}}),f=>e()[0]=f,()=>{var f;return(f=e())==null?void 0:f[0]})}),g(_,T)},J=_=>{const A=x(()=>t.constructors[0]);var T=V(),w=L(T);j(w,()=>h(A),(b,I)=>{S(I(b,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),f=>e()[0]=f,()=>{var f;return(f=e())==null?void 0:f[0]})}),g(_,T)};B(p,_=>{t.constructors[1]?_(y):_(J,!1)})}var E=Tt(p,2);{var O=_=>{var A=Ft(),T=Lt(A);{var w=b=>{var I=jt();Dt(()=>xt(I,h(m))),g(b,I)};B(T,b=>{h(a)&&b(w)})}It(A),g(_,A)};B(E,_=>{h(s)&&_(O)})}g(r,u),bt()}const se=Bt(Yt),oe=[()=>o(()=>import("../nodes/0.D_38hT9S.js"),__vite__mapDeps([0,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]),import.meta.url),()=>o(()=>import("../nodes/1.CzSrpo2A.js"),__vite__mapDeps([26,1,20,3,4,5,18,2,16,17]),import.meta.url),()=>o(()=>import("../nodes/2.D-vKwnTC.js"),__vite__mapDeps([27,1,3,5,9,7]),import.meta.url),()=>o(()=>import("../nodes/3.2jAIqAuY.js"),__vite__mapDeps([28,1,20,3,2,17,16,18]),import.meta.url),()=>o(()=>import("../nodes/4.DYVet_v-.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,10,13,24,19,16,8,30,15,23]),import.meta.url),()=>o(()=>import("../nodes/5.C0AYWqwr.js"),__vite__mapDeps([31,1,3,4,5,6,7,8,11,12,21,32,10,30,15,16,33]),import.meta.url),()=>o(()=>import("../nodes/6.B5Ezgq8d.js"),__vite__mapDeps([34,1,3,4,5,6,7,8,35,10,11,12,24,21,30,15,16,18,2,36]),import.meta.url),()=>o(()=>import("../nodes/7.2YrTacps.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,10,13,11,12,21,23,38]),import.meta.url),()=>o(()=>import("../nodes/8.DGKslLJe.js"),__vite__mapDeps([39,1,3,4,5,6,7,8,10,11,12,21,13,24]),import.meta.url),()=>o(()=>import("../nodes/9.Vu2AXN40.js"),__vite__mapDeps([40,1,20,3,4,5,6,7,8,21,12,15,16,19,23,10,11,30,41]),import.meta.url),()=>o(()=>import("../nodes/10.CQzEYpYT.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,10,11,12,21,13,32,15,16,18,14,30,23,20,24,19]),import.meta.url),()=>o(()=>import("../nodes/11.CncxcJx_.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,21,12,13,17,16,18,24,23,10,30,15]),import.meta.url),()=>o(()=>import("../nodes/12.DxkSrFsy.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,11,12,24]),import.meta.url),()=>o(()=>import("../nodes/13.CD5qzYsO.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,10,11,12,21,13,32,24,23,46]),import.meta.url),()=>o(()=>import("../nodes/14.DUh3SXOF.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,10,11,12,21]),import.meta.url),()=>o(()=>import("../nodes/15.CyCv1LGV.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,35,10,21,12,13,14,24,11,30,15,16,23,49]),import.meta.url),()=>o(()=>import("../nodes/16.Cth-SSqa.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,11,12,24,10,21,30,15,16,23,51]),import.meta.url),()=>o(()=>import("../nodes/17.k6k7874Y.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,11,12,21,15,16,24,19,22,23]),import.meta.url),()=>o(()=>import("../nodes/18.C60Wuzj2.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,21,12,24]),import.meta.url),()=>o(()=>import("../nodes/19.BIUSI5ln.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,21,12,32,24,23]),import.meta.url),()=>o(()=>import("../nodes/20.DENLzARE.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,35,10,11,12,21,13,32,14,18,16,56]),import.meta.url)],ne=[],ie={"/":[3],"/(app)/activation":[4,[2]],"/(app)/contradictions":[5,[2]],"/(app)/dreams":[6,[2]],"/(app)/duplicates":[7,[2]],"/(app)/explore":[8,[2]],"/(app)/feed":[9,[2]],"/(app)/graph":[10,[2]],"/(app)/importance":[11,[2]],"/(app)/intentions":[12,[2]],"/(app)/memories":[13,[2]],"/(app)/patterns":[14,[2]],"/(app)/reasoning":[15,[2]],"/(app)/schedule":[16,[2]],"/(app)/settings":[17,[2]],"/(app)/stats":[18,[2]],"/(app)/timeline":[19,[2]],"/waitlist":[20]},rt={handleError:(({error:r})=>{console.error(r)}),reroute:(()=>{}),transport:{}},Ht=Object.fromEntries(Object.entries(rt.transport).map(([r,t])=>[r,t.decode])),me=Object.fromEntries(Object.entries(rt.transport).map(([r,t])=>[r,t.encode])),ue=!1,_e=(r,t)=>Ht[r](t);export{_e as decode,Ht as decoders,ie as dictionary,me as encoders,ue as hash,rt as hooks,ae as matchers,oe as nodes,se as root,ne as server_loads}; diff --git a/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.br b/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.br deleted file mode 100644 index 810af75e6cd493db086fd7b1d8c2ffe7858c1191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3559 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 diff --git a/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.gz b/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.gz deleted file mode 100644 index 8684e68cbdce4c311d3e90fdf16a386ad3c10b10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4093 zcmVodJ)IL=-dP!GINj z;4(6>y05S5KWmwm^)U!t5q~UMN1e(}|8n=jx{pmz2&bO}5Anyt7yhvAeK{$@kB>KB z2D=Zk2ya9;4>vbw;SwMJx_e^(XfDxzISZm{xJ+LiT|ON@EYTmi&Bv#q`*n%War5xE zy!V&j-x@z}?XxBQ54NLl>-hP55zepg4*qQ5_L4r|lgA5j?H1wjALns&dU&ubH~#Uh znFLGltuM*<-spLWzxeU_ckpG|KiK<$;lZ~eyjT7G+3wu!7U4e*ZtY*)&wrNqUxgPh zr*3bF|MNz7qspzdAQdem>l8blqRck13qTu|SnshoRiLsQd{n zC(cn>&e>MuZBPGQ2P)hHd@-aI}npCeP{64Lgip+Mc!^7v&?$z;dDJUhY@$02|8{J+OxY@SV2%Kl<+jFOgDO*R+4;S)t zJSt);R^w>%@#Qu?E2>~utiyY^bWz>DSkj?t9bNS+7r)Ow7x`^kjZtH0pB!H=@!PZ- z{rkt4Z(o)ZZOdw4f8*lfkuS~KvJQhUz4KpqzBFswdf0l{-r24ev(4VI8e65CCmQ>vOUil@Q8S9&uw{aTL0IO zOXC-lY;TNx89o`8qewKR3?-2?tt;$rMkF8z%J$Ie^O#8b`udBQ4ITs`8s>iss_Fb0 z9r>*vO)0o*bY(a&BIyk|3Zv@@-!&Xk?DN0~14o#&hK3i!$OA`&UE@aZhYNxGXmQugM8--a2nsj3ObF%_ zf07;w1H&b~gZ&`a8^i(|LF?Wi3MGzD4IUeRfZwSxLC|9dp{Yg(fjjEKN8my|xCobO z>>`}2@dNN@H4YK3)YwPptMLj>)DR)`G#KtQpC-bw8hZ#|)%X)3QsX%SKTr=N1b(O< z&JaGR@c^N##uL!;FA=yJ?+{`&zJRN-2vUt-5fU{%1FGQ&Qx(rQHs*;7w8Ga212sP7 z93FB3&r2-k_wby>8=b;LK&Tj9EHRpI9wwxoB0XFZIoAeED771Upxt_%`AA@9_WiQi zbN$7Hfp&9aiFCfTn2_qExL9I3x4BO!bu>?ll=J&fy_*CMdSPJP=gViT)?-lrv%XFO z)<;N?&}@--i&GZzW1cafY^@GKrU{ZO)V_(0Zd1rR};NI@KM*4IhG_5?}5p_D3u60J*t zi44;8ZNd~Br0LYsLuJ7@n`SsZk7GkTqX^vCIK{D}I#-!E7)pY494C>GWbA~4C=5h^ zH3^nwVM^09Rm%Sax1RA>p8JJh-;3cVt>;f}=152X7uuaacmx3>G4P2y2ka*j4r?~7 z*%Rvwp{qp<0}6w*uI1$M_$kBZ5g99`tVo7Y{Q5dh;ll?p6amJyahk%or|0si(S0Ix z-Q+54gu}V$`ohU-siIRZQzdkM4rh!-xW87ak^g=A6g1&NQ^*Y9FqpEuD)3Rp&8E)i z)0Eb4at{JQt3PrjN3nm6wI`$mt!Z>%j9m5v*3ilxAj_s2=4l1mMKuqcFhKFF2=gcK z0+eA5Ej{km>H4)ivsq$~hZN`b5q;xNoIeSa8wu2HJxp`mLU zy1wpMA3pTM80qUPTJb1w7-MTTU0-h^p^)496Fh4YM_TWOl4Nm@jj(H+-Q6oEJ%~|E z{7H6Es@9tMAr@%9zGly^h*5^4>3bNMudhAKro>rpOd~So)Qa0##5f(#0~t?21j#^1 ze&>tYS}CRVDc(|oSUus3sd^w! z6*Hx8ZVXvac?wL^pL&_9HbSj+cm6Hc^$M9e2;IaNkraN&T@xOWP3o1Z%hLd<$yetm z8fNvS=%#?k#wmm|`m7-t`$Cn7pE4YHv9P3wLw_g;RmE4VuM5i;K@a<_+8KUg=@l)`-!NHQVI(cQm7PB1XA!g z3>1YbJh@Leb3-Q?h(MQ>rZ3cEd^oz~y;D9A#Pq%3!K5&l(LE+YjxK~M9-$=WKp=0a zWhW$#m=i}Ef$HztCWUiG28#=HU}+>(pCO8vp1=b{>D?tLh#6!}BCUHYCPF(UVS8h* zOA_{oB!PfJVt9dpNHaIq5nD-{t(9`qB9>Tcx4H4KPfXokE8j%>f3>9WnHl5A7ja(* zG~0jGOjAW{Z7rax0;o`(F`fr+!>*t0u~PkPV}oX!kI`Ygb=Fo>IyyfXW6AnDS&Lp@ zJCFN0G;E5-p`x zQ)?0J&udY;LWo{pNz>vnGh;`35t6sqc* zx@dHW;+P$O{=N!SdCU$0dPN(JiwmP0N<%sCZSW^2>aXgitcZ^k4U6H)3*7L@a=kd>==3v2oWdHnT+!u;k3Xf}RD?^jb6cF| zKJl`ZtSb0yyWwiPiB)N(+{#w3N}}odU0-(yx3Wb%t*uC?4MbL>&7yb>b69HcS6S>xSCu zyMFjoGy0zEilA;h^*t0Dal{=_GlK9*@~Cb+d9IpiN6&SmFT7qK^^3XpX>IS*N7ozf z{YBwen`?er+cQ3`?U`WHS<8KkS#3W@f}mPiwYmj6B?#uUrHM@_S9FH8+7yBe>vH6s zk_i=1rHX<#2exNmXAWGRg6pHKc}FY8P>R@!crWWOQ9n`&XL)-+A%P47x?7sGxG@Mq z0WH=3KtL#Xgo2|%^NfQKy{_5`Gy7upqWgNDj|28XGPN#pp_4*Z&@Z`Dh2c(QM12y| z^>uQkI^`0D1C?+(c{TQm3}$5jJ@m!vtC zHE(sR+|JtggdMAHEn+7mp>^H6k634Fz`^R-rF`}!yCxK#*a^9$^?UN9L)<3^6v!QX zRYqKpujEcQXoia5tV;_BO+kT`=V#z75*a4qk`Ll}oOWUcPQg*-P>P^Nx^RP&lgD?h z5=VAIzUKzT$d0BKJ+8LM&MkV-(?7El@}MmGoLlrrfgHnaX3;GNFw8jHZ8n^79!@w9S8yJ->Fc8Mf{a$bebw4>D10sE|K?j<`x za*$)6*jQeBs9%W;es6^xkU=0U@avt)KargZ{)3eObUhjPtq!Z4P~f66*gfD zwqXZ$!7hPqgIxx@0(KSbO|ZAX-UfRI>|H3Apln0AtU7~o70R1!3YlC>oqDW9`q@eL z4V4zJxmKuD-cmZ1a;5AYC};BDDQEH4Y?YjCu%QB*unX_yy?F7qiucaMhO+kD7T7!Q zl(Be+w@SutA$BTmIwtn6lDGqvk_ukA@=nQ%mw_uJS8VOMSbSpC;^KAa3W?Ry{6frxmb1c;`FB@YnyFDKLDhb5C0M*$U8O;JrK{(xu9RoN zwyR1FRhCNGDtNCxi#NKf^rU-B&;Z}Q<^zHvi`g_GKUX`yBx3eTJD=y`^%~0jlT!~SJzdOwquisZ_ zvRQgF#JN863T(dH6^l3ds}v}|rGPz=t9KdQ1-w`K;;#i(Nq=jVy+6Yje}Aw_R`m^8 zlf-^+*RlA!hE)^xZ(4OQ`->kLl(jq)FQGH)jNV|XxPy`d5?eZdWAO@lIv}$%`5fyPnA+uQp zS7cuey`ZOX1vkV_U#L3~g(`R=7KmQZ(;N$qP#-8Yyx<4)2Ez9O&28$8C+?x|#c0-A zbx>SYVDewJZ~5a`EP$f1xO^;tVk>;L*UTtFDBQz`%eE9cvM diff --git a/apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js b/apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js new file mode 100644 index 0000000..36a42cf --- /dev/null +++ b/apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BmfNagK9.js","../chunks/Bzak7iHL.js","../chunks/TZu9D97Z.js","../chunks/wpu9U-D0.js","../chunks/D8mhvFt8.js","../chunks/DKve45Wd.js","../chunks/BWk3o_TN.js","../chunks/60_R_Vbt.js","../chunks/LDOJP_6N.js","../chunks/CnZzd20v.js","../chunks/g5OnrUYZ.js","../chunks/ByYB047u.js","../chunks/dCAmqaEc.js","../chunks/Bxs5UR9-.js","../chunks/BhIgFntf.js","../chunks/BLadwbF7.js","../chunks/EqHb-9AZ.js","../chunks/CqMQEF-F.js","../chunks/CcUbQ_Wl.js","../chunks/CZfHMhLI.js","../chunks/D7A-gG4Z.js","../assets/Icon.tTjeJXhC.css","../assets/0.Cf27G70K.css","../nodes/1.MT4EnKSP.js","../nodes/2.DEnQkIHv.js","../nodes/3.C8tBBpzF.js","../nodes/4.BpOpkZuP.js","../chunks/P1-U_Xsj.js","../chunks/BHDZZvku.js","../assets/PageHeader.Dmxpik8H.css","../chunks/DcKTNC6e.js","../chunks/DPdYG9yN.js","../nodes/5.CK5gRe3F.js","../assets/5.Tl8-WHJj.css","../nodes/6.DZyLUVX2.js","../chunks/CmbJHhgy.js","../assets/Dropdown.C2Z-7Phd.css","../assets/6.DQ_AfUnN.css","../nodes/7.yWYTsQ1Q.js","../chunks/DzesjbbJ.js","../assets/7.F0TwMZ5M.css","../nodes/8.D5dP0-E2.js","../nodes/9.Vz-x3Q_x.js","../nodes/10.DYHIt_do.js","../assets/10.g4OzM5ih.css","../nodes/11.Db7dgOeT.js","../chunks/C-SOZ1Oi.js","../chunks/DrafHjYM.js","../chunks/Dp1pzeXC.js","../assets/11.BxoW8Jf1.css","../nodes/12.CO2CXIFj.js","../nodes/13.BQoci-vM.js","../nodes/14.CDp0vmq1.js","../assets/14.Bjd0S47S.css","../nodes/15.C05K0kWE.js","../assets/15.BzuIe_Oj.css","../nodes/16.CrQpRrFW.js","../nodes/17.3ASmJvJ6.js","../assets/17.ChjqzJHo.css","../nodes/18.43xZFMsD.js","../assets/18.BnHgRQtR.css","../nodes/19.BYwd4oWS.js","../assets/19.C2qtIyf6.css","../nodes/20.Di2Q3Va0.js","../assets/20.CO50G5tF.css","../nodes/21.BAlasPHS.js","../nodes/22.C719k-1W.js","../assets/22.DKhUrxcR.css"])))=>i.map(i=>d[i]); +var U=e=>{throw TypeError(e)};var X=(e,t,r)=>t.has(e)||U("Cannot "+r);var n=(e,t,r)=>(X(e,t,"read from private field"),r?r.call(e):t.get(e)),B=(e,t,r)=>t.has(e)?U("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),F=(e,t,r,i)=>(X(e,t,"write to private field"),i?i.call(e,r):t.set(e,r),r);import{_ as o}from"../chunks/Dp1pzeXC.js";import{G as z,T as nt,q as mt,E as ut,U as ct,X as dt,L as lt,K as J,V as ft,M as pt,i as C,aq as vt,g as p,as as ht,ad as Et,ac as gt,p as Pt,a3 as Rt,o as Ot,O as Tt,f as R,h as yt,a as v,b as At,s as G,c as A,e as Lt,r as Dt,j as Q,u as I,m as It,t as Vt}from"../chunks/wpu9U-D0.js";import{h as bt,m as xt,u as kt,s as wt}from"../chunks/D8mhvFt8.js";import"../chunks/Bzak7iHL.js";import{o as jt}from"../chunks/TZu9D97Z.js";import{i as w}from"../chunks/DKve45Wd.js";import{B as Ct}from"../chunks/BWk3o_TN.js";import{b as V}from"../chunks/g5OnrUYZ.js";import{p as j}from"../chunks/ByYB047u.js";function b(e,t,r){var i;z&&(i=pt,nt());var _=new Ct(e);mt(()=>{var m=t()??null;if(z){var a=ct(i),s=a===ft,d=m!==null;if(s!==d){var x=dt();lt(x),_.anchor=x,J(!1),_.ensure(m,m&&(O=>r(O,m))),J(!0);return}}_.ensure(m,m&&(O=>r(O,m)))},ut)}function St(e){return class extends Mt{constructor(t){super({component:e,...t})}}}var h,c;class Mt{constructor(t){B(this,h);B(this,c);var m;var r=new Map,i=(a,s)=>{var d=gt(s,!1,!1);return r.set(a,d),d};const _=new Proxy({...t.props||{},$$events:{}},{get(a,s){return p(r.get(s)??i(s,Reflect.get(a,s)))},has(a,s){return s===vt?!0:(p(r.get(s)??i(s,Reflect.get(a,s))),Reflect.has(a,s))},set(a,s,d){return C(r.get(s)??i(s,d),d),Reflect.set(a,s,d)}});F(this,c,(t.hydrate?bt:xt)(t.component,{target:t.target,anchor:t.anchor,props:_,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError})),(!((m=t==null?void 0:t.props)!=null&&m.$$host)||t.sync===!1)&&ht(),F(this,h,_.$$events);for(const a of Object.keys(n(this,c)))a==="$set"||a==="$destroy"||a==="$on"||Et(this,a,{get(){return n(this,c)[a]},set(s){n(this,c)[a]=s},enumerable:!0});n(this,c).$set=a=>{Object.assign(_,a)},n(this,c).$destroy=()=>{kt(n(this,c))}}$set(t){n(this,c).$set(t)}$on(t,r){n(this,h)[t]=n(this,h)[t]||[];const i=(..._)=>r.call(this,..._);return n(this,h)[t].push(i),()=>{n(this,h)[t]=n(this,h)[t].filter(_=>_!==i)}}$destroy(){n(this,c).$destroy()}}h=new WeakMap,c=new WeakMap;const tr={};var Nt=Q('
'),qt=Q(" ",1);function Bt(e,t){Pt(t,!0);let r=j(t,"components",23,()=>[]),i=j(t,"data_0",3,null),_=j(t,"data_1",3,null),m=j(t,"data_2",3,null);Rt(()=>t.stores.page.set(t.page)),Ot(()=>{t.stores,t.page,t.constructors,r(),t.form,i(),_(),m(),t.stores.page.notify()});let a=G(!1),s=G(!1),d=G(null);jt(()=>{const u=t.stores.page.subscribe(()=>{p(a)&&(C(s,!0),Tt().then(()=>{C(d,document.title||"untitled page",!0)}))});return C(a,!0),u});const x=I(()=>t.constructors[2]);var O=qt(),Y=R(O);{var Z=u=>{const E=I(()=>t.constructors[0]);var g=A(),L=R(g);b(L,()=>p(E),(P,T)=>{V(T(P,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(l,Gt)=>{var H=A(),et=R(H);{var at=y=>{const S=I(()=>t.constructors[1]);var D=A(),M=R(D);b(M,()=>p(S),(N,q)=>{V(q(N,{get data(){return _()},get form(){return t.form},get params(){return t.page.params},children:(f,Yt)=>{var K=A(),st=R(K);b(st,()=>p(x),(it,_t)=>{V(_t(it,{get data(){return m()},get form(){return t.form},get params(){return t.page.params}}),k=>r()[2]=k,()=>{var k;return(k=r())==null?void 0:k[2]})}),v(f,K)},$$slots:{default:!0}}),f=>r()[1]=f,()=>{var f;return(f=r())==null?void 0:f[1]})}),v(y,D)},ot=y=>{const S=I(()=>t.constructors[1]);var D=A(),M=R(D);b(M,()=>p(S),(N,q)=>{V(q(N,{get data(){return _()},get form(){return t.form},get params(){return t.page.params}}),f=>r()[1]=f,()=>{var f;return(f=r())==null?void 0:f[1]})}),v(y,D)};w(et,y=>{t.constructors[2]?y(at):y(ot,!1)})}v(l,H)},$$slots:{default:!0}}),l=>r()[0]=l,()=>{var l;return(l=r())==null?void 0:l[0]})}),v(u,g)},$=u=>{const E=I(()=>t.constructors[0]);var g=A(),L=R(g);b(L,()=>p(E),(P,T)=>{V(T(P,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),l=>r()[0]=l,()=>{var l;return(l=r())==null?void 0:l[0]})}),v(u,g)};w(Y,u=>{t.constructors[1]?u(Z):u($,!1)})}var tt=yt(Y,2);{var rt=u=>{var E=Nt(),g=Lt(E);{var L=P=>{var T=It();Vt(()=>wt(T,p(d))),v(P,T)};w(g,P=>{p(s)&&P(L)})}Dt(E),v(u,E)};w(tt,u=>{p(a)&&u(rt)})}v(e,O),At()}const rr=St(Bt),er=[()=>o(()=>import("../nodes/0.BmfNagK9.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]),import.meta.url),()=>o(()=>import("../nodes/1.MT4EnKSP.js"),__vite__mapDeps([23,1,15,3,4,13,2,12]),import.meta.url),()=>o(()=>import("../nodes/2.DEnQkIHv.js"),__vite__mapDeps([24,1,3,8,6]),import.meta.url),()=>o(()=>import("../nodes/3.C8tBBpzF.js"),__vite__mapDeps([25,1,15,3,2,4,12,13]),import.meta.url),()=>o(()=>import("../nodes/4.BpOpkZuP.js"),__vite__mapDeps([26,1,2,3,4,5,6,27,7,9,19,14,11,18,28,8,20,21,29,30,31]),import.meta.url),()=>o(()=>import("../nodes/5.CK5gRe3F.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,27,16,9,11,28,8,20,21,29,30,12,13,19,14,33]),import.meta.url),()=>o(()=>import("../nodes/6.DZyLUVX2.js"),__vite__mapDeps([34,1,3,4,5,6,7,27,16,11,28,8,20,21,29,35,10,36,30,37]),import.meta.url),()=>o(()=>import("../nodes/7.yWYTsQ1Q.js"),__vite__mapDeps([38,1,3,4,5,6,7,39,27,19,16,11,13,2,28,8,20,21,29,31,40]),import.meta.url),()=>o(()=>import("../nodes/8.D5dP0-E2.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,27,9,16,18,28,8,11,20,21,29,30,31]),import.meta.url),()=>o(()=>import("../nodes/9.Vz-x3Q_x.js"),__vite__mapDeps([42,1,3,4,5,6,7,27,16,9,19,28,8,11,20,21,29,30,31]),import.meta.url),()=>o(()=>import("../nodes/10.DYHIt_do.js"),__vite__mapDeps([43,1,3,4,5,6,7,27,16,11,14,18,28,8,20,21,29,30,44]),import.meta.url),()=>o(()=>import("../nodes/11.Db7dgOeT.js"),__vite__mapDeps([45,46,1,2,3,4,5,6,7,16,9,11,13,10,18,47,15,48,20,21,35,36,19,14,49]),import.meta.url),()=>o(()=>import("../nodes/12.CO2CXIFj.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,27,16,9,12,13,19,18,11,28,8,20,21,29,30,31]),import.meta.url),()=>o(()=>import("../nodes/13.BQoci-vM.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,27,19,28,8,11,20,21,29,35,16,10,36,30,31]),import.meta.url),()=>o(()=>import("../nodes/14.CDp0vmq1.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,27,16,9,19,18,28,8,11,20,21,29,30,35,10,36,31,53]),import.meta.url),()=>o(()=>import("../nodes/15.C05K0kWE.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,27,11,28,8,20,21,29,30,17,14,18,19,55]),import.meta.url),()=>o(()=>import("../nodes/16.CrQpRrFW.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,27,16,28,8,11,20,21,29,30]),import.meta.url),()=>o(()=>import("../nodes/17.3ASmJvJ6.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,39,27,16,9,10,19,11,18,28,8,20,21,29,30,31,58]),import.meta.url),()=>o(()=>import("../nodes/18.43xZFMsD.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,19,16,11,18,28,8,20,21,29,35,10,36,60]),import.meta.url),()=>o(()=>import("../nodes/19.BYwd4oWS.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,27,16,11,19,14,17,18,28,8,20,21,29,62]),import.meta.url),()=>o(()=>import("../nodes/20.Di2Q3Va0.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,27,16,19,28,8,11,20,21,29,30,31,18,64]),import.meta.url),()=>o(()=>import("../nodes/21.BAlasPHS.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,27,16,19,18,28,8,11,20,21,29,30,35,10,36]),import.meta.url),()=>o(()=>import("../nodes/22.C719k-1W.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,39,16,9,47,10,13,67]),import.meta.url)],ar=[],or={"/":[3],"/(app)/activation":[4,[2]],"/(app)/blackbox":[5,[2]],"/(app)/contradictions":[6,[2]],"/(app)/dreams":[7,[2]],"/(app)/duplicates":[8,[2]],"/(app)/explore":[9,[2]],"/(app)/feed":[10,[2]],"/(app)/graph":[11,[2]],"/(app)/importance":[12,[2]],"/(app)/intentions":[13,[2]],"/(app)/memories":[14,[2]],"/(app)/memory-prs":[15,[2]],"/(app)/patterns":[16,[2]],"/(app)/reasoning":[17,[2]],"/(app)/schedule":[18,[2]],"/(app)/settings":[19,[2]],"/(app)/stats":[20,[2]],"/(app)/timeline":[21,[2]],"/waitlist":[22]},W={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},Ft=Object.fromEntries(Object.entries(W.transport).map(([e,t])=>[e,t.decode])),sr=Object.fromEntries(Object.entries(W.transport).map(([e,t])=>[e,t.encode])),ir=!1,_r=(e,t)=>Ft[e](t);export{_r as decode,Ft as decoders,or as dictionary,sr as encoders,ir as hash,W as hooks,tr as matchers,er as nodes,rr as root,ar as server_loads}; diff --git a/apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js.br b/apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js.br new file mode 100644 index 0000000000000000000000000000000000000000..35fff681ce839a0dd9eaf52cb4ac579669933b3f GIT binary patch literal 3191 zcmV--42bg^l_(<-!o~q15KkhiH61`L66|33;}g`@U`=%#p9qa$aH(lGc&D0{zcaK2 zeCm#-3CsGNuT_ik&hzM;I?ijHi^e5Cq?0my!zh`*|F3D?_i|cIgRL^SslsC5Q(`yatyzM6CD_kZs9=&4pQdNIgOMqsEcc`vykB0yQ7$L5j_ z+NxhAPQ-=C#r}d~vJL;|ua7u_uGEr-2d`bm0|@vEqht!|QyXgTpuh}pangOKYd_Z*5QbZBuPPTn zH^9>e$1Ojp198AD_R?pkgLt%qB4M8FokMyRAqPC9H_1Sd0Kq^bv7&YE1Cv0=zD5`&m=Af!r=~RZSHI@G z07mgxhEPsZ_(rL(*Ui}~oGbt-@Qu@8cTv|wQTUa6_k3y~1tb`}&5SVhgJ>WSg#!^0 za|(z7(GU6D-25X*pb!YDq8@oM8&wKN*0}vMiMIKmQ4|PIs;KQUa3(L}+Zk%NVzRJ3 zDy2(J|AH>RGT||RQNVrXnAR$^12Mqc7@w$8XCv?iICp-v$YqMcIN*f^UgL_I7I1r4 zKp&_4K=>h{!#);O2EzV3)iSrcKzcWK@ir;O1fal;^+)Z}$gUKQ=9_N)Y03;R4e;A1 zlgwS{0&Sm^+H(&NU;vlC3w)0KXZeWavGq{D6$vB;fzV>^EqcH%!JyqHpiCSRhysos z9=oIXNeYYso*Sk6R*VDLws!HqwS*RG#lm8okiShV_d@O3j=q@DEEvfB2L>*50nRs+Z zY>8rmY*FDBH_^kNu%M7?;gh!PjD##Z;=$GfxfUiERe)VRIT?pqtQ6eR&Gt7(SNo!e=K7vH3GD%^LE7SJTnipy(^m)RuHwNWHXUmDQ8 z>Uyj^#y}Q>ooA5d<^DId`Es5o!uR4=T$kolb^`r#k+Gzo*fEQ7@++wNYDsyX zCqwrJ8&U$0ROl>ee25W}R|*;-Y-{_r5QH;U?;uD7<))^WlS}o3A*KTsF1#KL*`t8} z05}2>@m<|8$ogRFRps?qEfeH95->+&|EbMMpJA@|6izsGw|e2ROw(fD@^zHjQjMXU zp&v#zOZdr>&d|TU*%dL^sU3Gb)RGcrv)3_csp~y>jnx-wi&rhC690M{O;MQUt&Aw- zGG~LNR8#ji?(VwZYAmNFT1al86KLva8EJ-JJK*(V77Qp4sA-KrZn)z2kzh*RcEehw zS*tz?hRKH#yk66#1g05>A5c^Sn&iY|@Xy;f6`Sbz65`i{U(<$SCbw zm(c&`m&+hW{a}7y^Qh*l1>fQP;S_8`SPY17>)2UcbbPqYi<%qBSG?=q6Ll$bc=(W$ z)UBlDb6-17V-jd}9fWPMZoGLYwdDk|96K4_>fF5v!^rm5Z*Kk{j-XV5m-1v}-;FHc zMVy)(j&9=3#_4WMQwiT9L5p+eV0ACtp`Oq>`3FEw-77TkPvDmEN>k0NJUjuSwTXuC z+XQ6|-}RQ3>k6EOg|@dJDd0uiL{(OtfcU;$z$5UjIR?L$n^v;qV=L5K-M)S<4=R^S zK^!w2SLfCPPFs}NFsd~xM4&<{dAr@ptgN@gsy7%-C*S$>vETRE;NcdQR%I)5s^1O- z?8{@TgHq8(MfUvR44Eb*C~U08L|qVooMZaNPErhJ|8~&T1)!@3K>v?v&7Ol_Q>d#Clv07 zv2fYvA(1C}TS93!pR zXKpO93!)CaoNVpoKGY+zzqXz?uerB6NJgAlB(t#DEK9$j!EPWCYif-Kg~0U#z|jVq(bO`{tH zj|v3%Z4tXD?Rfg3@5N=?idl~CJtM-xqTZERG&*Y8urq7_!<{E@eH$;4j|SqHJ6iuM zo3nADKHE;T7y|KZDO>K}GbK(~+IuidN2jeb%rO4{WmAl;Zeiy9CwZai3CkFJ?Msbi zd(gh|ke{W^H_3wi8fbP9d<|qjD3SCV`_voO8ei($z`hB$M;$lnNZk28X!r%{gp%NX~`Q zd4v-aoyLK~L5#=nPiNuCL(ss9DL7DL!`?g`aGDMNVWv354{Vy9wod=SKQ80ud6NJ! zfn;`>-;x_asIS_cNHRNpI#CG!IHb-9DC`8J&k* z({w7KaT~OJ1LzGj`^)?8PaTyvwFH-bZ9~Y39o2+fVI~Dp71`E5lmtZoYEYHKhUOKG z7N=~2$H-8n4LMx^2$JGX&=lM*aHW??p+b{`HOU(g=Wy?TFNJ02JZ>;RJ?JqZa0d$nZ*>w-w_U9K(hQIBoy{ literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js.gz b/apps/dashboard/build/_app/immutable/entry/app.Dg6iMka9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..54e99b8ffa40b441e2311413d223991bd0750ec6 GIT binary patch literal 3666 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js b/apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js new file mode 100644 index 0000000..c225395 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js @@ -0,0 +1 @@ +import{a as r}from"../chunks/dCAmqaEc.js";import{w as t}from"../chunks/Bxs5UR9-.js";export{t as load_css,r as start}; diff --git a/apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js.br b/apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js.br new file mode 100644 index 0000000000000000000000000000000000000000..bed107602f37a219afe86c2fa37513a2754259ad GIT binary patch literal 116 zcmV-)0E_<{bpQw~3T&4(Ta&wTNHPELv0P5wmg;$yKbeeT$?_%$g6^Uq=9mx}IOLEH zlvsjoNmMG7rDaY~l}^sDH$2!CzkmV?I1GdX4_Qf1rEW_Mwi+#wOfvES literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js.gz b/apps/dashboard/build/_app/immutable/entry/start.BvFEq078.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..dcc3604b87c2f6682d8b5c086a9750f57d58a58f GIT binary patch literal 108 zcmb2|=3oE;CgIa(bWiAOt@I1=&g4=-!-HM%3n-v~!$3Ijkd^dwim8+5W5bO6fxjj4{_Le5RB5?5vOTfn3y%eERRH|tB6g#5>?E| M@N|oAR2k3?05;|;Hvj+t diff --git a/apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js b/apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js new file mode 100644 index 0000000..4397bdd --- /dev/null +++ b/apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js @@ -0,0 +1,86 @@ +import"../chunks/Bzak7iHL.js";import{o as et}from"../chunks/TZu9D97Z.js";import{c as tt,f as ve,a as v,h as s,e as a,r as t,t as F,j as h,p as Ye,n as ce,g as e,b as Qe,s as le,d as kt,i as f,u as Y,m as st}from"../chunks/wpu9U-D0.js";import{s as g,d as Ue,a as ie,e as Ge,b as _t,w as ct,g as vt}from"../chunks/D8mhvFt8.js";import{i as z}from"../chunks/DKve45Wd.js";import{e as Fe,a as Ae,i as Be,s as ee,r as yt}from"../chunks/60_R_Vbt.js";import{s as rt}from"../chunks/LDOJP_6N.js";import{b as wt}from"../chunks/CnZzd20v.js";import{b as $t}from"../chunks/g5OnrUYZ.js";import{s as pe,a as He}from"../chunks/ByYB047u.js";import{s as At,o as Ct,g as nt}from"../chunks/dCAmqaEc.js";import{b as _e}from"../chunks/Bxs5UR9-.js";import{s as pt,b as ut,a as mt,e as Mt,w as it,u as Tt,i as Et,f as St}from"../chunks/BhIgFntf.js";import{i as jt}from"../chunks/BLadwbF7.js";import{s as ft}from"../chunks/EqHb-9AZ.js";import{t as Ie}from"../chunks/CqMQEF-F.js";import{a as qe}from"../chunks/CZfHMhLI.js";import{I as Le}from"../chunks/D7A-gG4Z.js";const Dt=()=>{const n=At;return{page:{subscribe:n.page.subscribe},navigating:{subscribe:n.navigating.subscribe},updated:n.updated}},It={subscribe(n){return Dt().page.subscribe(n)}};var Ft=h('
');function Nt(n){const l=()=>pe(pt,"$suppressedCount",o),[o,i]=He();var b=tt(),M=ve(b);{var k=N=>{var w=Ft(),y=s(a(w),2),p=a(y);t(y),t(w),F(()=>g(p,`Actively forgetting ${l()??""} ${l()===1?"memory":"memories"}`)),v(N,w)};z(M,N=>{l()>0&&N(k)})}v(n,b),i()}var Lt=h(''),Bt=h('
');function Vt(n,l){Ye(l,!1);const o=()=>pe(Ie,"$toasts",i),[i,b]=He(),M={DreamCompleted:"✦",ConsolidationCompleted:"◉",ConnectionDiscovered:"⟷",MemoryPromoted:"↑",MemoryDemoted:"↓",MemorySuppressed:"◬",MemoryUnsuppressed:"◉",Rac1CascadeSwept:"✺",MemoryDeleted:"✕",HookVerdictRecorded:"⚑"};function k(p){return M[p]??"◆"}function N(p){Ie.dismiss(p.id)}function w(p,c){(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),Ie.dismiss(c.id))}jt();var y=Bt();Fe(y,5,o,p=>p.id,(p,c)=>{var T=Lt(),L=s(a(T),2),B=a(L),Z=a(B),Q=a(Z,!0);t(Z);var te=s(Z,2),ue=a(te,!0);t(te),t(B);var u=s(B,2),m=a(u,!0);t(u),t(L),ce(2),t(T),F($=>{Ae(T,"aria-label",`${e(c).title??""}: ${e(c).body??""}. Click to dismiss.`),ft(T,`--toast-color: ${e(c).color??""}; --toast-dwell: ${e(c).dwellMs??""}ms;`),g(Q,$),g(ue,e(c).title),g(m,e(c).body)},[()=>k(e(c).type)]),ie("click",T,()=>N(e(c))),ie("keydown",T,$=>w($,e(c))),Ge("mouseenter",T,()=>Ie.pauseDwell(e(c).id,e(c).dwellMs)),Ge("mouseleave",T,()=>Ie.resumeDwell(e(c).id)),Ge("focus",T,()=>Ie.pauseDwell(e(c).id,e(c).dwellMs)),Ge("blur",T,()=>Ie.resumeDwell(e(c).id)),v(p,T)}),t(y),v(n,y),Qe(),b()}Ue(["click","keydown"]);function Ve(n){const l=n.data;if(!l||typeof l!="object")return null;const o=l.timestamp??l.at??l.occurred_at;if(o==null)return null;if(typeof o=="number")return Number.isFinite(o)?o>1e12?o:o*1e3:null;if(typeof o!="string")return null;const i=Date.parse(o);return Number.isFinite(i)?i:null}const Ze=10,ht=3e4,Rt=Ze*ht;function Ot(n,l){const o=l-Rt,i=new Array(Ze).fill(0);for(const M of n){if(M.type==="Heartbeat")continue;const k=Ve(M);if(k===null||kl)continue;const N=Math.min(Ze-1,Math.floor((k-o)/ht));i[N]+=1}const b=Math.max(1,...i);return i.map(M=>({count:M,ratio:M/b}))}function Pt(n,l){const o=l-864e5;for(const i of n){if(i.type!=="DreamCompleted")continue;return(Ve(i)??l)>=o?i:null}return null}function zt(n){if(!n||!n.data)return null;const l=n.data,o=typeof l.insights_generated=="number"?l.insights_generated:typeof l.insightsGenerated=="number"?l.insightsGenerated:null;return o!==null&&Number.isFinite(o)?o:null}function Kt(n,l){let o=null,i=null;for(const N of n)if(!o&&N.type==="DreamStarted"&&(o=N),!i&&N.type==="DreamCompleted"&&(i=N),o&&i)break;if(!o)return!1;const b=Ve(o)??l,M=l-300*1e3;return b=i}return!1}var Wt=h(' at risk',1),Gt=h('0 at risk',1),Yt=h(' at risk',1),Qt=h(' intentions',1),Ut=h('— intentions'),Xt=h('· insights',1),Zt=h(' Last dream: ',1),Jt=h('No recent dream'),ea=h('
'),ta=h('telemetry unavailable'),aa=h('· fail-open',1),sa=h(' vetoes · appeals ',1),ra=h('
DREAMING...
',1),na=h(''),ia=h('
memories · avg retention
');function la(n,l){Ye(l,!0);const o=()=>pe(mt,"$avgRetention",M),i=()=>pe(Mt,"$eventFeed",M),b=()=>pe(ut,"$memoryCount",M),[M,k]=He(),N=Y(()=>Math.round((o()??0)*100)),w=Y(()=>(o()??0)>=.5);let y=le(null);async function p(){try{const r=await qe.retentionDistribution();if(Array.isArray(r.endangered)&&r.endangered.length>0){f(y,r.endangered.length,!0);return}const d=r.distribution??[];let _=0;for(const V of d){const G=/^(\d+)/.exec(V.range);if(!G)continue;const re=Number.parseInt(G[1],10);Number.isFinite(re)&&re<30&&(_+=V.count??0)}f(y,_,!0)}catch{f(y,null)}}let c=le(null);async function T(){var r;try{const d=await qe.intentions("active");f(c,d.total??((r=d.intentions)==null?void 0:r.length)??0,!0)}catch{f(c,null)}}let L=le(kt(Date.now()));const B=Y(()=>{const r=i(),d=Pt(r,e(L)),_=d?Ve(d)??e(L):null,V=_!==null?e(L)-_:null;return{isDreaming:Kt(r,e(L)),recent:d,recentMsAgo:V,insights:zt(d)}}),Z=Y(()=>Ot(i(),e(L)));let Q=le(null),te=le(!1);async function ue(){try{f(Q,await qe.sanhedrin.telemetry(7),!0),f(te,!1)}catch{f(Q,null),f(te,!0)}}const u=Y(()=>Ht(i(),e(L)));et(()=>{p(),T(),ue();const r=setInterval(()=>{f(L,Date.now(),!0)},1e3),d=setInterval(()=>{p(),T(),ue()},6e4);return()=>{clearInterval(r),clearInterval(d)}});var m=ia();let $;var be=a(m),xe=a(be),Ne=a(xe);let Ce;var S=s(Ne,2);let j;t(xe);var x=s(xe,2),ae=a(x,!0);t(x);var K=s(x,6);let U;var he=a(K);t(K),ce(2),t(be);var A=s(be,4),D=a(A);{var q=r=>{var d=Wt(),_=ve(d),V=a(_,!0);t(_),ce(2),F(()=>g(V,e(y))),v(r,d)},oe=r=>{var d=Gt();ce(2),v(r,d)},E=r=>{var d=Yt();ce(2),v(r,d)};z(D,r=>{e(y)!==null&&e(y)>0?r(q):e(y)===0?r(oe,1):r(E,!1)})}t(A);var X=s(A,4),se=a(X);{var de=r=>{var d=Qt(),_=ve(d);let V;var G=s(_,2);let re;var ne=a(G,!0);t(G),ce(2),F(()=>{V=ee(_,1,"inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,V,{"bg-node-pattern":e(c)>5,"animate-ping-slow":e(c)>5,"bg-muted":e(c)<=5}),re=ee(G,1,"tabular-nums svelte-1kk3799",null,re,{"text-node-pattern":e(c)>5,"text-text":e(c)>0&&e(c)<=5,"text-muted":e(c)===0}),g(ne,e(c))}),v(r,d)},Se=r=>{var d=Ut();v(r,d)};z(se,r=>{e(c)!==null?r(de):r(Se,!1)})}t(X);var J=s(X,4),Me=a(J);{var me=r=>{var d=Zt(),_=s(ve(d),4),V=a(_,!0);t(_);var G=s(_,2);{var re=ne=>{var I=Xt(),C=s(ve(I),2),P=a(C,!0);t(C),ce(2),F(()=>g(P,e(B).insights)),v(ne,I)};z(G,ne=>{e(B).insights!==null&&ne(re)})}F(ne=>g(V,ne),[()=>qt(e(B).recentMsAgo)]),v(r,d)},ge=r=>{var d=Jt();v(r,d)};z(Me,r=>{e(B).recent&&e(B).recentMsAgo!==null?r(me):r(ge,!1)})}t(J);var je=s(J,4),ke=s(a(je),2);Fe(ke,21,()=>e(Z),Be,(r,d)=>{var _=ea();F(V=>ft(_,`height: ${V??""}%; opacity: ${e(d).count===0?.18:.5+e(d).ratio*.5};`),[()=>Math.max(10,e(d).ratio*100)]),v(r,_)}),t(ke),t(je);var De=s(je,4),Oe=s(a(De),2);{var Pe=r=>{var d=ta();v(r,d)},ze=r=>{var d=sa(),_=ve(d),V=a(_,!0);t(_);var G=s(_,6),re=a(G,!0);t(G);var ne=s(G,4);{var I=C=>{var P=aa(),O=s(ve(P),2),Te=a(O,!0);t(O),ce(2),F(()=>g(Te,e(Q).failOpen)),v(C,P)};z(ne,C=>{var P;(P=e(Q))!=null&&P.failOpen&&C(I)})}F(()=>{var C,P,O;g(V,((P=(C=e(Q))==null?void 0:C.byVerdict)==null?void 0:P.VETO)??"—"),g(re,((O=e(Q))==null?void 0:O.appeals)??"—")}),v(r,d)};z(Oe,r=>{e(te)?r(Pe):r(ze,!1)})}t(De);var R=s(De,2);{var H=r=>{var d=ra();ce(2),v(r,d)};z(R,r=>{e(B).isDreaming&&r(H)})}var W=s(R,4);{var fe=r=>{var d=na();v(r,d)};z(W,r=>{e(u)&&r(fe)})}t(m),F(()=>{$=ee(m,1,"ambient-strip relative flex h-9 w-full items-center gap-0 overflow-hidden border-b border-synapse/15 bg-black/40 px-3 text-[11px] text-dim backdrop-blur-md svelte-1kk3799",null,$,{"ambient-flash":e(u)}),Ce=ee(Ne,1,"absolute inline-flex h-full w-full animate-ping rounded-full opacity-75 svelte-1kk3799",null,Ce,{"bg-recall":e(w),"bg-warning":!e(w)}),j=ee(S,1,"relative inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,j,{"bg-recall":e(w),"bg-warning":!e(w)}),g(ae,b()),U=ee(K,1,"svelte-1kk3799",null,U,{"text-recall":e(w),"text-warning":!e(w)}),g(he,`${e(N)??""}%`)}),v(n,m),Qe(),k()}var oa=h(" "),da=h('
  • '),ca=h(' ',1),va=h('

    Appeal recorded.

    '),pa=h('

    No appealable veto in this receipt.

    '),ua=h('
    Claim

    Verdict

    Precedent
      Fix

      Appeal
      '),ma=h('
      ');function fa(n,l){Ye(l,!0);const o=["PASS","NOTE","CAUTION","VETO","APPEALED"];let i=le(null),b=le(""),M=le(!1),k=le(null),N=le(null),w=Y(()=>{var u;return((u=e(i))==null?void 0:u.verdictBar)??(e(b)?"CAUTION":"NOTE")}),y=Y(()=>{var u,m;return((u=e(i))==null?void 0:u.claims.find($=>$.decision==="veto"))??((m=e(i))==null?void 0:m.claims.find($=>$.decision==="appealed"))??null}),p=Y(()=>{var u;return e(y)??((u=e(i))==null?void 0:u.claims[0])??null}),c=Y(()=>!!e(i)||!!e(b));et(()=>{T();const u=window.setInterval(T,4e3);return()=>window.clearInterval(u)});async function T(){var u;try{const m=await qe.sanhedrin.latest();f(i,m.receipt,!0),f(b,""),((u=m.receipt)==null?void 0:u.verdictBar)==="VETO"&&m.receipt.id!==e(N)&&(f(M,!0),f(N,m.receipt.id,!0))}catch(m){f(b,m instanceof Error?m.message:String(m),!0)}}async function L(u){var m;if(!(!e(y)||((m=e(i))==null?void 0:m.verdictBar)!=="VETO")){f(k,u,!0);try{const $=await qe.sanhedrin.appeal(u,void 0,e(y).id,e(i).id);f(i,$.receipt,!0),f(M,!0),f(b,"")}catch($){f(b,$ instanceof Error?$.message:String($),!0)}finally{f(k,null)}}}function B(u){if(!u)return"";const m=new Date(u);return Number.isNaN(m.getTime())?"":m.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Z(u){var m;return(m=u==null?void 0:u.precedent)!=null&&m.length?u.precedent.map($=>$.summary??$.command??"Precedent recorded.").slice(0,3):["No precedent attached."]}var Q=tt(),te=ve(Q);{var ue=u=>{var m=ma(),$=a(m),be=s(a($),2);Fe(be,21,()=>o,Be,(A,D)=>{var q=oa();let oe;var E=a(q,!0);t(q),F(()=>{Ae(q,"aria-current",e(D)===e(w)?"true":void 0),oe=ee(q,1,"svelte-1j425e6",null,oe,{active:e(D)===e(w)}),g(E,e(D))}),v(A,q)}),t(be);var xe=s(be,2),Ne=a(xe);t(xe);var Ce=s(xe,2),S=a(Ce);{var j=A=>{var D=st();F(()=>g(D,e(b))),v(A,D)},x=A=>{var D=st();F(()=>g(D,e(i).summary)),v(A,D)};z(S,A=>{e(b)?A(j):e(i)&&A(x,1)})}t(Ce);var ae=s(Ce,2),K=a(ae,!0);t(ae),t($);var U=s($,2);{var he=A=>{var D=ua(),q=a(D),oe=a(q),E=s(a(oe),2),X=a(E,!0);t(E),t(oe);var se=s(oe,2),de=s(a(se),2),Se=a(de);t(de),t(se);var J=s(se,2),Me=s(a(J),2);Fe(Me,21,()=>Z(e(p)),Be,(R,H)=>{var W=da(),fe=a(W,!0);t(W),F(()=>g(fe,e(H))),v(R,W)}),t(Me),t(J);var me=s(J,2),ge=s(a(me),2),je=a(ge,!0);t(ge),t(me),t(q);var ke=s(q,2),De=s(a(ke),2);{var Oe=R=>{var H=ca(),W=ve(H),fe=a(W,!0);t(W);var r=s(W,2),d=a(r,!0);t(r);var _=s(r,2),V=a(_,!0);t(_),F((G,re,ne)=>{W.disabled=G,g(fe,e(k)==="stale"?"Saving":"Stale"),r.disabled=re,g(d,e(k)==="wrong"?"Saving":"Wrong"),_.disabled=ne,g(V,e(k)==="too_strict"?"Saving":"Too strict")},[()=>!!e(k),()=>!!e(k),()=>!!e(k)]),ie("click",W,()=>L("stale")),ie("click",r,()=>L("wrong")),ie("click",_,()=>L("too_strict")),v(R,H)},Pe=R=>{var H=va();v(R,H)},ze=R=>{var H=pa();v(R,H)};z(De,R=>{e(y)&&e(i).verdictBar==="VETO"?R(Oe):e(i).verdictBar==="APPEALED"?R(Pe,1):R(ze,!1)})}t(ke),t(D),F(()=>{var R,H,W,fe;g(X,((R=e(p))==null?void 0:R.text)??e(i).draftPreview),g(Se,`${((H=e(p))==null?void 0:H.decision)??e(i).overall??""} · ${((W=e(p))==null?void 0:W.evidence_state)??e(w)??""}`),g(je,((fe=e(p))==null?void 0:fe.fix)||"No change required.")}),v(A,D)};z(U,A=>{e(M)&&e(i)&&A(he)})}t(m),F((A,D)=>{ee(m,1,A,"svelte-1j425e6"),Ae($,"aria-expanded",e(M)),g(Ne,`Current verdict: ${e(w)??""}`),g(K,D)},[()=>`verdict-bar tone-${e(w).toLowerCase()}`,()=>{var A;return B((A=e(i))==null?void 0:A.createdAt)}]),ie("click",$,()=>f(M,!e(M))),v(u,m)};z(te,u=>{e(c)&&u(ue)})}v(n,Q),Qe()}Ue(["click"]);const gt="vestige.theme",lt="vestige-theme-light",Re=ct("dark"),Je=ct(!0),ot=_t([Re,Je],([n,l])=>n==="auto"?l?"dark":"light":n);function ha(n){return n==="dark"||n==="light"||n==="auto"}function ga(n){if(ha(n)){Re.set(n);try{localStorage.setItem(gt,n)}catch{}}}function Xe(){const n=vt(Re);ga(n==="dark"?"light":n==="light"?"auto":"dark")}function ba(){if(document.getElementById(lt))return;const n=document.createElement("style");n.id=lt,n.textContent=` +/* Vestige light-mode overrides — injected by theme.ts. + * Activated by [data-theme='light'] on . + * Tokens mirror the real names used in app.css so the cascade stays clean. */ +[data-theme='light'] { + /* Core surface palette (slate scale) */ + --color-void: #f8fafc; /* slate-50 — page background */ + --color-abyss: #f1f5f9; /* slate-100 */ + --color-deep: #e2e8f0; /* slate-200 */ + --color-surface: #f1f5f9; /* slate-100 */ + --color-elevated: #e2e8f0; /* slate-200 */ + --color-subtle: #cbd5e1; /* slate-300 */ + --color-muted: #94a3b8; /* slate-400 */ + --color-dim: #475569; /* slate-600 */ + --color-text: #0f172a; /* slate-900 */ + --color-bright: #020617; /* slate-950 */ +} + +/* Baseline body/html wiring — app.css sets these against the dark + * tokens; we just let the variables do the work. Reassert for clarity. */ +[data-theme='light'] html, +html[data-theme='light'] { + background: var(--color-void); + color: var(--color-text); +} + +/* Glass surfaces — recompose on a light canvas. The original alphas + * are tuned for dark; invert-and-tint for light so panels still read + * as elevated instead of vanishing. */ +[data-theme='light'] .glass { + background: rgba(255, 255, 255, 0.65); + border: 1px solid rgba(99, 102, 241, 0.12); + box-shadow: + inset 0 1px 0 0 rgba(255, 255, 255, 0.6), + 0 4px 24px rgba(15, 23, 42, 0.08); +} +[data-theme='light'] .glass-subtle { + background: rgba(255, 255, 255, 0.55); + border: 1px solid rgba(99, 102, 241, 0.1); + box-shadow: + inset 0 1px 0 0 rgba(255, 255, 255, 0.5), + 0 2px 12px rgba(15, 23, 42, 0.06); +} +[data-theme='light'] .glass-sidebar { + background: rgba(248, 250, 252, 0.82); + border-right: 1px solid rgba(99, 102, 241, 0.14); + box-shadow: + inset -1px 0 0 0 rgba(255, 255, 255, 0.4), + 4px 0 24px rgba(15, 23, 42, 0.08); +} +[data-theme='light'] .glass-panel { + background: rgba(255, 255, 255, 0.75); + border: 1px solid rgba(99, 102, 241, 0.14); + box-shadow: + inset 0 1px 0 0 rgba(255, 255, 255, 0.5), + 0 8px 32px rgba(15, 23, 42, 0.1); +} + +/* Halve glow intensity — neon accents stay recognizable without + * washing out on slate-50. */ +[data-theme='light'] .glow-synapse { + box-shadow: 0 0 10px rgba(99, 102, 241, 0.15), 0 0 30px rgba(99, 102, 241, 0.05); +} +[data-theme='light'] .glow-dream { + box-shadow: 0 0 10px rgba(168, 85, 247, 0.15), 0 0 30px rgba(168, 85, 247, 0.05); +} +[data-theme='light'] .glow-memory { + box-shadow: 0 0 10px rgba(59, 130, 246, 0.15), 0 0 30px rgba(59, 130, 246, 0.05); +} + +/* Ambient orbs are gorgeous on black and blinding on white. Tame them. */ +[data-theme='light'] .ambient-orb { + opacity: 0.18; + filter: blur(100px); +} + +/* Scrollbar recolor for the lighter surface. */ +[data-theme='light'] ::-webkit-scrollbar-thumb { + background: #cbd5e1; +} +[data-theme='light'] ::-webkit-scrollbar-thumb:hover { + background: #94a3b8; +} +`,document.head.appendChild(n)}function dt(n){document.documentElement.dataset.theme=n}let ye=null,Ee=null,we=null,$e=null;function xa(){ye&&Ee&&ye.removeEventListener("change",Ee),$e==null||$e(),we==null||we(),ye=null,Ee=null,$e=null,we=null,ba();let n="dark";try{const l=localStorage.getItem(gt);(l==="dark"||l==="light"||l==="auto")&&(n=l)}catch{}return Re.set(n),ye=window.matchMedia("(prefers-color-scheme: dark)"),Je.set(ye.matches),Ee=l=>Je.set(l.matches),ye.addEventListener("change",Ee),dt(vt(ot)),$e=ot.subscribe(dt),we=Re.subscribe(()=>{}),()=>{ye&&Ee&&ye.removeEventListener("change",Ee),ye=null,Ee=null,$e==null||$e(),we==null||we(),$e=null,we=null}}var ka=h('');function _a(n){const l=()=>pe(Re,"$theme",o),[o,i]=He(),b={dark:"Dark",light:"Light",auto:"Auto (system)"},M={dark:"light",light:"auto",auto:"dark"};let k=Y(l),N=Y(()=>M[e(k)]),w=Y(()=>`Toggle theme: ${b[e(k)]} (click for ${b[e(N)]})`);var y=ka(),p=a(y),c=a(p);let T;var L=s(c,2);let B;var Z=s(L,2);let Q;t(p),t(y),F(()=>{Ae(y,"aria-label",e(w)),Ae(y,"title",e(w)),Ae(y,"data-mode",e(k)),T=ee(c,0,"icon svelte-1cmi4dh",null,T,{active:e(k)==="dark"}),B=ee(L,0,"icon svelte-1cmi4dh",null,B,{active:e(k)==="light"}),Q=ee(Z,0,"icon svelte-1cmi4dh",null,Q,{active:e(k)==="auto"})}),ie("click",y,function(...te){Xe==null||Xe.apply(this,te)}),v(n,y),i()}Ue(["click"]);var ya=h('
      '),wa=h('
      '),$a=h(''),Aa=h(' '),Ca=h('
      ',1),Ma=h(''),Ta=h('
      No matches
      '),Ea=h('
      esc
      '),Sa=h(" ",1);function Qa(n,l){Ye(l,!0);const o=()=>pe(It,"$page",w),i=()=>pe(Et,"$isConnected",w),b=()=>pe(ut,"$memoryCount",w),M=()=>pe(mt,"$avgRetention",w),k=()=>pe(Tt,"$uptimeSeconds",w),N=()=>pe(pt,"$suppressedCount",w),[w,y]=He();let p=le(!1),c=le(""),T=le(void 0),L=Y(()=>o().url.pathname.startsWith(_e)?o().url.pathname.slice(_e.length)||"/":o().url.pathname),B=Y(()=>e(L)==="/waitlist"||e(L).startsWith("/waitlist/"));et(()=>{e(B)||it.connect();const S=xa();function j(x){if(e(B))return;if((x.metaKey||x.ctrlKey)&&x.key==="k"){x.preventDefault(),f(p,!e(p)),f(c,""),e(p)&&requestAnimationFrame(()=>{var U;return(U=e(T))==null?void 0:U.focus()});return}if(x.key==="Escape"&&e(p)){f(p,!1);return}if(x.target instanceof HTMLInputElement||x.target instanceof HTMLTextAreaElement)return;if(x.key==="/"){x.preventDefault();const U=document.querySelector('input[type="text"]');U==null||U.focus();return}const K={g:"/graph",m:"/memories",t:"/timeline",f:"/feed",e:"/explore",i:"/intentions",s:"/stats",r:"/reasoning",a:"/activation",d:"/dreams",c:"/schedule",p:"/importance",u:"/duplicates",x:"/contradictions",n:"/patterns"}[x.key.toLowerCase()];K&&!x.metaKey&&!x.ctrlKey&&!x.altKey&&(x.preventDefault(),nt(`${_e}${K}`))}return window.addEventListener("keydown",j),()=>{it.disconnect(),window.removeEventListener("keydown",j),S()}}),Ct(S=>{if(!(!document.startViewTransition||window.matchMedia("(prefers-reduced-motion: reduce)").matches))return new Promise(j=>{document.startViewTransition(async()=>{j(),await S.complete})})});const Z=[{href:"/blackbox",label:"Black Box",icon:"blackbox",shortcut:"B"},{href:"/memory-prs",label:"Memory PRs",icon:"memorypr",shortcut:"Q"},{href:"/graph",label:"Graph",icon:"graph",shortcut:"G"},{href:"/reasoning",label:"Reasoning",icon:"reasoning",shortcut:"R"},{href:"/memories",label:"Memories",icon:"memories",shortcut:"M"},{href:"/timeline",label:"Timeline",icon:"timeline",shortcut:"T"},{href:"/feed",label:"Feed",icon:"feed",shortcut:"F"},{href:"/explore",label:"Explore",icon:"explore",shortcut:"E"},{href:"/activation",label:"Activation",icon:"activation",shortcut:"A"},{href:"/dreams",label:"Dreams",icon:"dreams",shortcut:"D"},{href:"/schedule",label:"Schedule",icon:"schedule",shortcut:"C"},{href:"/importance",label:"Importance",icon:"importance",shortcut:"P"},{href:"/duplicates",label:"Duplicates",icon:"duplicates",shortcut:"U"},{href:"/contradictions",label:"Contradictions",icon:"contradictions",shortcut:"X"},{href:"/patterns",label:"Patterns",icon:"patterns",shortcut:"N"},{href:"/intentions",label:"Intentions",icon:"intentions",shortcut:"I"},{href:"/stats",label:"Stats",icon:"stats",shortcut:"S"},{href:"/settings",label:"Settings",icon:"settings",shortcut:","}],Q=Z.slice(0,5);function te(S,j){const x=j.startsWith(_e)?j.slice(_e.length)||"/":j;return S==="/graph"?x==="/"||x==="/graph":x.startsWith(S)}let ue=Y(()=>e(c)?Z.filter(S=>S.label.toLowerCase().includes(e(c).toLowerCase())):Z);function u(S){f(p,!1),f(c,""),nt(`${_e}${S}`)}var m=Sa(),$=ve(m);{var be=S=>{var j=tt(),x=ve(j);rt(x,()=>l.children),v(S,j)},xe=S=>{var j=Ca(),x=s(ve(j),6),ae=a(x),K=a(ae),U=a(K),he=a(U);Le(he,{name:"logo",size:18,strokeWidth:1.8}),t(U),ce(2),t(K);var A=s(K,2);Fe(A,21,()=>Z,Be,(I,C)=>{const P=Y(()=>te(e(C).href,o().url.pathname));var O=ya(),Te=a(O),We=a(Te);Le(We,{get name(){return e(C).icon},size:18}),t(Te);var Ke=s(Te,2),bt=a(Ke,!0);t(Ke);var at=s(Ke,2),xt=a(at,!0);t(at),t(O),F(()=>{Ae(O,"href",`${_e??""}${e(C).href??""}`),ee(O,1,`nav-link group flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all duration-200 text-sm + ${e(P)?"bg-synapse/15 text-synapse-glow border border-synapse/30 shadow-[0_0_12px_rgba(99,102,241,0.15)] nav-active-border":"text-dim hover:text-text hover:bg-white/[0.03] border border-transparent"}`,"svelte-12qhfyh"),g(bt,e(C).label),g(xt,e(C).shortcut)}),v(I,O)}),t(A);var D=s(A,2),q=a(D),oe=a(q);Le(oe,{name:"command",size:14}),ce(4),t(q),t(D);var E=s(D,2),X=a(E),se=a(X),de=s(se,2),Se=a(de,!0);t(de);var J=s(de,2),Me=a(J);_a(Me),t(J),t(X);var me=s(X,2),ge=a(me),je=a(ge);t(ge);var ke=s(ge,2),De=a(ke);t(ke);var Oe=s(ke,2);{var Pe=I=>{var C=wa(),P=a(C);t(C),F(O=>g(P,`up ${O??""}`),[()=>St(k())]),v(I,C)};z(Oe,I=>{k()>0&&I(Pe)})}t(me);var ze=s(me,2);{var R=I=>{var C=$a(),P=a(C);Nt(P),t(C),v(I,C)};z(ze,I=>{N()>0&&I(R)})}t(E),t(ae);var H=s(ae,2),W=a(H);la(W,{});var fe=s(W,2);fa(fe,{});var r=s(fe,2),d=a(r);rt(d,()=>l.children),t(r),t(H);var _=s(H,2),V=a(_),G=a(V);Fe(G,17,()=>Q,Be,(I,C)=>{const P=Y(()=>te(e(C).href,o().url.pathname));var O=Aa(),Te=a(O);Le(Te,{get name(){return e(C).icon},size:20});var We=s(Te,2),Ke=a(We,!0);t(We),t(O),F(()=>{Ae(O,"href",`${_e??""}${e(C).href??""}`),ee(O,1,`flex flex-col items-center gap-0.5 px-3 py-2 rounded-lg transition-all min-w-[3.5rem] + ${e(P)?"text-synapse-glow":"text-muted"}`),g(Ke,e(C).label)}),v(I,O)});var re=s(G,2);t(V),t(_),t(x);var ne=s(x,2);Vt(ne,{}),F(I=>{Ae(K,"href",`${_e??""}/graph`),ee(se,1,`w-2 h-2 rounded-full ${i()?"bg-recall animate-pulse-glow":"bg-decay"}`),g(Se,i()?"Connected":"Offline"),g(je,`${b()??""} memories`),g(De,`${I??""}% retention`)},[()=>(M()*100).toFixed(0)]),ie("click",q,()=>{f(p,!0),f(c,""),requestAnimationFrame(()=>{var I;return(I=e(T))==null?void 0:I.focus()})}),ie("click",re,()=>{f(p,!0),f(c,""),requestAnimationFrame(()=>{var I;return(I=e(T))==null?void 0:I.focus()})}),v(S,j)};z($,S=>{e(B)?S(be):S(xe,!1)})}var Ne=s($,2);{var Ce=S=>{var j=Ea(),x=a(j),ae=a(x),K=a(ae),U=a(K);Le(U,{name:"search",size:16}),t(K);var he=s(K,2);yt(he),$t(he,E=>f(T,E),()=>e(T)),ce(2),t(ae);var A=s(ae,2),D=a(A);Fe(D,17,()=>e(ue),Be,(E,X)=>{var se=Ma(),de=a(se),Se=a(de);Le(Se,{get name(){return e(X).icon},size:17}),t(de);var J=s(de,2),Me=a(J,!0);t(J);var me=s(J,2),ge=a(me,!0);t(me),t(se),F(()=>{g(Me,e(X).label),g(ge,e(X).shortcut)}),ie("click",se,()=>u(e(X).href)),v(E,se)});var q=s(D,2);{var oe=E=>{var X=Ta();v(E,X)};z(q,E=>{e(ue).length===0&&E(oe)})}t(A),t(x),t(j),ie("keydown",j,E=>{E.key==="Escape"&&f(p,!1)}),ie("click",j,E=>{E.target===E.currentTarget&&f(p,!1)}),ie("keydown",he,E=>{E.key==="Enter"&&e(ue).length>0&&u(e(ue)[0].href)}),wt(he,()=>e(c),E=>f(c,E)),v(S,j)};z(Ne,S=>{e(p)&&!e(B)&&S(Ce)})}v(n,m),Qe(),y()}Ue(["click","keydown"]);export{Qa as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js.br b/apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js.br new file mode 100644 index 0000000000000000000000000000000000000000..758b7bbaf240c8b2e9417a0fbfed194f247fe499 GIT binary patch literal 10223 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js.gz b/apps/dashboard/build/_app/immutable/nodes/0.BmfNagK9.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..738f8521d6a124c1173a4cf6055c0dcb3ab2e96d GIT binary patch literal 11654 zcmV;1EqT%(iwFP!000026V-j&ZX3yx;B)&cO4T~*tUk#SNnLDHE)lXWw%U>`OS0^? zRx2f|l4MDBb5&9#EfJWf0S3D-gPp}J76a_tJT0(~1MK5`%K4H-L}pbbZ?fIpXRycJ z5Xs8S$cV_u$jr!yC_hZ%RG7BC>~?$6ZMOXK3%h;lzdo>UGIPVn()-w8nZd=VoyMV7 z_3Tsc`OfpFpY*COR271@;q#7DhM%+x9~tHF!Dxz=sDO_>dIKL_n!v}eoJR2Ja@xU8 zX$wByahkzrz^MnHw}Sfc*`_^gMMH!?g<(JGJ%3->sp=RappJy|ULojniP|gG-<60$Ff%(@&f423egEsHDFhNl%WFQ_ zh9;)t;+MQF^=NA z*q@?t`}5(u-Mz}5UKMHjJYDru`}JY>U|+Ag4^ADOi(VStC#=I8_gSx%xvAgcjmU;4cJW|DBX;L^nDC>{c)jwuUb~lgOmMFe z+3MS9ME8YLwj_~tFZ(uj1hFQ%Bat;4ZQQZc*b`2d{Pe=}?+iC!S>~ASfDa5`@Gz^m zJQ6%LIxMNwjWq5>9``EkUJw|qIQ4j{J}MVKZmq2B?d@GIuU3s#NBdo?8p)utVkE;# z&0aGEABf5zGqNu8;(q0#dR4uu)sw+h+G#OTTVJ8;E4040Myqyh&AK!V;fsJf<{=N` z)aRMu_R^F`A{ZKgOlpWYsd#ZeGO}Khq&&;~I5Nlj!EfkDpna$AM_dFgsrbv6-EJkh$LM!%$U+<^OnKxBSmjZ>f z8%N)Oj4@L-B?z3NlU*4T@;8NF)@#jZ1C{4CNz%9ja`r9Eo7=e3_Jd%GFc6i1z9n!`ph~PB%*xWkKQ|1E!ZTFiU^{lD|a@1tz2 z;2%tS!ra<6%UtI1(>_lG;Q4<`&;{=Q-K4MM`1YKqp6`ki?!p2CCI9mu%~8p+TapyZ z+u=oW*=(AB`RBhkN2Ruc3j5sl{4Dgdj3l=2S!HpbB-FL;Nn+pfq2oB_E^7IQhvI=@ zT1!hLv6GbF@ks3OHtPkTr8J-}0JTOpLTS07^Af)9aWbT9G^UBO3H?&+OzFBa=K!D_ zpsqVZUH8&q4|2vw6S8$r&}J$g&m>OnSX|&xvcCnD+`KC$09@=i&}OW?-zKVu z*m2CL7q)m>^l*efZ9m)dBVTY5Tg`a0#%uLv+=zd!@s-9Tj0MNcMCwPKSy=kc4imul zGy_;0b9(WurjLL}ve_r@)T*>AoE5%GPlWS{|J)TN^WG{wUT~svBB<{~yl-r!DI1bc z+_GW$AysRm9j8QAJT&6A5n1RSt?qb3Da`pNcd5YE8K6Lb50H|p!L>~ ze0+GgeGxxA+-?Swm5-c5Cc1X$N8}T))F}RH2XUMda$AY5<*u--4gcck^3P69QQ1;$ z*nrfiZQFjqAKwmHLJplxa__=UuW?9ISYaB6%dL^6sn_EvPCQ#*l*|6fISxrPur{4I9~o_M%l^OMUKQjvdU#lnVmw0(atWuglMA=)N15O0itMVx zBc8&^s+7j&tm4L0(^rqSEJ~%wDy-rKIh0FFvqZfyPTm{E-hcyhp$xm%Y zs|t#RiS*#e1!8 zYq`E^jXW$WDSD0LL}RDMS98jIC#b~QIJL@&&?+Xv(wb3fBCzA`UARsS9UvosQ-SR`jOxf2veqa@cuW@ zWlV#z=*RB`^zZ*Rp91)^{H*%;u>J-PNWH1k|7i}|9%wE=VT%5L`Pc95_kd->K!A;} zlRTfw1&Q%5k4}Wi=0~xSal1-9zx$ON^Rx`l{n#%E=$=A zy#HDn@{Ws`XJ2XcyLhDrzS0Te{vV*xlZ3M%n-u1BN(y1Com4#k&i6{gNDk&3ty>a? zZbd5qC@b)mfm;*99l8NGeBB!CM@DYpnXq#`YCwI&~08!Yk+cE?lJ;YP~U9>T~(%A=0x{#9q&#O~=a+5Ic-Kyps}e!cx0 zH1J)gWcqxY`hSf6EpFlZzUXSQ(BhyFR;qt8H(xA#9ldhCw}RNc{r%{Ep8|1}eCE4h zgCuF3C0st2+Qs@?pyV*lM7~ed7e-ee-TgTFTcBbW%q) ze9Z{`s3&-45H!St$3$wZRI^Ft{@5gfq4mYEn0%AB-QCKnQcgVb@Vfh=4x8$4=ES%1 zIOzPrJPtbF!sBvT1aa{bkx@hK?I`N^VrOh9CXWxoQ^RA!?AsY$_V?7&Hjg<)3)4eT zsm(d4lm3*kw4ya>@{lxjCDgN-~=t-8!Q_} zu2B$_5bIu~LuDjN9oA>QFg}BsUs15*!|1nq@SUJ33ysRQpGo6#YV*ir5pEc)r6v8R z9pF;ES+(xlWJqTeArGY)Nm+qCCxv^iqRVFU;u2}Na;lp7>Kx2hUT)laa#!fWE??-~Xx~N^!TGiT^w1TD_XyPwcs!L1c>d(%( zjTUHN?+9qR0t!Yh6K)r2L?(|$fUrB4>1V{kJGpeDWW86izFZ=Ri7JGf)<&DS)UyR_ zk(y0HQpeNkS<;Bxyo-I$s5Vl?U66t?{9GNs1HkWA5WJFz;y$sgT%KPlNh-v`Cl>Xb zV?k2N$$@3jE5~b|bK+UeCOkkxF+F##lsOq6R<3kY^Sz(pVgZguZ%RON9cg&#%VDPV!C_RIQN`*q*}c^%!1UNCqavqGtpyP)W|*)XBKmht2053uLV} zIiTe*Aan}0X6jAX)gg}PI$zBvkQ}gpv$SZCT6FvYvJ$UtL&s-C@^4YP%D@$GXwdr^*&r|9)rxu27 zpS*C^Mljm}nOA_!V`nAVamwkvTWr(gcJr}rro`hgrl-6Z)Q@sde{nMM5eD@T#^VYOz+*KE ziH>mb8(E`00<~ZsMck6k51$3WMw-qBCy1P(9i8G|#u<8;Gqh+9qc#q!g7b!G}yGLwGMOENZBA8InSj#E(A6}kS%$Sb<4 zy4-iR72IQo0o=Dz-i}e;&H%t$1>o(Zz@5STdS}_NvwxfL2qkWt9^>FgoEDHb$gu-8 ztpz1;$3>f^rERh=MUUhIw@r`f+YOLHLXI7>E!&Rod$#S?PcQ9qWVZz{%>;u7Tjv4YO#az#wJ z%Yp#g-o7QF$CP645Bx1i7L^5$E6>=4Gm<;tS(q3<`)_e_ZI^R;yx zrhf6IL+x_usCOito&R(#Cq+a<<>qy(+?Hdo5u4*yN7JI7G#v+iVNy^?-K^Hv_&Qog z10RgcF8iwA^NhC2ch>k1Zikl)cM{`dUiB?hCtw0Wr&9aHasq@VUukv}D_aTNcjCPQ z+%}1>pXJt+98z!UmP1uACSV$A3}%^>cfd3;X2c)A!N_}<3}3*9l}_q=lc2HUSnamY z15bjVs=OUAKgGDbaT`V1>t{qKjTIua6hYz2GIs`mevcU> z+w%;P7v}NS>8VN0qqk?fCN;OW-knQ439?U&PY#qw0*CdthHQ&-mEW zjE|u+!z30k!816#wTVwdTPc5K9BWY!5FofHd2Gain<#fnOGSO#_ZA!nwiHWCq)iSL z)9 zaZ2(vw>U9|%Ff-?3ei;@XR^}A&E}%*#$m`Juh}$aQDZkuQowuu-G6I*mA zS0$gFIJd{f(x|uVF!EU)vp*L{w=GUSs{k71g=A7rc3_6VX1ysd@fwnA7T7vDw9t+L zYL$`4fSA*JdB@Pupx~B&7vai%{ucc#Ef=|gcEF{DwyxQUOJndhFRa0*V4dQMQ8&(( zB6r6@)skBcb|`8;+0~9UqJzh3`c^);Ws8k3L67G1Rs#1SoSvu)5isWZmbP#fD}VEZyybFI zP81hA(dG#`#tV}Z-Jm9or8|WNMB^HLO+U~!-{_E!l#mk#C&2iMabm+x94{z+%l1;% z7RM>S^LZb%+bJ3}2zfoL>FZ(}m^TM&7YhOz>HY8jW1`qWNAxSqwyKAh+uHDga`v`dNf4V z2u^$I&Sq(;M|wPuu74+OReCt$WxmVq2skce!tZcfba}{48kCPJ_^1-VRe?!QxZ?_9 zdMv#)E&2=of<0R-oGU>tPB{IAUs7@r(csc@Hsx8OCt|Z1G-a!XDM2+N?JU=2TJj8R zgmoVt@VjiFejv1R|I}eB?hHX#_a__<3nY>o)Btv8ry@=<6$cmlf`_CdXp~=W>s!N* za8aJ;5xEoOgj*W`zCfp0pk89tln6BxOG;=hMi4JAc6%Z0&N^J|!cBW5UJmy?5(rD} zKsWL}i>h+$Rc%mpLr`@ak?ngC%WJ<3(45!6w!}i*I?98KDn* zaP(J7!NeD_kY`2@T!Q@wtar8xX#--c;mR;{BNJ?x8E{aGY~$zUCo{XdfAYif&&GC~ zawF@dZRT<#VF4F{8zh61nUTSk+X4VTRAlgT1*T2I__6)0&D!pUq5duZY+#GZS{0c9 z8ClTS-a)(b7zEZDW*LB}wb$CuHzpy}s@1XT9_LBJ_>tH7vvzg5!}>&ZMacyGxzKsQ zaZJX0cm#S&1OVJ^d2773F@em=M0LCzZWup4Uu7$;XH%rEPLk?}4dchvr)z8L1z)u4 z>l4*MHXFu|)pqS^olSG*`9$?rDlZ{_tk$dRwWpJ~KVQS@qbDHcFImRn4#9wM^ktAq zqwmA13rDvQIxaF0yNnyG!{FG6LI@KS1X!Q|Zy0?po!Q~s0p)kF8ngnQ8J?8dew^Og z#tCOx#!~^QPr!7Q`eHa=cmXH+1pdyG?Na<2&?V6&*xGpVg9_%?i*PaDP&{}A*0X$O z$hi&YxiE<{4pWs$9bmXDx?`DboOQVor+x=C~@1kW09YAA%D_bM%f*tV}c>l z%YSW+8s(p=y}kyFk(X-?qm~Q|%(NkEKYvb*TD4A%`f3d-*XpwJpdw=k8c%-s!H+U7 zj4C#*8r6B-SoFycKU9s?WMI_ckIaw+6;`ORT8BE-XE+d#kfbK#w^6qCU6lP+!qyaF z^<-c`>Zh56t$&>`-{Y{unMv8|Gw7}ge-PfYdP!MDP4TbMw>po&N>1NA3RjWBRjl

      x2&=0VDE6-J%W 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 n=kt;return{page:{subscribe:n.page.subscribe},navigating:{subscribe:n.navigating.subscribe},updated:n.updated}},Tt={subscribe(n){return Mt().page.subscribe(n)}};var Et=g('

      ');function St(n){const l=()=>oe(lt,"$suppressedCount",o),[o,i]=He();var x=Ze(),T=le(x);{var y=N=>{var C=Et(),$=s(a(C),2),p=a($);t($),t(C),I(()=>m(p,`Actively forgetting ${l()??""} ${l()===1?"memory":"memories"}`)),v(N,C)};G(T,N=>{l()>0&&N(y)})}v(n,x),i()}var jt=g(''),Dt=g('
      ');function It(n,l){We(l,!1);const o=()=>oe(De,"$toasts",i),[i,x]=He(),T={DreamCompleted:"✦",ConsolidationCompleted:"◉",ConnectionDiscovered:"⟷",MemoryPromoted:"↑",MemoryDemoted:"↓",MemorySuppressed:"◬",MemoryUnsuppressed:"◉",Rac1CascadeSwept:"✺",MemoryDeleted:"✕",HookVerdictRecorded:"⚑"};function y(p){return T[p]??"◆"}function N(p){De.dismiss(p.id)}function C(p,c){(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),De.dismiss(c.id))}At();var $=Dt();Ie($,5,o,p=>p.id,(p,c)=>{var E=jt(),L=s(a(E),2),V=a(L),Z=a(V),z=a(Z,!0);t(Z);var ae=s(Z,2),de=a(ae,!0);t(ae),t(V);var u=s(V,2),f=a(u,!0);t(u),t(L),fe(2),t(E),I(M=>{we(E,"aria-label",`${e(c).title??""}: ${e(c).body??""}. Click to dismiss.`),ct(E,`--toast-color: ${e(c).color??""}; --toast-dwell: ${e(c).dwellMs??""}ms;`),m(z,M),m(de,e(c).title),m(f,e(c).body)},[()=>y(e(c).type)]),re("click",E,()=>N(e(c))),re("keydown",E,M=>C(M,e(c))),Ge("mouseenter",E,()=>De.pauseDwell(e(c).id,e(c).dwellMs)),Ge("mouseleave",E,()=>De.resumeDwell(e(c).id)),Ge("focus",E,()=>De.pauseDwell(e(c).id,e(c).dwellMs)),Ge("blur",E,()=>De.resumeDwell(e(c).id)),v(p,E)}),t($),v(n,$),qe(),x()}ze(["click","keydown"]);function Be(n){const l=n.data;if(!l||typeof l!="object")return null;const o=l.timestamp??l.at??l.occurred_at;if(o==null)return null;if(typeof o=="number")return Number.isFinite(o)?o>1e12?o:o*1e3:null;if(typeof o!="string")return null;const i=Date.parse(o);return Number.isFinite(i)?i:null}const Qe=10,ut=3e4,Ft=Qe*ut;function Nt(n,l){const o=l-Ft,i=new Array(Qe).fill(0);for(const T of n){if(T.type==="Heartbeat")continue;const y=Be(T);if(y===null||yl)continue;const N=Math.min(Qe-1,Math.floor((y-o)/ut));i[N]+=1}const x=Math.max(1,...i);return i.map(T=>({count:T,ratio:T/x}))}function Lt(n,l){const o=l-864e5;for(const i of n){if(i.type!=="DreamCompleted")continue;return(Be(i)??l)>=o?i:null}return null}function Vt(n){if(!n||!n.data)return null;const l=n.data,o=typeof l.insights_generated=="number"?l.insights_generated:typeof l.insightsGenerated=="number"?l.insightsGenerated:null;return o!==null&&Number.isFinite(o)?o:null}function Bt(n,l){let o=null,i=null;for(const N of n)if(!o&&N.type==="DreamStarted"&&(o=N),!i&&N.type==="DreamCompleted"&&(i=N),o&&i)break;if(!o)return!1;const x=Be(o)??l,T=l-300*1e3;return x=i}return!1}var Pt=g(' at risk',1),Kt=g('0 at risk',1),Ht=g(' at risk',1),Gt=g(' intentions',1),Wt=g('— intentions'),qt=g('· insights',1),zt=g(' Last dream: ',1),Yt=g('No recent dream'),Qt=g('
      '),Ut=g('telemetry unavailable'),Xt=g('· fail-open',1),Zt=g(' vetoes · appeals ',1),Jt=g('
      DREAMING...
      ',1),ea=g(''),ta=g('
      memories · avg retention
      ');function aa(n,l){We(l,!0);const o=()=>oe(dt,"$avgRetention",T),i=()=>oe(_t,"$eventFeed",T),x=()=>oe(ot,"$memoryCount",T),[T,y]=He(),N=q(()=>Math.round((o()??0)*100)),C=q(()=>(o()??0)>=.5);let $=ne(null);async function p(){try{const r=await Ke.retentionDistribution();if(Array.isArray(r.endangered)&&r.endangered.length>0){h($,r.endangered.length,!0);return}const d=r.distribution??[];let A=0;for(const R of d){const b=/^(\d+)/.exec(R.range);if(!b)continue;const w=Number.parseInt(b[1],10);Number.isFinite(w)&&w<30&&(A+=R.count??0)}h($,A,!0)}catch{h($,null)}}let c=ne(null);async function E(){var r;try{const d=await Ke.intentions("active");h(c,d.total??((r=d.intentions)==null?void 0:r.length)??0,!0)}catch{h(c,null)}}let L=ne(ht(Date.now()));const V=q(()=>{const r=i(),d=Lt(r,e(L)),A=d?Be(d)??e(L):null,R=A!==null?e(L)-A:null;return{isDreaming:Bt(r,e(L)),recent:d,recentMsAgo:R,insights:Vt(d)}}),Z=q(()=>Nt(i(),e(L)));let z=ne(null),ae=ne(!1);async function de(){try{h(z,await Ke.sanhedrin.telemetry(7),!0),h(ae,!1)}catch{h(z,null),h(ae,!0)}}const u=q(()=>Ot(i(),e(L)));Xe(()=>{p(),E(),de();const r=setInterval(()=>{h(L,Date.now(),!0)},1e3),d=setInterval(()=>{p(),E(),de()},6e4);return()=>{clearInterval(r),clearInterval(d)}});var f=ta();let M;var he=a(f),ge=a(he),Fe=a(ge);let $e;var j=s(Fe,2);let D;t(ge);var k=s(ge,2),se=a(k,!0);t(k);var Y=s(k,6);let P;var pe=a(Y);t(Y),fe(2),t(he);var S=s(he,4),F=a(S);{var _=r=>{var d=Pt(),A=le(d),R=a(A,!0);t(A),fe(2),I(()=>m(R,e($))),v(r,d)},K=r=>{var d=Kt();fe(2),v(r,d)},X=r=>{var d=Ht();fe(2),v(r,d)};G(F,r=>{e($)!==null&&e($)>0?r(_):e($)===0?r(K,1):r(X,!1)})}t(S);var ce=s(S,4),ue=a(ce);{var me=r=>{var d=Gt(),A=le(d);let R;var b=s(A,2);let w;var O=a(b,!0);t(b),fe(2),I(()=>{R=te(A,1,"inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,R,{"bg-node-pattern":e(c)>5,"animate-ping-slow":e(c)>5,"bg-muted":e(c)<=5}),w=te(b,1,"tabular-nums svelte-1kk3799",null,w,{"text-node-pattern":e(c)>5,"text-text":e(c)>0&&e(c)<=5,"text-muted":e(c)===0}),m(O,e(c))}),v(r,d)},be=r=>{var d=Wt();v(r,d)};G(ue,r=>{e(c)!==null?r(me):r(be,!1)})}t(ce);var J=s(ce,4),Ae=a(J);{var Ce=r=>{var d=zt(),A=s(le(d),4),R=a(A,!0);t(A);var b=s(A,2);{var w=O=>{var H=qt(),W=s(le(H),2),ee=a(W,!0);t(W),fe(2),I(()=>m(ee,e(V).insights)),v(O,H)};G(b,O=>{e(V).insights!==null&&O(w)})}I(O=>m(R,O),[()=>Rt(e(V).recentMsAgo)]),v(r,d)},Ne=r=>{var d=Yt();v(r,d)};G(Ae,r=>{e(V).recent&&e(V).recentMsAgo!==null?r(Ce):r(Ne,!1)})}t(J);var Te=s(J,4),Ee=s(a(Te),2);Ie(Ee,21,()=>e(Z),Ve,(r,d)=>{var A=Qt();I(R=>ct(A,`height: ${R??""}%; opacity: ${e(d).count===0?.18:.5+e(d).ratio*.5};`),[()=>Math.max(10,e(d).ratio*100)]),v(r,A)}),t(Ee),t(Te);var Se=s(Te,4),Oe=s(a(Se),2);{var je=r=>{var d=Ut();v(r,d)},Le=r=>{var d=Zt(),A=le(d),R=a(A,!0);t(A);var b=s(A,6),w=a(b,!0);t(b);var O=s(b,4);{var H=W=>{var ee=Xt(),ie=s(le(ee),2),Pe=a(ie,!0);t(ie),fe(2),I(()=>m(Pe,e(z).failOpen)),v(W,ee)};G(O,W=>{var ee;(ee=e(z))!=null&&ee.failOpen&&W(H)})}I(()=>{var W,ee,ie;m(R,((ee=(W=e(z))==null?void 0:W.byVerdict)==null?void 0:ee.VETO)??"—"),m(w,((ie=e(z))==null?void 0:ie.appeals)??"—")}),v(r,d)};G(Oe,r=>{e(ae)?r(je):r(Le,!1)})}t(Se);var B=s(Se,2);{var Q=r=>{var d=Jt();fe(2),v(r,d)};G(B,r=>{e(V).isDreaming&&r(Q)})}var U=s(B,4);{var ve=r=>{var d=ea();v(r,d)};G(U,r=>{e(u)&&r(ve)})}t(f),I(()=>{M=te(f,1,"ambient-strip relative flex h-9 w-full items-center gap-0 overflow-hidden border-b border-synapse/15 bg-black/40 px-3 text-[11px] text-dim backdrop-blur-md svelte-1kk3799",null,M,{"ambient-flash":e(u)}),$e=te(Fe,1,"absolute inline-flex h-full w-full animate-ping rounded-full opacity-75 svelte-1kk3799",null,$e,{"bg-recall":e(C),"bg-warning":!e(C)}),D=te(j,1,"relative inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,D,{"bg-recall":e(C),"bg-warning":!e(C)}),m(se,x()),P=te(Y,1,"svelte-1kk3799",null,P,{"text-recall":e(C),"text-warning":!e(C)}),m(pe,`${e(N)??""}%`)}),v(n,f),qe(),y()}var sa=g(" "),ra=g('
    • '),na=g(' ',1),ia=g('

      Appeal recorded.

      '),la=g('

      No appealable veto in this receipt.

      '),oa=g('
      Claim

      Verdict

      Precedent
        Fix

        Appeal
        '),da=g('
        ');function ca(n,l){We(l,!0);const o=["PASS","NOTE","CAUTION","VETO","APPEALED"];let i=ne(null),x=ne(""),T=ne(!1),y=ne(null),N=ne(null),C=q(()=>{var u;return((u=e(i))==null?void 0:u.verdictBar)??(e(x)?"CAUTION":"NOTE")}),$=q(()=>{var u,f;return((u=e(i))==null?void 0:u.claims.find(M=>M.decision==="veto"))??((f=e(i))==null?void 0:f.claims.find(M=>M.decision==="appealed"))??null}),p=q(()=>{var u;return e($)??((u=e(i))==null?void 0:u.claims[0])??null}),c=q(()=>!!e(i)||!!e(x));Xe(()=>{E();const u=window.setInterval(E,4e3);return()=>window.clearInterval(u)});async function E(){var u;try{const f=await Ke.sanhedrin.latest();h(i,f.receipt,!0),h(x,""),((u=f.receipt)==null?void 0:u.verdictBar)==="VETO"&&f.receipt.id!==e(N)&&(h(T,!0),h(N,f.receipt.id,!0))}catch(f){h(x,f instanceof Error?f.message:String(f),!0)}}async function L(u){var f;if(!(!e($)||((f=e(i))==null?void 0:f.verdictBar)!=="VETO")){h(y,u,!0);try{const M=await Ke.sanhedrin.appeal(u,void 0,e($).id,e(i).id);h(i,M.receipt,!0),h(T,!0),h(x,"")}catch(M){h(x,M instanceof Error?M.message:String(M),!0)}finally{h(y,null)}}}function V(u){if(!u)return"";const f=new Date(u);return Number.isNaN(f.getTime())?"":f.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Z(u){var f;return(f=u==null?void 0:u.precedent)!=null&&f.length?u.precedent.map(M=>M.summary??M.command??"Precedent recorded.").slice(0,3):["No precedent attached."]}var z=Ze(),ae=le(z);{var de=u=>{var f=da(),M=a(f),he=s(a(M),2);Ie(he,21,()=>o,Ve,(S,F)=>{var _=sa();let K;var X=a(_,!0);t(_),I(()=>{we(_,"aria-current",e(F)===e(C)?"true":void 0),K=te(_,1,"svelte-1j425e6",null,K,{active:e(F)===e(C)}),m(X,e(F))}),v(S,_)}),t(he);var ge=s(he,2),Fe=a(ge);t(ge);var $e=s(ge,2),j=a($e);{var D=S=>{var F=et();I(()=>m(F,e(x))),v(S,F)},k=S=>{var F=et();I(()=>m(F,e(i).summary)),v(S,F)};G(j,S=>{e(x)?S(D):e(i)&&S(k,1)})}t($e);var se=s($e,2),Y=a(se,!0);t(se),t(M);var P=s(M,2);{var pe=S=>{var F=oa(),_=a(F),K=a(_),X=s(a(K),2),ce=a(X,!0);t(X),t(K);var ue=s(K,2),me=s(a(ue),2),be=a(me);t(me),t(ue);var J=s(ue,2),Ae=s(a(J),2);Ie(Ae,21,()=>Z(e(p)),Ve,(B,Q)=>{var U=ra(),ve=a(U,!0);t(U),I(()=>m(ve,e(Q))),v(B,U)}),t(Ae),t(J);var Ce=s(J,2),Ne=s(a(Ce),2),Te=a(Ne,!0);t(Ne),t(Ce),t(_);var Ee=s(_,2),Se=s(a(Ee),2);{var Oe=B=>{var Q=na(),U=le(Q),ve=a(U,!0);t(U);var r=s(U,2),d=a(r,!0);t(r);var A=s(r,2),R=a(A,!0);t(A),I((b,w,O)=>{U.disabled=b,m(ve,e(y)==="stale"?"Saving":"Stale"),r.disabled=w,m(d,e(y)==="wrong"?"Saving":"Wrong"),A.disabled=O,m(R,e(y)==="too_strict"?"Saving":"Too strict")},[()=>!!e(y),()=>!!e(y),()=>!!e(y)]),re("click",U,()=>L("stale")),re("click",r,()=>L("wrong")),re("click",A,()=>L("too_strict")),v(B,Q)},je=B=>{var Q=ia();v(B,Q)},Le=B=>{var Q=la();v(B,Q)};G(Se,B=>{e($)&&e(i).verdictBar==="VETO"?B(Oe):e(i).verdictBar==="APPEALED"?B(je,1):B(Le,!1)})}t(Ee),t(F),I(()=>{var B,Q,U,ve;m(ce,((B=e(p))==null?void 0:B.text)??e(i).draftPreview),m(be,`${((Q=e(p))==null?void 0:Q.decision)??e(i).overall??""} · ${((U=e(p))==null?void 0:U.evidence_state)??e(C)??""}`),m(Te,((ve=e(p))==null?void 0:ve.fix)||"No change required.")}),v(S,F)};G(P,S=>{e(T)&&e(i)&&S(pe)})}t(f),I((S,F)=>{te(f,1,S,"svelte-1j425e6"),we(M,"aria-expanded",e(T)),m(Fe,`Current verdict: ${e(C)??""}`),m(Y,F)},[()=>`verdict-bar tone-${e(C).toLowerCase()}`,()=>{var S;return V((S=e(i))==null?void 0:S.createdAt)}]),re("click",M,()=>h(T,!e(T))),v(u,f)};G(ae,u=>{e(c)&&u(de)})}v(n,z),qe()}ze(["click"]);const mt="vestige.theme",rt="vestige-theme-light",Re=vt("dark"),Ue=vt(!0),nt=Ct([Re,Ue],([n,l])=>n==="auto"?l?"dark":"light":n);function va(n){return n==="dark"||n==="light"||n==="auto"}function pa(n){if(va(n)){Re.set(n);try{localStorage.setItem(mt,n)}catch{}}}function Ye(){const n=pt(Re);pa(n==="dark"?"light":n==="light"?"auto":"dark")}function ua(){if(document.getElementById(rt))return;const n=document.createElement("style");n.id=rt,n.textContent=` -/* Vestige light-mode overrides — injected by theme.ts. - * Activated by [data-theme='light'] on . - * Tokens mirror the real names used in app.css so the cascade stays clean. */ -[data-theme='light'] { - /* Core surface palette (slate scale) */ - --color-void: #f8fafc; /* slate-50 — page background */ - --color-abyss: #f1f5f9; /* slate-100 */ - --color-deep: #e2e8f0; /* slate-200 */ - --color-surface: #f1f5f9; /* slate-100 */ - --color-elevated: #e2e8f0; /* slate-200 */ - --color-subtle: #cbd5e1; /* slate-300 */ - --color-muted: #94a3b8; /* slate-400 */ - --color-dim: #475569; /* slate-600 */ - --color-text: #0f172a; /* slate-900 */ - --color-bright: #020617; /* slate-950 */ -} - -/* Baseline body/html wiring — app.css sets these against the dark - * tokens; we just let the variables do the work. Reassert for clarity. */ -[data-theme='light'] html, -html[data-theme='light'] { - background: var(--color-void); - color: var(--color-text); -} - -/* Glass surfaces — recompose on a light canvas. The original alphas - * are tuned for dark; invert-and-tint for light so panels still read - * as elevated instead of vanishing. */ -[data-theme='light'] .glass { - background: rgba(255, 255, 255, 0.65); - border: 1px solid rgba(99, 102, 241, 0.12); - box-shadow: - inset 0 1px 0 0 rgba(255, 255, 255, 0.6), - 0 4px 24px rgba(15, 23, 42, 0.08); -} -[data-theme='light'] .glass-subtle { - background: rgba(255, 255, 255, 0.55); - border: 1px solid rgba(99, 102, 241, 0.1); - box-shadow: - inset 0 1px 0 0 rgba(255, 255, 255, 0.5), - 0 2px 12px rgba(15, 23, 42, 0.06); -} -[data-theme='light'] .glass-sidebar { - background: rgba(248, 250, 252, 0.82); - border-right: 1px solid rgba(99, 102, 241, 0.14); - box-shadow: - inset -1px 0 0 0 rgba(255, 255, 255, 0.4), - 4px 0 24px rgba(15, 23, 42, 0.08); -} -[data-theme='light'] .glass-panel { - background: rgba(255, 255, 255, 0.75); - border: 1px solid rgba(99, 102, 241, 0.14); - box-shadow: - inset 0 1px 0 0 rgba(255, 255, 255, 0.5), - 0 8px 32px rgba(15, 23, 42, 0.1); -} - -/* Halve glow intensity — neon accents stay recognizable without - * washing out on slate-50. */ -[data-theme='light'] .glow-synapse { - box-shadow: 0 0 10px rgba(99, 102, 241, 0.15), 0 0 30px rgba(99, 102, 241, 0.05); -} -[data-theme='light'] .glow-dream { - box-shadow: 0 0 10px rgba(168, 85, 247, 0.15), 0 0 30px rgba(168, 85, 247, 0.05); -} -[data-theme='light'] .glow-memory { - box-shadow: 0 0 10px rgba(59, 130, 246, 0.15), 0 0 30px rgba(59, 130, 246, 0.05); -} - -/* Ambient orbs are gorgeous on black and blinding on white. Tame them. */ -[data-theme='light'] .ambient-orb { - opacity: 0.18; - filter: blur(100px); -} - -/* Scrollbar recolor for the lighter surface. */ -[data-theme='light'] ::-webkit-scrollbar-thumb { - background: #cbd5e1; -} -[data-theme='light'] ::-webkit-scrollbar-thumb:hover { - background: #94a3b8; -} -`,document.head.appendChild(n)}function it(n){document.documentElement.dataset.theme=n}let ke=null,Me=null,_e=null,ye=null;function ma(){ke&&Me&&ke.removeEventListener("change",Me),ye==null||ye(),_e==null||_e(),ke=null,Me=null,ye=null,_e=null,ua();let n="dark";try{const l=localStorage.getItem(mt);(l==="dark"||l==="light"||l==="auto")&&(n=l)}catch{}return Re.set(n),ke=window.matchMedia("(prefers-color-scheme: dark)"),Ue.set(ke.matches),Me=l=>Ue.set(l.matches),ke.addEventListener("change",Me),it(pt(nt)),ye=nt.subscribe(it),_e=Re.subscribe(()=>{}),()=>{ke&&Me&&ke.removeEventListener("change",Me),ke=null,Me=null,ye==null||ye(),_e==null||_e(),ye=null,_e=null}}var fa=g('');function ha(n){const l=()=>oe(Re,"$theme",o),[o,i]=He(),x={dark:"Dark",light:"Light",auto:"Auto (system)"},T={dark:"light",light:"auto",auto:"dark"};let y=q(l),N=q(()=>T[e(y)]),C=q(()=>`Toggle theme: ${x[e(y)]} (click for ${x[e(N)]})`);var $=fa(),p=a($),c=a(p);let E;var L=s(c,2);let V;var Z=s(L,2);let z;t(p),t($),I(()=>{we($,"aria-label",e(C)),we($,"title",e(C)),we($,"data-mode",e(y)),E=te(c,0,"icon svelte-1cmi4dh",null,E,{active:e(y)==="dark"}),V=te(L,0,"icon svelte-1cmi4dh",null,V,{active:e(y)==="light"}),z=te(Z,0,"icon svelte-1cmi4dh",null,z,{active:e(y)==="auto"})}),re("click",$,function(...ae){Ye==null||Ye.apply(this,ae)}),v(n,$),i()}ze(["click"]);var ga=g(' '),ba=g('
        '),xa=g(''),ka=g(' '),_a=g('
        ',1),ya=g(''),wa=g('
        No matches
        '),$a=g('
        esc
        '),Aa=g(" ",1);function za(n,l){We(l,!0);const o=()=>oe(Tt,"$page",C),i=()=>oe(wt,"$isConnected",C),x=()=>oe(ot,"$memoryCount",C),T=()=>oe(dt,"$avgRetention",C),y=()=>oe(yt,"$uptimeSeconds",C),N=()=>oe(lt,"$suppressedCount",C),[C,$]=He();let p=ne(!1),c=ne(""),E=ne(void 0),L=q(()=>o().url.pathname.startsWith(xe)?o().url.pathname.slice(xe.length)||"/":o().url.pathname),V=q(()=>e(L)==="/waitlist"||e(L).startsWith("/waitlist/"));Xe(()=>{e(V)||st.connect();const j=ma();function D(k){if(e(V))return;if((k.metaKey||k.ctrlKey)&&k.key==="k"){k.preventDefault(),h(p,!e(p)),h(c,""),e(p)&&requestAnimationFrame(()=>{var P;return(P=e(E))==null?void 0:P.focus()});return}if(k.key==="Escape"&&e(p)){h(p,!1);return}if(k.target instanceof HTMLInputElement||k.target instanceof HTMLTextAreaElement)return;if(k.key==="/"){k.preventDefault();const P=document.querySelector('input[type="text"]');P==null||P.focus();return}const Y={g:"/graph",m:"/memories",t:"/timeline",f:"/feed",e:"/explore",i:"/intentions",s:"/stats",r:"/reasoning",a:"/activation",d:"/dreams",c:"/schedule",p:"/importance",u:"/duplicates",x:"/contradictions",n:"/patterns"}[k.key.toLowerCase()];Y&&!k.metaKey&&!k.ctrlKey&&!k.altKey&&(k.preventDefault(),at(`${xe}${Y}`))}return window.addEventListener("keydown",D),()=>{st.disconnect(),window.removeEventListener("keydown",D),j()}});const Z=[{href:"/graph",label:"Graph",icon:"◎",shortcut:"G"},{href:"/reasoning",label:"Reasoning",icon:"✦",shortcut:"R"},{href:"/memories",label:"Memories",icon:"◈",shortcut:"M"},{href:"/timeline",label:"Timeline",icon:"◷",shortcut:"T"},{href:"/feed",label:"Feed",icon:"◉",shortcut:"F"},{href:"/explore",label:"Explore",icon:"◬",shortcut:"E"},{href:"/activation",label:"Activation",icon:"◈",shortcut:"A"},{href:"/dreams",label:"Dreams",icon:"✧",shortcut:"D"},{href:"/schedule",label:"Schedule",icon:"◷",shortcut:"C"},{href:"/importance",label:"Importance",icon:"◎",shortcut:"P"},{href:"/duplicates",label:"Duplicates",icon:"◉",shortcut:"U"},{href:"/contradictions",label:"Contradictions",icon:"⚠",shortcut:"X"},{href:"/patterns",label:"Patterns",icon:"▦",shortcut:"N"},{href:"/intentions",label:"Intentions",icon:"◇",shortcut:"I"},{href:"/stats",label:"Stats",icon:"◫",shortcut:"S"},{href:"/settings",label:"Settings",icon:"⚙",shortcut:","}],z=Z.slice(0,5);function ae(j,D){const k=D.startsWith(xe)?D.slice(xe.length)||"/":D;return j==="/graph"?k==="/"||k==="/graph":k.startsWith(j)}let de=q(()=>e(c)?Z.filter(j=>j.label.toLowerCase().includes(e(c).toLowerCase())):Z);function u(j){h(p,!1),h(c,""),at(`${xe}${j}`)}var f=Aa(),M=le(f);{var he=j=>{var D=Ze(),k=le(D);tt(k,()=>l.children),v(j,D)},ge=j=>{var D=_a(),k=s(le(D),6),se=a(k),Y=a(se),P=s(Y,2);Ie(P,21,()=>Z,Ve,(b,w)=>{const O=q(()=>ae(e(w).href,o().url.pathname));var H=ga(),W=a(H),ee=a(W,!0);t(W);var ie=s(W,2),Pe=a(ie,!0);t(ie);var Je=s(ie,2),ft=a(Je,!0);t(Je),t(H),I(()=>{we(H,"href",`${xe??""}${e(w).href??""}`),te(H,1,`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all duration-200 text-sm - ${e(O)?"bg-synapse/15 text-synapse-glow border border-synapse/30 shadow-[0_0_12px_rgba(99,102,241,0.15)] nav-active-border":"text-dim hover:text-text hover:bg-white/[0.03] border border-transparent"}`),m(ee,e(w).icon),m(Pe,e(w).label),m(ft,e(w).shortcut)}),v(b,H)}),t(P);var pe=s(P,2),S=a(pe);t(pe);var F=s(pe,2),_=a(F),K=a(_),X=s(K,2),ce=a(X,!0);t(X);var ue=s(X,2),me=a(ue);ha(me),t(ue),t(_);var be=s(_,2),J=a(be),Ae=a(J);t(J);var Ce=s(J,2),Ne=a(Ce);t(Ce);var Te=s(Ce,2);{var Ee=b=>{var w=ba(),O=a(w);t(w),I(H=>m(O,`up ${H??""}`),[()=>$t(y())]),v(b,w)};G(Te,b=>{y()>0&&b(Ee)})}t(be);var Se=s(be,2);{var Oe=b=>{var w=xa(),O=a(w);St(O),t(w),v(b,w)};G(Se,b=>{N()>0&&b(Oe)})}t(F),t(se);var je=s(se,2),Le=a(je);aa(Le,{});var B=s(Le,2);ca(B,{});var Q=s(B,2),U=a(Q);tt(U,()=>l.children),t(Q),t(je);var ve=s(je,2),r=a(ve),d=a(r);Ie(d,17,()=>z,Ve,(b,w)=>{const O=q(()=>ae(e(w).href,o().url.pathname));var H=ka(),W=a(H),ee=a(W,!0);t(W);var ie=s(W,2),Pe=a(ie,!0);t(ie),t(H),I(()=>{we(H,"href",`${xe??""}${e(w).href??""}`),te(H,1,`flex flex-col items-center gap-0.5 px-3 py-2 rounded-lg transition-all min-w-[3.5rem] - ${e(O)?"text-synapse-glow":"text-muted"}`),m(ee,e(w).icon),m(Pe,e(w).label)}),v(b,H)});var A=s(d,2);t(r),t(ve),t(k);var R=s(k,2);It(R,{}),I(b=>{we(Y,"href",`${xe??""}/graph`),te(K,1,`w-2 h-2 rounded-full ${i()?"bg-recall animate-pulse-glow":"bg-decay"}`),m(ce,i()?"Connected":"Offline"),m(Ae,`${x()??""} memories`),m(Ne,`${b??""}% retention`)},[()=>(T()*100).toFixed(0)]),re("click",S,()=>{h(p,!0),h(c,""),requestAnimationFrame(()=>{var b;return(b=e(E))==null?void 0:b.focus()})}),re("click",A,()=>{h(p,!0),h(c,""),requestAnimationFrame(()=>{var b;return(b=e(E))==null?void 0:b.focus()})}),v(j,D)};G(M,j=>{e(V)?j(he):j(ge,!1)})}var Fe=s(M,2);{var $e=j=>{var D=$a(),k=a(D),se=a(k),Y=s(a(se),2);gt(Y),xt(Y,_=>h(E,_),()=>e(E)),fe(2),t(se);var P=s(se,2),pe=a(P);Ie(pe,17,()=>e(de),Ve,(_,K)=>{var X=ya(),ce=a(X),ue=a(ce,!0);t(ce);var me=s(ce,2),be=a(me,!0);t(me);var J=s(me,2),Ae=a(J,!0);t(J),t(X),I(()=>{m(ue,e(K).icon),m(be,e(K).label),m(Ae,e(K).shortcut)}),re("click",X,()=>u(e(K).href)),v(_,X)});var S=s(pe,2);{var F=_=>{var K=wa();v(_,K)};G(S,_=>{e(de).length===0&&_(F)})}t(P),t(k),t(D),re("keydown",D,_=>{_.key==="Escape"&&h(p,!1)}),re("click",D,_=>{_.target===_.currentTarget&&h(p,!1)}),re("keydown",Y,_=>{_.key==="Enter"&&e(de).length>0&&u(e(de)[0].href)}),bt(Y,()=>e(c),_=>h(c,_)),v(j,D)};G(Fe,j=>{e(p)&&!e(V)&&j($e)})}v(n,f),qe(),$()}ze(["click","keydown"]);export{za as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.br b/apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.br deleted file mode 100644 index 0db794bd4f341ac961d27ec178cc150ae13acf86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9946 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 b2*1Uj6UUI3kcVQl@#y~p#G}}4V}Jkv69`+{ diff --git a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js b/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js deleted file mode 100644 index a6a9300..0000000 --- a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/Bzak7iHL.js";import{i as h}from"../chunks/BUoSzNdg.js";import{p as g,f as d,t as l,a as v,d as s,r as o,e as _}from"../chunks/CpWkWWOo.js";import{s as p}from"../chunks/BlVfL1ME.js";import{a as x,f as $}from"../chunks/CHOnp4oo.js";import{p as m}from"../chunks/g4XF1_b9.js";import{s as k}from"../chunks/CtgMtoAJ.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var E=$("

        ",1);function C(f,n){g(n,!1),h();var t=E(),r=d(t),c=s(r,!0);o(r);var a=_(r,2),u=s(a,!0);o(a),l(()=>{var e;p(c,i.status),p(u,(e=i.error)==null?void 0:e.message)}),x(f,t),v()}export{C as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.br b/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.br deleted file mode 100644 index fe9dbd965d2c79bc2716cf3c8f90619e6397b99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd5Qi2`7Z!nWD-k;{p(h#^S=Ni;OC{-uFw2<-v16DM1?oU)fwGs!%yEdvT1 zd86pE^!@*DzBfRwXkwW?%+|7^o;Aj_^eJ|-!jIqPwb^{UvucNwygaBD{JC~IU2=Ma z*IRelA~RL{b4TB5h)+LN(5=YCy{Mu-(W|{uLB&{zQ=rPh3PC9fnNodiB#;vWP*X=KDa! oC^Xw!tq#*ZJM49)PTa-5<7Myjq-t>GREc@+-xj4-M(E*;9?ie9`Tzg` diff --git a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.gz b/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.gz deleted file mode 100644 index ed5979d5b8134995526f65cc989a01e8d4545b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7D=iwFP!000026J?M=Yuqpph41|p%96tj4Bof|O6zD#yKD(1X%3~`-WIJb z+p29zNb<78_`e5v_h90So|yOP&1h6-jSH(JS?6`H8^8YkDw=_WR%1E%&pxw`~8cVXZlFmMfdh^ z`IJ8I=H%4qeCd9>h<<$0_THGqxZQiQy8rhhJsdwThG-UW-5NnPQtMrzlGI9oo?8} zdOB^q+0BYl%*tNpK^e`qP?E->0!=q5QVlpg4txhlju#M+a_+&=%^hY2+{G9C0FFK) z_1uHFdIG5hK)x9wA~Op)sq45%7J357)#Y=@x$fKc>&d8s-F=ZsC%qSy#1ZKXB?Y7t d;3&`2Lbq|Dx#_IYQin17@CGqW1uu#M006L{#z_DG diff --git a/apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js b/apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js new file mode 100644 index 0000000..2a32e99 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js @@ -0,0 +1 @@ +import"../chunks/Bzak7iHL.js";import{i as u}from"../chunks/BLadwbF7.js";import{p as g,f as l,t as v,a as d,b as _,j as x,e as a,r as o,h as $}from"../chunks/wpu9U-D0.js";import{s as p}from"../chunks/D8mhvFt8.js";import{p as m}from"../chunks/Bxs5UR9-.js";import{s as b}from"../chunks/dCAmqaEc.js";const k={get error(){return m.error},get status(){return m.status}};b.updated.check;const i=k;var j=x("

        ",1);function B(f,n){g(n,!1),u();var t=j(),r=l(t),c=a(r,!0);o(r);var e=$(r,2),h=a(e,!0);o(e),v(()=>{var s;p(c,i.status),p(h,(s=i.error)==null?void 0:s.message)}),d(f,t),_()}export{B as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js.br b/apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1af4c862aa2d5e476f98c68a91d095529a06023f GIT binary patch literal 331 zcmV-R0kr-bW&&Uwg>fuwBvp<1g5jbq+v;g5v1BHwEbt~R^|@pZ-)7ly>6tB3ZU1-E z8z7%Fu*|}<*07?^8e>|TVlOKU(``b~(``(#Qq8X;*@B;&8w@SKN+TY=-i>G(eE$zZ zZpPj{g1W)=O6fg_a{U|j#r#|nIrg{|ViL{_u$iC<;mQGnO327RZ7+ei5jksuc)jxc)EdF8Cc}PvxiCH~_4)Q;J^I6Qd*ov64RS#W; zDy6pOAXKb@dljXAAfj!=<>9Z;tohDvNX&f7kEUsiIr04!TuSlbK}wA=svs+W$cKPb ziWnr4B@8I3F~Tw^1zbn8F>iu=Chc4}NM`^P`-jYw%fX^xzc)xZ_yjD1(_s|iVlWS7 dI2vtu5JJzWkZf>CB58oixmuKX)$$6fZ4D>2rDp&D literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js.gz b/apps/dashboard/build/_app/immutable/nodes/1.MT4EnKSP.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..27ffe2854fc60ed9051c2d89ea4eb00e0b91ecf8 GIT binary patch literal 373 zcmV-*0gC<~iwFP!000026J?M+Z`&{shWGvo#>j97Tx7dIk)#S;)J=m9nF3@EXo|9E zStQF3#i*eFUQqU6*b5)x-iPGzbmy#(v!a;GCYd(O*Z)L&um8LjyD%&Dln$DSz|vTI z+nt-QqWavt+@G5+n_H?g_7pRE5*Zb3GCpXRaUhi;$Y)q;GHx$l_;l&<{qA{j{zAy6 zyELC4x~6}L4_Cc(S6v^%xA(WlyQ@1lmuB_rXZKh9mXj&136ZsY*s92s_tparUd7}M z>x!u`QqDpYF@^K+SQ*E1QzTc3sH#FXO17svHE+vac(&sQm_0Si6?>XbtIIpLn$Z%= zIvE+YHEazv8637?=w^wO0H?!|?*Pg3JwznQ1$eqyU}?c0bH#7L(^sU13s9#_A@u;r zS3_1p=|GY`wTtASAqZR_KZl%~wBP^et*+SOdnh^;g4ik?kt(PuB7Fdk>M#v-od+sy T=d4jCj^&sCOz6y;X955KrWmxn literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js b/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js deleted file mode 100644 index b25b457..0000000 --- a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js +++ /dev/null @@ -1,4115 +0,0 @@ -var Bc=Object.defineProperty;var zc=(i,t,e)=>t in i?Bc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var kt=(i,t,e)=>zc(i,typeof t!="symbol"?t+"":t,e);import"../chunks/Bzak7iHL.js";import{o as jl,a as Zl}from"../chunks/GG5zm9kr.js";import{s as me,c as va,h as zt,g as B,p as ys,aB as kc,a as Es,d as yt,e as bt,n as Hc,r as xt,t as Ke,u as Gn,f as Kl,j as Vc}from"../chunks/CpWkWWOo.js";import{s as fe,d as $l,a as Fe}from"../chunks/BlVfL1ME.js";import{i as kn}from"../chunks/B4yTwGkE.js";import{e as _s,i as hr}from"../chunks/CGEBXrjl.js";import{a as _e,f as Se,c as Gc}from"../chunks/CHOnp4oo.js";import{s as ve,r as xa}from"../chunks/A7po6GxK.js";import{s as Us}from"../chunks/aVbAZ-t7.js";import{s as Sr}from"../chunks/Cx-f-Pzo.js";import{b as Ma}from"../chunks/sZcqyNBA.js";import{b as Jl}from"../chunks/BnXDGOmJ.js";import{s as Wc,a as Xc}from"../chunks/C6HuKgyx.js";import{b as Do}from"../chunks/g4XF1_b9.js";import{b as Yc}from"../chunks/CJsMJEun.js";import{p as vs}from"../chunks/V6gjw5Ec.js";import{N as Sa}from"../chunks/CcUbQ_Wl.js";import{i as qc}from"../chunks/BUoSzNdg.js";import{a as gi}from"../chunks/B7CfdQuM.js";import{e as jc}from"../chunks/MAY1QfFZ.js";/** - * @license - * Copyright 2010-2024 Three.js Authors - * SPDX-License-Identifier: MIT - */const vo="172",Hi={ROTATE:0,DOLLY:1,PAN:2},Oi={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Zc=0,Lo=1,Kc=2,Ql=1,$c=2,An=3,Yn=0,Xe=1,gn=2,Cn=0,Vi=1,Le=2,Uo=3,Io=4,Jc=5,ii=100,Qc=101,th=102,eh=103,nh=104,ih=200,sh=201,rh=202,ah=203,ya=204,Ea=205,oh=206,lh=207,ch=208,hh=209,uh=210,dh=211,fh=212,ph=213,mh=214,ba=0,Ta=1,wa=2,qi=3,Aa=4,Ra=5,Ca=6,Pa=7,tc=0,gh=1,_h=2,Wn=0,vh=1,xh=2,Mh=3,ec=4,Sh=5,yh=6,Eh=7,nc=300,ji=301,Zi=302,Da=303,La=304,Pr=306,Ua=1e3,ri=1001,Ia=1002,Je=1003,bh=1004,Is=1005,vn=1006,Br=1007,ai=1008,Ln=1009,ic=1010,sc=1011,Ms=1012,xo=1013,li=1014,xn=1015,Pn=1016,Mo=1017,So=1018,Ki=1020,rc=35902,ac=1021,oc=1022,dn=1023,lc=1024,cc=1025,Gi=1026,$i=1027,yo=1028,Eo=1029,hc=1030,bo=1031,To=1033,ur=33776,dr=33777,fr=33778,pr=33779,Na=35840,Fa=35841,Oa=35842,Ba=35843,za=36196,ka=37492,Ha=37496,Va=37808,Ga=37809,Wa=37810,Xa=37811,Ya=37812,qa=37813,ja=37814,Za=37815,Ka=37816,$a=37817,Ja=37818,Qa=37819,to=37820,eo=37821,mr=36492,no=36494,io=36495,uc=36283,so=36284,ro=36285,ao=36286,Th=3200,wh=3201,dc=0,Ah=1,Vn="",an="srgb",Ji="srgb-linear",yr="linear",se="srgb",_i=7680,No=519,Rh=512,Ch=513,Ph=514,fc=515,Dh=516,Lh=517,Uh=518,Ih=519,oo=35044,Fo="300 es",Rn=2e3,Er=2001;class hi{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;const n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;const s=this._listeners[t];if(s!==void 0){const r=s.indexOf(e);r!==-1&&s.splice(r,1)}}dispatchEvent(t){if(this._listeners===void 0)return;const n=this._listeners[t.type];if(n!==void 0){t.target=this;const s=n.slice(0);for(let r=0,a=s.length;r>8&255]+Ie[i>>16&255]+Ie[i>>24&255]+"-"+Ie[t&255]+Ie[t>>8&255]+"-"+Ie[t>>16&15|64]+Ie[t>>24&255]+"-"+Ie[e&63|128]+Ie[e>>8&255]+"-"+Ie[e>>16&255]+Ie[e>>24&255]+Ie[n&255]+Ie[n>>8&255]+Ie[n>>16&255]+Ie[n>>24&255]).toLowerCase()}function Yt(i,t,e){return Math.max(t,Math.min(e,i))}function Nh(i,t){return(i%t+t)%t}function zr(i,t,e){return(1-e)*i+e*t}function _n(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return i/4294967295;case Uint16Array:return i/65535;case Uint8Array:return i/255;case Int32Array:return Math.max(i/2147483647,-1);case Int16Array:return Math.max(i/32767,-1);case Int8Array:return Math.max(i/127,-1);default:throw new Error("Invalid component type.")}}function re(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array:return Math.round(i*255);case Int32Array:return Math.round(i*2147483647);case Int16Array:return Math.round(i*32767);case Int8Array:return Math.round(i*127);default:throw new Error("Invalid component type.")}}const Fh={DEG2RAD:gr};class St{constructor(t=0,e=0){St.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6],this.y=s[1]*e+s[4]*n+s[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Yt(this.x,t.x,e.x),this.y=Yt(this.y,t.y,e.y),this}clampScalar(t,e){return this.x=Yt(this.x,t,e),this.y=Yt(this.y,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Yt(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Yt(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),s=Math.sin(e),r=this.x-t.x,a=this.y-t.y;return this.x=r*n-a*s+t.x,this.y=r*s+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ht{constructor(t,e,n,s,r,a,o,l,c){Ht.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,l,c)}set(t,e,n,s,r,a,o,l,c){const h=this.elements;return h[0]=t,h[1]=s,h[2]=o,h[3]=e,h[4]=r,h[5]=l,h[6]=n,h[7]=a,h[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[3],l=n[6],c=n[1],h=n[4],d=n[7],p=n[2],u=n[5],g=n[8],_=s[0],m=s[3],f=s[6],T=s[1],E=s[4],y=s[7],D=s[2],w=s[5],C=s[8];return r[0]=a*_+o*T+l*D,r[3]=a*m+o*E+l*w,r[6]=a*f+o*y+l*C,r[1]=c*_+h*T+d*D,r[4]=c*m+h*E+d*w,r[7]=c*f+h*y+d*C,r[2]=p*_+u*T+g*D,r[5]=p*m+u*E+g*w,r[8]=p*f+u*y+g*C,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],l=t[6],c=t[7],h=t[8];return e*a*h-e*o*c-n*r*h+n*o*l+s*r*c-s*a*l}invert(){const t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],l=t[6],c=t[7],h=t[8],d=h*a-o*c,p=o*l-h*r,u=c*r-a*l,g=e*d+n*p+s*u;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);const _=1/g;return t[0]=d*_,t[1]=(s*c-h*n)*_,t[2]=(o*n-s*a)*_,t[3]=p*_,t[4]=(h*e-s*l)*_,t[5]=(s*r-o*e)*_,t[6]=u*_,t[7]=(n*l-c*e)*_,t[8]=(a*e-n*r)*_,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,s,r,a,o){const l=Math.cos(r),c=Math.sin(r);return this.set(n*l,n*c,-n*(l*a+c*o)+a+t,-s*c,s*l,-s*(-c*a+l*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(kr.makeScale(t,e)),this}rotate(t){return this.premultiply(kr.makeRotation(-t)),this}translate(t,e){return this.premultiply(kr.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let s=0;s<9;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}}const kr=new Ht;function pc(i){for(let t=i.length-1;t>=0;--t)if(i[t]>=65535)return!0;return!1}function br(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}function Oh(){const i=br("canvas");return i.style.display="block",i}const Oo={};function Fi(i){i in Oo||(Oo[i]=!0,console.warn(i))}function Bh(i,t,e){return new Promise(function(n,s){function r(){switch(i.clientWaitSync(t,i.SYNC_FLUSH_COMMANDS_BIT,0)){case i.WAIT_FAILED:s();break;case i.TIMEOUT_EXPIRED:setTimeout(r,e);break;default:n()}}setTimeout(r,e)})}function zh(i){const t=i.elements;t[2]=.5*t[2]+.5*t[3],t[6]=.5*t[6]+.5*t[7],t[10]=.5*t[10]+.5*t[11],t[14]=.5*t[14]+.5*t[15]}function kh(i){const t=i.elements;t[11]===-1?(t[10]=-t[10]-1,t[14]=-t[14]):(t[10]=-t[10],t[14]=-t[14]+1)}const Bo=new Ht().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),zo=new Ht().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Hh(){const i={enabled:!0,workingColorSpace:Ji,spaces:{},convert:function(s,r,a){return this.enabled===!1||r===a||!r||!a||(this.spaces[r].transfer===se&&(s.r=Dn(s.r),s.g=Dn(s.g),s.b=Dn(s.b)),this.spaces[r].primaries!==this.spaces[a].primaries&&(s.applyMatrix3(this.spaces[r].toXYZ),s.applyMatrix3(this.spaces[a].fromXYZ)),this.spaces[a].transfer===se&&(s.r=Wi(s.r),s.g=Wi(s.g),s.b=Wi(s.b))),s},fromWorkingColorSpace:function(s,r){return this.convert(s,this.workingColorSpace,r)},toWorkingColorSpace:function(s,r){return this.convert(s,r,this.workingColorSpace)},getPrimaries:function(s){return this.spaces[s].primaries},getTransfer:function(s){return s===Vn?yr:this.spaces[s].transfer},getLuminanceCoefficients:function(s,r=this.workingColorSpace){return s.fromArray(this.spaces[r].luminanceCoefficients)},define:function(s){Object.assign(this.spaces,s)},_getMatrix:function(s,r,a){return s.copy(this.spaces[r].toXYZ).multiply(this.spaces[a].fromXYZ)},_getDrawingBufferColorSpace:function(s){return this.spaces[s].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(s=this.workingColorSpace){return this.spaces[s].workingColorSpaceConfig.unpackColorSpace}},t=[.64,.33,.3,.6,.15,.06],e=[.2126,.7152,.0722],n=[.3127,.329];return i.define({[Ji]:{primaries:t,whitePoint:n,transfer:yr,toXYZ:Bo,fromXYZ:zo,luminanceCoefficients:e,workingColorSpaceConfig:{unpackColorSpace:an},outputColorSpaceConfig:{drawingBufferColorSpace:an}},[an]:{primaries:t,whitePoint:n,transfer:se,toXYZ:Bo,fromXYZ:zo,luminanceCoefficients:e,outputColorSpaceConfig:{drawingBufferColorSpace:an}}}),i}const Qt=Hh();function Dn(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function Wi(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}let vi;class Vh{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{vi===void 0&&(vi=br("canvas")),vi.width=t.width,vi.height=t.height;const n=vi.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=vi}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){const e=br("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const s=n.getImageData(0,0,t.width,t.height),r=s.data;for(let a=0;a0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==nc)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Ua:t.x=t.x-Math.floor(t.x);break;case ri:t.x=t.x<0?0:1;break;case Ia:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Ua:t.y=t.y-Math.floor(t.y);break;case ri:t.y=t.y<0?0:1;break;case Ia:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){t===!0&&this.pmremVersion++}}Pe.DEFAULT_IMAGE=null;Pe.DEFAULT_MAPPING=nc;Pe.DEFAULT_ANISOTROPY=1;class oe{constructor(t=0,e=0,n=0,s=1){oe.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=s}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,s){return this.x=t,this.y=e,this.z=n,this.w=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,s=this.z,r=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*s+a[12]*r,this.y=a[1]*e+a[5]*n+a[9]*s+a[13]*r,this.z=a[2]*e+a[6]*n+a[10]*s+a[14]*r,this.w=a[3]*e+a[7]*n+a[11]*s+a[15]*r,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,s,r;const l=t.elements,c=l[0],h=l[4],d=l[8],p=l[1],u=l[5],g=l[9],_=l[2],m=l[6],f=l[10];if(Math.abs(h-p)<.01&&Math.abs(d-_)<.01&&Math.abs(g-m)<.01){if(Math.abs(h+p)<.1&&Math.abs(d+_)<.1&&Math.abs(g+m)<.1&&Math.abs(c+u+f-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const E=(c+1)/2,y=(u+1)/2,D=(f+1)/2,w=(h+p)/4,C=(d+_)/4,I=(g+m)/4;return E>y&&E>D?E<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(E),s=w/n,r=C/n):y>D?y<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(y),n=w/s,r=I/s):D<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(D),n=C/r,s=I/r),this.set(n,s,r,e),this}let T=Math.sqrt((m-g)*(m-g)+(d-_)*(d-_)+(p-h)*(p-h));return Math.abs(T)<.001&&(T=1),this.x=(m-g)/T,this.y=(d-_)/T,this.z=(p-h)/T,this.w=Math.acos((c+u+f-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Yt(this.x,t.x,e.x),this.y=Yt(this.y,t.y,e.y),this.z=Yt(this.z,t.z,e.z),this.w=Yt(this.w,t.w,e.w),this}clampScalar(t,e){return this.x=Yt(this.x,t,e),this.y=Yt(this.y,t,e),this.z=Yt(this.z,t,e),this.w=Yt(this.w,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Yt(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class Xh extends hi{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new oe(0,0,t,e),this.scissorTest=!1,this.viewport=new oe(0,0,t,e);const s={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:vn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const r=new Pe(s,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);r.flipY=!1,r.generateMipmaps=n.generateMipmaps,r.internalFormat=n.internalFormat,this.textures=[];const a=n.count;for(let o=0;o=0?1:-1,E=1-f*f;if(E>Number.EPSILON){const D=Math.sqrt(E),w=Math.atan2(D,f*T);m=Math.sin(m*w)/D,o=Math.sin(o*w)/D}const y=o*T;if(l=l*m+p*y,c=c*m+u*y,h=h*m+g*y,d=d*m+_*y,m===1-o){const D=1/Math.sqrt(l*l+c*c+h*h+d*d);l*=D,c*=D,h*=D,d*=D}}t[e]=l,t[e+1]=c,t[e+2]=h,t[e+3]=d}static multiplyQuaternionsFlat(t,e,n,s,r,a){const o=n[s],l=n[s+1],c=n[s+2],h=n[s+3],d=r[a],p=r[a+1],u=r[a+2],g=r[a+3];return t[e]=o*g+h*d+l*u-c*p,t[e+1]=l*g+h*p+c*d-o*u,t[e+2]=c*g+h*u+o*p-l*d,t[e+3]=h*g-o*d-l*p-c*u,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,s){return this._x=t,this._y=e,this._z=n,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,s=t._y,r=t._z,a=t._order,o=Math.cos,l=Math.sin,c=o(n/2),h=o(s/2),d=o(r/2),p=l(n/2),u=l(s/2),g=l(r/2);switch(a){case"XYZ":this._x=p*h*d+c*u*g,this._y=c*u*d-p*h*g,this._z=c*h*g+p*u*d,this._w=c*h*d-p*u*g;break;case"YXZ":this._x=p*h*d+c*u*g,this._y=c*u*d-p*h*g,this._z=c*h*g-p*u*d,this._w=c*h*d+p*u*g;break;case"ZXY":this._x=p*h*d-c*u*g,this._y=c*u*d+p*h*g,this._z=c*h*g+p*u*d,this._w=c*h*d-p*u*g;break;case"ZYX":this._x=p*h*d-c*u*g,this._y=c*u*d+p*h*g,this._z=c*h*g-p*u*d,this._w=c*h*d+p*u*g;break;case"YZX":this._x=p*h*d+c*u*g,this._y=c*u*d+p*h*g,this._z=c*h*g-p*u*d,this._w=c*h*d-p*u*g;break;case"XZY":this._x=p*h*d-c*u*g,this._y=c*u*d-p*h*g,this._z=c*h*g+p*u*d,this._w=c*h*d+p*u*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,s=Math.sin(n);return this._x=t.x*s,this._y=t.y*s,this._z=t.z*s,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],s=e[4],r=e[8],a=e[1],o=e[5],l=e[9],c=e[2],h=e[6],d=e[10],p=n+o+d;if(p>0){const u=.5/Math.sqrt(p+1);this._w=.25/u,this._x=(h-l)*u,this._y=(r-c)*u,this._z=(a-s)*u}else if(n>o&&n>d){const u=2*Math.sqrt(1+n-o-d);this._w=(h-l)/u,this._x=.25*u,this._y=(s+a)/u,this._z=(r+c)/u}else if(o>d){const u=2*Math.sqrt(1+o-n-d);this._w=(r-c)/u,this._x=(s+a)/u,this._y=.25*u,this._z=(l+h)/u}else{const u=2*Math.sqrt(1+d-n-o);this._w=(a-s)/u,this._x=(r+c)/u,this._y=(l+h)/u,this._z=.25*u}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Yt(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(n===0)return this;const s=Math.min(1,e/n);return this.slerp(t,s),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,s=t._y,r=t._z,a=t._w,o=e._x,l=e._y,c=e._z,h=e._w;return this._x=n*h+a*o+s*c-r*l,this._y=s*h+a*l+r*o-n*c,this._z=r*h+a*c+n*l-s*o,this._w=a*h-n*o-s*l-r*c,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);const n=this._x,s=this._y,r=this._z,a=this._w;let o=a*t._w+n*t._x+s*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=s,this._z=r,this;const l=1-o*o;if(l<=Number.EPSILON){const u=1-e;return this._w=u*a+e*this._w,this._x=u*n+e*this._x,this._y=u*s+e*this._y,this._z=u*r+e*this._z,this.normalize(),this}const c=Math.sqrt(l),h=Math.atan2(c,o),d=Math.sin((1-e)*h)/c,p=Math.sin(e*h)/c;return this._w=a*d+this._w*p,this._x=n*d+this._x*p,this._y=s*d+this._y*p,this._z=r*d+this._z*p,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),n=Math.random(),s=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(s*Math.sin(t),s*Math.cos(t),r*Math.sin(e),r*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class P{constructor(t=0,e=0,n=0){P.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(ko.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ko.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*s,this.y=r[1]*e+r[4]*n+r[7]*s,this.z=r[2]*e+r[5]*n+r[8]*s,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,s=this.z,r=t.elements,a=1/(r[3]*e+r[7]*n+r[11]*s+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*s+r[12])*a,this.y=(r[1]*e+r[5]*n+r[9]*s+r[13])*a,this.z=(r[2]*e+r[6]*n+r[10]*s+r[14])*a,this}applyQuaternion(t){const e=this.x,n=this.y,s=this.z,r=t.x,a=t.y,o=t.z,l=t.w,c=2*(a*s-o*n),h=2*(o*e-r*s),d=2*(r*n-a*e);return this.x=e+l*c+a*d-o*h,this.y=n+l*h+o*c-r*d,this.z=s+l*d+r*h-a*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*s,this.y=r[1]*e+r[5]*n+r[9]*s,this.z=r[2]*e+r[6]*n+r[10]*s,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Yt(this.x,t.x,e.x),this.y=Yt(this.y,t.y,e.y),this.z=Yt(this.z,t.z,e.z),this}clampScalar(t,e){return this.x=Yt(this.x,t,e),this.y=Yt(this.y,t,e),this.z=Yt(this.z,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Yt(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,s=t.y,r=t.z,a=e.x,o=e.y,l=e.z;return this.x=s*l-r*o,this.y=r*a-n*l,this.z=n*o-s*a,this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Vr.copy(this).projectOnVector(t),this.sub(Vr)}reflect(t){return this.sub(Vr.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Yt(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,s=this.z-t.z;return e*e+n*n+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const s=Math.sin(e)*t;return this.x=s*Math.sin(n),this.y=Math.cos(e)*t,this.z=s*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),s=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=s,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=Math.random()*2-1,n=Math.sqrt(1-e*e);return this.x=n*Math.cos(t),this.y=e,this.z=n*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Vr=new P,ko=new ci;class ui{constructor(t=new P(1/0,1/0,1/0),e=new P(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;e=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,cn),cn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ss),Fs.subVectors(this.max,ss),xi.subVectors(t.a,ss),Mi.subVectors(t.b,ss),Si.subVectors(t.c,ss),Un.subVectors(Mi,xi),In.subVectors(Si,Mi),Zn.subVectors(xi,Si);let e=[0,-Un.z,Un.y,0,-In.z,In.y,0,-Zn.z,Zn.y,Un.z,0,-Un.x,In.z,0,-In.x,Zn.z,0,-Zn.x,-Un.y,Un.x,0,-In.y,In.x,0,-Zn.y,Zn.x,0];return!Gr(e,xi,Mi,Si,Fs)||(e=[1,0,0,0,1,0,0,0,1],!Gr(e,xi,Mi,Si,Fs))?!1:(Os.crossVectors(Un,In),e=[Os.x,Os.y,Os.z],Gr(e,xi,Mi,Si,Fs))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,cn).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(cn).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Sn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Sn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Sn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Sn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Sn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Sn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Sn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Sn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Sn),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Sn=[new P,new P,new P,new P,new P,new P,new P,new P],cn=new P,Ns=new ui,xi=new P,Mi=new P,Si=new P,Un=new P,In=new P,Zn=new P,ss=new P,Fs=new P,Os=new P,Kn=new P;function Gr(i,t,e,n,s){for(let r=0,a=i.length-3;r<=a;r+=3){Kn.fromArray(i,r);const o=s.x*Math.abs(Kn.x)+s.y*Math.abs(Kn.y)+s.z*Math.abs(Kn.z),l=t.dot(Kn),c=e.dot(Kn),h=n.dot(Kn);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>o)return!1}return!0}const qh=new ui,rs=new P,Wr=new P;class di{constructor(t=new P,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;e!==void 0?n.copy(e):qh.setFromPoints(t).getCenter(n);let s=0;for(let r=0,a=t.length;rthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;rs.subVectors(t,this.center);const e=rs.lengthSq();if(e>this.radius*this.radius){const n=Math.sqrt(e),s=(n-this.radius)*.5;this.center.addScaledVector(rs,s/n),this.radius+=s}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(Wr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(rs.copy(t.center).add(Wr)),this.expandByPoint(rs.copy(t.center).sub(Wr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}}const yn=new P,Xr=new P,Bs=new P,Nn=new P,Yr=new P,zs=new P,qr=new P;class bs{constructor(t=new P,e=new P(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,yn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=yn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(yn.copy(this.origin).addScaledVector(this.direction,e),yn.distanceToSquared(t))}distanceSqToSegment(t,e,n,s){Xr.copy(t).add(e).multiplyScalar(.5),Bs.copy(e).sub(t).normalize(),Nn.copy(this.origin).sub(Xr);const r=t.distanceTo(e)*.5,a=-this.direction.dot(Bs),o=Nn.dot(this.direction),l=-Nn.dot(Bs),c=Nn.lengthSq(),h=Math.abs(1-a*a);let d,p,u,g;if(h>0)if(d=a*l-o,p=a*o-l,g=r*h,d>=0)if(p>=-g)if(p<=g){const _=1/h;d*=_,p*=_,u=d*(d+a*p+2*o)+p*(a*d+p+2*l)+c}else p=r,d=Math.max(0,-(a*p+o)),u=-d*d+p*(p+2*l)+c;else p=-r,d=Math.max(0,-(a*p+o)),u=-d*d+p*(p+2*l)+c;else p<=-g?(d=Math.max(0,-(-a*r+o)),p=d>0?-r:Math.min(Math.max(-r,-l),r),u=-d*d+p*(p+2*l)+c):p<=g?(d=0,p=Math.min(Math.max(-r,-l),r),u=p*(p+2*l)+c):(d=Math.max(0,-(a*r+o)),p=d>0?r:Math.min(Math.max(-r,-l),r),u=-d*d+p*(p+2*l)+c);else p=a>0?-r:r,d=Math.max(0,-(a*p+o)),u=-d*d+p*(p+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,d),s&&s.copy(Xr).addScaledVector(Bs,p),u}intersectSphere(t,e){yn.subVectors(t.center,this.origin);const n=yn.dot(this.direction),s=yn.dot(yn)-n*n,r=t.radius*t.radius;if(s>r)return null;const a=Math.sqrt(r-s),o=n-a,l=n+a;return l<0?null:o<0?this.at(l,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,s,r,a,o,l;const c=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,p=this.origin;return c>=0?(n=(t.min.x-p.x)*c,s=(t.max.x-p.x)*c):(n=(t.max.x-p.x)*c,s=(t.min.x-p.x)*c),h>=0?(r=(t.min.y-p.y)*h,a=(t.max.y-p.y)*h):(r=(t.max.y-p.y)*h,a=(t.min.y-p.y)*h),n>a||r>s||((r>n||isNaN(n))&&(n=r),(a=0?(o=(t.min.z-p.z)*d,l=(t.max.z-p.z)*d):(o=(t.max.z-p.z)*d,l=(t.min.z-p.z)*d),n>l||o>s)||((o>n||n!==n)&&(n=o),(l=0?n:s,e)}intersectsBox(t){return this.intersectBox(t,yn)!==null}intersectTriangle(t,e,n,s,r){Yr.subVectors(e,t),zs.subVectors(n,t),qr.crossVectors(Yr,zs);let a=this.direction.dot(qr),o;if(a>0){if(s)return null;o=1}else if(a<0)o=-1,a=-a;else return null;Nn.subVectors(this.origin,t);const l=o*this.direction.dot(zs.crossVectors(Nn,zs));if(l<0)return null;const c=o*this.direction.dot(Yr.cross(Nn));if(c<0||l+c>a)return null;const h=-o*Nn.dot(qr);return h<0?null:this.at(h/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ne{constructor(t,e,n,s,r,a,o,l,c,h,d,p,u,g,_,m){ne.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,l,c,h,d,p,u,g,_,m)}set(t,e,n,s,r,a,o,l,c,h,d,p,u,g,_,m){const f=this.elements;return f[0]=t,f[4]=e,f[8]=n,f[12]=s,f[1]=r,f[5]=a,f[9]=o,f[13]=l,f[2]=c,f[6]=h,f[10]=d,f[14]=p,f[3]=u,f[7]=g,f[11]=_,f[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ne().fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,s=1/yi.setFromMatrixColumn(t,0).length(),r=1/yi.setFromMatrixColumn(t,1).length(),a=1/yi.setFromMatrixColumn(t,2).length();return e[0]=n[0]*s,e[1]=n[1]*s,e[2]=n[2]*s,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,s=t.y,r=t.z,a=Math.cos(n),o=Math.sin(n),l=Math.cos(s),c=Math.sin(s),h=Math.cos(r),d=Math.sin(r);if(t.order==="XYZ"){const p=a*h,u=a*d,g=o*h,_=o*d;e[0]=l*h,e[4]=-l*d,e[8]=c,e[1]=u+g*c,e[5]=p-_*c,e[9]=-o*l,e[2]=_-p*c,e[6]=g+u*c,e[10]=a*l}else if(t.order==="YXZ"){const p=l*h,u=l*d,g=c*h,_=c*d;e[0]=p+_*o,e[4]=g*o-u,e[8]=a*c,e[1]=a*d,e[5]=a*h,e[9]=-o,e[2]=u*o-g,e[6]=_+p*o,e[10]=a*l}else if(t.order==="ZXY"){const p=l*h,u=l*d,g=c*h,_=c*d;e[0]=p-_*o,e[4]=-a*d,e[8]=g+u*o,e[1]=u+g*o,e[5]=a*h,e[9]=_-p*o,e[2]=-a*c,e[6]=o,e[10]=a*l}else if(t.order==="ZYX"){const p=a*h,u=a*d,g=o*h,_=o*d;e[0]=l*h,e[4]=g*c-u,e[8]=p*c+_,e[1]=l*d,e[5]=_*c+p,e[9]=u*c-g,e[2]=-c,e[6]=o*l,e[10]=a*l}else if(t.order==="YZX"){const p=a*l,u=a*c,g=o*l,_=o*c;e[0]=l*h,e[4]=_-p*d,e[8]=g*d+u,e[1]=d,e[5]=a*h,e[9]=-o*h,e[2]=-c*h,e[6]=u*d+g,e[10]=p-_*d}else if(t.order==="XZY"){const p=a*l,u=a*c,g=o*l,_=o*c;e[0]=l*h,e[4]=-d,e[8]=c*h,e[1]=p*d+_,e[5]=a*h,e[9]=u*d-g,e[2]=g*d-u,e[6]=o*h,e[10]=_*d+p}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(jh,t,Zh)}lookAt(t,e,n){const s=this.elements;return je.subVectors(t,e),je.lengthSq()===0&&(je.z=1),je.normalize(),Fn.crossVectors(n,je),Fn.lengthSq()===0&&(Math.abs(n.z)===1?je.x+=1e-4:je.z+=1e-4,je.normalize(),Fn.crossVectors(n,je)),Fn.normalize(),ks.crossVectors(je,Fn),s[0]=Fn.x,s[4]=ks.x,s[8]=je.x,s[1]=Fn.y,s[5]=ks.y,s[9]=je.y,s[2]=Fn.z,s[6]=ks.z,s[10]=je.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[4],l=n[8],c=n[12],h=n[1],d=n[5],p=n[9],u=n[13],g=n[2],_=n[6],m=n[10],f=n[14],T=n[3],E=n[7],y=n[11],D=n[15],w=s[0],C=s[4],I=s[8],S=s[12],M=s[1],A=s[5],W=s[9],k=s[13],q=s[2],Q=s[6],X=s[10],tt=s[14],H=s[3],st=s[7],gt=s[11],Et=s[15];return r[0]=a*w+o*M+l*q+c*H,r[4]=a*C+o*A+l*Q+c*st,r[8]=a*I+o*W+l*X+c*gt,r[12]=a*S+o*k+l*tt+c*Et,r[1]=h*w+d*M+p*q+u*H,r[5]=h*C+d*A+p*Q+u*st,r[9]=h*I+d*W+p*X+u*gt,r[13]=h*S+d*k+p*tt+u*Et,r[2]=g*w+_*M+m*q+f*H,r[6]=g*C+_*A+m*Q+f*st,r[10]=g*I+_*W+m*X+f*gt,r[14]=g*S+_*k+m*tt+f*Et,r[3]=T*w+E*M+y*q+D*H,r[7]=T*C+E*A+y*Q+D*st,r[11]=T*I+E*W+y*X+D*gt,r[15]=T*S+E*k+y*tt+D*Et,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],s=t[8],r=t[12],a=t[1],o=t[5],l=t[9],c=t[13],h=t[2],d=t[6],p=t[10],u=t[14],g=t[3],_=t[7],m=t[11],f=t[15];return g*(+r*l*d-s*c*d-r*o*p+n*c*p+s*o*u-n*l*u)+_*(+e*l*u-e*c*p+r*a*p-s*a*u+s*c*h-r*l*h)+m*(+e*c*d-e*o*u-r*a*d+n*a*u+r*o*h-n*c*h)+f*(-s*o*h-e*l*d+e*o*p+s*a*d-n*a*p+n*l*h)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const s=this.elements;return t.isVector3?(s[12]=t.x,s[13]=t.y,s[14]=t.z):(s[12]=t,s[13]=e,s[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],l=t[6],c=t[7],h=t[8],d=t[9],p=t[10],u=t[11],g=t[12],_=t[13],m=t[14],f=t[15],T=d*m*c-_*p*c+_*l*u-o*m*u-d*l*f+o*p*f,E=g*p*c-h*m*c-g*l*u+a*m*u+h*l*f-a*p*f,y=h*_*c-g*d*c+g*o*u-a*_*u-h*o*f+a*d*f,D=g*d*l-h*_*l-g*o*p+a*_*p+h*o*m-a*d*m,w=e*T+n*E+s*y+r*D;if(w===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const C=1/w;return t[0]=T*C,t[1]=(_*p*r-d*m*r-_*s*u+n*m*u+d*s*f-n*p*f)*C,t[2]=(o*m*r-_*l*r+_*s*c-n*m*c-o*s*f+n*l*f)*C,t[3]=(d*l*r-o*p*r-d*s*c+n*p*c+o*s*u-n*l*u)*C,t[4]=E*C,t[5]=(h*m*r-g*p*r+g*s*u-e*m*u-h*s*f+e*p*f)*C,t[6]=(g*l*r-a*m*r-g*s*c+e*m*c+a*s*f-e*l*f)*C,t[7]=(a*p*r-h*l*r+h*s*c-e*p*c-a*s*u+e*l*u)*C,t[8]=y*C,t[9]=(g*d*r-h*_*r-g*n*u+e*_*u+h*n*f-e*d*f)*C,t[10]=(a*_*r-g*o*r+g*n*c-e*_*c-a*n*f+e*o*f)*C,t[11]=(h*o*r-a*d*r-h*n*c+e*d*c+a*n*u-e*o*u)*C,t[12]=D*C,t[13]=(h*_*s-g*d*s+g*n*p-e*_*p-h*n*m+e*d*m)*C,t[14]=(g*o*s-a*_*s-g*n*l+e*_*l+a*n*m-e*o*m)*C,t[15]=(a*d*s-h*o*s+h*n*l-e*d*l-a*n*p+e*o*p)*C,this}scale(t){const e=this.elements,n=t.x,s=t.y,r=t.z;return e[0]*=n,e[4]*=s,e[8]*=r,e[1]*=n,e[5]*=s,e[9]*=r,e[2]*=n,e[6]*=s,e[10]*=r,e[3]*=n,e[7]*=s,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],s=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,s))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),s=Math.sin(e),r=1-n,a=t.x,o=t.y,l=t.z,c=r*a,h=r*o;return this.set(c*a+n,c*o-s*l,c*l+s*o,0,c*o+s*l,h*o+n,h*l-s*a,0,c*l-s*o,h*l+s*a,r*l*l+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,s,r,a){return this.set(1,n,r,0,t,1,a,0,e,s,1,0,0,0,0,1),this}compose(t,e,n){const s=this.elements,r=e._x,a=e._y,o=e._z,l=e._w,c=r+r,h=a+a,d=o+o,p=r*c,u=r*h,g=r*d,_=a*h,m=a*d,f=o*d,T=l*c,E=l*h,y=l*d,D=n.x,w=n.y,C=n.z;return s[0]=(1-(_+f))*D,s[1]=(u+y)*D,s[2]=(g-E)*D,s[3]=0,s[4]=(u-y)*w,s[5]=(1-(p+f))*w,s[6]=(m+T)*w,s[7]=0,s[8]=(g+E)*C,s[9]=(m-T)*C,s[10]=(1-(p+_))*C,s[11]=0,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=1,this}decompose(t,e,n){const s=this.elements;let r=yi.set(s[0],s[1],s[2]).length();const a=yi.set(s[4],s[5],s[6]).length(),o=yi.set(s[8],s[9],s[10]).length();this.determinant()<0&&(r=-r),t.x=s[12],t.y=s[13],t.z=s[14],hn.copy(this);const c=1/r,h=1/a,d=1/o;return hn.elements[0]*=c,hn.elements[1]*=c,hn.elements[2]*=c,hn.elements[4]*=h,hn.elements[5]*=h,hn.elements[6]*=h,hn.elements[8]*=d,hn.elements[9]*=d,hn.elements[10]*=d,e.setFromRotationMatrix(hn),n.x=r,n.y=a,n.z=o,this}makePerspective(t,e,n,s,r,a,o=Rn){const l=this.elements,c=2*r/(e-t),h=2*r/(n-s),d=(e+t)/(e-t),p=(n+s)/(n-s);let u,g;if(o===Rn)u=-(a+r)/(a-r),g=-2*a*r/(a-r);else if(o===Er)u=-a/(a-r),g=-a*r/(a-r);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return l[0]=c,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=h,l[9]=p,l[13]=0,l[2]=0,l[6]=0,l[10]=u,l[14]=g,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,n,s,r,a,o=Rn){const l=this.elements,c=1/(e-t),h=1/(n-s),d=1/(a-r),p=(e+t)*c,u=(n+s)*h;let g,_;if(o===Rn)g=(a+r)*d,_=-2*d;else if(o===Er)g=r*d,_=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-p,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-u,l[2]=0,l[6]=0,l[10]=_,l[14]=-g,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let s=0;s<16;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const yi=new P,hn=new ne,jh=new P(0,0,0),Zh=new P(1,1,1),Fn=new P,ks=new P,je=new P,Ho=new ne,Vo=new ci;class Mn{constructor(t=0,e=0,n=0,s=Mn.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=s}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,s=this._order){return this._x=t,this._y=e,this._z=n,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const s=t.elements,r=s[0],a=s[4],o=s[8],l=s[1],c=s[5],h=s[9],d=s[2],p=s[6],u=s[10];switch(e){case"XYZ":this._y=Math.asin(Yt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,u),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(p,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Yt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,u),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-d,r),this._z=0);break;case"ZXY":this._x=Math.asin(Yt(p,-1,1)),Math.abs(p)<.9999999?(this._y=Math.atan2(-d,u),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,r));break;case"ZYX":this._y=Math.asin(-Yt(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(p,u),this._z=Math.atan2(l,r)):(this._x=0,this._z=Math.atan2(-a,c));break;case"YZX":this._z=Math.asin(Yt(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-d,r)):(this._x=0,this._y=Math.atan2(o,u));break;case"XZY":this._z=Math.asin(-Yt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(p,c),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-h,u),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Ho.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Ho,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Vo.setFromEuler(this),this.setFromQuaternion(Vo,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Mn.DEFAULT_ORDER="XYZ";class wo{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(s.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(s.type="BatchedMesh",s.perObjectFrustumCulled=this.perObjectFrustumCulled,s.sortObjects=this.sortObjects,s.drawRanges=this._drawRanges,s.reservedRanges=this._reservedRanges,s.visibility=this._visibility,s.active=this._active,s.bounds=this._bounds.map(o=>({boxInitialized:o.boxInitialized,boxMin:o.box.min.toArray(),boxMax:o.box.max.toArray(),sphereInitialized:o.sphereInitialized,sphereRadius:o.sphere.radius,sphereCenter:o.sphere.center.toArray()})),s.maxInstanceCount=this._maxInstanceCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.geometryCount=this._geometryCount,s.matricesTexture=this._matricesTexture.toJSON(t),this._colorsTexture!==null&&(s.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&&(s.boundingSphere={center:s.boundingSphere.center.toArray(),radius:s.boundingSphere.radius}),this.boundingBox!==null&&(s.boundingBox={min:s.boundingBox.min.toArray(),max:s.boundingBox.max.toArray()}));function r(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(t)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=r(t.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const l=o.shapes;if(Array.isArray(l))for(let c=0,h=l.length;c0){s.children=[];for(let o=0;o0){s.animations=[];for(let o=0;o0&&(n.geometries=o),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),h.length>0&&(n.images=h),d.length>0&&(n.shapes=d),p.length>0&&(n.skeletons=p),u.length>0&&(n.animations=u),g.length>0&&(n.nodes=g)}return n.object=s,n;function a(o){const l=[];for(const c in o){const h=o[c];delete h.metadata,l.push(h)}return l}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?s.multiplyScalar(1/Math.sqrt(r)):s.set(0,0,0)}static getBarycoord(t,e,n,s,r){un.subVectors(s,e),bn.subVectors(n,e),Zr.subVectors(t,e);const a=un.dot(un),o=un.dot(bn),l=un.dot(Zr),c=bn.dot(bn),h=bn.dot(Zr),d=a*c-o*o;if(d===0)return r.set(0,0,0),null;const p=1/d,u=(c*l-o*h)*p,g=(a*h-o*l)*p;return r.set(1-u-g,g,u)}static containsPoint(t,e,n,s){return this.getBarycoord(t,e,n,s,Tn)===null?!1:Tn.x>=0&&Tn.y>=0&&Tn.x+Tn.y<=1}static getInterpolation(t,e,n,s,r,a,o,l){return this.getBarycoord(t,e,n,s,Tn)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(r,Tn.x),l.addScaledVector(a,Tn.y),l.addScaledVector(o,Tn.z),l)}static getInterpolatedAttribute(t,e,n,s,r,a){return Qr.setScalar(0),ta.setScalar(0),ea.setScalar(0),Qr.fromBufferAttribute(t,e),ta.fromBufferAttribute(t,n),ea.fromBufferAttribute(t,s),a.setScalar(0),a.addScaledVector(Qr,r.x),a.addScaledVector(ta,r.y),a.addScaledVector(ea,r.z),a}static isFrontFacing(t,e,n,s){return un.subVectors(n,e),bn.subVectors(t,e),un.cross(bn).dot(s)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,s){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[s]),this}setFromAttributeAndIndices(t,e,n,s){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,s),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return un.subVectors(this.c,this.b),bn.subVectors(this.a,this.b),un.cross(bn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return on.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return on.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,s,r){return on.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}containsPoint(t){return on.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return on.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,s=this.b,r=this.c;let a,o;Ti.subVectors(s,n),wi.subVectors(r,n),Kr.subVectors(t,n);const l=Ti.dot(Kr),c=wi.dot(Kr);if(l<=0&&c<=0)return e.copy(n);$r.subVectors(t,s);const h=Ti.dot($r),d=wi.dot($r);if(h>=0&&d<=h)return e.copy(s);const p=l*d-h*c;if(p<=0&&l>=0&&h<=0)return a=l/(l-h),e.copy(n).addScaledVector(Ti,a);Jr.subVectors(t,r);const u=Ti.dot(Jr),g=wi.dot(Jr);if(g>=0&&u<=g)return e.copy(r);const _=u*c-l*g;if(_<=0&&c>=0&&g<=0)return o=c/(c-g),e.copy(n).addScaledVector(wi,o);const m=h*g-u*d;if(m<=0&&d-h>=0&&u-g>=0)return jo.subVectors(r,s),o=(d-h)/(d-h+(u-g)),e.copy(s).addScaledVector(jo,o);const f=1/(m+_+p);return a=_*f,o=p*f,e.copy(n).addScaledVector(Ti,a).addScaledVector(wi,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const _c={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},On={h:0,s:0,l:0},Vs={h:0,s:0,l:0};function na(i,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?i+(t-i)*6*e:e<1/2?t:e<2/3?i+(t-i)*6*(2/3-e):i}class ot{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){const s=t;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=an){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,Qt.toWorkingColorSpace(this,e),this}setRGB(t,e,n,s=Qt.workingColorSpace){return this.r=t,this.g=e,this.b=n,Qt.toWorkingColorSpace(this,s),this}setHSL(t,e,n,s=Qt.workingColorSpace){if(t=Nh(t,1),e=Yt(e,0,1),n=Yt(n,0,1),e===0)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+e):n+e-n*e,a=2*n-r;this.r=na(a,r,t+1/3),this.g=na(a,r,t),this.b=na(a,r,t-1/3)}return Qt.toWorkingColorSpace(this,s),this}setStyle(t,e=an){function n(r){r!==void 0&&parseFloat(r)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const a=s[1],o=s[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,e);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,e);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(t)){const r=s[1],a=r.length;if(a===3)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,e);if(a===6)return this.setHex(parseInt(r,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=an){const n=_c[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Dn(t.r),this.g=Dn(t.g),this.b=Dn(t.b),this}copyLinearToSRGB(t){return this.r=Wi(t.r),this.g=Wi(t.g),this.b=Wi(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=an){return Qt.fromWorkingColorSpace(Ne.copy(this),t),Math.round(Yt(Ne.r*255,0,255))*65536+Math.round(Yt(Ne.g*255,0,255))*256+Math.round(Yt(Ne.b*255,0,255))}getHexString(t=an){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Qt.workingColorSpace){Qt.fromWorkingColorSpace(Ne.copy(this),e);const n=Ne.r,s=Ne.g,r=Ne.b,a=Math.max(n,s,r),o=Math.min(n,s,r);let l,c;const h=(o+a)/2;if(o===a)l=0,c=0;else{const d=a-o;switch(c=h<=.5?d/(a+o):d/(2-a-o),a){case n:l=(s-r)/d+(s0!=t>0&&this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(const e in t){const n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const s=this[e];if(s===void 0){console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(n):s&&s.isVector3&&n&&n.isVector3?s.copy(n):this[e]=n}}toJSON(t){const e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Vi&&(n.blending=this.blending),this.side!==Yn&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==ya&&(n.blendSrc=this.blendSrc),this.blendDst!==Ea&&(n.blendDst=this.blendDst),this.blendEquation!==ii&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==qi&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==No&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==_i&&(n.stencilFail=this.stencilFail),this.stencilZFail!==_i&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==_i&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function s(r){const a=[];for(const o in r){const l=r[o];delete l.metadata,a.push(l)}return a}if(e){const r=s(t.textures),a=s(t.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(e!==null){const s=e.length;n=new Array(s);for(let r=0;r!==s;++r)n[r]=e[r].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class Ss extends qn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new ot(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Mn,this.combine=tc,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const Me=new P,Gs=new St;class he{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=oo,this.updateRanges=[],this.gpuType=xn,this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let s=0,r=this.itemSize;se.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),e.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ui);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new P(-1/0,-1/0,-1/0),new P(1/0,1/0,1/0));return}if(t!==void 0){if(this.boundingBox.setFromBufferAttribute(t),e)for(let n=0,s=e.length;n0&&(t.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(t[c]=l[c]);return t}t.data={attributes:{}};const e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const l in n){const c=n[l];t.data.attributes[l]=c.toJSON(t.data)}const s={};let r=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],h=[];for(let d=0,p=c.length;d0&&(s[l]=h,r=!0)}r&&(t.data.morphAttributes=s,t.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));const o=this.boundingSphere;return o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;n!==null&&this.setIndex(n.clone(e));const s=t.attributes;for(const c in s){const h=s[c];this.setAttribute(c,h.clone(e))}const r=t.morphAttributes;for(const c in r){const h=[],d=r[c];for(let p=0,u=d.length;p0){const s=e[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;r(t.far-t.near)**2))&&(Zo.copy(r).invert(),$n.copy(t.ray).applyMatrix4(Zo),!(n.boundingBox!==null&&$n.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,$n)))}_computeIntersections(t,e,n){let s;const r=this.geometry,a=this.material,o=r.index,l=r.attributes.position,c=r.attributes.uv,h=r.attributes.uv1,d=r.attributes.normal,p=r.groups,u=r.drawRange;if(o!==null)if(Array.isArray(a))for(let g=0,_=p.length;g<_;g++){const m=p[g],f=a[m.materialIndex],T=Math.max(m.start,u.start),E=Math.min(o.count,Math.min(m.start+m.count,u.start+u.count));for(let y=T,D=E;ye.far?null:{distance:c,point:Zs.clone(),object:i}}function Ks(i,t,e,n,s,r,a,o,l,c){i.getVertexPosition(o,Xs),i.getVertexPosition(l,Ys),i.getVertexPosition(c,qs);const h=nu(i,t,e,n,Xs,Ys,qs,$o);if(h){const d=new P;on.getBarycoord($o,Xs,Ys,qs,d),s&&(h.uv=on.getInterpolatedAttribute(s,o,l,c,d,new St)),r&&(h.uv1=on.getInterpolatedAttribute(r,o,l,c,d,new St)),a&&(h.normal=on.getInterpolatedAttribute(a,o,l,c,d,new P),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));const p={a:o,b:l,c,normal:new P,materialIndex:0};on.getNormal(Xs,Ys,qs,p.normal),h.face=p,h.barycoord=d}return h}class Ts extends ge{constructor(t=1,e=1,n=1,s=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:s,heightSegments:r,depthSegments:a};const o=this;s=Math.floor(s),r=Math.floor(r),a=Math.floor(a);const l=[],c=[],h=[],d=[];let p=0,u=0;g("z","y","x",-1,-1,n,e,t,a,r,0),g("z","y","x",1,-1,n,e,-t,a,r,1),g("x","z","y",1,1,t,n,e,s,a,2),g("x","z","y",1,-1,t,n,-e,s,a,3),g("x","y","z",1,-1,t,e,n,s,r,4),g("x","y","z",-1,-1,t,e,-n,s,r,5),this.setIndex(l),this.setAttribute("position",new Oe(c,3)),this.setAttribute("normal",new Oe(h,3)),this.setAttribute("uv",new Oe(d,2));function g(_,m,f,T,E,y,D,w,C,I,S){const M=y/C,A=D/I,W=y/2,k=D/2,q=w/2,Q=C+1,X=I+1;let tt=0,H=0;const st=new P;for(let gt=0;gt0?1:-1,h.push(st.x,st.y,st.z),d.push(Ft/C),d.push(1-gt/I),tt+=1}}for(let gt=0;gt0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const s in this.extensions)this.extensions[s]===!0&&(n[s]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Sc extends Ue{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ne,this.projectionMatrix=new ne,this.projectionMatrixInverse=new ne,this.coordinateSystem=Rn}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Bn=new P,Jo=new St,Qo=new St;class $e extends Sc{constructor(t=50,e=1,n=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=s,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=lo*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(gr*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return lo*2*Math.atan(Math.tan(gr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){Bn.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Bn.x,Bn.y).multiplyScalar(-t/Bn.z),Bn.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(Bn.x,Bn.y).multiplyScalar(-t/Bn.z)}getViewSize(t,e){return this.getViewBounds(t,Jo,Qo),e.subVectors(Qo,Jo)}setViewOffset(t,e,n,s,r,a){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(gr*.5*this.fov)/this.zoom,n=2*e,s=this.aspect*n,r=-.5*s;const a=this.view;if(this.view!==null&&this.view.enabled){const l=a.fullWidth,c=a.fullHeight;r+=a.offsetX*s/l,e-=a.offsetY*n/c,s*=a.width/l,n*=a.height/c}const o=this.filmOffset;o!==0&&(r+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+s,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Ri=-90,Ci=1;class au extends Ue{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const s=new $e(Ri,Ci,t,e);s.layers=this.layers,this.add(s);const r=new $e(Ri,Ci,t,e);r.layers=this.layers,this.add(r);const a=new $e(Ri,Ci,t,e);a.layers=this.layers,this.add(a);const o=new $e(Ri,Ci,t,e);o.layers=this.layers,this.add(o);const l=new $e(Ri,Ci,t,e);l.layers=this.layers,this.add(l);const c=new $e(Ri,Ci,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,s,r,a,o,l]=e;for(const c of e)this.remove(c);if(t===Rn)n.up.set(0,1,0),n.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(t===Er)n.up.set(0,-1,0),n.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:s}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[r,a,o,l,c,h]=this.children,d=t.getRenderTarget(),p=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),g=t.xr.enabled;t.xr.enabled=!1;const _=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,s),t.render(e,r),t.setRenderTarget(n,1,s),t.render(e,a),t.setRenderTarget(n,2,s),t.render(e,o),t.setRenderTarget(n,3,s),t.render(e,l),t.setRenderTarget(n,4,s),t.render(e,c),n.texture.generateMipmaps=_,t.setRenderTarget(n,5,s),t.render(e,h),t.setRenderTarget(d,p,u),t.xr.enabled=g,n.texture.needsPMREMUpdate=!0}}class yc extends Pe{constructor(t,e,n,s,r,a,o,l,c,h){t=t!==void 0?t:[],e=e!==void 0?e:ji,super(t,e,n,s,r,a,o,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class ou extends fn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},s=[n,n,n,n,n,n];this.texture=new yc(s,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:vn}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},s=new Ts(5,5,5),r=new He({name:"CubemapFromEquirect",uniforms:Qi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Xe,blending:Cn});r.uniforms.tEquirect.value=e;const a=new be(s,r),o=e.minFilter;return e.minFilter===ai&&(e.minFilter=vn),new au(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,s){const r=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,s);t.setRenderTarget(r)}}class Dr{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new ot(t),this.density=e}clone(){return new Dr(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class lu extends Ue{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Mn,this.environmentIntensity=1,this.environmentRotation=new Mn,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}class cu{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=oo,this.updateRanges=[],this.version=0,this.uuid=Xn()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let s=0,r=this.stride;st.far||e.push({distance:l,point:ls.clone(),uv:on.getInterpolation(ls,$s,hs,Js,tl,ra,el,new St),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function Qs(i,t,e,n,s,r){Ui.subVectors(i,e).addScalar(.5).multiply(n),s!==void 0?(cs.x=r*Ui.x-s*Ui.y,cs.y=s*Ui.x+r*Ui.y):cs.copy(Ui),i.copy(t),i.x+=cs.x,i.y+=cs.y,i.applyMatrix4(Ec)}class hu extends Pe{constructor(t=null,e=1,n=1,s,r,a,o,l,c=Je,h=Je,d,p){super(null,a,o,l,c,h,s,r,d,p),this.isDataTexture=!0,this.image={data:t,width:e,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class nl extends he{constructor(t,e,n,s=1){super(t,e,n),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=s}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}const Ii=new ne,il=new ne,tr=[],sl=new ui,uu=new ne,us=new be,ds=new di;class du extends be{constructor(t,e,n){super(t,e),this.isInstancedMesh=!0,this.instanceMatrix=new nl(new Float32Array(n*16),16),this.instanceColor=null,this.morphTexture=null,this.count=n,this.boundingBox=null,this.boundingSphere=null;for(let s=0;s1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||pu.getNormalMatrix(t),s=this.coplanarPoint(aa).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Jn=new di,er=new P;class Ao{constructor(t=new Hn,e=new Hn,n=new Hn,s=new Hn,r=new Hn,a=new Hn){this.planes=[t,e,n,s,r,a]}set(t,e,n,s,r,a){const o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(s),o[4].copy(r),o[5].copy(a),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=Rn){const n=this.planes,s=t.elements,r=s[0],a=s[1],o=s[2],l=s[3],c=s[4],h=s[5],d=s[6],p=s[7],u=s[8],g=s[9],_=s[10],m=s[11],f=s[12],T=s[13],E=s[14],y=s[15];if(n[0].setComponents(l-r,p-c,m-u,y-f).normalize(),n[1].setComponents(l+r,p+c,m+u,y+f).normalize(),n[2].setComponents(l+a,p+h,m+g,y+T).normalize(),n[3].setComponents(l-a,p-h,m-g,y-T).normalize(),n[4].setComponents(l-o,p-d,m-_,y-E).normalize(),e===Rn)n[5].setComponents(l+o,p+d,m+_,y+E).normalize();else if(e===Er)n[5].setComponents(o,d,_,E).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),Jn.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Jn.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Jn)}intersectsSprite(t){return Jn.center.set(0,0,0),Jn.radius=.7071067811865476,Jn.applyMatrix4(t.matrixWorld),this.intersectsSphere(Jn)}intersectsSphere(t){const e=this.planes,n=t.center,s=-t.radius;for(let r=0;r<6;r++)if(e[r].distanceToPoint(n)0?t.max.x:t.min.x,er.y=s.normal.y>0?t.max.y:t.min.y,er.z=s.normal.z>0?t.max.z:t.min.z,s.distanceToPoint(er)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}class Ar extends qn{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new ot(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}}const Rr=new P,Cr=new P,rl=new ne,fs=new bs,nr=new di,oa=new P,al=new P;class co extends Ue{constructor(t=new ge,e=new Ar){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.index===null){const e=t.attributes.position,n=[0];for(let s=1,r=e.count;s0){const s=e[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;rn)return;oa.applyMatrix4(i.matrixWorld);const l=t.ray.origin.distanceTo(oa);if(!(lt.far))return{distance:l,point:al.clone().applyMatrix4(i.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:i}}class oi extends qn{constructor(t){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new ot(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}}const ol=new ne,ho=new bs,sr=new di,rr=new P;class Yi extends Ue{constructor(t=new ge,e=new oi){super(),this.isPoints=!0,this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,s=this.matrixWorld,r=t.params.Points.threshold,a=n.drawRange;if(n.boundingSphere===null&&n.computeBoundingSphere(),sr.copy(n.boundingSphere),sr.applyMatrix4(s),sr.radius+=r,t.ray.intersectsSphere(sr)===!1)return;ol.copy(s).invert(),ho.copy(t.ray).applyMatrix4(ol);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=o*o,c=n.index,d=n.attributes.position;if(c!==null){const p=Math.max(0,a.start),u=Math.min(c.count,a.start+a.count);for(let g=p,_=u;g<_;g++){const m=c.getX(g);rr.fromBufferAttribute(d,m),ll(rr,m,l,s,t,e,this)}}else{const p=Math.max(0,a.start),u=Math.min(d.count,a.start+a.count);for(let g=p,_=u;g<_;g++)rr.fromBufferAttribute(d,g),ll(rr,g,l,s,t,e,this)}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const s=e[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;rs.far)return;r.push({distance:c,distanceToRay:Math.sqrt(o),point:l,index:t,face:null,faceIndex:null,barycoord:null,object:a})}}class zi extends Ue{constructor(){super(),this.isGroup=!0,this.type="Group"}}class bc extends Pe{constructor(t,e,n,s,r,a,o,l,c){super(t,e,n,s,r,a,o,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Tc extends Pe{constructor(t,e,n,s,r,a,o,l,c,h=Gi){if(h!==Gi&&h!==$i)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Gi&&(n=li),n===void 0&&h===$i&&(n=Ki),super(null,s,r,a,o,l,h,n,c),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=o!==void 0?o:Je,this.minFilter=l!==void 0?l:Je,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return this.compareFunction!==null&&(e.compareFunction=this.compareFunction),e}}class ws extends ge{constructor(t=1,e=1,n=1,s=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:s};const r=t/2,a=e/2,o=Math.floor(n),l=Math.floor(s),c=o+1,h=l+1,d=t/o,p=e/l,u=[],g=[],_=[],m=[];for(let f=0;f0)&&u.push(E,y,w),(f!==n-1||lu.start-g.start);let p=0;for(let u=1;u 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,Gu=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,Wu=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,Xu=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,Yu=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,qu=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,ju=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - varying vec3 vColor; -#endif`,Zu=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif -#ifdef USE_BATCHING_COLOR - vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); - vColor.xyz *= batchingColor.xyz; -#endif`,Ku=`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -mat3 transposeMat3( const in mat3 m ) { - mat3 tmp; - tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); - tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); - tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); - return tmp; -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,$u=`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,Ju=`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,Qu=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,td=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,ed=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE - emissiveColor = sRGBTransferEOTF( emissiveColor ); - #endif - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,nd=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,id="gl_FragColor = linearToOutputTexel( gl_FragColor );",sd=`vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferEOTF( in vec4 value ) { - return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); -} -vec4 sRGBTransferOETF( in vec4 value ) { - return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); -}`,rd=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif -#endif`,ad=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - uniform mat3 envMapRotation; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif - -#endif`,od=`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,ld=`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,cd=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,hd=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,ud=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,dd=`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,fd=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,pd=`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,md=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,gd=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,_d=`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,vd=`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,xd=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,Md=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,Sd=`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,yd=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,Ed=`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,bd=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_DISPERSION - material.dispersion = dispersion; -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,Td=`struct PhysicalMaterial { - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - float dispersion; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( gv + gl ); - return saturate(v); - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColor; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; - float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; - float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); - return saturate( DG * RECIPROCAL_PI ); -} -vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); - const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); - vec4 r = roughness * c0 + c1; - float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; - vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; - return fab; -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - vec2 fab = DFGApprox( normal, viewDir, roughness ); - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - vec2 fab = DFGApprox( normal, viewDir, roughness ); - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - #endif - vec3 singleScattering = vec3( 0.0 ); - vec3 multiScattering = vec3( 0.0 ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); - #endif - vec3 totalScattering = singleScattering + multiScattering; - vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,wd=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,Ad=`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,Rd=`#if defined( RE_IndirectDiffuse ) - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,Cd=`#if defined( USE_LOGDEPTHBUF ) - gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,Pd=`#if defined( USE_LOGDEPTHBUF ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,Dd=`#ifdef USE_LOGDEPTHBUF - varying float vFragDepth; - varying float vIsPerspective; -#endif`,Ld=`#ifdef USE_LOGDEPTHBUF - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); -#endif`,Ud=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,Id=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,Nd=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,Fd=`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,Od=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,Bd=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,zd=`#ifdef USE_INSTANCING_MORPH - float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; - } -#endif`,kd=`#if defined( USE_MORPHCOLORS ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,Hd=`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } -#endif`,Vd=`#ifdef USE_MORPHTARGETS - #ifndef USE_INSTANCING_MORPH - uniform float morphTargetBaseInfluence; - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - #endif - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } -#endif`,Gd=`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } -#endif`,Wd=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,Xd=`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,Yd=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,qd=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,jd=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,Zd=`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,Kd=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,$d=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,Jd=`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,Qd=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,tf=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,ef=`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; -const float Inv255 = 1. / 255.; -const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); -const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); -const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); -const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); -vec4 packDepthToRGBA( const in float v ) { - if( v <= 0.0 ) - return vec4( 0., 0., 0., 0. ); - if( v >= 1.0 ) - return vec4( 1., 1., 1., 1. ); - float vuf; - float af = modf( v * PackFactors.a, vuf ); - float bf = modf( vuf * ShiftRight8, vuf ); - float gf = modf( vuf * ShiftRight8, vuf ); - return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); -} -vec3 packDepthToRGB( const in float v ) { - if( v <= 0.0 ) - return vec3( 0., 0., 0. ); - if( v >= 1.0 ) - return vec3( 1., 1., 1. ); - float vuf; - float bf = modf( v * PackFactors.b, vuf ); - float gf = modf( vuf * ShiftRight8, vuf ); - return vec3( vuf * Inv255, gf * PackUpscale, bf ); -} -vec2 packDepthToRG( const in float v ) { - if( v <= 0.0 ) - return vec2( 0., 0. ); - if( v >= 1.0 ) - return vec2( 1., 1. ); - float vuf; - float gf = modf( v * 256., vuf ); - return vec2( vuf * Inv255, gf ); -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors4 ); -} -float unpackRGBToDepth( const in vec3 v ) { - return dot( v, UnpackFactors3 ); -} -float unpackRGToDepth( const in vec2 v ) { - return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; -} -vec4 pack2HalfToRGBA( const in vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( const in vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - return depth * ( near - far ) - near; -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,nf=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,sf=`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,rf=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,af=`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,of=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,lf=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,cf=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - struct SpotLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { - return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); - } - vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { - return unpackRGBATo2Half( texture2D( shadow, uv ) ); - } - float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ - float occlusion = 1.0; - vec2 distribution = texture2DDistribution( shadow, uv ); - float hard_shadow = step( compare , distribution.x ); - if (hard_shadow != 1.0 ) { - float distance = compare - distribution.x ; - float variance = max( 0.00000, distribution.y * distribution.y ); - float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); - } - return occlusion; - } - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - #if defined( SHADOWMAP_TYPE_PCF ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx0 = - texelSize.x * shadowRadius; - float dy0 = - texelSize.y * shadowRadius; - float dx1 = + texelSize.x * shadowRadius; - float dy1 = + texelSize.y * shadowRadius; - float dx2 = dx0 / 2.0; - float dy2 = dy0 / 2.0; - float dx3 = dx1 / 2.0; - float dy3 = dy1 / 2.0; - shadow = ( - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) - ) * ( 1.0 / 17.0 ); - #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx = texelSize.x; - float dy = texelSize.y; - vec2 uv = shadowCoord.xy; - vec2 f = fract( uv * shadowMapSize + 0.5 ); - uv -= f * texelSize; - shadow = ( - texture2DCompare( shadowMap, uv, shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), - f.x ), - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), - f.x ), - f.y ) - ) * ( 1.0 / 9.0 ); - #elif defined( SHADOWMAP_TYPE_VSM ) - shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); - #else - shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); - #endif - } - return mix( 1.0, shadow, shadowIntensity ); - } - vec2 cubeToUV( vec3 v, float texelSizeY ) { - vec3 absV = abs( v ); - float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); - absV *= scaleToCube; - v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); - vec2 planar = v.xy; - float almostATexel = 1.5 * texelSizeY; - float almostOne = 1.0 - almostATexel; - if ( absV.z >= almostOne ) { - if ( v.z > 0.0 ) - planar.x = 4.0 - v.x; - } else if ( absV.x >= almostOne ) { - float signX = sign( v.x ); - planar.x = v.z * signX + 2.0 * signX; - } else if ( absV.y >= almostOne ) { - float signY = sign( v.y ); - planar.x = v.x + 2.0 * signY + 2.0; - planar.y = v.z * signY - 2.0; - } - return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); - } - float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - float shadow = 1.0; - vec3 lightToPosition = shadowCoord.xyz; - - float lightToPositionLength = length( lightToPosition ); - if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) { - float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); - #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) - vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; - shadow = ( - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) - ) * ( 1.0 / 9.0 ); - #else - shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); - #endif - } - return mix( 1.0, shadow, shadowIntensity ); - } -#endif`,hf=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,uf=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,df=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,ff=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,pf=`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,mf=`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,gf=`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,_f=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,vf=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,xf=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,Mf=`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 CineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 NeutralToneMapping( vec3 color ) { - const float StartCompression = 0.8 - 0.04; - const float Desaturation = 0.15; - color *= toneMappingExposure; - float x = min( color.r, min( color.g, color.b ) ); - float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; - color -= offset; - float peak = max( color.r, max( color.g, color.b ) ); - if ( peak < StartCompression ) return color; - float d = 1. - StartCompression; - float newPeak = 1. - d * d / ( peak + d - StartCompression ); - color *= newPeak / peak; - float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); - return mix( color, vec3( newPeak ), g ); -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,Sf=`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,yf=`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec4 transmittedLight; - vec3 transmittance; - #ifdef USE_DISPERSION - float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; - vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); - for ( int i = 0; i < 3; i ++ ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); - transmittedLight[ i ] = transmissionSample[ i ]; - transmittedLight.a += transmissionSample.a; - transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; - } - transmittedLight.a /= 3.0; - #else - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - #endif - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,Ef=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,bf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,Tf=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,wf=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`;const Af=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,Rf=`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,Cf=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,Pf=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -uniform mat3 backgroundRotation; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,Df=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,Lf=`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,Uf=`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,If=`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #elif DEPTH_PACKING == 3202 - gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); - #elif DEPTH_PACKING == 3203 - gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); - #endif -}`,Nf=`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,Ff=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -#include -void main () { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = packDepthToRGBA( dist ); -}`,Of=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,Bf=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,zf=`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,kf=`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,Hf=`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,Vf=`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,Gf=`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,Wf=`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,Xf=`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,Yf=`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,qf=`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,jf=`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,Zf=`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,Kf=`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,$f=`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,Jf=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_DISPERSION - uniform float dispersion; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); - outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,Qf=`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,tp=`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,ep=`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,np=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,ip=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,sp=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,rp=`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix[ 3 ]; - vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,ap=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`,Gt={alphahash_fragment:Au,alphahash_pars_fragment:Ru,alphamap_fragment:Cu,alphamap_pars_fragment:Pu,alphatest_fragment:Du,alphatest_pars_fragment:Lu,aomap_fragment:Uu,aomap_pars_fragment:Iu,batching_pars_vertex:Nu,batching_vertex:Fu,begin_vertex:Ou,beginnormal_vertex:Bu,bsdfs:zu,iridescence_fragment:ku,bumpmap_pars_fragment:Hu,clipping_planes_fragment:Vu,clipping_planes_pars_fragment:Gu,clipping_planes_pars_vertex:Wu,clipping_planes_vertex:Xu,color_fragment:Yu,color_pars_fragment:qu,color_pars_vertex:ju,color_vertex:Zu,common:Ku,cube_uv_reflection_fragment:$u,defaultnormal_vertex:Ju,displacementmap_pars_vertex:Qu,displacementmap_vertex:td,emissivemap_fragment:ed,emissivemap_pars_fragment:nd,colorspace_fragment:id,colorspace_pars_fragment:sd,envmap_fragment:rd,envmap_common_pars_fragment:ad,envmap_pars_fragment:od,envmap_pars_vertex:ld,envmap_physical_pars_fragment:xd,envmap_vertex:cd,fog_vertex:hd,fog_pars_vertex:ud,fog_fragment:dd,fog_pars_fragment:fd,gradientmap_pars_fragment:pd,lightmap_pars_fragment:md,lights_lambert_fragment:gd,lights_lambert_pars_fragment:_d,lights_pars_begin:vd,lights_toon_fragment:Md,lights_toon_pars_fragment:Sd,lights_phong_fragment:yd,lights_phong_pars_fragment:Ed,lights_physical_fragment:bd,lights_physical_pars_fragment:Td,lights_fragment_begin:wd,lights_fragment_maps:Ad,lights_fragment_end:Rd,logdepthbuf_fragment:Cd,logdepthbuf_pars_fragment:Pd,logdepthbuf_pars_vertex:Dd,logdepthbuf_vertex:Ld,map_fragment:Ud,map_pars_fragment:Id,map_particle_fragment:Nd,map_particle_pars_fragment:Fd,metalnessmap_fragment:Od,metalnessmap_pars_fragment:Bd,morphinstance_vertex:zd,morphcolor_vertex:kd,morphnormal_vertex:Hd,morphtarget_pars_vertex:Vd,morphtarget_vertex:Gd,normal_fragment_begin:Wd,normal_fragment_maps:Xd,normal_pars_fragment:Yd,normal_pars_vertex:qd,normal_vertex:jd,normalmap_pars_fragment:Zd,clearcoat_normal_fragment_begin:Kd,clearcoat_normal_fragment_maps:$d,clearcoat_pars_fragment:Jd,iridescence_pars_fragment:Qd,opaque_fragment:tf,packing:ef,premultiplied_alpha_fragment:nf,project_vertex:sf,dithering_fragment:rf,dithering_pars_fragment:af,roughnessmap_fragment:of,roughnessmap_pars_fragment:lf,shadowmap_pars_fragment:cf,shadowmap_pars_vertex:hf,shadowmap_vertex:uf,shadowmask_pars_fragment:df,skinbase_vertex:ff,skinning_pars_vertex:pf,skinning_vertex:mf,skinnormal_vertex:gf,specularmap_fragment:_f,specularmap_pars_fragment:vf,tonemapping_fragment:xf,tonemapping_pars_fragment:Mf,transmission_fragment:Sf,transmission_pars_fragment:yf,uv_pars_fragment:Ef,uv_pars_vertex:bf,uv_vertex:Tf,worldpos_vertex:wf,background_vert:Af,background_frag:Rf,backgroundCube_vert:Cf,backgroundCube_frag:Pf,cube_vert:Df,cube_frag:Lf,depth_vert:Uf,depth_frag:If,distanceRGBA_vert:Nf,distanceRGBA_frag:Ff,equirect_vert:Of,equirect_frag:Bf,linedashed_vert:zf,linedashed_frag:kf,meshbasic_vert:Hf,meshbasic_frag:Vf,meshlambert_vert:Gf,meshlambert_frag:Wf,meshmatcap_vert:Xf,meshmatcap_frag:Yf,meshnormal_vert:qf,meshnormal_frag:jf,meshphong_vert:Zf,meshphong_frag:Kf,meshphysical_vert:$f,meshphysical_frag:Jf,meshtoon_vert:Qf,meshtoon_frag:tp,points_vert:ep,points_frag:np,shadow_vert:ip,shadow_frag:sp,sprite_vert:rp,sprite_frag:ap},ct={common:{diffuse:{value:new ot(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ht},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ht}},envmap:{envMap:{value:null},envMapRotation:{value:new Ht},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ht}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ht}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ht},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ht},normalScale:{value:new St(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ht},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ht}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ht}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ht}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new ot(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new ot(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0},uvTransform:{value:new Ht}},sprite:{diffuse:{value:new ot(16777215)},opacity:{value:1},center:{value:new St(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ht},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0}}},mn={basic:{uniforms:ke([ct.common,ct.specularmap,ct.envmap,ct.aomap,ct.lightmap,ct.fog]),vertexShader:Gt.meshbasic_vert,fragmentShader:Gt.meshbasic_frag},lambert:{uniforms:ke([ct.common,ct.specularmap,ct.envmap,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.fog,ct.lights,{emissive:{value:new ot(0)}}]),vertexShader:Gt.meshlambert_vert,fragmentShader:Gt.meshlambert_frag},phong:{uniforms:ke([ct.common,ct.specularmap,ct.envmap,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.fog,ct.lights,{emissive:{value:new ot(0)},specular:{value:new ot(1118481)},shininess:{value:30}}]),vertexShader:Gt.meshphong_vert,fragmentShader:Gt.meshphong_frag},standard:{uniforms:ke([ct.common,ct.envmap,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.roughnessmap,ct.metalnessmap,ct.fog,ct.lights,{emissive:{value:new ot(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Gt.meshphysical_vert,fragmentShader:Gt.meshphysical_frag},toon:{uniforms:ke([ct.common,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.gradientmap,ct.fog,ct.lights,{emissive:{value:new ot(0)}}]),vertexShader:Gt.meshtoon_vert,fragmentShader:Gt.meshtoon_frag},matcap:{uniforms:ke([ct.common,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.fog,{matcap:{value:null}}]),vertexShader:Gt.meshmatcap_vert,fragmentShader:Gt.meshmatcap_frag},points:{uniforms:ke([ct.points,ct.fog]),vertexShader:Gt.points_vert,fragmentShader:Gt.points_frag},dashed:{uniforms:ke([ct.common,ct.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Gt.linedashed_vert,fragmentShader:Gt.linedashed_frag},depth:{uniforms:ke([ct.common,ct.displacementmap]),vertexShader:Gt.depth_vert,fragmentShader:Gt.depth_frag},normal:{uniforms:ke([ct.common,ct.bumpmap,ct.normalmap,ct.displacementmap,{opacity:{value:1}}]),vertexShader:Gt.meshnormal_vert,fragmentShader:Gt.meshnormal_frag},sprite:{uniforms:ke([ct.sprite,ct.fog]),vertexShader:Gt.sprite_vert,fragmentShader:Gt.sprite_frag},background:{uniforms:{uvTransform:{value:new Ht},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Gt.background_vert,fragmentShader:Gt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ht}},vertexShader:Gt.backgroundCube_vert,fragmentShader:Gt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Gt.cube_vert,fragmentShader:Gt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Gt.equirect_vert,fragmentShader:Gt.equirect_frag},distanceRGBA:{uniforms:ke([ct.common,ct.displacementmap,{referencePosition:{value:new P},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Gt.distanceRGBA_vert,fragmentShader:Gt.distanceRGBA_frag},shadow:{uniforms:ke([ct.lights,ct.fog,{color:{value:new ot(0)},opacity:{value:1}}]),vertexShader:Gt.shadow_vert,fragmentShader:Gt.shadow_frag}};mn.physical={uniforms:ke([mn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ht},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ht},clearcoatNormalScale:{value:new St(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ht},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ht},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ht},sheen:{value:0},sheenColor:{value:new ot(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ht},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ht},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ht},transmissionSamplerSize:{value:new St},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ht},attenuationDistance:{value:0},attenuationColor:{value:new ot(0)},specularColor:{value:new ot(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ht},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ht},anisotropyVector:{value:new St},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ht}}]),vertexShader:Gt.meshphysical_vert,fragmentShader:Gt.meshphysical_frag};const ar={r:0,b:0,g:0},Qn=new Mn,op=new ne;function lp(i,t,e,n,s,r,a){const o=new ot(0);let l=r===!0?0:1,c,h,d=null,p=0,u=null;function g(E){let y=E.isScene===!0?E.background:null;return y&&y.isTexture&&(y=(E.backgroundBlurriness>0?e:t).get(y)),y}function _(E){let y=!1;const D=g(E);D===null?f(o,l):D&&D.isColor&&(f(D,1),y=!0);const w=i.xr.getEnvironmentBlendMode();w==="additive"?n.buffers.color.setClear(0,0,0,1,a):w==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,a),(i.autoClear||y)&&(n.buffers.depth.setTest(!0),n.buffers.depth.setMask(!0),n.buffers.color.setMask(!0),i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil))}function m(E,y){const D=g(y);D&&(D.isCubeTexture||D.mapping===Pr)?(h===void 0&&(h=new be(new Ts(1,1,1),new He({name:"BackgroundCubeMaterial",uniforms:Qi(mn.backgroundCube.uniforms),vertexShader:mn.backgroundCube.vertexShader,fragmentShader:mn.backgroundCube.fragmentShader,side:Xe,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(w,C,I){this.matrixWorld.copyPosition(I.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(h)),Qn.copy(y.backgroundRotation),Qn.x*=-1,Qn.y*=-1,Qn.z*=-1,D.isCubeTexture&&D.isRenderTargetTexture===!1&&(Qn.y*=-1,Qn.z*=-1),h.material.uniforms.envMap.value=D,h.material.uniforms.flipEnvMap.value=D.isCubeTexture&&D.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=y.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,h.material.uniforms.backgroundRotation.value.setFromMatrix4(op.makeRotationFromEuler(Qn)),h.material.toneMapped=Qt.getTransfer(D.colorSpace)!==se,(d!==D||p!==D.version||u!==i.toneMapping)&&(h.material.needsUpdate=!0,d=D,p=D.version,u=i.toneMapping),h.layers.enableAll(),E.unshift(h,h.geometry,h.material,0,0,null)):D&&D.isTexture&&(c===void 0&&(c=new be(new ws(2,2),new He({name:"BackgroundMaterial",uniforms:Qi(mn.background.uniforms),vertexShader:mn.background.vertexShader,fragmentShader:mn.background.fragmentShader,side:Yn,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(c)),c.material.uniforms.t2D.value=D,c.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,c.material.toneMapped=Qt.getTransfer(D.colorSpace)!==se,D.matrixAutoUpdate===!0&&D.updateMatrix(),c.material.uniforms.uvTransform.value.copy(D.matrix),(d!==D||p!==D.version||u!==i.toneMapping)&&(c.material.needsUpdate=!0,d=D,p=D.version,u=i.toneMapping),c.layers.enableAll(),E.unshift(c,c.geometry,c.material,0,0,null))}function f(E,y){E.getRGB(ar,Mc(i)),n.buffers.color.setClear(ar.r,ar.g,ar.b,y,a)}function T(){h!==void 0&&(h.geometry.dispose(),h.material.dispose()),c!==void 0&&(c.geometry.dispose(),c.material.dispose())}return{getClearColor:function(){return o},setClearColor:function(E,y=1){o.set(E),l=y,f(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(E){l=E,f(o,l)},render:_,addToRenderList:m,dispose:T}}function cp(i,t){const e=i.getParameter(i.MAX_VERTEX_ATTRIBS),n={},s=p(null);let r=s,a=!1;function o(M,A,W,k,q){let Q=!1;const X=d(k,W,A);r!==X&&(r=X,c(r.object)),Q=u(M,k,W,q),Q&&g(M,k,W,q),q!==null&&t.update(q,i.ELEMENT_ARRAY_BUFFER),(Q||a)&&(a=!1,y(M,A,W,k),q!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t.get(q).buffer))}function l(){return i.createVertexArray()}function c(M){return i.bindVertexArray(M)}function h(M){return i.deleteVertexArray(M)}function d(M,A,W){const k=W.wireframe===!0;let q=n[M.id];q===void 0&&(q={},n[M.id]=q);let Q=q[A.id];Q===void 0&&(Q={},q[A.id]=Q);let X=Q[k];return X===void 0&&(X=p(l()),Q[k]=X),X}function p(M){const A=[],W=[],k=[];for(let q=0;q=0){const gt=q[H];let Et=Q[H];if(Et===void 0&&(H==="instanceMatrix"&&M.instanceMatrix&&(Et=M.instanceMatrix),H==="instanceColor"&&M.instanceColor&&(Et=M.instanceColor)),gt===void 0||gt.attribute!==Et||Et&>.data!==Et.data)return!0;X++}return r.attributesNum!==X||r.index!==k}function g(M,A,W,k){const q={},Q=A.attributes;let X=0;const tt=W.getAttributes();for(const H in tt)if(tt[H].location>=0){let gt=Q[H];gt===void 0&&(H==="instanceMatrix"&&M.instanceMatrix&&(gt=M.instanceMatrix),H==="instanceColor"&&M.instanceColor&&(gt=M.instanceColor));const Et={};Et.attribute=gt,gt&>.data&&(Et.data=gt.data),q[H]=Et,X++}r.attributes=q,r.attributesNum=X,r.index=k}function _(){const M=r.newAttributes;for(let A=0,W=M.length;A=0){let st=q[tt];if(st===void 0&&(tt==="instanceMatrix"&&M.instanceMatrix&&(st=M.instanceMatrix),tt==="instanceColor"&&M.instanceColor&&(st=M.instanceColor)),st!==void 0){const gt=st.normalized,Et=st.itemSize,Ft=t.get(st);if(Ft===void 0)continue;const Xt=Ft.buffer,Y=Ft.type,nt=Ft.bytesPerElement,_t=Y===i.INT||Y===i.UNSIGNED_INT||st.gpuType===xo;if(st.isInterleavedBufferAttribute){const lt=st.data,Ct=lt.stride,Lt=st.offset;if(lt.isInstancedInterleavedBuffer){for(let Vt=0;Vt0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";C="mediump"}return C==="mediump"&&i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.MEDIUM_FLOAT).precision>0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=e.precision!==void 0?e.precision:"highp";const h=l(c);h!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",h,"instead."),c=h);const d=e.logarithmicDepthBuffer===!0,p=e.reverseDepthBuffer===!0&&t.has("EXT_clip_control"),u=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),g=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),_=i.getParameter(i.MAX_TEXTURE_SIZE),m=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),f=i.getParameter(i.MAX_VERTEX_ATTRIBS),T=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),E=i.getParameter(i.MAX_VARYING_VECTORS),y=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),D=g>0,w=i.getParameter(i.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:d,reverseDepthBuffer:p,maxTextures:u,maxVertexTextures:g,maxTextureSize:_,maxCubemapSize:m,maxAttributes:f,maxVertexUniforms:T,maxVaryings:E,maxFragmentUniforms:y,vertexTextures:D,maxSamples:w}}function dp(i){const t=this;let e=null,n=0,s=!1,r=!1;const a=new Hn,o=new Ht,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,p){const u=d.length!==0||p||n!==0||s;return s=p,n=d.length,u},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(d,p){e=h(d,p,0)},this.setState=function(d,p,u){const g=d.clippingPlanes,_=d.clipIntersection,m=d.clipShadows,f=i.get(d);if(!s||g===null||g.length===0||r&&!m)r?h(null):c();else{const T=r?0:n,E=T*4;let y=f.clippingState||null;l.value=y,y=h(g,p,E,u);for(let D=0;D!==E;++D)y[D]=e[D];f.clippingState=y,this.numIntersection=_?this.numPlanes:0,this.numPlanes+=T}};function c(){l.value!==e&&(l.value=e,l.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(d,p,u,g){const _=d!==null?d.length:0;let m=null;if(_!==0){if(m=l.value,g!==!0||m===null){const f=u+_*4,T=p.matrixWorldInverse;o.getNormalMatrix(T),(m===null||m.length0){const c=new ou(l.height);return c.fromEquirectangularTexture(i,a),t.set(a,c),a.addEventListener("dispose",s),e(c.texture,a.mapping)}else return null}}return a}function s(a){const o=a.target;o.removeEventListener("dispose",s);const l=t.get(o);l!==void 0&&(t.delete(o),l.dispose())}function r(){t=new WeakMap}return{get:n,dispose:r}}const ki=4,vl=[.125,.215,.35,.446,.526,.582],si=20,ha=new Ac,xl=new ot;let ua=null,da=0,fa=0,pa=!1;const ei=(1+Math.sqrt(5))/2,Ni=1/ei,Ml=[new P(-ei,Ni,0),new P(ei,Ni,0),new P(-Ni,0,ei),new P(Ni,0,ei),new P(0,ei,-Ni),new P(0,ei,Ni),new P(-1,1,-1),new P(1,1,-1),new P(-1,1,1),new P(1,1,1)];class Sl{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,s=100){ua=this._renderer.getRenderTarget(),da=this._renderer.getActiveCubeFace(),fa=this._renderer.getActiveMipmapLevel(),pa=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,s,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=bl(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=El(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?E:0,E,E),h.setRenderTarget(s),_&&h.render(g,o),h.render(t,o)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=p,h.autoClear=d,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,s=t.mapping===ji||t.mapping===Zi;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=bl()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=El());const r=s?this._cubemapMaterial:this._equirectMaterial,a=new be(this._lodPlanes[0],r),o=r.uniforms;o.envMap.value=t;const l=this._cubeSize;or(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(a,ha)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;const s=this._lodPlanes.length;for(let r=1;rsi&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${si}`);const f=[];let T=0;for(let C=0;CE-ki?s-E+ki:0),w=4*(this._cubeSize-y);or(e,D,w,3*y,2*y),l.setRenderTarget(e),l.render(d,ha)}}function pp(i){const t=[],e=[],n=[];let s=i;const r=i-ki+1+vl.length;for(let a=0;ai-ki?l=vl[a-i+ki-1]:a===0&&(l=0),n.push(l);const c=1/(o-2),h=-c,d=1+c,p=[h,h,d,h,d,d,h,h,d,d,h,d],u=6,g=6,_=3,m=2,f=1,T=new Float32Array(_*g*u),E=new Float32Array(m*g*u),y=new Float32Array(f*g*u);for(let w=0;w2?0:-1,S=[C,I,0,C+2/3,I,0,C+2/3,I+1,0,C,I,0,C+2/3,I+1,0,C,I+1,0];T.set(S,_*g*w),E.set(p,m*g*w);const M=[w,w,w,w,w,w];y.set(M,f*g*w)}const D=new ge;D.setAttribute("position",new he(T,_)),D.setAttribute("uv",new he(E,m)),D.setAttribute("faceIndex",new he(y,f)),t.push(D),s>ki&&s--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function yl(i,t,e){const n=new fn(i,t,e);return n.texture.mapping=Pr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function or(i,t,e,n,s){i.viewport.set(t,e,n,s),i.scissor.set(t,e,n,s)}function mp(i,t,e){const n=new Float32Array(si),s=new P(0,1,0);return new He({name:"SphericalGaussianBlur",defines:{n:si,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:Co(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:Cn,depthTest:!1,depthWrite:!1})}function El(){return new He({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Co(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:Cn,depthTest:!1,depthWrite:!1})}function bl(){return new He({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Co(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:Cn,depthTest:!1,depthWrite:!1})}function Co(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function gp(i){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){const l=o.mapping,c=l===Da||l===La,h=l===ji||l===Zi;if(c||h){let d=t.get(o);const p=d!==void 0?d.texture.pmremVersion:0;if(o.isRenderTargetTexture&&o.pmremVersion!==p)return e===null&&(e=new Sl(i)),d=c?e.fromEquirectangular(o,d):e.fromCubemap(o,d),d.texture.pmremVersion=o.pmremVersion,t.set(o,d),d.texture;if(d!==void 0)return d.texture;{const u=o.image;return c&&u&&u.height>0||h&&u&&s(u)?(e===null&&(e=new Sl(i)),d=c?e.fromEquirectangular(o):e.fromCubemap(o),d.texture.pmremVersion=o.pmremVersion,t.set(o,d),o.addEventListener("dispose",r),d.texture):null}}}return o}function s(o){let l=0;const c=6;for(let h=0;ht.maxTextureSize&&(D=Math.ceil(y/t.maxTextureSize),y=t.maxTextureSize);const w=new Float32Array(y*D*4*d),C=new gc(w,y,D,d);C.type=xn,C.needsUpdate=!0;const I=E*4;for(let M=0;M0)return i;const s=t*e;let r=wl[s];if(r===void 0&&(r=new Float32Array(s),wl[s]=r),t!==0){n.toArray(r,0);for(let a=1,o=0;a!==t;++a)o+=e,i[a].toArray(r,o)}return r}function Te(i,t){if(i.length!==t.length)return!1;for(let e=0,n=i.length;e":" "} ${o}: ${e[a]}`)}return n.join(` -`)}const Ul=new Ht;function gm(i){Qt._getMatrix(Ul,Qt.workingColorSpace,i);const t=`mat3( ${Ul.elements.map(e=>e.toFixed(4))} )`;switch(Qt.getTransfer(i)){case yr:return[t,"LinearTransferOETF"];case se:return[t,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",i),[t,"LinearTransferOETF"]}}function Il(i,t,e){const n=i.getShaderParameter(t,i.COMPILE_STATUS),s=i.getShaderInfoLog(t).trim();if(n&&s==="")return"";const r=/ERROR: 0:(\d+)/.exec(s);if(r){const a=parseInt(r[1]);return e.toUpperCase()+` - -`+s+` - -`+mm(i.getShaderSource(t),a)}else return s}function _m(i,t){const e=gm(t);return[`vec4 ${i}( vec4 value ) {`,` return ${e[1]}( vec4( value.rgb * ${e[0]}, value.a ) );`,"}"].join(` -`)}function vm(i,t){let e;switch(t){case vh:e="Linear";break;case xh:e="Reinhard";break;case Mh:e="Cineon";break;case ec:e="ACESFilmic";break;case yh:e="AgX";break;case Eh:e="Neutral";break;case Sh:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+i+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}const lr=new P;function xm(){Qt.getLuminanceCoefficients(lr);const i=lr.x.toFixed(4),t=lr.y.toFixed(4),e=lr.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${i}, ${t}, ${e} );`," return dot( weights, rgb );","}"].join(` -`)}function Mm(i){return[i.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",i.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(gs).join(` -`)}function Sm(i){const t=[];for(const e in i){const n=i[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(` -`)}function ym(i,t){const e={},n=i.getProgramParameter(t,i.ACTIVE_ATTRIBUTES);for(let s=0;s/gm;function fo(i){return i.replace(Em,Tm)}const bm=new Map;function Tm(i,t){let e=Gt[t];if(e===void 0){const n=bm.get(t);if(n!==void 0)e=Gt[n],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,n);else throw new Error("Can not resolve #include <"+t+">")}return fo(e)}const wm=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Ol(i){return i.replace(wm,Am)}function Am(i,t,e,n){let s="";for(let r=parseInt(t);r0&&(m+=` -`),f=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(gs).join(` -`),f.length>0&&(f+=` -`)):(m=[Bl(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",e.batching?"#define USE_BATCHING":"",e.batchingColor?"#define USE_BATCHING_COLOR":"",e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.instancingMorph?"#define USE_INSTANCING_MORPH":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(gs).join(` -`),f=[Bl(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+h:"",e.envMap?"#define "+d:"",p?"#define CUBEUV_TEXEL_WIDTH "+p.texelWidth:"",p?"#define CUBEUV_TEXEL_HEIGHT "+p.texelHeight:"",p?"#define CUBEUV_MAX_MIP "+p.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.dispersion?"#define USE_DISPERSION":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor||e.batchingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==Wn?"#define TONE_MAPPING":"",e.toneMapping!==Wn?Gt.tonemapping_pars_fragment:"",e.toneMapping!==Wn?vm("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Gt.colorspace_pars_fragment,_m("linearToOutputTexel",e.outputColorSpace),xm(),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",` -`].filter(gs).join(` -`)),a=fo(a),a=Nl(a,e),a=Fl(a,e),o=fo(o),o=Nl(o,e),o=Fl(o,e),a=Ol(a),o=Ol(o),e.isRawShaderMaterial!==!0&&(T=`#version 300 es -`,m=[u,"#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+m,f=["#define varying in",e.glslVersion===Fo?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===Fo?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` -`)+` -`+f);const E=T+m+a,y=T+f+o,D=Ll(s,s.VERTEX_SHADER,E),w=Ll(s,s.FRAGMENT_SHADER,y);s.attachShader(_,D),s.attachShader(_,w),e.index0AttributeName!==void 0?s.bindAttribLocation(_,0,e.index0AttributeName):e.morphTargets===!0&&s.bindAttribLocation(_,0,"position"),s.linkProgram(_);function C(A){if(i.debug.checkShaderErrors){const W=s.getProgramInfoLog(_).trim(),k=s.getShaderInfoLog(D).trim(),q=s.getShaderInfoLog(w).trim();let Q=!0,X=!0;if(s.getProgramParameter(_,s.LINK_STATUS)===!1)if(Q=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(s,_,D,w);else{const tt=Il(s,D,"vertex"),H=Il(s,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(_,s.VALIDATE_STATUS)+` - -Material Name: `+A.name+` -Material Type: `+A.type+` - -Program Info Log: `+W+` -`+tt+` -`+H)}else W!==""?console.warn("THREE.WebGLProgram: Program Info Log:",W):(k===""||q==="")&&(X=!1);X&&(A.diagnostics={runnable:Q,programLog:W,vertexShader:{log:k,prefix:m},fragmentShader:{log:q,prefix:f}})}s.deleteShader(D),s.deleteShader(w),I=new _r(s,_),S=ym(s,_)}let I;this.getUniforms=function(){return I===void 0&&C(this),I};let S;this.getAttributes=function(){return S===void 0&&C(this),S};let M=e.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return M===!1&&(M=s.getProgramParameter(_,fm)),M},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(_),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=pm++,this.cacheKey=t,this.usedTimes=1,this.program=_,this.vertexShader=D,this.fragmentShader=w,this}let Im=0;class Nm{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,s=this._getShaderStage(e),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return a.has(s)===!1&&(a.add(s),s.usedTimes++),a.has(r)===!1&&(a.add(r),r.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return n===void 0&&(n=new Fm(t),e.set(t,n)),n}}class Fm{constructor(t){this.id=Im++,this.code=t,this.usedTimes=0}}function Om(i,t,e,n,s,r,a){const o=new wo,l=new Nm,c=new Set,h=[],d=s.logarithmicDepthBuffer,p=s.vertexTextures;let u=s.precision;const g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function _(S){return c.add(S),S===0?"uv":`uv${S}`}function m(S,M,A,W,k){const q=W.fog,Q=k.geometry,X=S.isMeshStandardMaterial?W.environment:null,tt=(S.isMeshStandardMaterial?e:t).get(S.envMap||X),H=tt&&tt.mapping===Pr?tt.image.height:null,st=g[S.type];S.precision!==null&&(u=s.getMaxPrecision(S.precision),u!==S.precision&&console.warn("THREE.WebGLProgram.getParameters:",S.precision,"not supported, using",u,"instead."));const gt=Q.morphAttributes.position||Q.morphAttributes.normal||Q.morphAttributes.color,Et=gt!==void 0?gt.length:0;let Ft=0;Q.morphAttributes.position!==void 0&&(Ft=1),Q.morphAttributes.normal!==void 0&&(Ft=2),Q.morphAttributes.color!==void 0&&(Ft=3);let Xt,Y,nt,_t;if(st){const $t=mn[st];Xt=$t.vertexShader,Y=$t.fragmentShader}else Xt=S.vertexShader,Y=S.fragmentShader,l.update(S),nt=l.getVertexShaderID(S),_t=l.getFragmentShaderID(S);const lt=i.getRenderTarget(),Ct=i.state.buffers.depth.getReversed(),Lt=k.isInstancedMesh===!0,Vt=k.isBatchedMesh===!0,ie=!!S.map,Wt=!!S.matcap,ue=!!tt,R=!!S.aoMap,ye=!!S.lightMap,qt=!!S.bumpMap,jt=!!S.normalMap,At=!!S.displacementMap,le=!!S.emissiveMap,Rt=!!S.metalnessMap,b=!!S.roughnessMap,v=S.anisotropy>0,F=S.clearcoat>0,K=S.dispersion>0,J=S.iridescence>0,j=S.sheen>0,Tt=S.transmission>0,dt=v&&!!S.anisotropyMap,V=F&&!!S.clearcoatMap,at=F&&!!S.clearcoatNormalMap,Z=F&&!!S.clearcoatRoughnessMap,it=J&&!!S.iridescenceMap,pt=J&&!!S.iridescenceThicknessMap,wt=j&&!!S.sheenColorMap,ht=j&&!!S.sheenRoughnessMap,Bt=!!S.specularMap,Ut=!!S.specularColorMap,Zt=!!S.specularIntensityMap,L=Tt&&!!S.transmissionMap,rt=Tt&&!!S.thicknessMap,G=!!S.gradientMap,$=!!S.alphaMap,ft=S.alphaTest>0,ut=!!S.alphaHash,Ot=!!S.extensions;let ce=Wn;S.toneMapped&&(lt===null||lt.isXRRenderTarget===!0)&&(ce=i.toneMapping);const Ae={shaderID:st,shaderType:S.type,shaderName:S.name,vertexShader:Xt,fragmentShader:Y,defines:S.defines,customVertexShaderID:nt,customFragmentShaderID:_t,isRawShaderMaterial:S.isRawShaderMaterial===!0,glslVersion:S.glslVersion,precision:u,batching:Vt,batchingColor:Vt&&k._colorsTexture!==null,instancing:Lt,instancingColor:Lt&&k.instanceColor!==null,instancingMorph:Lt&&k.morphTexture!==null,supportsVertexTextures:p,outputColorSpace:lt===null?i.outputColorSpace:lt.isXRRenderTarget===!0?lt.texture.colorSpace:Ji,alphaToCoverage:!!S.alphaToCoverage,map:ie,matcap:Wt,envMap:ue,envMapMode:ue&&tt.mapping,envMapCubeUVHeight:H,aoMap:R,lightMap:ye,bumpMap:qt,normalMap:jt,displacementMap:p&&At,emissiveMap:le,normalMapObjectSpace:jt&&S.normalMapType===Ah,normalMapTangentSpace:jt&&S.normalMapType===dc,metalnessMap:Rt,roughnessMap:b,anisotropy:v,anisotropyMap:dt,clearcoat:F,clearcoatMap:V,clearcoatNormalMap:at,clearcoatRoughnessMap:Z,dispersion:K,iridescence:J,iridescenceMap:it,iridescenceThicknessMap:pt,sheen:j,sheenColorMap:wt,sheenRoughnessMap:ht,specularMap:Bt,specularColorMap:Ut,specularIntensityMap:Zt,transmission:Tt,transmissionMap:L,thicknessMap:rt,gradientMap:G,opaque:S.transparent===!1&&S.blending===Vi&&S.alphaToCoverage===!1,alphaMap:$,alphaTest:ft,alphaHash:ut,combine:S.combine,mapUv:ie&&_(S.map.channel),aoMapUv:R&&_(S.aoMap.channel),lightMapUv:ye&&_(S.lightMap.channel),bumpMapUv:qt&&_(S.bumpMap.channel),normalMapUv:jt&&_(S.normalMap.channel),displacementMapUv:At&&_(S.displacementMap.channel),emissiveMapUv:le&&_(S.emissiveMap.channel),metalnessMapUv:Rt&&_(S.metalnessMap.channel),roughnessMapUv:b&&_(S.roughnessMap.channel),anisotropyMapUv:dt&&_(S.anisotropyMap.channel),clearcoatMapUv:V&&_(S.clearcoatMap.channel),clearcoatNormalMapUv:at&&_(S.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Z&&_(S.clearcoatRoughnessMap.channel),iridescenceMapUv:it&&_(S.iridescenceMap.channel),iridescenceThicknessMapUv:pt&&_(S.iridescenceThicknessMap.channel),sheenColorMapUv:wt&&_(S.sheenColorMap.channel),sheenRoughnessMapUv:ht&&_(S.sheenRoughnessMap.channel),specularMapUv:Bt&&_(S.specularMap.channel),specularColorMapUv:Ut&&_(S.specularColorMap.channel),specularIntensityMapUv:Zt&&_(S.specularIntensityMap.channel),transmissionMapUv:L&&_(S.transmissionMap.channel),thicknessMapUv:rt&&_(S.thicknessMap.channel),alphaMapUv:$&&_(S.alphaMap.channel),vertexTangents:!!Q.attributes.tangent&&(jt||v),vertexColors:S.vertexColors,vertexAlphas:S.vertexColors===!0&&!!Q.attributes.color&&Q.attributes.color.itemSize===4,pointsUvs:k.isPoints===!0&&!!Q.attributes.uv&&(ie||$),fog:!!q,useFog:S.fog===!0,fogExp2:!!q&&q.isFogExp2,flatShading:S.flatShading===!0,sizeAttenuation:S.sizeAttenuation===!0,logarithmicDepthBuffer:d,reverseDepthBuffer:Ct,skinning:k.isSkinnedMesh===!0,morphTargets:Q.morphAttributes.position!==void 0,morphNormals:Q.morphAttributes.normal!==void 0,morphColors:Q.morphAttributes.color!==void 0,morphTargetsCount:Et,morphTextureStride:Ft,numDirLights:M.directional.length,numPointLights:M.point.length,numSpotLights:M.spot.length,numSpotLightMaps:M.spotLightMap.length,numRectAreaLights:M.rectArea.length,numHemiLights:M.hemi.length,numDirLightShadows:M.directionalShadowMap.length,numPointLightShadows:M.pointShadowMap.length,numSpotLightShadows:M.spotShadowMap.length,numSpotLightShadowsWithMaps:M.numSpotLightShadowsWithMaps,numLightProbes:M.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:S.dithering,shadowMapEnabled:i.shadowMap.enabled&&A.length>0,shadowMapType:i.shadowMap.type,toneMapping:ce,decodeVideoTexture:ie&&S.map.isVideoTexture===!0&&Qt.getTransfer(S.map.colorSpace)===se,decodeVideoTextureEmissive:le&&S.emissiveMap.isVideoTexture===!0&&Qt.getTransfer(S.emissiveMap.colorSpace)===se,premultipliedAlpha:S.premultipliedAlpha,doubleSided:S.side===gn,flipSided:S.side===Xe,useDepthPacking:S.depthPacking>=0,depthPacking:S.depthPacking||0,index0AttributeName:S.index0AttributeName,extensionClipCullDistance:Ot&&S.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Ot&&S.extensions.multiDraw===!0||Vt)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:S.customProgramCacheKey()};return Ae.vertexUv1s=c.has(1),Ae.vertexUv2s=c.has(2),Ae.vertexUv3s=c.has(3),c.clear(),Ae}function f(S){const M=[];if(S.shaderID?M.push(S.shaderID):(M.push(S.customVertexShaderID),M.push(S.customFragmentShaderID)),S.defines!==void 0)for(const A in S.defines)M.push(A),M.push(S.defines[A]);return S.isRawShaderMaterial===!1&&(T(M,S),E(M,S),M.push(i.outputColorSpace)),M.push(S.customProgramCacheKey),M.join()}function T(S,M){S.push(M.precision),S.push(M.outputColorSpace),S.push(M.envMapMode),S.push(M.envMapCubeUVHeight),S.push(M.mapUv),S.push(M.alphaMapUv),S.push(M.lightMapUv),S.push(M.aoMapUv),S.push(M.bumpMapUv),S.push(M.normalMapUv),S.push(M.displacementMapUv),S.push(M.emissiveMapUv),S.push(M.metalnessMapUv),S.push(M.roughnessMapUv),S.push(M.anisotropyMapUv),S.push(M.clearcoatMapUv),S.push(M.clearcoatNormalMapUv),S.push(M.clearcoatRoughnessMapUv),S.push(M.iridescenceMapUv),S.push(M.iridescenceThicknessMapUv),S.push(M.sheenColorMapUv),S.push(M.sheenRoughnessMapUv),S.push(M.specularMapUv),S.push(M.specularColorMapUv),S.push(M.specularIntensityMapUv),S.push(M.transmissionMapUv),S.push(M.thicknessMapUv),S.push(M.combine),S.push(M.fogExp2),S.push(M.sizeAttenuation),S.push(M.morphTargetsCount),S.push(M.morphAttributeCount),S.push(M.numDirLights),S.push(M.numPointLights),S.push(M.numSpotLights),S.push(M.numSpotLightMaps),S.push(M.numHemiLights),S.push(M.numRectAreaLights),S.push(M.numDirLightShadows),S.push(M.numPointLightShadows),S.push(M.numSpotLightShadows),S.push(M.numSpotLightShadowsWithMaps),S.push(M.numLightProbes),S.push(M.shadowMapType),S.push(M.toneMapping),S.push(M.numClippingPlanes),S.push(M.numClipIntersection),S.push(M.depthPacking)}function E(S,M){o.disableAll(),M.supportsVertexTextures&&o.enable(0),M.instancing&&o.enable(1),M.instancingColor&&o.enable(2),M.instancingMorph&&o.enable(3),M.matcap&&o.enable(4),M.envMap&&o.enable(5),M.normalMapObjectSpace&&o.enable(6),M.normalMapTangentSpace&&o.enable(7),M.clearcoat&&o.enable(8),M.iridescence&&o.enable(9),M.alphaTest&&o.enable(10),M.vertexColors&&o.enable(11),M.vertexAlphas&&o.enable(12),M.vertexUv1s&&o.enable(13),M.vertexUv2s&&o.enable(14),M.vertexUv3s&&o.enable(15),M.vertexTangents&&o.enable(16),M.anisotropy&&o.enable(17),M.alphaHash&&o.enable(18),M.batching&&o.enable(19),M.dispersion&&o.enable(20),M.batchingColor&&o.enable(21),S.push(o.mask),o.disableAll(),M.fog&&o.enable(0),M.useFog&&o.enable(1),M.flatShading&&o.enable(2),M.logarithmicDepthBuffer&&o.enable(3),M.reverseDepthBuffer&&o.enable(4),M.skinning&&o.enable(5),M.morphTargets&&o.enable(6),M.morphNormals&&o.enable(7),M.morphColors&&o.enable(8),M.premultipliedAlpha&&o.enable(9),M.shadowMapEnabled&&o.enable(10),M.doubleSided&&o.enable(11),M.flipSided&&o.enable(12),M.useDepthPacking&&o.enable(13),M.dithering&&o.enable(14),M.transmission&&o.enable(15),M.sheen&&o.enable(16),M.opaque&&o.enable(17),M.pointsUvs&&o.enable(18),M.decodeVideoTexture&&o.enable(19),M.decodeVideoTextureEmissive&&o.enable(20),M.alphaToCoverage&&o.enable(21),S.push(o.mask)}function y(S){const M=g[S.type];let A;if(M){const W=mn[M];A=Tr.clone(W.uniforms)}else A=S.uniforms;return A}function D(S,M){let A;for(let W=0,k=h.length;W0?n.push(f):u.transparent===!0?s.push(f):e.push(f)}function l(d,p,u,g,_,m){const f=a(d,p,u,g,_,m);u.transmission>0?n.unshift(f):u.transparent===!0?s.unshift(f):e.unshift(f)}function c(d,p){e.length>1&&e.sort(d||zm),n.length>1&&n.sort(p||zl),s.length>1&&s.sort(p||zl)}function h(){for(let d=t,p=i.length;d=r.length?(a=new kl,r.push(a)):a=r[s],a}function e(){i=new WeakMap}return{get:t,dispose:e}}function Hm(){const i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new P,color:new ot};break;case"SpotLight":e={position:new P,direction:new P,color:new ot,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new P,color:new ot,distance:0,decay:0};break;case"HemisphereLight":e={direction:new P,skyColor:new ot,groundColor:new ot};break;case"RectAreaLight":e={color:new ot,position:new P,halfWidth:new P,halfHeight:new P};break}return i[t.id]=e,e}}}function Vm(){const i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St};break;case"SpotLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[t.id]=e,e}}}let Gm=0;function Wm(i,t){return(t.castShadow?2:0)-(i.castShadow?2:0)+(t.map?1:0)-(i.map?1:0)}function Xm(i){const t=new Hm,e=Vm(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)n.probe.push(new P);const s=new P,r=new ne,a=new ne;function o(c){let h=0,d=0,p=0;for(let S=0;S<9;S++)n.probe[S].set(0,0,0);let u=0,g=0,_=0,m=0,f=0,T=0,E=0,y=0,D=0,w=0,C=0;c.sort(Wm);for(let S=0,M=c.length;S0&&(i.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=ct.LTC_FLOAT_1,n.rectAreaLTC2=ct.LTC_FLOAT_2):(n.rectAreaLTC1=ct.LTC_HALF_1,n.rectAreaLTC2=ct.LTC_HALF_2)),n.ambient[0]=h,n.ambient[1]=d,n.ambient[2]=p;const I=n.hash;(I.directionalLength!==u||I.pointLength!==g||I.spotLength!==_||I.rectAreaLength!==m||I.hemiLength!==f||I.numDirectionalShadows!==T||I.numPointShadows!==E||I.numSpotShadows!==y||I.numSpotMaps!==D||I.numLightProbes!==C)&&(n.directional.length=u,n.spot.length=_,n.rectArea.length=m,n.point.length=g,n.hemi.length=f,n.directionalShadow.length=T,n.directionalShadowMap.length=T,n.pointShadow.length=E,n.pointShadowMap.length=E,n.spotShadow.length=y,n.spotShadowMap.length=y,n.directionalShadowMatrix.length=T,n.pointShadowMatrix.length=E,n.spotLightMatrix.length=y+D-w,n.spotLightMap.length=D,n.numSpotLightShadowsWithMaps=w,n.numLightProbes=C,I.directionalLength=u,I.pointLength=g,I.spotLength=_,I.rectAreaLength=m,I.hemiLength=f,I.numDirectionalShadows=T,I.numPointShadows=E,I.numSpotShadows=y,I.numSpotMaps=D,I.numLightProbes=C,n.version=Gm++)}function l(c,h){let d=0,p=0,u=0,g=0,_=0;const m=h.matrixWorldInverse;for(let f=0,T=c.length;f=a.length?(o=new Hl(i),a.push(o)):o=a[r],o}function n(){t=new WeakMap}return{get:e,dispose:n}}const qm=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,jm=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -#include -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( squared_mean - mean * mean ); - gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function Zm(i,t,e){let n=new Ao;const s=new St,r=new St,a=new oe,o=new gu({depthPacking:wh}),l=new _u,c={},h=e.maxTextureSize,d={[Yn]:Xe,[Xe]:Yn,[gn]:gn},p=new He({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new St},radius:{value:4}},vertexShader:qm,fragmentShader:jm}),u=p.clone();u.defines.HORIZONTAL_PASS=1;const g=new ge;g.setAttribute("position",new he(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new be(g,p),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ql;let f=this.type;this.render=function(w,C,I){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||w.length===0)return;const S=i.getRenderTarget(),M=i.getActiveCubeFace(),A=i.getActiveMipmapLevel(),W=i.state;W.setBlending(Cn),W.buffers.color.setClear(1,1,1,1),W.buffers.depth.setTest(!0),W.setScissorTest(!1);const k=f!==An&&this.type===An,q=f===An&&this.type!==An;for(let Q=0,X=w.length;Qh||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/st.x),s.x=r.x*st.x,H.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/st.y),s.y=r.y*st.y,H.mapSize.y=r.y)),H.map===null||k===!0||q===!0){const Et=this.type!==An?{minFilter:Je,magFilter:Je}:{};H.map!==null&&H.map.dispose(),H.map=new fn(s.x,s.y,Et),H.map.texture.name=tt.name+".shadowMap",H.camera.updateProjectionMatrix()}i.setRenderTarget(H.map),i.clear();const gt=H.getViewportCount();for(let Et=0;Et0||C.map&&C.alphaTest>0){const W=M.uuid,k=C.uuid;let q=c[W];q===void 0&&(q={},c[W]=q);let Q=q[k];Q===void 0&&(Q=M.clone(),q[k]=Q,C.addEventListener("dispose",D)),M=Q}if(M.visible=C.visible,M.wireframe=C.wireframe,S===An?M.side=C.shadowSide!==null?C.shadowSide:C.side:M.side=C.shadowSide!==null?C.shadowSide:d[C.side],M.alphaMap=C.alphaMap,M.alphaTest=C.alphaTest,M.map=C.map,M.clipShadows=C.clipShadows,M.clippingPlanes=C.clippingPlanes,M.clipIntersection=C.clipIntersection,M.displacementMap=C.displacementMap,M.displacementScale=C.displacementScale,M.displacementBias=C.displacementBias,M.wireframeLinewidth=C.wireframeLinewidth,M.linewidth=C.linewidth,I.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const W=i.properties.get(M);W.light=I}return M}function y(w,C,I,S,M){if(w.visible===!1)return;if(w.layers.test(C.layers)&&(w.isMesh||w.isLine||w.isPoints)&&(w.castShadow||w.receiveShadow&&M===An)&&(!w.frustumCulled||n.intersectsObject(w))){w.modelViewMatrix.multiplyMatrices(I.matrixWorldInverse,w.matrixWorld);const k=t.update(w),q=w.material;if(Array.isArray(q)){const Q=k.groups;for(let X=0,tt=Q.length;X=1):H.indexOf("OpenGL ES")!==-1&&(tt=parseFloat(/^OpenGL ES (\d)/.exec(H)[1]),X=tt>=2);let st=null,gt={};const Et=i.getParameter(i.SCISSOR_BOX),Ft=i.getParameter(i.VIEWPORT),Xt=new oe().fromArray(Et),Y=new oe().fromArray(Ft);function nt(L,rt,G,$){const ft=new Uint8Array(4),ut=i.createTexture();i.bindTexture(L,ut),i.texParameteri(L,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(L,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let Ot=0;Ot"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new St,h=new WeakMap;let d;const p=new WeakMap;let u=!1;try{u=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function g(b,v){return u?new OffscreenCanvas(b,v):br("canvas")}function _(b,v,F){let K=1;const J=Rt(b);if((J.width>F||J.height>F)&&(K=F/Math.max(J.width,J.height)),K<1)if(typeof HTMLImageElement<"u"&&b instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&b instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&b instanceof ImageBitmap||typeof VideoFrame<"u"&&b instanceof VideoFrame){const j=Math.floor(K*J.width),Tt=Math.floor(K*J.height);d===void 0&&(d=g(j,Tt));const dt=v?g(j,Tt):d;return dt.width=j,dt.height=Tt,dt.getContext("2d").drawImage(b,0,0,j,Tt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+J.width+"x"+J.height+") to ("+j+"x"+Tt+")."),dt}else return"data"in b&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+J.width+"x"+J.height+")."),b;return b}function m(b){return b.generateMipmaps}function f(b){i.generateMipmap(b)}function T(b){return b.isWebGLCubeRenderTarget?i.TEXTURE_CUBE_MAP:b.isWebGL3DRenderTarget?i.TEXTURE_3D:b.isWebGLArrayRenderTarget||b.isCompressedArrayTexture?i.TEXTURE_2D_ARRAY:i.TEXTURE_2D}function E(b,v,F,K,J=!1){if(b!==null){if(i[b]!==void 0)return i[b];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+b+"'")}let j=v;if(v===i.RED&&(F===i.FLOAT&&(j=i.R32F),F===i.HALF_FLOAT&&(j=i.R16F),F===i.UNSIGNED_BYTE&&(j=i.R8)),v===i.RED_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.R8UI),F===i.UNSIGNED_SHORT&&(j=i.R16UI),F===i.UNSIGNED_INT&&(j=i.R32UI),F===i.BYTE&&(j=i.R8I),F===i.SHORT&&(j=i.R16I),F===i.INT&&(j=i.R32I)),v===i.RG&&(F===i.FLOAT&&(j=i.RG32F),F===i.HALF_FLOAT&&(j=i.RG16F),F===i.UNSIGNED_BYTE&&(j=i.RG8)),v===i.RG_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.RG8UI),F===i.UNSIGNED_SHORT&&(j=i.RG16UI),F===i.UNSIGNED_INT&&(j=i.RG32UI),F===i.BYTE&&(j=i.RG8I),F===i.SHORT&&(j=i.RG16I),F===i.INT&&(j=i.RG32I)),v===i.RGB_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.RGB8UI),F===i.UNSIGNED_SHORT&&(j=i.RGB16UI),F===i.UNSIGNED_INT&&(j=i.RGB32UI),F===i.BYTE&&(j=i.RGB8I),F===i.SHORT&&(j=i.RGB16I),F===i.INT&&(j=i.RGB32I)),v===i.RGBA_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.RGBA8UI),F===i.UNSIGNED_SHORT&&(j=i.RGBA16UI),F===i.UNSIGNED_INT&&(j=i.RGBA32UI),F===i.BYTE&&(j=i.RGBA8I),F===i.SHORT&&(j=i.RGBA16I),F===i.INT&&(j=i.RGBA32I)),v===i.RGB&&F===i.UNSIGNED_INT_5_9_9_9_REV&&(j=i.RGB9_E5),v===i.RGBA){const Tt=J?yr:Qt.getTransfer(K);F===i.FLOAT&&(j=i.RGBA32F),F===i.HALF_FLOAT&&(j=i.RGBA16F),F===i.UNSIGNED_BYTE&&(j=Tt===se?i.SRGB8_ALPHA8:i.RGBA8),F===i.UNSIGNED_SHORT_4_4_4_4&&(j=i.RGBA4),F===i.UNSIGNED_SHORT_5_5_5_1&&(j=i.RGB5_A1)}return(j===i.R16F||j===i.R32F||j===i.RG16F||j===i.RG32F||j===i.RGBA16F||j===i.RGBA32F)&&t.get("EXT_color_buffer_float"),j}function y(b,v){let F;return b?v===null||v===li||v===Ki?F=i.DEPTH24_STENCIL8:v===xn?F=i.DEPTH32F_STENCIL8:v===Ms&&(F=i.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):v===null||v===li||v===Ki?F=i.DEPTH_COMPONENT24:v===xn?F=i.DEPTH_COMPONENT32F:v===Ms&&(F=i.DEPTH_COMPONENT16),F}function D(b,v){return m(b)===!0||b.isFramebufferTexture&&b.minFilter!==Je&&b.minFilter!==vn?Math.log2(Math.max(v.width,v.height))+1:b.mipmaps!==void 0&&b.mipmaps.length>0?b.mipmaps.length:b.isCompressedTexture&&Array.isArray(b.image)?v.mipmaps.length:1}function w(b){const v=b.target;v.removeEventListener("dispose",w),I(v),v.isVideoTexture&&h.delete(v)}function C(b){const v=b.target;v.removeEventListener("dispose",C),M(v)}function I(b){const v=n.get(b);if(v.__webglInit===void 0)return;const F=b.source,K=p.get(F);if(K){const J=K[v.__cacheKey];J.usedTimes--,J.usedTimes===0&&S(b),Object.keys(K).length===0&&p.delete(F)}n.remove(b)}function S(b){const v=n.get(b);i.deleteTexture(v.__webglTexture);const F=b.source,K=p.get(F);delete K[v.__cacheKey],a.memory.textures--}function M(b){const v=n.get(b);if(b.depthTexture&&(b.depthTexture.dispose(),n.remove(b.depthTexture)),b.isWebGLCubeRenderTarget)for(let K=0;K<6;K++){if(Array.isArray(v.__webglFramebuffer[K]))for(let J=0;J=s.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+b+" texture units while this GPU supports only "+s.maxTextures),A+=1,b}function q(b){const v=[];return v.push(b.wrapS),v.push(b.wrapT),v.push(b.wrapR||0),v.push(b.magFilter),v.push(b.minFilter),v.push(b.anisotropy),v.push(b.internalFormat),v.push(b.format),v.push(b.type),v.push(b.generateMipmaps),v.push(b.premultiplyAlpha),v.push(b.flipY),v.push(b.unpackAlignment),v.push(b.colorSpace),v.join()}function Q(b,v){const F=n.get(b);if(b.isVideoTexture&&At(b),b.isRenderTargetTexture===!1&&b.version>0&&F.__version!==b.version){const K=b.image;if(K===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(K.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Y(F,b,v);return}}e.bindTexture(i.TEXTURE_2D,F.__webglTexture,i.TEXTURE0+v)}function X(b,v){const F=n.get(b);if(b.version>0&&F.__version!==b.version){Y(F,b,v);return}e.bindTexture(i.TEXTURE_2D_ARRAY,F.__webglTexture,i.TEXTURE0+v)}function tt(b,v){const F=n.get(b);if(b.version>0&&F.__version!==b.version){Y(F,b,v);return}e.bindTexture(i.TEXTURE_3D,F.__webglTexture,i.TEXTURE0+v)}function H(b,v){const F=n.get(b);if(b.version>0&&F.__version!==b.version){nt(F,b,v);return}e.bindTexture(i.TEXTURE_CUBE_MAP,F.__webglTexture,i.TEXTURE0+v)}const st={[Ua]:i.REPEAT,[ri]:i.CLAMP_TO_EDGE,[Ia]:i.MIRRORED_REPEAT},gt={[Je]:i.NEAREST,[bh]:i.NEAREST_MIPMAP_NEAREST,[Is]:i.NEAREST_MIPMAP_LINEAR,[vn]:i.LINEAR,[Br]:i.LINEAR_MIPMAP_NEAREST,[ai]:i.LINEAR_MIPMAP_LINEAR},Et={[Rh]:i.NEVER,[Ih]:i.ALWAYS,[Ch]:i.LESS,[fc]:i.LEQUAL,[Ph]:i.EQUAL,[Uh]:i.GEQUAL,[Dh]:i.GREATER,[Lh]:i.NOTEQUAL};function Ft(b,v){if(v.type===xn&&t.has("OES_texture_float_linear")===!1&&(v.magFilter===vn||v.magFilter===Br||v.magFilter===Is||v.magFilter===ai||v.minFilter===vn||v.minFilter===Br||v.minFilter===Is||v.minFilter===ai)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),i.texParameteri(b,i.TEXTURE_WRAP_S,st[v.wrapS]),i.texParameteri(b,i.TEXTURE_WRAP_T,st[v.wrapT]),(b===i.TEXTURE_3D||b===i.TEXTURE_2D_ARRAY)&&i.texParameteri(b,i.TEXTURE_WRAP_R,st[v.wrapR]),i.texParameteri(b,i.TEXTURE_MAG_FILTER,gt[v.magFilter]),i.texParameteri(b,i.TEXTURE_MIN_FILTER,gt[v.minFilter]),v.compareFunction&&(i.texParameteri(b,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(b,i.TEXTURE_COMPARE_FUNC,Et[v.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){if(v.magFilter===Je||v.minFilter!==Is&&v.minFilter!==ai||v.type===xn&&t.has("OES_texture_float_linear")===!1)return;if(v.anisotropy>1||n.get(v).__currentAnisotropy){const F=t.get("EXT_texture_filter_anisotropic");i.texParameterf(b,F.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(v.anisotropy,s.getMaxAnisotropy())),n.get(v).__currentAnisotropy=v.anisotropy}}}function Xt(b,v){let F=!1;b.__webglInit===void 0&&(b.__webglInit=!0,v.addEventListener("dispose",w));const K=v.source;let J=p.get(K);J===void 0&&(J={},p.set(K,J));const j=q(v);if(j!==b.__cacheKey){J[j]===void 0&&(J[j]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,F=!0),J[j].usedTimes++;const Tt=J[b.__cacheKey];Tt!==void 0&&(J[b.__cacheKey].usedTimes--,Tt.usedTimes===0&&S(v)),b.__cacheKey=j,b.__webglTexture=J[j].texture}return F}function Y(b,v,F){let K=i.TEXTURE_2D;(v.isDataArrayTexture||v.isCompressedArrayTexture)&&(K=i.TEXTURE_2D_ARRAY),v.isData3DTexture&&(K=i.TEXTURE_3D);const J=Xt(b,v),j=v.source;e.bindTexture(K,b.__webglTexture,i.TEXTURE0+F);const Tt=n.get(j);if(j.version!==Tt.__version||J===!0){e.activeTexture(i.TEXTURE0+F);const dt=Qt.getPrimaries(Qt.workingColorSpace),V=v.colorSpace===Vn?null:Qt.getPrimaries(v.colorSpace),at=v.colorSpace===Vn||dt===V?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,v.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,v.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,v.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);let Z=_(v.image,!1,s.maxTextureSize);Z=le(v,Z);const it=r.convert(v.format,v.colorSpace),pt=r.convert(v.type);let wt=E(v.internalFormat,it,pt,v.colorSpace,v.isVideoTexture);Ft(K,v);let ht;const Bt=v.mipmaps,Ut=v.isVideoTexture!==!0,Zt=Tt.__version===void 0||J===!0,L=j.dataReady,rt=D(v,Z);if(v.isDepthTexture)wt=y(v.format===$i,v.type),Zt&&(Ut?e.texStorage2D(i.TEXTURE_2D,1,wt,Z.width,Z.height):e.texImage2D(i.TEXTURE_2D,0,wt,Z.width,Z.height,0,it,pt,null));else if(v.isDataTexture)if(Bt.length>0){Ut&&Zt&&e.texStorage2D(i.TEXTURE_2D,rt,wt,Bt[0].width,Bt[0].height);for(let G=0,$=Bt.length;G<$;G++)ht=Bt[G],Ut?L&&e.texSubImage2D(i.TEXTURE_2D,G,0,0,ht.width,ht.height,it,pt,ht.data):e.texImage2D(i.TEXTURE_2D,G,wt,ht.width,ht.height,0,it,pt,ht.data);v.generateMipmaps=!1}else Ut?(Zt&&e.texStorage2D(i.TEXTURE_2D,rt,wt,Z.width,Z.height),L&&e.texSubImage2D(i.TEXTURE_2D,0,0,0,Z.width,Z.height,it,pt,Z.data)):e.texImage2D(i.TEXTURE_2D,0,wt,Z.width,Z.height,0,it,pt,Z.data);else if(v.isCompressedTexture)if(v.isCompressedArrayTexture){Ut&&Zt&&e.texStorage3D(i.TEXTURE_2D_ARRAY,rt,wt,Bt[0].width,Bt[0].height,Z.depth);for(let G=0,$=Bt.length;G<$;G++)if(ht=Bt[G],v.format!==dn)if(it!==null)if(Ut){if(L)if(v.layerUpdates.size>0){const ft=_l(ht.width,ht.height,v.format,v.type);for(const ut of v.layerUpdates){const Ot=ht.data.subarray(ut*ft/ht.data.BYTES_PER_ELEMENT,(ut+1)*ft/ht.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,G,0,0,ut,ht.width,ht.height,1,it,Ot)}v.clearLayerUpdates()}else e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,G,0,0,0,ht.width,ht.height,Z.depth,it,ht.data)}else e.compressedTexImage3D(i.TEXTURE_2D_ARRAY,G,wt,ht.width,ht.height,Z.depth,0,ht.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Ut?L&&e.texSubImage3D(i.TEXTURE_2D_ARRAY,G,0,0,0,ht.width,ht.height,Z.depth,it,pt,ht.data):e.texImage3D(i.TEXTURE_2D_ARRAY,G,wt,ht.width,ht.height,Z.depth,0,it,pt,ht.data)}else{Ut&&Zt&&e.texStorage2D(i.TEXTURE_2D,rt,wt,Bt[0].width,Bt[0].height);for(let G=0,$=Bt.length;G<$;G++)ht=Bt[G],v.format!==dn?it!==null?Ut?L&&e.compressedTexSubImage2D(i.TEXTURE_2D,G,0,0,ht.width,ht.height,it,ht.data):e.compressedTexImage2D(i.TEXTURE_2D,G,wt,ht.width,ht.height,0,ht.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Ut?L&&e.texSubImage2D(i.TEXTURE_2D,G,0,0,ht.width,ht.height,it,pt,ht.data):e.texImage2D(i.TEXTURE_2D,G,wt,ht.width,ht.height,0,it,pt,ht.data)}else if(v.isDataArrayTexture)if(Ut){if(Zt&&e.texStorage3D(i.TEXTURE_2D_ARRAY,rt,wt,Z.width,Z.height,Z.depth),L)if(v.layerUpdates.size>0){const G=_l(Z.width,Z.height,v.format,v.type);for(const $ of v.layerUpdates){const ft=Z.data.subarray($*G/Z.data.BYTES_PER_ELEMENT,($+1)*G/Z.data.BYTES_PER_ELEMENT);e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,$,Z.width,Z.height,1,it,pt,ft)}v.clearLayerUpdates()}else e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,0,Z.width,Z.height,Z.depth,it,pt,Z.data)}else e.texImage3D(i.TEXTURE_2D_ARRAY,0,wt,Z.width,Z.height,Z.depth,0,it,pt,Z.data);else if(v.isData3DTexture)Ut?(Zt&&e.texStorage3D(i.TEXTURE_3D,rt,wt,Z.width,Z.height,Z.depth),L&&e.texSubImage3D(i.TEXTURE_3D,0,0,0,0,Z.width,Z.height,Z.depth,it,pt,Z.data)):e.texImage3D(i.TEXTURE_3D,0,wt,Z.width,Z.height,Z.depth,0,it,pt,Z.data);else if(v.isFramebufferTexture){if(Zt)if(Ut)e.texStorage2D(i.TEXTURE_2D,rt,wt,Z.width,Z.height);else{let G=Z.width,$=Z.height;for(let ft=0;ft>=1,$>>=1}}else if(Bt.length>0){if(Ut&&Zt){const G=Rt(Bt[0]);e.texStorage2D(i.TEXTURE_2D,rt,wt,G.width,G.height)}for(let G=0,$=Bt.length;G<$;G++)ht=Bt[G],Ut?L&&e.texSubImage2D(i.TEXTURE_2D,G,0,0,it,pt,ht):e.texImage2D(i.TEXTURE_2D,G,wt,it,pt,ht);v.generateMipmaps=!1}else if(Ut){if(Zt){const G=Rt(Z);e.texStorage2D(i.TEXTURE_2D,rt,wt,G.width,G.height)}L&&e.texSubImage2D(i.TEXTURE_2D,0,0,0,it,pt,Z)}else e.texImage2D(i.TEXTURE_2D,0,wt,it,pt,Z);m(v)&&f(K),Tt.__version=j.version,v.onUpdate&&v.onUpdate(v)}b.__version=v.version}function nt(b,v,F){if(v.image.length!==6)return;const K=Xt(b,v),J=v.source;e.bindTexture(i.TEXTURE_CUBE_MAP,b.__webglTexture,i.TEXTURE0+F);const j=n.get(J);if(J.version!==j.__version||K===!0){e.activeTexture(i.TEXTURE0+F);const Tt=Qt.getPrimaries(Qt.workingColorSpace),dt=v.colorSpace===Vn?null:Qt.getPrimaries(v.colorSpace),V=v.colorSpace===Vn||Tt===dt?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,v.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,v.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,v.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,V);const at=v.isCompressedTexture||v.image[0].isCompressedTexture,Z=v.image[0]&&v.image[0].isDataTexture,it=[];for(let $=0;$<6;$++)!at&&!Z?it[$]=_(v.image[$],!0,s.maxCubemapSize):it[$]=Z?v.image[$].image:v.image[$],it[$]=le(v,it[$]);const pt=it[0],wt=r.convert(v.format,v.colorSpace),ht=r.convert(v.type),Bt=E(v.internalFormat,wt,ht,v.colorSpace),Ut=v.isVideoTexture!==!0,Zt=j.__version===void 0||K===!0,L=J.dataReady;let rt=D(v,pt);Ft(i.TEXTURE_CUBE_MAP,v);let G;if(at){Ut&&Zt&&e.texStorage2D(i.TEXTURE_CUBE_MAP,rt,Bt,pt.width,pt.height);for(let $=0;$<6;$++){G=it[$].mipmaps;for(let ft=0;ft0&&rt++;const $=Rt(it[0]);e.texStorage2D(i.TEXTURE_CUBE_MAP,rt,Bt,$.width,$.height)}for(let $=0;$<6;$++)if(Z){Ut?L&&e.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+$,0,0,0,it[$].width,it[$].height,wt,ht,it[$].data):e.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+$,0,Bt,it[$].width,it[$].height,0,wt,ht,it[$].data);for(let ft=0;ft>j),pt=Math.max(1,v.height>>j);J===i.TEXTURE_3D||J===i.TEXTURE_2D_ARRAY?e.texImage3D(J,j,V,it,pt,v.depth,0,Tt,dt,null):e.texImage2D(J,j,V,it,pt,0,Tt,dt,null)}e.bindFramebuffer(i.FRAMEBUFFER,b),jt(v)?o.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,K,J,Z.__webglTexture,0,qt(v)):(J===i.TEXTURE_2D||J>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&J<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,K,J,Z.__webglTexture,j),e.bindFramebuffer(i.FRAMEBUFFER,null)}function lt(b,v,F){if(i.bindRenderbuffer(i.RENDERBUFFER,b),v.depthBuffer){const K=v.depthTexture,J=K&&K.isDepthTexture?K.type:null,j=y(v.stencilBuffer,J),Tt=v.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,dt=qt(v);jt(v)?o.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,dt,j,v.width,v.height):F?i.renderbufferStorageMultisample(i.RENDERBUFFER,dt,j,v.width,v.height):i.renderbufferStorage(i.RENDERBUFFER,j,v.width,v.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,Tt,i.RENDERBUFFER,b)}else{const K=v.textures;for(let J=0;J{delete v.__boundDepthTexture,delete v.__depthDisposeCallback,K.removeEventListener("dispose",J)};K.addEventListener("dispose",J),v.__depthDisposeCallback=J}v.__boundDepthTexture=K}if(b.depthTexture&&!v.__autoAllocateDepthBuffer){if(F)throw new Error("target.depthTexture not supported in Cube render targets");Ct(v.__webglFramebuffer,b)}else if(F){v.__webglDepthbuffer=[];for(let K=0;K<6;K++)if(e.bindFramebuffer(i.FRAMEBUFFER,v.__webglFramebuffer[K]),v.__webglDepthbuffer[K]===void 0)v.__webglDepthbuffer[K]=i.createRenderbuffer(),lt(v.__webglDepthbuffer[K],b,!1);else{const J=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,j=v.__webglDepthbuffer[K];i.bindRenderbuffer(i.RENDERBUFFER,j),i.framebufferRenderbuffer(i.FRAMEBUFFER,J,i.RENDERBUFFER,j)}}else if(e.bindFramebuffer(i.FRAMEBUFFER,v.__webglFramebuffer),v.__webglDepthbuffer===void 0)v.__webglDepthbuffer=i.createRenderbuffer(),lt(v.__webglDepthbuffer,b,!1);else{const K=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,J=v.__webglDepthbuffer;i.bindRenderbuffer(i.RENDERBUFFER,J),i.framebufferRenderbuffer(i.FRAMEBUFFER,K,i.RENDERBUFFER,J)}e.bindFramebuffer(i.FRAMEBUFFER,null)}function Vt(b,v,F){const K=n.get(b);v!==void 0&&_t(K.__webglFramebuffer,b,b.texture,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,0),F!==void 0&&Lt(b)}function ie(b){const v=b.texture,F=n.get(b),K=n.get(v);b.addEventListener("dispose",C);const J=b.textures,j=b.isWebGLCubeRenderTarget===!0,Tt=J.length>1;if(Tt||(K.__webglTexture===void 0&&(K.__webglTexture=i.createTexture()),K.__version=v.version,a.memory.textures++),j){F.__webglFramebuffer=[];for(let dt=0;dt<6;dt++)if(v.mipmaps&&v.mipmaps.length>0){F.__webglFramebuffer[dt]=[];for(let V=0;V0){F.__webglFramebuffer=[];for(let dt=0;dt0&&jt(b)===!1){F.__webglMultisampledFramebuffer=i.createFramebuffer(),F.__webglColorRenderbuffer=[],e.bindFramebuffer(i.FRAMEBUFFER,F.__webglMultisampledFramebuffer);for(let dt=0;dt0)for(let V=0;V0)for(let V=0;V0){if(jt(b)===!1){const v=b.textures,F=b.width,K=b.height;let J=i.COLOR_BUFFER_BIT;const j=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,Tt=n.get(b),dt=v.length>1;if(dt)for(let V=0;V0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&v.__useRenderToTexture!==!1}function At(b){const v=a.render.frame;h.get(b)!==v&&(h.set(b,v),b.update())}function le(b,v){const F=b.colorSpace,K=b.format,J=b.type;return b.isCompressedTexture===!0||b.isVideoTexture===!0||F!==Ji&&F!==Vn&&(Qt.getTransfer(F)===se?(K!==dn||J!==Ln)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",F)),v}function Rt(b){return typeof HTMLImageElement<"u"&&b instanceof HTMLImageElement?(c.width=b.naturalWidth||b.width,c.height=b.naturalHeight||b.height):typeof VideoFrame<"u"&&b instanceof VideoFrame?(c.width=b.displayWidth,c.height=b.displayHeight):(c.width=b.width,c.height=b.height),c}this.allocateTextureUnit=k,this.resetTextureUnits=W,this.setTexture2D=Q,this.setTexture2DArray=X,this.setTexture3D=tt,this.setTextureCube=H,this.rebindTextures=Vt,this.setupRenderTarget=ie,this.updateRenderTargetMipmap=Wt,this.updateMultisampleRenderTarget=ye,this.setupDepthRenderbuffer=Lt,this.setupFrameBufferTexture=_t,this.useMultisampledRTT=jt}function Qm(i,t){function e(n,s=Vn){let r;const a=Qt.getTransfer(s);if(n===Ln)return i.UNSIGNED_BYTE;if(n===Mo)return i.UNSIGNED_SHORT_4_4_4_4;if(n===So)return i.UNSIGNED_SHORT_5_5_5_1;if(n===rc)return i.UNSIGNED_INT_5_9_9_9_REV;if(n===ic)return i.BYTE;if(n===sc)return i.SHORT;if(n===Ms)return i.UNSIGNED_SHORT;if(n===xo)return i.INT;if(n===li)return i.UNSIGNED_INT;if(n===xn)return i.FLOAT;if(n===Pn)return i.HALF_FLOAT;if(n===ac)return i.ALPHA;if(n===oc)return i.RGB;if(n===dn)return i.RGBA;if(n===lc)return i.LUMINANCE;if(n===cc)return i.LUMINANCE_ALPHA;if(n===Gi)return i.DEPTH_COMPONENT;if(n===$i)return i.DEPTH_STENCIL;if(n===yo)return i.RED;if(n===Eo)return i.RED_INTEGER;if(n===hc)return i.RG;if(n===bo)return i.RG_INTEGER;if(n===To)return i.RGBA_INTEGER;if(n===ur||n===dr||n===fr||n===pr)if(a===se)if(r=t.get("WEBGL_compressed_texture_s3tc_srgb"),r!==null){if(n===ur)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===dr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===fr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===pr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(r=t.get("WEBGL_compressed_texture_s3tc"),r!==null){if(n===ur)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===dr)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===fr)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===pr)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===Na||n===Fa||n===Oa||n===Ba)if(r=t.get("WEBGL_compressed_texture_pvrtc"),r!==null){if(n===Na)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===Fa)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===Oa)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===Ba)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===za||n===ka||n===Ha)if(r=t.get("WEBGL_compressed_texture_etc"),r!==null){if(n===za||n===ka)return a===se?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===Ha)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(n===Va||n===Ga||n===Wa||n===Xa||n===Ya||n===qa||n===ja||n===Za||n===Ka||n===$a||n===Ja||n===Qa||n===to||n===eo)if(r=t.get("WEBGL_compressed_texture_astc"),r!==null){if(n===Va)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===Ga)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Wa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===Xa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Ya)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===qa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===ja)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===Za)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Ka)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===$a)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Ja)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===Qa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===to)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===eo)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===mr||n===no||n===io)if(r=t.get("EXT_texture_compression_bptc"),r!==null){if(n===mr)return a===se?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===no)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===io)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===uc||n===so||n===ro||n===ao)if(r=t.get("EXT_texture_compression_rgtc"),r!==null){if(n===mr)return r.COMPRESSED_RED_RGTC1_EXT;if(n===so)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===ro)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===ao)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return n===Ki?i.UNSIGNED_INT_24_8:i[n]!==void 0?i[n]:null}return{convert:e}}const tg={type:"move"};class ga{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new zi,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new zi,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new P,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new P),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new zi,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new P,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new P),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let s=null,r=null,a=null;const o=this._targetRay,l=this._grip,c=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(c&&t.hand){a=!0;for(const _ of t.hand.values()){const m=e.getJointPose(_,n),f=this._getHandJoint(c,_);m!==null&&(f.matrix.fromArray(m.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,f.jointRadius=m.radius),f.visible=m!==null}const h=c.joints["index-finger-tip"],d=c.joints["thumb-tip"],p=h.position.distanceTo(d.position),u=.02,g=.005;c.inputState.pinching&&p>u+g?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&p<=u-g&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else l!==null&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),r!==null&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1));o!==null&&(s=e.getPose(t.targetRaySpace,n),s===null&&r!==null&&(s=r),s!==null&&(o.matrix.fromArray(s.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,s.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(s.linearVelocity)):o.hasLinearVelocity=!1,s.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(s.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(tg)))}return o!==null&&(o.visible=s!==null),l!==null&&(l.visible=r!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){const n=new zi;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const eg=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,ng=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`;class ig{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const s=new Pe,r=t.properties.get(s);r.__webglTexture=e.texture,(e.depthNear!==n.depthNear||e.depthFar!==n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=s}}getMesh(t){if(this.texture!==null&&this.mesh===null){const e=t.cameras[0].viewport,n=new He({vertexShader:eg,fragmentShader:ng,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new be(new ws(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class sg extends hi{constructor(t,e){super();const n=this;let s=null,r=1,a=null,o="local-floor",l=1,c=null,h=null,d=null,p=null,u=null,g=null;const _=new ig,m=e.getContextAttributes();let f=null,T=null;const E=[],y=[],D=new St;let w=null;const C=new $e;C.viewport=new oe;const I=new $e;I.viewport=new oe;const S=[C,I],M=new Su;let A=null,W=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Y){let nt=E[Y];return nt===void 0&&(nt=new ga,E[Y]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(Y){let nt=E[Y];return nt===void 0&&(nt=new ga,E[Y]=nt),nt.getGripSpace()},this.getHand=function(Y){let nt=E[Y];return nt===void 0&&(nt=new ga,E[Y]=nt),nt.getHandSpace()};function k(Y){const nt=y.indexOf(Y.inputSource);if(nt===-1)return;const _t=E[nt];_t!==void 0&&(_t.update(Y.inputSource,Y.frame,c||a),_t.dispatchEvent({type:Y.type,data:Y.inputSource}))}function q(){s.removeEventListener("select",k),s.removeEventListener("selectstart",k),s.removeEventListener("selectend",k),s.removeEventListener("squeeze",k),s.removeEventListener("squeezestart",k),s.removeEventListener("squeezeend",k),s.removeEventListener("end",q),s.removeEventListener("inputsourceschange",Q);for(let Y=0;Y=0&&(y[lt]=null,E[lt].disconnect(_t))}for(let nt=0;nt=y.length){y.push(_t),lt=Lt;break}else if(y[Lt]===null){y[Lt]=_t,lt=Lt;break}if(lt===-1)break}const Ct=E[lt];Ct&&Ct.connect(_t)}}const X=new P,tt=new P;function H(Y,nt,_t){X.setFromMatrixPosition(nt.matrixWorld),tt.setFromMatrixPosition(_t.matrixWorld);const lt=X.distanceTo(tt),Ct=nt.projectionMatrix.elements,Lt=_t.projectionMatrix.elements,Vt=Ct[14]/(Ct[10]-1),ie=Ct[14]/(Ct[10]+1),Wt=(Ct[9]+1)/Ct[5],ue=(Ct[9]-1)/Ct[5],R=(Ct[8]-1)/Ct[0],ye=(Lt[8]+1)/Lt[0],qt=Vt*R,jt=Vt*ye,At=lt/(-R+ye),le=At*-R;if(nt.matrixWorld.decompose(Y.position,Y.quaternion,Y.scale),Y.translateX(le),Y.translateZ(At),Y.matrixWorld.compose(Y.position,Y.quaternion,Y.scale),Y.matrixWorldInverse.copy(Y.matrixWorld).invert(),Ct[10]===-1)Y.projectionMatrix.copy(nt.projectionMatrix),Y.projectionMatrixInverse.copy(nt.projectionMatrixInverse);else{const Rt=Vt+At,b=ie+At,v=qt-le,F=jt+(lt-le),K=Wt*ie/b*Rt,J=ue*ie/b*Rt;Y.projectionMatrix.makePerspective(v,F,K,J,Rt,b),Y.projectionMatrixInverse.copy(Y.projectionMatrix).invert()}}function st(Y,nt){nt===null?Y.matrixWorld.copy(Y.matrix):Y.matrixWorld.multiplyMatrices(nt.matrixWorld,Y.matrix),Y.matrixWorldInverse.copy(Y.matrixWorld).invert()}this.updateCamera=function(Y){if(s===null)return;let nt=Y.near,_t=Y.far;_.texture!==null&&(_.depthNear>0&&(nt=_.depthNear),_.depthFar>0&&(_t=_.depthFar)),M.near=I.near=C.near=nt,M.far=I.far=C.far=_t,(A!==M.near||W!==M.far)&&(s.updateRenderState({depthNear:M.near,depthFar:M.far}),A=M.near,W=M.far),C.layers.mask=Y.layers.mask|2,I.layers.mask=Y.layers.mask|4,M.layers.mask=C.layers.mask|I.layers.mask;const lt=Y.parent,Ct=M.cameras;st(M,lt);for(let Lt=0;Lt0&&(m.alphaTest.value=f.alphaTest);const T=t.get(f),E=T.envMap,y=T.envMapRotation;E&&(m.envMap.value=E,ti.copy(y),ti.x*=-1,ti.y*=-1,ti.z*=-1,E.isCubeTexture&&E.isRenderTargetTexture===!1&&(ti.y*=-1,ti.z*=-1),m.envMapRotation.value.setFromMatrix4(rg.makeRotationFromEuler(ti)),m.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=f.reflectivity,m.ior.value=f.ior,m.refractionRatio.value=f.refractionRatio),f.lightMap&&(m.lightMap.value=f.lightMap,m.lightMapIntensity.value=f.lightMapIntensity,e(f.lightMap,m.lightMapTransform)),f.aoMap&&(m.aoMap.value=f.aoMap,m.aoMapIntensity.value=f.aoMapIntensity,e(f.aoMap,m.aoMapTransform))}function a(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,f.map&&(m.map.value=f.map,e(f.map,m.mapTransform))}function o(m,f){m.dashSize.value=f.dashSize,m.totalSize.value=f.dashSize+f.gapSize,m.scale.value=f.scale}function l(m,f,T,E){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.size.value=f.size*T,m.scale.value=E*.5,f.map&&(m.map.value=f.map,e(f.map,m.uvTransform)),f.alphaMap&&(m.alphaMap.value=f.alphaMap,e(f.alphaMap,m.alphaMapTransform)),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest)}function c(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.rotation.value=f.rotation,f.map&&(m.map.value=f.map,e(f.map,m.mapTransform)),f.alphaMap&&(m.alphaMap.value=f.alphaMap,e(f.alphaMap,m.alphaMapTransform)),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest)}function h(m,f){m.specular.value.copy(f.specular),m.shininess.value=Math.max(f.shininess,1e-4)}function d(m,f){f.gradientMap&&(m.gradientMap.value=f.gradientMap)}function p(m,f){m.metalness.value=f.metalness,f.metalnessMap&&(m.metalnessMap.value=f.metalnessMap,e(f.metalnessMap,m.metalnessMapTransform)),m.roughness.value=f.roughness,f.roughnessMap&&(m.roughnessMap.value=f.roughnessMap,e(f.roughnessMap,m.roughnessMapTransform)),f.envMap&&(m.envMapIntensity.value=f.envMapIntensity)}function u(m,f,T){m.ior.value=f.ior,f.sheen>0&&(m.sheenColor.value.copy(f.sheenColor).multiplyScalar(f.sheen),m.sheenRoughness.value=f.sheenRoughness,f.sheenColorMap&&(m.sheenColorMap.value=f.sheenColorMap,e(f.sheenColorMap,m.sheenColorMapTransform)),f.sheenRoughnessMap&&(m.sheenRoughnessMap.value=f.sheenRoughnessMap,e(f.sheenRoughnessMap,m.sheenRoughnessMapTransform))),f.clearcoat>0&&(m.clearcoat.value=f.clearcoat,m.clearcoatRoughness.value=f.clearcoatRoughness,f.clearcoatMap&&(m.clearcoatMap.value=f.clearcoatMap,e(f.clearcoatMap,m.clearcoatMapTransform)),f.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=f.clearcoatRoughnessMap,e(f.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)),f.clearcoatNormalMap&&(m.clearcoatNormalMap.value=f.clearcoatNormalMap,e(f.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(f.clearcoatNormalScale),f.side===Xe&&m.clearcoatNormalScale.value.negate())),f.dispersion>0&&(m.dispersion.value=f.dispersion),f.iridescence>0&&(m.iridescence.value=f.iridescence,m.iridescenceIOR.value=f.iridescenceIOR,m.iridescenceThicknessMinimum.value=f.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=f.iridescenceThicknessRange[1],f.iridescenceMap&&(m.iridescenceMap.value=f.iridescenceMap,e(f.iridescenceMap,m.iridescenceMapTransform)),f.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=f.iridescenceThicknessMap,e(f.iridescenceThicknessMap,m.iridescenceThicknessMapTransform))),f.transmission>0&&(m.transmission.value=f.transmission,m.transmissionSamplerMap.value=T.texture,m.transmissionSamplerSize.value.set(T.width,T.height),f.transmissionMap&&(m.transmissionMap.value=f.transmissionMap,e(f.transmissionMap,m.transmissionMapTransform)),m.thickness.value=f.thickness,f.thicknessMap&&(m.thicknessMap.value=f.thicknessMap,e(f.thicknessMap,m.thicknessMapTransform)),m.attenuationDistance.value=f.attenuationDistance,m.attenuationColor.value.copy(f.attenuationColor)),f.anisotropy>0&&(m.anisotropyVector.value.set(f.anisotropy*Math.cos(f.anisotropyRotation),f.anisotropy*Math.sin(f.anisotropyRotation)),f.anisotropyMap&&(m.anisotropyMap.value=f.anisotropyMap,e(f.anisotropyMap,m.anisotropyMapTransform))),m.specularIntensity.value=f.specularIntensity,m.specularColor.value.copy(f.specularColor),f.specularColorMap&&(m.specularColorMap.value=f.specularColorMap,e(f.specularColorMap,m.specularColorMapTransform)),f.specularIntensityMap&&(m.specularIntensityMap.value=f.specularIntensityMap,e(f.specularIntensityMap,m.specularIntensityMapTransform))}function g(m,f){f.matcap&&(m.matcap.value=f.matcap)}function _(m,f){const T=t.get(f).light;m.referencePosition.value.setFromMatrixPosition(T.matrixWorld),m.nearDistance.value=T.shadow.camera.near,m.farDistance.value=T.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:s}}function og(i,t,e,n){let s={},r={},a=[];const o=i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS);function l(T,E){const y=E.program;n.uniformBlockBinding(T,y)}function c(T,E){let y=s[T.id];y===void 0&&(g(T),y=h(T),s[T.id]=y,T.addEventListener("dispose",m));const D=E.program;n.updateUBOMapping(T,D);const w=t.render.frame;r[T.id]!==w&&(p(T),r[T.id]=w)}function h(T){const E=d();T.__bindingPointIndex=E;const y=i.createBuffer(),D=T.__size,w=T.usage;return i.bindBuffer(i.UNIFORM_BUFFER,y),i.bufferData(i.UNIFORM_BUFFER,D,w),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,E,y),y}function d(){for(let T=0;T0&&(y+=D-w),T.__size=y,T.__cache={},this}function _(T){const E={boundary:0,storage:0};return typeof T=="number"||typeof T=="boolean"?(E.boundary=4,E.storage=4):T.isVector2?(E.boundary=8,E.storage=8):T.isVector3||T.isColor?(E.boundary=16,E.storage=12):T.isVector4?(E.boundary=16,E.storage=16):T.isMatrix3?(E.boundary=48,E.storage=48):T.isMatrix4?(E.boundary=64,E.storage=64):T.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",T),E}function m(T){const E=T.target;E.removeEventListener("dispose",m);const y=a.indexOf(E.__bindingPointIndex);a.splice(y,1),i.deleteBuffer(s[E.id]),delete s[E.id],delete r[E.id]}function f(){for(const T in s)i.deleteBuffer(s[T]);a=[],s={},r={}}return{bind:l,update:c,dispose:f}}class lg{constructor(t={}){const{canvas:e=Oh(),context:n=null,depth:s=!0,stencil:r=!1,alpha:a=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1,reverseDepthBuffer:p=!1}=t;this.isWebGLRenderer=!0;let u;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");u=n.getContextAttributes().alpha}else u=a;const g=new Uint32Array(4),_=new Int32Array(4);let m=null,f=null;const T=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=an,this.toneMapping=Wn,this.toneMappingExposure=1;const y=this;let D=!1,w=0,C=0,I=null,S=-1,M=null;const A=new oe,W=new oe;let k=null;const q=new ot(0);let Q=0,X=e.width,tt=e.height,H=1,st=null,gt=null;const Et=new oe(0,0,X,tt),Ft=new oe(0,0,X,tt);let Xt=!1;const Y=new Ao;let nt=!1,_t=!1;this.transmissionResolutionScale=1;const lt=new ne,Ct=new ne,Lt=new P,Vt=new oe,ie={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let Wt=!1;function ue(){return I===null?H:1}let R=n;function ye(x,U){return e.getContext(x,U)}try{const x={alpha:!0,depth:s,stencil:r,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:d};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${vo}`),e.addEventListener("webglcontextlost",$,!1),e.addEventListener("webglcontextrestored",ft,!1),e.addEventListener("webglcontextcreationerror",ut,!1),R===null){const U="webgl2";if(R=ye(U,x),R===null)throw ye(U)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(x){throw console.error("THREE.WebGLRenderer: "+x.message),x}let qt,jt,At,le,Rt,b,v,F,K,J,j,Tt,dt,V,at,Z,it,pt,wt,ht,Bt,Ut,Zt,L;function rt(){qt=new _p(R),qt.init(),Ut=new Qm(R,qt),jt=new up(R,qt,t,Ut),At=new $m(R,qt),jt.reverseDepthBuffer&&p&&At.buffers.depth.setReversed(!0),le=new Mp(R),Rt=new Bm,b=new Jm(R,qt,At,Rt,jt,Ut,le),v=new fp(y),F=new gp(y),K=new wu(R),Zt=new cp(R,K),J=new vp(R,K,le,Zt),j=new yp(R,J,K,le),wt=new Sp(R,jt,b),Z=new dp(Rt),Tt=new Om(y,v,F,qt,jt,Zt,Z),dt=new ag(y,Rt),V=new km,at=new Ym(qt),pt=new lp(y,v,F,At,j,u,l),it=new Zm(y,j,jt),L=new og(R,le,jt,At),ht=new hp(R,qt,le),Bt=new xp(R,qt,le),le.programs=Tt.programs,y.capabilities=jt,y.extensions=qt,y.properties=Rt,y.renderLists=V,y.shadowMap=it,y.state=At,y.info=le}rt();const G=new sg(y,R);this.xr=G,this.getContext=function(){return R},this.getContextAttributes=function(){return R.getContextAttributes()},this.forceContextLoss=function(){const x=qt.get("WEBGL_lose_context");x&&x.loseContext()},this.forceContextRestore=function(){const x=qt.get("WEBGL_lose_context");x&&x.restoreContext()},this.getPixelRatio=function(){return H},this.setPixelRatio=function(x){x!==void 0&&(H=x,this.setSize(X,tt,!1))},this.getSize=function(x){return x.set(X,tt)},this.setSize=function(x,U,O=!0){if(G.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}X=x,tt=U,e.width=Math.floor(x*H),e.height=Math.floor(U*H),O===!0&&(e.style.width=x+"px",e.style.height=U+"px"),this.setViewport(0,0,x,U)},this.getDrawingBufferSize=function(x){return x.set(X*H,tt*H).floor()},this.setDrawingBufferSize=function(x,U,O){X=x,tt=U,H=O,e.width=Math.floor(x*O),e.height=Math.floor(U*O),this.setViewport(0,0,x,U)},this.getCurrentViewport=function(x){return x.copy(A)},this.getViewport=function(x){return x.copy(Et)},this.setViewport=function(x,U,O,z){x.isVector4?Et.set(x.x,x.y,x.z,x.w):Et.set(x,U,O,z),At.viewport(A.copy(Et).multiplyScalar(H).round())},this.getScissor=function(x){return x.copy(Ft)},this.setScissor=function(x,U,O,z){x.isVector4?Ft.set(x.x,x.y,x.z,x.w):Ft.set(x,U,O,z),At.scissor(W.copy(Ft).multiplyScalar(H).round())},this.getScissorTest=function(){return Xt},this.setScissorTest=function(x){At.setScissorTest(Xt=x)},this.setOpaqueSort=function(x){st=x},this.setTransparentSort=function(x){gt=x},this.getClearColor=function(x){return x.copy(pt.getClearColor())},this.setClearColor=function(){pt.setClearColor.apply(pt,arguments)},this.getClearAlpha=function(){return pt.getClearAlpha()},this.setClearAlpha=function(){pt.setClearAlpha.apply(pt,arguments)},this.clear=function(x=!0,U=!0,O=!0){let z=0;if(x){let N=!1;if(I!==null){const et=I.texture.format;N=et===To||et===bo||et===Eo}if(N){const et=I.texture.type,mt=et===Ln||et===li||et===Ms||et===Ki||et===Mo||et===So,vt=pt.getClearColor(),Mt=pt.getClearAlpha(),It=vt.r,Nt=vt.g,Pt=vt.b;mt?(g[0]=It,g[1]=Nt,g[2]=Pt,g[3]=Mt,R.clearBufferuiv(R.COLOR,0,g)):(_[0]=It,_[1]=Nt,_[2]=Pt,_[3]=Mt,R.clearBufferiv(R.COLOR,0,_))}else z|=R.COLOR_BUFFER_BIT}U&&(z|=R.DEPTH_BUFFER_BIT),O&&(z|=R.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),R.clear(z)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",$,!1),e.removeEventListener("webglcontextrestored",ft,!1),e.removeEventListener("webglcontextcreationerror",ut,!1),pt.dispose(),V.dispose(),at.dispose(),Rt.dispose(),v.dispose(),F.dispose(),j.dispose(),Zt.dispose(),L.dispose(),Tt.dispose(),G.dispose(),G.removeEventListener("sessionstart",Rs),G.removeEventListener("sessionend",fi),pn.stop()};function $(x){x.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),D=!0}function ft(){console.log("THREE.WebGLRenderer: Context Restored."),D=!1;const x=le.autoReset,U=it.enabled,O=it.autoUpdate,z=it.needsUpdate,N=it.type;rt(),le.autoReset=x,it.enabled=U,it.autoUpdate=O,it.needsUpdate=z,it.type=N}function ut(x){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",x.statusMessage)}function Ot(x){const U=x.target;U.removeEventListener("dispose",Ot),ce(U)}function ce(x){Ae(x),Rt.remove(x)}function Ae(x){const U=Rt.get(x).programs;U!==void 0&&(U.forEach(function(O){Tt.releaseProgram(O)}),x.isShaderMaterial&&Tt.releaseShaderCache(x))}this.renderBufferDirect=function(x,U,O,z,N,et){U===null&&(U=ie);const mt=N.isMesh&&N.matrixWorld.determinant()<0,vt=Ds(x,U,O,z,N);At.setMaterial(z,mt);let Mt=O.index,It=1;if(z.wireframe===!0){if(Mt=J.getWireframeAttribute(O),Mt===void 0)return;It=2}const Nt=O.drawRange,Pt=O.attributes.position;let Kt=Nt.start*It,te=(Nt.start+Nt.count)*It;et!==null&&(Kt=Math.max(Kt,et.start*It),te=Math.min(te,(et.start+et.count)*It)),Mt!==null?(Kt=Math.max(Kt,0),te=Math.min(te,Mt.count)):Pt!=null&&(Kt=Math.max(Kt,0),te=Math.min(te,Pt.count));const xe=te-Kt;if(xe<0||xe===1/0)return;Zt.setup(N,z,vt,O,Mt);let pe,Jt=ht;if(Mt!==null&&(pe=K.get(Mt),Jt=Bt,Jt.setIndex(pe)),N.isMesh)z.wireframe===!0?(At.setLineWidth(z.wireframeLinewidth*ue()),Jt.setMode(R.LINES)):Jt.setMode(R.TRIANGLES);else if(N.isLine){let Dt=z.linewidth;Dt===void 0&&(Dt=1),At.setLineWidth(Dt*ue()),N.isLineSegments?Jt.setMode(R.LINES):N.isLineLoop?Jt.setMode(R.LINE_LOOP):Jt.setMode(R.LINE_STRIP)}else N.isPoints?Jt.setMode(R.POINTS):N.isSprite&&Jt.setMode(R.TRIANGLES);if(N.isBatchedMesh)if(N._multiDrawInstances!==null)Jt.renderMultiDrawInstances(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount,N._multiDrawInstances);else if(qt.get("WEBGL_multi_draw"))Jt.renderMultiDraw(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount);else{const Dt=N._multiDrawStarts,De=N._multiDrawCounts,ee=N._multiDrawCount,ln=Mt?K.get(Mt).bytesPerElement:1,mi=Rt.get(z).currentProgram.getUniforms();for(let qe=0;qe{function et(){if(z.forEach(function(mt){Rt.get(mt).currentProgram.isReady()&&z.delete(mt)}),z.size===0){N(x);return}setTimeout(et,10)}qt.get("KHR_parallel_shader_compile")!==null?et():setTimeout(et,10)})};let Ye=null;function Qe(x){Ye&&Ye(x)}function Rs(){pn.stop()}function fi(){pn.start()}const pn=new Rc;pn.setAnimationLoop(Qe),typeof self<"u"&&pn.setContext(self),this.setAnimationLoop=function(x){Ye=x,G.setAnimationLoop(x),x===null?pn.stop():pn.start()},G.addEventListener("sessionstart",Rs),G.addEventListener("sessionend",fi),this.render=function(x,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(D===!0)return;if(x.matrixWorldAutoUpdate===!0&&x.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),G.enabled===!0&&G.isPresenting===!0&&(G.cameraAutoUpdate===!0&&G.updateCamera(U),U=G.getCamera()),x.isScene===!0&&x.onBeforeRender(y,x,U,I),f=at.get(x,E.length),f.init(U),E.push(f),Ct.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Y.setFromProjectionMatrix(Ct),_t=this.localClippingEnabled,nt=Z.init(this.clippingPlanes,_t),m=V.get(x,T.length),m.init(),T.push(m),G.enabled===!0&&G.isPresenting===!0){const et=y.xr.getDepthSensingMesh();et!==null&&ns(et,U,-1/0,y.sortObjects)}ns(x,U,0,y.sortObjects),m.finish(),y.sortObjects===!0&&m.sort(st,gt),Wt=G.enabled===!1||G.isPresenting===!1||G.hasDepthSensing()===!1,Wt&&pt.addToRenderList(m,x),this.info.render.frame++,nt===!0&&Z.beginShadows();const O=f.state.shadowsArray;it.render(O,x,U),nt===!0&&Z.endShadows(),this.info.autoReset===!0&&this.info.reset();const z=m.opaque,N=m.transmissive;if(f.setupLights(),U.isArrayCamera){const et=U.cameras;if(N.length>0)for(let mt=0,vt=et.length;mt0&&Ve(z,N,x,U),Wt&&pt.render(x),Cs(m,x,U);I!==null&&C===0&&(b.updateMultisampleRenderTarget(I),b.updateRenderTargetMipmap(I)),x.isScene===!0&&x.onAfterRender(y,x,U),Zt.resetDefaultState(),S=-1,M=null,E.pop(),E.length>0?(f=E[E.length-1],nt===!0&&Z.setGlobalState(y.clippingPlanes,f.state.camera)):f=null,T.pop(),T.length>0?m=T[T.length-1]:m=null};function ns(x,U,O,z){if(x.visible===!1)return;if(x.layers.test(U.layers)){if(x.isGroup)O=x.renderOrder;else if(x.isLOD)x.autoUpdate===!0&&x.update(U);else if(x.isLight)f.pushLight(x),x.castShadow&&f.pushShadow(x);else if(x.isSprite){if(!x.frustumCulled||Y.intersectsSprite(x)){z&&Vt.setFromMatrixPosition(x.matrixWorld).applyMatrix4(Ct);const mt=j.update(x),vt=x.material;vt.visible&&m.push(x,mt,vt,O,Vt.z,null)}}else if((x.isMesh||x.isLine||x.isPoints)&&(!x.frustumCulled||Y.intersectsObject(x))){const mt=j.update(x),vt=x.material;if(z&&(x.boundingSphere!==void 0?(x.boundingSphere===null&&x.computeBoundingSphere(),Vt.copy(x.boundingSphere.center)):(mt.boundingSphere===null&&mt.computeBoundingSphere(),Vt.copy(mt.boundingSphere.center)),Vt.applyMatrix4(x.matrixWorld).applyMatrix4(Ct)),Array.isArray(vt)){const Mt=mt.groups;for(let It=0,Nt=Mt.length;It0&&Re(N,U,O),et.length>0&&Re(et,U,O),mt.length>0&&Re(mt,U,O),At.buffers.depth.setTest(!0),At.buffers.depth.setMask(!0),At.buffers.color.setMask(!0),At.setPolygonOffset(!1)}function Ve(x,U,O,z){if((O.isScene===!0?O.overrideMaterial:null)!==null)return;f.state.transmissionRenderTarget[z.id]===void 0&&(f.state.transmissionRenderTarget[z.id]=new fn(1,1,{generateMipmaps:!0,type:qt.has("EXT_color_buffer_half_float")||qt.has("EXT_color_buffer_float")?Pn:Ln,minFilter:ai,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Qt.workingColorSpace}));const et=f.state.transmissionRenderTarget[z.id],mt=z.viewport||A;et.setSize(mt.z*y.transmissionResolutionScale,mt.w*y.transmissionResolutionScale);const vt=y.getRenderTarget();y.setRenderTarget(et),y.getClearColor(q),Q=y.getClearAlpha(),Q<1&&y.setClearColor(16777215,.5),y.clear(),Wt&&pt.render(O);const Mt=y.toneMapping;y.toneMapping=Wn;const It=z.viewport;if(z.viewport!==void 0&&(z.viewport=void 0),f.setupLightsView(z),nt===!0&&Z.setGlobalState(y.clippingPlanes,z),Re(x,O,z),b.updateMultisampleRenderTarget(et),b.updateRenderTargetMipmap(et),qt.has("WEBGL_multisampled_render_to_texture")===!1){let Nt=!1;for(let Pt=0,Kt=U.length;Pt0),Pt=!!O.morphAttributes.position,Kt=!!O.morphAttributes.normal,te=!!O.morphAttributes.color;let xe=Wn;z.toneMapped&&(I===null||I.isXRRenderTarget===!0)&&(xe=y.toneMapping);const pe=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,Jt=pe!==void 0?pe.length:0,Dt=Rt.get(z),De=f.state.lights;if(nt===!0&&(_t===!0||x!==M)){const Be=x===M&&z.id===S;Z.setState(z,x,Be)}let ee=!1;z.version===Dt.__version?(Dt.needsLights&&Dt.lightsStateVersion!==De.state.version||Dt.outputColorSpace!==vt||N.isBatchedMesh&&Dt.batching===!1||!N.isBatchedMesh&&Dt.batching===!0||N.isBatchedMesh&&Dt.batchingColor===!0&&N.colorTexture===null||N.isBatchedMesh&&Dt.batchingColor===!1&&N.colorTexture!==null||N.isInstancedMesh&&Dt.instancing===!1||!N.isInstancedMesh&&Dt.instancing===!0||N.isSkinnedMesh&&Dt.skinning===!1||!N.isSkinnedMesh&&Dt.skinning===!0||N.isInstancedMesh&&Dt.instancingColor===!0&&N.instanceColor===null||N.isInstancedMesh&&Dt.instancingColor===!1&&N.instanceColor!==null||N.isInstancedMesh&&Dt.instancingMorph===!0&&N.morphTexture===null||N.isInstancedMesh&&Dt.instancingMorph===!1&&N.morphTexture!==null||Dt.envMap!==Mt||z.fog===!0&&Dt.fog!==et||Dt.numClippingPlanes!==void 0&&(Dt.numClippingPlanes!==Z.numPlanes||Dt.numIntersection!==Z.numIntersection)||Dt.vertexAlphas!==It||Dt.vertexTangents!==Nt||Dt.morphTargets!==Pt||Dt.morphNormals!==Kt||Dt.morphColors!==te||Dt.toneMapping!==xe||Dt.morphTargetsCount!==Jt)&&(ee=!0):(ee=!0,Dt.__version=z.version);let ln=Dt.currentProgram;ee===!0&&(ln=en(z,U,N));let mi=!1,qe=!1,is=!1;const de=ln.getUniforms(),nn=Dt.uniforms;if(At.useProgram(ln.program)&&(mi=!0,qe=!0,is=!0),z.id!==S&&(S=z.id,qe=!0),mi||M!==x){At.buffers.depth.getReversed()?(lt.copy(x.projectionMatrix),zh(lt),kh(lt),de.setValue(R,"projectionMatrix",lt)):de.setValue(R,"projectionMatrix",x.projectionMatrix),de.setValue(R,"viewMatrix",x.matrixWorldInverse);const Ge=de.map.cameraPosition;Ge!==void 0&&Ge.setValue(R,Lt.setFromMatrixPosition(x.matrixWorld)),jt.logarithmicDepthBuffer&&de.setValue(R,"logDepthBufFC",2/(Math.log(x.far+1)/Math.LN2)),(z.isMeshPhongMaterial||z.isMeshToonMaterial||z.isMeshLambertMaterial||z.isMeshBasicMaterial||z.isMeshStandardMaterial||z.isShaderMaterial)&&de.setValue(R,"isOrthographic",x.isOrthographicCamera===!0),M!==x&&(M=x,qe=!0,is=!0)}if(N.isSkinnedMesh){de.setOptional(R,N,"bindMatrix"),de.setOptional(R,N,"bindMatrixInverse");const Be=N.skeleton;Be&&(Be.boneTexture===null&&Be.computeBoneTexture(),de.setValue(R,"boneTexture",Be.boneTexture,b))}N.isBatchedMesh&&(de.setOptional(R,N,"batchingTexture"),de.setValue(R,"batchingTexture",N._matricesTexture,b),de.setOptional(R,N,"batchingIdTexture"),de.setValue(R,"batchingIdTexture",N._indirectTexture,b),de.setOptional(R,N,"batchingColorTexture"),N._colorsTexture!==null&&de.setValue(R,"batchingColorTexture",N._colorsTexture,b));const sn=O.morphAttributes;if((sn.position!==void 0||sn.normal!==void 0||sn.color!==void 0)&&wt.update(N,O,ln),(qe||Dt.receiveShadow!==N.receiveShadow)&&(Dt.receiveShadow=N.receiveShadow,de.setValue(R,"receiveShadow",N.receiveShadow)),z.isMeshGouraudMaterial&&z.envMap!==null&&(nn.envMap.value=Mt,nn.flipEnvMap.value=Mt.isCubeTexture&&Mt.isRenderTargetTexture===!1?-1:1),z.isMeshStandardMaterial&&z.envMap===null&&U.environment!==null&&(nn.envMapIntensity.value=U.environmentIntensity),qe&&(de.setValue(R,"toneMappingExposure",y.toneMappingExposure),Dt.needsLights&&Ir(nn,is),et&&z.fog===!0&&dt.refreshFogUniforms(nn,et),dt.refreshMaterialUniforms(nn,z,H,tt,f.state.transmissionRenderTarget[x.id]),_r.upload(R,pi(Dt),nn,b)),z.isShaderMaterial&&z.uniformsNeedUpdate===!0&&(_r.upload(R,pi(Dt),nn,b),z.uniformsNeedUpdate=!1),z.isSpriteMaterial&&de.setValue(R,"center",N.center),de.setValue(R,"modelViewMatrix",N.modelViewMatrix),de.setValue(R,"normalMatrix",N.normalMatrix),de.setValue(R,"modelMatrix",N.matrixWorld),z.isShaderMaterial||z.isRawShaderMaterial){const Be=z.uniformsGroups;for(let Ge=0,Or=Be.length;Ge0&&b.useMultisampledRTT(x)===!1?N=Rt.get(x).__webglMultisampledFramebuffer:Array.isArray(Nt)?N=Nt[O]:N=Nt,A.copy(x.viewport),W.copy(x.scissor),k=x.scissorTest}else A.copy(Et).multiplyScalar(H).floor(),W.copy(Ft).multiplyScalar(H).floor(),k=Xt;if(O!==0&&(N=Nr),At.bindFramebuffer(R.FRAMEBUFFER,N)&&z&&At.drawBuffers(x,N),At.viewport(A),At.scissor(W),At.setScissorTest(k),et){const Mt=Rt.get(x.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Mt.__webglTexture,O)}else if(mt){const Mt=Rt.get(x.texture),It=U;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Mt.__webglTexture,O,It)}else if(x!==null&&O!==0){const Mt=Rt.get(x.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_2D,Mt.__webglTexture,O)}S=-1},this.readRenderTargetPixels=function(x,U,O,z,N,et,mt){if(!(x&&x.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let vt=Rt.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&mt!==void 0&&(vt=vt[mt]),vt){At.bindFramebuffer(R.FRAMEBUFFER,vt);try{const Mt=x.texture,It=Mt.format,Nt=Mt.type;if(!jt.textureFormatReadable(It)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!jt.textureTypeReadable(Nt)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=x.width-z&&O>=0&&O<=x.height-N&&R.readPixels(U,O,z,N,Ut.convert(It),Ut.convert(Nt),et)}finally{const Mt=I!==null?Rt.get(I).__webglFramebuffer:null;At.bindFramebuffer(R.FRAMEBUFFER,Mt)}}},this.readRenderTargetPixelsAsync=async function(x,U,O,z,N,et,mt){if(!(x&&x.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let vt=Rt.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&mt!==void 0&&(vt=vt[mt]),vt){const Mt=x.texture,It=Mt.format,Nt=Mt.type;if(!jt.textureFormatReadable(It))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!jt.textureTypeReadable(Nt))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(U>=0&&U<=x.width-z&&O>=0&&O<=x.height-N){At.bindFramebuffer(R.FRAMEBUFFER,vt);const Pt=R.createBuffer();R.bindBuffer(R.PIXEL_PACK_BUFFER,Pt),R.bufferData(R.PIXEL_PACK_BUFFER,et.byteLength,R.STREAM_READ),R.readPixels(U,O,z,N,Ut.convert(It),Ut.convert(Nt),0);const Kt=I!==null?Rt.get(I).__webglFramebuffer:null;At.bindFramebuffer(R.FRAMEBUFFER,Kt);const te=R.fenceSync(R.SYNC_GPU_COMMANDS_COMPLETE,0);return R.flush(),await Bh(R,te,4),R.bindBuffer(R.PIXEL_PACK_BUFFER,Pt),R.getBufferSubData(R.PIXEL_PACK_BUFFER,0,et),R.deleteBuffer(Pt),R.deleteSync(te),et}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(x,U=null,O=0){x.isTexture!==!0&&(Fi("WebGLRenderer: copyFramebufferToTexture function signature has changed."),U=arguments[0]||null,x=arguments[1]);const z=Math.pow(2,-O),N=Math.floor(x.image.width*z),et=Math.floor(x.image.height*z),mt=U!==null?U.x:0,vt=U!==null?U.y:0;b.setTexture2D(x,0),R.copyTexSubImage2D(R.TEXTURE_2D,O,0,0,mt,vt,N,et),At.unbindTexture()};const Fr=R.createFramebuffer(),Oc=R.createFramebuffer();this.copyTextureToTexture=function(x,U,O=null,z=null,N=0,et=null){x.isTexture!==!0&&(Fi("WebGLRenderer: copyTextureToTexture function signature has changed."),z=arguments[0]||null,x=arguments[1],U=arguments[2],et=arguments[3]||0,O=null),et===null&&(N!==0?(Fi("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),et=N,N=0):et=0);let mt,vt,Mt,It,Nt,Pt,Kt,te,xe;const pe=x.isCompressedTexture?x.mipmaps[et]:x.image;if(O!==null)mt=O.max.x-O.min.x,vt=O.max.y-O.min.y,Mt=O.isBox3?O.max.z-O.min.z:1,It=O.min.x,Nt=O.min.y,Pt=O.isBox3?O.min.z:0;else{const sn=Math.pow(2,-N);mt=Math.floor(pe.width*sn),vt=Math.floor(pe.height*sn),x.isDataArrayTexture?Mt=pe.depth:x.isData3DTexture?Mt=Math.floor(pe.depth*sn):Mt=1,It=0,Nt=0,Pt=0}z!==null?(Kt=z.x,te=z.y,xe=z.z):(Kt=0,te=0,xe=0);const Jt=Ut.convert(U.format),Dt=Ut.convert(U.type);let De;U.isData3DTexture?(b.setTexture3D(U,0),De=R.TEXTURE_3D):U.isDataArrayTexture||U.isCompressedArrayTexture?(b.setTexture2DArray(U,0),De=R.TEXTURE_2D_ARRAY):(b.setTexture2D(U,0),De=R.TEXTURE_2D),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,U.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,U.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,U.unpackAlignment);const ee=R.getParameter(R.UNPACK_ROW_LENGTH),ln=R.getParameter(R.UNPACK_IMAGE_HEIGHT),mi=R.getParameter(R.UNPACK_SKIP_PIXELS),qe=R.getParameter(R.UNPACK_SKIP_ROWS),is=R.getParameter(R.UNPACK_SKIP_IMAGES);R.pixelStorei(R.UNPACK_ROW_LENGTH,pe.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,pe.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,It),R.pixelStorei(R.UNPACK_SKIP_ROWS,Nt),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Pt);const de=x.isDataArrayTexture||x.isData3DTexture,nn=U.isDataArrayTexture||U.isData3DTexture;if(x.isDepthTexture){const sn=Rt.get(x),Be=Rt.get(U),Ge=Rt.get(sn.__renderTarget),Or=Rt.get(Be.__renderTarget);At.bindFramebuffer(R.READ_FRAMEBUFFER,Ge.__webglFramebuffer),At.bindFramebuffer(R.DRAW_FRAMEBUFFER,Or.__webglFramebuffer);for(let jn=0;jnMath.PI&&(n-=We),s<-Math.PI?s+=We:s>Math.PI&&(s-=We),n<=s?this._spherical.theta=Math.max(n,Math.min(s,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+s)/2?Math.max(n,this._spherical.theta):Math.min(s,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let r=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const a=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),r=a!=this._spherical.radius}if(Ee.setFromSpherical(this._spherical),Ee.applyQuaternion(this._quatInverse),e.copy(this.target).add(Ee),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let a=null;if(this.object.isPerspectiveCamera){const o=Ee.length();a=this._clampDistance(o*this._scale);const l=o-a;this.object.position.addScaledVector(this._dollyDirection,l),this.object.updateMatrixWorld(),r=!!l}else if(this.object.isOrthographicCamera){const o=new P(this._mouse.x,this._mouse.y,0);o.unproject(this.object);const l=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),r=l!==this.object.zoom;const c=new P(this._mouse.x,this._mouse.y,0);c.unproject(this.object),this.object.position.sub(c).add(o),this.object.updateMatrixWorld(),a=Ee.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;a!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(a).add(this.object.position):(cr.origin.copy(this.object.position),cr.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(cr.direction))_a||8*(1-this._lastQuaternion.dot(this.object.quaternion))>_a||this._lastTargetPosition.distanceToSquared(this.target)>_a?(this.dispatchEvent(Vl),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?We/60*this.autoRotateSpeed*t:We/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){Ee.setFromMatrixColumn(e,0),Ee.multiplyScalar(-t),this._panOffset.add(Ee)}_panUp(t,e){this.screenSpacePanning===!0?Ee.setFromMatrixColumn(e,1):(Ee.setFromMatrixColumn(e,0),Ee.crossVectors(this.object.up,Ee)),Ee.multiplyScalar(t),this._panOffset.add(Ee)}_pan(t,e){const n=this.domElement;if(this.object.isPerspectiveCamera){const s=this.object.position;Ee.copy(s).sub(this.target);let r=Ee.length();r*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*r/n.clientHeight,this.object.matrix),this._panUp(2*e*r/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),s=t-n.left,r=e-n.top,a=n.width,o=n.height;this._mouse.x=s/a*2-1,this._mouse.y=-(r/o)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(We*this._rotateDelta.x/e.clientHeight),this._rotateUp(We*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),e=!0;break}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._rotateStart.set(n,s)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panStart.set(n,s)}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),n=t.pageX-e.x,s=t.pageY-e.y,r=Math.sqrt(n*n+s*s);this._dollyStart.set(0,r)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(this._pointers.length==1)this._rotateEnd.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),s=.5*(t.pageX+n.x),r=.5*(t.pageY+n.y);this._rotateEnd.set(s,r)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(We*this._rotateDelta.x/e.clientHeight),this._rotateUp(We*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panEnd.set(n,s)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),n=t.pageX-e.x,s=t.pageY-e.y,r=Math.sqrt(n*n+s*s);this._dollyEnd.set(0,r),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const a=(t.pageX+e.x)*.5,o=(t.pageY+e.y)*.5;this._updateZoomParameters(a,o)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e - varying vec2 vUv; - uniform sampler2D colorTexture; - uniform vec2 invSize; - uniform vec2 direction; - uniform float gaussianCoefficients[KERNEL_RADIUS]; - - void main() { - float weightSum = gaussianCoefficients[0]; - vec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum; - for( int i = 1; i < KERNEL_RADIUS; i ++ ) { - float x = float(i); - float w = gaussianCoefficients[i]; - vec2 uvOffset = direction * invSize * x; - vec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb; - vec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb; - diffuseSum += (sample1 + sample2) * w; - weightSum += 2.0 * w; - } - gl_FragColor = vec4(diffuseSum/weightSum, 1.0); - }`})}getCompositeMaterial(t){return new He({defines:{NUM_MIPS:t},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:`varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:`varying vec2 vUv; - uniform sampler2D blurTexture1; - uniform sampler2D blurTexture2; - uniform sampler2D blurTexture3; - uniform sampler2D blurTexture4; - uniform sampler2D blurTexture5; - uniform float bloomStrength; - uniform float bloomRadius; - uniform float bloomFactors[NUM_MIPS]; - uniform vec3 bloomTintColors[NUM_MIPS]; - - float lerpBloomFactor(const in float factor) { - float mirrorFactor = 1.2 - factor; - return mix(factor, mirrorFactor, bloomRadius); - } - - void main() { - gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) + - lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) + - lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) + - lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) + - lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) ); - }`})}}ts.BlurDirectionX=new St(1,0);ts.BlurDirectionY=new St(0,1);function Pg(){const t=new Float32Array(6e3),e=new Float32Array(2e3*3);for(let r=0;r<2e3;r++){const a=Math.random()*Math.PI*2,o=Math.acos(2*Math.random()-1),l=600+Math.random()*400;t[r*3]=l*Math.sin(o)*Math.cos(a),t[r*3+1]=l*Math.sin(o)*Math.sin(a),t[r*3+2]=l*Math.cos(o);const c=Math.random();e[r*3]=.55+c*.25,e[r*3+1]=.55+c*.15,e[r*3+2]=.75+c*.25}const n=new ge;n.setAttribute("position",new he(t,3)),n.setAttribute("color",new he(e,3));const s=new oi({size:1.6,sizeAttenuation:!0,vertexColors:!0,transparent:!0,opacity:.6,depthWrite:!1,blending:Le});return new Yi(n,s)}function Dg(i){const t=new lu;t.background=new ot(328975),t.fog=new Dr(657946,.0035);const e=new $e(60,i.clientWidth/i.clientHeight,.1,2e3);e.position.set(0,30,80);const n=new lg({antialias:!0,alpha:!0,powerPreference:"high-performance"});n.setSize(i.clientWidth,i.clientHeight),n.setPixelRatio(Math.min(window.devicePixelRatio,2)),n.toneMapping=ec,n.toneMappingExposure=1.25,i.appendChild(n.domElement);const s=new hg(e,n.domElement);s.enableDamping=!0,s.dampingFactor=.05,s.rotateSpeed=.5,s.zoomSpeed=.8,s.minDistance=12,s.maxDistance=180,s.autoRotate=!0,s.autoRotateSpeed=.3;const r=new Ag(n);r.addPass(new Rg(t,e));const a=new ts(new St(i.clientWidth,i.clientHeight),.55,.6,.2);r.addPass(a);const o=new Mu(2763354,.7);t.add(o);const l=new dl(6514417,1.8,240);l.position.set(50,50,50),t.add(l);const c=new dl(11032055,1.2,240);c.position.set(-50,-30,-50),t.add(c);const h=Pg();t.add(h);const d=new Eu;d.params.Points={threshold:2};const p=new St;return{scene:t,camera:e,renderer:n,controls:s,composer:r,bloomPass:a,raycaster:d,mouse:p,lights:{ambient:o,point1:l,point2:c},starfield:h}}function Lg(i,t){const e=t.clientWidth,n=t.clientHeight;i.camera.aspect=e/n,i.camera.updateProjectionMatrix(),i.renderer.setSize(e,n),i.composer.setSize(e,n)}function Ug(i){i.scene.traverse(t=>{var e;(t instanceof be||t instanceof du)&&((e=t.geometry)==null||e.dispose(),Array.isArray(t.material)?t.material.forEach(n=>n.dispose()):t.material&&t.material.dispose())}),i.renderer.dispose(),i.composer.dispose()}class Ig{constructor(t){kt(this,"positions");kt(this,"velocities");kt(this,"running",!0);kt(this,"step",0);kt(this,"repulsionStrength",500);kt(this,"attractionStrength",.01);kt(this,"dampening",.9);kt(this,"baseMaxSteps",300);kt(this,"maxSteps",300);kt(this,"cooldownExtension",0);this.positions=t,this.velocities=new Map;for(const e of t.keys())this.velocities.set(e,new P)}addNode(t,e){this.positions.set(t,e.clone()),this.velocities.set(t,new P),this.cooldownExtension=100,this.maxSteps=Math.max(this.maxSteps,this.step+this.cooldownExtension),this.running=!0}removeNode(t){this.positions.delete(t),this.velocities.delete(t)}tick(t){if(!this.running)return;if(this.step>this.maxSteps){this.cooldownExtension>0&&(this.cooldownExtension=0,this.maxSteps=this.baseMaxSteps);return}this.step++;const e=Math.max(.001,1-this.step/this.maxSteps),n=Array.from(this.positions.keys());for(let s=0;s=.7?"active":i>=.4?"dormant":i>=.1?"silent":"unavailable"}const po={active:"#10b981",dormant:"#f59e0b",silent:"#8b5cf6",unavailable:"#6b7280"},Fg={active:"Easily retrievable (retention ≥ 70%)",dormant:"Retrievable with effort (40–70%)",silent:"Difficult, needs cues (10–40%)",unavailable:"Needs reinforcement (< 10%)"},xr={aha:"#FFD700",confusion:"#EF4444",failure:"#9CA3AF"},Og={aha:"Aha moments and breakthroughs",confusion:"Confusions and weak spots",failure:"Failures and guardrails"};function Xl(i,t){return t==="state"?po[Ng(i.retention)]:t==="ahagraph"?Bg(i)??Sa[i.type]??"#8B95A5":Sa[i.type]||"#8B95A5"}function Bg(i){const t=new Set((i.tags??[]).map(e=>e.toLowerCase()));return t.has("aha")?xr.aha:t.has("confusion")||t.has("weak-spot")?xr.confusion:t.has("failure")||t.has("guardrail")?xr.failure:null}let ms=null;function mo(){if(ms)return ms;const i=128,t=document.createElement("canvas");t.width=i,t.height=i;const e=t.getContext("2d");if(!e)return ms=new Pe,ms;const n=e.createRadialGradient(i/2,i/2,0,i/2,i/2,i/2);n.addColorStop(0,"rgba(255, 255, 255, 1.0)"),n.addColorStop(.25,"rgba(255, 255, 255, 0.7)"),n.addColorStop(.55,"rgba(255, 255, 255, 0.2)"),n.addColorStop(1,"rgba(255, 255, 255, 0.0)"),e.fillStyle=n,e.fillRect(0,0,i,i);const s=new bc(t);return s.needsUpdate=!0,ms=s,s}function Yl(i){if(i===0||i===1)return i;const t=.3;return Math.pow(2,-10*i)*Math.sin((i-t/4)*(2*Math.PI)/t)+1}function zg(i){return i*i*((1.70158+1)*i-1.70158)}class kg{constructor(){kt(this,"group");kt(this,"meshMap",new Map);kt(this,"glowMap",new Map);kt(this,"positions",new Map);kt(this,"labelSprites",new Map);kt(this,"hoveredNode",null);kt(this,"selectedNode",null);kt(this,"colorMode","type");kt(this,"materializingNodes",[]);kt(this,"dissolvingNodes",[]);kt(this,"growingNodes",[]);this.group=new zi}setColorMode(t){if(this.colorMode!==t){this.colorMode=t;for(const[e,n]of this.meshMap){const s=n.userData.retention??0,r=n.userData.type??"fact",a=Array.isArray(n.userData.tags)?n.userData.tags:[],l=Xl({type:r,retention:s,tags:a},t),c=new ot(l),h=n.material;h.color.copy(c),h.emissive.copy(c);const d=this.glowMap.get(e);d&&d.material.color.copy(c)}}}createNodes(t){const e=(1+Math.sqrt(5))/2,n=t.length;for(let s=0;s0,o=new Lr(s,16,16),l=new mu({color:new ot(r),emissive:new ot(r),emissiveIntensity:a?0:.3+t.retention*.5,roughness:.3,metalness:.1,transparent:!0,opacity:a?.2:.3+t.retention*.7}),c=new be(o,l);c.position.copy(e),c.scale.setScalar(n),c.userData={nodeId:t.id,type:t.type,retention:t.retention,tags:t.tags},this.meshMap.set(t.id,c),this.group.add(c);const h=new Xi({map:mo(),color:new ot(r),transparent:!0,opacity:n>0?a?.1:.3+t.retention*.35:0,blending:Le,depthWrite:!1}),d=new Bi(h);d.scale.set(s*6*n,s*6*n,1),d.position.copy(e),d.userData={isGlow:!0,nodeId:t.id},this.glowMap.set(t.id,d),this.group.add(d);const p=t.label||t.type,u=this.createTextSprite(p,"#94a3b8");return u.position.copy(e),u.position.y+=s*2+1.5,u.userData={isLabel:!0,nodeId:t.id,offset:s*2+1.5},this.group.add(u),this.labelSprites.set(t.id,u),{mesh:c,glow:d,label:u,size:s}}addNode(t,e,n={}){const s=(e==null?void 0:e.clone())??new P((Math.random()-.5)*40,(Math.random()-.5)*40,(Math.random()-.5)*40);this.positions.set(t.id,s);const{mesh:r,glow:a,label:o}=this.createNodeMeshes(t,s,0);return r.scale.setScalar(.001),a.scale.set(.001,.001,1),a.material.opacity=0,o.material.opacity=0,n.isBirthRitual?(r.visible=!1,a.visible=!1,o.visible=!1,r.userData.birthRitualPending={totalFrames:30,targetScale:.5+t.retention*2}):this.materializingNodes.push({id:t.id,frame:0,totalFrames:30,mesh:r,glow:a,label:o,targetScale:.5+t.retention*2}),s}igniteNode(t){const e=this.meshMap.get(t),n=this.glowMap.get(t),s=this.labelSprites.get(t);if(!e||!n||!s)return;const r=e.userData.birthRitualPending;r&&(e.visible=!0,n.visible=!0,s.visible=!0,delete e.userData.birthRitualPending,this.materializingNodes.push({id:t,frame:0,totalFrames:r.totalFrames,mesh:e,glow:n,label:s,targetScale:r.targetScale}))}removeNode(t){const e=this.meshMap.get(t),n=this.glowMap.get(t),s=this.labelSprites.get(t);!e||!n||!s||(this.materializingNodes=this.materializingNodes.filter(r=>r.id!==t),this.dissolvingNodes.push({id:t,frame:0,totalFrames:60,mesh:e,glow:n,label:s,originalScale:e.scale.x}))}growNode(t,e){const n=this.meshMap.get(t);if(!n)return;const s=n.scale.x,r=.5+e*2;n.userData.retention=e,this.growingNodes.push({id:t,frame:0,totalFrames:30,startScale:s,targetScale:r})}createTextSprite(t,e){const n=document.createElement("canvas"),s=n.getContext("2d");if(!s){const f=new Pe;return new Bi(new Xi({map:f,transparent:!0,opacity:0}))}n.width=512,n.height=64;const r=t.length>40?t.slice(0,37)+"...":t;s.clearRect(0,0,n.width,n.height),s.font='600 22px -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif';const o=s.measureText(r).width,c=Math.min(o+14*2,n.width-4),h=40,d=(n.width-c)/2,p=(n.height-h)/2,u=h/2;s.fillStyle="rgba(10, 16, 28, 0.82)",s.beginPath(),s.moveTo(d+u,p),s.lineTo(d+c-u,p),s.quadraticCurveTo(d+c,p,d+c,p+u),s.lineTo(d+c,p+h-u),s.quadraticCurveTo(d+c,p+h,d+c-u,p+h),s.lineTo(d+u,p+h),s.quadraticCurveTo(d,p+h,d,p+h-u),s.lineTo(d,p+u),s.quadraticCurveTo(d,p,d+u,p),s.closePath(),s.fill(),s.strokeStyle="rgba(148, 163, 184, 0.18)",s.lineWidth=1,s.stroke(),s.textAlign="center",s.textBaseline="middle",s.fillStyle=e,s.fillText(r,n.width/2,n.height/2+1);const g=new bc(n);g.needsUpdate=!0;const _=new Xi({map:g,transparent:!0,opacity:0,depthTest:!1,sizeAttenuation:!0}),m=new Bi(_);return m.scale.set(9,1.2,1),m}updatePositions(){this.group.children.forEach(t=>{if(t.userData.nodeId){const e=this.positions.get(t.userData.nodeId);if(!e)return;t.userData.isGlow?t.position.copy(e):t.userData.isLabel?(t.position.copy(e),t.position.y+=t.userData.offset):t instanceof be&&t.position.copy(e)}})}animate(t,e,n,s=1){var a,o;for(let l=this.materializingNodes.length-1;l>=0;l--){const c=this.materializingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),d=Yl(h);if(c.mesh.scale.setScalar(Math.max(.001,d)),c.frame>=5){const p=Math.min((c.frame-5)/5,1),u=c.glow.material;u.opacity=p*.4;const g=c.targetScale*6*d;c.glow.scale.set(g,g,1)}if(c.frame>=40){const p=Math.min((c.frame-40)/20,1);c.label.material.opacity=p*.9}c.frame>=60&&this.materializingNodes.splice(l,1)}for(let l=this.dissolvingNodes.length-1;l>=0;l--){const c=this.dissolvingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),d=1-zg(h),p=Math.max(.001,c.originalScale*d);c.mesh.scale.setScalar(p);const u=p*6;c.glow.scale.set(u,u,1);const g=c.mesh.material;g.opacity*=.97,c.glow.material.opacity*=.95,c.label.material.opacity*=.93,c.frame>=c.totalFrames&&(this.group.remove(c.mesh),this.group.remove(c.glow),this.group.remove(c.label),c.mesh.geometry.dispose(),c.mesh.material.dispose(),(a=c.glow.material.map)==null||a.dispose(),c.glow.material.dispose(),(o=c.label.material.map)==null||o.dispose(),c.label.material.dispose(),this.meshMap.delete(c.id),this.glowMap.delete(c.id),this.labelSprites.delete(c.id),this.positions.delete(c.id),this.dissolvingNodes.splice(l,1))}for(let l=this.growingNodes.length-1;l>=0;l--){const c=this.growingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),d=c.startScale+(c.targetScale-c.startScale)*Yl(h),p=this.meshMap.get(c.id);p&&p.scale.setScalar(d);const u=this.glowMap.get(c.id);if(u){const g=d*6;u.scale.set(g,g,1)}c.frame>=c.totalFrames&&this.growingNodes.splice(l,1)}const r=new Set([...this.materializingNodes.map(l=>l.id),...this.dissolvingNodes.map(l=>l.id),...this.growingNodes.map(l=>l.id)]);this.meshMap.forEach((l,c)=>{if(r.has(c))return;const h=e.find(T=>T.id===c);if(!h)return;const d=1+Math.sin(t*1.5+e.indexOf(h)*.5)*.15*h.retention;l.scale.setScalar(d);const p=this.positions.get(c),u=p?n.position.distanceTo(p):0,g=1+Math.min(1.4,Math.max(0,(u-60)/100)),_=l.material;if(c===this.hoveredNode)_.emissiveIntensity=1*s;else if(c===this.selectedNode)_.emissiveIntensity=.8*s;else{const E=.3+h.retention*.5+Math.sin(t*(.8+h.retention*.7))*.1*h.retention;_.emissiveIntensity=E*s*g}const m=.3+h.retention*.7;_.opacity=Math.min(1,m*s*g);const f=this.glowMap.get(c);if(f){const T=f.material,E=.3+h.retention*.35;T.opacity=Math.min(.95,E*s*g)}}),this.labelSprites.forEach((l,c)=>{if(r.has(c))return;const h=this.positions.get(c);if(!h)return;const d=n.position.distanceTo(h),p=l.material,u=c===this.hoveredNode||c===this.selectedNode?1:d<40?.9:d<80?.9*(1-(d-40)/40):0;p.opacity+=(u-p.opacity)*.1})}getMeshes(){return Array.from(this.meshMap.values())}dispose(){this.group.traverse(t=>{var e,n,s,r,a;t instanceof be?((e=t.geometry)==null||e.dispose(),(n=t.material)==null||n.dispose()):t instanceof Bi&&((r=(s=t.material)==null?void 0:s.map)==null||r.dispose(),(a=t.material)==null||a.dispose())}),this.materializingNodes=[],this.dissolvingNodes=[],this.growingNodes=[]}}function Hg(i){return 1-Math.pow(1-i,3)}class Vg{constructor(){kt(this,"group");kt(this,"growingEdges",[]);kt(this,"dissolvingEdges",[]);this.group=new zi}createEdges(t,e){for(const n of t){const s=e.get(n.source),r=e.get(n.target);if(!s||!r)continue;const a=[s,r],o=new ge().setFromPoints(a),l=new Ar({color:9133302,transparent:!0,opacity:Math.min(.25+n.weight*.5,.8),blending:Le,depthWrite:!1}),c=new co(o,l);c.userData={source:n.source,target:n.target},this.group.add(c)}}addEdge(t,e){const n=e.get(t.source),s=e.get(t.target);if(!n||!s)return;const r=[n.clone(),n.clone()],a=new ge().setFromPoints(r),o=new Ar({color:9133302,transparent:!0,opacity:0,blending:Le,depthWrite:!1}),l=new co(a,o);l.userData={source:t.source,target:t.target},this.group.add(l),this.growingEdges.push({line:l,source:t.source,target:t.target,frame:0,totalFrames:45})}removeEdgesForNode(t){const e=[];this.group.children.forEach(n=>{const s=n;(s.userData.source===t||s.userData.target===t)&&e.push(s)});for(const n of e)this.growingEdges=this.growingEdges.filter(s=>s.line!==n),this.dissolvingEdges.push({line:n,frame:0,totalFrames:40})}animateEdges(t){for(let e=this.growingEdges.length-1;e>=0;e--){const n=this.growingEdges[e];n.frame++;const s=Hg(Math.min(n.frame/n.totalFrames,1)),r=t.get(n.source),a=t.get(n.target);if(!r||!a)continue;const o=r.clone().lerp(a,s),l=n.line.geometry.attributes.position;l.setXYZ(0,r.x,r.y,r.z),l.setXYZ(1,o.x,o.y,o.z),l.needsUpdate=!0;const c=n.line.material;c.opacity=s*.65,n.frame>=n.totalFrames&&(c.opacity=.65,this.growingEdges.splice(e,1))}for(let e=this.dissolvingEdges.length-1;e>=0;e--){const n=this.dissolvingEdges[e];n.frame++;const s=n.frame/n.totalFrames,r=n.line.material;r.opacity=Math.max(0,.65*(1-s)),n.frame>=n.totalFrames&&(this.group.remove(n.line),n.line.geometry.dispose(),n.line.material.dispose(),this.dissolvingEdges.splice(e,1))}}updatePositions(t){this.group.children.forEach(e=>{const n=e;if(this.growingEdges.some(a=>a.line===n)||this.dissolvingEdges.some(a=>a.line===n))return;const s=t.get(n.userData.source),r=t.get(n.userData.target);if(s&&r){const a=n.geometry.attributes.position;a.setXYZ(0,s.x,s.y,s.z),a.setXYZ(1,r.x,r.y,r.z),a.needsUpdate=!0}})}dispose(){this.group.children.forEach(t=>{var n,s;const e=t;(n=e.geometry)==null||n.dispose(),(s=e.material)==null||s.dispose()}),this.growingEdges=[],this.dissolvingEdges=[]}}class Gg{constructor(t){kt(this,"starField");kt(this,"neuralParticles");this.starField=this.createStarField(),this.neuralParticles=this.createNeuralParticles(),t.add(this.starField),t.add(this.neuralParticles)}createStarField(){const e=new ge,n=new Float32Array(3e3*3),s=new Float32Array(3e3);for(let a=0;a<3e3;a++)n[a*3]=(Math.random()-.5)*1e3,n[a*3+1]=(Math.random()-.5)*1e3,n[a*3+2]=(Math.random()-.5)*1e3,s[a]=Math.random()*1.5;e.setAttribute("position",new he(n,3)),e.setAttribute("size",new he(s,1));const r=new oi({color:6514417,size:.5,transparent:!0,opacity:.4,sizeAttenuation:!0,blending:Le});return new Yi(e,r)}createNeuralParticles(){const e=new ge,n=new Float32Array(500*3),s=new Float32Array(500*3);for(let a=0;a<500;a++)n[a*3]=(Math.random()-.5)*100,n[a*3+1]=(Math.random()-.5)*100,n[a*3+2]=(Math.random()-.5)*100,s[a*3]=.4+Math.random()*.3,s[a*3+1]=.3+Math.random()*.2,s[a*3+2]=.8+Math.random()*.2;e.setAttribute("position",new he(n,3)),e.setAttribute("color",new he(s,3));const r=new oi({size:.3,vertexColors:!0,transparent:!0,opacity:.4,blending:Le,sizeAttenuation:!0});return new Yi(e,r)}animate(t){this.starField.rotation.y+=1e-4,this.starField.rotation.x+=5e-5;const e=this.neuralParticles.geometry.attributes.position;for(let n=0;n=0;s--){const r=this.pulseEffects[s];if(r.intensity-=r.decay,r.intensity<=0){this.pulseEffects.splice(s,1);continue}const a=t.get(r.nodeId);if(a){const o=a.material;o.emissive.lerp(r.color,r.intensity*.3),o.emissiveIntensity=Math.max(o.emissiveIntensity,r.intensity)}}for(let s=this.spawnBursts.length-1;s>=0;s--){const r=this.spawnBursts[s];if(r.age++,r.age>120){this.scene.remove(r.particles),r.particles.geometry.dispose(),r.particles.material.dispose(),this.spawnBursts.splice(s,1);continue}const a=r.particles.geometry.attributes.position,o=r.particles.geometry.attributes.velocity;for(let c=0;c=0;s--){const r=this.rainbowBursts[s];if(r.age++,r.age>r.maxAge){this.scene.remove(r.particles),r.particles.geometry.dispose(),r.particles.material.dispose(),this.rainbowBursts.splice(s,1);continue}const a=r.particles.geometry.attributes.position,o=r.particles.geometry.attributes.velocity;for(let p=0;p=0;s--){const r=this.rippleWaves[s];if(r.age++,r.radius+=r.speed,r.age>r.maxAge){this.rippleWaves.splice(s,1);continue}const a=r.radius,o=3;n.forEach((l,c)=>{if(r.pulsedNodes.has(c))return;const h=l.distanceTo(r.origin);h>=a-o&&h<=a+o&&(r.pulsedNodes.add(c),this.addPulse(c,.8,new ot(65489),.03))})}for(let s=this.implosions.length-1;s>=0;s--){const r=this.implosions[s];if(r.age++,r.age>r.maxAge+20){this.scene.remove(r.particles),r.particles.geometry.dispose(),r.particles.material.dispose(),r.flash&&(this.scene.remove(r.flash),r.flash.geometry.dispose(),r.flash.material.dispose()),this.implosions.splice(s,1);continue}if(r.age<=r.maxAge){const a=r.particles.geometry.attributes.position,o=r.particles.geometry.attributes.velocity,l=1+r.age*.02;for(let h=0;hr.maxAge){const a=(r.age-r.maxAge)/20;r.flash.material.opacity=Math.max(0,1-a),r.flash.scale.setScalar(1+a*3)}}for(let s=this.shockwaves.length-1;s>=0;s--){const r=this.shockwaves[s];if(r.age++,r.age>r.maxAge){this.scene.remove(r.mesh),r.mesh.geometry.dispose(),r.mesh.material.dispose(),this.shockwaves.splice(s,1);continue}const a=r.age/r.maxAge;r.mesh.scale.setScalar(1+a*20),r.mesh.material.opacity=.8*(1-a),r.mesh.lookAt(e.position)}for(let s=this.connectionFlashes.length-1;s>=0;s--){const r=this.connectionFlashes[s];if(r.intensity-=.015,r.intensity<=0){this.scene.remove(r.line),r.line.geometry.dispose(),r.line.material.dispose(),this.connectionFlashes.splice(s,1);continue}r.line.material.opacity=r.intensity}for(let s=this.birthOrbs.length-1;s>=0;s--){const r=this.birthOrbs[s];r.age++;const a=r.gestationFrames+r.flightFrames,o=r.sprite.material,l=r.core.material,c=r.getTargetPos();if(c)r.lastTargetPos.copy(c);else if(r.age>r.gestationFrames&&!r.aborted){r.aborted=!0;const h=r.sprite.position;o.color.setRGB(1,.15,.2),l.color.setRGB(1,.6,.6),this.createImplosion(h,new ot(16721203)),r.arriveFired=!0,r.age=a+1}if(r.age<=r.gestationFrames){const h=r.age/r.gestationFrames,d=1-Math.pow(1-h,3),p=.85+Math.sin(r.age*.35)*.15,u=.5+d*4.5*p,g=.2+d*1.8*p;r.sprite.scale.set(u,u,1),r.core.scale.set(g,g,1),o.opacity=d*.95,l.opacity=d,o.color.copy(r.color).multiplyScalar(.7+d*.3),r.sprite.position.copy(r.startPos),r.core.position.copy(r.startPos)}else if(r.age<=a){const h=(r.age-r.gestationFrames)/r.flightFrames,d=h<.5?2*h*h:1-Math.pow(-2*h+2,2)/2,p=r.startPos,u=r.lastTargetPos,g=u.x-p.x,_=u.y-p.y,m=u.z-p.z,f=Math.sqrt(g*g+_*_+m*m),T=(p.x+u.x)*.5,E=(p.y+u.y)*.5+30+f*.15,y=(p.z+u.z)*.5,D=1-d,w=D*D,C=2*D*d,I=d*d,S=w*p.x+C*T+I*u.x,M=w*p.y+C*E+I*u.y,A=w*p.z+C*y+I*u.z;r.sprite.position.set(S,M,A),r.core.position.set(S,M,A);const W=1-d*.35;r.sprite.scale.setScalar(5*W),r.core.scale.setScalar(2*W),o.opacity=.95,l.opacity=1,o.color.copy(r.color)}else if(r.arriveFired){const h=r.age-a,d=Math.max(0,1-h/8);o.opacity=.95*d,l.opacity=1*d,r.sprite.scale.setScalar(5*(1+(1-d)*2)),d<=0&&(this.scene.remove(r.sprite),this.scene.remove(r.core),o.dispose(),l.dispose(),this.birthOrbs.splice(s,1))}else{r.arriveFired=!0;try{r.onArrive()}catch(h){console.warn("[birth-orb] onArrive threw",h)}}}}dispose(){for(const t of this.spawnBursts)this.scene.remove(t.particles),t.particles.geometry.dispose(),t.particles.material.dispose();for(const t of this.rainbowBursts)this.scene.remove(t.particles),t.particles.geometry.dispose(),t.particles.material.dispose();for(const t of this.implosions)this.scene.remove(t.particles),t.particles.geometry.dispose(),t.particles.material.dispose(),t.flash&&(this.scene.remove(t.flash),t.flash.geometry.dispose(),t.flash.material.dispose());for(const t of this.shockwaves)this.scene.remove(t.mesh),t.mesh.geometry.dispose(),t.mesh.material.dispose();for(const t of this.connectionFlashes)this.scene.remove(t.line),t.line.geometry.dispose(),t.line.material.dispose();for(const t of this.birthOrbs)this.scene.remove(t.sprite),this.scene.remove(t.core),t.sprite.material.dispose(),t.core.material.dispose();this.pulseEffects=[],this.spawnBursts=[],this.rainbowBursts=[],this.rippleWaves=[],this.implosions=[],this.shockwaves=[],this.connectionFlashes=[],this.birthOrbs=[]}}const wn={bloomStrength:.8,rotateSpeed:.3,fogColor:328976,fogDensity:.008,nebulaIntensity:0,chromaticIntensity:.002,vignetteRadius:.9,breatheAmplitude:1},zn={bloomStrength:1.8,rotateSpeed:.08,fogColor:656672,fogDensity:.006,nebulaIntensity:1,chromaticIntensity:.005,vignetteRadius:.7,breatheAmplitude:2};class Xg{constructor(){kt(this,"active",!1);kt(this,"transition",0);kt(this,"transitionSpeed",.008);kt(this,"current");kt(this,"auroraHue",0);this.current={...wn}}setActive(t){this.active=t}update(t,e,n,s,r){const a=this.active?1:0;this.transition+=(a-this.transition)*this.transitionSpeed*60*(1/60),this.transition=Math.max(0,Math.min(1,this.transition));const o=this.transition;this.current.bloomStrength=this.lerp(wn.bloomStrength,zn.bloomStrength,o),this.current.rotateSpeed=this.lerp(wn.rotateSpeed,zn.rotateSpeed,o),this.current.fogDensity=this.lerp(wn.fogDensity,zn.fogDensity,o),this.current.nebulaIntensity=this.lerp(wn.nebulaIntensity,zn.nebulaIntensity,o),this.current.chromaticIntensity=this.lerp(wn.chromaticIntensity,zn.chromaticIntensity,o),this.current.vignetteRadius=this.lerp(wn.vignetteRadius,zn.vignetteRadius,o),this.current.breatheAmplitude=this.lerp(wn.breatheAmplitude,zn.breatheAmplitude,o),e.strength=this.current.bloomStrength,n.autoRotateSpeed=this.current.rotateSpeed;const l=new ot(wn.fogColor),c=new ot(zn.fogColor),h=l.clone().lerp(c,o);if(t.fog=new Dr(h,this.current.fogDensity),o>.01){this.auroraHue=r*.1%1;const d=new ot().setHSL(.75+this.auroraHue*.15,.8,.5),p=new ot().setHSL(.55+this.auroraHue*.2,.7,.4);s.point1.color.lerp(d,o*.3),s.point2.color.lerp(p,o*.3)}else s.point1.color.set(6514417),s.point2.color.set(11032055)}lerp(t,e,n){return t+(e-t)*n}}const Yg=50,xs=[];function qg(i,t,e){const n=i.tags??[],s=i.type??"";let r=null,a=0;for(const o of t){let l=0;o.type===s&&(l+=2);for(const c of o.tags)n.includes(c)&&(l+=1);l>a&&(a=l,r=o.id)}if(r&&a>0){const o=e.get(r);if(o)return new P(o.x+(Math.random()-.5)*10,o.y+(Math.random()-.5)*10,o.z+(Math.random()-.5)*10)}return new P((Math.random()-.5)*40,(Math.random()-.5)*40,(Math.random()-.5)*40)}function jg(i,t){if(xs.length<=Yg)return;const e=xs.shift();i.edgeManager.removeEdgesForNode(e),i.nodeManager.removeNode(e),i.forceSim.removeNode(e),i.onMutation({type:"edgesRemoved",nodeId:e}),i.onMutation({type:"nodeRemoved",nodeId:e});const n=t.findIndex(s=>s.id===e);n!==-1&&t.splice(n,1)}function Zg(i,t,e){var d,p;const{effects:n,nodeManager:s,edgeManager:r,forceSim:a,camera:o,onMutation:l}=t,c=s.positions,h=s.meshMap;switch(i.type){case"MemoryCreated":{const u=i.data;if(!u.id)break;const g={id:u.id,label:(u.content??"").slice(0,60),type:u.node_type??"fact",retention:Math.max(0,Math.min(1,u.retention??.9)),tags:u.tags??[],createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),isCenter:!1},_=qg(g,e,c),m=s.addNode(g,_,{isBirthRitual:!0});a.addNode(u.id,m),xs.push(u.id),jg(t,e);const f=new ot(Sa[g.type]||"#00ffd1"),T=f.clone();T.offsetHSL(.15,0,0),n.createBirthOrb(o,f,()=>s.positions.get(g.id),()=>{s.igniteNode(g.id);const E=s.positions.get(g.id)??_,y=s.meshMap.get(g.id);y&&y.scale.multiplyScalar(1.8),n.createRainbowBurst(E,f),n.createShockwave(E,f,o),n.createShockwave(E,T,o),n.createRippleWave(E)}),l({type:"nodeAdded",node:g});break}case"ConnectionDiscovered":{const u=i.data;if(!u.source_id||!u.target_id)break;const g=c.get(u.source_id),_=c.get(u.target_id),m={source:u.source_id,target:u.target_id,weight:u.weight??.5,type:u.connection_type??"semantic"};r.addEdge(m,c),g&&_&&n.createConnectionFlash(g,_,new ot(54527)),u.source_id&&h.has(u.source_id)&&n.addPulse(u.source_id,1,new ot(54527),.02),u.target_id&&h.has(u.target_id)&&n.addPulse(u.target_id,1,new ot(54527),.02),l({type:"edgeAdded",edge:m});break}case"MemoryDeleted":{const u=i.data;if(!u.id)break;const g=c.get(u.id);if(g){const m=new ot(16729943);n.createImplosion(g,m)}r.removeEdgesForNode(u.id),s.removeNode(u.id),a.removeNode(u.id);const _=xs.indexOf(u.id);_!==-1&&xs.splice(_,1),l({type:"edgesRemoved",nodeId:u.id}),l({type:"nodeRemoved",nodeId:u.id});break}case"MemoryPromoted":{const u=i.data,g=u==null?void 0:u.id;if(!g)break;const _=u.new_retention??.95;if(h.has(g)){s.growNode(g,_),n.addPulse(g,1.2,new ot(65416),.01);const m=c.get(g);m&&(n.createShockwave(m,new ot(65416),o),n.createSpawnBurst(m,new ot(65416))),l({type:"nodeUpdated",nodeId:g,retention:_})}break}case"MemoryDemoted":{const u=i.data,g=u==null?void 0:u.id;if(!g)break;const _=u.new_retention??.3;h.has(g)&&(s.growNode(g,_),n.addPulse(g,.8,new ot(16729943),.03),l({type:"nodeUpdated",nodeId:g,retention:_}));break}case"MemoryUpdated":{const u=i.data,g=u==null?void 0:u.id;if(!g||!h.has(g))break;n.addPulse(g,.6,new ot(8490232),.02),u.retention!==void 0&&(s.growNode(g,u.retention),l({type:"nodeUpdated",nodeId:g,retention:u.retention}));break}case"SearchPerformed":{h.forEach((u,g)=>{n.addPulse(g,.6+Math.random()*.4,new ot(8490232),.02)});break}case"DreamStarted":{h.forEach((u,g)=>{n.addPulse(g,1,new ot(11032055),.005)});break}case"DreamProgress":{const u=(d=i.data)==null?void 0:d.memory_id;u&&h.has(u)&&n.addPulse(u,1.5,new ot(12616956),.01);break}case"DreamCompleted":{n.createSpawnBurst(new P(0,0,0),new ot(11032055)),n.createShockwave(new P(0,0,0),new ot(11032055),o);break}case"RetentionDecayed":{const u=(p=i.data)==null?void 0:p.id;u&&h.has(u)&&n.addPulse(u,.8,new ot(16729943),.03);break}case"ConsolidationCompleted":{h.forEach((u,g)=>{n.addPulse(g,.4+Math.random()*.3,new ot(16758784),.015)});break}case"ActivationSpread":{const u=i.data;if(u.source_id&&u.target_ids){const g=c.get(u.source_id);if(g)for(const _ of u.target_ids){const m=c.get(_);m&&n.createConnectionFlash(g,m,new ot(1370310))}}break}case"MemorySuppressed":{const u=i.data;if(!u.id)break;const g=c.get(u.id);if(g){n.createImplosion(g,new ot(11032055));const _=Math.max(1,u.suppression_count??1),m=Math.min(.4+_*.15,1);n.addPulse(u.id,m,new ot(11032055),.04)}break}case"MemoryUnsuppressed":{const u=i.data;if(!u.id)break;const g=c.get(u.id);g&&h.has(u.id)&&(n.createRainbowBurst(g,new ot(65416)),n.addPulse(u.id,1,new ot(65416),.02));break}case"Rac1CascadeSwept":{const g=i.data.neighbors_affected??0;if(g===0)break;const _=Array.from(h.keys()),m=Math.min(g,_.length,12);for(let f=0;f"u")return Mr;const i=localStorage.getItem(Fc);if(i===null)return Mr;const t=Number(i);return Number.isFinite(t)?Math.min(_o,Math.max(go,t)):Mr}const ni=a_();function a_(){let i=me(!1),t=me(va(new Date)),e=me(!1),n=me(1),s=me(!1),r=me(va(r_()));return{get temporalEnabled(){return B(i)},set temporalEnabled(a){zt(i,a,!0)},get temporalDate(){return B(t)},set temporalDate(a){zt(t,a,!0)},get temporalPlaying(){return B(e)},set temporalPlaying(a){zt(e,a,!0)},get temporalSpeed(){return B(n)},set temporalSpeed(a){zt(n,a,!0)},get dreamMode(){return B(s)},set dreamMode(a){zt(s,a,!0)},get brightness(){return B(r)},set brightness(a){const o=Math.min(_o,Math.max(go,a));if(zt(r,o,!0),typeof localStorage<"u")try{localStorage.setItem(Fc,String(o))}catch{}},brightnessMin:go,brightnessMax:_o,brightnessDefault:Mr}}var o_=Se('
        ');function l_(i,t){ys(t,!0);let e=vs(t,"events",19,()=>[]),n=vs(t,"isDreaming",3,!1),s=vs(t,"colorMode",3,"type");kc(()=>{l==null||l.setColorMode(s())});let r,a,o,l,c,h,d,p,u,g,_,m=null,f=[];jl(()=>{a=Dg(r),g=Jg(a.scene).material,_=i_(a.composer),h=new Gg(a.scene),l=new kg,l.colorMode=s(),c=new Vg,d=new Wg(a.scene),u=new Xg;const M=l.createNodes(t.nodes);c.createEdges(t.edges,M),p=new Ig(M),f=[...t.nodes],a.scene.add(c.group),a.scene.add(l.group),E(),window.addEventListener("resize",D),r.addEventListener("pointermove",w),r.addEventListener("click",C)}),Zl(()=>{cancelAnimationFrame(o),window.removeEventListener("resize",D),r==null||r.removeEventListener("pointermove",w),r==null||r.removeEventListener("click",C),d==null||d.dispose(),h==null||h.dispose(),l==null||l.dispose(),c==null||c.dispose(),a&&Ug(a)});let T=0;function E(){o=requestAnimationFrame(E);const S=performance.now();T===0&&(T=S);const M=S-T;if(M<16)return;T=S-M%16;const A=S*.001;p.tick(t.edges),l.updatePositions(),c.updatePositions(l.positions),c.animateEdges(l.positions),h.animate(A),l.animate(A,f,a.camera,ni.brightness),u.setActive(n()),u.update(a.scene,a.bloomPass,a.controls,a.lights,A),Qg(g,A,u.current.nebulaIntensity,r.clientWidth,r.clientHeight),s_(_,A,u.current.nebulaIntensity),y(),d.update(l.meshMap,a.camera,l.positions),a.controls.update(),a.composer.render()}function y(){if(!e()||e().length===0)return;const S=[];for(const A of e()){if(A===m)break;S.push(A)}if(S.length===0)return;if(S.length===e().length&&e().length>=200){console.warn("[vestige] Event horizon overflow: dropping visuals for",S.length,"events"),m=e()[0];return}m=e()[0];const M={effects:d,nodeManager:l,edgeManager:c,forceSim:p,camera:a.camera,onMutation:A=>{var W;A.type==="nodeAdded"?f=[...f,A.node]:A.type==="nodeRemoved"&&(f=f.filter(k=>k.id!==A.nodeId)),(W=t.onGraphMutation)==null||W.call(t,A)}};for(let A=S.length-1;A>=0;A--)Zg(S[A],M,f)}function D(){!r||!a||Lg(a,r)}function w(S){const M=r.getBoundingClientRect();a.mouse.x=(S.clientX-M.left)/M.width*2-1,a.mouse.y=-((S.clientY-M.top)/M.height)*2+1,a.raycaster.setFromCamera(a.mouse,a.camera);const A=a.raycaster.intersectObjects(l.getMeshes());A.length>0?(l.hoveredNode=A[0].object.userData.nodeId,r.style.cursor="pointer"):(l.hoveredNode=null,r.style.cursor="grab")}function C(){var S;if(l.hoveredNode){l.selectedNode=l.hoveredNode,(S=t.onSelect)==null||S.call(t,l.hoveredNode);const M=l.positions.get(l.hoveredNode);M&&a.controls.target.lerp(M.clone(),.5)}}var I=o_();Yc(I,S=>r=S,()=>r),_e(i,I),Es()}var c_=Se('
        '),h_=Se('
        ');function u_(i,t){ys(t,!0);let e=vs(t,"width",3,240),n=vs(t,"height",3,80);function s(m){return t.stability<=0?0:Math.exp(-m/t.stability)}let r=Gn(()=>{const m=[],f=Math.max(t.stability*3,30),T=4,E=e()-T*2,y=n()-T*2;for(let D=0;D<=50;D++){const w=D/50*f,C=s(w),I=T+D/50*E,S=T+(1-C)*y;m.push(`${D===0?"M":"L"}${I.toFixed(1)},${S.toFixed(1)}`)}return m.join(" ")}),a=Gn(()=>[{label:"Now",days:0,value:t.retention},{label:"1d",days:1,value:s(1)},{label:"7d",days:7,value:s(7)},{label:"30d",days:30,value:s(30)}]);function o(m){return m>.7?"#10b981":m>.4?"#f59e0b":"#ef4444"}var l=h_(),c=yt(l),h=yt(c),d=bt(h),p=bt(d),u=bt(p),g=bt(u);Hc(),xt(c);var _=bt(c,2);_s(_,21,()=>B(a),hr,(m,f)=>{var T=c_(),E=yt(T),y=yt(E);xt(E);var D=bt(E,2),w=yt(D);xt(D),xt(T),Ke((C,I)=>{fe(y,`${B(f).label??""}:`),Sr(D,`color: ${C??""}`),fe(w,`${I??""}%`)},[()=>o(B(f).value),()=>(B(f).value*100).toFixed(0)]),_e(m,T)}),xt(_),xt(l),Ke(m=>{ve(c,"width",e()),ve(c,"height",n()),ve(c,"viewBox",`0 0 ${e()??""} ${n()??""}`),ve(h,"y1",4+(n()-8)*.5),ve(h,"x2",e()-4),ve(h,"y2",4+(n()-8)*.5),ve(d,"y1",4+(n()-8)*.8),ve(d,"x2",e()-4),ve(d,"y2",4+(n()-8)*.8),ve(p,"d",B(r)),ve(u,"d",`${B(r)??""} L${e()-4},${n()-4} L4,${n()-4} Z`),ve(g,"cy",4+(1-t.retention)*(n()-8)),ve(g,"fill",m)},[()=>o(t.retention)]),_e(i,l),Es()}function ql(i,t,e){const n=e.getTime(),s=new Set,r=new Map,a=i.filter(l=>{const c=new Date(l.createdAt).getTime();if(c<=n){s.add(l.id);const h=n-c,d=1440*60*1e3,p=hs.has(l.source)&&s.has(l.target));return{visibleNodes:a,visibleEdges:o,nodeOpacities:r}}function d_(i){if(i.length===0){const n=new Date;return{oldest:n,newest:n}}let t=1/0,e=-1/0;for(const n of i){const s=new Date(n.createdAt).getTime();se&&(e=s)}return{oldest:new Date(t),newest:new Date(e)}}var f_=Se(`
        `),p_=Se('');function m_(i,t){ys(t,!0);let e=me(!1),n=me(!1),s=me(1),r=me(100),a,o=0,l=Gn(()=>d_(t.nodes)),c=Gn(()=>{const E=B(l).oldest.getTime(),D=B(l).newest.getTime()-E||1;return new Date(E+B(r)/100*D)});function h(E){return E.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function d(){zt(e,!B(e)),t.onToggle(B(e)),B(e)&&(zt(r,100),t.onDateChange(B(c)))}function p(){zt(n,!B(n)),B(n)?(zt(r,0),o=performance.now(),u()):cancelAnimationFrame(a)}function u(){B(n)&&(a=requestAnimationFrame(E=>{const y=(E-o)/1e3;o=E;const D=B(l).oldest.getTime(),C=(B(l).newest.getTime()-D)/(1440*60*1e3)||1,I=B(s)/C*100;if(zt(r,Math.min(100,B(r)+I*y),!0),t.onDateChange(B(c)),B(r)>=100){zt(n,!1);return}u()}))}function g(){t.onDateChange(B(c))}Zl(()=>{zt(n,!1),cancelAnimationFrame(a)});var _=Gc(),m=Kl(_);{var f=E=>{var y=f_(),D=yt(y),w=yt(D),C=yt(w),I=yt(C),S=yt(I,!0);xt(I);var M=bt(I,2),A=yt(M);A.value=A.__value=1;var W=bt(A);W.value=W.__value=7;var k=bt(W);k.value=k.__value=30,xt(M),xt(C);var q=bt(C,2),Q=yt(q,!0);xt(q);var X=bt(q,2);xt(w);var tt=bt(w,2);xa(tt);var H=bt(tt,2),st=yt(H),gt=yt(st,!0);xt(st);var Et=bt(st,2),Ft=yt(Et,!0);xt(Et),xt(H),xt(D),xt(y),Ke((Xt,Y,nt)=>{fe(S,B(n)?"⏸":"▶"),fe(Q,Xt),fe(gt,Y),fe(Ft,nt)},[()=>h(B(c)),()=>h(B(l).oldest),()=>h(B(l).newest)]),Fe("click",I,p),Jl(M,()=>B(s),Xt=>zt(s,Xt)),Fe("click",X,d),Fe("input",tt,g),Ma(tt,()=>B(r),Xt=>zt(r,Xt)),_e(E,y)},T=E=>{var y=p_();Fe("click",y,d),_e(E,y)};kn(m,E=>{B(e)?E(f):E(T,!1)})}_e(i,_),Es()}$l(["click","input"]);var g_=Se('
        '),__=Se('
        FSRS accessibility
        ');function v_(i,t){ys(t,!1);const e=["active","dormant","silent","unavailable"];qc();var n=__(),s=bt(yt(n),2);_s(s,1,()=>e,r=>r,(r,a)=>{var o=g_(),l=yt(o),c=bt(l,2),h=yt(c,!0);xt(c);var d=bt(c,2),p=yt(d,!0);xt(d),xt(o),Ke(u=>{Sr(l,`background: ${po[B(a)]??""}; box-shadow: 0 0 6px ${po[B(a)]??""}55;`),fe(h,B(a)),fe(p,u)},[()=>{var u;return((u=Fg[B(a)].match(/\(([^)]+)\)/))==null?void 0:u[1])??""}]),_e(r,o)}),xt(n),_e(i,n),Es()}var x_=Se('

        Loading memory graph...

        '),M_=Se(`

        MCP Backend Offline

        The Vestige MCP server isn't reachable on :3927. - The dashboard is running but has nothing to query.

        Start the backend:
        nohup bash -c 'tail -f /dev/null | VESTIGE_DASHBOARD_ENABLED=true ~/.local/bin/vestige-mcp' > /tmp/vestige.log 2>&1 & -disown
        `),S_=Se('

        Your Mind Awaits

        No memories yet. Start using Vestige to populate your graph.

        '),y_=Se('

        Your Mind Awaits

        '),E_=Se(' · · ',1),b_=Se('
        '),T_=Se('
        '),w_=Se('
        AhaGraph
        '),A_=Se(' '),R_=Se('
        '),C_=Se("
        "),P_=Se(`

        Memory Detail

        Retention Forecast
        ◬ Explore Connections
        `),D_=Se(`
        `);function Q_(i,t){ys(t,!0);const e=()=>Xc(jc,"$eventFeed",n),[n,s]=Wc();let r=me(null),a=me(null),o=me(!0),l=me(""),c=me(!1),h=me(""),d=me(150),p=me(!1),u=me(va(new Date)),g=me("type");const _=Object.entries(xr);let m=me(0),f=me(0),T=Gn(()=>B(r)?B(p)?ql(B(r).nodes,B(r).edges,B(u)).visibleNodes:B(r).nodes:[]),E=Gn(()=>B(r)?B(p)?ql(B(r).nodes,B(r).edges,B(u)).visibleEdges:B(r).edges:[]);function y(V){if(B(r))switch(V.type){case"nodeAdded":B(r).nodes=[...B(r).nodes,V.node],B(r).nodeCount=B(r).nodes.length,zt(m,B(r).nodeCount,!0);break;case"nodeRemoved":B(r).nodes=B(r).nodes.filter(at=>at.id!==V.nodeId),B(r).nodeCount=B(r).nodes.length,zt(m,B(r).nodeCount,!0);break;case"edgeAdded":B(r).edges=[...B(r).edges,V.edge],B(r).edgeCount=B(r).edges.length,zt(f,B(r).edgeCount,!0);break;case"edgesRemoved":B(r).edges=B(r).edges.filter(at=>at.source!==V.nodeId&&at.target!==V.nodeId),B(r).edgeCount=B(r).edges.length,zt(f,B(r).edgeCount,!0);break;case"nodeUpdated":{const at=B(r).nodes.find(Z=>Z.id===V.nodeId);at&&(at.retention=V.retention);break}}}jl(()=>{const V=new URLSearchParams(window.location.search).get("colorMode");D(V)&&zt(g,V,!0),w()});function D(V){return V==="type"||V==="state"||V==="ahagraph"}async function w(V,at){var Z;zt(o,!0),zt(l,"");try{const it=!V&&!at;if(zt(r,await gi.graph({max_nodes:B(d),depth:3,query:V||void 0,center_id:at||void 0,sort:it?"recent":void 0}),!0),it&&B(r)&&B(r).nodeCount<=1&&B(r).edgeCount===0){const pt=await gi.graph({max_nodes:B(d),depth:3,sort:"connected"});pt&&pt.nodeCount>B(r).nodeCount&&zt(r,pt,!0)}B(r)&&(zt(m,B(r).nodeCount,!0),zt(f,B(r).edgeCount,!0))}catch(it){const pt=it instanceof Error?it.message:String(it),wt=pt.replace(/\/[\w./-]+\.(sqlite|rs|db|toml|lock)\b/g,"[path]").slice(0,200),ht=it instanceof TypeError||/failed to fetch|NetworkError|load failed/i.test(pt)||/^API 500:?\s*(Internal Server Error)?\s*$/i.test(pt.trim()),Bt=(((Z=B(r))==null?void 0:Z.nodeCount)??0)===0&&/not found|404|empty|no memor/i.test(pt);ht?zt(l,"OFFLINE"):Bt?zt(l,"EMPTY"):zt(l,`Failed to load graph: ${wt}`)}finally{zt(o,!1)}}async function C(){zt(c,!0);try{await gi.dream(),await w()}catch{}finally{zt(c,!1)}}async function I(V){try{zt(a,await gi.memories.get(V),!0)}catch{zt(a,null)}}function S(){B(h).trim()&&w(B(h))}var M=D_(),A=yt(M);{var W=V=>{var at=x_();_e(V,at)},k=V=>{var at=M_(),Z=yt(at),it=bt(yt(Z),8),pt=yt(it),wt=bt(pt,2);xt(it),xt(Z),xt(at),Ke(()=>ve(wt,"href",`${Do??""}/settings`)),Fe("click",pt,()=>w()),_e(V,at)},q=V=>{var at=S_();_e(V,at)},Q=V=>{var at=y_(),Z=yt(at),it=bt(yt(Z),4),pt=yt(it,!0);xt(it),xt(Z),xt(at),Ke(()=>fe(pt,B(l))),_e(V,at)},X=V=>{l_(V,{get nodes(){return B(T)},get edges(){return B(E)},get centerId(){return B(r).center_id},get events(){return e()},get isDreaming(){return B(c)},get colorMode(){return B(g)},onSelect:I,onGraphMutation:y})};kn(A,V=>{B(o)?V(W):B(l)==="OFFLINE"?V(k,1):B(l)==="EMPTY"?V(q,2):B(l)?V(Q,3):B(r)&&V(X,4)})}var tt=bt(A,2),H=yt(tt),st=yt(H);xa(st);var gt=bt(st,2);xt(H);var Et=bt(H,2),Ft=yt(Et),Xt=yt(Ft),Y=bt(Xt,2),nt=bt(Y,2);xt(Ft);var _t=bt(Ft,2),lt=yt(_t);lt.value=lt.__value=50;var Ct=bt(lt);Ct.value=Ct.__value=100;var Lt=bt(Ct);Lt.value=Lt.__value=150;var Vt=bt(Lt);Vt.value=Vt.__value=200,xt(_t);var ie=bt(_t,2),Wt=bt(yt(ie),2);xa(Wt);var ue=bt(Wt,2),R=yt(ue);xt(ue),xt(ie);var ye=bt(ie,2),qt=yt(ye,!0);xt(ye);var jt=bt(ye,2);xt(Et),xt(tt);var At=bt(tt,2),le=yt(At);{var Rt=V=>{var at=E_(),Z=Kl(at),it=yt(Z);xt(Z);var pt=bt(Z,4),wt=yt(pt);xt(pt);var ht=bt(pt,4),Bt=yt(ht);xt(ht),Ke(()=>{fe(it,`${B(m)??""} nodes`),fe(wt,`${B(f)??""} edges`),fe(Bt,`depth ${B(r).depth??""}`)}),_e(V,at)};kn(le,V=>{B(r)&&V(Rt)})}xt(At);var b=bt(At,2);{var v=V=>{var at=b_(),Z=yt(at);v_(Z,{}),xt(at),_e(V,at)};kn(b,V=>{B(g)==="state"&&V(v)})}var F=bt(b,2);{var K=V=>{var at=w_(),Z=bt(yt(at),2);_s(Z,21,()=>_,hr,(it,pt)=>{var wt=Gn(()=>Vc(B(pt),2));let ht=()=>B(wt)[0],Bt=()=>B(wt)[1];var Ut=T_(),Zt=yt(Ut),L=bt(Zt,2),rt=yt(L,!0);xt(L),xt(Ut),Ke(()=>{Sr(Zt,`background: ${Bt()??""}`),fe(rt,Og[ht()])}),_e(it,Ut)}),xt(Z),xt(at),_e(V,at)};kn(F,V=>{B(g)==="ahagraph"&&V(K)})}var J=bt(F,2);{var j=V=>{m_(V,{get nodes(){return B(r).nodes},onDateChange:at=>{zt(u,at,!0)},onToggle:at=>{zt(p,at,!0)}})};kn(J,V=>{B(r)&&V(j)})}var Tt=bt(J,2);{var dt=V=>{var at=P_(),Z=yt(at),it=bt(yt(Z),2);xt(Z);var pt=bt(Z,2),wt=yt(pt),ht=yt(wt),Bt=yt(ht,!0);xt(ht);var Ut=bt(ht,2);_s(Ut,17,()=>B(a).tags,hr,(Ve,Re)=>{var tn=A_(),en=yt(tn,!0);xt(tn),Ke(()=>fe(en,B(Re))),_e(Ve,tn)}),xt(wt);var Zt=bt(wt,2),L=yt(Zt,!0);xt(Zt);var rt=bt(Zt,2);_s(rt,21,()=>[{label:"Retention",value:B(a).retentionStrength},{label:"Storage",value:B(a).storageStrength},{label:"Retrieval",value:B(a).retrievalStrength}],hr,(Ve,Re)=>{var tn=R_(),en=yt(tn),pi=yt(en),Ps=yt(pi,!0);xt(pi);var Ds=bt(pi,2),Ir=yt(Ds);xt(Ds),xt(en);var Ls=bt(en,2),Nr=yt(Ls);xt(Ls),xt(tn),Ke(Fr=>{fe(Ps,B(Re).label),fe(Ir,`${Fr??""}%`),Sr(Nr,`width: ${B(Re).value*100}%; background: ${B(Re).value>.7?"#10b981":B(Re).value>.4?"#f59e0b":"#ef4444"}`)},[()=>(B(Re).value*100).toFixed(1)]),_e(Ve,tn)}),xt(rt);var G=bt(rt,2),$=bt(yt(G),2);{let Ve=Gn(()=>B(a).storageStrength*30);u_($,{get retention(){return B(a).retentionStrength},get stability(){return B(Ve)}})}xt(G);var ft=bt(G,2),ut=yt(ft),Ot=yt(ut);xt(ut);var ce=bt(ut,2),Ae=yt(ce);xt(ce);var $t=bt(ce,2);{var Ye=Ve=>{var Re=C_(),tn=yt(Re);xt(Re),Ke(en=>fe(tn,`Accessed: ${en??""}`),[()=>new Date(B(a).lastAccessedAt).toLocaleString()]),_e(Ve,Re)};kn($t,Ve=>{B(a).lastAccessedAt&&Ve(Ye)})}var Qe=bt($t,2),Rs=yt(Qe);xt(Qe),xt(ft);var fi=bt(ft,2),pn=yt(fi),ns=bt(pn,2);xt(fi);var Cs=bt(fi,2);xt(pt),xt(at),Ke((Ve,Re)=>{fe(Bt,B(a).nodeType),fe(L,B(a).content),fe(Ot,`Created: ${Ve??""}`),fe(Ae,`Updated: ${Re??""}`),fe(Rs,`Reviews: ${B(a).reviewCount??0??""}`),ve(Cs,"href",`${Do??""}/explore`)},[()=>new Date(B(a).createdAt).toLocaleString(),()=>new Date(B(a).updatedAt).toLocaleString()]),Fe("click",it,()=>zt(a,null)),Fe("click",pn,()=>{B(a)&&gi.memories.promote(B(a).id)}),Fe("click",ns,()=>{B(a)&&gi.memories.demote(B(a).id)}),_e(V,at)};kn(Tt,V=>{B(a)&&V(dt)})}xt(M),Ke((V,at)=>{ve(Xt,"aria-checked",B(g)==="type"),Us(Xt,1,`px-3 py-1.5 rounded-lg transition ${B(g)==="type"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),ve(Y,"aria-checked",B(g)==="state"),Us(Y,1,`px-3 py-1.5 rounded-lg transition ${B(g)==="state"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),ve(nt,"aria-checked",B(g)==="ahagraph"),Us(nt,1,`px-3 py-1.5 rounded-lg transition ${B(g)==="ahagraph"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),ve(ie,"title",`Adjust graph brightness (${V??""}x). Combines with auto distance compensation.`),ve(Wt,"min",ni.brightnessMin),ve(Wt,"max",ni.brightnessMax),fe(R,`${at??""}x`),ye.disabled=B(c),Us(ye,1,`px-4 py-2 rounded-xl bg-dream/20 border border-dream/40 text-dream-glow text-sm - hover:bg-dream/30 transition-all backdrop-blur-sm disabled:opacity-50 - ${B(c)?"glow-dream animate-pulse-glow":""}`),fe(qt,B(c)?"◈ Dreaming...":"◈ Dream")},[()=>ni.brightness.toFixed(1),()=>ni.brightness.toFixed(1)]),Fe("keydown",st,V=>V.key==="Enter"&&S()),Ma(st,()=>B(h),V=>zt(h,V)),Fe("click",gt,S),Fe("click",Xt,()=>zt(g,"type")),Fe("click",Y,()=>zt(g,"state")),Fe("click",nt,()=>zt(g,"ahagraph")),Fe("change",_t,()=>w()),Jl(_t,()=>B(d),V=>zt(d,V)),Ma(Wt,()=>ni.brightness,V=>ni.brightness=V),Fe("click",ye,C),Fe("click",jt,()=>w()),_e(i,M),Es(),s()}$l(["click","keydown","change"]);export{Q_ as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.br b/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.br deleted file mode 100644 index f295aa5601e9d425bc171c6dfd745159b0a43115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123948 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

        i;(k>)E+Um+bvTt!Aw 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 BN@@TA diff --git a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.gz b/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.gz deleted file mode 100644 index 059eb29b86875b9a838bd12e7e3e4992648d91fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149521 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

        Y zGod4_gEU(EHLOuOPb}-s6CAjL{s%p#iNmY<2&_AE61@icvtSf`P(IOfpUL4Tj$r;< zwhSkuqSEcyW-hkAhqli;O44vtYtQ`81e|&^MBhBBku3Jfnjznnny}g{U_pMG� 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 Z|+0vHjPpfG3 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%0AyDGqU9v<{Edi3H=NH&37SXAQ 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js.gz b/apps/dashboard/build/_app/immutable/chunks/CfobEeQC.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..11150f180c66003c9fce76160095a8cd9dbaa756 GIT binary patch literal 139352 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�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