From 6c24a0ca69d9bdabae57309c23659f53330fdc45 Mon Sep 17 00:00:00 2001 From: Sam Valladares Date: Sat, 18 Apr 2026 18:33:04 -0500 Subject: [PATCH] =?UTF-8?q?chore(release):=20v2.0.6=20"Composer"=20?= =?UTF-8?q?=E2=80=94=20rebuild=20+=20version=20bump=20+=20CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps vestige-core + vestige-mcp + @vestige/dashboard + vestige-mcp-server + @vestige/init from 2.0.5 → 2.0.6, regenerates the Cargo.lock, rebuilds the dashboard with the new events.ts handlers + intentions page fix baked in, and writes the v2.0.6 "Composer" entry to CHANGELOG.md. Release contents: - fix(dashboard): intentions page priority + trigger rendering (commit 9df63de) - feat(dashboard): wire 6 graph event handlers — suppress, unsuppress, Rac1 cascade, Connected, ConsolidationStarted, ImportanceScored (commit f085cfd) - feat(mcp): opt-in VESTIGE_SYSTEM_PROMPT_MODE=full composition mandate (commit 7d7a7c2) - docs(readme): v2.0.6 header + Intel Mac / Windows build-from-source honesty (commit ede0a02) Pre-push gates green: cargo test --workspace --release, cargo clippy --all-targets -D warnings, svelte-check (580 files 0 errors), vitest (171/171). No regressions of merged PRs #18/20/22/24/26/28/29/30/32/33. --- CHANGELOG.md | 39 +++++++++++ Cargo.lock | 4 +- .../build/_app/immutable/chunks/BAlzCWFX.js | 1 + .../_app/immutable/chunks/BAlzCWFX.js.br | Bin 0 -> 2613 bytes .../_app/immutable/chunks/BAlzCWFX.js.gz | Bin 0 -> 2955 bytes .../build/_app/immutable/chunks/D1EqE5Bq.js | 1 + .../_app/immutable/chunks/D1EqE5Bq.js.br | Bin 0 -> 7673 bytes .../_app/immutable/chunks/D1EqE5Bq.js.gz | Bin 0 -> 8414 bytes .../build/_app/immutable/chunks/DwA4GIGc.js | 1 - .../_app/immutable/chunks/DwA4GIGc.js.br | Bin 7669 -> 0 bytes .../_app/immutable/chunks/DwA4GIGc.js.gz | Bin 8413 -> 0 bytes .../build/_app/immutable/chunks/urMNLRPv.js | 1 - .../_app/immutable/chunks/urMNLRPv.js.br | Bin 2612 -> 0 bytes .../_app/immutable/chunks/urMNLRPv.js.gz | Bin 2954 -> 0 bytes .../{app.DzQ7RYYG.js => app.Bvvx1UVC.js} | 4 +- .../_app/immutable/entry/app.Bvvx1UVC.js.br | Bin 0 -> 3146 bytes .../_app/immutable/entry/app.Bvvx1UVC.js.gz | Bin 0 -> 3590 bytes .../_app/immutable/entry/app.DzQ7RYYG.js.br | Bin 3153 -> 0 bytes .../_app/immutable/entry/app.DzQ7RYYG.js.gz | Bin 3591 -> 0 bytes .../_app/immutable/entry/start.CM2cmm4m.js | 1 - .../_app/immutable/entry/start.CM2cmm4m.js.br | Bin 112 -> 0 bytes .../_app/immutable/entry/start.CM2cmm4m.js.gz | Bin 108 -> 0 bytes .../_app/immutable/entry/start.D1AvCvNH.js | 1 + .../_app/immutable/entry/start.D1AvCvNH.js.br | 2 + .../_app/immutable/entry/start.D1AvCvNH.js.gz | Bin 0 -> 108 bytes .../nodes/{0.CrGZHYMq.js => 0.CfGq9762.js} | 2 +- .../_app/immutable/nodes/0.CfGq9762.js.br | Bin 0 -> 3184 bytes .../_app/immutable/nodes/0.CfGq9762.js.gz | Bin 0 -> 3645 bytes .../_app/immutable/nodes/0.CrGZHYMq.js.br | Bin 3180 -> 0 bytes .../_app/immutable/nodes/0.CrGZHYMq.js.gz | Bin 3646 -> 0 bytes .../nodes/{1.DUm1yZ6r.js => 1.BD13-5Fq.js} | 2 +- .../_app/immutable/nodes/1.BD13-5Fq.js.br | Bin 0 -> 355 bytes .../_app/immutable/nodes/1.BD13-5Fq.js.gz | Bin 0 -> 397 bytes .../_app/immutable/nodes/1.DUm1yZ6r.js.br | Bin 353 -> 0 bytes .../_app/immutable/nodes/1.DUm1yZ6r.js.gz | Bin 397 -> 0 bytes .../nodes/{3.lMYbfdAF.js => 3.BjemrBET.js} | 2 +- .../_app/immutable/nodes/3.BjemrBET.js.br | 1 + .../_app/immutable/nodes/3.BjemrBET.js.gz | Bin 0 -> 215 bytes .../_app/immutable/nodes/3.lMYbfdAF.js.br | Bin 176 -> 0 bytes .../_app/immutable/nodes/3.lMYbfdAF.js.gz | Bin 215 -> 0 bytes .../_app/immutable/nodes/6.BEn_WCBk.js.br | Bin 119867 -> 0 bytes .../_app/immutable/nodes/6.BEn_WCBk.js.gz | Bin 144787 -> 0 bytes .../nodes/{6.BEn_WCBk.js => 6.FZZPojTg.js} | 66 +++++++++--------- .../_app/immutable/nodes/6.FZZPojTg.js.br | Bin 0 -> 120063 bytes .../_app/immutable/nodes/6.FZZPojTg.js.gz | Bin 0 -> 145135 bytes .../build/_app/immutable/nodes/7.404BTmXF.js | 1 - .../_app/immutable/nodes/7.404BTmXF.js.br | Bin 2196 -> 0 bytes .../_app/immutable/nodes/7.404BTmXF.js.gz | Bin 2501 -> 0 bytes .../build/_app/immutable/nodes/7.DgTyksQL.js | 1 + .../_app/immutable/nodes/7.DgTyksQL.js.br | Bin 0 -> 2403 bytes .../_app/immutable/nodes/7.DgTyksQL.js.gz | Bin 0 -> 2728 bytes apps/dashboard/build/_app/version.json | 2 +- apps/dashboard/build/_app/version.json.br | Bin 31 -> 29 bytes apps/dashboard/build/_app/version.json.gz | Bin 47 -> 47 bytes apps/dashboard/build/index.html | 14 ++-- apps/dashboard/build/index.html.br | Bin 608 -> 606 bytes apps/dashboard/build/index.html.gz | Bin 794 -> 793 bytes apps/dashboard/package.json | 2 +- crates/vestige-core/Cargo.toml | 2 +- crates/vestige-mcp/Cargo.toml | 2 +- packages/vestige-init/package.json | 2 +- packages/vestige-mcp-npm/package.json | 2 +- 62 files changed, 99 insertions(+), 57 deletions(-) create mode 100644 apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DwA4GIGc.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DwA4GIGc.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DwA4GIGc.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/urMNLRPv.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/urMNLRPv.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/urMNLRPv.js.gz rename apps/dashboard/build/_app/immutable/entry/{app.DzQ7RYYG.js => app.Bvvx1UVC.js} (92%) create mode 100644 apps/dashboard/build/_app/immutable/entry/app.Bvvx1UVC.js.br create mode 100644 apps/dashboard/build/_app/immutable/entry/app.Bvvx1UVC.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DzQ7RYYG.js.br delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DzQ7RYYG.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.CM2cmm4m.js delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.CM2cmm4m.js.br delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.CM2cmm4m.js.gz create mode 100644 apps/dashboard/build/_app/immutable/entry/start.D1AvCvNH.js create mode 100644 apps/dashboard/build/_app/immutable/entry/start.D1AvCvNH.js.br create mode 100644 apps/dashboard/build/_app/immutable/entry/start.D1AvCvNH.js.gz rename apps/dashboard/build/_app/immutable/nodes/{0.CrGZHYMq.js => 0.CfGq9762.js} (99%) create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.CfGq9762.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.CfGq9762.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.CrGZHYMq.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.CrGZHYMq.js.gz rename apps/dashboard/build/_app/immutable/nodes/{1.DUm1yZ6r.js => 1.BD13-5Fq.js} (81%) create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.BD13-5Fq.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.BD13-5Fq.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.DUm1yZ6r.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.DUm1yZ6r.js.gz rename apps/dashboard/build/_app/immutable/nodes/{3.lMYbfdAF.js => 3.BjemrBET.js} (80%) create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.BjemrBET.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.BjemrBET.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.lMYbfdAF.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.lMYbfdAF.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.BEn_WCBk.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.BEn_WCBk.js.gz rename apps/dashboard/build/_app/immutable/nodes/{6.BEn_WCBk.js => 6.FZZPojTg.js} (81%) create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.gz diff --git a/CHANGELOG.md b/CHANGELOG.md index 9be1e86..d961dc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,45 @@ All notable changes to Vestige will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.0.6] - 2026-04-18 — "Composer" + +Polish release aimed at new-user happiness. v2.0.5's cognitive stack was already shipping; v2.0.6 makes it *feel* alive in the dashboard and stays out of your way on the prompt side. + +### Added + +#### Dashboard visual feedback for six live events +- `MemorySuppressed` → violet implosion + compounding pulse whose intensity scales with `suppression_count` (Anderson 2025 SIF visualised). +- `MemoryUnsuppressed` → rainbow burst + green pulse when a memory is brought back within the 24h labile window. +- `Rac1CascadeSwept` → violet wave across a random neighbour sample while the background Rac1 worker fades co-activated memories. +- `Connected` → gentle cyan ripple on WebSocket handshake. +- `ConsolidationStarted` → subtle amber pulses across a 20-node sample during the FSRS-6 decay cycle (matches feed-entry colour). +- `ImportanceScored` → magenta pulse on the scored node with intensity proportional to composite score. + +Before v2.0.6 all six events fired against a silent graph. Users perceived the dashboard as broken or unresponsive during real cognitive work. + +#### `VESTIGE_SYSTEM_PROMPT_MODE` environment variable +- `minimal` (default) — 3-sentence MCP `instructions` string telling the client how to use Vestige and how to react to explicit feedback. Safe for every audience, every client, every use case. +- `full` — opt in to the composition mandate (Composing / Never-composed / Recommendation response shape + FSRS-trust blocking phrase). Useful for high-stakes decision workflows; misfires on trivial retrievals, which is why it is not the default. + +Advertised in `vestige-mcp --help` alongside `VESTIGE_DASHBOARD_ENABLED`. + +### Fixed + +#### Dashboard intentions page +- `IntentionItem.priority` was typed as `string` but the API returns the numeric FSRS-style scale (1=low, 2=normal, 3=high, 4=critical). Every intention rendered as "normal priority" regardless of its real value. Now uses a `PRIORITY_LABELS` map keyed by the numeric scale. +- `trigger_value` was typed as a plain string but the API returns `trigger_data` as a JSON-encoded payload (e.g. `{"type":"time","at":"..."}`). The UI surfaced raw JSON for every non-manual trigger. A new `summarizeTrigger()` helper parses `trigger_data` and picks the most human-readable field — `condition` / `topic` / formatted `at` / `in_minutes` / `codebase/filePattern` — before truncating for display. Closes the loop on PR #26's snake_case TriggerSpec fix at the UI layer. + +### Docs + +- `README.md` — new "What's New in v2.0.6" header up top; v2.0.5 block strengthened with explicit contrast against Ebbinghaus 1885 passive decay and Anderson 1994 retrieval-induced forgetting; new "Forgetting" row in the RAG-vs-Vestige comparison table. +- Intel-Mac and Windows install steps replaced with a working `cargo build --release -p vestige-mcp` snippet. The pre-built binaries for those targets are blocked on upstream toolchain gaps (`ort-sys` lacks Intel-Mac prebuilts in the 2.0.0-rc.11 release pinned by `fastembed 5.13.2`; `usearch 2.24.0` hit a Windows MSVC compile break tracked as [usearch#746](https://github.com/unum-cloud/usearch/issues/746)). + +### Safety + +No regressions of merged contributor PRs — v2.0.6 only touches regions that are non-overlapping with #20 (resource URI strip), #24 (codex integration docs), #26 (snake_case TriggerSpec), #28 (deep_reference query relevance), #29 (older glibc feature flags), #30 (`VESTIGE_DASHBOARD_ENABLED`), #32 (dream eviction), and #33 (keyword-first search). + +--- + ## [2.0.5] - 2026-04-14 — "Intentional Amnesia" Every AI memory system stores too much. Vestige now treats forgetting as a first-class, neuroscientifically-grounded primitive. This release adds **active forgetting** — top-down inhibitory control over memory retrieval, based on two 2025 papers that no other AI memory system has implemented. diff --git a/Cargo.lock b/Cargo.lock index c365449..c80a041 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4531,7 +4531,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vestige-core" -version = "2.0.5" +version = "2.0.6" dependencies = [ "chrono", "criterion", @@ -4566,7 +4566,7 @@ dependencies = [ [[package]] name = "vestige-mcp" -version = "2.0.5" +version = "2.0.6" dependencies = [ "anyhow", "axum", diff --git a/apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js b/apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js new file mode 100644 index 0000000..d0c8c48 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.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"./DeTA_5mp.js";import{s as u,g as f,h as d}from"./nyjtQ1Ok.js";import{w as G}from"./DAj0p1rI.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/BAlzCWFX.js.br b/apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js.br new file mode 100644 index 0000000000000000000000000000000000000000..98f9b83fa19ba5c1dd36e4a9b348d0a6fc9e6de1 GIT binary patch literal 2613 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 z^tA{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_k7ei3f)!=null&&o.data&&globalThis.__sveltekit_k7ei3f.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/D1EqE5Bq.js.br b/apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.br new file mode 100644 index 0000000000000000000000000000000000000000..3ca51390fcbe57e35fd690ff31b9126ec10bd736 GIT binary patch literal 7673 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.gz b/apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..dc9e07f9f7f16e571aa2e133823205ee5229c6ef GIT binary patch literal 8414 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 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_1ysfr3o)!=null&&o.data&&globalThis.__sveltekit_1ysfr3o.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/DwA4GIGc.js.br b/apps/dashboard/build/_app/immutable/chunks/DwA4GIGc.js.br deleted file mode 100644 index a1159bfbc54fb075489718e3b5aacdf911a217df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7669 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

V(H& zyuUUKs!i3Au@xkm)$Z8T5K?m9bn}O*DZ7;ajS*yUpDwR)%a#9KZMlNp z-4(E92{FY=v0V9li9v^}6(Fb2U+&6iV;Al zX&mR#foyC|gJFy~)T-lW4Re#Tad;tjTI0mjOc^n4^i~EKc<25{n3M|(q|f{%!8#u`E{}<1 znHKc;TOT`$uCY@4E^Gx~y&0v7cpC$Jv`Wu`mh$DMY z?iR40(chf^2hgy$(%*=U3rnMCP+xNZt+d5lE)!>?%*C>-7_3u~`f4^S=hv(p*eVy+ ztejUXOUFOtWwh@)i@_T8bi{M(^BEn}8Ti+jBgDiUcw0 zY5wM0=VuTk;i7T&7KMYsPnu^iQ^w5*_6&gPSF7QNzec6ma^37sr|MiS!p zA^ZTXI{rqj*YC%pDePFFx;lx;oA?&SPJb}X1qji$1sZV=#v_t2-!0839+Jl`sjx+S zM=OSA)3iLflEndZw**Mp{6Rd7M#Il(oJY$ABNi0<%w;gP;jvNy`_UK^iIZbVu9!-> zK#+#nda^6!q%wYP2YTe?ypjwQ9OMF}cg<#NZ`eIQY#qh3jN;9NTI`U;4!{=_R8T1H zluO_0~4cGCwo~wOenF(Y+Su4~@_w#Tf+Q$W%9TrHs31ysxk6AWb0Fl~_bWcjrlbz? zfn5FlAJ<;?{T~~{X*9#4p0e=E#ZoEQ@r(JqU#yh#bXD)<{c>d|s05XAVF!|Yzg#H? zeo(1YDn)I@SBie%2L-Q~FZ;zZaEP6f9~Asb#VdJ1k&Wn1X{S;t_~nw9_bZ--Z4~{I zSMm$Ra*^TT`GtJN%a;nJoni?d?v#B$?*;i%IbSK2ixnGJ>Hl~>pC$L$&-uZQ?|H?t zU-k=ye2GnFzd&aFPAOlglnZ%+fF(6hc?uB5D|w|-A@5a6B`+V)1yS572l*W@2>ep8 z6S$U=L8YLBB2&JSujI=+{!TexDDLE4TY6C3A#DUjzmhK%yi&1J^a@^4B?Xm5_WJjy z@vy#thlhTUE9~Se`CX$(cn?JiIWH)ArONKw+jaUHH<_X~8O;K)|HFst_|dix4|;hf zjo@dp(u@!iM1SeNFZzaaP(>!xvG$aQzr08?*RZg3ZRVNX1DPdB#xVsDoz4l|-fSnO zW7uzv;3sF%d^RE8K3DP-<|3159*LRGB$~2!)?ThmCu>2QgNG5@%Xm4zxO#%os<3$D zA?rwP;^MD9qZ{!-iG1Y=E4_Q?Ti7L>?;YZ5twhXTHz`+lsuEF{I5ioBhP%!R-z(D* z8kb*2<8W66wZ1i}lXX<8b5l*~K6KltAW96Q4;K^@DAy%-w=lDzr7fpxsq83{42SRr zsz@(_93;3e&8UO4$s5=f)w3Wi;|X*Z%aux}ttjg{eSA2WPiLdMl&Pf>$9Z_?cGPpD z;t+Sk>i?FU`q1ZYLNRcYD{jPO5$?g4fZ@M!fp9j9hI63Kq4c?6NlmE4J@M*Enlb_P zlg4be_f?H{h_mRKzNMys$Lfha3a{$s*hUepG34u*w1hsdSgb|S4D~8H0tdMI4JSKA zsSfx-`7UmRx1p{K)st@LF-$S;U=*6oK!rx*3SW-~^Sh`S!E-?ZfdtBM$?J^NNXpo2 zGD_yEi=_0Uis!1ulXUfpLA#Z5rRuv@|NW&@vGZP;=}{ z9(h8~KYERuiZE?OueEY5P!zZ1Mua(PhmTsiq&1llS~^y&tm+3Iw9069>sk8z-qiz; z=uCo={DYU_#8=$|aid~zl?|I#i2mJnLULUJdE4yomXLzP=QT z7Yx7w0{jT9Ip{5cb29GvN8wKYQ=j%E(UuTBgjNZG^jb+YBYkGI@hhd`s3X)Vj6Rx`kS| z_F79+YpK>+qFPJ*5YU6O7mFY}r*GA6y?YlvmhiD;YEb&(3_bQ=N-(|+jQ?mb!AflW zb-?6TVzUAan~8l%Ojvh}W__&1eW0 z>ZpYZPLJ+&aM7sJ!xao7gWGdu_p>fv^peOFYG*B|9SpUDpmw5opa8{(GKR6s8xbza z^^t}!OjHoYM}}s&G$MYux;uBnGqjXH4NHs>_9LxJ3Hb5zM2O?p5qFOpG32*Nn>fq} zp#vSWnCW3ylsN*M$J*JDU+|!oKi8xuR)oecj_3SJ14L0+sNyocqMumtV|v9vt!Rc) zG3WvOMjp-7zKY#39FGUf#%R(S3Gcp!c?>$-n8T&+siG*vB?84#4A*G^e=4r2m>y)v z;g%sZ>Q451+y%7z6ci=<;p)KzkrrHTY}!eK8WK}U#`{%RpLD6YXLgA6GZx~{gZg?tDq9~dT}SF zRu9{QQ9ol~3Zj_(=)?euvmR5eME7G5;qC2gTIoe!DD#2C0GUBNnwK^Wz~gzIZH6)j z=15KOYGXsq)wBf~P^>f1z>Y;6%0zamv<8`2#h~Vp1DTN{Jc|m2Ln=GhnZME5&zQBk z@`l^OTBZzpFTfAShmFgNdXt{}r3=PKffC%*1-W|m0BnOtgT)hbo$qIOU*j0qeYZh_q5*H zJCVU&RKiEIa3F5jY_+veF-mPU5R8?kVs_YQJB+8J*<>_cCe~L2(5lrBQ1ICmwUg;? zi@^Jsz_JO@R#QfgD60Z$DA8nBLeQ>j5@D$qs&>a8_4--+;QZvgX#sV48%2~ouK!%b@;&oXfIOB3o39qhQ%ZXd)UA;l$ z{@vP^HNY@!2u*^NR;*Lyo!fosok79%E)B&sb`1qs$Tp2+i0f`E3fKYLRg%H3weP5? zj?(d5V^>n(-Ox=b8RELTmI8Iid1f-)6>OE9q)+w^>ZkQH3uVc1c@TCYBABJNa;O$u zV-Ho@iR2cV+{PpKS#=ttZ8l{-KXNlxn!r)glACz+j;+p0ykV!z&d2WSN+UR?d~zF4 z-2Ck=ovoh7pDQQW8*Z*OXpfL8^zB<|c8YiJoB z6RVP%Y^}ASK28j?y=9}6m9kF?O`jkjSzB3SwtS8xWo;7+QmfnjFA=+XPZhha7DBm9 zZhn1u3z~c^rsS`9OAt6>Y6$xO#+0@>{6ZrkcI#z;PN^vfup0nl&Yjl zS}Sl~XEo+b1Hi;9iu1^h@cB9brHVkvSM-&&CXNZPtinpb_&ketBmizoWdgjYwz2_3 zFf(N=Xe>!Y6HRJ>RyM3^IuxM`8nnr3qA^r?WkZ@;L>0d13b09Saw(wtD;v|!!&(Gg z0IWb$ztWgheiM!1`m3k0rgYKdF*>cSqMV%G7{tm3H7$)Qo6#3EHla?mhU>52n6e0L z@|oK5S@N>5fP4fR+Sn#YYbr9$)X}!XUWt;SQqsj8dNXO4l| z0A)i+X<;R5hAvB!Yyl0sP%Ii(VXWDtHX|$&u53DeCYbP6qoC-`R0j;uszrd5?a9h( zH>6P5kOq}DQ|PP%TfcctIcFCP6*R08rils$yb>Kl%Cx+bL3crhyeXR30IhCVU38X} zHcMSzE0@$ecWe_r>u1;0Qz8~X4;z=Qy|aV5lI)n?6^%^XYnq=H*qvOye$X5|rg-wf z64_qs;26BrZ0G=P!dd4w9`?oEt?n|?@=T&}2K}`IjED5rawR~$BEF?IYOz7tWp9#u zwRfg!RXKRf7wEXL7{y)ZE{uoNmE(d<5mZJ@40c>#bAfn5F{nM3PA*;Q0-cfk;ho#> z)!td2c?5^Mnn#nHu=Bn@8O?`X<{Y)=ZE$7b>pyp z-fq=@Y+W_$ufQKY2S9rSCa&;~mS=%i7h=LwDeRO>J3*yfqE1=q1KVQY=Yt*3FW?8Z z1wuC01mW%MOHXPP}pN9jrQCBun@Cwx3hzj-t?ID{*YHKw+T@{Bm zlx*@D(Xca^cO&Op@@V#szNTyw(?cTMe}@aeTgvG;>_jO4;ho!7XCr@fBOcNbw?Y!e z-Q8&ToiVOz4St=ky~mTLYPv;-Y~Uv9$HVpl9A7EevzJ0L3r%e>s>R>b&)z~l{i1x2 zhVVGJ+OHdrnIP6tG+Z!8LrQEay)qo(ZO@@(eTxsE-XI>=S%IXrv_F_nCNX_ww#Ir> zZwo|;=4ckufm?f6=QmM%zGzRP-hk$!DWZ*aB1Mx{Hz93?(Z;o)DR`Hp5J^(8CDE+( zBw;4K-gu?qM}kPCW2m<6S_h3I1J+M^Yr++si~bRt-Iv1-?*FOm;MCmPVAaoP>@)4T z=g}ZG7V2mmcJz(TLZ9_EJ-RHQalUClqmP{X$#X&Rau$-=B=CQZd2$KdRi6oH=$K^I z9*2{u7$=!OUnJ#V_0(NBPAYacnv8E};iMnUl8S&6#1tF`qkcCU&u(w#y`&PJ~uhn|uTG}f}E(7kdY<55iL_b`Db`aD^OP1wiYlC6)sD54Lu#%n%OX0v3cufzI9 z>$rWfckplGo3K`M@`2~+FUZBZ6bHrRWi<{v@8eqm~-*T*b7NZ@}_+nbfet1rtYb14GXdKM07s8q=Q;*~(qT z5G3aU`IEDO^ww-lc2t0gqx^N!&)|TEJao{h`iu9g^Ttf|e-%%e)99mZOqBZa5z#ir zAnS7KA$iUQ*f#-_1#w8a*%~$9?(bz3xT(N`BrH{s84Xh@vn2t}uLW3#YZC|`-nn(c zNtpjpuBmyI>LlUszALA1xnK9xFLzG`t=D)oecXnc8uf)bL4J7W-q_ZG;$>wL^`Z&6 znvhFD-DiobUHQ&XJD%gLCoiwRHOJnSkh0Hnyxv3PLebuLUxl;TB)*x? zBJO7+9!4hTqIruGB{Pk4C2#zIVNzyq)c*`g;Iq%)+7!UubyysGXHz55N|}Ln_%T9( zQXsMVQ}^o^IK-+0h*oJ6O*{N-Jy8{=CU?W>Ep?TmJHVfX1Df&V8H(niZ5w;?J}aj1 ziyd9pJ)3s9n>*z&w9ak{&K&ND4~@yi$zjv;HU^_W4^= zrmul%+SRoU7@hPg#334u79VcF0d-wc1j!W{fA%-Fz^M$AdWPwn4H` znf1Yo=|ZF7BIU64f~@()Ri}?T$GsR&www=pnwf*eXo6cuu<$u>z4W}tKlNa`;%tZy zaMUyPUvqkV(VZ&oaLJa*>izBFvHKg31#@(=MD_oSW@DxEcUc*og0;N{&O_ccoi2S%t-PNV^t(ZJiWfqKvm; zW8sPjc!<=KCwr&+^=3=cXk5q9hc84)|1we~lQ~{a=A)U=dQ&&n_nG`(q5(XZ6 zfoRzME>-+rN0QeL8P2Lxh>yYO_PvsN;1%h{~EW1iNeGZZGs}lI7#j__%Uv#;| z(TBr$qS^Z>>sg4o_gX0sg&Ba{M`nS$EmH2Wh)f(;cP1ke8-nG#&b>4wnlD6Xn(k

sJeMXNb>J*CMZ!cl78c(BjF7IRmofNH-;|y|cIV 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 in i?wc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var Wt=(i,t,e)=>Ac(i,typeof t!="symbol"?t+"":t,e);import"../chunks/Bzak7iHL.js";import{o as Rl,a as Cl}from"../chunks/DeTA_5mp.js";import{p as ur,a as dr,e as Dt,d as Ot,O as Rc,r as Rt,t as ln,g as j,u as ti,f as Pl,s as Ie,h as ie,c as Cc}from"../chunks/nyjtQ1Ok.js";import{s as _e,d as Dl,a as Je}from"../chunks/C4L78yoI.js";import{i as Ai}from"../chunks/B17metm1.js";import{e as Qr,i as ta}from"../chunks/BilMa3tw.js";import{a as He,f as je,c as Pc}from"../chunks/B0IenmM-.js";import{s as ze,r as Ll}from"../chunks/BBOOwRwQ.js";import{s as Dc}from"../chunks/BgOFZ9jq.js";import{s as Ul}from"../chunks/D2QmVWrb.js";import{b as Il}from"../chunks/BOVu8he9.js";import{b as Nl}from"../chunks/J2LZW-kP.js";import{s as Lc,a as Uc}from"../chunks/C3ZC25l2.js";import{b as Ic}from"../chunks/urMNLRPv.js";import{b as Nc}from"../chunks/DAhpUNCK.js";import{p as nr}from"../chunks/BPtVz5jm.js";import{N as Fl}from"../chunks/BNytumrp.js";import{a as qi}from"../chunks/BcuCGYSa.js";import{e as Fc}from"../chunks/B6fk3AxI.js";/** +var wc=Object.defineProperty;var Ac=(i,t,e)=>t in i?wc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var Wt=(i,t,e)=>Ac(i,typeof t!="symbol"?t+"":t,e);import"../chunks/Bzak7iHL.js";import{o as Rl,a as Cl}from"../chunks/DeTA_5mp.js";import{p as ur,a as dr,e as Dt,d as Ot,O as Rc,r as Rt,t as ln,g as j,u as ti,f as Pl,s as Ie,h as ie,c as Cc}from"../chunks/nyjtQ1Ok.js";import{s as _e,d as Dl,a as Je}from"../chunks/C4L78yoI.js";import{i as Ai}from"../chunks/B17metm1.js";import{e as Qr,i as ta}from"../chunks/BilMa3tw.js";import{a as ke,f as je,c as Pc}from"../chunks/B0IenmM-.js";import{s as ze,r as Ll}from"../chunks/BBOOwRwQ.js";import{s as Dc}from"../chunks/BgOFZ9jq.js";import{s as Ul}from"../chunks/D2QmVWrb.js";import{b as Il}from"../chunks/BOVu8he9.js";import{b as Nl}from"../chunks/J2LZW-kP.js";import{s as Lc,a as Uc}from"../chunks/C3ZC25l2.js";import{b as Ic}from"../chunks/BAlzCWFX.js";import{b as Nc}from"../chunks/DAhpUNCK.js";import{p as nr}from"../chunks/BPtVz5jm.js";import{N as Fl}from"../chunks/BNytumrp.js";import{a as qi}from"../chunks/BcuCGYSa.js";import{e as Fc}from"../chunks/B6fk3AxI.js";/** * @license * Copyright 2010-2024 Three.js Authors * SPDX-License-Identifier: MIT - */const Ya="172",Li={ROTATE:0,DOLLY:1,PAN:2},Ci={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Oc=0,fo=1,Bc=2,Ol=1,zc=2,yn=3,zn=0,ke=1,hn=2,bn=0,Ui=1,Ne=2,po=3,mo=4,Hc=5,Kn=100,kc=101,Vc=102,Gc=103,Wc=104,Xc=200,Yc=201,qc=202,jc=203,ea=204,na=205,Zc=206,Kc=207,$c=208,Jc=209,Qc=210,th=211,eh=212,nh=213,ih=214,ia=0,sa=1,ra=2,Oi=3,aa=4,oa=5,la=6,ca=7,Bl=0,sh=1,rh=2,On=0,ah=1,oh=2,lh=3,zl=4,ch=5,hh=6,uh=7,Hl=300,Bi=301,zi=302,ha=303,ua=304,fr=306,da=1e3,Jn=1001,fa=1002,qe=1003,dh=1004,gs=1005,dn=1006,xr=1007,Qn=1008,An=1009,kl=1010,Vl=1011,ls=1012,qa=1013,ni=1014,fn=1015,Tn=1016,ja=1017,Za=1018,Hi=1020,Gl=35902,Wl=1021,Xl=1022,an=1023,Yl=1024,ql=1025,Ii=1026,ki=1027,Ka=1028,$a=1029,jl=1030,Ja=1031,Qa=1033,qs=33776,js=33777,Zs=33778,Ks=33779,pa=35840,ma=35841,ga=35842,_a=35843,va=36196,xa=37492,Ma=37496,Sa=37808,ya=37809,Ea=37810,ba=37811,Ta=37812,wa=37813,Aa=37814,Ra=37815,Ca=37816,Pa=37817,Da=37818,La=37819,Ua=37820,Ia=37821,$s=36492,Na=36494,Fa=36495,Zl=36283,Oa=36284,Ba=36285,za=36286,fh=3200,ph=3201,Kl=0,mh=1,Fn="",Qe="srgb",Vi="srgb-linear",ir="linear",re="srgb",li=7680,go=519,gh=512,_h=513,vh=514,$l=515,xh=516,Mh=517,Sh=518,yh=519,Ha=35044,_o="300 es",En=2e3,sr=2001;class si{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]+Re[i>>16&255]+Re[i>>24&255]+"-"+Re[t&255]+Re[t>>8&255]+"-"+Re[t>>16&15|64]+Re[t>>24&255]+"-"+Re[e&63|128]+Re[e>>8&255]+"-"+Re[e>>16&255]+Re[e>>24&255]+Re[n&255]+Re[n>>8&255]+Re[n>>16&255]+Re[n>>24&255]).toLowerCase()}function Yt(i,t,e){return Math.max(t,Math.min(e,i))}function Eh(i,t){return(i%t+t)%t}function Mr(i,t,e){return(1-e)*i+e*t}function un(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 ae(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 bh={DEG2RAD:Js};class vt{constructor(t=0,e=0){vt.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],f=n[5],g=n[8],v=s[0],m=s[3],u=s[6],T=s[1],b=s[4],y=s[7],L=s[2],R=s[5],A=s[8];return r[0]=a*v+o*T+l*L,r[3]=a*m+o*b+l*R,r[6]=a*u+o*y+l*A,r[1]=c*v+h*T+d*L,r[4]=c*m+h*b+d*R,r[7]=c*u+h*y+d*A,r[2]=p*v+f*T+g*L,r[5]=p*m+f*b+g*R,r[8]=p*u+f*y+g*A,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,f=c*r-a*l,g=e*d+n*p+s*f;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);const v=1/g;return t[0]=d*v,t[1]=(s*c-h*n)*v,t[2]=(o*n-s*a)*v,t[3]=p*v,t[4]=(h*e-s*l)*v,t[5]=(s*r-o*e)*v,t[6]=f*v,t[7]=(n*l-c*e)*v,t[8]=(a*e-n*r)*v,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(Sr.makeScale(t,e)),this}rotate(t){return this.premultiply(Sr.makeRotation(-t)),this}translate(t,e){return this.premultiply(Sr.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 Sr=new Ht;function Jl(i){for(let t=i.length-1;t>=0;--t)if(i[t]>=65535)return!0;return!1}function rr(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}function Th(){const i=rr("canvas");return i.style.display="block",i}const vo={};function Ri(i){i in vo||(vo[i]=!0,console.warn(i))}function wh(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 Ah(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 Rh(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 xo=new Ht().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Mo=new Ht().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Ch(){const i={enabled:!0,workingColorSpace:Vi,spaces:{},convert:function(s,r,a){return this.enabled===!1||r===a||!r||!a||(this.spaces[r].transfer===re&&(s.r=wn(s.r),s.g=wn(s.g),s.b=wn(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===re&&(s.r=Ni(s.r),s.g=Ni(s.g),s.b=Ni(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===Fn?ir: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({[Vi]:{primaries:t,whitePoint:n,transfer:ir,toXYZ:xo,fromXYZ:Mo,luminanceCoefficients:e,workingColorSpaceConfig:{unpackColorSpace:Qe},outputColorSpaceConfig:{drawingBufferColorSpace:Qe}},[Qe]:{primaries:t,whitePoint:n,transfer:re,toXYZ:xo,fromXYZ:Mo,luminanceCoefficients:e,outputColorSpaceConfig:{drawingBufferColorSpace:Qe}}}),i}const $t=Ch();function wn(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function Ni(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}let ci;class Ph{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{ci===void 0&&(ci=rr("canvas")),ci.width=t.width,ci.height=t.height;const n=ci.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=ci}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=rr("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!==Hl)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case da:t.x=t.x-Math.floor(t.x);break;case Jn:t.x=t.x<0?0:1;break;case fa: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 da:t.y=t.y-Math.floor(t.y);break;case Jn:t.y=t.y<0?0:1;break;case fa: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++}}Te.DEFAULT_IMAGE=null;Te.DEFAULT_MAPPING=Hl;Te.DEFAULT_ANISOTROPY=1;class le{constructor(t=0,e=0,n=0,s=1){le.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],f=l[5],g=l[9],v=l[2],m=l[6],u=l[10];if(Math.abs(h-p)<.01&&Math.abs(d-v)<.01&&Math.abs(g-m)<.01){if(Math.abs(h+p)<.1&&Math.abs(d+v)<.1&&Math.abs(g+m)<.1&&Math.abs(c+f+u-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const b=(c+1)/2,y=(f+1)/2,L=(u+1)/2,R=(h+p)/4,A=(d+v)/4,U=(g+m)/4;return b>y&&b>L?b<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(b),s=R/n,r=A/n):y>L?y<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(y),n=R/s,r=U/s):L<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(L),n=A/r,s=U/r),this.set(n,s,r,e),this}let T=Math.sqrt((m-g)*(m-g)+(d-v)*(d-v)+(p-h)*(p-h));return Math.abs(T)<.001&&(T=1),this.x=(m-g)/T,this.y=(d-v)/T,this.z=(p-h)/T,this.w=Math.acos((c+f+u-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 Uh extends si{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new le(0,0,t,e),this.scissorTest=!1,this.viewport=new le(0,0,t,e);const s={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:dn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const r=new Te(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,b=1-u*u;if(b>Number.EPSILON){const L=Math.sqrt(b),R=Math.atan2(L,u*T);m=Math.sin(m*R)/L,o=Math.sin(o*R)/L}const y=o*T;if(l=l*m+p*y,c=c*m+f*y,h=h*m+g*y,d=d*m+v*y,m===1-o){const L=1/Math.sqrt(l*l+c*c+h*h+d*d);l*=L,c*=L,h*=L,d*=L}}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],f=r[a+2],g=r[a+3];return t[e]=o*g+h*d+l*f-c*p,t[e+1]=l*g+h*p+c*d-o*f,t[e+2]=c*g+h*f+o*p-l*d,t[e+3]=h*g-o*d-l*p-c*f,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),f=l(s/2),g=l(r/2);switch(a){case"XYZ":this._x=p*h*d+c*f*g,this._y=c*f*d-p*h*g,this._z=c*h*g+p*f*d,this._w=c*h*d-p*f*g;break;case"YXZ":this._x=p*h*d+c*f*g,this._y=c*f*d-p*h*g,this._z=c*h*g-p*f*d,this._w=c*h*d+p*f*g;break;case"ZXY":this._x=p*h*d-c*f*g,this._y=c*f*d+p*h*g,this._z=c*h*g+p*f*d,this._w=c*h*d-p*f*g;break;case"ZYX":this._x=p*h*d-c*f*g,this._y=c*f*d+p*h*g,this._z=c*h*g-p*f*d,this._w=c*h*d+p*f*g;break;case"YZX":this._x=p*h*d+c*f*g,this._y=c*f*d+p*h*g,this._z=c*h*g-p*f*d,this._w=c*h*d-p*f*g;break;case"XZY":this._x=p*h*d-c*f*g,this._y=c*f*d-p*h*g,this._z=c*h*g+p*f*d,this._w=c*h*d+p*f*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 f=.5/Math.sqrt(p+1);this._w=.25/f,this._x=(h-l)*f,this._y=(r-c)*f,this._z=(a-s)*f}else if(n>o&&n>d){const f=2*Math.sqrt(1+n-o-d);this._w=(h-l)/f,this._x=.25*f,this._y=(s+a)/f,this._z=(r+c)/f}else if(o>d){const f=2*Math.sqrt(1+o-n-d);this._w=(r-c)/f,this._x=(s+a)/f,this._y=.25*f,this._z=(l+h)/f}else{const f=2*Math.sqrt(1+d-n-o);this._w=(a-s)/f,this._x=(r+c)/f,this._y=(l+h)/f,this._z=.25*f}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 f=1-e;return this._w=f*a+e*this._w,this._x=f*n+e*this._x,this._y=f*s+e*this._y,this._z=f*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(So.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(So.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 Er.copy(this).projectOnVector(t),this.sub(Er)}reflect(t){return this.sub(Er.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 Er=new P,So=new ii;class ri{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,nn),nn.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(ji),vs.subVectors(this.max,ji),hi.subVectors(t.a,ji),ui.subVectors(t.b,ji),di.subVectors(t.c,ji),Rn.subVectors(ui,hi),Cn.subVectors(di,ui),Gn.subVectors(hi,di);let e=[0,-Rn.z,Rn.y,0,-Cn.z,Cn.y,0,-Gn.z,Gn.y,Rn.z,0,-Rn.x,Cn.z,0,-Cn.x,Gn.z,0,-Gn.x,-Rn.y,Rn.x,0,-Cn.y,Cn.x,0,-Gn.y,Gn.x,0];return!br(e,hi,ui,di,vs)||(e=[1,0,0,0,1,0,0,0,1],!br(e,hi,ui,di,vs))?!1:(xs.crossVectors(Rn,Cn),e=[xs.x,xs.y,xs.z],br(e,hi,ui,di,vs))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,nn).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(nn).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:(gn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),gn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),gn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),gn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),gn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),gn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),gn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),gn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(gn),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 gn=[new P,new P,new P,new P,new P,new P,new P,new P],nn=new P,_s=new ri,hi=new P,ui=new P,di=new P,Rn=new P,Cn=new P,Gn=new P,ji=new P,vs=new P,xs=new P,Wn=new P;function br(i,t,e,n,s){for(let r=0,a=i.length-3;r<=a;r+=3){Wn.fromArray(i,r);const o=s.x*Math.abs(Wn.x)+s.y*Math.abs(Wn.y)+s.z*Math.abs(Wn.z),l=t.dot(Wn),c=e.dot(Wn),h=n.dot(Wn);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>o)return!1}return!0}const Nh=new ri,Zi=new P,Tr=new P;class ai{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):Nh.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;Zi.subVectors(t,this.center);const e=Zi.lengthSq();if(e>this.radius*this.radius){const n=Math.sqrt(e),s=(n-this.radius)*.5;this.center.addScaledVector(Zi,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):(Tr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Zi.copy(t.center).add(Tr)),this.expandByPoint(Zi.copy(t.center).sub(Tr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}}const _n=new P,wr=new P,Ms=new P,Pn=new P,Ar=new P,Ss=new P,Rr=new P;class hs{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,_n)),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=_n.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(_n.copy(this.origin).addScaledVector(this.direction,e),_n.distanceToSquared(t))}distanceSqToSegment(t,e,n,s){wr.copy(t).add(e).multiplyScalar(.5),Ms.copy(e).sub(t).normalize(),Pn.copy(this.origin).sub(wr);const r=t.distanceTo(e)*.5,a=-this.direction.dot(Ms),o=Pn.dot(this.direction),l=-Pn.dot(Ms),c=Pn.lengthSq(),h=Math.abs(1-a*a);let d,p,f,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 v=1/h;d*=v,p*=v,f=d*(d+a*p+2*o)+p*(a*d+p+2*l)+c}else p=r,d=Math.max(0,-(a*p+o)),f=-d*d+p*(p+2*l)+c;else p=-r,d=Math.max(0,-(a*p+o)),f=-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),f=-d*d+p*(p+2*l)+c):p<=g?(d=0,p=Math.min(Math.max(-r,-l),r),f=p*(p+2*l)+c):(d=Math.max(0,-(a*r+o)),p=d>0?r:Math.min(Math.max(-r,-l),r),f=-d*d+p*(p+2*l)+c);else p=a>0?-r:r,d=Math.max(0,-(a*p+o)),f=-d*d+p*(p+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,d),s&&s.copy(wr).addScaledVector(Ms,p),f}intersectSphere(t,e){_n.subVectors(t.center,this.origin);const n=_n.dot(this.direction),s=_n.dot(_n)-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,_n)!==null}intersectTriangle(t,e,n,s,r){Ar.subVectors(e,t),Ss.subVectors(n,t),Rr.crossVectors(Ar,Ss);let a=this.direction.dot(Rr),o;if(a>0){if(s)return null;o=1}else if(a<0)o=-1,a=-a;else return null;Pn.subVectors(this.origin,t);const l=o*this.direction.dot(Ss.crossVectors(Pn,Ss));if(l<0)return null;const c=o*this.direction.dot(Ar.cross(Pn));if(c<0||l+c>a)return null;const h=-o*Pn.dot(Rr);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 ee{constructor(t,e,n,s,r,a,o,l,c,h,d,p,f,g,v,m){ee.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,f,g,v,m)}set(t,e,n,s,r,a,o,l,c,h,d,p,f,g,v,m){const u=this.elements;return u[0]=t,u[4]=e,u[8]=n,u[12]=s,u[1]=r,u[5]=a,u[9]=o,u[13]=l,u[2]=c,u[6]=h,u[10]=d,u[14]=p,u[3]=f,u[7]=g,u[11]=v,u[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 ee().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/fi.setFromMatrixColumn(t,0).length(),r=1/fi.setFromMatrixColumn(t,1).length(),a=1/fi.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,f=a*d,g=o*h,v=o*d;e[0]=l*h,e[4]=-l*d,e[8]=c,e[1]=f+g*c,e[5]=p-v*c,e[9]=-o*l,e[2]=v-p*c,e[6]=g+f*c,e[10]=a*l}else if(t.order==="YXZ"){const p=l*h,f=l*d,g=c*h,v=c*d;e[0]=p+v*o,e[4]=g*o-f,e[8]=a*c,e[1]=a*d,e[5]=a*h,e[9]=-o,e[2]=f*o-g,e[6]=v+p*o,e[10]=a*l}else if(t.order==="ZXY"){const p=l*h,f=l*d,g=c*h,v=c*d;e[0]=p-v*o,e[4]=-a*d,e[8]=g+f*o,e[1]=f+g*o,e[5]=a*h,e[9]=v-p*o,e[2]=-a*c,e[6]=o,e[10]=a*l}else if(t.order==="ZYX"){const p=a*h,f=a*d,g=o*h,v=o*d;e[0]=l*h,e[4]=g*c-f,e[8]=p*c+v,e[1]=l*d,e[5]=v*c+p,e[9]=f*c-g,e[2]=-c,e[6]=o*l,e[10]=a*l}else if(t.order==="YZX"){const p=a*l,f=a*c,g=o*l,v=o*c;e[0]=l*h,e[4]=v-p*d,e[8]=g*d+f,e[1]=d,e[5]=a*h,e[9]=-o*h,e[2]=-c*h,e[6]=f*d+g,e[10]=p-v*d}else if(t.order==="XZY"){const p=a*l,f=a*c,g=o*l,v=o*c;e[0]=l*h,e[4]=-d,e[8]=c*h,e[1]=p*d+v,e[5]=a*h,e[9]=f*d-g,e[2]=g*d-f,e[6]=o*h,e[10]=v*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(Fh,t,Oh)}lookAt(t,e,n){const s=this.elements;return We.subVectors(t,e),We.lengthSq()===0&&(We.z=1),We.normalize(),Dn.crossVectors(n,We),Dn.lengthSq()===0&&(Math.abs(n.z)===1?We.x+=1e-4:We.z+=1e-4,We.normalize(),Dn.crossVectors(n,We)),Dn.normalize(),ys.crossVectors(We,Dn),s[0]=Dn.x,s[4]=ys.x,s[8]=We.x,s[1]=Dn.y,s[5]=ys.y,s[9]=We.y,s[2]=Dn.z,s[6]=ys.z,s[10]=We.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],f=n[13],g=n[2],v=n[6],m=n[10],u=n[14],T=n[3],b=n[7],y=n[11],L=n[15],R=s[0],A=s[4],U=s[8],S=s[12],M=s[1],D=s[5],W=s[9],z=s[13],V=s[2],$=s[6],G=s[10],J=s[14],k=s[3],it=s[7],ut=s[11],yt=s[15];return r[0]=a*R+o*M+l*V+c*k,r[4]=a*A+o*D+l*$+c*it,r[8]=a*U+o*W+l*G+c*ut,r[12]=a*S+o*z+l*J+c*yt,r[1]=h*R+d*M+p*V+f*k,r[5]=h*A+d*D+p*$+f*it,r[9]=h*U+d*W+p*G+f*ut,r[13]=h*S+d*z+p*J+f*yt,r[2]=g*R+v*M+m*V+u*k,r[6]=g*A+v*D+m*$+u*it,r[10]=g*U+v*W+m*G+u*ut,r[14]=g*S+v*z+m*J+u*yt,r[3]=T*R+b*M+y*V+L*k,r[7]=T*A+b*D+y*$+L*it,r[11]=T*U+b*W+y*G+L*ut,r[15]=T*S+b*z+y*J+L*yt,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],f=t[14],g=t[3],v=t[7],m=t[11],u=t[15];return g*(+r*l*d-s*c*d-r*o*p+n*c*p+s*o*f-n*l*f)+v*(+e*l*f-e*c*p+r*a*p-s*a*f+s*c*h-r*l*h)+m*(+e*c*d-e*o*f-r*a*d+n*a*f+r*o*h-n*c*h)+u*(-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],f=t[11],g=t[12],v=t[13],m=t[14],u=t[15],T=d*m*c-v*p*c+v*l*f-o*m*f-d*l*u+o*p*u,b=g*p*c-h*m*c-g*l*f+a*m*f+h*l*u-a*p*u,y=h*v*c-g*d*c+g*o*f-a*v*f-h*o*u+a*d*u,L=g*d*l-h*v*l-g*o*p+a*v*p+h*o*m-a*d*m,R=e*T+n*b+s*y+r*L;if(R===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const A=1/R;return t[0]=T*A,t[1]=(v*p*r-d*m*r-v*s*f+n*m*f+d*s*u-n*p*u)*A,t[2]=(o*m*r-v*l*r+v*s*c-n*m*c-o*s*u+n*l*u)*A,t[3]=(d*l*r-o*p*r-d*s*c+n*p*c+o*s*f-n*l*f)*A,t[4]=b*A,t[5]=(h*m*r-g*p*r+g*s*f-e*m*f-h*s*u+e*p*u)*A,t[6]=(g*l*r-a*m*r-g*s*c+e*m*c+a*s*u-e*l*u)*A,t[7]=(a*p*r-h*l*r+h*s*c-e*p*c-a*s*f+e*l*f)*A,t[8]=y*A,t[9]=(g*d*r-h*v*r-g*n*f+e*v*f+h*n*u-e*d*u)*A,t[10]=(a*v*r-g*o*r+g*n*c-e*v*c-a*n*u+e*o*u)*A,t[11]=(h*o*r-a*d*r-h*n*c+e*d*c+a*n*f-e*o*f)*A,t[12]=L*A,t[13]=(h*v*s-g*d*s+g*n*p-e*v*p-h*n*m+e*d*m)*A,t[14]=(g*o*s-a*v*s-g*n*l+e*v*l+a*n*m-e*o*m)*A,t[15]=(a*d*s-h*o*s+h*n*l-e*d*l-a*n*p+e*o*p)*A,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,f=r*h,g=r*d,v=a*h,m=a*d,u=o*d,T=l*c,b=l*h,y=l*d,L=n.x,R=n.y,A=n.z;return s[0]=(1-(v+u))*L,s[1]=(f+y)*L,s[2]=(g-b)*L,s[3]=0,s[4]=(f-y)*R,s[5]=(1-(p+u))*R,s[6]=(m+T)*R,s[7]=0,s[8]=(g+b)*A,s[9]=(m-T)*A,s[10]=(1-(p+v))*A,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=fi.set(s[0],s[1],s[2]).length();const a=fi.set(s[4],s[5],s[6]).length(),o=fi.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],sn.copy(this);const c=1/r,h=1/a,d=1/o;return sn.elements[0]*=c,sn.elements[1]*=c,sn.elements[2]*=c,sn.elements[4]*=h,sn.elements[5]*=h,sn.elements[6]*=h,sn.elements[8]*=d,sn.elements[9]*=d,sn.elements[10]*=d,e.setFromRotationMatrix(sn),n.x=r,n.y=a,n.z=o,this}makePerspective(t,e,n,s,r,a,o=En){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 f,g;if(o===En)f=-(a+r)/(a-r),g=-2*a*r/(a-r);else if(o===sr)f=-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]=f,l[14]=g,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,n,s,r,a,o=En){const l=this.elements,c=1/(e-t),h=1/(n-s),d=1/(a-r),p=(e+t)*c,f=(n+s)*h;let g,v;if(o===En)g=(a+r)*d,v=-2*d;else if(o===sr)g=r*d,v=-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]=-f,l[2]=0,l[6]=0,l[10]=v,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 fi=new P,sn=new ee,Fh=new P(0,0,0),Oh=new P(1,1,1),Dn=new P,ys=new P,We=new P,yo=new ee,Eo=new ii;class pn{constructor(t=0,e=0,n=0,s=pn.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],f=s[10];switch(e){case"XYZ":this._y=Math.asin(Yt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,f),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,f),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,f),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,f),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,f));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,f),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 yo.makeRotationFromQuaternion(t),this.setFromRotationMatrix(yo,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Eo.setFromEuler(this),this.setFromQuaternion(Eo,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}}pn.DEFAULT_ORDER="XYZ";class to{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),f.length>0&&(n.animations=f),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){rn.subVectors(s,e),xn.subVectors(n,e),Pr.subVectors(t,e);const a=rn.dot(rn),o=rn.dot(xn),l=rn.dot(Pr),c=xn.dot(xn),h=xn.dot(Pr),d=a*c-o*o;if(d===0)return r.set(0,0,0),null;const p=1/d,f=(c*l-o*h)*p,g=(a*h-o*l)*p;return r.set(1-f-g,g,f)}static containsPoint(t,e,n,s){return this.getBarycoord(t,e,n,s,Mn)===null?!1:Mn.x>=0&&Mn.y>=0&&Mn.x+Mn.y<=1}static getInterpolation(t,e,n,s,r,a,o,l){return this.getBarycoord(t,e,n,s,Mn)===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,Mn.x),l.addScaledVector(a,Mn.y),l.addScaledVector(o,Mn.z),l)}static getInterpolatedAttribute(t,e,n,s,r,a){return Ir.setScalar(0),Nr.setScalar(0),Fr.setScalar(0),Ir.fromBufferAttribute(t,e),Nr.fromBufferAttribute(t,n),Fr.fromBufferAttribute(t,s),a.setScalar(0),a.addScaledVector(Ir,r.x),a.addScaledVector(Nr,r.y),a.addScaledVector(Fr,r.z),a}static isFrontFacing(t,e,n,s){return rn.subVectors(n,e),xn.subVectors(t,e),rn.cross(xn).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 rn.subVectors(this.c,this.b),xn.subVectors(this.a,this.b),rn.cross(xn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return tn.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return tn.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,s,r){return tn.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}containsPoint(t){return tn.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return tn.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;gi.subVectors(s,n),_i.subVectors(r,n),Dr.subVectors(t,n);const l=gi.dot(Dr),c=_i.dot(Dr);if(l<=0&&c<=0)return e.copy(n);Lr.subVectors(t,s);const h=gi.dot(Lr),d=_i.dot(Lr);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(gi,a);Ur.subVectors(t,r);const f=gi.dot(Ur),g=_i.dot(Ur);if(g>=0&&f<=g)return e.copy(r);const v=f*c-l*g;if(v<=0&&c>=0&&g<=0)return o=c/(c-g),e.copy(n).addScaledVector(_i,o);const m=h*g-f*d;if(m<=0&&d-h>=0&&f-g>=0)return Co.subVectors(r,s),o=(d-h)/(d-h+(f-g)),e.copy(s).addScaledVector(Co,o);const u=1/(m+v+p);return a=v*u,o=p*u,e.copy(n).addScaledVector(gi,a).addScaledVector(_i,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const ec={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},Ln={h:0,s:0,l:0},bs={h:0,s:0,l:0};function Or(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 pt{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=Qe){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,$t.toWorkingColorSpace(this,e),this}setRGB(t,e,n,s=$t.workingColorSpace){return this.r=t,this.g=e,this.b=n,$t.toWorkingColorSpace(this,s),this}setHSL(t,e,n,s=$t.workingColorSpace){if(t=Eh(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=Or(a,r,t+1/3),this.g=Or(a,r,t),this.b=Or(a,r,t-1/3)}return $t.toWorkingColorSpace(this,s),this}setStyle(t,e=Qe){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=Qe){const n=ec[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=wn(t.r),this.g=wn(t.g),this.b=wn(t.b),this}copyLinearToSRGB(t){return this.r=Ni(t.r),this.g=Ni(t.g),this.b=Ni(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Qe){return $t.fromWorkingColorSpace(Ce.copy(this),t),Math.round(Yt(Ce.r*255,0,255))*65536+Math.round(Yt(Ce.g*255,0,255))*256+Math.round(Yt(Ce.b*255,0,255))}getHexString(t=Qe){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=$t.workingColorSpace){$t.fromWorkingColorSpace(Ce.copy(this),e);const n=Ce.r,s=Ce.g,r=Ce.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!==Ui&&(n.blending=this.blending),this.side!==zn&&(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!==ea&&(n.blendSrc=this.blendSrc),this.blendDst!==na&&(n.blendDst=this.blendDst),this.blendEquation!==Kn&&(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!==Oi&&(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!==go&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==li&&(n.stencilFail=this.stencilFail),this.stencilZFail!==li&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==li&&(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 cs extends Hn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new pt(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 pn,this.combine=Bl,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 ge=new P,Ts=new vt;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=Ha,this.updateRanges=[],this.gpuType=fn,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 ri);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,f=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))&&(Po.copy(r).invert(),Xn.copy(t.ray).applyMatrix4(Po),!(n.boundingBox!==null&&Xn.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,Xn)))}_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,f=r.drawRange;if(o!==null)if(Array.isArray(a))for(let g=0,v=p.length;ge.far?null:{distance:c,point:Ds.clone(),object:i}}function Ls(i,t,e,n,s,r,a,o,l,c){i.getVertexPosition(o,As),i.getVertexPosition(l,Rs),i.getVertexPosition(c,Cs);const h=Wh(i,t,e,n,As,Rs,Cs,Lo);if(h){const d=new P;tn.getBarycoord(Lo,As,Rs,Cs,d),s&&(h.uv=tn.getInterpolatedAttribute(s,o,l,c,d,new vt)),r&&(h.uv1=tn.getInterpolatedAttribute(r,o,l,c,d,new vt)),a&&(h.normal=tn.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};tn.getNormal(As,Rs,Cs,p.normal),h.face=p,h.barycoord=d}return h}class us extends pe{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,f=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 Pe(c,3)),this.setAttribute("normal",new Pe(h,3)),this.setAttribute("uv",new Pe(d,2));function g(v,m,u,T,b,y,L,R,A,U,S){const M=y/A,D=L/U,W=y/2,z=L/2,V=R/2,$=A+1,G=U+1;let J=0,k=0;const it=new P;for(let ut=0;ut0?1:-1,h.push(it.x,it.y,it.z),d.push(Lt/A),d.push(1-ut/U),J+=1}}for(let ut=0;ut>8&255]+Re[i>>16&255]+Re[i>>24&255]+"-"+Re[t&255]+Re[t>>8&255]+"-"+Re[t>>16&15|64]+Re[t>>24&255]+"-"+Re[e&63|128]+Re[e>>8&255]+"-"+Re[e>>16&255]+Re[e>>24&255]+Re[n&255]+Re[n>>8&255]+Re[n>>16&255]+Re[n>>24&255]).toLowerCase()}function Yt(i,t,e){return Math.max(t,Math.min(e,i))}function Eh(i,t){return(i%t+t)%t}function Mr(i,t,e){return(1-e)*i+e*t}function un(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 ae(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 bh={DEG2RAD:Js};class vt{constructor(t=0,e=0){vt.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 kt{constructor(t,e,n,s,r,a,o,l,c){kt.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],f=n[7],p=n[2],u=n[5],g=n[8],_=s[0],m=s[3],d=s[6],T=s[1],E=s[4],y=s[7],L=s[2],R=s[5],A=s[8];return r[0]=a*_+o*T+l*L,r[3]=a*m+o*E+l*R,r[6]=a*d+o*y+l*A,r[1]=c*_+h*T+f*L,r[4]=c*m+h*E+f*R,r[7]=c*d+h*y+f*A,r[2]=p*_+u*T+g*L,r[5]=p*m+u*E+g*R,r[8]=p*d+u*y+g*A,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],f=h*a-o*c,p=o*l-h*r,u=c*r-a*l,g=e*f+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]=f*_,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(Sr.makeScale(t,e)),this}rotate(t){return this.premultiply(Sr.makeRotation(-t)),this}translate(t,e){return this.premultiply(Sr.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 Sr=new kt;function Jl(i){for(let t=i.length-1;t>=0;--t)if(i[t]>=65535)return!0;return!1}function rr(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}function Th(){const i=rr("canvas");return i.style.display="block",i}const vo={};function Ri(i){i in vo||(vo[i]=!0,console.warn(i))}function wh(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 Ah(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 Rh(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 xo=new kt().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Mo=new kt().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Ch(){const i={enabled:!0,workingColorSpace:Vi,spaces:{},convert:function(s,r,a){return this.enabled===!1||r===a||!r||!a||(this.spaces[r].transfer===re&&(s.r=wn(s.r),s.g=wn(s.g),s.b=wn(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===re&&(s.r=Ni(s.r),s.g=Ni(s.g),s.b=Ni(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===Fn?ir: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({[Vi]:{primaries:t,whitePoint:n,transfer:ir,toXYZ:xo,fromXYZ:Mo,luminanceCoefficients:e,workingColorSpaceConfig:{unpackColorSpace:Qe},outputColorSpaceConfig:{drawingBufferColorSpace:Qe}},[Qe]:{primaries:t,whitePoint:n,transfer:re,toXYZ:xo,fromXYZ:Mo,luminanceCoefficients:e,outputColorSpaceConfig:{drawingBufferColorSpace:Qe}}}),i}const $t=Ch();function wn(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function Ni(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}let ci;class Ph{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{ci===void 0&&(ci=rr("canvas")),ci.width=t.width,ci.height=t.height;const n=ci.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=ci}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=rr("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!==kl)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case da:t.x=t.x-Math.floor(t.x);break;case Jn:t.x=t.x<0?0:1;break;case fa: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 da:t.y=t.y-Math.floor(t.y);break;case Jn:t.y=t.y<0?0:1;break;case fa: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++}}Te.DEFAULT_IMAGE=null;Te.DEFAULT_MAPPING=kl;Te.DEFAULT_ANISOTROPY=1;class le{constructor(t=0,e=0,n=0,s=1){le.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],f=l[8],p=l[1],u=l[5],g=l[9],_=l[2],m=l[6],d=l[10];if(Math.abs(h-p)<.01&&Math.abs(f-_)<.01&&Math.abs(g-m)<.01){if(Math.abs(h+p)<.1&&Math.abs(f+_)<.1&&Math.abs(g+m)<.1&&Math.abs(c+u+d-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const E=(c+1)/2,y=(u+1)/2,L=(d+1)/2,R=(h+p)/4,A=(f+_)/4,U=(g+m)/4;return E>y&&E>L?E<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(E),s=R/n,r=A/n):y>L?y<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(y),n=R/s,r=U/s):L<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(L),n=A/r,s=U/r),this.set(n,s,r,e),this}let T=Math.sqrt((m-g)*(m-g)+(f-_)*(f-_)+(p-h)*(p-h));return Math.abs(T)<.001&&(T=1),this.x=(m-g)/T,this.y=(f-_)/T,this.z=(p-h)/T,this.w=Math.acos((c+u+d-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 Uh extends si{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new le(0,0,t,e),this.scissorTest=!1,this.viewport=new le(0,0,t,e);const s={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:dn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const r=new Te(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-d*d;if(E>Number.EPSILON){const L=Math.sqrt(E),R=Math.atan2(L,d*T);m=Math.sin(m*R)/L,o=Math.sin(o*R)/L}const y=o*T;if(l=l*m+p*y,c=c*m+u*y,h=h*m+g*y,f=f*m+_*y,m===1-o){const L=1/Math.sqrt(l*l+c*c+h*h+f*f);l*=L,c*=L,h*=L,f*=L}}t[e]=l,t[e+1]=c,t[e+2]=h,t[e+3]=f}static multiplyQuaternionsFlat(t,e,n,s,r,a){const o=n[s],l=n[s+1],c=n[s+2],h=n[s+3],f=r[a],p=r[a+1],u=r[a+2],g=r[a+3];return t[e]=o*g+h*f+l*u-c*p,t[e+1]=l*g+h*p+c*f-o*u,t[e+2]=c*g+h*u+o*p-l*f,t[e+3]=h*g-o*f-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),f=o(r/2),p=l(n/2),u=l(s/2),g=l(r/2);switch(a){case"XYZ":this._x=p*h*f+c*u*g,this._y=c*u*f-p*h*g,this._z=c*h*g+p*u*f,this._w=c*h*f-p*u*g;break;case"YXZ":this._x=p*h*f+c*u*g,this._y=c*u*f-p*h*g,this._z=c*h*g-p*u*f,this._w=c*h*f+p*u*g;break;case"ZXY":this._x=p*h*f-c*u*g,this._y=c*u*f+p*h*g,this._z=c*h*g+p*u*f,this._w=c*h*f-p*u*g;break;case"ZYX":this._x=p*h*f-c*u*g,this._y=c*u*f+p*h*g,this._z=c*h*g-p*u*f,this._w=c*h*f+p*u*g;break;case"YZX":this._x=p*h*f+c*u*g,this._y=c*u*f+p*h*g,this._z=c*h*g-p*u*f,this._w=c*h*f-p*u*g;break;case"XZY":this._x=p*h*f-c*u*g,this._y=c*u*f-p*h*g,this._z=c*h*g+p*u*f,this._w=c*h*f+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],f=e[10],p=n+o+f;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>f){const u=2*Math.sqrt(1+n-o-f);this._w=(h-l)/u,this._x=.25*u,this._y=(s+a)/u,this._z=(r+c)/u}else if(o>f){const u=2*Math.sqrt(1+o-n-f);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+f-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),f=Math.sin((1-e)*h)/c,p=Math.sin(e*h)/c;return this._w=a*f+this._w*p,this._x=n*f+this._x*p,this._y=s*f+this._y*p,this._z=r*f+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(So.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(So.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),f=2*(r*n-a*e);return this.x=e+l*c+a*f-o*h,this.y=n+l*h+o*c-r*f,this.z=s+l*f+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 Er.copy(this).projectOnVector(t),this.sub(Er)}reflect(t){return this.sub(Er.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 Er=new P,So=new ii;class ri{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,nn),nn.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(ji),vs.subVectors(this.max,ji),hi.subVectors(t.a,ji),ui.subVectors(t.b,ji),di.subVectors(t.c,ji),Rn.subVectors(ui,hi),Cn.subVectors(di,ui),Gn.subVectors(hi,di);let e=[0,-Rn.z,Rn.y,0,-Cn.z,Cn.y,0,-Gn.z,Gn.y,Rn.z,0,-Rn.x,Cn.z,0,-Cn.x,Gn.z,0,-Gn.x,-Rn.y,Rn.x,0,-Cn.y,Cn.x,0,-Gn.y,Gn.x,0];return!br(e,hi,ui,di,vs)||(e=[1,0,0,0,1,0,0,0,1],!br(e,hi,ui,di,vs))?!1:(xs.crossVectors(Rn,Cn),e=[xs.x,xs.y,xs.z],br(e,hi,ui,di,vs))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,nn).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(nn).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:(gn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),gn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),gn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),gn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),gn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),gn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),gn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),gn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(gn),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 gn=[new P,new P,new P,new P,new P,new P,new P,new P],nn=new P,_s=new ri,hi=new P,ui=new P,di=new P,Rn=new P,Cn=new P,Gn=new P,ji=new P,vs=new P,xs=new P,Wn=new P;function br(i,t,e,n,s){for(let r=0,a=i.length-3;r<=a;r+=3){Wn.fromArray(i,r);const o=s.x*Math.abs(Wn.x)+s.y*Math.abs(Wn.y)+s.z*Math.abs(Wn.z),l=t.dot(Wn),c=e.dot(Wn),h=n.dot(Wn);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>o)return!1}return!0}const Nh=new ri,Zi=new P,Tr=new P;class ai{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):Nh.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;Zi.subVectors(t,this.center);const e=Zi.lengthSq();if(e>this.radius*this.radius){const n=Math.sqrt(e),s=(n-this.radius)*.5;this.center.addScaledVector(Zi,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):(Tr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Zi.copy(t.center).add(Tr)),this.expandByPoint(Zi.copy(t.center).sub(Tr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}}const _n=new P,wr=new P,Ms=new P,Pn=new P,Ar=new P,Ss=new P,Rr=new P;class hs{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,_n)),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=_n.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(_n.copy(this.origin).addScaledVector(this.direction,e),_n.distanceToSquared(t))}distanceSqToSegment(t,e,n,s){wr.copy(t).add(e).multiplyScalar(.5),Ms.copy(e).sub(t).normalize(),Pn.copy(this.origin).sub(wr);const r=t.distanceTo(e)*.5,a=-this.direction.dot(Ms),o=Pn.dot(this.direction),l=-Pn.dot(Ms),c=Pn.lengthSq(),h=Math.abs(1-a*a);let f,p,u,g;if(h>0)if(f=a*l-o,p=a*o-l,g=r*h,f>=0)if(p>=-g)if(p<=g){const _=1/h;f*=_,p*=_,u=f*(f+a*p+2*o)+p*(a*f+p+2*l)+c}else p=r,f=Math.max(0,-(a*p+o)),u=-f*f+p*(p+2*l)+c;else p=-r,f=Math.max(0,-(a*p+o)),u=-f*f+p*(p+2*l)+c;else p<=-g?(f=Math.max(0,-(-a*r+o)),p=f>0?-r:Math.min(Math.max(-r,-l),r),u=-f*f+p*(p+2*l)+c):p<=g?(f=0,p=Math.min(Math.max(-r,-l),r),u=p*(p+2*l)+c):(f=Math.max(0,-(a*r+o)),p=f>0?r:Math.min(Math.max(-r,-l),r),u=-f*f+p*(p+2*l)+c);else p=a>0?-r:r,f=Math.max(0,-(a*p+o)),u=-f*f+p*(p+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,f),s&&s.copy(wr).addScaledVector(Ms,p),u}intersectSphere(t,e){_n.subVectors(t.center,this.origin);const n=_n.dot(this.direction),s=_n.dot(_n)-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,f=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)*f,l=(t.max.z-p.z)*f):(o=(t.max.z-p.z)*f,l=(t.min.z-p.z)*f),n>l||o>s)||((o>n||n!==n)&&(n=o),(l=0?n:s,e)}intersectsBox(t){return this.intersectBox(t,_n)!==null}intersectTriangle(t,e,n,s,r){Ar.subVectors(e,t),Ss.subVectors(n,t),Rr.crossVectors(Ar,Ss);let a=this.direction.dot(Rr),o;if(a>0){if(s)return null;o=1}else if(a<0)o=-1,a=-a;else return null;Pn.subVectors(this.origin,t);const l=o*this.direction.dot(Ss.crossVectors(Pn,Ss));if(l<0)return null;const c=o*this.direction.dot(Ar.cross(Pn));if(c<0||l+c>a)return null;const h=-o*Pn.dot(Rr);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 ee{constructor(t,e,n,s,r,a,o,l,c,h,f,p,u,g,_,m){ee.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,f,p,u,g,_,m)}set(t,e,n,s,r,a,o,l,c,h,f,p,u,g,_,m){const d=this.elements;return d[0]=t,d[4]=e,d[8]=n,d[12]=s,d[1]=r,d[5]=a,d[9]=o,d[13]=l,d[2]=c,d[6]=h,d[10]=f,d[14]=p,d[3]=u,d[7]=g,d[11]=_,d[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 ee().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/fi.setFromMatrixColumn(t,0).length(),r=1/fi.setFromMatrixColumn(t,1).length(),a=1/fi.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),f=Math.sin(r);if(t.order==="XYZ"){const p=a*h,u=a*f,g=o*h,_=o*f;e[0]=l*h,e[4]=-l*f,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*f,g=c*h,_=c*f;e[0]=p+_*o,e[4]=g*o-u,e[8]=a*c,e[1]=a*f,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*f,g=c*h,_=c*f;e[0]=p-_*o,e[4]=-a*f,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*f,g=o*h,_=o*f;e[0]=l*h,e[4]=g*c-u,e[8]=p*c+_,e[1]=l*f,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*f,e[8]=g*f+u,e[1]=f,e[5]=a*h,e[9]=-o*h,e[2]=-c*h,e[6]=u*f+g,e[10]=p-_*f}else if(t.order==="XZY"){const p=a*l,u=a*c,g=o*l,_=o*c;e[0]=l*h,e[4]=-f,e[8]=c*h,e[1]=p*f+_,e[5]=a*h,e[9]=u*f-g,e[2]=g*f-u,e[6]=o*h,e[10]=_*f+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(Fh,t,Oh)}lookAt(t,e,n){const s=this.elements;return We.subVectors(t,e),We.lengthSq()===0&&(We.z=1),We.normalize(),Dn.crossVectors(n,We),Dn.lengthSq()===0&&(Math.abs(n.z)===1?We.x+=1e-4:We.z+=1e-4,We.normalize(),Dn.crossVectors(n,We)),Dn.normalize(),ys.crossVectors(We,Dn),s[0]=Dn.x,s[4]=ys.x,s[8]=We.x,s[1]=Dn.y,s[5]=ys.y,s[9]=We.y,s[2]=Dn.z,s[6]=ys.z,s[10]=We.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],f=n[5],p=n[9],u=n[13],g=n[2],_=n[6],m=n[10],d=n[14],T=n[3],E=n[7],y=n[11],L=n[15],R=s[0],A=s[4],U=s[8],S=s[12],M=s[1],D=s[5],W=s[9],z=s[13],V=s[2],$=s[6],G=s[10],J=s[14],H=s[3],it=s[7],dt=s[11],yt=s[15];return r[0]=a*R+o*M+l*V+c*H,r[4]=a*A+o*D+l*$+c*it,r[8]=a*U+o*W+l*G+c*dt,r[12]=a*S+o*z+l*J+c*yt,r[1]=h*R+f*M+p*V+u*H,r[5]=h*A+f*D+p*$+u*it,r[9]=h*U+f*W+p*G+u*dt,r[13]=h*S+f*z+p*J+u*yt,r[2]=g*R+_*M+m*V+d*H,r[6]=g*A+_*D+m*$+d*it,r[10]=g*U+_*W+m*G+d*dt,r[14]=g*S+_*z+m*J+d*yt,r[3]=T*R+E*M+y*V+L*H,r[7]=T*A+E*D+y*$+L*it,r[11]=T*U+E*W+y*G+L*dt,r[15]=T*S+E*z+y*J+L*yt,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],f=t[6],p=t[10],u=t[14],g=t[3],_=t[7],m=t[11],d=t[15];return g*(+r*l*f-s*c*f-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*f-e*o*u-r*a*f+n*a*u+r*o*h-n*c*h)+d*(-s*o*h-e*l*f+e*o*p+s*a*f-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],f=t[9],p=t[10],u=t[11],g=t[12],_=t[13],m=t[14],d=t[15],T=f*m*c-_*p*c+_*l*u-o*m*u-f*l*d+o*p*d,E=g*p*c-h*m*c-g*l*u+a*m*u+h*l*d-a*p*d,y=h*_*c-g*f*c+g*o*u-a*_*u-h*o*d+a*f*d,L=g*f*l-h*_*l-g*o*p+a*_*p+h*o*m-a*f*m,R=e*T+n*E+s*y+r*L;if(R===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const A=1/R;return t[0]=T*A,t[1]=(_*p*r-f*m*r-_*s*u+n*m*u+f*s*d-n*p*d)*A,t[2]=(o*m*r-_*l*r+_*s*c-n*m*c-o*s*d+n*l*d)*A,t[3]=(f*l*r-o*p*r-f*s*c+n*p*c+o*s*u-n*l*u)*A,t[4]=E*A,t[5]=(h*m*r-g*p*r+g*s*u-e*m*u-h*s*d+e*p*d)*A,t[6]=(g*l*r-a*m*r-g*s*c+e*m*c+a*s*d-e*l*d)*A,t[7]=(a*p*r-h*l*r+h*s*c-e*p*c-a*s*u+e*l*u)*A,t[8]=y*A,t[9]=(g*f*r-h*_*r-g*n*u+e*_*u+h*n*d-e*f*d)*A,t[10]=(a*_*r-g*o*r+g*n*c-e*_*c-a*n*d+e*o*d)*A,t[11]=(h*o*r-a*f*r-h*n*c+e*f*c+a*n*u-e*o*u)*A,t[12]=L*A,t[13]=(h*_*s-g*f*s+g*n*p-e*_*p-h*n*m+e*f*m)*A,t[14]=(g*o*s-a*_*s-g*n*l+e*_*l+a*n*m-e*o*m)*A,t[15]=(a*f*s-h*o*s+h*n*l-e*f*l-a*n*p+e*o*p)*A,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,f=o+o,p=r*c,u=r*h,g=r*f,_=a*h,m=a*f,d=o*f,T=l*c,E=l*h,y=l*f,L=n.x,R=n.y,A=n.z;return s[0]=(1-(_+d))*L,s[1]=(u+y)*L,s[2]=(g-E)*L,s[3]=0,s[4]=(u-y)*R,s[5]=(1-(p+d))*R,s[6]=(m+T)*R,s[7]=0,s[8]=(g+E)*A,s[9]=(m-T)*A,s[10]=(1-(p+_))*A,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=fi.set(s[0],s[1],s[2]).length();const a=fi.set(s[4],s[5],s[6]).length(),o=fi.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],sn.copy(this);const c=1/r,h=1/a,f=1/o;return sn.elements[0]*=c,sn.elements[1]*=c,sn.elements[2]*=c,sn.elements[4]*=h,sn.elements[5]*=h,sn.elements[6]*=h,sn.elements[8]*=f,sn.elements[9]*=f,sn.elements[10]*=f,e.setFromRotationMatrix(sn),n.x=r,n.y=a,n.z=o,this}makePerspective(t,e,n,s,r,a,o=En){const l=this.elements,c=2*r/(e-t),h=2*r/(n-s),f=(e+t)/(e-t),p=(n+s)/(n-s);let u,g;if(o===En)u=-(a+r)/(a-r),g=-2*a*r/(a-r);else if(o===sr)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]=f,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=En){const l=this.elements,c=1/(e-t),h=1/(n-s),f=1/(a-r),p=(e+t)*c,u=(n+s)*h;let g,_;if(o===En)g=(a+r)*f,_=-2*f;else if(o===sr)g=r*f,_=-1*f;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 fi=new P,sn=new ee,Fh=new P(0,0,0),Oh=new P(1,1,1),Dn=new P,ys=new P,We=new P,yo=new ee,Eo=new ii;class pn{constructor(t=0,e=0,n=0,s=pn.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],f=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(-f,r),this._z=0);break;case"ZXY":this._x=Math.asin(Yt(p,-1,1)),Math.abs(p)<.9999999?(this._y=Math.atan2(-f,u),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,r));break;case"ZYX":this._y=Math.asin(-Yt(f,-1,1)),Math.abs(f)<.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(-f,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 yo.makeRotationFromQuaternion(t),this.setFromRotationMatrix(yo,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Eo.setFromEuler(this),this.setFromQuaternion(Eo,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}}pn.DEFAULT_ORDER="XYZ";class to{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),f.length>0&&(n.shapes=f),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){rn.subVectors(s,e),xn.subVectors(n,e),Pr.subVectors(t,e);const a=rn.dot(rn),o=rn.dot(xn),l=rn.dot(Pr),c=xn.dot(xn),h=xn.dot(Pr),f=a*c-o*o;if(f===0)return r.set(0,0,0),null;const p=1/f,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,Mn)===null?!1:Mn.x>=0&&Mn.y>=0&&Mn.x+Mn.y<=1}static getInterpolation(t,e,n,s,r,a,o,l){return this.getBarycoord(t,e,n,s,Mn)===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,Mn.x),l.addScaledVector(a,Mn.y),l.addScaledVector(o,Mn.z),l)}static getInterpolatedAttribute(t,e,n,s,r,a){return Ir.setScalar(0),Nr.setScalar(0),Fr.setScalar(0),Ir.fromBufferAttribute(t,e),Nr.fromBufferAttribute(t,n),Fr.fromBufferAttribute(t,s),a.setScalar(0),a.addScaledVector(Ir,r.x),a.addScaledVector(Nr,r.y),a.addScaledVector(Fr,r.z),a}static isFrontFacing(t,e,n,s){return rn.subVectors(n,e),xn.subVectors(t,e),rn.cross(xn).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 rn.subVectors(this.c,this.b),xn.subVectors(this.a,this.b),rn.cross(xn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return tn.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return tn.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,s,r){return tn.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}containsPoint(t){return tn.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return tn.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;gi.subVectors(s,n),_i.subVectors(r,n),Dr.subVectors(t,n);const l=gi.dot(Dr),c=_i.dot(Dr);if(l<=0&&c<=0)return e.copy(n);Lr.subVectors(t,s);const h=gi.dot(Lr),f=_i.dot(Lr);if(h>=0&&f<=h)return e.copy(s);const p=l*f-h*c;if(p<=0&&l>=0&&h<=0)return a=l/(l-h),e.copy(n).addScaledVector(gi,a);Ur.subVectors(t,r);const u=gi.dot(Ur),g=_i.dot(Ur);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(_i,o);const m=h*g-u*f;if(m<=0&&f-h>=0&&u-g>=0)return Co.subVectors(r,s),o=(f-h)/(f-h+(u-g)),e.copy(s).addScaledVector(Co,o);const d=1/(m+_+p);return a=_*d,o=p*d,e.copy(n).addScaledVector(gi,a).addScaledVector(_i,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const ec={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},Ln={h:0,s:0,l:0},bs={h:0,s:0,l:0};function Or(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 at{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=Qe){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,$t.toWorkingColorSpace(this,e),this}setRGB(t,e,n,s=$t.workingColorSpace){return this.r=t,this.g=e,this.b=n,$t.toWorkingColorSpace(this,s),this}setHSL(t,e,n,s=$t.workingColorSpace){if(t=Eh(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=Or(a,r,t+1/3),this.g=Or(a,r,t),this.b=Or(a,r,t-1/3)}return $t.toWorkingColorSpace(this,s),this}setStyle(t,e=Qe){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=Qe){const n=ec[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=wn(t.r),this.g=wn(t.g),this.b=wn(t.b),this}copyLinearToSRGB(t){return this.r=Ni(t.r),this.g=Ni(t.g),this.b=Ni(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Qe){return $t.fromWorkingColorSpace(Ce.copy(this),t),Math.round(Yt(Ce.r*255,0,255))*65536+Math.round(Yt(Ce.g*255,0,255))*256+Math.round(Yt(Ce.b*255,0,255))}getHexString(t=Qe){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=$t.workingColorSpace){$t.fromWorkingColorSpace(Ce.copy(this),e);const n=Ce.r,s=Ce.g,r=Ce.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 f=a-o;switch(c=h<=.5?f/(a+o):f/(2-a-o),a){case n:l=(s-r)/f+(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!==Ui&&(n.blending=this.blending),this.side!==zn&&(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!==ea&&(n.blendSrc=this.blendSrc),this.blendDst!==na&&(n.blendDst=this.blendDst),this.blendEquation!==Kn&&(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!==Oi&&(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!==go&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==li&&(n.stencilFail=this.stencilFail),this.stencilZFail!==li&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==li&&(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 cs extends kn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new at(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 pn,this.combine=Bl,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 ge=new P,Ts=new vt;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=ka,this.updateRanges=[],this.gpuType=fn,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 ri);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 f=0,p=c.length;f0&&(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=[],f=r[c];for(let p=0,u=f.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))&&(Po.copy(r).invert(),Xn.copy(t.ray).applyMatrix4(Po),!(n.boundingBox!==null&&Xn.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,Xn)))}_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,f=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],d=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,L=E;ye.far?null:{distance:c,point:Ds.clone(),object:i}}function Ls(i,t,e,n,s,r,a,o,l,c){i.getVertexPosition(o,As),i.getVertexPosition(l,Rs),i.getVertexPosition(c,Cs);const h=Wh(i,t,e,n,As,Rs,Cs,Lo);if(h){const f=new P;tn.getBarycoord(Lo,As,Rs,Cs,f),s&&(h.uv=tn.getInterpolatedAttribute(s,o,l,c,f,new vt)),r&&(h.uv1=tn.getInterpolatedAttribute(r,o,l,c,f,new vt)),a&&(h.normal=tn.getInterpolatedAttribute(a,o,l,c,f,new P),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));const p={a:o,b:l,c,normal:new P,materialIndex:0};tn.getNormal(As,Rs,Cs,p.normal),h.face=p,h.barycoord=f}return h}class us extends pe{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=[],f=[];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 Pe(c,3)),this.setAttribute("normal",new Pe(h,3)),this.setAttribute("uv",new Pe(f,2));function g(_,m,d,T,E,y,L,R,A,U,S){const M=y/A,D=L/U,W=y/2,z=L/2,V=R/2,$=A+1,G=U+1;let J=0,H=0;const it=new P;for(let dt=0;dt0?1:-1,h.push(it.x,it.y,it.z),f.push(Lt/A),f.push(1-dt/U),J+=1}}for(let dt=0;dt0&&(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 rc extends Ae{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ee,this.projectionMatrix=new ee,this.projectionMatrixInverse=new ee,this.coordinateSystem=En}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 Un=new P,Uo=new vt,Io=new vt;class Ye extends rc{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=ka*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(Js*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return ka*2*Math.atan(Math.tan(Js*.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){Un.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Un.x,Un.y).multiplyScalar(-t/Un.z),Un.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(Un.x,Un.y).multiplyScalar(-t/Un.z)}getViewSize(t,e){return this.getViewBounds(t,Uo,Io),e.subVectors(Io,Uo)}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(Js*.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 xi=-90,Mi=1;class jh extends Ae{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const s=new Ye(xi,Mi,t,e);s.layers=this.layers,this.add(s);const r=new Ye(xi,Mi,t,e);r.layers=this.layers,this.add(r);const a=new Ye(xi,Mi,t,e);a.layers=this.layers,this.add(a);const o=new Ye(xi,Mi,t,e);o.layers=this.layers,this.add(o);const l=new Ye(xi,Mi,t,e);l.layers=this.layers,this.add(l);const c=new Ye(xi,Mi,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===En)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===sr)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(),f=t.getActiveMipmapLevel(),g=t.xr.enabled;t.xr.enabled=!1;const v=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=v,t.setRenderTarget(n,5,s),t.render(e,h),t.setRenderTarget(d,p,f),t.xr.enabled=g,n.texture.needsPMREMUpdate=!0}}class ac extends Te{constructor(t,e,n,s,r,a,o,l,c,h){t=t!==void 0?t:[],e=e!==void 0?e:Bi,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 Zh extends on{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 ac(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:dn}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:` +}`;class Fe extends kn{constructor(t){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=Yh,this.fragmentShader=qh,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,t!==void 0&&this.setValues(t)}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=Gi(t.uniforms),this.uniformsGroups=Xh(t.uniformsGroups),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.fog=t.fog,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const s in this.uniforms){const a=this.uniforms[s].value;a&&a.isTexture?e.uniforms[s]={type:"t",value:a.toJSON(t).uuid}:a&&a.isColor?e.uniforms[s]={type:"c",value:a.getHex()}:a&&a.isVector2?e.uniforms[s]={type:"v2",value:a.toArray()}:a&&a.isVector3?e.uniforms[s]={type:"v3",value:a.toArray()}:a&&a.isVector4?e.uniforms[s]={type:"v4",value:a.toArray()}:a&&a.isMatrix3?e.uniforms[s]={type:"m3",value:a.toArray()}:a&&a.isMatrix4?e.uniforms[s]={type:"m4",value:a.toArray()}:e.uniforms[s]={value:a}}Object.keys(this.defines).length>0&&(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 rc extends Ae{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ee,this.projectionMatrix=new ee,this.projectionMatrixInverse=new ee,this.coordinateSystem=En}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 Un=new P,Uo=new vt,Io=new vt;class Ye extends rc{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=Ha*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(Js*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Ha*2*Math.atan(Math.tan(Js*.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){Un.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Un.x,Un.y).multiplyScalar(-t/Un.z),Un.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(Un.x,Un.y).multiplyScalar(-t/Un.z)}getViewSize(t,e){return this.getViewBounds(t,Uo,Io),e.subVectors(Io,Uo)}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(Js*.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 xi=-90,Mi=1;class jh extends Ae{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const s=new Ye(xi,Mi,t,e);s.layers=this.layers,this.add(s);const r=new Ye(xi,Mi,t,e);r.layers=this.layers,this.add(r);const a=new Ye(xi,Mi,t,e);a.layers=this.layers,this.add(a);const o=new Ye(xi,Mi,t,e);o.layers=this.layers,this.add(o);const l=new Ye(xi,Mi,t,e);l.layers=this.layers,this.add(l);const c=new Ye(xi,Mi,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===En)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===sr)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,f=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(f,p,u),t.xr.enabled=g,n.texture.needsPMREMUpdate=!0}}class ac extends Te{constructor(t,e,n,s,r,a,o,l,c,h){t=t!==void 0?t:[],e=e!==void 0?e:Bi,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 Zh extends on{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 ac(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:dn}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; @@ -41,11 +41,11 @@ var wc=Object.defineProperty;var Ac=(i,t,e)=>t in i?wc(i,t,{enumerable:!0,config gl_FragColor = texture2D( tEquirect, sampleUV ); } - `},s=new us(5,5,5),r=new Fe({name:"CubemapFromEquirect",uniforms:Gi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:ke,blending:bn});r.uniforms.tEquirect.value=e;const a=new Se(s,r),o=e.minFilter;return e.minFilter===Qn&&(e.minFilter=dn),new jh(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 pr{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new pt(t),this.density=e}clone(){return new pr(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class Kh extends Ae{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 pn,this.environmentIntensity=1,this.environmentRotation=new pn,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 $h{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=Ha,this.updateRanges=[],this.version=0,this.uuid=Bn()}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:Ji.clone(),uv:tn.getInterpolation(Ji,Us,ts,Is,No,Hr,Fo,new vt),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 Fs(i,t,e,n,s,r){bi.subVectors(i,e).addScalar(.5).multiply(n),s!==void 0?(Qi.x=r*bi.x-s*bi.y,Qi.y=s*bi.x+r*bi.y):Qi.copy(bi),i.copy(t),i.x+=Qi.x,i.y+=Qi.y,i.applyMatrix4(oc)}class Jh extends Te{constructor(t=null,e=1,n=1,s,r,a,o,l,c=qe,h=qe,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 Oo 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 Ti=new ee,Bo=new ee,Os=[],zo=new ri,Qh=new ee,es=new Se,ns=new ai;class tu extends Se{constructor(t,e,n){super(t,e),this.isInstancedMesh=!0,this.instanceMatrix=new Oo(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||nu.getNormalMatrix(t),s=this.coplanarPoint(kr).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 Yn=new ai,Bs=new P;class eo{constructor(t=new Nn,e=new Nn,n=new Nn,s=new Nn,r=new Nn,a=new Nn){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=En){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],f=s[8],g=s[9],v=s[10],m=s[11],u=s[12],T=s[13],b=s[14],y=s[15];if(n[0].setComponents(l-r,p-c,m-f,y-u).normalize(),n[1].setComponents(l+r,p+c,m+f,y+u).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-v,y-b).normalize(),e===En)n[5].setComponents(l+o,p+d,m+v,y+b).normalize();else if(e===sr)n[5].setComponents(o,d,v,b).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(),Yn.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Yn.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Yn)}intersectsSprite(t){return Yn.center.set(0,0,0),Yn.radius=.7071067811865476,Yn.applyMatrix4(t.matrixWorld),this.intersectsSphere(Yn)}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,Bs.y=s.normal.y>0?t.max.y:t.min.y,Bs.z=s.normal.z>0?t.max.z:t.min.z,s.distanceToPoint(Bs)<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 lr extends Hn{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new pt(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 cr=new P,hr=new P,Ho=new ee,is=new hs,zs=new ai,Vr=new P,ko=new P;class Va extends Ae{constructor(t=new pe,e=new lr){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;Vr.applyMatrix4(i.matrixWorld);const l=t.ray.origin.distanceTo(Vr);if(!(lt.far))return{distance:l,point:ko.clone().applyMatrix4(i.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:i}}class ei extends Hn{constructor(t){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new pt(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 Vo=new ee,Ga=new hs,ks=new ai,Vs=new P;class Fi extends Ae{constructor(t=new pe,e=new ei){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(),ks.copy(n.boundingSphere),ks.applyMatrix4(s),ks.radius+=r,t.ray.intersectsSphere(ks)===!1)return;Vo.copy(s).invert(),Ga.copy(t.ray).applyMatrix4(Vo);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),f=Math.min(c.count,a.start+a.count);for(let g=p,v=f;g0){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 Pi extends Ae{constructor(){super(),this.isGroup=!0,this.type="Group"}}class lc extends Te{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 cc extends Te{constructor(t,e,n,s,r,a,o,l,c,h=Ii){if(h!==Ii&&h!==ki)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Ii&&(n=ni),n===void 0&&h===ki&&(n=Hi),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:qe,this.minFilter=l!==void 0?l:qe,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 ds extends pe{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,f=[],g=[],v=[],m=[];for(let u=0;u0)&&f.push(b,y,R),(u!==n-1||l0&&(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 $h{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=ka,this.updateRanges=[],this.version=0,this.uuid=Bn()}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:Ji.clone(),uv:tn.getInterpolation(Ji,Us,ts,Is,No,kr,Fo,new vt),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 Fs(i,t,e,n,s,r){bi.subVectors(i,e).addScalar(.5).multiply(n),s!==void 0?(Qi.x=r*bi.x-s*bi.y,Qi.y=s*bi.x+r*bi.y):Qi.copy(bi),i.copy(t),i.x+=Qi.x,i.y+=Qi.y,i.applyMatrix4(oc)}class Jh extends Te{constructor(t=null,e=1,n=1,s,r,a,o,l,c=qe,h=qe,f,p){super(null,a,o,l,c,h,s,r,f,p),this.isDataTexture=!0,this.image={data:t,width:e,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Oo 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 Ti=new ee,Bo=new ee,Os=[],zo=new ri,Qh=new ee,es=new Se,ns=new ai;class tu extends Se{constructor(t,e,n){super(t,e),this.isInstancedMesh=!0,this.instanceMatrix=new Oo(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||nu.getNormalMatrix(t),s=this.coplanarPoint(Hr).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 Yn=new ai,Bs=new P;class eo{constructor(t=new Nn,e=new Nn,n=new Nn,s=new Nn,r=new Nn,a=new Nn){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=En){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],f=s[6],p=s[7],u=s[8],g=s[9],_=s[10],m=s[11],d=s[12],T=s[13],E=s[14],y=s[15];if(n[0].setComponents(l-r,p-c,m-u,y-d).normalize(),n[1].setComponents(l+r,p+c,m+u,y+d).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-f,m-_,y-E).normalize(),e===En)n[5].setComponents(l+o,p+f,m+_,y+E).normalize();else if(e===sr)n[5].setComponents(o,f,_,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(),Yn.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Yn.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Yn)}intersectsSprite(t){return Yn.center.set(0,0,0),Yn.radius=.7071067811865476,Yn.applyMatrix4(t.matrixWorld),this.intersectsSphere(Yn)}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,Bs.y=s.normal.y>0?t.max.y:t.min.y,Bs.z=s.normal.z>0?t.max.z:t.min.z,s.distanceToPoint(Bs)<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 lr extends kn{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new at(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 cr=new P,hr=new P,ko=new ee,is=new hs,zs=new ai,Vr=new P,Ho=new P;class Va extends Ae{constructor(t=new pe,e=new lr){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;Vr.applyMatrix4(i.matrixWorld);const l=t.ray.origin.distanceTo(Vr);if(!(lt.far))return{distance:l,point:Ho.clone().applyMatrix4(i.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:i}}class ei extends kn{constructor(t){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new at(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 Vo=new ee,Ga=new hs,Hs=new ai,Vs=new P;class Fi extends Ae{constructor(t=new pe,e=new ei){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(),Hs.copy(n.boundingSphere),Hs.applyMatrix4(s),Hs.radius+=r,t.ray.intersectsSphere(Hs)===!1)return;Vo.copy(s).invert(),Ga.copy(t.ray).applyMatrix4(Vo);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=o*o,c=n.index,f=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);Vs.fromBufferAttribute(f,m),Go(Vs,m,l,s,t,e,this)}}else{const p=Math.max(0,a.start),u=Math.min(f.count,a.start+a.count);for(let g=p,_=u;g<_;g++)Vs.fromBufferAttribute(f,g),Go(Vs,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 Pi extends Ae{constructor(){super(),this.isGroup=!0,this.type="Group"}}class lc extends Te{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 cc extends Te{constructor(t,e,n,s,r,a,o,l,c,h=Ii){if(h!==Ii&&h!==Hi)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Ii&&(n=ni),n===void 0&&h===Hi&&(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:qe,this.minFilter=l!==void 0?l:qe,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 ds extends pe{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,f=t/o,p=e/l,u=[],g=[],_=[],m=[];for(let d=0;d0)&&u.push(E,y,R),(d!==n-1||lf.start-g.start);let p=0;for(let f=1;fu.start-g.start);let p=0;for(let u=1;u #include #include -}`,kf=`#define TOON +}`,Hf=`#define TOON varying vec3 vViewPosition; #include #include @@ -3571,7 +3571,7 @@ void main() { #include #include #include -}`,Vt={alphahash_fragment:mu,alphahash_pars_fragment:gu,alphamap_fragment:_u,alphamap_pars_fragment:vu,alphatest_fragment:xu,alphatest_pars_fragment:Mu,aomap_fragment:Su,aomap_pars_fragment:yu,batching_pars_vertex:Eu,batching_vertex:bu,begin_vertex:Tu,beginnormal_vertex:wu,bsdfs:Au,iridescence_fragment:Ru,bumpmap_pars_fragment:Cu,clipping_planes_fragment:Pu,clipping_planes_pars_fragment:Du,clipping_planes_pars_vertex:Lu,clipping_planes_vertex:Uu,color_fragment:Iu,color_pars_fragment:Nu,color_pars_vertex:Fu,color_vertex:Ou,common:Bu,cube_uv_reflection_fragment:zu,defaultnormal_vertex:Hu,displacementmap_pars_vertex:ku,displacementmap_vertex:Vu,emissivemap_fragment:Gu,emissivemap_pars_fragment:Wu,colorspace_fragment:Xu,colorspace_pars_fragment:Yu,envmap_fragment:qu,envmap_common_pars_fragment:ju,envmap_pars_fragment:Zu,envmap_pars_vertex:Ku,envmap_physical_pars_fragment:od,envmap_vertex:$u,fog_vertex:Ju,fog_pars_vertex:Qu,fog_fragment:td,fog_pars_fragment:ed,gradientmap_pars_fragment:nd,lightmap_pars_fragment:id,lights_lambert_fragment:sd,lights_lambert_pars_fragment:rd,lights_pars_begin:ad,lights_toon_fragment:ld,lights_toon_pars_fragment:cd,lights_phong_fragment:hd,lights_phong_pars_fragment:ud,lights_physical_fragment:dd,lights_physical_pars_fragment:fd,lights_fragment_begin:pd,lights_fragment_maps:md,lights_fragment_end:gd,logdepthbuf_fragment:_d,logdepthbuf_pars_fragment:vd,logdepthbuf_pars_vertex:xd,logdepthbuf_vertex:Md,map_fragment:Sd,map_pars_fragment:yd,map_particle_fragment:Ed,map_particle_pars_fragment:bd,metalnessmap_fragment:Td,metalnessmap_pars_fragment:wd,morphinstance_vertex:Ad,morphcolor_vertex:Rd,morphnormal_vertex:Cd,morphtarget_pars_vertex:Pd,morphtarget_vertex:Dd,normal_fragment_begin:Ld,normal_fragment_maps:Ud,normal_pars_fragment:Id,normal_pars_vertex:Nd,normal_vertex:Fd,normalmap_pars_fragment:Od,clearcoat_normal_fragment_begin:Bd,clearcoat_normal_fragment_maps:zd,clearcoat_pars_fragment:Hd,iridescence_pars_fragment:kd,opaque_fragment:Vd,packing:Gd,premultiplied_alpha_fragment:Wd,project_vertex:Xd,dithering_fragment:Yd,dithering_pars_fragment:qd,roughnessmap_fragment:jd,roughnessmap_pars_fragment:Zd,shadowmap_pars_fragment:Kd,shadowmap_pars_vertex:$d,shadowmap_vertex:Jd,shadowmask_pars_fragment:Qd,skinbase_vertex:tf,skinning_pars_vertex:ef,skinning_vertex:nf,skinnormal_vertex:sf,specularmap_fragment:rf,specularmap_pars_fragment:af,tonemapping_fragment:of,tonemapping_pars_fragment:lf,transmission_fragment:cf,transmission_pars_fragment:hf,uv_pars_fragment:uf,uv_pars_vertex:df,uv_vertex:ff,worldpos_vertex:pf,background_vert:mf,background_frag:gf,backgroundCube_vert:_f,backgroundCube_frag:vf,cube_vert:xf,cube_frag:Mf,depth_vert:Sf,depth_frag:yf,distanceRGBA_vert:Ef,distanceRGBA_frag:bf,equirect_vert:Tf,equirect_frag:wf,linedashed_vert:Af,linedashed_frag:Rf,meshbasic_vert:Cf,meshbasic_frag:Pf,meshlambert_vert:Df,meshlambert_frag:Lf,meshmatcap_vert:Uf,meshmatcap_frag:If,meshnormal_vert:Nf,meshnormal_frag:Ff,meshphong_vert:Of,meshphong_frag:Bf,meshphysical_vert:zf,meshphysical_frag:Hf,meshtoon_vert:kf,meshtoon_frag:Vf,points_vert:Gf,points_frag:Wf,shadow_vert:Xf,shadow_frag:Yf,sprite_vert:qf,sprite_frag:jf},st={common:{diffuse:{value:new pt(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 vt(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 pt(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 pt(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 pt(16777215)},opacity:{value:1},center:{value:new vt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ht},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0}}},cn={basic:{uniforms:Ue([st.common,st.specularmap,st.envmap,st.aomap,st.lightmap,st.fog]),vertexShader:Vt.meshbasic_vert,fragmentShader:Vt.meshbasic_frag},lambert:{uniforms:Ue([st.common,st.specularmap,st.envmap,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.fog,st.lights,{emissive:{value:new pt(0)}}]),vertexShader:Vt.meshlambert_vert,fragmentShader:Vt.meshlambert_frag},phong:{uniforms:Ue([st.common,st.specularmap,st.envmap,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.fog,st.lights,{emissive:{value:new pt(0)},specular:{value:new pt(1118481)},shininess:{value:30}}]),vertexShader:Vt.meshphong_vert,fragmentShader:Vt.meshphong_frag},standard:{uniforms:Ue([st.common,st.envmap,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.roughnessmap,st.metalnessmap,st.fog,st.lights,{emissive:{value:new pt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Vt.meshphysical_vert,fragmentShader:Vt.meshphysical_frag},toon:{uniforms:Ue([st.common,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.gradientmap,st.fog,st.lights,{emissive:{value:new pt(0)}}]),vertexShader:Vt.meshtoon_vert,fragmentShader:Vt.meshtoon_frag},matcap:{uniforms:Ue([st.common,st.bumpmap,st.normalmap,st.displacementmap,st.fog,{matcap:{value:null}}]),vertexShader:Vt.meshmatcap_vert,fragmentShader:Vt.meshmatcap_frag},points:{uniforms:Ue([st.points,st.fog]),vertexShader:Vt.points_vert,fragmentShader:Vt.points_frag},dashed:{uniforms:Ue([st.common,st.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Vt.linedashed_vert,fragmentShader:Vt.linedashed_frag},depth:{uniforms:Ue([st.common,st.displacementmap]),vertexShader:Vt.depth_vert,fragmentShader:Vt.depth_frag},normal:{uniforms:Ue([st.common,st.bumpmap,st.normalmap,st.displacementmap,{opacity:{value:1}}]),vertexShader:Vt.meshnormal_vert,fragmentShader:Vt.meshnormal_frag},sprite:{uniforms:Ue([st.sprite,st.fog]),vertexShader:Vt.sprite_vert,fragmentShader:Vt.sprite_frag},background:{uniforms:{uvTransform:{value:new Ht},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Vt.background_vert,fragmentShader:Vt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ht}},vertexShader:Vt.backgroundCube_vert,fragmentShader:Vt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Vt.cube_vert,fragmentShader:Vt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Vt.equirect_vert,fragmentShader:Vt.equirect_frag},distanceRGBA:{uniforms:Ue([st.common,st.displacementmap,{referencePosition:{value:new P},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Vt.distanceRGBA_vert,fragmentShader:Vt.distanceRGBA_frag},shadow:{uniforms:Ue([st.lights,st.fog,{color:{value:new pt(0)},opacity:{value:1}}]),vertexShader:Vt.shadow_vert,fragmentShader:Vt.shadow_frag}};cn.physical={uniforms:Ue([cn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ht},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ht},clearcoatNormalScale:{value:new vt(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 pt(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 vt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ht},attenuationDistance:{value:0},attenuationColor:{value:new pt(0)},specularColor:{value:new pt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ht},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ht},anisotropyVector:{value:new vt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ht}}]),vertexShader:Vt.meshphysical_vert,fragmentShader:Vt.meshphysical_frag};const Gs={r:0,b:0,g:0},qn=new pn,Zf=new ee;function Kf(i,t,e,n,s,r,a){const o=new pt(0);let l=r===!0?0:1,c,h,d=null,p=0,f=null;function g(b){let y=b.isScene===!0?b.background:null;return y&&y.isTexture&&(y=(b.backgroundBlurriness>0?e:t).get(y)),y}function v(b){let y=!1;const L=g(b);L===null?u(o,l):L&&L.isColor&&(u(L,1),y=!0);const R=i.xr.getEnvironmentBlendMode();R==="additive"?n.buffers.color.setClear(0,0,0,1,a):R==="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(b,y){const L=g(y);L&&(L.isCubeTexture||L.mapping===fr)?(h===void 0&&(h=new Se(new us(1,1,1),new Fe({name:"BackgroundCubeMaterial",uniforms:Gi(cn.backgroundCube.uniforms),vertexShader:cn.backgroundCube.vertexShader,fragmentShader:cn.backgroundCube.fragmentShader,side:ke,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,A,U){this.matrixWorld.copyPosition(U.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,L.isCubeTexture&&L.isRenderTargetTexture===!1&&(qn.y*=-1,qn.z*=-1),h.material.uniforms.envMap.value=L,h.material.uniforms.flipEnvMap.value=L.isCubeTexture&&L.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=y.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,h.material.uniforms.backgroundRotation.value.setFromMatrix4(Zf.makeRotationFromEuler(qn)),h.material.toneMapped=$t.getTransfer(L.colorSpace)!==re,(d!==L||p!==L.version||f!==i.toneMapping)&&(h.material.needsUpdate=!0,d=L,p=L.version,f=i.toneMapping),h.layers.enableAll(),b.unshift(h,h.geometry,h.material,0,0,null)):L&&L.isTexture&&(c===void 0&&(c=new Se(new ds(2,2),new Fe({name:"BackgroundMaterial",uniforms:Gi(cn.background.uniforms),vertexShader:cn.background.vertexShader,fragmentShader:cn.background.fragmentShader,side:zn,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=L,c.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,c.material.toneMapped=$t.getTransfer(L.colorSpace)!==re,L.matrixAutoUpdate===!0&&L.updateMatrix(),c.material.uniforms.uvTransform.value.copy(L.matrix),(d!==L||p!==L.version||f!==i.toneMapping)&&(c.material.needsUpdate=!0,d=L,p=L.version,f=i.toneMapping),c.layers.enableAll(),b.unshift(c,c.geometry,c.material,0,0,null))}function u(b,y){b.getRGB(Gs,sc(i)),n.buffers.color.setClear(Gs.r,Gs.g,Gs.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(b,y=1){o.set(b),l=y,u(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(b){l=b,u(o,l)},render:v,addToRenderList:m,dispose:T}}function $f(i,t){const e=i.getParameter(i.MAX_VERTEX_ATTRIBS),n={},s=p(null);let r=s,a=!1;function o(M,D,W,z,V){let $=!1;const G=d(z,W,D);r!==G&&(r=G,c(r.object)),$=f(M,z,W,V),$&&g(M,z,W,V),V!==null&&t.update(V,i.ELEMENT_ARRAY_BUFFER),($||a)&&(a=!1,y(M,D,W,z),V!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t.get(V).buffer))}function l(){return i.createVertexArray()}function c(M){return i.bindVertexArray(M)}function h(M){return i.deleteVertexArray(M)}function d(M,D,W){const z=W.wireframe===!0;let V=n[M.id];V===void 0&&(V={},n[M.id]=V);let $=V[D.id];$===void 0&&($={},V[D.id]=$);let G=$[z];return G===void 0&&(G=p(l()),$[z]=G),G}function p(M){const D=[],W=[],z=[];for(let V=0;V=0){const ut=V[k];let yt=$[k];if(yt===void 0&&(k==="instanceMatrix"&&M.instanceMatrix&&(yt=M.instanceMatrix),k==="instanceColor"&&M.instanceColor&&(yt=M.instanceColor)),ut===void 0||ut.attribute!==yt||yt&&ut.data!==yt.data)return!0;G++}return r.attributesNum!==G||r.index!==z}function g(M,D,W,z){const V={},$=D.attributes;let G=0;const J=W.getAttributes();for(const k in J)if(J[k].location>=0){let ut=$[k];ut===void 0&&(k==="instanceMatrix"&&M.instanceMatrix&&(ut=M.instanceMatrix),k==="instanceColor"&&M.instanceColor&&(ut=M.instanceColor));const yt={};yt.attribute=ut,ut&&ut.data&&(yt.data=ut.data),V[k]=yt,G++}r.attributes=V,r.attributesNum=G,r.index=z}function v(){const M=r.newAttributes;for(let D=0,W=M.length;D=0){let it=V[J];if(it===void 0&&(J==="instanceMatrix"&&M.instanceMatrix&&(it=M.instanceMatrix),J==="instanceColor"&&M.instanceColor&&(it=M.instanceColor)),it!==void 0){const ut=it.normalized,yt=it.itemSize,Lt=t.get(it);if(Lt===void 0)continue;const qt=Lt.buffer,Y=Lt.type,nt=Lt.bytesPerElement,xt=Y===i.INT||Y===i.UNSIGNED_INT||it.gpuType===qa;if(it.isInterleavedBufferAttribute){const at=it.data,wt=at.stride,Ut=it.offset;if(at.isInstancedInterleavedBuffer){for(let Gt=0;Gt0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";A="mediump"}return A==="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"),f=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),g=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),v=i.getParameter(i.MAX_TEXTURE_SIZE),m=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),u=i.getParameter(i.MAX_VERTEX_ATTRIBS),T=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),b=i.getParameter(i.MAX_VARYING_VECTORS),y=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),L=g>0,R=i.getParameter(i.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:d,reverseDepthBuffer:p,maxTextures:f,maxVertexTextures:g,maxTextureSize:v,maxCubemapSize:m,maxAttributes:u,maxVertexUniforms:T,maxVaryings:b,maxFragmentUniforms:y,vertexTextures:L,maxSamples:R}}function tp(i){const t=this;let e=null,n=0,s=!1,r=!1;const a=new Nn,o=new Ht,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,p){const f=d.length!==0||p||n!==0||s;return s=p,n=d.length,f},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,f){const g=d.clippingPlanes,v=d.clipIntersection,m=d.clipShadows,u=i.get(d);if(!s||g===null||g.length===0||r&&!m)r?h(null):c();else{const T=r?0:n,b=T*4;let y=u.clippingState||null;l.value=y,y=h(g,p,b,f);for(let L=0;L!==b;++L)y[L]=e[L];u.clippingState=y,this.numIntersection=v?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,f,g){const v=d!==null?d.length:0;let m=null;if(v!==0){if(m=l.value,g!==!0||m===null){const u=f+v*4,T=p.matrixWorldInverse;o.getNormalMatrix(T),(m===null||m.length0){const c=new Zh(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 Di=4,Qo=[.125,.215,.35,.446,.526,.582],$n=20,Xr=new uc,tl=new pt;let Yr=null,qr=0,jr=0,Zr=!1;const Zn=(1+Math.sqrt(5))/2,wi=1/Zn,el=[new P(-Zn,wi,0),new P(Zn,wi,0),new P(-wi,0,Zn),new P(wi,0,Zn),new P(0,Zn,-wi),new P(0,Zn,wi),new P(-1,1,-1),new P(1,1,-1),new P(-1,1,1),new P(1,1,1)];class nl{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){Yr=this._renderer.getRenderTarget(),qr=this._renderer.getActiveCubeFace(),jr=this._renderer.getActiveMipmapLevel(),Zr=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=rl(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=sl(),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?b:0,b,b),h.setRenderTarget(s),v&&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===Bi||t.mapping===zi;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=rl()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=sl());const r=s?this._cubemapMaterial:this._equirectMaterial,a=new Se(this._lodPlanes[0],r),o=r.uniforms;o.envMap.value=t;const l=this._cubeSize;Ws(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(a,Xr)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;const s=this._lodPlanes.length;for(let r=1;r$n&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${$n}`);const u=[];let T=0;for(let A=0;A<$n;++A){const U=A/v,S=Math.exp(-U*U/2);u.push(S),A===0?T+=S:Ab-Di?s-b+Di:0),R=4*(this._cubeSize-y);Ws(e,L,R,3*y,2*y),l.setRenderTarget(e),l.render(d,Xr)}}function np(i){const t=[],e=[],n=[];let s=i;const r=i-Di+1+Qo.length;for(let a=0;ai-Di?l=Qo[a-i+Di-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],f=6,g=6,v=3,m=2,u=1,T=new Float32Array(v*g*f),b=new Float32Array(m*g*f),y=new Float32Array(u*g*f);for(let R=0;R2?0:-1,S=[A,U,0,A+2/3,U,0,A+2/3,U+1,0,A,U,0,A+2/3,U+1,0,A,U+1,0];T.set(S,v*g*R),b.set(p,m*g*R);const M=[R,R,R,R,R,R];y.set(M,u*g*R)}const L=new pe;L.setAttribute("position",new he(T,v)),L.setAttribute("uv",new he(b,m)),L.setAttribute("faceIndex",new he(y,u)),t.push(L),s>Di&&s--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function il(i,t,e){const n=new on(i,t,e);return n.texture.mapping=fr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function Ws(i,t,e,n,s){i.viewport.set(t,e,n,s),i.scissor.set(t,e,n,s)}function ip(i,t,e){const n=new Float32Array($n),s=new P(0,1,0);return new Fe({name:"SphericalGaussianBlur",defines:{n:$n,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:io(),fragmentShader:` +}`,Vt={alphahash_fragment:mu,alphahash_pars_fragment:gu,alphamap_fragment:_u,alphamap_pars_fragment:vu,alphatest_fragment:xu,alphatest_pars_fragment:Mu,aomap_fragment:Su,aomap_pars_fragment:yu,batching_pars_vertex:Eu,batching_vertex:bu,begin_vertex:Tu,beginnormal_vertex:wu,bsdfs:Au,iridescence_fragment:Ru,bumpmap_pars_fragment:Cu,clipping_planes_fragment:Pu,clipping_planes_pars_fragment:Du,clipping_planes_pars_vertex:Lu,clipping_planes_vertex:Uu,color_fragment:Iu,color_pars_fragment:Nu,color_pars_vertex:Fu,color_vertex:Ou,common:Bu,cube_uv_reflection_fragment:zu,defaultnormal_vertex:ku,displacementmap_pars_vertex:Hu,displacementmap_vertex:Vu,emissivemap_fragment:Gu,emissivemap_pars_fragment:Wu,colorspace_fragment:Xu,colorspace_pars_fragment:Yu,envmap_fragment:qu,envmap_common_pars_fragment:ju,envmap_pars_fragment:Zu,envmap_pars_vertex:Ku,envmap_physical_pars_fragment:od,envmap_vertex:$u,fog_vertex:Ju,fog_pars_vertex:Qu,fog_fragment:td,fog_pars_fragment:ed,gradientmap_pars_fragment:nd,lightmap_pars_fragment:id,lights_lambert_fragment:sd,lights_lambert_pars_fragment:rd,lights_pars_begin:ad,lights_toon_fragment:ld,lights_toon_pars_fragment:cd,lights_phong_fragment:hd,lights_phong_pars_fragment:ud,lights_physical_fragment:dd,lights_physical_pars_fragment:fd,lights_fragment_begin:pd,lights_fragment_maps:md,lights_fragment_end:gd,logdepthbuf_fragment:_d,logdepthbuf_pars_fragment:vd,logdepthbuf_pars_vertex:xd,logdepthbuf_vertex:Md,map_fragment:Sd,map_pars_fragment:yd,map_particle_fragment:Ed,map_particle_pars_fragment:bd,metalnessmap_fragment:Td,metalnessmap_pars_fragment:wd,morphinstance_vertex:Ad,morphcolor_vertex:Rd,morphnormal_vertex:Cd,morphtarget_pars_vertex:Pd,morphtarget_vertex:Dd,normal_fragment_begin:Ld,normal_fragment_maps:Ud,normal_pars_fragment:Id,normal_pars_vertex:Nd,normal_vertex:Fd,normalmap_pars_fragment:Od,clearcoat_normal_fragment_begin:Bd,clearcoat_normal_fragment_maps:zd,clearcoat_pars_fragment:kd,iridescence_pars_fragment:Hd,opaque_fragment:Vd,packing:Gd,premultiplied_alpha_fragment:Wd,project_vertex:Xd,dithering_fragment:Yd,dithering_pars_fragment:qd,roughnessmap_fragment:jd,roughnessmap_pars_fragment:Zd,shadowmap_pars_fragment:Kd,shadowmap_pars_vertex:$d,shadowmap_vertex:Jd,shadowmask_pars_fragment:Qd,skinbase_vertex:tf,skinning_pars_vertex:ef,skinning_vertex:nf,skinnormal_vertex:sf,specularmap_fragment:rf,specularmap_pars_fragment:af,tonemapping_fragment:of,tonemapping_pars_fragment:lf,transmission_fragment:cf,transmission_pars_fragment:hf,uv_pars_fragment:uf,uv_pars_vertex:df,uv_vertex:ff,worldpos_vertex:pf,background_vert:mf,background_frag:gf,backgroundCube_vert:_f,backgroundCube_frag:vf,cube_vert:xf,cube_frag:Mf,depth_vert:Sf,depth_frag:yf,distanceRGBA_vert:Ef,distanceRGBA_frag:bf,equirect_vert:Tf,equirect_frag:wf,linedashed_vert:Af,linedashed_frag:Rf,meshbasic_vert:Cf,meshbasic_frag:Pf,meshlambert_vert:Df,meshlambert_frag:Lf,meshmatcap_vert:Uf,meshmatcap_frag:If,meshnormal_vert:Nf,meshnormal_frag:Ff,meshphong_vert:Of,meshphong_frag:Bf,meshphysical_vert:zf,meshphysical_frag:kf,meshtoon_vert:Hf,meshtoon_frag:Vf,points_vert:Gf,points_frag:Wf,shadow_vert:Xf,shadow_frag:Yf,sprite_vert:qf,sprite_frag:jf},st={common:{diffuse:{value:new at(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new kt},alphaMap:{value:null},alphaMapTransform:{value:new kt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new kt}},envmap:{envMap:{value:null},envMapRotation:{value:new kt},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new kt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new kt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new kt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new kt},normalScale:{value:new vt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new kt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new kt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new kt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new kt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new at(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 at(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new kt},alphaTest:{value:0},uvTransform:{value:new kt}},sprite:{diffuse:{value:new at(16777215)},opacity:{value:1},center:{value:new vt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new kt},alphaMap:{value:null},alphaMapTransform:{value:new kt},alphaTest:{value:0}}},cn={basic:{uniforms:Ue([st.common,st.specularmap,st.envmap,st.aomap,st.lightmap,st.fog]),vertexShader:Vt.meshbasic_vert,fragmentShader:Vt.meshbasic_frag},lambert:{uniforms:Ue([st.common,st.specularmap,st.envmap,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.fog,st.lights,{emissive:{value:new at(0)}}]),vertexShader:Vt.meshlambert_vert,fragmentShader:Vt.meshlambert_frag},phong:{uniforms:Ue([st.common,st.specularmap,st.envmap,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.fog,st.lights,{emissive:{value:new at(0)},specular:{value:new at(1118481)},shininess:{value:30}}]),vertexShader:Vt.meshphong_vert,fragmentShader:Vt.meshphong_frag},standard:{uniforms:Ue([st.common,st.envmap,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.roughnessmap,st.metalnessmap,st.fog,st.lights,{emissive:{value:new at(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Vt.meshphysical_vert,fragmentShader:Vt.meshphysical_frag},toon:{uniforms:Ue([st.common,st.aomap,st.lightmap,st.emissivemap,st.bumpmap,st.normalmap,st.displacementmap,st.gradientmap,st.fog,st.lights,{emissive:{value:new at(0)}}]),vertexShader:Vt.meshtoon_vert,fragmentShader:Vt.meshtoon_frag},matcap:{uniforms:Ue([st.common,st.bumpmap,st.normalmap,st.displacementmap,st.fog,{matcap:{value:null}}]),vertexShader:Vt.meshmatcap_vert,fragmentShader:Vt.meshmatcap_frag},points:{uniforms:Ue([st.points,st.fog]),vertexShader:Vt.points_vert,fragmentShader:Vt.points_frag},dashed:{uniforms:Ue([st.common,st.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Vt.linedashed_vert,fragmentShader:Vt.linedashed_frag},depth:{uniforms:Ue([st.common,st.displacementmap]),vertexShader:Vt.depth_vert,fragmentShader:Vt.depth_frag},normal:{uniforms:Ue([st.common,st.bumpmap,st.normalmap,st.displacementmap,{opacity:{value:1}}]),vertexShader:Vt.meshnormal_vert,fragmentShader:Vt.meshnormal_frag},sprite:{uniforms:Ue([st.sprite,st.fog]),vertexShader:Vt.sprite_vert,fragmentShader:Vt.sprite_frag},background:{uniforms:{uvTransform:{value:new kt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Vt.background_vert,fragmentShader:Vt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new kt}},vertexShader:Vt.backgroundCube_vert,fragmentShader:Vt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Vt.cube_vert,fragmentShader:Vt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Vt.equirect_vert,fragmentShader:Vt.equirect_frag},distanceRGBA:{uniforms:Ue([st.common,st.displacementmap,{referencePosition:{value:new P},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Vt.distanceRGBA_vert,fragmentShader:Vt.distanceRGBA_frag},shadow:{uniforms:Ue([st.lights,st.fog,{color:{value:new at(0)},opacity:{value:1}}]),vertexShader:Vt.shadow_vert,fragmentShader:Vt.shadow_frag}};cn.physical={uniforms:Ue([cn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new kt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new kt},clearcoatNormalScale:{value:new vt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new kt},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new kt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new kt},sheen:{value:0},sheenColor:{value:new at(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new kt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new kt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new kt},transmissionSamplerSize:{value:new vt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new kt},attenuationDistance:{value:0},attenuationColor:{value:new at(0)},specularColor:{value:new at(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new kt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new kt},anisotropyVector:{value:new vt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new kt}}]),vertexShader:Vt.meshphysical_vert,fragmentShader:Vt.meshphysical_frag};const Gs={r:0,b:0,g:0},qn=new pn,Zf=new ee;function Kf(i,t,e,n,s,r,a){const o=new at(0);let l=r===!0?0:1,c,h,f=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 L=g(E);L===null?d(o,l):L&&L.isColor&&(d(L,1),y=!0);const R=i.xr.getEnvironmentBlendMode();R==="additive"?n.buffers.color.setClear(0,0,0,1,a):R==="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 L=g(y);L&&(L.isCubeTexture||L.mapping===fr)?(h===void 0&&(h=new Se(new us(1,1,1),new Fe({name:"BackgroundCubeMaterial",uniforms:Gi(cn.backgroundCube.uniforms),vertexShader:cn.backgroundCube.vertexShader,fragmentShader:cn.backgroundCube.fragmentShader,side:He,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(R,A,U){this.matrixWorld.copyPosition(U.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,L.isCubeTexture&&L.isRenderTargetTexture===!1&&(qn.y*=-1,qn.z*=-1),h.material.uniforms.envMap.value=L,h.material.uniforms.flipEnvMap.value=L.isCubeTexture&&L.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=y.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,h.material.uniforms.backgroundRotation.value.setFromMatrix4(Zf.makeRotationFromEuler(qn)),h.material.toneMapped=$t.getTransfer(L.colorSpace)!==re,(f!==L||p!==L.version||u!==i.toneMapping)&&(h.material.needsUpdate=!0,f=L,p=L.version,u=i.toneMapping),h.layers.enableAll(),E.unshift(h,h.geometry,h.material,0,0,null)):L&&L.isTexture&&(c===void 0&&(c=new Se(new ds(2,2),new Fe({name:"BackgroundMaterial",uniforms:Gi(cn.background.uniforms),vertexShader:cn.background.vertexShader,fragmentShader:cn.background.fragmentShader,side:zn,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=L,c.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,c.material.toneMapped=$t.getTransfer(L.colorSpace)!==re,L.matrixAutoUpdate===!0&&L.updateMatrix(),c.material.uniforms.uvTransform.value.copy(L.matrix),(f!==L||p!==L.version||u!==i.toneMapping)&&(c.material.needsUpdate=!0,f=L,p=L.version,u=i.toneMapping),c.layers.enableAll(),E.unshift(c,c.geometry,c.material,0,0,null))}function d(E,y){E.getRGB(Gs,sc(i)),n.buffers.color.setClear(Gs.r,Gs.g,Gs.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,d(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(E){l=E,d(o,l)},render:_,addToRenderList:m,dispose:T}}function $f(i,t){const e=i.getParameter(i.MAX_VERTEX_ATTRIBS),n={},s=p(null);let r=s,a=!1;function o(M,D,W,z,V){let $=!1;const G=f(z,W,D);r!==G&&(r=G,c(r.object)),$=u(M,z,W,V),$&&g(M,z,W,V),V!==null&&t.update(V,i.ELEMENT_ARRAY_BUFFER),($||a)&&(a=!1,y(M,D,W,z),V!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t.get(V).buffer))}function l(){return i.createVertexArray()}function c(M){return i.bindVertexArray(M)}function h(M){return i.deleteVertexArray(M)}function f(M,D,W){const z=W.wireframe===!0;let V=n[M.id];V===void 0&&(V={},n[M.id]=V);let $=V[D.id];$===void 0&&($={},V[D.id]=$);let G=$[z];return G===void 0&&(G=p(l()),$[z]=G),G}function p(M){const D=[],W=[],z=[];for(let V=0;V=0){const dt=V[H];let yt=$[H];if(yt===void 0&&(H==="instanceMatrix"&&M.instanceMatrix&&(yt=M.instanceMatrix),H==="instanceColor"&&M.instanceColor&&(yt=M.instanceColor)),dt===void 0||dt.attribute!==yt||yt&&dt.data!==yt.data)return!0;G++}return r.attributesNum!==G||r.index!==z}function g(M,D,W,z){const V={},$=D.attributes;let G=0;const J=W.getAttributes();for(const H in J)if(J[H].location>=0){let dt=$[H];dt===void 0&&(H==="instanceMatrix"&&M.instanceMatrix&&(dt=M.instanceMatrix),H==="instanceColor"&&M.instanceColor&&(dt=M.instanceColor));const yt={};yt.attribute=dt,dt&&dt.data&&(yt.data=dt.data),V[H]=yt,G++}r.attributes=V,r.attributesNum=G,r.index=z}function _(){const M=r.newAttributes;for(let D=0,W=M.length;D=0){let it=V[J];if(it===void 0&&(J==="instanceMatrix"&&M.instanceMatrix&&(it=M.instanceMatrix),J==="instanceColor"&&M.instanceColor&&(it=M.instanceColor)),it!==void 0){const dt=it.normalized,yt=it.itemSize,Lt=t.get(it);if(Lt===void 0)continue;const qt=Lt.buffer,Y=Lt.type,nt=Lt.bytesPerElement,xt=Y===i.INT||Y===i.UNSIGNED_INT||it.gpuType===qa;if(it.isInterleavedBufferAttribute){const ot=it.data,wt=ot.stride,Ut=it.offset;if(ot.isInstancedInterleavedBuffer){for(let Gt=0;Gt0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";A="mediump"}return A==="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 f=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),d=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),L=g>0,R=i.getParameter(i.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:f,reverseDepthBuffer:p,maxTextures:u,maxVertexTextures:g,maxTextureSize:_,maxCubemapSize:m,maxAttributes:d,maxVertexUniforms:T,maxVaryings:E,maxFragmentUniforms:y,vertexTextures:L,maxSamples:R}}function tp(i){const t=this;let e=null,n=0,s=!1,r=!1;const a=new Nn,o=new kt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,p){const u=f.length!==0||p||n!==0||s;return s=p,n=f.length,u},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(f,p){e=h(f,p,0)},this.setState=function(f,p,u){const g=f.clippingPlanes,_=f.clipIntersection,m=f.clipShadows,d=i.get(f);if(!s||g===null||g.length===0||r&&!m)r?h(null):c();else{const T=r?0:n,E=T*4;let y=d.clippingState||null;l.value=y,y=h(g,p,E,u);for(let L=0;L!==E;++L)y[L]=e[L];d.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(f,p,u,g){const _=f!==null?f.length:0;let m=null;if(_!==0){if(m=l.value,g!==!0||m===null){const d=u+_*4,T=p.matrixWorldInverse;o.getNormalMatrix(T),(m===null||m.length0){const c=new Zh(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 Di=4,Qo=[.125,.215,.35,.446,.526,.582],$n=20,Xr=new uc,tl=new at;let Yr=null,qr=0,jr=0,Zr=!1;const Zn=(1+Math.sqrt(5))/2,wi=1/Zn,el=[new P(-Zn,wi,0),new P(Zn,wi,0),new P(-wi,0,Zn),new P(wi,0,Zn),new P(0,Zn,-wi),new P(0,Zn,wi),new P(-1,1,-1),new P(1,1,-1),new P(-1,1,1),new P(1,1,1)];class nl{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){Yr=this._renderer.getRenderTarget(),qr=this._renderer.getActiveCubeFace(),jr=this._renderer.getActiveMipmapLevel(),Zr=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=rl(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=sl(),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=f,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,s=t.mapping===Bi||t.mapping===zi;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=rl()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=sl());const r=s?this._cubemapMaterial:this._equirectMaterial,a=new Se(this._lodPlanes[0],r),o=r.uniforms;o.envMap.value=t;const l=this._cubeSize;Ws(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(a,Xr)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;const s=this._lodPlanes.length;for(let r=1;r$n&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${$n}`);const d=[];let T=0;for(let A=0;A<$n;++A){const U=A/_,S=Math.exp(-U*U/2);d.push(S),A===0?T+=S:AE-Di?s-E+Di:0),R=4*(this._cubeSize-y);Ws(e,L,R,3*y,2*y),l.setRenderTarget(e),l.render(f,Xr)}}function np(i){const t=[],e=[],n=[];let s=i;const r=i-Di+1+Qo.length;for(let a=0;ai-Di?l=Qo[a-i+Di-1]:a===0&&(l=0),n.push(l);const c=1/(o-2),h=-c,f=1+c,p=[h,h,f,h,f,f,h,h,f,f,h,f],u=6,g=6,_=3,m=2,d=1,T=new Float32Array(_*g*u),E=new Float32Array(m*g*u),y=new Float32Array(d*g*u);for(let R=0;R2?0:-1,S=[A,U,0,A+2/3,U,0,A+2/3,U+1,0,A,U,0,A+2/3,U+1,0,A,U+1,0];T.set(S,_*g*R),E.set(p,m*g*R);const M=[R,R,R,R,R,R];y.set(M,d*g*R)}const L=new pe;L.setAttribute("position",new he(T,_)),L.setAttribute("uv",new he(E,m)),L.setAttribute("faceIndex",new he(y,d)),t.push(L),s>Di&&s--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function il(i,t,e){const n=new on(i,t,e);return n.texture.mapping=fr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function Ws(i,t,e,n,s){i.viewport.set(t,e,n,s),i.scissor.set(t,e,n,s)}function ip(i,t,e){const n=new Float32Array($n),s=new P(0,1,0);return new Fe({name:"SphericalGaussianBlur",defines:{n:$n,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:io(),fragmentShader:` precision mediump float; precision mediump int; @@ -3721,9 +3721,9 @@ void main() { gl_Position = vec4( position, 1.0 ); } - `}function sp(i){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){const l=o.mapping,c=l===ha||l===ua,h=l===Bi||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 nl(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 f=o.image;return c&&f&&f.height>0||h&&f&&s(f)?(e===null&&(e=new nl(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&&(L=Math.ceil(y/t.maxTextureSize),y=t.maxTextureSize);const R=new Float32Array(y*L*4*d),A=new tc(R,y,L,d);A.type=fn,A.needsUpdate=!0;const U=b*4;for(let M=0;M0)return i;const s=t*e;let r=ol[s];if(r===void 0&&(r=new Float32Array(s),ol[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 ye(i,t){if(i.length!==t.length)return!1;for(let e=0,n=i.length;e0||h&&u&&s(u)?(e===null&&(e=new nl(i)),f=c?e.fromEquirectangular(o):e.fromCubemap(o),f.texture.pmremVersion=o.pmremVersion,t.set(o,f),o.addEventListener("dispose",r),f.texture):null}}}return o}function s(o){let l=0;const c=6;for(let h=0;ht.maxTextureSize&&(L=Math.ceil(y/t.maxTextureSize),y=t.maxTextureSize);const R=new Float32Array(y*L*4*f),A=new tc(R,y,L,f);A.type=fn,A.needsUpdate=!0;const U=E*4;for(let M=0;M0)return i;const s=t*e;let r=ol[s];if(r===void 0&&(r=new Float32Array(s),ol[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 ye(i,t){if(i.length!==t.length)return!1;for(let e=0,n=i.length;e":" "} ${o}: ${e[a]}`)}return n.join(` -`)}const pl=new Ht;function sm(i){$t._getMatrix(pl,$t.workingColorSpace,i);const t=`mat3( ${pl.elements.map(e=>e.toFixed(4))} )`;switch($t.getTransfer(i)){case ir:return[t,"LinearTransferOETF"];case re:return[t,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",i),[t,"LinearTransferOETF"]}}function ml(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()+` +`)}const pl=new kt;function sm(i){$t._getMatrix(pl,$t.workingColorSpace,i);const t=`mat3( ${pl.elements.map(e=>e.toFixed(4))} )`;switch($t.getTransfer(i)){case ir:return[t,"LinearTransferOETF"];case re:return[t,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",i),[t,"LinearTransferOETF"]}}function ml(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+` @@ -3751,28 +3751,28 @@ void main() { `;return i.precision==="highp"?t+=` #define HIGH_PRECISION`:i.precision==="mediump"?t+=` #define MEDIUM_PRECISION`:i.precision==="lowp"&&(t+=` -#define LOW_PRECISION`),t}function gm(i){let t="SHADOWMAP_TYPE_BASIC";return i.shadowMapType===Ol?t="SHADOWMAP_TYPE_PCF":i.shadowMapType===zc?t="SHADOWMAP_TYPE_PCF_SOFT":i.shadowMapType===yn&&(t="SHADOWMAP_TYPE_VSM"),t}function _m(i){let t="ENVMAP_TYPE_CUBE";if(i.envMap)switch(i.envMapMode){case Bi:case zi:t="ENVMAP_TYPE_CUBE";break;case fr:t="ENVMAP_TYPE_CUBE_UV";break}return t}function vm(i){let t="ENVMAP_MODE_REFLECTION";if(i.envMap)switch(i.envMapMode){case zi:t="ENVMAP_MODE_REFRACTION";break}return t}function xm(i){let t="ENVMAP_BLENDING_NONE";if(i.envMap)switch(i.combine){case Bl:t="ENVMAP_BLENDING_MULTIPLY";break;case sh:t="ENVMAP_BLENDING_MIX";break;case rh:t="ENVMAP_BLENDING_ADD";break}return t}function Mm(i){const t=i.envMapCubeUVHeight;if(t===null)return null;const e=Math.log2(t)-2,n=1/t;return{texelWidth:1/(3*Math.max(Math.pow(2,e),112)),texelHeight:n,maxMip:e}}function Sm(i,t,e,n){const s=i.getContext(),r=e.defines;let a=e.vertexShader,o=e.fragmentShader;const l=gm(e),c=_m(e),h=vm(e),d=xm(e),p=Mm(e),f=lm(e),g=cm(r),v=s.createProgram();let m,u,T=e.glslVersion?"#version "+e.glslVersion+` +#define LOW_PRECISION`),t}function gm(i){let t="SHADOWMAP_TYPE_BASIC";return i.shadowMapType===Ol?t="SHADOWMAP_TYPE_PCF":i.shadowMapType===zc?t="SHADOWMAP_TYPE_PCF_SOFT":i.shadowMapType===yn&&(t="SHADOWMAP_TYPE_VSM"),t}function _m(i){let t="ENVMAP_TYPE_CUBE";if(i.envMap)switch(i.envMapMode){case Bi:case zi:t="ENVMAP_TYPE_CUBE";break;case fr:t="ENVMAP_TYPE_CUBE_UV";break}return t}function vm(i){let t="ENVMAP_MODE_REFLECTION";if(i.envMap)switch(i.envMapMode){case zi:t="ENVMAP_MODE_REFRACTION";break}return t}function xm(i){let t="ENVMAP_BLENDING_NONE";if(i.envMap)switch(i.combine){case Bl:t="ENVMAP_BLENDING_MULTIPLY";break;case sh:t="ENVMAP_BLENDING_MIX";break;case rh:t="ENVMAP_BLENDING_ADD";break}return t}function Mm(i){const t=i.envMapCubeUVHeight;if(t===null)return null;const e=Math.log2(t)-2,n=1/t;return{texelWidth:1/(3*Math.max(Math.pow(2,e),112)),texelHeight:n,maxMip:e}}function Sm(i,t,e,n){const s=i.getContext(),r=e.defines;let a=e.vertexShader,o=e.fragmentShader;const l=gm(e),c=_m(e),h=vm(e),f=xm(e),p=Mm(e),u=lm(e),g=cm(r),_=s.createProgram();let m,d,T=e.glslVersion?"#version "+e.glslVersion+` `:"";e.isRawShaderMaterial?(m=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(as).join(` `),m.length>0&&(m+=` -`),u=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(as).join(` -`),u.length>0&&(u+=` +`),d=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(as).join(` +`),d.length>0&&(d+=` `)):(m=[xl(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(as).join(` -`),u=[xl(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!==On?"#define TONE_MAPPING":"",e.toneMapping!==On?Vt.tonemapping_pars_fragment:"",e.toneMapping!==On?am("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Vt.colorspace_pars_fragment,rm("linearToOutputTexel",e.outputColorSpace),om(),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",` +`),d=[xl(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 "+f:"",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!==On?"#define TONE_MAPPING":"",e.toneMapping!==On?Vt.tonemapping_pars_fragment:"",e.toneMapping!==On?am("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Vt.colorspace_pars_fragment,rm("linearToOutputTexel",e.outputColorSpace),om(),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",` `].filter(as).join(` `)),a=Xa(a),a=gl(a,e),a=_l(a,e),o=Xa(o),o=gl(o,e),o=_l(o,e),a=vl(a),o=vl(o),e.isRawShaderMaterial!==!0&&(T=`#version 300 es -`,m=[f,"#define attribute in","#define varying out","#define texture2D texture"].join(` +`,m=[u,"#define attribute in","#define varying out","#define texture2D texture"].join(` `)+` -`+m,u=["#define varying in",e.glslVersion===_o?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===_o?"":"#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,d=["#define varying in",e.glslVersion===_o?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===_o?"":"#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(` `)+` -`+u);const b=T+m+a,y=T+u+o,L=fl(s,s.VERTEX_SHADER,b),R=fl(s,s.FRAGMENT_SHADER,y);s.attachShader(v,L),s.attachShader(v,R),e.index0AttributeName!==void 0?s.bindAttribLocation(v,0,e.index0AttributeName):e.morphTargets===!0&&s.bindAttribLocation(v,0,"position"),s.linkProgram(v);function A(D){if(i.debug.checkShaderErrors){const W=s.getProgramInfoLog(v).trim(),z=s.getShaderInfoLog(L).trim(),V=s.getShaderInfoLog(R).trim();let $=!0,G=!0;if(s.getProgramParameter(v,s.LINK_STATUS)===!1)if($=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(s,v,L,R);else{const J=ml(s,L,"vertex"),k=ml(s,R,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(v,s.VALIDATE_STATUS)+` +`+d);const E=T+m+a,y=T+d+o,L=fl(s,s.VERTEX_SHADER,E),R=fl(s,s.FRAGMENT_SHADER,y);s.attachShader(_,L),s.attachShader(_,R),e.index0AttributeName!==void 0?s.bindAttribLocation(_,0,e.index0AttributeName):e.morphTargets===!0&&s.bindAttribLocation(_,0,"position"),s.linkProgram(_);function A(D){if(i.debug.checkShaderErrors){const W=s.getProgramInfoLog(_).trim(),z=s.getShaderInfoLog(L).trim(),V=s.getShaderInfoLog(R).trim();let $=!0,G=!0;if(s.getProgramParameter(_,s.LINK_STATUS)===!1)if($=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(s,_,L,R);else{const J=ml(s,L,"vertex"),H=ml(s,R,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(_,s.VALIDATE_STATUS)+` Material Name: `+D.name+` Material Type: `+D.type+` Program Info Log: `+W+` `+J+` -`+k)}else W!==""?console.warn("THREE.WebGLProgram: Program Info Log:",W):(z===""||V==="")&&(G=!1);G&&(D.diagnostics={runnable:$,programLog:W,vertexShader:{log:z,prefix:m},fragmentShader:{log:V,prefix:u}})}s.deleteShader(L),s.deleteShader(R),U=new tr(s,v),S=hm(s,v)}let U;this.getUniforms=function(){return U===void 0&&A(this),U};let S;this.getAttributes=function(){return S===void 0&&A(this),S};let M=e.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return M===!1&&(M=s.getProgramParameter(v,em)),M},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(v),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=nm++,this.cacheKey=t,this.usedTimes=1,this.program=v,this.vertexShader=L,this.fragmentShader=R,this}let ym=0;class Em{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 bm(t),e.set(t,n)),n}}class bm{constructor(t){this.id=ym++,this.code=t,this.usedTimes=0}}function Tm(i,t,e,n,s,r,a){const o=new to,l=new Em,c=new Set,h=[],d=s.logarithmicDepthBuffer,p=s.vertexTextures;let f=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 v(S){return c.add(S),S===0?"uv":`uv${S}`}function m(S,M,D,W,z){const V=W.fog,$=z.geometry,G=S.isMeshStandardMaterial?W.environment:null,J=(S.isMeshStandardMaterial?e:t).get(S.envMap||G),k=J&&J.mapping===fr?J.image.height:null,it=g[S.type];S.precision!==null&&(f=s.getMaxPrecision(S.precision),f!==S.precision&&console.warn("THREE.WebGLProgram.getParameters:",S.precision,"not supported, using",f,"instead."));const ut=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,yt=ut!==void 0?ut.length:0;let Lt=0;$.morphAttributes.position!==void 0&&(Lt=1),$.morphAttributes.normal!==void 0&&(Lt=2),$.morphAttributes.color!==void 0&&(Lt=3);let qt,Y,nt,xt;if(it){const Jt=cn[it];qt=Jt.vertexShader,Y=Jt.fragmentShader}else qt=S.vertexShader,Y=S.fragmentShader,l.update(S),nt=l.getVertexShaderID(S),xt=l.getFragmentShaderID(S);const at=i.getRenderTarget(),wt=i.state.buffers.depth.getReversed(),Ut=z.isInstancedMesh===!0,Gt=z.isBatchedMesh===!0,ce=!!S.map,rt=!!S.matcap,Ct=!!J,w=!!S.aoMap,ve=!!S.lightMap,Bt=!!S.bumpMap,kt=!!S.normalMap,Mt=!!S.displacementMap,ne=!!S.emissiveMap,Et=!!S.metalnessMap,E=!!S.roughnessMap,_=S.anisotropy>0,F=S.clearcoat>0,Z=S.dispersion>0,K=S.iridescence>0,X=S.sheen>0,St=S.transmission>0,ot=_&&!!S.anisotropyMap,dt=F&&!!S.clearcoatMap,jt=F&&!!S.clearcoatNormalMap,tt=F&&!!S.clearcoatRoughnessMap,mt=K&&!!S.iridescenceMap,bt=K&&!!S.iridescenceThicknessMap,Pt=X&&!!S.sheenColorMap,ft=X&&!!S.sheenRoughnessMap,Xt=!!S.specularMap,zt=!!S.specularColorMap,se=!!S.specularIntensityMap,C=St&&!!S.transmissionMap,et=St&&!!S.thicknessMap,H=!!S.gradientMap,q=!!S.alphaMap,lt=S.alphaTest>0,ct=!!S.alphaHash,Nt=!!S.extensions;let ue=On;S.toneMapped&&(at===null||at.isXRRenderTarget===!0)&&(ue=i.toneMapping);const xe={shaderID:it,shaderType:S.type,shaderName:S.name,vertexShader:qt,fragmentShader:Y,defines:S.defines,customVertexShaderID:nt,customFragmentShaderID:xt,isRawShaderMaterial:S.isRawShaderMaterial===!0,glslVersion:S.glslVersion,precision:f,batching:Gt,batchingColor:Gt&&z._colorsTexture!==null,instancing:Ut,instancingColor:Ut&&z.instanceColor!==null,instancingMorph:Ut&&z.morphTexture!==null,supportsVertexTextures:p,outputColorSpace:at===null?i.outputColorSpace:at.isXRRenderTarget===!0?at.texture.colorSpace:Vi,alphaToCoverage:!!S.alphaToCoverage,map:ce,matcap:rt,envMap:Ct,envMapMode:Ct&&J.mapping,envMapCubeUVHeight:k,aoMap:w,lightMap:ve,bumpMap:Bt,normalMap:kt,displacementMap:p&&Mt,emissiveMap:ne,normalMapObjectSpace:kt&&S.normalMapType===mh,normalMapTangentSpace:kt&&S.normalMapType===Kl,metalnessMap:Et,roughnessMap:E,anisotropy:_,anisotropyMap:ot,clearcoat:F,clearcoatMap:dt,clearcoatNormalMap:jt,clearcoatRoughnessMap:tt,dispersion:Z,iridescence:K,iridescenceMap:mt,iridescenceThicknessMap:bt,sheen:X,sheenColorMap:Pt,sheenRoughnessMap:ft,specularMap:Xt,specularColorMap:zt,specularIntensityMap:se,transmission:St,transmissionMap:C,thicknessMap:et,gradientMap:H,opaque:S.transparent===!1&&S.blending===Ui&&S.alphaToCoverage===!1,alphaMap:q,alphaTest:lt,alphaHash:ct,combine:S.combine,mapUv:ce&&v(S.map.channel),aoMapUv:w&&v(S.aoMap.channel),lightMapUv:ve&&v(S.lightMap.channel),bumpMapUv:Bt&&v(S.bumpMap.channel),normalMapUv:kt&&v(S.normalMap.channel),displacementMapUv:Mt&&v(S.displacementMap.channel),emissiveMapUv:ne&&v(S.emissiveMap.channel),metalnessMapUv:Et&&v(S.metalnessMap.channel),roughnessMapUv:E&&v(S.roughnessMap.channel),anisotropyMapUv:ot&&v(S.anisotropyMap.channel),clearcoatMapUv:dt&&v(S.clearcoatMap.channel),clearcoatNormalMapUv:jt&&v(S.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&v(S.clearcoatRoughnessMap.channel),iridescenceMapUv:mt&&v(S.iridescenceMap.channel),iridescenceThicknessMapUv:bt&&v(S.iridescenceThicknessMap.channel),sheenColorMapUv:Pt&&v(S.sheenColorMap.channel),sheenRoughnessMapUv:ft&&v(S.sheenRoughnessMap.channel),specularMapUv:Xt&&v(S.specularMap.channel),specularColorMapUv:zt&&v(S.specularColorMap.channel),specularIntensityMapUv:se&&v(S.specularIntensityMap.channel),transmissionMapUv:C&&v(S.transmissionMap.channel),thicknessMapUv:et&&v(S.thicknessMap.channel),alphaMapUv:q&&v(S.alphaMap.channel),vertexTangents:!!$.attributes.tangent&&(kt||_),vertexColors:S.vertexColors,vertexAlphas:S.vertexColors===!0&&!!$.attributes.color&&$.attributes.color.itemSize===4,pointsUvs:z.isPoints===!0&&!!$.attributes.uv&&(ce||q),fog:!!V,useFog:S.fog===!0,fogExp2:!!V&&V.isFogExp2,flatShading:S.flatShading===!0,sizeAttenuation:S.sizeAttenuation===!0,logarithmicDepthBuffer:d,reverseDepthBuffer:wt,skinning:z.isSkinnedMesh===!0,morphTargets:$.morphAttributes.position!==void 0,morphNormals:$.morphAttributes.normal!==void 0,morphColors:$.morphAttributes.color!==void 0,morphTargetsCount:yt,morphTextureStride:Lt,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&&D.length>0,shadowMapType:i.shadowMap.type,toneMapping:ue,decodeVideoTexture:ce&&S.map.isVideoTexture===!0&&$t.getTransfer(S.map.colorSpace)===re,decodeVideoTextureEmissive:ne&&S.emissiveMap.isVideoTexture===!0&&$t.getTransfer(S.emissiveMap.colorSpace)===re,premultipliedAlpha:S.premultipliedAlpha,doubleSided:S.side===hn,flipSided:S.side===ke,useDepthPacking:S.depthPacking>=0,depthPacking:S.depthPacking||0,index0AttributeName:S.index0AttributeName,extensionClipCullDistance:Nt&&S.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Nt&&S.extensions.multiDraw===!0||Gt)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:S.customProgramCacheKey()};return xe.vertexUv1s=c.has(1),xe.vertexUv2s=c.has(2),xe.vertexUv3s=c.has(3),c.clear(),xe}function u(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&&(T(M,S),b(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 b(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 D;if(M){const W=cn[M];D=ar.clone(W.uniforms)}else D=S.uniforms;return D}function L(S,M){let D;for(let W=0,z=h.length;W0?n.push(u):f.transparent===!0?s.push(u):e.push(u)}function l(d,p,f,g,v,m){const u=a(d,p,f,g,v,m);f.transmission>0?n.unshift(u):f.transparent===!0?s.unshift(u):e.unshift(u)}function c(d,p){e.length>1&&e.sort(d||Am),n.length>1&&n.sort(p||Ml),s.length>1&&s.sort(p||Ml)}function h(){for(let d=t,p=i.length;d=r.length?(a=new Sl,r.push(a)):a=r[s],a}function e(){i=new WeakMap}return{get:t,dispose:e}}function Cm(){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 pt};break;case"SpotLight":e={position:new P,direction:new P,color:new pt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new P,color:new pt,distance:0,decay:0};break;case"HemisphereLight":e={direction:new P,skyColor:new pt,groundColor:new pt};break;case"RectAreaLight":e={color:new pt,position:new P,halfWidth:new P,halfHeight:new P};break}return i[t.id]=e,e}}}function Pm(){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 vt};break;case"SpotLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[t.id]=e,e}}}let Dm=0;function Lm(i,t){return(t.castShadow?2:0)-(i.castShadow?2:0)+(t.map?1:0)-(i.map?1:0)}function Um(i){const t=new Cm,e=Pm(),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 ee,a=new ee;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 f=0,g=0,v=0,m=0,u=0,T=0,b=0,y=0,L=0,R=0,A=0;c.sort(Lm);for(let S=0,M=c.length;S0&&(i.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=st.LTC_FLOAT_1,n.rectAreaLTC2=st.LTC_FLOAT_2):(n.rectAreaLTC1=st.LTC_HALF_1,n.rectAreaLTC2=st.LTC_HALF_2)),n.ambient[0]=h,n.ambient[1]=d,n.ambient[2]=p;const U=n.hash;(U.directionalLength!==f||U.pointLength!==g||U.spotLength!==v||U.rectAreaLength!==m||U.hemiLength!==u||U.numDirectionalShadows!==T||U.numPointShadows!==b||U.numSpotShadows!==y||U.numSpotMaps!==L||U.numLightProbes!==A)&&(n.directional.length=f,n.spot.length=v,n.rectArea.length=m,n.point.length=g,n.hemi.length=u,n.directionalShadow.length=T,n.directionalShadowMap.length=T,n.pointShadow.length=b,n.pointShadowMap.length=b,n.spotShadow.length=y,n.spotShadowMap.length=y,n.directionalShadowMatrix.length=T,n.pointShadowMatrix.length=b,n.spotLightMatrix.length=y+L-R,n.spotLightMap.length=L,n.numSpotLightShadowsWithMaps=R,n.numLightProbes=A,U.directionalLength=f,U.pointLength=g,U.spotLength=v,U.rectAreaLength=m,U.hemiLength=u,U.numDirectionalShadows=T,U.numPointShadows=b,U.numSpotShadows=y,U.numSpotMaps=L,U.numLightProbes=A,n.version=Dm++)}function l(c,h){let d=0,p=0,f=0,g=0,v=0;const m=h.matrixWorldInverse;for(let u=0,T=c.length;u=a.length?(o=new yl(i),a.push(o)):o=a[r],o}function n(){t=new WeakMap}return{get:e,dispose:n}}const Nm=`void main() { +`+H)}else W!==""?console.warn("THREE.WebGLProgram: Program Info Log:",W):(z===""||V==="")&&(G=!1);G&&(D.diagnostics={runnable:$,programLog:W,vertexShader:{log:z,prefix:m},fragmentShader:{log:V,prefix:d}})}s.deleteShader(L),s.deleteShader(R),U=new tr(s,_),S=hm(s,_)}let U;this.getUniforms=function(){return U===void 0&&A(this),U};let S;this.getAttributes=function(){return S===void 0&&A(this),S};let M=e.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return M===!1&&(M=s.getProgramParameter(_,em)),M},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(_),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=nm++,this.cacheKey=t,this.usedTimes=1,this.program=_,this.vertexShader=L,this.fragmentShader=R,this}let ym=0;class Em{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 bm(t),e.set(t,n)),n}}class bm{constructor(t){this.id=ym++,this.code=t,this.usedTimes=0}}function Tm(i,t,e,n,s,r,a){const o=new to,l=new Em,c=new Set,h=[],f=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,D,W,z){const V=W.fog,$=z.geometry,G=S.isMeshStandardMaterial?W.environment:null,J=(S.isMeshStandardMaterial?e:t).get(S.envMap||G),H=J&&J.mapping===fr?J.image.height:null,it=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 dt=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,yt=dt!==void 0?dt.length:0;let Lt=0;$.morphAttributes.position!==void 0&&(Lt=1),$.morphAttributes.normal!==void 0&&(Lt=2),$.morphAttributes.color!==void 0&&(Lt=3);let qt,Y,nt,xt;if(it){const Jt=cn[it];qt=Jt.vertexShader,Y=Jt.fragmentShader}else qt=S.vertexShader,Y=S.fragmentShader,l.update(S),nt=l.getVertexShaderID(S),xt=l.getFragmentShaderID(S);const ot=i.getRenderTarget(),wt=i.state.buffers.depth.getReversed(),Ut=z.isInstancedMesh===!0,Gt=z.isBatchedMesh===!0,ce=!!S.map,rt=!!S.matcap,Ct=!!J,w=!!S.aoMap,ve=!!S.lightMap,Bt=!!S.bumpMap,Ht=!!S.normalMap,Mt=!!S.displacementMap,ne=!!S.emissiveMap,Et=!!S.metalnessMap,b=!!S.roughnessMap,v=S.anisotropy>0,F=S.clearcoat>0,Z=S.dispersion>0,K=S.iridescence>0,X=S.sheen>0,St=S.transmission>0,lt=v&&!!S.anisotropyMap,ft=F&&!!S.clearcoatMap,jt=F&&!!S.clearcoatNormalMap,tt=F&&!!S.clearcoatRoughnessMap,mt=K&&!!S.iridescenceMap,bt=K&&!!S.iridescenceThicknessMap,Pt=X&&!!S.sheenColorMap,pt=X&&!!S.sheenRoughnessMap,Xt=!!S.specularMap,zt=!!S.specularColorMap,se=!!S.specularIntensityMap,C=St&&!!S.transmissionMap,et=St&&!!S.thicknessMap,k=!!S.gradientMap,q=!!S.alphaMap,ct=S.alphaTest>0,ht=!!S.alphaHash,Nt=!!S.extensions;let ue=On;S.toneMapped&&(ot===null||ot.isXRRenderTarget===!0)&&(ue=i.toneMapping);const xe={shaderID:it,shaderType:S.type,shaderName:S.name,vertexShader:qt,fragmentShader:Y,defines:S.defines,customVertexShaderID:nt,customFragmentShaderID:xt,isRawShaderMaterial:S.isRawShaderMaterial===!0,glslVersion:S.glslVersion,precision:u,batching:Gt,batchingColor:Gt&&z._colorsTexture!==null,instancing:Ut,instancingColor:Ut&&z.instanceColor!==null,instancingMorph:Ut&&z.morphTexture!==null,supportsVertexTextures:p,outputColorSpace:ot===null?i.outputColorSpace:ot.isXRRenderTarget===!0?ot.texture.colorSpace:Vi,alphaToCoverage:!!S.alphaToCoverage,map:ce,matcap:rt,envMap:Ct,envMapMode:Ct&&J.mapping,envMapCubeUVHeight:H,aoMap:w,lightMap:ve,bumpMap:Bt,normalMap:Ht,displacementMap:p&&Mt,emissiveMap:ne,normalMapObjectSpace:Ht&&S.normalMapType===mh,normalMapTangentSpace:Ht&&S.normalMapType===Kl,metalnessMap:Et,roughnessMap:b,anisotropy:v,anisotropyMap:lt,clearcoat:F,clearcoatMap:ft,clearcoatNormalMap:jt,clearcoatRoughnessMap:tt,dispersion:Z,iridescence:K,iridescenceMap:mt,iridescenceThicknessMap:bt,sheen:X,sheenColorMap:Pt,sheenRoughnessMap:pt,specularMap:Xt,specularColorMap:zt,specularIntensityMap:se,transmission:St,transmissionMap:C,thicknessMap:et,gradientMap:k,opaque:S.transparent===!1&&S.blending===Ui&&S.alphaToCoverage===!1,alphaMap:q,alphaTest:ct,alphaHash:ht,combine:S.combine,mapUv:ce&&_(S.map.channel),aoMapUv:w&&_(S.aoMap.channel),lightMapUv:ve&&_(S.lightMap.channel),bumpMapUv:Bt&&_(S.bumpMap.channel),normalMapUv:Ht&&_(S.normalMap.channel),displacementMapUv:Mt&&_(S.displacementMap.channel),emissiveMapUv:ne&&_(S.emissiveMap.channel),metalnessMapUv:Et&&_(S.metalnessMap.channel),roughnessMapUv:b&&_(S.roughnessMap.channel),anisotropyMapUv:lt&&_(S.anisotropyMap.channel),clearcoatMapUv:ft&&_(S.clearcoatMap.channel),clearcoatNormalMapUv:jt&&_(S.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:tt&&_(S.clearcoatRoughnessMap.channel),iridescenceMapUv:mt&&_(S.iridescenceMap.channel),iridescenceThicknessMapUv:bt&&_(S.iridescenceThicknessMap.channel),sheenColorMapUv:Pt&&_(S.sheenColorMap.channel),sheenRoughnessMapUv:pt&&_(S.sheenRoughnessMap.channel),specularMapUv:Xt&&_(S.specularMap.channel),specularColorMapUv:zt&&_(S.specularColorMap.channel),specularIntensityMapUv:se&&_(S.specularIntensityMap.channel),transmissionMapUv:C&&_(S.transmissionMap.channel),thicknessMapUv:et&&_(S.thicknessMap.channel),alphaMapUv:q&&_(S.alphaMap.channel),vertexTangents:!!$.attributes.tangent&&(Ht||v),vertexColors:S.vertexColors,vertexAlphas:S.vertexColors===!0&&!!$.attributes.color&&$.attributes.color.itemSize===4,pointsUvs:z.isPoints===!0&&!!$.attributes.uv&&(ce||q),fog:!!V,useFog:S.fog===!0,fogExp2:!!V&&V.isFogExp2,flatShading:S.flatShading===!0,sizeAttenuation:S.sizeAttenuation===!0,logarithmicDepthBuffer:f,reverseDepthBuffer:wt,skinning:z.isSkinnedMesh===!0,morphTargets:$.morphAttributes.position!==void 0,morphNormals:$.morphAttributes.normal!==void 0,morphColors:$.morphAttributes.color!==void 0,morphTargetsCount:yt,morphTextureStride:Lt,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&&D.length>0,shadowMapType:i.shadowMap.type,toneMapping:ue,decodeVideoTexture:ce&&S.map.isVideoTexture===!0&&$t.getTransfer(S.map.colorSpace)===re,decodeVideoTextureEmissive:ne&&S.emissiveMap.isVideoTexture===!0&&$t.getTransfer(S.emissiveMap.colorSpace)===re,premultipliedAlpha:S.premultipliedAlpha,doubleSided:S.side===hn,flipSided:S.side===He,useDepthPacking:S.depthPacking>=0,depthPacking:S.depthPacking||0,index0AttributeName:S.index0AttributeName,extensionClipCullDistance:Nt&&S.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Nt&&S.extensions.multiDraw===!0||Gt)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:S.customProgramCacheKey()};return xe.vertexUv1s=c.has(1),xe.vertexUv2s=c.has(2),xe.vertexUv3s=c.has(3),c.clear(),xe}function d(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&&(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 D;if(M){const W=cn[M];D=ar.clone(W.uniforms)}else D=S.uniforms;return D}function L(S,M){let D;for(let W=0,z=h.length;W0?n.push(d):u.transparent===!0?s.push(d):e.push(d)}function l(f,p,u,g,_,m){const d=a(f,p,u,g,_,m);u.transmission>0?n.unshift(d):u.transparent===!0?s.unshift(d):e.unshift(d)}function c(f,p){e.length>1&&e.sort(f||Am),n.length>1&&n.sort(p||Ml),s.length>1&&s.sort(p||Ml)}function h(){for(let f=t,p=i.length;f=r.length?(a=new Sl,r.push(a)):a=r[s],a}function e(){i=new WeakMap}return{get:t,dispose:e}}function Cm(){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 at};break;case"SpotLight":e={position:new P,direction:new P,color:new at,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new P,color:new at,distance:0,decay:0};break;case"HemisphereLight":e={direction:new P,skyColor:new at,groundColor:new at};break;case"RectAreaLight":e={color:new at,position:new P,halfWidth:new P,halfHeight:new P};break}return i[t.id]=e,e}}}function Pm(){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 vt};break;case"SpotLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new vt,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[t.id]=e,e}}}let Dm=0;function Lm(i,t){return(t.castShadow?2:0)-(i.castShadow?2:0)+(t.map?1:0)-(i.map?1:0)}function Um(i){const t=new Cm,e=Pm(),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 ee,a=new ee;function o(c){let h=0,f=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,d=0,T=0,E=0,y=0,L=0,R=0,A=0;c.sort(Lm);for(let S=0,M=c.length;S0&&(i.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=st.LTC_FLOAT_1,n.rectAreaLTC2=st.LTC_FLOAT_2):(n.rectAreaLTC1=st.LTC_HALF_1,n.rectAreaLTC2=st.LTC_HALF_2)),n.ambient[0]=h,n.ambient[1]=f,n.ambient[2]=p;const U=n.hash;(U.directionalLength!==u||U.pointLength!==g||U.spotLength!==_||U.rectAreaLength!==m||U.hemiLength!==d||U.numDirectionalShadows!==T||U.numPointShadows!==E||U.numSpotShadows!==y||U.numSpotMaps!==L||U.numLightProbes!==A)&&(n.directional.length=u,n.spot.length=_,n.rectArea.length=m,n.point.length=g,n.hemi.length=d,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+L-R,n.spotLightMap.length=L,n.numSpotLightShadowsWithMaps=R,n.numLightProbes=A,U.directionalLength=u,U.pointLength=g,U.spotLength=_,U.rectAreaLength=m,U.hemiLength=d,U.numDirectionalShadows=T,U.numPointShadows=E,U.numSpotShadows=y,U.numSpotMaps=L,U.numLightProbes=A,n.version=Dm++)}function l(c,h){let f=0,p=0,u=0,g=0,_=0;const m=h.matrixWorldInverse;for(let d=0,T=c.length;d=a.length?(o=new yl(i),a.push(o)):o=a[r],o}function n(){t=new WeakMap}return{get:e,dispose:n}}const Nm=`void main() { gl_Position = vec4( position, 1.0 ); }`,Fm=`uniform sampler2D shadow_pass; uniform vec2 resolution; @@ -3800,7 +3800,7 @@ void main() { squared_mean = squared_mean / samples; float std_dev = sqrt( squared_mean - mean * mean ); gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function Om(i,t,e){let n=new eo;const s=new vt,r=new vt,a=new le,o=new su({depthPacking:ph}),l=new ru,c={},h=e.maxTextureSize,d={[zn]:ke,[ke]:zn,[hn]:hn},p=new Fe({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new vt},radius:{value:4}},vertexShader:Nm,fragmentShader:Fm}),f=p.clone();f.defines.HORIZONTAL_PASS=1;const g=new pe;g.setAttribute("position",new he(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Se(g,p),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ol;let u=this.type;this.render=function(R,A,U){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||R.length===0)return;const S=i.getRenderTarget(),M=i.getActiveCubeFace(),D=i.getActiveMipmapLevel(),W=i.state;W.setBlending(bn),W.buffers.color.setClear(1,1,1,1),W.buffers.depth.setTest(!0),W.setScissorTest(!1);const z=u!==yn&&this.type===yn,V=u===yn&&this.type!==yn;for(let $=0,G=R.length;$h||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/it.x),s.x=r.x*it.x,k.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/it.y),s.y=r.y*it.y,k.mapSize.y=r.y)),k.map===null||z===!0||V===!0){const yt=this.type!==yn?{minFilter:qe,magFilter:qe}:{};k.map!==null&&k.map.dispose(),k.map=new on(s.x,s.y,yt),k.map.texture.name=J.name+".shadowMap",k.camera.updateProjectionMatrix()}i.setRenderTarget(k.map),i.clear();const ut=k.getViewportCount();for(let yt=0;yt0||A.map&&A.alphaTest>0){const W=M.uuid,z=A.uuid;let V=c[W];V===void 0&&(V={},c[W]=V);let $=V[z];$===void 0&&($=M.clone(),V[z]=$,A.addEventListener("dispose",L)),M=$}if(M.visible=A.visible,M.wireframe=A.wireframe,S===yn?M.side=A.shadowSide!==null?A.shadowSide:A.side:M.side=A.shadowSide!==null?A.shadowSide:d[A.side],M.alphaMap=A.alphaMap,M.alphaTest=A.alphaTest,M.map=A.map,M.clipShadows=A.clipShadows,M.clippingPlanes=A.clippingPlanes,M.clipIntersection=A.clipIntersection,M.displacementMap=A.displacementMap,M.displacementScale=A.displacementScale,M.displacementBias=A.displacementBias,M.wireframeLinewidth=A.wireframeLinewidth,M.linewidth=A.linewidth,U.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const W=i.properties.get(M);W.light=U}return M}function y(R,A,U,S,M){if(R.visible===!1)return;if(R.layers.test(A.layers)&&(R.isMesh||R.isLine||R.isPoints)&&(R.castShadow||R.receiveShadow&&M===yn)&&(!R.frustumCulled||n.intersectsObject(R))){R.modelViewMatrix.multiplyMatrices(U.matrixWorldInverse,R.matrixWorld);const z=t.update(R),V=R.material;if(Array.isArray(V)){const $=z.groups;for(let G=0,J=$.length;G=1):k.indexOf("OpenGL ES")!==-1&&(J=parseFloat(/^OpenGL ES (\d)/.exec(k)[1]),G=J>=2);let it=null,ut={};const yt=i.getParameter(i.SCISSOR_BOX),Lt=i.getParameter(i.VIEWPORT),qt=new le().fromArray(yt),Y=new le().fromArray(Lt);function nt(C,et,H,q){const lt=new Uint8Array(4),ct=i.createTexture();i.bindTexture(C,ct),i.texParameteri(C,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(C,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let Nt=0;Nt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new vt,h=new WeakMap;let d;const p=new WeakMap;let f=!1;try{f=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function g(E,_){return f?new OffscreenCanvas(E,_):rr("canvas")}function v(E,_,F){let Z=1;const K=Et(E);if((K.width>F||K.height>F)&&(Z=F/Math.max(K.width,K.height)),Z<1)if(typeof HTMLImageElement<"u"&&E instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&E instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&E instanceof ImageBitmap||typeof VideoFrame<"u"&&E instanceof VideoFrame){const X=Math.floor(Z*K.width),St=Math.floor(Z*K.height);d===void 0&&(d=g(X,St));const ot=_?g(X,St):d;return ot.width=X,ot.height=St,ot.getContext("2d").drawImage(E,0,0,X,St),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+K.width+"x"+K.height+") to ("+X+"x"+St+")."),ot}else return"data"in E&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+K.width+"x"+K.height+")."),E;return E}function m(E){return E.generateMipmaps}function u(E){i.generateMipmap(E)}function T(E){return E.isWebGLCubeRenderTarget?i.TEXTURE_CUBE_MAP:E.isWebGL3DRenderTarget?i.TEXTURE_3D:E.isWebGLArrayRenderTarget||E.isCompressedArrayTexture?i.TEXTURE_2D_ARRAY:i.TEXTURE_2D}function b(E,_,F,Z,K=!1){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 X=_;if(_===i.RED&&(F===i.FLOAT&&(X=i.R32F),F===i.HALF_FLOAT&&(X=i.R16F),F===i.UNSIGNED_BYTE&&(X=i.R8)),_===i.RED_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.R8UI),F===i.UNSIGNED_SHORT&&(X=i.R16UI),F===i.UNSIGNED_INT&&(X=i.R32UI),F===i.BYTE&&(X=i.R8I),F===i.SHORT&&(X=i.R16I),F===i.INT&&(X=i.R32I)),_===i.RG&&(F===i.FLOAT&&(X=i.RG32F),F===i.HALF_FLOAT&&(X=i.RG16F),F===i.UNSIGNED_BYTE&&(X=i.RG8)),_===i.RG_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.RG8UI),F===i.UNSIGNED_SHORT&&(X=i.RG16UI),F===i.UNSIGNED_INT&&(X=i.RG32UI),F===i.BYTE&&(X=i.RG8I),F===i.SHORT&&(X=i.RG16I),F===i.INT&&(X=i.RG32I)),_===i.RGB_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.RGB8UI),F===i.UNSIGNED_SHORT&&(X=i.RGB16UI),F===i.UNSIGNED_INT&&(X=i.RGB32UI),F===i.BYTE&&(X=i.RGB8I),F===i.SHORT&&(X=i.RGB16I),F===i.INT&&(X=i.RGB32I)),_===i.RGBA_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.RGBA8UI),F===i.UNSIGNED_SHORT&&(X=i.RGBA16UI),F===i.UNSIGNED_INT&&(X=i.RGBA32UI),F===i.BYTE&&(X=i.RGBA8I),F===i.SHORT&&(X=i.RGBA16I),F===i.INT&&(X=i.RGBA32I)),_===i.RGB&&F===i.UNSIGNED_INT_5_9_9_9_REV&&(X=i.RGB9_E5),_===i.RGBA){const St=K?ir:$t.getTransfer(Z);F===i.FLOAT&&(X=i.RGBA32F),F===i.HALF_FLOAT&&(X=i.RGBA16F),F===i.UNSIGNED_BYTE&&(X=St===re?i.SRGB8_ALPHA8:i.RGBA8),F===i.UNSIGNED_SHORT_4_4_4_4&&(X=i.RGBA4),F===i.UNSIGNED_SHORT_5_5_5_1&&(X=i.RGB5_A1)}return(X===i.R16F||X===i.R32F||X===i.RG16F||X===i.RG32F||X===i.RGBA16F||X===i.RGBA32F)&&t.get("EXT_color_buffer_float"),X}function y(E,_){let F;return E?_===null||_===ni||_===Hi?F=i.DEPTH24_STENCIL8:_===fn?F=i.DEPTH32F_STENCIL8:_===ls&&(F=i.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):_===null||_===ni||_===Hi?F=i.DEPTH_COMPONENT24:_===fn?F=i.DEPTH_COMPONENT32F:_===ls&&(F=i.DEPTH_COMPONENT16),F}function L(E,_){return m(E)===!0||E.isFramebufferTexture&&E.minFilter!==qe&&E.minFilter!==dn?Math.log2(Math.max(_.width,_.height))+1:E.mipmaps!==void 0&&E.mipmaps.length>0?E.mipmaps.length:E.isCompressedTexture&&Array.isArray(E.image)?_.mipmaps.length:1}function R(E){const _=E.target;_.removeEventListener("dispose",R),U(_),_.isVideoTexture&&h.delete(_)}function A(E){const _=E.target;_.removeEventListener("dispose",A),M(_)}function U(E){const _=n.get(E);if(_.__webglInit===void 0)return;const F=E.source,Z=p.get(F);if(Z){const K=Z[_.__cacheKey];K.usedTimes--,K.usedTimes===0&&S(E),Object.keys(Z).length===0&&p.delete(F)}n.remove(E)}function S(E){const _=n.get(E);i.deleteTexture(_.__webglTexture);const F=E.source,Z=p.get(F);delete Z[_.__cacheKey],a.memory.textures--}function M(E){const _=n.get(E);if(E.depthTexture&&(E.depthTexture.dispose(),n.remove(E.depthTexture)),E.isWebGLCubeRenderTarget)for(let Z=0;Z<6;Z++){if(Array.isArray(_.__webglFramebuffer[Z]))for(let K=0;K<_.__webglFramebuffer[Z].length;K++)i.deleteFramebuffer(_.__webglFramebuffer[Z][K]);else i.deleteFramebuffer(_.__webglFramebuffer[Z]);_.__webglDepthbuffer&&i.deleteRenderbuffer(_.__webglDepthbuffer[Z])}else{if(Array.isArray(_.__webglFramebuffer))for(let Z=0;Z<_.__webglFramebuffer.length;Z++)i.deleteFramebuffer(_.__webglFramebuffer[Z]);else i.deleteFramebuffer(_.__webglFramebuffer);if(_.__webglDepthbuffer&&i.deleteRenderbuffer(_.__webglDepthbuffer),_.__webglMultisampledFramebuffer&&i.deleteFramebuffer(_.__webglMultisampledFramebuffer),_.__webglColorRenderbuffer)for(let Z=0;Z<_.__webglColorRenderbuffer.length;Z++)_.__webglColorRenderbuffer[Z]&&i.deleteRenderbuffer(_.__webglColorRenderbuffer[Z]);_.__webglDepthRenderbuffer&&i.deleteRenderbuffer(_.__webglDepthRenderbuffer)}const F=E.textures;for(let Z=0,K=F.length;Z=s.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+E+" texture units while this GPU supports only "+s.maxTextures),D+=1,E}function V(E){const _=[];return _.push(E.wrapS),_.push(E.wrapT),_.push(E.wrapR||0),_.push(E.magFilter),_.push(E.minFilter),_.push(E.anisotropy),_.push(E.internalFormat),_.push(E.format),_.push(E.type),_.push(E.generateMipmaps),_.push(E.premultiplyAlpha),_.push(E.flipY),_.push(E.unpackAlignment),_.push(E.colorSpace),_.join()}function $(E,_){const F=n.get(E);if(E.isVideoTexture&&Mt(E),E.isRenderTargetTexture===!1&&E.version>0&&F.__version!==E.version){const Z=E.image;if(Z===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Z.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Y(F,E,_);return}}e.bindTexture(i.TEXTURE_2D,F.__webglTexture,i.TEXTURE0+_)}function G(E,_){const F=n.get(E);if(E.version>0&&F.__version!==E.version){Y(F,E,_);return}e.bindTexture(i.TEXTURE_2D_ARRAY,F.__webglTexture,i.TEXTURE0+_)}function J(E,_){const F=n.get(E);if(E.version>0&&F.__version!==E.version){Y(F,E,_);return}e.bindTexture(i.TEXTURE_3D,F.__webglTexture,i.TEXTURE0+_)}function k(E,_){const F=n.get(E);if(E.version>0&&F.__version!==E.version){nt(F,E,_);return}e.bindTexture(i.TEXTURE_CUBE_MAP,F.__webglTexture,i.TEXTURE0+_)}const it={[da]:i.REPEAT,[Jn]:i.CLAMP_TO_EDGE,[fa]:i.MIRRORED_REPEAT},ut={[qe]:i.NEAREST,[dh]:i.NEAREST_MIPMAP_NEAREST,[gs]:i.NEAREST_MIPMAP_LINEAR,[dn]:i.LINEAR,[xr]:i.LINEAR_MIPMAP_NEAREST,[Qn]:i.LINEAR_MIPMAP_LINEAR},yt={[gh]:i.NEVER,[yh]:i.ALWAYS,[_h]:i.LESS,[$l]:i.LEQUAL,[vh]:i.EQUAL,[Sh]:i.GEQUAL,[xh]:i.GREATER,[Mh]:i.NOTEQUAL};function Lt(E,_){if(_.type===fn&&t.has("OES_texture_float_linear")===!1&&(_.magFilter===dn||_.magFilter===xr||_.magFilter===gs||_.magFilter===Qn||_.minFilter===dn||_.minFilter===xr||_.minFilter===gs||_.minFilter===Qn)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),i.texParameteri(E,i.TEXTURE_WRAP_S,it[_.wrapS]),i.texParameteri(E,i.TEXTURE_WRAP_T,it[_.wrapT]),(E===i.TEXTURE_3D||E===i.TEXTURE_2D_ARRAY)&&i.texParameteri(E,i.TEXTURE_WRAP_R,it[_.wrapR]),i.texParameteri(E,i.TEXTURE_MAG_FILTER,ut[_.magFilter]),i.texParameteri(E,i.TEXTURE_MIN_FILTER,ut[_.minFilter]),_.compareFunction&&(i.texParameteri(E,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(E,i.TEXTURE_COMPARE_FUNC,yt[_.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){if(_.magFilter===qe||_.minFilter!==gs&&_.minFilter!==Qn||_.type===fn&&t.has("OES_texture_float_linear")===!1)return;if(_.anisotropy>1||n.get(_).__currentAnisotropy){const F=t.get("EXT_texture_filter_anisotropic");i.texParameterf(E,F.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(_.anisotropy,s.getMaxAnisotropy())),n.get(_).__currentAnisotropy=_.anisotropy}}}function qt(E,_){let F=!1;E.__webglInit===void 0&&(E.__webglInit=!0,_.addEventListener("dispose",R));const Z=_.source;let K=p.get(Z);K===void 0&&(K={},p.set(Z,K));const X=V(_);if(X!==E.__cacheKey){K[X]===void 0&&(K[X]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,F=!0),K[X].usedTimes++;const St=K[E.__cacheKey];St!==void 0&&(K[E.__cacheKey].usedTimes--,St.usedTimes===0&&S(_)),E.__cacheKey=X,E.__webglTexture=K[X].texture}return F}function Y(E,_,F){let Z=i.TEXTURE_2D;(_.isDataArrayTexture||_.isCompressedArrayTexture)&&(Z=i.TEXTURE_2D_ARRAY),_.isData3DTexture&&(Z=i.TEXTURE_3D);const K=qt(E,_),X=_.source;e.bindTexture(Z,E.__webglTexture,i.TEXTURE0+F);const St=n.get(X);if(X.version!==St.__version||K===!0){e.activeTexture(i.TEXTURE0+F);const ot=$t.getPrimaries($t.workingColorSpace),dt=_.colorSpace===Fn?null:$t.getPrimaries(_.colorSpace),jt=_.colorSpace===Fn||ot===dt?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,_.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,_.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,jt);let tt=v(_.image,!1,s.maxTextureSize);tt=ne(_,tt);const mt=r.convert(_.format,_.colorSpace),bt=r.convert(_.type);let Pt=b(_.internalFormat,mt,bt,_.colorSpace,_.isVideoTexture);Lt(Z,_);let ft;const Xt=_.mipmaps,zt=_.isVideoTexture!==!0,se=St.__version===void 0||K===!0,C=X.dataReady,et=L(_,tt);if(_.isDepthTexture)Pt=y(_.format===ki,_.type),se&&(zt?e.texStorage2D(i.TEXTURE_2D,1,Pt,tt.width,tt.height):e.texImage2D(i.TEXTURE_2D,0,Pt,tt.width,tt.height,0,mt,bt,null));else if(_.isDataTexture)if(Xt.length>0){zt&&se&&e.texStorage2D(i.TEXTURE_2D,et,Pt,Xt[0].width,Xt[0].height);for(let H=0,q=Xt.length;H0){const lt=Jo(ft.width,ft.height,_.format,_.type);for(const ct of _.layerUpdates){const Nt=ft.data.subarray(ct*lt/ft.data.BYTES_PER_ELEMENT,(ct+1)*lt/ft.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,H,0,0,ct,ft.width,ft.height,1,mt,Nt)}_.clearLayerUpdates()}else e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,H,0,0,0,ft.width,ft.height,tt.depth,mt,ft.data)}else e.compressedTexImage3D(i.TEXTURE_2D_ARRAY,H,Pt,ft.width,ft.height,tt.depth,0,ft.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else zt?C&&e.texSubImage3D(i.TEXTURE_2D_ARRAY,H,0,0,0,ft.width,ft.height,tt.depth,mt,bt,ft.data):e.texImage3D(i.TEXTURE_2D_ARRAY,H,Pt,ft.width,ft.height,tt.depth,0,mt,bt,ft.data)}else{zt&&se&&e.texStorage2D(i.TEXTURE_2D,et,Pt,Xt[0].width,Xt[0].height);for(let H=0,q=Xt.length;H0){const H=Jo(tt.width,tt.height,_.format,_.type);for(const q of _.layerUpdates){const lt=tt.data.subarray(q*H/tt.data.BYTES_PER_ELEMENT,(q+1)*H/tt.data.BYTES_PER_ELEMENT);e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,q,tt.width,tt.height,1,mt,bt,lt)}_.clearLayerUpdates()}else e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,0,tt.width,tt.height,tt.depth,mt,bt,tt.data)}else e.texImage3D(i.TEXTURE_2D_ARRAY,0,Pt,tt.width,tt.height,tt.depth,0,mt,bt,tt.data);else if(_.isData3DTexture)zt?(se&&e.texStorage3D(i.TEXTURE_3D,et,Pt,tt.width,tt.height,tt.depth),C&&e.texSubImage3D(i.TEXTURE_3D,0,0,0,0,tt.width,tt.height,tt.depth,mt,bt,tt.data)):e.texImage3D(i.TEXTURE_3D,0,Pt,tt.width,tt.height,tt.depth,0,mt,bt,tt.data);else if(_.isFramebufferTexture){if(se)if(zt)e.texStorage2D(i.TEXTURE_2D,et,Pt,tt.width,tt.height);else{let H=tt.width,q=tt.height;for(let lt=0;lt>=1,q>>=1}}else if(Xt.length>0){if(zt&&se){const H=Et(Xt[0]);e.texStorage2D(i.TEXTURE_2D,et,Pt,H.width,H.height)}for(let H=0,q=Xt.length;H0&&et++;const q=Et(mt[0]);e.texStorage2D(i.TEXTURE_CUBE_MAP,et,Xt,q.width,q.height)}for(let q=0;q<6;q++)if(tt){zt?C&&e.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+q,0,0,0,mt[q].width,mt[q].height,Pt,ft,mt[q].data):e.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+q,0,Xt,mt[q].width,mt[q].height,0,Pt,ft,mt[q].data);for(let lt=0;lt>X),bt=Math.max(1,_.height>>X);K===i.TEXTURE_3D||K===i.TEXTURE_2D_ARRAY?e.texImage3D(K,X,dt,mt,bt,_.depth,0,St,ot,null):e.texImage2D(K,X,dt,mt,bt,0,St,ot,null)}e.bindFramebuffer(i.FRAMEBUFFER,E),kt(_)?o.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,Z,K,tt.__webglTexture,0,Bt(_)):(K===i.TEXTURE_2D||K>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&K<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,Z,K,tt.__webglTexture,X),e.bindFramebuffer(i.FRAMEBUFFER,null)}function at(E,_,F){if(i.bindRenderbuffer(i.RENDERBUFFER,E),_.depthBuffer){const Z=_.depthTexture,K=Z&&Z.isDepthTexture?Z.type:null,X=y(_.stencilBuffer,K),St=_.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,ot=Bt(_);kt(_)?o.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,ot,X,_.width,_.height):F?i.renderbufferStorageMultisample(i.RENDERBUFFER,ot,X,_.width,_.height):i.renderbufferStorage(i.RENDERBUFFER,X,_.width,_.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,St,i.RENDERBUFFER,E)}else{const Z=_.textures;for(let K=0;K{delete _.__boundDepthTexture,delete _.__depthDisposeCallback,Z.removeEventListener("dispose",K)};Z.addEventListener("dispose",K),_.__depthDisposeCallback=K}_.__boundDepthTexture=Z}if(E.depthTexture&&!_.__autoAllocateDepthBuffer){if(F)throw new Error("target.depthTexture not supported in Cube render targets");wt(_.__webglFramebuffer,E)}else if(F){_.__webglDepthbuffer=[];for(let Z=0;Z<6;Z++)if(e.bindFramebuffer(i.FRAMEBUFFER,_.__webglFramebuffer[Z]),_.__webglDepthbuffer[Z]===void 0)_.__webglDepthbuffer[Z]=i.createRenderbuffer(),at(_.__webglDepthbuffer[Z],E,!1);else{const K=E.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,X=_.__webglDepthbuffer[Z];i.bindRenderbuffer(i.RENDERBUFFER,X),i.framebufferRenderbuffer(i.FRAMEBUFFER,K,i.RENDERBUFFER,X)}}else if(e.bindFramebuffer(i.FRAMEBUFFER,_.__webglFramebuffer),_.__webglDepthbuffer===void 0)_.__webglDepthbuffer=i.createRenderbuffer(),at(_.__webglDepthbuffer,E,!1);else{const Z=E.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,K=_.__webglDepthbuffer;i.bindRenderbuffer(i.RENDERBUFFER,K),i.framebufferRenderbuffer(i.FRAMEBUFFER,Z,i.RENDERBUFFER,K)}e.bindFramebuffer(i.FRAMEBUFFER,null)}function Gt(E,_,F){const Z=n.get(E);_!==void 0&&xt(Z.__webglFramebuffer,E,E.texture,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,0),F!==void 0&&Ut(E)}function ce(E){const _=E.texture,F=n.get(E),Z=n.get(_);E.addEventListener("dispose",A);const K=E.textures,X=E.isWebGLCubeRenderTarget===!0,St=K.length>1;if(St||(Z.__webglTexture===void 0&&(Z.__webglTexture=i.createTexture()),Z.__version=_.version,a.memory.textures++),X){F.__webglFramebuffer=[];for(let ot=0;ot<6;ot++)if(_.mipmaps&&_.mipmaps.length>0){F.__webglFramebuffer[ot]=[];for(let dt=0;dt<_.mipmaps.length;dt++)F.__webglFramebuffer[ot][dt]=i.createFramebuffer()}else F.__webglFramebuffer[ot]=i.createFramebuffer()}else{if(_.mipmaps&&_.mipmaps.length>0){F.__webglFramebuffer=[];for(let ot=0;ot<_.mipmaps.length;ot++)F.__webglFramebuffer[ot]=i.createFramebuffer()}else F.__webglFramebuffer=i.createFramebuffer();if(St)for(let ot=0,dt=K.length;ot0&&kt(E)===!1){F.__webglMultisampledFramebuffer=i.createFramebuffer(),F.__webglColorRenderbuffer=[],e.bindFramebuffer(i.FRAMEBUFFER,F.__webglMultisampledFramebuffer);for(let ot=0;ot0)for(let dt=0;dt<_.mipmaps.length;dt++)xt(F.__webglFramebuffer[ot][dt],E,_,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+ot,dt);else xt(F.__webglFramebuffer[ot],E,_,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+ot,0);m(_)&&u(i.TEXTURE_CUBE_MAP),e.unbindTexture()}else if(St){for(let ot=0,dt=K.length;ot0)for(let dt=0;dt<_.mipmaps.length;dt++)xt(F.__webglFramebuffer[dt],E,_,i.COLOR_ATTACHMENT0,ot,dt);else xt(F.__webglFramebuffer,E,_,i.COLOR_ATTACHMENT0,ot,0);m(_)&&u(ot),e.unbindTexture()}E.depthBuffer&&Ut(E)}function rt(E){const _=E.textures;for(let F=0,Z=_.length;F0){if(kt(E)===!1){const _=E.textures,F=E.width,Z=E.height;let K=i.COLOR_BUFFER_BIT;const X=E.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,St=n.get(E),ot=_.length>1;if(ot)for(let dt=0;dt<_.length;dt++)e.bindFramebuffer(i.FRAMEBUFFER,St.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+dt,i.RENDERBUFFER,null),e.bindFramebuffer(i.FRAMEBUFFER,St.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+dt,i.TEXTURE_2D,null,0);e.bindFramebuffer(i.READ_FRAMEBUFFER,St.__webglMultisampledFramebuffer),e.bindFramebuffer(i.DRAW_FRAMEBUFFER,St.__webglFramebuffer);for(let dt=0;dt<_.length;dt++){if(E.resolveDepthBuffer&&(E.depthBuffer&&(K|=i.DEPTH_BUFFER_BIT),E.stencilBuffer&&E.resolveStencilBuffer&&(K|=i.STENCIL_BUFFER_BIT)),ot){i.framebufferRenderbuffer(i.READ_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,St.__webglColorRenderbuffer[dt]);const jt=n.get(_[dt]).__webglTexture;i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,jt,0)}i.blitFramebuffer(0,0,F,Z,0,0,F,Z,K,i.NEAREST),l===!0&&(Ct.length=0,w.length=0,Ct.push(i.COLOR_ATTACHMENT0+dt),E.depthBuffer&&E.resolveDepthBuffer===!1&&(Ct.push(X),w.push(X),i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,w)),i.invalidateFramebuffer(i.READ_FRAMEBUFFER,Ct))}if(e.bindFramebuffer(i.READ_FRAMEBUFFER,null),e.bindFramebuffer(i.DRAW_FRAMEBUFFER,null),ot)for(let dt=0;dt<_.length;dt++){e.bindFramebuffer(i.FRAMEBUFFER,St.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+dt,i.RENDERBUFFER,St.__webglColorRenderbuffer[dt]);const jt=n.get(_[dt]).__webglTexture;e.bindFramebuffer(i.FRAMEBUFFER,St.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+dt,i.TEXTURE_2D,jt,0)}e.bindFramebuffer(i.DRAW_FRAMEBUFFER,St.__webglMultisampledFramebuffer)}else if(E.depthBuffer&&E.resolveDepthBuffer===!1&&l){const _=E.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT;i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,[_])}}}function Bt(E){return Math.min(s.maxSamples,E.samples)}function kt(E){const _=n.get(E);return E.samples>0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&_.__useRenderToTexture!==!1}function Mt(E){const _=a.render.frame;h.get(E)!==_&&(h.set(E,_),E.update())}function ne(E,_){const F=E.colorSpace,Z=E.format,K=E.type;return E.isCompressedTexture===!0||E.isVideoTexture===!0||F!==Vi&&F!==Fn&&($t.getTransfer(F)===re?(Z!==an||K!==An)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",F)),_}function Et(E){return typeof HTMLImageElement<"u"&&E instanceof HTMLImageElement?(c.width=E.naturalWidth||E.width,c.height=E.naturalHeight||E.height):typeof VideoFrame<"u"&&E instanceof VideoFrame?(c.width=E.displayWidth,c.height=E.displayHeight):(c.width=E.width,c.height=E.height),c}this.allocateTextureUnit=z,this.resetTextureUnits=W,this.setTexture2D=$,this.setTexture2DArray=G,this.setTexture3D=J,this.setTextureCube=k,this.rebindTextures=Gt,this.setupRenderTarget=ce,this.updateRenderTargetMipmap=rt,this.updateMultisampleRenderTarget=ve,this.setupDepthRenderbuffer=Ut,this.setupFrameBufferTexture=xt,this.useMultisampledRTT=kt}function km(i,t){function e(n,s=Fn){let r;const a=$t.getTransfer(s);if(n===An)return i.UNSIGNED_BYTE;if(n===ja)return i.UNSIGNED_SHORT_4_4_4_4;if(n===Za)return i.UNSIGNED_SHORT_5_5_5_1;if(n===Gl)return i.UNSIGNED_INT_5_9_9_9_REV;if(n===kl)return i.BYTE;if(n===Vl)return i.SHORT;if(n===ls)return i.UNSIGNED_SHORT;if(n===qa)return i.INT;if(n===ni)return i.UNSIGNED_INT;if(n===fn)return i.FLOAT;if(n===Tn)return i.HALF_FLOAT;if(n===Wl)return i.ALPHA;if(n===Xl)return i.RGB;if(n===an)return i.RGBA;if(n===Yl)return i.LUMINANCE;if(n===ql)return i.LUMINANCE_ALPHA;if(n===Ii)return i.DEPTH_COMPONENT;if(n===ki)return i.DEPTH_STENCIL;if(n===Ka)return i.RED;if(n===$a)return i.RED_INTEGER;if(n===jl)return i.RG;if(n===Ja)return i.RG_INTEGER;if(n===Qa)return i.RGBA_INTEGER;if(n===qs||n===js||n===Zs||n===Ks)if(a===re)if(r=t.get("WEBGL_compressed_texture_s3tc_srgb"),r!==null){if(n===qs)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===js)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===Zs)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===Ks)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(r=t.get("WEBGL_compressed_texture_s3tc"),r!==null){if(n===qs)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===js)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===Zs)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===Ks)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===pa||n===ma||n===ga||n===_a)if(r=t.get("WEBGL_compressed_texture_pvrtc"),r!==null){if(n===pa)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===ma)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===ga)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===_a)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===va||n===xa||n===Ma)if(r=t.get("WEBGL_compressed_texture_etc"),r!==null){if(n===va||n===xa)return a===re?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===Ma)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(n===Sa||n===ya||n===Ea||n===ba||n===Ta||n===wa||n===Aa||n===Ra||n===Ca||n===Pa||n===Da||n===La||n===Ua||n===Ia)if(r=t.get("WEBGL_compressed_texture_astc"),r!==null){if(n===Sa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===ya)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Ea)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===ba)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Ta)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===wa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===Aa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===Ra)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Ca)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===Pa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Da)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===La)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Ua)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Ia)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===$s||n===Na||n===Fa)if(r=t.get("EXT_texture_compression_bptc"),r!==null){if(n===$s)return a===re?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===Na)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===Fa)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===Zl||n===Oa||n===Ba||n===za)if(r=t.get("EXT_texture_compression_rgtc"),r!==null){if(n===$s)return r.COMPRESSED_RED_RGTC1_EXT;if(n===Oa)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Ba)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===za)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return n===Hi?i.UNSIGNED_INT_24_8:i[n]!==void 0?i[n]:null}return{convert:e}}const Vm={type:"move"};class $r{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Pi,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 Pi,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 Pi,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 v of t.hand.values()){const m=e.getJointPose(v,n),u=this._getHandJoint(c,v);m!==null&&(u.matrix.fromArray(m.transform.matrix),u.matrix.decompose(u.position,u.rotation,u.scale),u.matrixWorldNeedsUpdate=!0,u.jointRadius=m.radius),u.visible=m!==null}const h=c.joints["index-finger-tip"],d=c.joints["thumb-tip"],p=h.position.distanceTo(d.position),f=.02,g=.005;c.inputState.pinching&&p>f+g?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&p<=f-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(Vm)))}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 Pi;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const Gm=` +}`;function Om(i,t,e){let n=new eo;const s=new vt,r=new vt,a=new le,o=new su({depthPacking:ph}),l=new ru,c={},h=e.maxTextureSize,f={[zn]:He,[He]:zn,[hn]:hn},p=new Fe({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new vt},radius:{value:4}},vertexShader:Nm,fragmentShader:Fm}),u=p.clone();u.defines.HORIZONTAL_PASS=1;const g=new pe;g.setAttribute("position",new he(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new Se(g,p),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ol;let d=this.type;this.render=function(R,A,U){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||R.length===0)return;const S=i.getRenderTarget(),M=i.getActiveCubeFace(),D=i.getActiveMipmapLevel(),W=i.state;W.setBlending(bn),W.buffers.color.setClear(1,1,1,1),W.buffers.depth.setTest(!0),W.setScissorTest(!1);const z=d!==yn&&this.type===yn,V=d===yn&&this.type!==yn;for(let $=0,G=R.length;$h||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/it.x),s.x=r.x*it.x,H.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/it.y),s.y=r.y*it.y,H.mapSize.y=r.y)),H.map===null||z===!0||V===!0){const yt=this.type!==yn?{minFilter:qe,magFilter:qe}:{};H.map!==null&&H.map.dispose(),H.map=new on(s.x,s.y,yt),H.map.texture.name=J.name+".shadowMap",H.camera.updateProjectionMatrix()}i.setRenderTarget(H.map),i.clear();const dt=H.getViewportCount();for(let yt=0;yt0||A.map&&A.alphaTest>0){const W=M.uuid,z=A.uuid;let V=c[W];V===void 0&&(V={},c[W]=V);let $=V[z];$===void 0&&($=M.clone(),V[z]=$,A.addEventListener("dispose",L)),M=$}if(M.visible=A.visible,M.wireframe=A.wireframe,S===yn?M.side=A.shadowSide!==null?A.shadowSide:A.side:M.side=A.shadowSide!==null?A.shadowSide:f[A.side],M.alphaMap=A.alphaMap,M.alphaTest=A.alphaTest,M.map=A.map,M.clipShadows=A.clipShadows,M.clippingPlanes=A.clippingPlanes,M.clipIntersection=A.clipIntersection,M.displacementMap=A.displacementMap,M.displacementScale=A.displacementScale,M.displacementBias=A.displacementBias,M.wireframeLinewidth=A.wireframeLinewidth,M.linewidth=A.linewidth,U.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const W=i.properties.get(M);W.light=U}return M}function y(R,A,U,S,M){if(R.visible===!1)return;if(R.layers.test(A.layers)&&(R.isMesh||R.isLine||R.isPoints)&&(R.castShadow||R.receiveShadow&&M===yn)&&(!R.frustumCulled||n.intersectsObject(R))){R.modelViewMatrix.multiplyMatrices(U.matrixWorldInverse,R.matrixWorld);const z=t.update(R),V=R.material;if(Array.isArray(V)){const $=z.groups;for(let G=0,J=$.length;G=1):H.indexOf("OpenGL ES")!==-1&&(J=parseFloat(/^OpenGL ES (\d)/.exec(H)[1]),G=J>=2);let it=null,dt={};const yt=i.getParameter(i.SCISSOR_BOX),Lt=i.getParameter(i.VIEWPORT),qt=new le().fromArray(yt),Y=new le().fromArray(Lt);function nt(C,et,k,q){const ct=new Uint8Array(4),ht=i.createTexture();i.bindTexture(C,ht),i.texParameteri(C,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(C,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let Nt=0;Nt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new vt,h=new WeakMap;let f;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):rr("canvas")}function _(b,v,F){let Z=1;const K=Et(b);if((K.width>F||K.height>F)&&(Z=F/Math.max(K.width,K.height)),Z<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 X=Math.floor(Z*K.width),St=Math.floor(Z*K.height);f===void 0&&(f=g(X,St));const lt=v?g(X,St):f;return lt.width=X,lt.height=St,lt.getContext("2d").drawImage(b,0,0,X,St),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+K.width+"x"+K.height+") to ("+X+"x"+St+")."),lt}else return"data"in b&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+K.width+"x"+K.height+")."),b;return b}function m(b){return b.generateMipmaps}function d(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,Z,K=!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 X=v;if(v===i.RED&&(F===i.FLOAT&&(X=i.R32F),F===i.HALF_FLOAT&&(X=i.R16F),F===i.UNSIGNED_BYTE&&(X=i.R8)),v===i.RED_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.R8UI),F===i.UNSIGNED_SHORT&&(X=i.R16UI),F===i.UNSIGNED_INT&&(X=i.R32UI),F===i.BYTE&&(X=i.R8I),F===i.SHORT&&(X=i.R16I),F===i.INT&&(X=i.R32I)),v===i.RG&&(F===i.FLOAT&&(X=i.RG32F),F===i.HALF_FLOAT&&(X=i.RG16F),F===i.UNSIGNED_BYTE&&(X=i.RG8)),v===i.RG_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.RG8UI),F===i.UNSIGNED_SHORT&&(X=i.RG16UI),F===i.UNSIGNED_INT&&(X=i.RG32UI),F===i.BYTE&&(X=i.RG8I),F===i.SHORT&&(X=i.RG16I),F===i.INT&&(X=i.RG32I)),v===i.RGB_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.RGB8UI),F===i.UNSIGNED_SHORT&&(X=i.RGB16UI),F===i.UNSIGNED_INT&&(X=i.RGB32UI),F===i.BYTE&&(X=i.RGB8I),F===i.SHORT&&(X=i.RGB16I),F===i.INT&&(X=i.RGB32I)),v===i.RGBA_INTEGER&&(F===i.UNSIGNED_BYTE&&(X=i.RGBA8UI),F===i.UNSIGNED_SHORT&&(X=i.RGBA16UI),F===i.UNSIGNED_INT&&(X=i.RGBA32UI),F===i.BYTE&&(X=i.RGBA8I),F===i.SHORT&&(X=i.RGBA16I),F===i.INT&&(X=i.RGBA32I)),v===i.RGB&&F===i.UNSIGNED_INT_5_9_9_9_REV&&(X=i.RGB9_E5),v===i.RGBA){const St=K?ir:$t.getTransfer(Z);F===i.FLOAT&&(X=i.RGBA32F),F===i.HALF_FLOAT&&(X=i.RGBA16F),F===i.UNSIGNED_BYTE&&(X=St===re?i.SRGB8_ALPHA8:i.RGBA8),F===i.UNSIGNED_SHORT_4_4_4_4&&(X=i.RGBA4),F===i.UNSIGNED_SHORT_5_5_5_1&&(X=i.RGB5_A1)}return(X===i.R16F||X===i.R32F||X===i.RG16F||X===i.RG32F||X===i.RGBA16F||X===i.RGBA32F)&&t.get("EXT_color_buffer_float"),X}function y(b,v){let F;return b?v===null||v===ni||v===ki?F=i.DEPTH24_STENCIL8:v===fn?F=i.DEPTH32F_STENCIL8:v===ls&&(F=i.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):v===null||v===ni||v===ki?F=i.DEPTH_COMPONENT24:v===fn?F=i.DEPTH_COMPONENT32F:v===ls&&(F=i.DEPTH_COMPONENT16),F}function L(b,v){return m(b)===!0||b.isFramebufferTexture&&b.minFilter!==qe&&b.minFilter!==dn?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 R(b){const v=b.target;v.removeEventListener("dispose",R),U(v),v.isVideoTexture&&h.delete(v)}function A(b){const v=b.target;v.removeEventListener("dispose",A),M(v)}function U(b){const v=n.get(b);if(v.__webglInit===void 0)return;const F=b.source,Z=p.get(F);if(Z){const K=Z[v.__cacheKey];K.usedTimes--,K.usedTimes===0&&S(b),Object.keys(Z).length===0&&p.delete(F)}n.remove(b)}function S(b){const v=n.get(b);i.deleteTexture(v.__webglTexture);const F=b.source,Z=p.get(F);delete Z[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 Z=0;Z<6;Z++){if(Array.isArray(v.__webglFramebuffer[Z]))for(let K=0;K=s.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+b+" texture units while this GPU supports only "+s.maxTextures),D+=1,b}function V(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 $(b,v){const F=n.get(b);if(b.isVideoTexture&&Mt(b),b.isRenderTargetTexture===!1&&b.version>0&&F.__version!==b.version){const Z=b.image;if(Z===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Z.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 G(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 J(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 it={[da]:i.REPEAT,[Jn]:i.CLAMP_TO_EDGE,[fa]:i.MIRRORED_REPEAT},dt={[qe]:i.NEAREST,[dh]:i.NEAREST_MIPMAP_NEAREST,[gs]:i.NEAREST_MIPMAP_LINEAR,[dn]:i.LINEAR,[xr]:i.LINEAR_MIPMAP_NEAREST,[Qn]:i.LINEAR_MIPMAP_LINEAR},yt={[gh]:i.NEVER,[yh]:i.ALWAYS,[_h]:i.LESS,[$l]:i.LEQUAL,[vh]:i.EQUAL,[Sh]:i.GEQUAL,[xh]:i.GREATER,[Mh]:i.NOTEQUAL};function Lt(b,v){if(v.type===fn&&t.has("OES_texture_float_linear")===!1&&(v.magFilter===dn||v.magFilter===xr||v.magFilter===gs||v.magFilter===Qn||v.minFilter===dn||v.minFilter===xr||v.minFilter===gs||v.minFilter===Qn)&&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,it[v.wrapS]),i.texParameteri(b,i.TEXTURE_WRAP_T,it[v.wrapT]),(b===i.TEXTURE_3D||b===i.TEXTURE_2D_ARRAY)&&i.texParameteri(b,i.TEXTURE_WRAP_R,it[v.wrapR]),i.texParameteri(b,i.TEXTURE_MAG_FILTER,dt[v.magFilter]),i.texParameteri(b,i.TEXTURE_MIN_FILTER,dt[v.minFilter]),v.compareFunction&&(i.texParameteri(b,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(b,i.TEXTURE_COMPARE_FUNC,yt[v.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){if(v.magFilter===qe||v.minFilter!==gs&&v.minFilter!==Qn||v.type===fn&&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 qt(b,v){let F=!1;b.__webglInit===void 0&&(b.__webglInit=!0,v.addEventListener("dispose",R));const Z=v.source;let K=p.get(Z);K===void 0&&(K={},p.set(Z,K));const X=V(v);if(X!==b.__cacheKey){K[X]===void 0&&(K[X]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,F=!0),K[X].usedTimes++;const St=K[b.__cacheKey];St!==void 0&&(K[b.__cacheKey].usedTimes--,St.usedTimes===0&&S(v)),b.__cacheKey=X,b.__webglTexture=K[X].texture}return F}function Y(b,v,F){let Z=i.TEXTURE_2D;(v.isDataArrayTexture||v.isCompressedArrayTexture)&&(Z=i.TEXTURE_2D_ARRAY),v.isData3DTexture&&(Z=i.TEXTURE_3D);const K=qt(b,v),X=v.source;e.bindTexture(Z,b.__webglTexture,i.TEXTURE0+F);const St=n.get(X);if(X.version!==St.__version||K===!0){e.activeTexture(i.TEXTURE0+F);const lt=$t.getPrimaries($t.workingColorSpace),ft=v.colorSpace===Fn?null:$t.getPrimaries(v.colorSpace),jt=v.colorSpace===Fn||lt===ft?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,jt);let tt=_(v.image,!1,s.maxTextureSize);tt=ne(v,tt);const mt=r.convert(v.format,v.colorSpace),bt=r.convert(v.type);let Pt=E(v.internalFormat,mt,bt,v.colorSpace,v.isVideoTexture);Lt(Z,v);let pt;const Xt=v.mipmaps,zt=v.isVideoTexture!==!0,se=St.__version===void 0||K===!0,C=X.dataReady,et=L(v,tt);if(v.isDepthTexture)Pt=y(v.format===Hi,v.type),se&&(zt?e.texStorage2D(i.TEXTURE_2D,1,Pt,tt.width,tt.height):e.texImage2D(i.TEXTURE_2D,0,Pt,tt.width,tt.height,0,mt,bt,null));else if(v.isDataTexture)if(Xt.length>0){zt&&se&&e.texStorage2D(i.TEXTURE_2D,et,Pt,Xt[0].width,Xt[0].height);for(let k=0,q=Xt.length;k0){const ct=Jo(pt.width,pt.height,v.format,v.type);for(const ht of v.layerUpdates){const Nt=pt.data.subarray(ht*ct/pt.data.BYTES_PER_ELEMENT,(ht+1)*ct/pt.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,k,0,0,ht,pt.width,pt.height,1,mt,Nt)}v.clearLayerUpdates()}else e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,k,0,0,0,pt.width,pt.height,tt.depth,mt,pt.data)}else e.compressedTexImage3D(i.TEXTURE_2D_ARRAY,k,Pt,pt.width,pt.height,tt.depth,0,pt.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else zt?C&&e.texSubImage3D(i.TEXTURE_2D_ARRAY,k,0,0,0,pt.width,pt.height,tt.depth,mt,bt,pt.data):e.texImage3D(i.TEXTURE_2D_ARRAY,k,Pt,pt.width,pt.height,tt.depth,0,mt,bt,pt.data)}else{zt&&se&&e.texStorage2D(i.TEXTURE_2D,et,Pt,Xt[0].width,Xt[0].height);for(let k=0,q=Xt.length;k0){const k=Jo(tt.width,tt.height,v.format,v.type);for(const q of v.layerUpdates){const ct=tt.data.subarray(q*k/tt.data.BYTES_PER_ELEMENT,(q+1)*k/tt.data.BYTES_PER_ELEMENT);e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,q,tt.width,tt.height,1,mt,bt,ct)}v.clearLayerUpdates()}else e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,0,tt.width,tt.height,tt.depth,mt,bt,tt.data)}else e.texImage3D(i.TEXTURE_2D_ARRAY,0,Pt,tt.width,tt.height,tt.depth,0,mt,bt,tt.data);else if(v.isData3DTexture)zt?(se&&e.texStorage3D(i.TEXTURE_3D,et,Pt,tt.width,tt.height,tt.depth),C&&e.texSubImage3D(i.TEXTURE_3D,0,0,0,0,tt.width,tt.height,tt.depth,mt,bt,tt.data)):e.texImage3D(i.TEXTURE_3D,0,Pt,tt.width,tt.height,tt.depth,0,mt,bt,tt.data);else if(v.isFramebufferTexture){if(se)if(zt)e.texStorage2D(i.TEXTURE_2D,et,Pt,tt.width,tt.height);else{let k=tt.width,q=tt.height;for(let ct=0;ct>=1,q>>=1}}else if(Xt.length>0){if(zt&&se){const k=Et(Xt[0]);e.texStorage2D(i.TEXTURE_2D,et,Pt,k.width,k.height)}for(let k=0,q=Xt.length;k0&&et++;const q=Et(mt[0]);e.texStorage2D(i.TEXTURE_CUBE_MAP,et,Xt,q.width,q.height)}for(let q=0;q<6;q++)if(tt){zt?C&&e.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+q,0,0,0,mt[q].width,mt[q].height,Pt,pt,mt[q].data):e.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+q,0,Xt,mt[q].width,mt[q].height,0,Pt,pt,mt[q].data);for(let ct=0;ct>X),bt=Math.max(1,v.height>>X);K===i.TEXTURE_3D||K===i.TEXTURE_2D_ARRAY?e.texImage3D(K,X,ft,mt,bt,v.depth,0,St,lt,null):e.texImage2D(K,X,ft,mt,bt,0,St,lt,null)}e.bindFramebuffer(i.FRAMEBUFFER,b),Ht(v)?o.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,Z,K,tt.__webglTexture,0,Bt(v)):(K===i.TEXTURE_2D||K>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&K<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,Z,K,tt.__webglTexture,X),e.bindFramebuffer(i.FRAMEBUFFER,null)}function ot(b,v,F){if(i.bindRenderbuffer(i.RENDERBUFFER,b),v.depthBuffer){const Z=v.depthTexture,K=Z&&Z.isDepthTexture?Z.type:null,X=y(v.stencilBuffer,K),St=v.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,lt=Bt(v);Ht(v)?o.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,lt,X,v.width,v.height):F?i.renderbufferStorageMultisample(i.RENDERBUFFER,lt,X,v.width,v.height):i.renderbufferStorage(i.RENDERBUFFER,X,v.width,v.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,St,i.RENDERBUFFER,b)}else{const Z=v.textures;for(let K=0;K{delete v.__boundDepthTexture,delete v.__depthDisposeCallback,Z.removeEventListener("dispose",K)};Z.addEventListener("dispose",K),v.__depthDisposeCallback=K}v.__boundDepthTexture=Z}if(b.depthTexture&&!v.__autoAllocateDepthBuffer){if(F)throw new Error("target.depthTexture not supported in Cube render targets");wt(v.__webglFramebuffer,b)}else if(F){v.__webglDepthbuffer=[];for(let Z=0;Z<6;Z++)if(e.bindFramebuffer(i.FRAMEBUFFER,v.__webglFramebuffer[Z]),v.__webglDepthbuffer[Z]===void 0)v.__webglDepthbuffer[Z]=i.createRenderbuffer(),ot(v.__webglDepthbuffer[Z],b,!1);else{const K=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,X=v.__webglDepthbuffer[Z];i.bindRenderbuffer(i.RENDERBUFFER,X),i.framebufferRenderbuffer(i.FRAMEBUFFER,K,i.RENDERBUFFER,X)}}else if(e.bindFramebuffer(i.FRAMEBUFFER,v.__webglFramebuffer),v.__webglDepthbuffer===void 0)v.__webglDepthbuffer=i.createRenderbuffer(),ot(v.__webglDepthbuffer,b,!1);else{const Z=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,K=v.__webglDepthbuffer;i.bindRenderbuffer(i.RENDERBUFFER,K),i.framebufferRenderbuffer(i.FRAMEBUFFER,Z,i.RENDERBUFFER,K)}e.bindFramebuffer(i.FRAMEBUFFER,null)}function Gt(b,v,F){const Z=n.get(b);v!==void 0&&xt(Z.__webglFramebuffer,b,b.texture,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,0),F!==void 0&&Ut(b)}function ce(b){const v=b.texture,F=n.get(b),Z=n.get(v);b.addEventListener("dispose",A);const K=b.textures,X=b.isWebGLCubeRenderTarget===!0,St=K.length>1;if(St||(Z.__webglTexture===void 0&&(Z.__webglTexture=i.createTexture()),Z.__version=v.version,a.memory.textures++),X){F.__webglFramebuffer=[];for(let lt=0;lt<6;lt++)if(v.mipmaps&&v.mipmaps.length>0){F.__webglFramebuffer[lt]=[];for(let ft=0;ft0){F.__webglFramebuffer=[];for(let lt=0;lt0&&Ht(b)===!1){F.__webglMultisampledFramebuffer=i.createFramebuffer(),F.__webglColorRenderbuffer=[],e.bindFramebuffer(i.FRAMEBUFFER,F.__webglMultisampledFramebuffer);for(let lt=0;lt0)for(let ft=0;ft0)for(let ft=0;ft0){if(Ht(b)===!1){const v=b.textures,F=b.width,Z=b.height;let K=i.COLOR_BUFFER_BIT;const X=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,St=n.get(b),lt=v.length>1;if(lt)for(let ft=0;ft0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&v.__useRenderToTexture!==!1}function Mt(b){const v=a.render.frame;h.get(b)!==v&&(h.set(b,v),b.update())}function ne(b,v){const F=b.colorSpace,Z=b.format,K=b.type;return b.isCompressedTexture===!0||b.isVideoTexture===!0||F!==Vi&&F!==Fn&&($t.getTransfer(F)===re?(Z!==an||K!==An)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",F)),v}function Et(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=z,this.resetTextureUnits=W,this.setTexture2D=$,this.setTexture2DArray=G,this.setTexture3D=J,this.setTextureCube=H,this.rebindTextures=Gt,this.setupRenderTarget=ce,this.updateRenderTargetMipmap=rt,this.updateMultisampleRenderTarget=ve,this.setupDepthRenderbuffer=Ut,this.setupFrameBufferTexture=xt,this.useMultisampledRTT=Ht}function Hm(i,t){function e(n,s=Fn){let r;const a=$t.getTransfer(s);if(n===An)return i.UNSIGNED_BYTE;if(n===ja)return i.UNSIGNED_SHORT_4_4_4_4;if(n===Za)return i.UNSIGNED_SHORT_5_5_5_1;if(n===Gl)return i.UNSIGNED_INT_5_9_9_9_REV;if(n===Hl)return i.BYTE;if(n===Vl)return i.SHORT;if(n===ls)return i.UNSIGNED_SHORT;if(n===qa)return i.INT;if(n===ni)return i.UNSIGNED_INT;if(n===fn)return i.FLOAT;if(n===Tn)return i.HALF_FLOAT;if(n===Wl)return i.ALPHA;if(n===Xl)return i.RGB;if(n===an)return i.RGBA;if(n===Yl)return i.LUMINANCE;if(n===ql)return i.LUMINANCE_ALPHA;if(n===Ii)return i.DEPTH_COMPONENT;if(n===Hi)return i.DEPTH_STENCIL;if(n===Ka)return i.RED;if(n===$a)return i.RED_INTEGER;if(n===jl)return i.RG;if(n===Ja)return i.RG_INTEGER;if(n===Qa)return i.RGBA_INTEGER;if(n===qs||n===js||n===Zs||n===Ks)if(a===re)if(r=t.get("WEBGL_compressed_texture_s3tc_srgb"),r!==null){if(n===qs)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===js)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===Zs)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===Ks)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(r=t.get("WEBGL_compressed_texture_s3tc"),r!==null){if(n===qs)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===js)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===Zs)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===Ks)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===pa||n===ma||n===ga||n===_a)if(r=t.get("WEBGL_compressed_texture_pvrtc"),r!==null){if(n===pa)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===ma)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===ga)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===_a)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===va||n===xa||n===Ma)if(r=t.get("WEBGL_compressed_texture_etc"),r!==null){if(n===va||n===xa)return a===re?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===Ma)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(n===Sa||n===ya||n===Ea||n===ba||n===Ta||n===wa||n===Aa||n===Ra||n===Ca||n===Pa||n===Da||n===La||n===Ua||n===Ia)if(r=t.get("WEBGL_compressed_texture_astc"),r!==null){if(n===Sa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===ya)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Ea)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===ba)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Ta)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===wa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===Aa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===Ra)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Ca)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===Pa)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Da)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===La)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Ua)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Ia)return a===re?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===$s||n===Na||n===Fa)if(r=t.get("EXT_texture_compression_bptc"),r!==null){if(n===$s)return a===re?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===Na)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===Fa)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===Zl||n===Oa||n===Ba||n===za)if(r=t.get("EXT_texture_compression_rgtc"),r!==null){if(n===$s)return r.COMPRESSED_RED_RGTC1_EXT;if(n===Oa)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Ba)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===za)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 Vm={type:"move"};class $r{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Pi,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 Pi,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 Pi,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),d=this._getHandJoint(c,_);m!==null&&(d.matrix.fromArray(m.transform.matrix),d.matrix.decompose(d.position,d.rotation,d.scale),d.matrixWorldNeedsUpdate=!0,d.jointRadius=m.radius),d.visible=m!==null}const h=c.joints["index-finger-tip"],f=c.joints["thumb-tip"],p=h.position.distanceTo(f.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(Vm)))}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 Pi;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const Gm=` void main() { gl_Position = vec4( position, 1.0 ); @@ -3824,7 +3824,7 @@ void main() { } -}`;class Xm{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const s=new Te,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 Fe({vertexShader:Gm,fragmentShader:Wm,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new Se(new ds(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class Ym extends si{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,f=null,g=null;const v=new Xm,m=e.getContextAttributes();let u=null,T=null;const b=[],y=[],L=new vt;let R=null;const A=new Ye;A.viewport=new le;const U=new Ye;U.viewport=new le;const S=[A,U],M=new cu;let D=null,W=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Y){let nt=b[Y];return nt===void 0&&(nt=new $r,b[Y]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(Y){let nt=b[Y];return nt===void 0&&(nt=new $r,b[Y]=nt),nt.getGripSpace()},this.getHand=function(Y){let nt=b[Y];return nt===void 0&&(nt=new $r,b[Y]=nt),nt.getHandSpace()};function z(Y){const nt=y.indexOf(Y.inputSource);if(nt===-1)return;const xt=b[nt];xt!==void 0&&(xt.update(Y.inputSource,Y.frame,c||a),xt.dispatchEvent({type:Y.type,data:Y.inputSource}))}function V(){s.removeEventListener("select",z),s.removeEventListener("selectstart",z),s.removeEventListener("selectend",z),s.removeEventListener("squeeze",z),s.removeEventListener("squeezestart",z),s.removeEventListener("squeezeend",z),s.removeEventListener("end",V),s.removeEventListener("inputsourceschange",$);for(let Y=0;Y=0&&(y[at]=null,b[at].disconnect(xt))}for(let nt=0;nt=y.length){y.push(xt),at=Ut;break}else if(y[Ut]===null){y[Ut]=xt,at=Ut;break}if(at===-1)break}const wt=b[at];wt&&wt.connect(xt)}}const G=new P,J=new P;function k(Y,nt,xt){G.setFromMatrixPosition(nt.matrixWorld),J.setFromMatrixPosition(xt.matrixWorld);const at=G.distanceTo(J),wt=nt.projectionMatrix.elements,Ut=xt.projectionMatrix.elements,Gt=wt[14]/(wt[10]-1),ce=wt[14]/(wt[10]+1),rt=(wt[9]+1)/wt[5],Ct=(wt[9]-1)/wt[5],w=(wt[8]-1)/wt[0],ve=(Ut[8]+1)/Ut[0],Bt=Gt*w,kt=Gt*ve,Mt=at/(-w+ve),ne=Mt*-w;if(nt.matrixWorld.decompose(Y.position,Y.quaternion,Y.scale),Y.translateX(ne),Y.translateZ(Mt),Y.matrixWorld.compose(Y.position,Y.quaternion,Y.scale),Y.matrixWorldInverse.copy(Y.matrixWorld).invert(),wt[10]===-1)Y.projectionMatrix.copy(nt.projectionMatrix),Y.projectionMatrixInverse.copy(nt.projectionMatrixInverse);else{const Et=Gt+Mt,E=ce+Mt,_=Bt-ne,F=kt+(at-ne),Z=rt*ce/E*Et,K=Ct*ce/E*Et;Y.projectionMatrix.makePerspective(_,F,Z,K,Et,E),Y.projectionMatrixInverse.copy(Y.projectionMatrix).invert()}}function it(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,xt=Y.far;v.texture!==null&&(v.depthNear>0&&(nt=v.depthNear),v.depthFar>0&&(xt=v.depthFar)),M.near=U.near=A.near=nt,M.far=U.far=A.far=xt,(D!==M.near||W!==M.far)&&(s.updateRenderState({depthNear:M.near,depthFar:M.far}),D=M.near,W=M.far),A.layers.mask=Y.layers.mask|2,U.layers.mask=Y.layers.mask|4,M.layers.mask=A.layers.mask|U.layers.mask;const at=Y.parent,wt=M.cameras;it(M,at);for(let Ut=0;Ut0&&(m.alphaTest.value=u.alphaTest);const T=t.get(u),b=T.envMap,y=T.envMapRotation;b&&(m.envMap.value=b,jn.copy(y),jn.x*=-1,jn.y*=-1,jn.z*=-1,b.isCubeTexture&&b.isRenderTargetTexture===!1&&(jn.y*=-1,jn.z*=-1),m.envMapRotation.value.setFromMatrix4(qm.makeRotationFromEuler(jn)),m.flipEnvMap.value=b.isCubeTexture&&b.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=u.reflectivity,m.ior.value=u.ior,m.refractionRatio.value=u.refractionRatio),u.lightMap&&(m.lightMap.value=u.lightMap,m.lightMapIntensity.value=u.lightMapIntensity,e(u.lightMap,m.lightMapTransform)),u.aoMap&&(m.aoMap.value=u.aoMap,m.aoMapIntensity.value=u.aoMapIntensity,e(u.aoMap,m.aoMapTransform))}function a(m,u){m.diffuse.value.copy(u.color),m.opacity.value=u.opacity,u.map&&(m.map.value=u.map,e(u.map,m.mapTransform))}function o(m,u){m.dashSize.value=u.dashSize,m.totalSize.value=u.dashSize+u.gapSize,m.scale.value=u.scale}function l(m,u,T,b){m.diffuse.value.copy(u.color),m.opacity.value=u.opacity,m.size.value=u.size*T,m.scale.value=b*.5,u.map&&(m.map.value=u.map,e(u.map,m.uvTransform)),u.alphaMap&&(m.alphaMap.value=u.alphaMap,e(u.alphaMap,m.alphaMapTransform)),u.alphaTest>0&&(m.alphaTest.value=u.alphaTest)}function c(m,u){m.diffuse.value.copy(u.color),m.opacity.value=u.opacity,m.rotation.value=u.rotation,u.map&&(m.map.value=u.map,e(u.map,m.mapTransform)),u.alphaMap&&(m.alphaMap.value=u.alphaMap,e(u.alphaMap,m.alphaMapTransform)),u.alphaTest>0&&(m.alphaTest.value=u.alphaTest)}function h(m,u){m.specular.value.copy(u.specular),m.shininess.value=Math.max(u.shininess,1e-4)}function d(m,u){u.gradientMap&&(m.gradientMap.value=u.gradientMap)}function p(m,u){m.metalness.value=u.metalness,u.metalnessMap&&(m.metalnessMap.value=u.metalnessMap,e(u.metalnessMap,m.metalnessMapTransform)),m.roughness.value=u.roughness,u.roughnessMap&&(m.roughnessMap.value=u.roughnessMap,e(u.roughnessMap,m.roughnessMapTransform)),u.envMap&&(m.envMapIntensity.value=u.envMapIntensity)}function f(m,u,T){m.ior.value=u.ior,u.sheen>0&&(m.sheenColor.value.copy(u.sheenColor).multiplyScalar(u.sheen),m.sheenRoughness.value=u.sheenRoughness,u.sheenColorMap&&(m.sheenColorMap.value=u.sheenColorMap,e(u.sheenColorMap,m.sheenColorMapTransform)),u.sheenRoughnessMap&&(m.sheenRoughnessMap.value=u.sheenRoughnessMap,e(u.sheenRoughnessMap,m.sheenRoughnessMapTransform))),u.clearcoat>0&&(m.clearcoat.value=u.clearcoat,m.clearcoatRoughness.value=u.clearcoatRoughness,u.clearcoatMap&&(m.clearcoatMap.value=u.clearcoatMap,e(u.clearcoatMap,m.clearcoatMapTransform)),u.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=u.clearcoatRoughnessMap,e(u.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)),u.clearcoatNormalMap&&(m.clearcoatNormalMap.value=u.clearcoatNormalMap,e(u.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(u.clearcoatNormalScale),u.side===ke&&m.clearcoatNormalScale.value.negate())),u.dispersion>0&&(m.dispersion.value=u.dispersion),u.iridescence>0&&(m.iridescence.value=u.iridescence,m.iridescenceIOR.value=u.iridescenceIOR,m.iridescenceThicknessMinimum.value=u.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=u.iridescenceThicknessRange[1],u.iridescenceMap&&(m.iridescenceMap.value=u.iridescenceMap,e(u.iridescenceMap,m.iridescenceMapTransform)),u.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=u.iridescenceThicknessMap,e(u.iridescenceThicknessMap,m.iridescenceThicknessMapTransform))),u.transmission>0&&(m.transmission.value=u.transmission,m.transmissionSamplerMap.value=T.texture,m.transmissionSamplerSize.value.set(T.width,T.height),u.transmissionMap&&(m.transmissionMap.value=u.transmissionMap,e(u.transmissionMap,m.transmissionMapTransform)),m.thickness.value=u.thickness,u.thicknessMap&&(m.thicknessMap.value=u.thicknessMap,e(u.thicknessMap,m.thicknessMapTransform)),m.attenuationDistance.value=u.attenuationDistance,m.attenuationColor.value.copy(u.attenuationColor)),u.anisotropy>0&&(m.anisotropyVector.value.set(u.anisotropy*Math.cos(u.anisotropyRotation),u.anisotropy*Math.sin(u.anisotropyRotation)),u.anisotropyMap&&(m.anisotropyMap.value=u.anisotropyMap,e(u.anisotropyMap,m.anisotropyMapTransform))),m.specularIntensity.value=u.specularIntensity,m.specularColor.value.copy(u.specularColor),u.specularColorMap&&(m.specularColorMap.value=u.specularColorMap,e(u.specularColorMap,m.specularColorMapTransform)),u.specularIntensityMap&&(m.specularIntensityMap.value=u.specularIntensityMap,e(u.specularIntensityMap,m.specularIntensityMapTransform))}function g(m,u){u.matcap&&(m.matcap.value=u.matcap)}function v(m,u){const T=t.get(u).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 Zm(i,t,e,n){let s={},r={},a=[];const o=i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS);function l(T,b){const y=b.program;n.uniformBlockBinding(T,y)}function c(T,b){let y=s[T.id];y===void 0&&(g(T),y=h(T),s[T.id]=y,T.addEventListener("dispose",m));const L=b.program;n.updateUBOMapping(T,L);const R=t.render.frame;r[T.id]!==R&&(p(T),r[T.id]=R)}function h(T){const b=d();T.__bindingPointIndex=b;const y=i.createBuffer(),L=T.__size,R=T.usage;return i.bindBuffer(i.UNIFORM_BUFFER,y),i.bufferData(i.UNIFORM_BUFFER,L,R),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,b,y),y}function d(){for(let T=0;T0&&(y+=L-R),T.__size=y,T.__cache={},this}function v(T){const b={boundary:0,storage:0};return typeof T=="number"||typeof T=="boolean"?(b.boundary=4,b.storage=4):T.isVector2?(b.boundary=8,b.storage=8):T.isVector3||T.isColor?(b.boundary=16,b.storage=12):T.isVector4?(b.boundary=16,b.storage=16):T.isMatrix3?(b.boundary=48,b.storage=48):T.isMatrix4?(b.boundary=64,b.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),b}function m(T){const b=T.target;b.removeEventListener("dispose",m);const y=a.indexOf(b.__bindingPointIndex);a.splice(y,1),i.deleteBuffer(s[b.id]),delete s[b.id],delete r[b.id]}function u(){for(const T in s)i.deleteBuffer(s[T]);a=[],s={},r={}}return{bind:l,update:c,dispose:u}}class Km{constructor(t={}){const{canvas:e=Th(),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 f;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");f=n.getContextAttributes().alpha}else f=a;const g=new Uint32Array(4),v=new Int32Array(4);let m=null,u=null;const T=[],b=[];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=Qe,this.toneMapping=On,this.toneMappingExposure=1;const y=this;let L=!1,R=0,A=0,U=null,S=-1,M=null;const D=new le,W=new le;let z=null;const V=new pt(0);let $=0,G=e.width,J=e.height,k=1,it=null,ut=null;const yt=new le(0,0,G,J),Lt=new le(0,0,G,J);let qt=!1;const Y=new eo;let nt=!1,xt=!1;this.transmissionResolutionScale=1;const at=new ee,wt=new ee,Ut=new P,Gt=new le,ce={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let rt=!1;function Ct(){return U===null?k:1}let w=n;function ve(x,I){return e.getContext(x,I)}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${Ya}`),e.addEventListener("webglcontextlost",q,!1),e.addEventListener("webglcontextrestored",lt,!1),e.addEventListener("webglcontextcreationerror",ct,!1),w===null){const I="webgl2";if(w=ve(I,x),w===null)throw ve(I)?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 Bt,kt,Mt,ne,Et,E,_,F,Z,K,X,St,ot,dt,jt,tt,mt,bt,Pt,ft,Xt,zt,se,C;function et(){Bt=new rp(w),Bt.init(),zt=new km(w,Bt),kt=new Qf(w,Bt,t,zt),Mt=new zm(w,Bt),kt.reverseDepthBuffer&&p&&Mt.buffers.depth.setReversed(!0),ne=new lp(w),Et=new wm,E=new Hm(w,Bt,Mt,Et,kt,zt,ne),_=new ep(y),F=new sp(y),Z=new pu(w),se=new $f(w,Z),K=new ap(w,Z,ne,se),X=new hp(w,K,Z,ne),Pt=new cp(w,kt,E),tt=new tp(Et),St=new Tm(y,_,F,Bt,kt,se,tt),ot=new jm(y,Et),dt=new Rm,jt=new Im(Bt),bt=new Kf(y,_,F,Mt,X,f,l),mt=new Om(y,X,kt),C=new Zm(w,ne,kt,Mt),ft=new Jf(w,Bt,ne),Xt=new op(w,Bt,ne),ne.programs=St.programs,y.capabilities=kt,y.extensions=Bt,y.properties=Et,y.renderLists=dt,y.shadowMap=mt,y.state=Mt,y.info=ne}et();const H=new Ym(y,w);this.xr=H,this.getContext=function(){return w},this.getContextAttributes=function(){return w.getContextAttributes()},this.forceContextLoss=function(){const x=Bt.get("WEBGL_lose_context");x&&x.loseContext()},this.forceContextRestore=function(){const x=Bt.get("WEBGL_lose_context");x&&x.restoreContext()},this.getPixelRatio=function(){return k},this.setPixelRatio=function(x){x!==void 0&&(k=x,this.setSize(G,J,!1))},this.getSize=function(x){return x.set(G,J)},this.setSize=function(x,I,O=!0){if(H.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}G=x,J=I,e.width=Math.floor(x*k),e.height=Math.floor(I*k),O===!0&&(e.style.width=x+"px",e.style.height=I+"px"),this.setViewport(0,0,x,I)},this.getDrawingBufferSize=function(x){return x.set(G*k,J*k).floor()},this.setDrawingBufferSize=function(x,I,O){G=x,J=I,k=O,e.width=Math.floor(x*O),e.height=Math.floor(I*O),this.setViewport(0,0,x,I)},this.getCurrentViewport=function(x){return x.copy(D)},this.getViewport=function(x){return x.copy(yt)},this.setViewport=function(x,I,O,B){x.isVector4?yt.set(x.x,x.y,x.z,x.w):yt.set(x,I,O,B),Mt.viewport(D.copy(yt).multiplyScalar(k).round())},this.getScissor=function(x){return x.copy(Lt)},this.setScissor=function(x,I,O,B){x.isVector4?Lt.set(x.x,x.y,x.z,x.w):Lt.set(x,I,O,B),Mt.scissor(W.copy(Lt).multiplyScalar(k).round())},this.getScissorTest=function(){return qt},this.setScissorTest=function(x){Mt.setScissorTest(qt=x)},this.setOpaqueSort=function(x){it=x},this.setTransparentSort=function(x){ut=x},this.getClearColor=function(x){return x.copy(bt.getClearColor())},this.setClearColor=function(){bt.setClearColor.apply(bt,arguments)},this.getClearAlpha=function(){return bt.getClearAlpha()},this.setClearAlpha=function(){bt.setClearAlpha.apply(bt,arguments)},this.clear=function(x=!0,I=!0,O=!0){let B=0;if(x){let N=!1;if(U!==null){const Q=U.texture.format;N=Q===Qa||Q===Ja||Q===$a}if(N){const Q=U.texture.type,ht=Q===An||Q===ni||Q===ls||Q===Hi||Q===ja||Q===Za,gt=bt.getClearColor(),_t=bt.getClearAlpha(),It=gt.r,Ft=gt.g,Tt=gt.b;ht?(g[0]=It,g[1]=Ft,g[2]=Tt,g[3]=_t,w.clearBufferuiv(w.COLOR,0,g)):(v[0]=It,v[1]=Ft,v[2]=Tt,v[3]=_t,w.clearBufferiv(w.COLOR,0,v))}else B|=w.COLOR_BUFFER_BIT}I&&(B|=w.DEPTH_BUFFER_BIT),O&&(B|=w.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),w.clear(B)},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",q,!1),e.removeEventListener("webglcontextrestored",lt,!1),e.removeEventListener("webglcontextcreationerror",ct,!1),bt.dispose(),dt.dispose(),jt.dispose(),Et.dispose(),_.dispose(),F.dispose(),X.dispose(),se.dispose(),C.dispose(),St.dispose(),H.dispose(),H.removeEventListener("sessionstart",ro),H.removeEventListener("sessionend",ao),kn.stop()};function q(x){x.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),L=!0}function lt(){console.log("THREE.WebGLRenderer: Context Restored."),L=!1;const x=ne.autoReset,I=mt.enabled,O=mt.autoUpdate,B=mt.needsUpdate,N=mt.type;et(),ne.autoReset=x,mt.enabled=I,mt.autoUpdate=O,mt.needsUpdate=B,mt.type=N}function ct(x){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",x.statusMessage)}function Nt(x){const I=x.target;I.removeEventListener("dispose",Nt),ue(I)}function ue(x){xe(x),Et.remove(x)}function xe(x){const I=Et.get(x).programs;I!==void 0&&(I.forEach(function(O){St.releaseProgram(O)}),x.isShaderMaterial&&St.releaseShaderCache(x))}this.renderBufferDirect=function(x,I,O,B,N,Q){I===null&&(I=ce);const ht=N.isMesh&&N.matrixWorld.determinant()<0,gt=Mc(x,I,O,B,N);Mt.setMaterial(B,ht);let _t=O.index,It=1;if(B.wireframe===!0){if(_t=K.getWireframeAttribute(O),_t===void 0)return;It=2}const Ft=O.drawRange,Tt=O.attributes.position;let Zt=Ft.start*It,Qt=(Ft.start+Ft.count)*It;Q!==null&&(Zt=Math.max(Zt,Q.start*It),Qt=Math.min(Qt,(Q.start+Q.count)*It)),_t!==null?(Zt=Math.max(Zt,0),Qt=Math.min(Qt,_t.count)):Tt!=null&&(Zt=Math.max(Zt,0),Qt=Math.min(Qt,Tt.count));const me=Qt-Zt;if(me<0||me===1/0)return;se.setup(N,B,gt,O,_t);let fe,Kt=ft;if(_t!==null&&(fe=Z.get(_t),Kt=Xt,Kt.setIndex(fe)),N.isMesh)B.wireframe===!0?(Mt.setLineWidth(B.wireframeLinewidth*Ct()),Kt.setMode(w.LINES)):Kt.setMode(w.TRIANGLES);else if(N.isLine){let At=B.linewidth;At===void 0&&(At=1),Mt.setLineWidth(At*Ct()),N.isLineSegments?Kt.setMode(w.LINES):N.isLineLoop?Kt.setMode(w.LINE_LOOP):Kt.setMode(w.LINE_STRIP)}else N.isPoints?Kt.setMode(w.POINTS):N.isSprite&&Kt.setMode(w.TRIANGLES);if(N.isBatchedMesh)if(N._multiDrawInstances!==null)Kt.renderMultiDrawInstances(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount,N._multiDrawInstances);else if(Bt.get("WEBGL_multi_draw"))Kt.renderMultiDraw(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount);else{const At=N._multiDrawStarts,we=N._multiDrawCounts,te=N._multiDrawCount,en=_t?Z.get(_t).bytesPerElement:1,oi=Et.get(B).currentProgram.getUniforms();for(let Ge=0;Ge{function Q(){if(B.forEach(function(ht){Et.get(ht).currentProgram.isReady()&&B.delete(ht)}),B.size===0){N(x);return}setTimeout(Q,10)}Bt.get("KHR_parallel_shader_compile")!==null?Q():setTimeout(Q,10)})};let Ve=null;function mn(x){Ve&&Ve(x)}function ro(){kn.stop()}function ao(){kn.start()}const kn=new dc;kn.setAnimationLoop(mn),typeof self<"u"&&kn.setContext(self),this.setAnimationLoop=function(x){Ve=x,H.setAnimationLoop(x),x===null?kn.stop():kn.start()},H.addEventListener("sessionstart",ro),H.addEventListener("sessionend",ao),this.render=function(x,I){if(I!==void 0&&I.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(L===!0)return;if(x.matrixWorldAutoUpdate===!0&&x.updateMatrixWorld(),I.parent===null&&I.matrixWorldAutoUpdate===!0&&I.updateMatrixWorld(),H.enabled===!0&&H.isPresenting===!0&&(H.cameraAutoUpdate===!0&&H.updateCamera(I),I=H.getCamera()),x.isScene===!0&&x.onBeforeRender(y,x,I,U),u=jt.get(x,b.length),u.init(I),b.push(u),wt.multiplyMatrices(I.projectionMatrix,I.matrixWorldInverse),Y.setFromProjectionMatrix(wt),xt=this.localClippingEnabled,nt=tt.init(this.clippingPlanes,xt),m=dt.get(x,T.length),m.init(),T.push(m),H.enabled===!0&&H.isPresenting===!0){const Q=y.xr.getDepthSensingMesh();Q!==null&&_r(Q,I,-1/0,y.sortObjects)}_r(x,I,0,y.sortObjects),m.finish(),y.sortObjects===!0&&m.sort(it,ut),rt=H.enabled===!1||H.isPresenting===!1||H.hasDepthSensing()===!1,rt&&bt.addToRenderList(m,x),this.info.render.frame++,nt===!0&&tt.beginShadows();const O=u.state.shadowsArray;mt.render(O,x,I),nt===!0&&tt.endShadows(),this.info.autoReset===!0&&this.info.reset();const B=m.opaque,N=m.transmissive;if(u.setupLights(),I.isArrayCamera){const Q=I.cameras;if(N.length>0)for(let ht=0,gt=Q.length;ht0&&lo(B,N,x,I),rt&&bt.render(x),oo(m,x,I);U!==null&&A===0&&(E.updateMultisampleRenderTarget(U),E.updateRenderTargetMipmap(U)),x.isScene===!0&&x.onAfterRender(y,x,I),se.resetDefaultState(),S=-1,M=null,b.pop(),b.length>0?(u=b[b.length-1],nt===!0&&tt.setGlobalState(y.clippingPlanes,u.state.camera)):u=null,T.pop(),T.length>0?m=T[T.length-1]:m=null};function _r(x,I,O,B){if(x.visible===!1)return;if(x.layers.test(I.layers)){if(x.isGroup)O=x.renderOrder;else if(x.isLOD)x.autoUpdate===!0&&x.update(I);else if(x.isLight)u.pushLight(x),x.castShadow&&u.pushShadow(x);else if(x.isSprite){if(!x.frustumCulled||Y.intersectsSprite(x)){B&&Gt.setFromMatrixPosition(x.matrixWorld).applyMatrix4(wt);const ht=X.update(x),gt=x.material;gt.visible&&m.push(x,ht,gt,O,Gt.z,null)}}else if((x.isMesh||x.isLine||x.isPoints)&&(!x.frustumCulled||Y.intersectsObject(x))){const ht=X.update(x),gt=x.material;if(B&&(x.boundingSphere!==void 0?(x.boundingSphere===null&&x.computeBoundingSphere(),Gt.copy(x.boundingSphere.center)):(ht.boundingSphere===null&&ht.computeBoundingSphere(),Gt.copy(ht.boundingSphere.center)),Gt.applyMatrix4(x.matrixWorld).applyMatrix4(wt)),Array.isArray(gt)){const _t=ht.groups;for(let It=0,Ft=_t.length;It0&&ps(N,I,O),Q.length>0&&ps(Q,I,O),ht.length>0&&ps(ht,I,O),Mt.buffers.depth.setTest(!0),Mt.buffers.depth.setMask(!0),Mt.buffers.color.setMask(!0),Mt.setPolygonOffset(!1)}function lo(x,I,O,B){if((O.isScene===!0?O.overrideMaterial:null)!==null)return;u.state.transmissionRenderTarget[B.id]===void 0&&(u.state.transmissionRenderTarget[B.id]=new on(1,1,{generateMipmaps:!0,type:Bt.has("EXT_color_buffer_half_float")||Bt.has("EXT_color_buffer_float")?Tn:An,minFilter:Qn,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:$t.workingColorSpace}));const Q=u.state.transmissionRenderTarget[B.id],ht=B.viewport||D;Q.setSize(ht.z*y.transmissionResolutionScale,ht.w*y.transmissionResolutionScale);const gt=y.getRenderTarget();y.setRenderTarget(Q),y.getClearColor(V),$=y.getClearAlpha(),$<1&&y.setClearColor(16777215,.5),y.clear(),rt&&bt.render(O);const _t=y.toneMapping;y.toneMapping=On;const It=B.viewport;if(B.viewport!==void 0&&(B.viewport=void 0),u.setupLightsView(B),nt===!0&&tt.setGlobalState(y.clippingPlanes,B),ps(x,O,B),E.updateMultisampleRenderTarget(Q),E.updateRenderTargetMipmap(Q),Bt.has("WEBGL_multisampled_render_to_texture")===!1){let Ft=!1;for(let Tt=0,Zt=I.length;Tt0),Tt=!!O.morphAttributes.position,Zt=!!O.morphAttributes.normal,Qt=!!O.morphAttributes.color;let me=On;B.toneMapped&&(U===null||U.isXRRenderTarget===!0)&&(me=y.toneMapping);const fe=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,Kt=fe!==void 0?fe.length:0,At=Et.get(B),we=u.state.lights;if(nt===!0&&(xt===!0||x!==M)){const De=x===M&&B.id===S;tt.setState(B,x,De)}let te=!1;B.version===At.__version?(At.needsLights&&At.lightsStateVersion!==we.state.version||At.outputColorSpace!==gt||N.isBatchedMesh&&At.batching===!1||!N.isBatchedMesh&&At.batching===!0||N.isBatchedMesh&&At.batchingColor===!0&&N.colorTexture===null||N.isBatchedMesh&&At.batchingColor===!1&&N.colorTexture!==null||N.isInstancedMesh&&At.instancing===!1||!N.isInstancedMesh&&At.instancing===!0||N.isSkinnedMesh&&At.skinning===!1||!N.isSkinnedMesh&&At.skinning===!0||N.isInstancedMesh&&At.instancingColor===!0&&N.instanceColor===null||N.isInstancedMesh&&At.instancingColor===!1&&N.instanceColor!==null||N.isInstancedMesh&&At.instancingMorph===!0&&N.morphTexture===null||N.isInstancedMesh&&At.instancingMorph===!1&&N.morphTexture!==null||At.envMap!==_t||B.fog===!0&&At.fog!==Q||At.numClippingPlanes!==void 0&&(At.numClippingPlanes!==tt.numPlanes||At.numIntersection!==tt.numIntersection)||At.vertexAlphas!==It||At.vertexTangents!==Ft||At.morphTargets!==Tt||At.morphNormals!==Zt||At.morphColors!==Qt||At.toneMapping!==me||At.morphTargetsCount!==Kt)&&(te=!0):(te=!0,At.__version=B.version);let en=At.currentProgram;te===!0&&(en=ms(B,I,N));let oi=!1,Ge=!1,Yi=!1;const de=en.getUniforms(),Ze=At.uniforms;if(Mt.useProgram(en.program)&&(oi=!0,Ge=!0,Yi=!0),B.id!==S&&(S=B.id,Ge=!0),oi||M!==x){Mt.buffers.depth.getReversed()?(at.copy(x.projectionMatrix),Ah(at),Rh(at),de.setValue(w,"projectionMatrix",at)):de.setValue(w,"projectionMatrix",x.projectionMatrix),de.setValue(w,"viewMatrix",x.matrixWorldInverse);const Oe=de.map.cameraPosition;Oe!==void 0&&Oe.setValue(w,Ut.setFromMatrixPosition(x.matrixWorld)),kt.logarithmicDepthBuffer&&de.setValue(w,"logDepthBufFC",2/(Math.log(x.far+1)/Math.LN2)),(B.isMeshPhongMaterial||B.isMeshToonMaterial||B.isMeshLambertMaterial||B.isMeshBasicMaterial||B.isMeshStandardMaterial||B.isShaderMaterial)&&de.setValue(w,"isOrthographic",x.isOrthographicCamera===!0),M!==x&&(M=x,Ge=!0,Yi=!0)}if(N.isSkinnedMesh){de.setOptional(w,N,"bindMatrix"),de.setOptional(w,N,"bindMatrixInverse");const De=N.skeleton;De&&(De.boneTexture===null&&De.computeBoneTexture(),de.setValue(w,"boneTexture",De.boneTexture,E))}N.isBatchedMesh&&(de.setOptional(w,N,"batchingTexture"),de.setValue(w,"batchingTexture",N._matricesTexture,E),de.setOptional(w,N,"batchingIdTexture"),de.setValue(w,"batchingIdTexture",N._indirectTexture,E),de.setOptional(w,N,"batchingColorTexture"),N._colorsTexture!==null&&de.setValue(w,"batchingColorTexture",N._colorsTexture,E));const Ke=O.morphAttributes;if((Ke.position!==void 0||Ke.normal!==void 0||Ke.color!==void 0)&&Pt.update(N,O,en),(Ge||At.receiveShadow!==N.receiveShadow)&&(At.receiveShadow=N.receiveShadow,de.setValue(w,"receiveShadow",N.receiveShadow)),B.isMeshGouraudMaterial&&B.envMap!==null&&(Ze.envMap.value=_t,Ze.flipEnvMap.value=_t.isCubeTexture&&_t.isRenderTargetTexture===!1?-1:1),B.isMeshStandardMaterial&&B.envMap===null&&I.environment!==null&&(Ze.envMapIntensity.value=I.environmentIntensity),Ge&&(de.setValue(w,"toneMappingExposure",y.toneMappingExposure),At.needsLights&&Sc(Ze,Yi),Q&&B.fog===!0&&ot.refreshFogUniforms(Ze,Q),ot.refreshMaterialUniforms(Ze,B,k,J,u.state.transmissionRenderTarget[x.id]),tr.upload(w,ho(At),Ze,E)),B.isShaderMaterial&&B.uniformsNeedUpdate===!0&&(tr.upload(w,ho(At),Ze,E),B.uniformsNeedUpdate=!1),B.isSpriteMaterial&&de.setValue(w,"center",N.center),de.setValue(w,"modelViewMatrix",N.modelViewMatrix),de.setValue(w,"normalMatrix",N.normalMatrix),de.setValue(w,"modelMatrix",N.matrixWorld),B.isShaderMaterial||B.isRawShaderMaterial){const De=B.uniformsGroups;for(let Oe=0,vr=De.length;Oe0&&E.useMultisampledRTT(x)===!1?N=Et.get(x).__webglMultisampledFramebuffer:Array.isArray(Ft)?N=Ft[O]:N=Ft,D.copy(x.viewport),W.copy(x.scissor),z=x.scissorTest}else D.copy(yt).multiplyScalar(k).floor(),W.copy(Lt).multiplyScalar(k).floor(),z=qt;if(O!==0&&(N=Ec),Mt.bindFramebuffer(w.FRAMEBUFFER,N)&&B&&Mt.drawBuffers(x,N),Mt.viewport(D),Mt.scissor(W),Mt.setScissorTest(z),Q){const _t=Et.get(x.texture);w.framebufferTexture2D(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_CUBE_MAP_POSITIVE_X+I,_t.__webglTexture,O)}else if(ht){const _t=Et.get(x.texture),It=I;w.framebufferTextureLayer(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,_t.__webglTexture,O,It)}else if(x!==null&&O!==0){const _t=Et.get(x.texture);w.framebufferTexture2D(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_2D,_t.__webglTexture,O)}S=-1},this.readRenderTargetPixels=function(x,I,O,B,N,Q,ht){if(!(x&&x.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let gt=Et.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&ht!==void 0&&(gt=gt[ht]),gt){Mt.bindFramebuffer(w.FRAMEBUFFER,gt);try{const _t=x.texture,It=_t.format,Ft=_t.type;if(!kt.textureFormatReadable(It)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!kt.textureTypeReadable(Ft)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}I>=0&&I<=x.width-B&&O>=0&&O<=x.height-N&&w.readPixels(I,O,B,N,zt.convert(It),zt.convert(Ft),Q)}finally{const _t=U!==null?Et.get(U).__webglFramebuffer:null;Mt.bindFramebuffer(w.FRAMEBUFFER,_t)}}},this.readRenderTargetPixelsAsync=async function(x,I,O,B,N,Q,ht){if(!(x&&x.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let gt=Et.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&ht!==void 0&&(gt=gt[ht]),gt){const _t=x.texture,It=_t.format,Ft=_t.type;if(!kt.textureFormatReadable(It))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!kt.textureTypeReadable(Ft))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(I>=0&&I<=x.width-B&&O>=0&&O<=x.height-N){Mt.bindFramebuffer(w.FRAMEBUFFER,gt);const Tt=w.createBuffer();w.bindBuffer(w.PIXEL_PACK_BUFFER,Tt),w.bufferData(w.PIXEL_PACK_BUFFER,Q.byteLength,w.STREAM_READ),w.readPixels(I,O,B,N,zt.convert(It),zt.convert(Ft),0);const Zt=U!==null?Et.get(U).__webglFramebuffer:null;Mt.bindFramebuffer(w.FRAMEBUFFER,Zt);const Qt=w.fenceSync(w.SYNC_GPU_COMMANDS_COMPLETE,0);return w.flush(),await wh(w,Qt,4),w.bindBuffer(w.PIXEL_PACK_BUFFER,Tt),w.getBufferSubData(w.PIXEL_PACK_BUFFER,0,Q),w.deleteBuffer(Tt),w.deleteSync(Qt),Q}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(x,I=null,O=0){x.isTexture!==!0&&(Ri("WebGLRenderer: copyFramebufferToTexture function signature has changed."),I=arguments[0]||null,x=arguments[1]);const B=Math.pow(2,-O),N=Math.floor(x.image.width*B),Q=Math.floor(x.image.height*B),ht=I!==null?I.x:0,gt=I!==null?I.y:0;E.setTexture2D(x,0),w.copyTexSubImage2D(w.TEXTURE_2D,O,0,0,ht,gt,N,Q),Mt.unbindTexture()};const bc=w.createFramebuffer(),Tc=w.createFramebuffer();this.copyTextureToTexture=function(x,I,O=null,B=null,N=0,Q=null){x.isTexture!==!0&&(Ri("WebGLRenderer: copyTextureToTexture function signature has changed."),B=arguments[0]||null,x=arguments[1],I=arguments[2],Q=arguments[3]||0,O=null),Q===null&&(N!==0?(Ri("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),Q=N,N=0):Q=0);let ht,gt,_t,It,Ft,Tt,Zt,Qt,me;const fe=x.isCompressedTexture?x.mipmaps[Q]:x.image;if(O!==null)ht=O.max.x-O.min.x,gt=O.max.y-O.min.y,_t=O.isBox3?O.max.z-O.min.z:1,It=O.min.x,Ft=O.min.y,Tt=O.isBox3?O.min.z:0;else{const Ke=Math.pow(2,-N);ht=Math.floor(fe.width*Ke),gt=Math.floor(fe.height*Ke),x.isDataArrayTexture?_t=fe.depth:x.isData3DTexture?_t=Math.floor(fe.depth*Ke):_t=1,It=0,Ft=0,Tt=0}B!==null?(Zt=B.x,Qt=B.y,me=B.z):(Zt=0,Qt=0,me=0);const Kt=zt.convert(I.format),At=zt.convert(I.type);let we;I.isData3DTexture?(E.setTexture3D(I,0),we=w.TEXTURE_3D):I.isDataArrayTexture||I.isCompressedArrayTexture?(E.setTexture2DArray(I,0),we=w.TEXTURE_2D_ARRAY):(E.setTexture2D(I,0),we=w.TEXTURE_2D),w.pixelStorei(w.UNPACK_FLIP_Y_WEBGL,I.flipY),w.pixelStorei(w.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I.premultiplyAlpha),w.pixelStorei(w.UNPACK_ALIGNMENT,I.unpackAlignment);const te=w.getParameter(w.UNPACK_ROW_LENGTH),en=w.getParameter(w.UNPACK_IMAGE_HEIGHT),oi=w.getParameter(w.UNPACK_SKIP_PIXELS),Ge=w.getParameter(w.UNPACK_SKIP_ROWS),Yi=w.getParameter(w.UNPACK_SKIP_IMAGES);w.pixelStorei(w.UNPACK_ROW_LENGTH,fe.width),w.pixelStorei(w.UNPACK_IMAGE_HEIGHT,fe.height),w.pixelStorei(w.UNPACK_SKIP_PIXELS,It),w.pixelStorei(w.UNPACK_SKIP_ROWS,Ft),w.pixelStorei(w.UNPACK_SKIP_IMAGES,Tt);const de=x.isDataArrayTexture||x.isData3DTexture,Ze=I.isDataArrayTexture||I.isData3DTexture;if(x.isDepthTexture){const Ke=Et.get(x),De=Et.get(I),Oe=Et.get(Ke.__renderTarget),vr=Et.get(De.__renderTarget);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,Oe.__webglFramebuffer),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,vr.__webglFramebuffer);for(let Vn=0;Vn<_t;Vn++)de&&(w.framebufferTextureLayer(w.READ_FRAMEBUFFER,w.COLOR_ATTACHMENT0,Et.get(x).__webglTexture,N,Tt+Vn),w.framebufferTextureLayer(w.DRAW_FRAMEBUFFER,w.COLOR_ATTACHMENT0,Et.get(I).__webglTexture,Q,me+Vn)),w.blitFramebuffer(It,Ft,ht,gt,Zt,Qt,ht,gt,w.DEPTH_BUFFER_BIT,w.NEAREST);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,null),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,null)}else if(N!==0||x.isRenderTargetTexture||Et.has(x)){const Ke=Et.get(x),De=Et.get(I);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,bc),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,Tc);for(let Oe=0;Oe<_t;Oe++)de?w.framebufferTextureLayer(w.READ_FRAMEBUFFER,w.COLOR_ATTACHMENT0,Ke.__webglTexture,N,Tt+Oe):w.framebufferTexture2D(w.READ_FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_2D,Ke.__webglTexture,N),Ze?w.framebufferTextureLayer(w.DRAW_FRAMEBUFFER,w.COLOR_ATTACHMENT0,De.__webglTexture,Q,me+Oe):w.framebufferTexture2D(w.DRAW_FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_2D,De.__webglTexture,Q),N!==0?w.blitFramebuffer(It,Ft,ht,gt,Zt,Qt,ht,gt,w.COLOR_BUFFER_BIT,w.NEAREST):Ze?w.copyTexSubImage3D(we,Q,Zt,Qt,me+Oe,It,Ft,ht,gt):w.copyTexSubImage2D(we,Q,Zt,Qt,It,Ft,ht,gt);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,null),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,null)}else Ze?x.isDataTexture||x.isData3DTexture?w.texSubImage3D(we,Q,Zt,Qt,me,ht,gt,_t,Kt,At,fe.data):I.isCompressedArrayTexture?w.compressedTexSubImage3D(we,Q,Zt,Qt,me,ht,gt,_t,Kt,fe.data):w.texSubImage3D(we,Q,Zt,Qt,me,ht,gt,_t,Kt,At,fe):x.isDataTexture?w.texSubImage2D(w.TEXTURE_2D,Q,Zt,Qt,ht,gt,Kt,At,fe.data):x.isCompressedTexture?w.compressedTexSubImage2D(w.TEXTURE_2D,Q,Zt,Qt,fe.width,fe.height,Kt,fe.data):w.texSubImage2D(w.TEXTURE_2D,Q,Zt,Qt,ht,gt,Kt,At,fe);w.pixelStorei(w.UNPACK_ROW_LENGTH,te),w.pixelStorei(w.UNPACK_IMAGE_HEIGHT,en),w.pixelStorei(w.UNPACK_SKIP_PIXELS,oi),w.pixelStorei(w.UNPACK_SKIP_ROWS,Ge),w.pixelStorei(w.UNPACK_SKIP_IMAGES,Yi),Q===0&&I.generateMipmaps&&w.generateMipmap(we),Mt.unbindTexture()},this.copyTextureToTexture3D=function(x,I,O=null,B=null,N=0){return x.isTexture!==!0&&(Ri("WebGLRenderer: copyTextureToTexture3D function signature has changed."),O=arguments[0]||null,B=arguments[1]||null,x=arguments[2],I=arguments[3],N=arguments[4]||0),Ri('WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use "copyTextureToTexture" instead.'),this.copyTextureToTexture(x,I,O,B,N)},this.initRenderTarget=function(x){Et.get(x).__webglFramebuffer===void 0&&E.setupRenderTarget(x)},this.initTexture=function(x){x.isCubeTexture?E.setTextureCube(x,0):x.isData3DTexture?E.setTexture3D(x,0):x.isDataArrayTexture||x.isCompressedArrayTexture?E.setTexture2DArray(x,0):E.setTexture2D(x,0),Mt.unbindTexture()},this.resetState=function(){R=0,A=0,U=null,Mt.reset(),se.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return En}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorspace=$t._getDrawingBufferColorSpace(t),e.unpackColorSpace=$t._getUnpackColorSpace()}}const El={type:"change"},so={type:"start"},_c={type:"end"},Ys=new hs,bl=new Nn,$m=Math.cos(70*bh.DEG2RAD),Me=new P,Be=2*Math.PI,oe={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},Jr=1e-6;class Jm extends du{constructor(t,e=null){super(t,e),this.state=oe.NONE,this.enabled=!0,this.target=new P,this.cursor=new P,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:Li.ROTATE,MIDDLE:Li.DOLLY,RIGHT:Li.PAN},this.touches={ONE:Ci.ROTATE,TWO:Ci.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new P,this._lastQuaternion=new ii,this._lastTargetPosition=new P,this._quat=new ii().setFromUnitVectors(t.up,new P(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new $o,this._sphericalDelta=new $o,this._scale=1,this._panOffset=new P,this._rotateStart=new vt,this._rotateEnd=new vt,this._rotateDelta=new vt,this._panStart=new vt,this._panEnd=new vt,this._panDelta=new vt,this._dollyStart=new vt,this._dollyEnd=new vt,this._dollyDelta=new vt,this._dollyDirection=new P,this._mouse=new vt,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=tg.bind(this),this._onPointerDown=Qm.bind(this),this._onPointerUp=eg.bind(this),this._onContextMenu=lg.bind(this),this._onMouseWheel=sg.bind(this),this._onKeyDown=rg.bind(this),this._onTouchStart=ag.bind(this),this._onTouchMove=og.bind(this),this._onMouseDown=ng.bind(this),this._onMouseMove=ig.bind(this),this._interceptControlDown=cg.bind(this),this._interceptControlUp=hg.bind(this),this.domElement!==null&&this.connect(),this.update()}connect(){this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(El),this.update(),this.state=oe.NONE}update(t=null){const e=this.object.position;Me.copy(e).sub(this.target),Me.applyQuaternion(this._quat),this._spherical.setFromVector3(Me),this.autoRotate&&this.state===oe.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let n=this.minAzimuthAngle,s=this.maxAzimuthAngle;isFinite(n)&&isFinite(s)&&(n<-Math.PI?n+=Be:n>Math.PI&&(n-=Be),s<-Math.PI?s+=Be:s>Math.PI&&(s-=Be),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(Me.setFromSpherical(this._spherical),Me.applyQuaternion(this._quatInverse),e.copy(this.target).add(Me),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=Me.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=Me.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):(Ys.origin.copy(this.object.position),Ys.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(Ys.direction))<$m?this.object.lookAt(this.target):(bl.setFromNormalAndCoplanarPoint(this.object.up,this.target),Ys.intersectPlane(bl,this.target))))}else if(this.object.isOrthographicCamera){const a=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),a!==this.object.zoom&&(this.object.updateProjectionMatrix(),r=!0)}return this._scale=1,this._performCursorZoom=!1,r||this._lastPosition.distanceToSquared(this.object.position)>Jr||8*(1-this._lastQuaternion.dot(this.object.quaternion))>Jr||this._lastTargetPosition.distanceToSquared(this.target)>Jr?(this.dispatchEvent(El),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?Be/60*this.autoRotateSpeed*t:Be/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){Me.setFromMatrixColumn(e,0),Me.multiplyScalar(-t),this._panOffset.add(Me)}_panUp(t,e){this.screenSpacePanning===!0?Me.setFromMatrixColumn(e,1):(Me.setFromMatrixColumn(e,0),Me.crossVectors(this.object.up,Me)),Me.multiplyScalar(t),this._panOffset.add(Me)}_pan(t,e){const n=this.domElement;if(this.object.isPerspectiveCamera){const s=this.object.position;Me.copy(s).sub(this.target);let r=Me.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(Be*this._rotateDelta.x/e.clientHeight),this._rotateUp(Be*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(Be*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(-Be*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(Be*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(-Be*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(Be*this._rotateDelta.x/e.clientHeight),this._rotateUp(Be*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=0&&(y[ot]=null,E[ot].disconnect(xt))}for(let nt=0;nt=y.length){y.push(xt),ot=Ut;break}else if(y[Ut]===null){y[Ut]=xt,ot=Ut;break}if(ot===-1)break}const wt=E[ot];wt&&wt.connect(xt)}}const G=new P,J=new P;function H(Y,nt,xt){G.setFromMatrixPosition(nt.matrixWorld),J.setFromMatrixPosition(xt.matrixWorld);const ot=G.distanceTo(J),wt=nt.projectionMatrix.elements,Ut=xt.projectionMatrix.elements,Gt=wt[14]/(wt[10]-1),ce=wt[14]/(wt[10]+1),rt=(wt[9]+1)/wt[5],Ct=(wt[9]-1)/wt[5],w=(wt[8]-1)/wt[0],ve=(Ut[8]+1)/Ut[0],Bt=Gt*w,Ht=Gt*ve,Mt=ot/(-w+ve),ne=Mt*-w;if(nt.matrixWorld.decompose(Y.position,Y.quaternion,Y.scale),Y.translateX(ne),Y.translateZ(Mt),Y.matrixWorld.compose(Y.position,Y.quaternion,Y.scale),Y.matrixWorldInverse.copy(Y.matrixWorld).invert(),wt[10]===-1)Y.projectionMatrix.copy(nt.projectionMatrix),Y.projectionMatrixInverse.copy(nt.projectionMatrixInverse);else{const Et=Gt+Mt,b=ce+Mt,v=Bt-ne,F=Ht+(ot-ne),Z=rt*ce/b*Et,K=Ct*ce/b*Et;Y.projectionMatrix.makePerspective(v,F,Z,K,Et,b),Y.projectionMatrixInverse.copy(Y.projectionMatrix).invert()}}function it(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,xt=Y.far;_.texture!==null&&(_.depthNear>0&&(nt=_.depthNear),_.depthFar>0&&(xt=_.depthFar)),M.near=U.near=A.near=nt,M.far=U.far=A.far=xt,(D!==M.near||W!==M.far)&&(s.updateRenderState({depthNear:M.near,depthFar:M.far}),D=M.near,W=M.far),A.layers.mask=Y.layers.mask|2,U.layers.mask=Y.layers.mask|4,M.layers.mask=A.layers.mask|U.layers.mask;const ot=Y.parent,wt=M.cameras;it(M,ot);for(let Ut=0;Ut0&&(m.alphaTest.value=d.alphaTest);const T=t.get(d),E=T.envMap,y=T.envMapRotation;E&&(m.envMap.value=E,jn.copy(y),jn.x*=-1,jn.y*=-1,jn.z*=-1,E.isCubeTexture&&E.isRenderTargetTexture===!1&&(jn.y*=-1,jn.z*=-1),m.envMapRotation.value.setFromMatrix4(qm.makeRotationFromEuler(jn)),m.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=d.reflectivity,m.ior.value=d.ior,m.refractionRatio.value=d.refractionRatio),d.lightMap&&(m.lightMap.value=d.lightMap,m.lightMapIntensity.value=d.lightMapIntensity,e(d.lightMap,m.lightMapTransform)),d.aoMap&&(m.aoMap.value=d.aoMap,m.aoMapIntensity.value=d.aoMapIntensity,e(d.aoMap,m.aoMapTransform))}function a(m,d){m.diffuse.value.copy(d.color),m.opacity.value=d.opacity,d.map&&(m.map.value=d.map,e(d.map,m.mapTransform))}function o(m,d){m.dashSize.value=d.dashSize,m.totalSize.value=d.dashSize+d.gapSize,m.scale.value=d.scale}function l(m,d,T,E){m.diffuse.value.copy(d.color),m.opacity.value=d.opacity,m.size.value=d.size*T,m.scale.value=E*.5,d.map&&(m.map.value=d.map,e(d.map,m.uvTransform)),d.alphaMap&&(m.alphaMap.value=d.alphaMap,e(d.alphaMap,m.alphaMapTransform)),d.alphaTest>0&&(m.alphaTest.value=d.alphaTest)}function c(m,d){m.diffuse.value.copy(d.color),m.opacity.value=d.opacity,m.rotation.value=d.rotation,d.map&&(m.map.value=d.map,e(d.map,m.mapTransform)),d.alphaMap&&(m.alphaMap.value=d.alphaMap,e(d.alphaMap,m.alphaMapTransform)),d.alphaTest>0&&(m.alphaTest.value=d.alphaTest)}function h(m,d){m.specular.value.copy(d.specular),m.shininess.value=Math.max(d.shininess,1e-4)}function f(m,d){d.gradientMap&&(m.gradientMap.value=d.gradientMap)}function p(m,d){m.metalness.value=d.metalness,d.metalnessMap&&(m.metalnessMap.value=d.metalnessMap,e(d.metalnessMap,m.metalnessMapTransform)),m.roughness.value=d.roughness,d.roughnessMap&&(m.roughnessMap.value=d.roughnessMap,e(d.roughnessMap,m.roughnessMapTransform)),d.envMap&&(m.envMapIntensity.value=d.envMapIntensity)}function u(m,d,T){m.ior.value=d.ior,d.sheen>0&&(m.sheenColor.value.copy(d.sheenColor).multiplyScalar(d.sheen),m.sheenRoughness.value=d.sheenRoughness,d.sheenColorMap&&(m.sheenColorMap.value=d.sheenColorMap,e(d.sheenColorMap,m.sheenColorMapTransform)),d.sheenRoughnessMap&&(m.sheenRoughnessMap.value=d.sheenRoughnessMap,e(d.sheenRoughnessMap,m.sheenRoughnessMapTransform))),d.clearcoat>0&&(m.clearcoat.value=d.clearcoat,m.clearcoatRoughness.value=d.clearcoatRoughness,d.clearcoatMap&&(m.clearcoatMap.value=d.clearcoatMap,e(d.clearcoatMap,m.clearcoatMapTransform)),d.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=d.clearcoatRoughnessMap,e(d.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)),d.clearcoatNormalMap&&(m.clearcoatNormalMap.value=d.clearcoatNormalMap,e(d.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(d.clearcoatNormalScale),d.side===He&&m.clearcoatNormalScale.value.negate())),d.dispersion>0&&(m.dispersion.value=d.dispersion),d.iridescence>0&&(m.iridescence.value=d.iridescence,m.iridescenceIOR.value=d.iridescenceIOR,m.iridescenceThicknessMinimum.value=d.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=d.iridescenceThicknessRange[1],d.iridescenceMap&&(m.iridescenceMap.value=d.iridescenceMap,e(d.iridescenceMap,m.iridescenceMapTransform)),d.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=d.iridescenceThicknessMap,e(d.iridescenceThicknessMap,m.iridescenceThicknessMapTransform))),d.transmission>0&&(m.transmission.value=d.transmission,m.transmissionSamplerMap.value=T.texture,m.transmissionSamplerSize.value.set(T.width,T.height),d.transmissionMap&&(m.transmissionMap.value=d.transmissionMap,e(d.transmissionMap,m.transmissionMapTransform)),m.thickness.value=d.thickness,d.thicknessMap&&(m.thicknessMap.value=d.thicknessMap,e(d.thicknessMap,m.thicknessMapTransform)),m.attenuationDistance.value=d.attenuationDistance,m.attenuationColor.value.copy(d.attenuationColor)),d.anisotropy>0&&(m.anisotropyVector.value.set(d.anisotropy*Math.cos(d.anisotropyRotation),d.anisotropy*Math.sin(d.anisotropyRotation)),d.anisotropyMap&&(m.anisotropyMap.value=d.anisotropyMap,e(d.anisotropyMap,m.anisotropyMapTransform))),m.specularIntensity.value=d.specularIntensity,m.specularColor.value.copy(d.specularColor),d.specularColorMap&&(m.specularColorMap.value=d.specularColorMap,e(d.specularColorMap,m.specularColorMapTransform)),d.specularIntensityMap&&(m.specularIntensityMap.value=d.specularIntensityMap,e(d.specularIntensityMap,m.specularIntensityMapTransform))}function g(m,d){d.matcap&&(m.matcap.value=d.matcap)}function _(m,d){const T=t.get(d).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 Zm(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 L=E.program;n.updateUBOMapping(T,L);const R=t.render.frame;r[T.id]!==R&&(p(T),r[T.id]=R)}function h(T){const E=f();T.__bindingPointIndex=E;const y=i.createBuffer(),L=T.__size,R=T.usage;return i.bindBuffer(i.UNIFORM_BUFFER,y),i.bufferData(i.UNIFORM_BUFFER,L,R),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,E,y),y}function f(){for(let T=0;T0&&(y+=L-R),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 d(){for(const T in s)i.deleteBuffer(s[T]);a=[],s={},r={}}return{bind:l,update:c,dispose:d}}class Km{constructor(t={}){const{canvas:e=Th(),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:f=!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,d=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=Qe,this.toneMapping=On,this.toneMappingExposure=1;const y=this;let L=!1,R=0,A=0,U=null,S=-1,M=null;const D=new le,W=new le;let z=null;const V=new at(0);let $=0,G=e.width,J=e.height,H=1,it=null,dt=null;const yt=new le(0,0,G,J),Lt=new le(0,0,G,J);let qt=!1;const Y=new eo;let nt=!1,xt=!1;this.transmissionResolutionScale=1;const ot=new ee,wt=new ee,Ut=new P,Gt=new le,ce={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let rt=!1;function Ct(){return U===null?H:1}let w=n;function ve(x,I){return e.getContext(x,I)}try{const x={alpha:!0,depth:s,stencil:r,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:f};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${Ya}`),e.addEventListener("webglcontextlost",q,!1),e.addEventListener("webglcontextrestored",ct,!1),e.addEventListener("webglcontextcreationerror",ht,!1),w===null){const I="webgl2";if(w=ve(I,x),w===null)throw ve(I)?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 Bt,Ht,Mt,ne,Et,b,v,F,Z,K,X,St,lt,ft,jt,tt,mt,bt,Pt,pt,Xt,zt,se,C;function et(){Bt=new rp(w),Bt.init(),zt=new Hm(w,Bt),Ht=new Qf(w,Bt,t,zt),Mt=new zm(w,Bt),Ht.reverseDepthBuffer&&p&&Mt.buffers.depth.setReversed(!0),ne=new lp(w),Et=new wm,b=new km(w,Bt,Mt,Et,Ht,zt,ne),v=new ep(y),F=new sp(y),Z=new pu(w),se=new $f(w,Z),K=new ap(w,Z,ne,se),X=new hp(w,K,Z,ne),Pt=new cp(w,Ht,b),tt=new tp(Et),St=new Tm(y,v,F,Bt,Ht,se,tt),lt=new jm(y,Et),ft=new Rm,jt=new Im(Bt),bt=new Kf(y,v,F,Mt,X,u,l),mt=new Om(y,X,Ht),C=new Zm(w,ne,Ht,Mt),pt=new Jf(w,Bt,ne),Xt=new op(w,Bt,ne),ne.programs=St.programs,y.capabilities=Ht,y.extensions=Bt,y.properties=Et,y.renderLists=ft,y.shadowMap=mt,y.state=Mt,y.info=ne}et();const k=new Ym(y,w);this.xr=k,this.getContext=function(){return w},this.getContextAttributes=function(){return w.getContextAttributes()},this.forceContextLoss=function(){const x=Bt.get("WEBGL_lose_context");x&&x.loseContext()},this.forceContextRestore=function(){const x=Bt.get("WEBGL_lose_context");x&&x.restoreContext()},this.getPixelRatio=function(){return H},this.setPixelRatio=function(x){x!==void 0&&(H=x,this.setSize(G,J,!1))},this.getSize=function(x){return x.set(G,J)},this.setSize=function(x,I,O=!0){if(k.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}G=x,J=I,e.width=Math.floor(x*H),e.height=Math.floor(I*H),O===!0&&(e.style.width=x+"px",e.style.height=I+"px"),this.setViewport(0,0,x,I)},this.getDrawingBufferSize=function(x){return x.set(G*H,J*H).floor()},this.setDrawingBufferSize=function(x,I,O){G=x,J=I,H=O,e.width=Math.floor(x*O),e.height=Math.floor(I*O),this.setViewport(0,0,x,I)},this.getCurrentViewport=function(x){return x.copy(D)},this.getViewport=function(x){return x.copy(yt)},this.setViewport=function(x,I,O,B){x.isVector4?yt.set(x.x,x.y,x.z,x.w):yt.set(x,I,O,B),Mt.viewport(D.copy(yt).multiplyScalar(H).round())},this.getScissor=function(x){return x.copy(Lt)},this.setScissor=function(x,I,O,B){x.isVector4?Lt.set(x.x,x.y,x.z,x.w):Lt.set(x,I,O,B),Mt.scissor(W.copy(Lt).multiplyScalar(H).round())},this.getScissorTest=function(){return qt},this.setScissorTest=function(x){Mt.setScissorTest(qt=x)},this.setOpaqueSort=function(x){it=x},this.setTransparentSort=function(x){dt=x},this.getClearColor=function(x){return x.copy(bt.getClearColor())},this.setClearColor=function(){bt.setClearColor.apply(bt,arguments)},this.getClearAlpha=function(){return bt.getClearAlpha()},this.setClearAlpha=function(){bt.setClearAlpha.apply(bt,arguments)},this.clear=function(x=!0,I=!0,O=!0){let B=0;if(x){let N=!1;if(U!==null){const Q=U.texture.format;N=Q===Qa||Q===Ja||Q===$a}if(N){const Q=U.texture.type,ut=Q===An||Q===ni||Q===ls||Q===ki||Q===ja||Q===Za,gt=bt.getClearColor(),_t=bt.getClearAlpha(),It=gt.r,Ft=gt.g,Tt=gt.b;ut?(g[0]=It,g[1]=Ft,g[2]=Tt,g[3]=_t,w.clearBufferuiv(w.COLOR,0,g)):(_[0]=It,_[1]=Ft,_[2]=Tt,_[3]=_t,w.clearBufferiv(w.COLOR,0,_))}else B|=w.COLOR_BUFFER_BIT}I&&(B|=w.DEPTH_BUFFER_BIT),O&&(B|=w.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),w.clear(B)},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",q,!1),e.removeEventListener("webglcontextrestored",ct,!1),e.removeEventListener("webglcontextcreationerror",ht,!1),bt.dispose(),ft.dispose(),jt.dispose(),Et.dispose(),v.dispose(),F.dispose(),X.dispose(),se.dispose(),C.dispose(),St.dispose(),k.dispose(),k.removeEventListener("sessionstart",ro),k.removeEventListener("sessionend",ao),Hn.stop()};function q(x){x.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),L=!0}function ct(){console.log("THREE.WebGLRenderer: Context Restored."),L=!1;const x=ne.autoReset,I=mt.enabled,O=mt.autoUpdate,B=mt.needsUpdate,N=mt.type;et(),ne.autoReset=x,mt.enabled=I,mt.autoUpdate=O,mt.needsUpdate=B,mt.type=N}function ht(x){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",x.statusMessage)}function Nt(x){const I=x.target;I.removeEventListener("dispose",Nt),ue(I)}function ue(x){xe(x),Et.remove(x)}function xe(x){const I=Et.get(x).programs;I!==void 0&&(I.forEach(function(O){St.releaseProgram(O)}),x.isShaderMaterial&&St.releaseShaderCache(x))}this.renderBufferDirect=function(x,I,O,B,N,Q){I===null&&(I=ce);const ut=N.isMesh&&N.matrixWorld.determinant()<0,gt=Mc(x,I,O,B,N);Mt.setMaterial(B,ut);let _t=O.index,It=1;if(B.wireframe===!0){if(_t=K.getWireframeAttribute(O),_t===void 0)return;It=2}const Ft=O.drawRange,Tt=O.attributes.position;let Zt=Ft.start*It,Qt=(Ft.start+Ft.count)*It;Q!==null&&(Zt=Math.max(Zt,Q.start*It),Qt=Math.min(Qt,(Q.start+Q.count)*It)),_t!==null?(Zt=Math.max(Zt,0),Qt=Math.min(Qt,_t.count)):Tt!=null&&(Zt=Math.max(Zt,0),Qt=Math.min(Qt,Tt.count));const me=Qt-Zt;if(me<0||me===1/0)return;se.setup(N,B,gt,O,_t);let fe,Kt=pt;if(_t!==null&&(fe=Z.get(_t),Kt=Xt,Kt.setIndex(fe)),N.isMesh)B.wireframe===!0?(Mt.setLineWidth(B.wireframeLinewidth*Ct()),Kt.setMode(w.LINES)):Kt.setMode(w.TRIANGLES);else if(N.isLine){let At=B.linewidth;At===void 0&&(At=1),Mt.setLineWidth(At*Ct()),N.isLineSegments?Kt.setMode(w.LINES):N.isLineLoop?Kt.setMode(w.LINE_LOOP):Kt.setMode(w.LINE_STRIP)}else N.isPoints?Kt.setMode(w.POINTS):N.isSprite&&Kt.setMode(w.TRIANGLES);if(N.isBatchedMesh)if(N._multiDrawInstances!==null)Kt.renderMultiDrawInstances(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount,N._multiDrawInstances);else if(Bt.get("WEBGL_multi_draw"))Kt.renderMultiDraw(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount);else{const At=N._multiDrawStarts,we=N._multiDrawCounts,te=N._multiDrawCount,en=_t?Z.get(_t).bytesPerElement:1,oi=Et.get(B).currentProgram.getUniforms();for(let Ge=0;Ge{function Q(){if(B.forEach(function(ut){Et.get(ut).currentProgram.isReady()&&B.delete(ut)}),B.size===0){N(x);return}setTimeout(Q,10)}Bt.get("KHR_parallel_shader_compile")!==null?Q():setTimeout(Q,10)})};let Ve=null;function mn(x){Ve&&Ve(x)}function ro(){Hn.stop()}function ao(){Hn.start()}const Hn=new dc;Hn.setAnimationLoop(mn),typeof self<"u"&&Hn.setContext(self),this.setAnimationLoop=function(x){Ve=x,k.setAnimationLoop(x),x===null?Hn.stop():Hn.start()},k.addEventListener("sessionstart",ro),k.addEventListener("sessionend",ao),this.render=function(x,I){if(I!==void 0&&I.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(L===!0)return;if(x.matrixWorldAutoUpdate===!0&&x.updateMatrixWorld(),I.parent===null&&I.matrixWorldAutoUpdate===!0&&I.updateMatrixWorld(),k.enabled===!0&&k.isPresenting===!0&&(k.cameraAutoUpdate===!0&&k.updateCamera(I),I=k.getCamera()),x.isScene===!0&&x.onBeforeRender(y,x,I,U),d=jt.get(x,E.length),d.init(I),E.push(d),wt.multiplyMatrices(I.projectionMatrix,I.matrixWorldInverse),Y.setFromProjectionMatrix(wt),xt=this.localClippingEnabled,nt=tt.init(this.clippingPlanes,xt),m=ft.get(x,T.length),m.init(),T.push(m),k.enabled===!0&&k.isPresenting===!0){const Q=y.xr.getDepthSensingMesh();Q!==null&&_r(Q,I,-1/0,y.sortObjects)}_r(x,I,0,y.sortObjects),m.finish(),y.sortObjects===!0&&m.sort(it,dt),rt=k.enabled===!1||k.isPresenting===!1||k.hasDepthSensing()===!1,rt&&bt.addToRenderList(m,x),this.info.render.frame++,nt===!0&&tt.beginShadows();const O=d.state.shadowsArray;mt.render(O,x,I),nt===!0&&tt.endShadows(),this.info.autoReset===!0&&this.info.reset();const B=m.opaque,N=m.transmissive;if(d.setupLights(),I.isArrayCamera){const Q=I.cameras;if(N.length>0)for(let ut=0,gt=Q.length;ut0&&lo(B,N,x,I),rt&&bt.render(x),oo(m,x,I);U!==null&&A===0&&(b.updateMultisampleRenderTarget(U),b.updateRenderTargetMipmap(U)),x.isScene===!0&&x.onAfterRender(y,x,I),se.resetDefaultState(),S=-1,M=null,E.pop(),E.length>0?(d=E[E.length-1],nt===!0&&tt.setGlobalState(y.clippingPlanes,d.state.camera)):d=null,T.pop(),T.length>0?m=T[T.length-1]:m=null};function _r(x,I,O,B){if(x.visible===!1)return;if(x.layers.test(I.layers)){if(x.isGroup)O=x.renderOrder;else if(x.isLOD)x.autoUpdate===!0&&x.update(I);else if(x.isLight)d.pushLight(x),x.castShadow&&d.pushShadow(x);else if(x.isSprite){if(!x.frustumCulled||Y.intersectsSprite(x)){B&&Gt.setFromMatrixPosition(x.matrixWorld).applyMatrix4(wt);const ut=X.update(x),gt=x.material;gt.visible&&m.push(x,ut,gt,O,Gt.z,null)}}else if((x.isMesh||x.isLine||x.isPoints)&&(!x.frustumCulled||Y.intersectsObject(x))){const ut=X.update(x),gt=x.material;if(B&&(x.boundingSphere!==void 0?(x.boundingSphere===null&&x.computeBoundingSphere(),Gt.copy(x.boundingSphere.center)):(ut.boundingSphere===null&&ut.computeBoundingSphere(),Gt.copy(ut.boundingSphere.center)),Gt.applyMatrix4(x.matrixWorld).applyMatrix4(wt)),Array.isArray(gt)){const _t=ut.groups;for(let It=0,Ft=_t.length;It0&&ps(N,I,O),Q.length>0&&ps(Q,I,O),ut.length>0&&ps(ut,I,O),Mt.buffers.depth.setTest(!0),Mt.buffers.depth.setMask(!0),Mt.buffers.color.setMask(!0),Mt.setPolygonOffset(!1)}function lo(x,I,O,B){if((O.isScene===!0?O.overrideMaterial:null)!==null)return;d.state.transmissionRenderTarget[B.id]===void 0&&(d.state.transmissionRenderTarget[B.id]=new on(1,1,{generateMipmaps:!0,type:Bt.has("EXT_color_buffer_half_float")||Bt.has("EXT_color_buffer_float")?Tn:An,minFilter:Qn,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:$t.workingColorSpace}));const Q=d.state.transmissionRenderTarget[B.id],ut=B.viewport||D;Q.setSize(ut.z*y.transmissionResolutionScale,ut.w*y.transmissionResolutionScale);const gt=y.getRenderTarget();y.setRenderTarget(Q),y.getClearColor(V),$=y.getClearAlpha(),$<1&&y.setClearColor(16777215,.5),y.clear(),rt&&bt.render(O);const _t=y.toneMapping;y.toneMapping=On;const It=B.viewport;if(B.viewport!==void 0&&(B.viewport=void 0),d.setupLightsView(B),nt===!0&&tt.setGlobalState(y.clippingPlanes,B),ps(x,O,B),b.updateMultisampleRenderTarget(Q),b.updateRenderTargetMipmap(Q),Bt.has("WEBGL_multisampled_render_to_texture")===!1){let Ft=!1;for(let Tt=0,Zt=I.length;Tt0),Tt=!!O.morphAttributes.position,Zt=!!O.morphAttributes.normal,Qt=!!O.morphAttributes.color;let me=On;B.toneMapped&&(U===null||U.isXRRenderTarget===!0)&&(me=y.toneMapping);const fe=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,Kt=fe!==void 0?fe.length:0,At=Et.get(B),we=d.state.lights;if(nt===!0&&(xt===!0||x!==M)){const De=x===M&&B.id===S;tt.setState(B,x,De)}let te=!1;B.version===At.__version?(At.needsLights&&At.lightsStateVersion!==we.state.version||At.outputColorSpace!==gt||N.isBatchedMesh&&At.batching===!1||!N.isBatchedMesh&&At.batching===!0||N.isBatchedMesh&&At.batchingColor===!0&&N.colorTexture===null||N.isBatchedMesh&&At.batchingColor===!1&&N.colorTexture!==null||N.isInstancedMesh&&At.instancing===!1||!N.isInstancedMesh&&At.instancing===!0||N.isSkinnedMesh&&At.skinning===!1||!N.isSkinnedMesh&&At.skinning===!0||N.isInstancedMesh&&At.instancingColor===!0&&N.instanceColor===null||N.isInstancedMesh&&At.instancingColor===!1&&N.instanceColor!==null||N.isInstancedMesh&&At.instancingMorph===!0&&N.morphTexture===null||N.isInstancedMesh&&At.instancingMorph===!1&&N.morphTexture!==null||At.envMap!==_t||B.fog===!0&&At.fog!==Q||At.numClippingPlanes!==void 0&&(At.numClippingPlanes!==tt.numPlanes||At.numIntersection!==tt.numIntersection)||At.vertexAlphas!==It||At.vertexTangents!==Ft||At.morphTargets!==Tt||At.morphNormals!==Zt||At.morphColors!==Qt||At.toneMapping!==me||At.morphTargetsCount!==Kt)&&(te=!0):(te=!0,At.__version=B.version);let en=At.currentProgram;te===!0&&(en=ms(B,I,N));let oi=!1,Ge=!1,Yi=!1;const de=en.getUniforms(),Ze=At.uniforms;if(Mt.useProgram(en.program)&&(oi=!0,Ge=!0,Yi=!0),B.id!==S&&(S=B.id,Ge=!0),oi||M!==x){Mt.buffers.depth.getReversed()?(ot.copy(x.projectionMatrix),Ah(ot),Rh(ot),de.setValue(w,"projectionMatrix",ot)):de.setValue(w,"projectionMatrix",x.projectionMatrix),de.setValue(w,"viewMatrix",x.matrixWorldInverse);const Oe=de.map.cameraPosition;Oe!==void 0&&Oe.setValue(w,Ut.setFromMatrixPosition(x.matrixWorld)),Ht.logarithmicDepthBuffer&&de.setValue(w,"logDepthBufFC",2/(Math.log(x.far+1)/Math.LN2)),(B.isMeshPhongMaterial||B.isMeshToonMaterial||B.isMeshLambertMaterial||B.isMeshBasicMaterial||B.isMeshStandardMaterial||B.isShaderMaterial)&&de.setValue(w,"isOrthographic",x.isOrthographicCamera===!0),M!==x&&(M=x,Ge=!0,Yi=!0)}if(N.isSkinnedMesh){de.setOptional(w,N,"bindMatrix"),de.setOptional(w,N,"bindMatrixInverse");const De=N.skeleton;De&&(De.boneTexture===null&&De.computeBoneTexture(),de.setValue(w,"boneTexture",De.boneTexture,b))}N.isBatchedMesh&&(de.setOptional(w,N,"batchingTexture"),de.setValue(w,"batchingTexture",N._matricesTexture,b),de.setOptional(w,N,"batchingIdTexture"),de.setValue(w,"batchingIdTexture",N._indirectTexture,b),de.setOptional(w,N,"batchingColorTexture"),N._colorsTexture!==null&&de.setValue(w,"batchingColorTexture",N._colorsTexture,b));const Ke=O.morphAttributes;if((Ke.position!==void 0||Ke.normal!==void 0||Ke.color!==void 0)&&Pt.update(N,O,en),(Ge||At.receiveShadow!==N.receiveShadow)&&(At.receiveShadow=N.receiveShadow,de.setValue(w,"receiveShadow",N.receiveShadow)),B.isMeshGouraudMaterial&&B.envMap!==null&&(Ze.envMap.value=_t,Ze.flipEnvMap.value=_t.isCubeTexture&&_t.isRenderTargetTexture===!1?-1:1),B.isMeshStandardMaterial&&B.envMap===null&&I.environment!==null&&(Ze.envMapIntensity.value=I.environmentIntensity),Ge&&(de.setValue(w,"toneMappingExposure",y.toneMappingExposure),At.needsLights&&Sc(Ze,Yi),Q&&B.fog===!0&<.refreshFogUniforms(Ze,Q),lt.refreshMaterialUniforms(Ze,B,H,J,d.state.transmissionRenderTarget[x.id]),tr.upload(w,ho(At),Ze,b)),B.isShaderMaterial&&B.uniformsNeedUpdate===!0&&(tr.upload(w,ho(At),Ze,b),B.uniformsNeedUpdate=!1),B.isSpriteMaterial&&de.setValue(w,"center",N.center),de.setValue(w,"modelViewMatrix",N.modelViewMatrix),de.setValue(w,"normalMatrix",N.normalMatrix),de.setValue(w,"modelMatrix",N.matrixWorld),B.isShaderMaterial||B.isRawShaderMaterial){const De=B.uniformsGroups;for(let Oe=0,vr=De.length;Oe0&&b.useMultisampledRTT(x)===!1?N=Et.get(x).__webglMultisampledFramebuffer:Array.isArray(Ft)?N=Ft[O]:N=Ft,D.copy(x.viewport),W.copy(x.scissor),z=x.scissorTest}else D.copy(yt).multiplyScalar(H).floor(),W.copy(Lt).multiplyScalar(H).floor(),z=qt;if(O!==0&&(N=Ec),Mt.bindFramebuffer(w.FRAMEBUFFER,N)&&B&&Mt.drawBuffers(x,N),Mt.viewport(D),Mt.scissor(W),Mt.setScissorTest(z),Q){const _t=Et.get(x.texture);w.framebufferTexture2D(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_CUBE_MAP_POSITIVE_X+I,_t.__webglTexture,O)}else if(ut){const _t=Et.get(x.texture),It=I;w.framebufferTextureLayer(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,_t.__webglTexture,O,It)}else if(x!==null&&O!==0){const _t=Et.get(x.texture);w.framebufferTexture2D(w.FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_2D,_t.__webglTexture,O)}S=-1},this.readRenderTargetPixels=function(x,I,O,B,N,Q,ut){if(!(x&&x.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let gt=Et.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&ut!==void 0&&(gt=gt[ut]),gt){Mt.bindFramebuffer(w.FRAMEBUFFER,gt);try{const _t=x.texture,It=_t.format,Ft=_t.type;if(!Ht.textureFormatReadable(It)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Ht.textureTypeReadable(Ft)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}I>=0&&I<=x.width-B&&O>=0&&O<=x.height-N&&w.readPixels(I,O,B,N,zt.convert(It),zt.convert(Ft),Q)}finally{const _t=U!==null?Et.get(U).__webglFramebuffer:null;Mt.bindFramebuffer(w.FRAMEBUFFER,_t)}}},this.readRenderTargetPixelsAsync=async function(x,I,O,B,N,Q,ut){if(!(x&&x.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let gt=Et.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&ut!==void 0&&(gt=gt[ut]),gt){const _t=x.texture,It=_t.format,Ft=_t.type;if(!Ht.textureFormatReadable(It))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Ht.textureTypeReadable(Ft))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(I>=0&&I<=x.width-B&&O>=0&&O<=x.height-N){Mt.bindFramebuffer(w.FRAMEBUFFER,gt);const Tt=w.createBuffer();w.bindBuffer(w.PIXEL_PACK_BUFFER,Tt),w.bufferData(w.PIXEL_PACK_BUFFER,Q.byteLength,w.STREAM_READ),w.readPixels(I,O,B,N,zt.convert(It),zt.convert(Ft),0);const Zt=U!==null?Et.get(U).__webglFramebuffer:null;Mt.bindFramebuffer(w.FRAMEBUFFER,Zt);const Qt=w.fenceSync(w.SYNC_GPU_COMMANDS_COMPLETE,0);return w.flush(),await wh(w,Qt,4),w.bindBuffer(w.PIXEL_PACK_BUFFER,Tt),w.getBufferSubData(w.PIXEL_PACK_BUFFER,0,Q),w.deleteBuffer(Tt),w.deleteSync(Qt),Q}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(x,I=null,O=0){x.isTexture!==!0&&(Ri("WebGLRenderer: copyFramebufferToTexture function signature has changed."),I=arguments[0]||null,x=arguments[1]);const B=Math.pow(2,-O),N=Math.floor(x.image.width*B),Q=Math.floor(x.image.height*B),ut=I!==null?I.x:0,gt=I!==null?I.y:0;b.setTexture2D(x,0),w.copyTexSubImage2D(w.TEXTURE_2D,O,0,0,ut,gt,N,Q),Mt.unbindTexture()};const bc=w.createFramebuffer(),Tc=w.createFramebuffer();this.copyTextureToTexture=function(x,I,O=null,B=null,N=0,Q=null){x.isTexture!==!0&&(Ri("WebGLRenderer: copyTextureToTexture function signature has changed."),B=arguments[0]||null,x=arguments[1],I=arguments[2],Q=arguments[3]||0,O=null),Q===null&&(N!==0?(Ri("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),Q=N,N=0):Q=0);let ut,gt,_t,It,Ft,Tt,Zt,Qt,me;const fe=x.isCompressedTexture?x.mipmaps[Q]:x.image;if(O!==null)ut=O.max.x-O.min.x,gt=O.max.y-O.min.y,_t=O.isBox3?O.max.z-O.min.z:1,It=O.min.x,Ft=O.min.y,Tt=O.isBox3?O.min.z:0;else{const Ke=Math.pow(2,-N);ut=Math.floor(fe.width*Ke),gt=Math.floor(fe.height*Ke),x.isDataArrayTexture?_t=fe.depth:x.isData3DTexture?_t=Math.floor(fe.depth*Ke):_t=1,It=0,Ft=0,Tt=0}B!==null?(Zt=B.x,Qt=B.y,me=B.z):(Zt=0,Qt=0,me=0);const Kt=zt.convert(I.format),At=zt.convert(I.type);let we;I.isData3DTexture?(b.setTexture3D(I,0),we=w.TEXTURE_3D):I.isDataArrayTexture||I.isCompressedArrayTexture?(b.setTexture2DArray(I,0),we=w.TEXTURE_2D_ARRAY):(b.setTexture2D(I,0),we=w.TEXTURE_2D),w.pixelStorei(w.UNPACK_FLIP_Y_WEBGL,I.flipY),w.pixelStorei(w.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I.premultiplyAlpha),w.pixelStorei(w.UNPACK_ALIGNMENT,I.unpackAlignment);const te=w.getParameter(w.UNPACK_ROW_LENGTH),en=w.getParameter(w.UNPACK_IMAGE_HEIGHT),oi=w.getParameter(w.UNPACK_SKIP_PIXELS),Ge=w.getParameter(w.UNPACK_SKIP_ROWS),Yi=w.getParameter(w.UNPACK_SKIP_IMAGES);w.pixelStorei(w.UNPACK_ROW_LENGTH,fe.width),w.pixelStorei(w.UNPACK_IMAGE_HEIGHT,fe.height),w.pixelStorei(w.UNPACK_SKIP_PIXELS,It),w.pixelStorei(w.UNPACK_SKIP_ROWS,Ft),w.pixelStorei(w.UNPACK_SKIP_IMAGES,Tt);const de=x.isDataArrayTexture||x.isData3DTexture,Ze=I.isDataArrayTexture||I.isData3DTexture;if(x.isDepthTexture){const Ke=Et.get(x),De=Et.get(I),Oe=Et.get(Ke.__renderTarget),vr=Et.get(De.__renderTarget);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,Oe.__webglFramebuffer),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,vr.__webglFramebuffer);for(let Vn=0;Vn<_t;Vn++)de&&(w.framebufferTextureLayer(w.READ_FRAMEBUFFER,w.COLOR_ATTACHMENT0,Et.get(x).__webglTexture,N,Tt+Vn),w.framebufferTextureLayer(w.DRAW_FRAMEBUFFER,w.COLOR_ATTACHMENT0,Et.get(I).__webglTexture,Q,me+Vn)),w.blitFramebuffer(It,Ft,ut,gt,Zt,Qt,ut,gt,w.DEPTH_BUFFER_BIT,w.NEAREST);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,null),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,null)}else if(N!==0||x.isRenderTargetTexture||Et.has(x)){const Ke=Et.get(x),De=Et.get(I);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,bc),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,Tc);for(let Oe=0;Oe<_t;Oe++)de?w.framebufferTextureLayer(w.READ_FRAMEBUFFER,w.COLOR_ATTACHMENT0,Ke.__webglTexture,N,Tt+Oe):w.framebufferTexture2D(w.READ_FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_2D,Ke.__webglTexture,N),Ze?w.framebufferTextureLayer(w.DRAW_FRAMEBUFFER,w.COLOR_ATTACHMENT0,De.__webglTexture,Q,me+Oe):w.framebufferTexture2D(w.DRAW_FRAMEBUFFER,w.COLOR_ATTACHMENT0,w.TEXTURE_2D,De.__webglTexture,Q),N!==0?w.blitFramebuffer(It,Ft,ut,gt,Zt,Qt,ut,gt,w.COLOR_BUFFER_BIT,w.NEAREST):Ze?w.copyTexSubImage3D(we,Q,Zt,Qt,me+Oe,It,Ft,ut,gt):w.copyTexSubImage2D(we,Q,Zt,Qt,It,Ft,ut,gt);Mt.bindFramebuffer(w.READ_FRAMEBUFFER,null),Mt.bindFramebuffer(w.DRAW_FRAMEBUFFER,null)}else Ze?x.isDataTexture||x.isData3DTexture?w.texSubImage3D(we,Q,Zt,Qt,me,ut,gt,_t,Kt,At,fe.data):I.isCompressedArrayTexture?w.compressedTexSubImage3D(we,Q,Zt,Qt,me,ut,gt,_t,Kt,fe.data):w.texSubImage3D(we,Q,Zt,Qt,me,ut,gt,_t,Kt,At,fe):x.isDataTexture?w.texSubImage2D(w.TEXTURE_2D,Q,Zt,Qt,ut,gt,Kt,At,fe.data):x.isCompressedTexture?w.compressedTexSubImage2D(w.TEXTURE_2D,Q,Zt,Qt,fe.width,fe.height,Kt,fe.data):w.texSubImage2D(w.TEXTURE_2D,Q,Zt,Qt,ut,gt,Kt,At,fe);w.pixelStorei(w.UNPACK_ROW_LENGTH,te),w.pixelStorei(w.UNPACK_IMAGE_HEIGHT,en),w.pixelStorei(w.UNPACK_SKIP_PIXELS,oi),w.pixelStorei(w.UNPACK_SKIP_ROWS,Ge),w.pixelStorei(w.UNPACK_SKIP_IMAGES,Yi),Q===0&&I.generateMipmaps&&w.generateMipmap(we),Mt.unbindTexture()},this.copyTextureToTexture3D=function(x,I,O=null,B=null,N=0){return x.isTexture!==!0&&(Ri("WebGLRenderer: copyTextureToTexture3D function signature has changed."),O=arguments[0]||null,B=arguments[1]||null,x=arguments[2],I=arguments[3],N=arguments[4]||0),Ri('WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use "copyTextureToTexture" instead.'),this.copyTextureToTexture(x,I,O,B,N)},this.initRenderTarget=function(x){Et.get(x).__webglFramebuffer===void 0&&b.setupRenderTarget(x)},this.initTexture=function(x){x.isCubeTexture?b.setTextureCube(x,0):x.isData3DTexture?b.setTexture3D(x,0):x.isDataArrayTexture||x.isCompressedArrayTexture?b.setTexture2DArray(x,0):b.setTexture2D(x,0),Mt.unbindTexture()},this.resetState=function(){R=0,A=0,U=null,Mt.reset(),se.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return En}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorspace=$t._getDrawingBufferColorSpace(t),e.unpackColorSpace=$t._getUnpackColorSpace()}}const El={type:"change"},so={type:"start"},_c={type:"end"},Ys=new hs,bl=new Nn,$m=Math.cos(70*bh.DEG2RAD),Me=new P,Be=2*Math.PI,oe={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},Jr=1e-6;class Jm extends du{constructor(t,e=null){super(t,e),this.state=oe.NONE,this.enabled=!0,this.target=new P,this.cursor=new P,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:Li.ROTATE,MIDDLE:Li.DOLLY,RIGHT:Li.PAN},this.touches={ONE:Ci.ROTATE,TWO:Ci.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new P,this._lastQuaternion=new ii,this._lastTargetPosition=new P,this._quat=new ii().setFromUnitVectors(t.up,new P(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new $o,this._sphericalDelta=new $o,this._scale=1,this._panOffset=new P,this._rotateStart=new vt,this._rotateEnd=new vt,this._rotateDelta=new vt,this._panStart=new vt,this._panEnd=new vt,this._panDelta=new vt,this._dollyStart=new vt,this._dollyEnd=new vt,this._dollyDelta=new vt,this._dollyDirection=new P,this._mouse=new vt,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=tg.bind(this),this._onPointerDown=Qm.bind(this),this._onPointerUp=eg.bind(this),this._onContextMenu=lg.bind(this),this._onMouseWheel=sg.bind(this),this._onKeyDown=rg.bind(this),this._onTouchStart=ag.bind(this),this._onTouchMove=og.bind(this),this._onMouseDown=ng.bind(this),this._onMouseMove=ig.bind(this),this._interceptControlDown=cg.bind(this),this._interceptControlUp=hg.bind(this),this.domElement!==null&&this.connect(),this.update()}connect(){this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(El),this.update(),this.state=oe.NONE}update(t=null){const e=this.object.position;Me.copy(e).sub(this.target),Me.applyQuaternion(this._quat),this._spherical.setFromVector3(Me),this.autoRotate&&this.state===oe.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let n=this.minAzimuthAngle,s=this.maxAzimuthAngle;isFinite(n)&&isFinite(s)&&(n<-Math.PI?n+=Be:n>Math.PI&&(n-=Be),s<-Math.PI?s+=Be:s>Math.PI&&(s-=Be),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(Me.setFromSpherical(this._spherical),Me.applyQuaternion(this._quatInverse),e.copy(this.target).add(Me),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=Me.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=Me.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):(Ys.origin.copy(this.object.position),Ys.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(Ys.direction))<$m?this.object.lookAt(this.target):(bl.setFromNormalAndCoplanarPoint(this.object.up,this.target),Ys.intersectPlane(bl,this.target))))}else if(this.object.isOrthographicCamera){const a=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),a!==this.object.zoom&&(this.object.updateProjectionMatrix(),r=!0)}return this._scale=1,this._performCursorZoom=!1,r||this._lastPosition.distanceToSquared(this.object.position)>Jr||8*(1-this._lastQuaternion.dot(this.object.quaternion))>Jr||this._lastTargetPosition.distanceToSquared(this.target)>Jr?(this.dispatchEvent(El),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?Be/60*this.autoRotateSpeed*t:Be/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){Me.setFromMatrixColumn(e,0),Me.multiplyScalar(-t),this._panOffset.add(Me)}_panUp(t,e){this.screenSpacePanning===!0?Me.setFromMatrixColumn(e,1):(Me.setFromMatrixColumn(e,0),Me.crossVectors(this.object.up,Me)),Me.multiplyScalar(t),this._panOffset.add(Me)}_pan(t,e){const n=this.domElement;if(this.object.isPerspectiveCamera){const s=this.object.position;Me.copy(s).sub(this.target);let r=Me.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(Be*this._rotateDelta.x/e.clientHeight),this._rotateUp(Be*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(Be*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(-Be*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(Be*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(-Be*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(Be*this._rotateDelta.x/e.clientHeight),this._rotateUp(Be*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{var e;(t instanceof Se||t instanceof tu)&&((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 yg{constructor(t){Wt(this,"positions");Wt(this,"velocities");Wt(this,"running",!0);Wt(this,"step",0);Wt(this,"repulsionStrength",500);Wt(this,"attractionStrength",.01);Wt(this,"dampening",.9);Wt(this,"baseMaxSteps",300);Wt(this,"maxSteps",300);Wt(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;s0,o=new mr(s,16,16),l=new iu({color:new pt(r),emissive:new pt(r),emissiveIntensity:a?0:.3+t.retention*.5,roughness:.3,metalness:.1,transparent:!0,opacity:a?.2:.3+t.retention*.7}),c=new Se(o,l);c.position.copy(e),c.scale.setScalar(n),c.userData={nodeId:t.id,type:t.type,retention:t.retention},this.meshMap.set(t.id,c),this.group.add(c);const h=new Qs({map:Eg(),color:new pt(r),transparent:!0,opacity:n>0?a?.1:.3+t.retention*.35:0,blending:Ne,depthWrite:!1}),d=new Ns(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,f=this.createTextSprite(p,"#e2e8f0");return f.position.copy(e),f.position.y+=s*2+1.5,f.userData={isLabel:!0,nodeId:t.id,offset:s*2+1.5},this.group.add(f),this.labelSprites.set(t.id,f),{mesh:c,glow:d,label:f,size:s}}addNode(t,e){const n=(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,n);const{mesh:s,glow:r,label:a}=this.createNodeMeshes(t,n,0);return s.scale.setScalar(.001),r.scale.set(.001,.001,1),r.material.opacity=0,a.material.opacity=0,this.materializingNodes.push({id:t.id,frame:0,totalFrames:30,mesh:s,glow:r,label:a,targetScale:.5+t.retention*2}),n}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 c=new Te;return new Ns(new Qs({map:c,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="bold 28px -apple-system, BlinkMacSystemFont, sans-serif",s.textAlign="center",s.textBaseline="middle",s.shadowColor="rgba(0, 0, 0, 0.8)",s.shadowBlur=6,s.shadowOffsetX=0,s.shadowOffsetY=2,s.fillStyle=e,s.fillText(r,n.width/2,n.height/2);const a=new lc(n);a.needsUpdate=!0;const o=new Qs({map:a,transparent:!0,opacity:0,depthTest:!1,sizeAttenuation:!0}),l=new Ns(o);return l.scale.set(12,1.5,1),l}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 Se&&t.position.copy(e)}})}animate(t,e,n){var r,a;for(let o=this.materializingNodes.length-1;o>=0;o--){const l=this.materializingNodes[o];l.frame++;const c=Math.min(l.frame/l.totalFrames,1),h=wl(c);if(l.mesh.scale.setScalar(Math.max(.001,h)),l.frame>=5){const d=Math.min((l.frame-5)/5,1),p=l.glow.material;p.opacity=d*.4;const f=l.targetScale*6*h;l.glow.scale.set(f,f,1)}if(l.frame>=40){const d=Math.min((l.frame-40)/20,1);l.label.material.opacity=d*.9}l.frame>=60&&this.materializingNodes.splice(o,1)}for(let o=this.dissolvingNodes.length-1;o>=0;o--){const l=this.dissolvingNodes[o];l.frame++;const c=Math.min(l.frame/l.totalFrames,1),h=1-bg(c),d=Math.max(.001,l.originalScale*h);l.mesh.scale.setScalar(d);const p=d*6;l.glow.scale.set(p,p,1);const f=l.mesh.material;f.opacity*=.97,l.glow.material.opacity*=.95,l.label.material.opacity*=.93,l.frame>=l.totalFrames&&(this.group.remove(l.mesh),this.group.remove(l.glow),this.group.remove(l.label),l.mesh.geometry.dispose(),l.mesh.material.dispose(),(r=l.glow.material.map)==null||r.dispose(),l.glow.material.dispose(),(a=l.label.material.map)==null||a.dispose(),l.label.material.dispose(),this.meshMap.delete(l.id),this.glowMap.delete(l.id),this.labelSprites.delete(l.id),this.positions.delete(l.id),this.dissolvingNodes.splice(o,1))}for(let o=this.growingNodes.length-1;o>=0;o--){const l=this.growingNodes[o];l.frame++;const c=Math.min(l.frame/l.totalFrames,1),h=l.startScale+(l.targetScale-l.startScale)*wl(c),d=this.meshMap.get(l.id);d&&d.scale.setScalar(h);const p=this.glowMap.get(l.id);if(p){const f=h*6;p.scale.set(f,f,1)}l.frame>=l.totalFrames&&this.growingNodes.splice(o,1)}const s=new Set([...this.materializingNodes.map(o=>o.id),...this.dissolvingNodes.map(o=>o.id),...this.growingNodes.map(o=>o.id)]);this.meshMap.forEach((o,l)=>{if(s.has(l))return;const c=e.find(p=>p.id===l);if(!c)return;const h=1+Math.sin(t*1.5+e.indexOf(c)*.5)*.15*c.retention;o.scale.setScalar(h);const d=o.material;if(l===this.hoveredNode)d.emissiveIntensity=1;else if(l===this.selectedNode)d.emissiveIntensity=.8;else{const f=.3+c.retention*.5+Math.sin(t*(.8+c.retention*.7))*.1*c.retention;d.emissiveIntensity=f}}),this.labelSprites.forEach((o,l)=>{if(s.has(l))return;const c=this.positions.get(l);if(!c)return;const h=n.position.distanceTo(c),d=o.material,p=l===this.hoveredNode||l===this.selectedNode?1:h<40?.9:h<80?.9*(1-(h-40)/40):0;d.opacity+=(p-d.opacity)*.1})}getMeshes(){return Array.from(this.meshMap.values())}dispose(){this.group.traverse(t=>{var e,n,s,r,a;t instanceof Se?((e=t.geometry)==null||e.dispose(),(n=t.material)==null||n.dispose()):t instanceof Ns&&((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 wg(i){return 1-Math.pow(1-i,3)}class Ag{constructor(){Wt(this,"group");Wt(this,"growingEdges",[]);Wt(this,"dissolvingEdges",[]);this.group=new Pi}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 pe().setFromPoints(a),l=new lr({color:9133302,transparent:!0,opacity:Math.min(.25+n.weight*.5,.8),blending:Ne,depthWrite:!1}),c=new Va(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 pe().setFromPoints(r),o=new lr({color:9133302,transparent:!0,opacity:0,blending:Ne,depthWrite:!1}),l=new Va(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=wg(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 Rg{constructor(t){Wt(this,"starField");Wt(this,"neuralParticles");this.starField=this.createStarField(),this.neuralParticles=this.createNeuralParticles(),t.add(this.starField),t.add(this.neuralParticles)}createStarField(){const e=new pe,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 ei({color:6514417,size:.5,transparent:!0,opacity:.4,sizeAttenuation:!0,blending:Ne});return new Fi(e,r)}createNeuralParticles(){const e=new pe,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 ei({size:.3,vertexColors:!0,transparent:!0,opacity:.4,blending:Ne,sizeAttenuation:!0});return new Fi(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 pt(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}}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();this.pulseEffects=[],this.spawnBursts=[],this.rainbowBursts=[],this.rippleWaves=[],this.implosions=[],this.shockwaves=[],this.connectionFlashes=[]}}const Sn={bloomStrength:.8,rotateSpeed:.3,fogColor:328976,fogDensity:.008,nebulaIntensity:0,chromaticIntensity:.002,vignetteRadius:.9,breatheAmplitude:1},In={bloomStrength:1.8,rotateSpeed:.08,fogColor:656672,fogDensity:.006,nebulaIntensity:1,chromaticIntensity:.005,vignetteRadius:.7,breatheAmplitude:2};class Pg{constructor(){Wt(this,"active",!1);Wt(this,"transition",0);Wt(this,"transitionSpeed",.008);Wt(this,"current");Wt(this,"auroraHue",0);this.current={...Sn}}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(Sn.bloomStrength,In.bloomStrength,o),this.current.rotateSpeed=this.lerp(Sn.rotateSpeed,In.rotateSpeed,o),this.current.fogDensity=this.lerp(Sn.fogDensity,In.fogDensity,o),this.current.nebulaIntensity=this.lerp(Sn.nebulaIntensity,In.nebulaIntensity,o),this.current.chromaticIntensity=this.lerp(Sn.chromaticIntensity,In.chromaticIntensity,o),this.current.vignetteRadius=this.lerp(Sn.vignetteRadius,In.vignetteRadius,o),this.current.breatheAmplitude=this.lerp(Sn.breatheAmplitude,In.breatheAmplitude,o),e.strength=this.current.bloomStrength,n.autoRotateSpeed=this.current.rotateSpeed;const l=new pt(Sn.fogColor),c=new pt(In.fogColor),h=l.clone().lerp(c,o);if(t.fog=new pr(h,this.current.fogDensity),o>.01){this.auroraHue=r*.1%1;const d=new pt().setHSL(.75+this.auroraHue*.15,.8,.5),p=new pt().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 Dg=50,os=[];function Lg(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 Ug(i,t){if(os.length<=Dg)return;const e=os.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 Ig(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 f=i.data;if(!f.id)break;const g={id:f.id,label:(f.content??"").slice(0,60),type:f.node_type??"fact",retention:Math.max(0,Math.min(1,f.retention??.9)),tags:f.tags??[],createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),isCenter:!1},v=Lg(g,e,c),m=s.addNode(g,v);a.addNode(f.id,m),os.push(f.id),Ug(t,e);const u=new pt(Fl[g.type]||"#00ffd1");n.createRainbowBurst(v,u),n.createShockwave(v,u,o);const T=u.clone();T.offsetHSL(.15,0,0),setTimeout(()=>{n.createShockwave(v,T,o)},166),n.createRippleWave(v),l({type:"nodeAdded",node:g});break}case"ConnectionDiscovered":{const f=i.data;if(!f.source_id||!f.target_id)break;const g=c.get(f.source_id),v=c.get(f.target_id),m={source:f.source_id,target:f.target_id,weight:f.weight??.5,type:f.connection_type??"semantic"};r.addEdge(m,c),g&&v&&n.createConnectionFlash(g,v,new pt(54527)),f.source_id&&h.has(f.source_id)&&n.addPulse(f.source_id,1,new pt(54527),.02),f.target_id&&h.has(f.target_id)&&n.addPulse(f.target_id,1,new pt(54527),.02),l({type:"edgeAdded",edge:m});break}case"MemoryDeleted":{const f=i.data;if(!f.id)break;const g=c.get(f.id);if(g){const m=new pt(16729943);n.createImplosion(g,m)}r.removeEdgesForNode(f.id),s.removeNode(f.id),a.removeNode(f.id);const v=os.indexOf(f.id);v!==-1&&os.splice(v,1),l({type:"edgesRemoved",nodeId:f.id}),l({type:"nodeRemoved",nodeId:f.id});break}case"MemoryPromoted":{const f=i.data,g=f==null?void 0:f.id;if(!g)break;const v=f.new_retention??.95;if(h.has(g)){s.growNode(g,v),n.addPulse(g,1.2,new pt(65416),.01);const m=c.get(g);m&&(n.createShockwave(m,new pt(65416),o),n.createSpawnBurst(m,new pt(65416))),l({type:"nodeUpdated",nodeId:g,retention:v})}break}case"MemoryDemoted":{const f=i.data,g=f==null?void 0:f.id;if(!g)break;const v=f.new_retention??.3;h.has(g)&&(s.growNode(g,v),n.addPulse(g,.8,new pt(16729943),.03),l({type:"nodeUpdated",nodeId:g,retention:v}));break}case"MemoryUpdated":{const f=i.data,g=f==null?void 0:f.id;if(!g||!h.has(g))break;n.addPulse(g,.6,new pt(8490232),.02),f.retention!==void 0&&(s.growNode(g,f.retention),l({type:"nodeUpdated",nodeId:g,retention:f.retention}));break}case"SearchPerformed":{h.forEach((f,g)=>{n.addPulse(g,.6+Math.random()*.4,new pt(8490232),.02)});break}case"DreamStarted":{h.forEach((f,g)=>{n.addPulse(g,1,new pt(11032055),.005)});break}case"DreamProgress":{const f=(d=i.data)==null?void 0:d.memory_id;f&&h.has(f)&&n.addPulse(f,1.5,new pt(12616956),.01);break}case"DreamCompleted":{n.createSpawnBurst(new P(0,0,0),new pt(11032055)),n.createShockwave(new P(0,0,0),new pt(11032055),o);break}case"RetentionDecayed":{const f=(p=i.data)==null?void 0:p.id;f&&h.has(f)&&n.addPulse(f,.8,new pt(16729943),.03);break}case"ConsolidationCompleted":{h.forEach((f,g)=>{n.addPulse(g,.4+Math.random()*.3,new pt(16758784),.015)});break}case"ActivationSpread":{const f=i.data;if(f.source_id&&f.target_ids){const g=c.get(f.source_id);if(g)for(const v of f.target_ids){const m=c.get(v);m&&n.createConnectionFlash(g,m,new pt(1370310))}}break}}}const Ng=` + }`})}}Wi.BlurDirectionX=new vt(1,0);Wi.BlurDirectionY=new vt(0,1);function vg(){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 pe;n.setAttribute("position",new he(t,3)),n.setAttribute("color",new he(e,3));const s=new ei({size:1.6,sizeAttenuation:!0,vertexColors:!0,transparent:!0,opacity:.6,depthWrite:!1,blending:Ne});return new Fi(n,s)}function xg(i){const t=new Kh;t.background=new at(328975),t.fog=new pr(657946,.0035);const e=new Ye(60,i.clientWidth/i.clientHeight,.1,2e3);e.position.set(0,30,80);const n=new Km({antialias:!0,alpha:!0,powerPreference:"high-performance"});n.setSize(i.clientWidth,i.clientHeight),n.setPixelRatio(Math.min(window.devicePixelRatio,2)),n.toneMapping=zl,n.toneMappingExposure=1.25,i.appendChild(n.domElement);const s=new Jm(e,n.domElement);s.enableDamping=!0,s.dampingFactor=.05,s.rotateSpeed=.5,s.zoomSpeed=.8,s.minDistance=10,s.maxDistance=500,s.autoRotate=!0,s.autoRotateSpeed=.3;const r=new mg(n);r.addPass(new gg(t,e));const a=new Wi(new vt(i.clientWidth,i.clientHeight),.55,.6,.2);r.addPass(a);const o=new lu(2763354,.7);t.add(o);const l=new qo(6514417,1.8,240);l.position.set(50,50,50),t.add(l);const c=new qo(11032055,1.2,240);c.position.set(-50,-30,-50),t.add(c);const h=vg();t.add(h);const f=new uu;f.params.Points={threshold:2};const p=new vt;return{scene:t,camera:e,renderer:n,controls:s,composer:r,bloomPass:a,raycaster:f,mouse:p,lights:{ambient:o,point1:l,point2:c},starfield:h}}function Mg(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 Sg(i){i.scene.traverse(t=>{var e;(t instanceof Se||t instanceof tu)&&((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 yg{constructor(t){Wt(this,"positions");Wt(this,"velocities");Wt(this,"running",!0);Wt(this,"step",0);Wt(this,"repulsionStrength",500);Wt(this,"attractionStrength",.01);Wt(this,"dampening",.9);Wt(this,"baseMaxSteps",300);Wt(this,"maxSteps",300);Wt(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;s0,o=new mr(s,16,16),l=new iu({color:new at(r),emissive:new at(r),emissiveIntensity:a?0:.3+t.retention*.5,roughness:.3,metalness:.1,transparent:!0,opacity:a?.2:.3+t.retention*.7}),c=new Se(o,l);c.position.copy(e),c.scale.setScalar(n),c.userData={nodeId:t.id,type:t.type,retention:t.retention},this.meshMap.set(t.id,c),this.group.add(c);const h=new Qs({map:Eg(),color:new at(r),transparent:!0,opacity:n>0?a?.1:.3+t.retention*.35:0,blending:Ne,depthWrite:!1}),f=new Ns(h);f.scale.set(s*6*n,s*6*n,1),f.position.copy(e),f.userData={isGlow:!0,nodeId:t.id},this.glowMap.set(t.id,f),this.group.add(f);const p=t.label||t.type,u=this.createTextSprite(p,"#e2e8f0");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:f,label:u,size:s}}addNode(t,e){const n=(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,n);const{mesh:s,glow:r,label:a}=this.createNodeMeshes(t,n,0);return s.scale.setScalar(.001),r.scale.set(.001,.001,1),r.material.opacity=0,a.material.opacity=0,this.materializingNodes.push({id:t.id,frame:0,totalFrames:30,mesh:s,glow:r,label:a,targetScale:.5+t.retention*2}),n}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 c=new Te;return new Ns(new Qs({map:c,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="bold 28px -apple-system, BlinkMacSystemFont, sans-serif",s.textAlign="center",s.textBaseline="middle",s.shadowColor="rgba(0, 0, 0, 0.8)",s.shadowBlur=6,s.shadowOffsetX=0,s.shadowOffsetY=2,s.fillStyle=e,s.fillText(r,n.width/2,n.height/2);const a=new lc(n);a.needsUpdate=!0;const o=new Qs({map:a,transparent:!0,opacity:0,depthTest:!1,sizeAttenuation:!0}),l=new Ns(o);return l.scale.set(12,1.5,1),l}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 Se&&t.position.copy(e)}})}animate(t,e,n){var r,a;for(let o=this.materializingNodes.length-1;o>=0;o--){const l=this.materializingNodes[o];l.frame++;const c=Math.min(l.frame/l.totalFrames,1),h=wl(c);if(l.mesh.scale.setScalar(Math.max(.001,h)),l.frame>=5){const f=Math.min((l.frame-5)/5,1),p=l.glow.material;p.opacity=f*.4;const u=l.targetScale*6*h;l.glow.scale.set(u,u,1)}if(l.frame>=40){const f=Math.min((l.frame-40)/20,1);l.label.material.opacity=f*.9}l.frame>=60&&this.materializingNodes.splice(o,1)}for(let o=this.dissolvingNodes.length-1;o>=0;o--){const l=this.dissolvingNodes[o];l.frame++;const c=Math.min(l.frame/l.totalFrames,1),h=1-bg(c),f=Math.max(.001,l.originalScale*h);l.mesh.scale.setScalar(f);const p=f*6;l.glow.scale.set(p,p,1);const u=l.mesh.material;u.opacity*=.97,l.glow.material.opacity*=.95,l.label.material.opacity*=.93,l.frame>=l.totalFrames&&(this.group.remove(l.mesh),this.group.remove(l.glow),this.group.remove(l.label),l.mesh.geometry.dispose(),l.mesh.material.dispose(),(r=l.glow.material.map)==null||r.dispose(),l.glow.material.dispose(),(a=l.label.material.map)==null||a.dispose(),l.label.material.dispose(),this.meshMap.delete(l.id),this.glowMap.delete(l.id),this.labelSprites.delete(l.id),this.positions.delete(l.id),this.dissolvingNodes.splice(o,1))}for(let o=this.growingNodes.length-1;o>=0;o--){const l=this.growingNodes[o];l.frame++;const c=Math.min(l.frame/l.totalFrames,1),h=l.startScale+(l.targetScale-l.startScale)*wl(c),f=this.meshMap.get(l.id);f&&f.scale.setScalar(h);const p=this.glowMap.get(l.id);if(p){const u=h*6;p.scale.set(u,u,1)}l.frame>=l.totalFrames&&this.growingNodes.splice(o,1)}const s=new Set([...this.materializingNodes.map(o=>o.id),...this.dissolvingNodes.map(o=>o.id),...this.growingNodes.map(o=>o.id)]);this.meshMap.forEach((o,l)=>{if(s.has(l))return;const c=e.find(p=>p.id===l);if(!c)return;const h=1+Math.sin(t*1.5+e.indexOf(c)*.5)*.15*c.retention;o.scale.setScalar(h);const f=o.material;if(l===this.hoveredNode)f.emissiveIntensity=1;else if(l===this.selectedNode)f.emissiveIntensity=.8;else{const u=.3+c.retention*.5+Math.sin(t*(.8+c.retention*.7))*.1*c.retention;f.emissiveIntensity=u}}),this.labelSprites.forEach((o,l)=>{if(s.has(l))return;const c=this.positions.get(l);if(!c)return;const h=n.position.distanceTo(c),f=o.material,p=l===this.hoveredNode||l===this.selectedNode?1:h<40?.9:h<80?.9*(1-(h-40)/40):0;f.opacity+=(p-f.opacity)*.1})}getMeshes(){return Array.from(this.meshMap.values())}dispose(){this.group.traverse(t=>{var e,n,s,r,a;t instanceof Se?((e=t.geometry)==null||e.dispose(),(n=t.material)==null||n.dispose()):t instanceof Ns&&((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 wg(i){return 1-Math.pow(1-i,3)}class Ag{constructor(){Wt(this,"group");Wt(this,"growingEdges",[]);Wt(this,"dissolvingEdges",[]);this.group=new Pi}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 pe().setFromPoints(a),l=new lr({color:9133302,transparent:!0,opacity:Math.min(.25+n.weight*.5,.8),blending:Ne,depthWrite:!1}),c=new Va(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 pe().setFromPoints(r),o=new lr({color:9133302,transparent:!0,opacity:0,blending:Ne,depthWrite:!1}),l=new Va(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=wg(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 Rg{constructor(t){Wt(this,"starField");Wt(this,"neuralParticles");this.starField=this.createStarField(),this.neuralParticles=this.createNeuralParticles(),t.add(this.starField),t.add(this.neuralParticles)}createStarField(){const e=new pe,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 ei({color:6514417,size:.5,transparent:!0,opacity:.4,sizeAttenuation:!0,blending:Ne});return new Fi(e,r)}createNeuralParticles(){const e=new pe,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 ei({size:.3,vertexColors:!0,transparent:!0,opacity:.4,blending:Ne,sizeAttenuation:!0});return new Fi(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 at(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}}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();this.pulseEffects=[],this.spawnBursts=[],this.rainbowBursts=[],this.rippleWaves=[],this.implosions=[],this.shockwaves=[],this.connectionFlashes=[]}}const Sn={bloomStrength:.8,rotateSpeed:.3,fogColor:328976,fogDensity:.008,nebulaIntensity:0,chromaticIntensity:.002,vignetteRadius:.9,breatheAmplitude:1},In={bloomStrength:1.8,rotateSpeed:.08,fogColor:656672,fogDensity:.006,nebulaIntensity:1,chromaticIntensity:.005,vignetteRadius:.7,breatheAmplitude:2};class Pg{constructor(){Wt(this,"active",!1);Wt(this,"transition",0);Wt(this,"transitionSpeed",.008);Wt(this,"current");Wt(this,"auroraHue",0);this.current={...Sn}}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(Sn.bloomStrength,In.bloomStrength,o),this.current.rotateSpeed=this.lerp(Sn.rotateSpeed,In.rotateSpeed,o),this.current.fogDensity=this.lerp(Sn.fogDensity,In.fogDensity,o),this.current.nebulaIntensity=this.lerp(Sn.nebulaIntensity,In.nebulaIntensity,o),this.current.chromaticIntensity=this.lerp(Sn.chromaticIntensity,In.chromaticIntensity,o),this.current.vignetteRadius=this.lerp(Sn.vignetteRadius,In.vignetteRadius,o),this.current.breatheAmplitude=this.lerp(Sn.breatheAmplitude,In.breatheAmplitude,o),e.strength=this.current.bloomStrength,n.autoRotateSpeed=this.current.rotateSpeed;const l=new at(Sn.fogColor),c=new at(In.fogColor),h=l.clone().lerp(c,o);if(t.fog=new pr(h,this.current.fogDensity),o>.01){this.auroraHue=r*.1%1;const f=new at().setHSL(.75+this.auroraHue*.15,.8,.5),p=new at().setHSL(.55+this.auroraHue*.2,.7,.4);s.point1.color.lerp(f,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 Dg=50,os=[];function Lg(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 Ug(i,t){if(os.length<=Dg)return;const e=os.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 Ig(i,t,e){var f,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},_=Lg(g,e,c),m=s.addNode(g,_);a.addNode(u.id,m),os.push(u.id),Ug(t,e);const d=new at(Fl[g.type]||"#00ffd1");n.createRainbowBurst(_,d),n.createShockwave(_,d,o);const T=d.clone();T.offsetHSL(.15,0,0),setTimeout(()=>{n.createShockwave(_,T,o)},166),n.createRippleWave(_),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 at(54527)),u.source_id&&h.has(u.source_id)&&n.addPulse(u.source_id,1,new at(54527),.02),u.target_id&&h.has(u.target_id)&&n.addPulse(u.target_id,1,new at(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 at(16729943);n.createImplosion(g,m)}r.removeEdgesForNode(u.id),s.removeNode(u.id),a.removeNode(u.id);const _=os.indexOf(u.id);_!==-1&&os.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 at(65416),.01);const m=c.get(g);m&&(n.createShockwave(m,new at(65416),o),n.createSpawnBurst(m,new at(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 at(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 at(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 at(8490232),.02)});break}case"DreamStarted":{h.forEach((u,g)=>{n.addPulse(g,1,new at(11032055),.005)});break}case"DreamProgress":{const u=(f=i.data)==null?void 0:f.memory_id;u&&h.has(u)&&n.addPulse(u,1.5,new at(12616956),.01);break}case"DreamCompleted":{n.createSpawnBurst(new P(0,0,0),new at(11032055)),n.createShockwave(new P(0,0,0),new at(11032055),o);break}case"RetentionDecayed":{const u=(p=i.data)==null?void 0:p.id;u&&h.has(u)&&n.addPulse(u,.8,new at(16729943),.03);break}case"ConsolidationCompleted":{h.forEach((u,g)=>{n.addPulse(g,.4+Math.random()*.3,new at(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 at(1370310))}}break}case"MemorySuppressed":{const u=i.data;if(!u.id)break;const g=c.get(u.id);if(g){n.createImplosion(g,new at(11032055));const _=Math.max(1,u.suppression_count??1),m=Math.min(.4+_*.15,1);n.addPulse(u.id,m,new at(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 at(65416)),n.addPulse(u.id,1,new at(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 d=0;d');function Xg(i,t){ur(t,!0);let e=nr(t,"events",19,()=>[]),n=nr(t,"isDreaming",3,!1),s,r,a,o,l,c,h,d,p,f,g,v=0,m=[];Rl(()=>{r=xg(s),f=Og(r.scene).material,g=Vg(r.composer),c=new Rg(r.scene),o=new Tg,l=new Ag,h=new Cg(r.scene),p=new Pg;const U=o.createNodes(t.nodes);l.createEdges(t.edges,U),d=new yg(U),m=[...t.nodes],r.scene.add(l.group),r.scene.add(o.group),u(),window.addEventListener("resize",b),s.addEventListener("pointermove",y),s.addEventListener("click",L)}),Cl(()=>{cancelAnimationFrame(a),window.removeEventListener("resize",b),s==null||s.removeEventListener("pointermove",y),s==null||s.removeEventListener("click",L),h==null||h.dispose(),c==null||c.dispose(),o==null||o.dispose(),l==null||l.dispose(),r&&Sg(r)});function u(){a=requestAnimationFrame(u);const A=performance.now()*.001;d.tick(t.edges),o.updatePositions(),l.updatePositions(o.positions),l.animateEdges(o.positions),c.animate(A),o.animate(A,m,r.camera),p.setActive(n()),p.update(r.scene,r.bloomPass,r.controls,r.lights,A),Bg(f,A,p.current.nebulaIntensity,s.clientWidth,s.clientHeight),Gg(g,A,p.current.nebulaIntensity),T(),h.update(o.meshMap,r.camera,o.positions),r.controls.update(),r.composer.render()}function T(){if(!e()||e().length<=v)return;const A=e().slice(v);v=e().length;const U={effects:h,nodeManager:o,edgeManager:l,forceSim:d,camera:r.camera,onMutation:S=>{var M;S.type==="nodeAdded"?m=[...m,S.node]:S.type==="nodeRemoved"&&(m=m.filter(D=>D.id!==S.nodeId)),(M=t.onGraphMutation)==null||M.call(t,S)}};for(const S of A)Ig(S,U,m)}function b(){!s||!r||Mg(r,s)}function y(A){const U=s.getBoundingClientRect();r.mouse.x=(A.clientX-U.left)/U.width*2-1,r.mouse.y=-((A.clientY-U.top)/U.height)*2+1,r.raycaster.setFromCamera(r.mouse,r.camera);const S=r.raycaster.intersectObjects(o.getMeshes());S.length>0?(o.hoveredNode=S[0].object.userData.nodeId,s.style.cursor="pointer"):(o.hoveredNode=null,s.style.cursor="grab")}function L(){var A;if(o.hoveredNode){o.selectedNode=o.hoveredNode,(A=t.onSelect)==null||A.call(t,o.hoveredNode);const U=o.positions.get(o.hoveredNode);U&&r.controls.target.lerp(U.clone(),.5)}}var R=Wg();Nc(R,A=>s=A,()=>s),He(i,R),dr()}var Yg=je('

'),qg=je('
');function jg(i,t){ur(t,!0);let e=nr(t,"width",3,240),n=nr(t,"height",3,80);function s(m){return t.stability<=0?0:Math.exp(-m/t.stability)}let r=ti(()=>{const m=[],u=Math.max(t.stability*3,30),T=4,b=e()-T*2,y=n()-T*2;for(let L=0;L<=50;L++){const R=L/50*u,A=s(R),U=T+L/50*b,S=T+(1-A)*y;m.push(`${L===0?"M":"L"}${U.toFixed(1)},${S.toFixed(1)}`)}return m.join(" ")}),a=ti(()=>[{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=qg(),c=Dt(l),h=Dt(c),d=Ot(h),p=Ot(d),f=Ot(p),g=Ot(f);Rc(),Rt(c);var v=Ot(c,2);Qr(v,21,()=>j(a),ta,(m,u)=>{var T=Yg(),b=Dt(T),y=Dt(b);Rt(b);var L=Ot(b,2),R=Dt(L);Rt(L),Rt(T),ln((A,U)=>{_e(y,`${j(u).label??""}:`),Ul(L,`color: ${A??""}`),_e(R,`${U??""}%`)},[()=>o(j(u).value),()=>(j(u).value*100).toFixed(0)]),He(m,T)}),Rt(v),Rt(l),ln(m=>{ze(c,"width",e()),ze(c,"height",n()),ze(c,"viewBox",`0 0 ${e()??""} ${n()??""}`),ze(h,"y1",4+(n()-8)*.5),ze(h,"x2",e()-4),ze(h,"y2",4+(n()-8)*.5),ze(d,"y1",4+(n()-8)*.8),ze(d,"x2",e()-4),ze(d,"y2",4+(n()-8)*.8),ze(p,"d",j(r)),ze(f,"d",`${j(r)??""} L${e()-4},${n()-4} L4,${n()-4} Z`),ze(g,"cy",4+(1-t.retention)*(n()-8)),ze(g,"fill",m)},[()=>o(t.retention)]),He(i,l),dr()}function Al(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 Zg(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 Kg=je(`
');function Xg(i,t){ur(t,!0);let e=nr(t,"events",19,()=>[]),n=nr(t,"isDreaming",3,!1),s,r,a,o,l,c,h,f,p,u,g,_=0,m=[];Rl(()=>{r=xg(s),u=Og(r.scene).material,g=Vg(r.composer),c=new Rg(r.scene),o=new Tg,l=new Ag,h=new Cg(r.scene),p=new Pg;const U=o.createNodes(t.nodes);l.createEdges(t.edges,U),f=new yg(U),m=[...t.nodes],r.scene.add(l.group),r.scene.add(o.group),d(),window.addEventListener("resize",E),s.addEventListener("pointermove",y),s.addEventListener("click",L)}),Cl(()=>{cancelAnimationFrame(a),window.removeEventListener("resize",E),s==null||s.removeEventListener("pointermove",y),s==null||s.removeEventListener("click",L),h==null||h.dispose(),c==null||c.dispose(),o==null||o.dispose(),l==null||l.dispose(),r&&Sg(r)});function d(){a=requestAnimationFrame(d);const A=performance.now()*.001;f.tick(t.edges),o.updatePositions(),l.updatePositions(o.positions),l.animateEdges(o.positions),c.animate(A),o.animate(A,m,r.camera),p.setActive(n()),p.update(r.scene,r.bloomPass,r.controls,r.lights,A),Bg(u,A,p.current.nebulaIntensity,s.clientWidth,s.clientHeight),Gg(g,A,p.current.nebulaIntensity),T(),h.update(o.meshMap,r.camera,o.positions),r.controls.update(),r.composer.render()}function T(){if(!e()||e().length<=_)return;const A=e().slice(_);_=e().length;const U={effects:h,nodeManager:o,edgeManager:l,forceSim:f,camera:r.camera,onMutation:S=>{var M;S.type==="nodeAdded"?m=[...m,S.node]:S.type==="nodeRemoved"&&(m=m.filter(D=>D.id!==S.nodeId)),(M=t.onGraphMutation)==null||M.call(t,S)}};for(const S of A)Ig(S,U,m)}function E(){!s||!r||Mg(r,s)}function y(A){const U=s.getBoundingClientRect();r.mouse.x=(A.clientX-U.left)/U.width*2-1,r.mouse.y=-((A.clientY-U.top)/U.height)*2+1,r.raycaster.setFromCamera(r.mouse,r.camera);const S=r.raycaster.intersectObjects(o.getMeshes());S.length>0?(o.hoveredNode=S[0].object.userData.nodeId,s.style.cursor="pointer"):(o.hoveredNode=null,s.style.cursor="grab")}function L(){var A;if(o.hoveredNode){o.selectedNode=o.hoveredNode,(A=t.onSelect)==null||A.call(t,o.hoveredNode);const U=o.positions.get(o.hoveredNode);U&&r.controls.target.lerp(U.clone(),.5)}}var R=Wg();Nc(R,A=>s=A,()=>s),ke(i,R),dr()}var Yg=je('
'),qg=je('
');function jg(i,t){ur(t,!0);let e=nr(t,"width",3,240),n=nr(t,"height",3,80);function s(m){return t.stability<=0?0:Math.exp(-m/t.stability)}let r=ti(()=>{const m=[],d=Math.max(t.stability*3,30),T=4,E=e()-T*2,y=n()-T*2;for(let L=0;L<=50;L++){const R=L/50*d,A=s(R),U=T+L/50*E,S=T+(1-A)*y;m.push(`${L===0?"M":"L"}${U.toFixed(1)},${S.toFixed(1)}`)}return m.join(" ")}),a=ti(()=>[{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=qg(),c=Dt(l),h=Dt(c),f=Ot(h),p=Ot(f),u=Ot(p),g=Ot(u);Rc(),Rt(c);var _=Ot(c,2);Qr(_,21,()=>j(a),ta,(m,d)=>{var T=Yg(),E=Dt(T),y=Dt(E);Rt(E);var L=Ot(E,2),R=Dt(L);Rt(L),Rt(T),ln((A,U)=>{_e(y,`${j(d).label??""}:`),Ul(L,`color: ${A??""}`),_e(R,`${U??""}%`)},[()=>o(j(d).value),()=>(j(d).value*100).toFixed(0)]),ke(m,T)}),Rt(_),Rt(l),ln(m=>{ze(c,"width",e()),ze(c,"height",n()),ze(c,"viewBox",`0 0 ${e()??""} ${n()??""}`),ze(h,"y1",4+(n()-8)*.5),ze(h,"x2",e()-4),ze(h,"y2",4+(n()-8)*.5),ze(f,"y1",4+(n()-8)*.8),ze(f,"x2",e()-4),ze(f,"y2",4+(n()-8)*.8),ze(p,"d",j(r)),ze(u,"d",`${j(r)??""} L${e()-4},${n()-4} L4,${n()-4} Z`),ze(g,"cy",4+(1-t.retention)*(n()-8)),ze(g,"fill",m)},[()=>o(t.retention)]),ke(i,l),dr()}function Al(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,f=1440*60*1e3,p=hs.has(l.source)&&s.has(l.target));return{visibleNodes:a,visibleEdges:o,nodeOpacities:r}}function Zg(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 Kg=je(`
`),$g=je('');function Jg(i,t){ur(t,!0);let e=Ie(!1),n=Ie(!1),s=Ie(1),r=Ie(100),a,o=0,l=ti(()=>Zg(t.nodes)),c=ti(()=>{const b=j(l).oldest.getTime(),L=j(l).newest.getTime()-b||1;return new Date(b+j(r)/100*L)});function h(b){return b.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function d(){ie(e,!j(e)),t.onToggle(j(e)),j(e)&&(ie(r,100),t.onDateChange(j(c)))}function p(){ie(n,!j(n)),j(n)?(ie(r,0),o=performance.now(),f()):cancelAnimationFrame(a)}function f(){j(n)&&(a=requestAnimationFrame(b=>{const y=(b-o)/1e3;o=b;const L=j(l).oldest.getTime(),A=(j(l).newest.getTime()-L)/(1440*60*1e3)||1,U=j(s)/A*100;if(ie(r,Math.min(100,j(r)+U*y),!0),t.onDateChange(j(c)),j(r)>=100){ie(n,!1);return}f()}))}function g(){t.onDateChange(j(c))}Cl(()=>{ie(n,!1),cancelAnimationFrame(a)});var v=Pc(),m=Pl(v);{var u=b=>{var y=Kg(),L=Dt(y),R=Dt(L),A=Dt(R),U=Dt(A),S=Dt(U,!0);Rt(U);var M=Ot(U,2),D=Dt(M);D.value=D.__value=1;var W=Ot(D);W.value=W.__value=7;var z=Ot(W);z.value=z.__value=30,Rt(M),Rt(A);var V=Ot(A,2),$=Dt(V,!0);Rt(V);var G=Ot(V,2);Rt(R);var J=Ot(R,2);Ll(J);var k=Ot(J,2),it=Dt(k),ut=Dt(it,!0);Rt(it);var yt=Ot(it,2),Lt=Dt(yt,!0);Rt(yt),Rt(k),Rt(L),Rt(y),ln((qt,Y,nt)=>{_e(S,j(n)?"⏸":"▶"),_e($,qt),_e(ut,Y),_e(Lt,nt)},[()=>h(j(c)),()=>h(j(l).oldest),()=>h(j(l).newest)]),Je("click",U,p),Nl(M,()=>j(s),qt=>ie(s,qt)),Je("click",G,d),Je("input",J,g),Il(J,()=>j(r),qt=>ie(r,qt)),He(b,y)},T=b=>{var y=$g();Je("click",y,d),He(b,y)};Ai(m,b=>{j(e)?b(u):b(T,!1)})}He(i,v),dr()}Dl(["click","input"]);var Qg=je('

Loading memory graph...

'),t_=je('

Your Mind Awaits

'),e_=je(' · · ',1),n_=je(' '),i_=je('
'),s_=je("
"),r_=je(`
`),$g=je('');function Jg(i,t){ur(t,!0);let e=Ie(!1),n=Ie(!1),s=Ie(1),r=Ie(100),a,o=0,l=ti(()=>Zg(t.nodes)),c=ti(()=>{const E=j(l).oldest.getTime(),L=j(l).newest.getTime()-E||1;return new Date(E+j(r)/100*L)});function h(E){return E.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function f(){ie(e,!j(e)),t.onToggle(j(e)),j(e)&&(ie(r,100),t.onDateChange(j(c)))}function p(){ie(n,!j(n)),j(n)?(ie(r,0),o=performance.now(),u()):cancelAnimationFrame(a)}function u(){j(n)&&(a=requestAnimationFrame(E=>{const y=(E-o)/1e3;o=E;const L=j(l).oldest.getTime(),A=(j(l).newest.getTime()-L)/(1440*60*1e3)||1,U=j(s)/A*100;if(ie(r,Math.min(100,j(r)+U*y),!0),t.onDateChange(j(c)),j(r)>=100){ie(n,!1);return}u()}))}function g(){t.onDateChange(j(c))}Cl(()=>{ie(n,!1),cancelAnimationFrame(a)});var _=Pc(),m=Pl(_);{var d=E=>{var y=Kg(),L=Dt(y),R=Dt(L),A=Dt(R),U=Dt(A),S=Dt(U,!0);Rt(U);var M=Ot(U,2),D=Dt(M);D.value=D.__value=1;var W=Ot(D);W.value=W.__value=7;var z=Ot(W);z.value=z.__value=30,Rt(M),Rt(A);var V=Ot(A,2),$=Dt(V,!0);Rt(V);var G=Ot(V,2);Rt(R);var J=Ot(R,2);Ll(J);var H=Ot(J,2),it=Dt(H),dt=Dt(it,!0);Rt(it);var yt=Ot(it,2),Lt=Dt(yt,!0);Rt(yt),Rt(H),Rt(L),Rt(y),ln((qt,Y,nt)=>{_e(S,j(n)?"⏸":"▶"),_e($,qt),_e(dt,Y),_e(Lt,nt)},[()=>h(j(c)),()=>h(j(l).oldest),()=>h(j(l).newest)]),Je("click",U,p),Nl(M,()=>j(s),qt=>ie(s,qt)),Je("click",G,f),Je("input",J,g),Il(J,()=>j(r),qt=>ie(r,qt)),ke(E,y)},T=E=>{var y=$g();Je("click",y,f),ke(E,y)};Ai(m,E=>{j(e)?E(d):E(T,!1)})}ke(i,_),dr()}Dl(["click","input"]);var Qg=je('

Loading memory graph...

'),t_=je('

Your Mind Awaits

'),e_=je(' · · ',1),n_=je(' '),i_=je('
'),s_=je("
"),r_=je(`

Memory Detail

Retention Forecast
◬ Explore Connections
`),a_=je(`
`);function A_(i,t){ur(t,!0);const e=()=>Uc(Fc,"$eventFeed",n),[n,s]=Lc();let r=Ie(null),a=Ie(null),o=Ie(!0),l=Ie(""),c=Ie(!1),h=Ie(""),d=Ie(150),p=Ie(!1),f=Ie(Cc(new Date)),g=Ie(0),v=Ie(0),m=ti(()=>j(r)?j(p)?Al(j(r).nodes,j(r).edges,j(f)).visibleNodes:j(r).nodes:[]),u=ti(()=>j(r)?j(p)?Al(j(r).nodes,j(r).edges,j(f)).visibleEdges:j(r).edges:[]);function T(rt){if(j(r))switch(rt.type){case"nodeAdded":j(r).nodes=[...j(r).nodes,rt.node],j(r).nodeCount=j(r).nodes.length,ie(g,j(r).nodeCount,!0);break;case"nodeRemoved":j(r).nodes=j(r).nodes.filter(Ct=>Ct.id!==rt.nodeId),j(r).nodeCount=j(r).nodes.length,ie(g,j(r).nodeCount,!0);break;case"edgeAdded":j(r).edges=[...j(r).edges,rt.edge],j(r).edgeCount=j(r).edges.length,ie(v,j(r).edgeCount,!0);break;case"edgesRemoved":j(r).edges=j(r).edges.filter(Ct=>Ct.source!==rt.nodeId&&Ct.target!==rt.nodeId),j(r).edgeCount=j(r).edges.length,ie(v,j(r).edgeCount,!0);break;case"nodeUpdated":{const Ct=j(r).nodes.find(w=>w.id===rt.nodeId);Ct&&(Ct.retention=rt.retention);break}}}Rl(()=>b());async function b(rt,Ct){ie(o,!0),ie(l,"");try{ie(r,await qi.graph({max_nodes:j(d),depth:3,query:rt||void 0,center_id:Ct||void 0}),!0),j(r)&&(ie(g,j(r).nodeCount,!0),ie(v,j(r).edgeCount,!0))}catch{ie(l,"No memories yet. Start using Vestige to populate your graph.")}finally{ie(o,!1)}}async function y(){ie(c,!0);try{await qi.dream(),await b()}catch{}finally{ie(c,!1)}}async function L(rt){try{ie(a,await qi.memories.get(rt),!0)}catch{ie(a,null)}}function R(){j(h).trim()&&b(j(h))}var A=a_(),U=Dt(A);{var S=rt=>{var Ct=Qg();He(rt,Ct)},M=rt=>{var Ct=t_(),w=Dt(Ct),ve=Ot(Dt(w),4),Bt=Dt(ve,!0);Rt(ve),Rt(w),Rt(Ct),ln(()=>_e(Bt,j(l))),He(rt,Ct)},D=rt=>{Xg(rt,{get nodes(){return j(m)},get edges(){return j(u)},get centerId(){return j(r).center_id},get events(){return e()},get isDreaming(){return j(c)},onSelect:L,onGraphMutation:T})};Ai(U,rt=>{j(o)?rt(S):j(l)?rt(M,1):j(r)&&rt(D,2)})}var W=Ot(U,2),z=Dt(W),V=Dt(z);Ll(V);var $=Ot(V,2);Rt(z);var G=Ot(z,2),J=Dt(G),k=Dt(J);k.value=k.__value=50;var it=Ot(k);it.value=it.__value=100;var ut=Ot(it);ut.value=ut.__value=150;var yt=Ot(ut);yt.value=yt.__value=200,Rt(J);var Lt=Ot(J,2),qt=Dt(Lt,!0);Rt(Lt);var Y=Ot(Lt,2);Rt(G),Rt(W);var nt=Ot(W,2),xt=Dt(nt);{var at=rt=>{var Ct=e_(),w=Pl(Ct),ve=Dt(w);Rt(w);var Bt=Ot(w,4),kt=Dt(Bt);Rt(Bt);var Mt=Ot(Bt,4),ne=Dt(Mt);Rt(Mt),ln(()=>{_e(ve,`${j(g)??""} nodes`),_e(kt,`${j(v)??""} edges`),_e(ne,`depth ${j(r).depth??""}`)}),He(rt,Ct)};Ai(xt,rt=>{j(r)&&rt(at)})}Rt(nt);var wt=Ot(nt,2);{var Ut=rt=>{Jg(rt,{get nodes(){return j(r).nodes},onDateChange:Ct=>{ie(f,Ct,!0)},onToggle:Ct=>{ie(p,Ct,!0)}})};Ai(wt,rt=>{j(r)&&rt(Ut)})}var Gt=Ot(wt,2);{var ce=rt=>{var Ct=r_(),w=Dt(Ct),ve=Ot(Dt(w),2);Rt(w);var Bt=Ot(w,2),kt=Dt(Bt),Mt=Dt(kt),ne=Dt(Mt,!0);Rt(Mt);var Et=Ot(Mt,2);Qr(Et,17,()=>j(a).tags,ta,(C,et)=>{var H=n_(),q=Dt(H,!0);Rt(H),ln(()=>_e(q,j(et))),He(C,H)}),Rt(kt);var E=Ot(kt,2),_=Dt(E,!0);Rt(E);var F=Ot(E,2);Qr(F,21,()=>[{label:"Retention",value:j(a).retentionStrength},{label:"Storage",value:j(a).storageStrength},{label:"Retrieval",value:j(a).retrievalStrength}],ta,(C,et)=>{var H=i_(),q=Dt(H),lt=Dt(q),ct=Dt(lt,!0);Rt(lt);var Nt=Ot(lt,2),ue=Dt(Nt);Rt(Nt),Rt(q);var xe=Ot(q,2),Jt=Dt(xe);Rt(xe),Rt(H),ln(Ve=>{_e(ct,j(et).label),_e(ue,`${Ve??""}%`),Ul(Jt,`width: ${j(et).value*100}%; background: ${j(et).value>.7?"#10b981":j(et).value>.4?"#f59e0b":"#ef4444"}`)},[()=>(j(et).value*100).toFixed(1)]),He(C,H)}),Rt(F);var Z=Ot(F,2),K=Ot(Dt(Z),2);{let C=ti(()=>j(a).storageStrength*30);jg(K,{get retention(){return j(a).retentionStrength},get stability(){return j(C)}})}Rt(Z);var X=Ot(Z,2),St=Dt(X),ot=Dt(St);Rt(St);var dt=Ot(St,2),jt=Dt(dt);Rt(dt);var tt=Ot(dt,2);{var mt=C=>{var et=s_(),H=Dt(et);Rt(et),ln(q=>_e(H,`Accessed: ${q??""}`),[()=>new Date(j(a).lastAccessedAt).toLocaleString()]),He(C,et)};Ai(tt,C=>{j(a).lastAccessedAt&&C(mt)})}var bt=Ot(tt,2),Pt=Dt(bt);Rt(bt),Rt(X);var ft=Ot(X,2),Xt=Dt(ft),zt=Ot(Xt,2);Rt(ft);var se=Ot(ft,2);Rt(Bt),Rt(Ct),ln((C,et)=>{_e(ne,j(a).nodeType),_e(_,j(a).content),_e(ot,`Created: ${C??""}`),_e(jt,`Updated: ${et??""}`),_e(Pt,`Reviews: ${j(a).reviewCount??0??""}`),ze(se,"href",`${Ic??""}/explore`)},[()=>new Date(j(a).createdAt).toLocaleString(),()=>new Date(j(a).updatedAt).toLocaleString()]),Je("click",ve,()=>ie(a,null)),Je("click",Xt,()=>{j(a)&&qi.memories.promote(j(a).id)}),Je("click",zt,()=>{j(a)&&qi.memories.demote(j(a).id)}),He(rt,Ct)};Ai(Gt,rt=>{j(a)&&rt(ce)})}Rt(A),ln(()=>{Lt.disabled=j(c),Dc(Lt,1,`px-4 py-2 rounded-xl bg-dream/20 border border-dream/40 text-dream-glow text-sm + placeholder:text-muted focus:outline-none focus:!border-synapse/40 transition"/>
`);function A_(i,t){ur(t,!0);const e=()=>Uc(Fc,"$eventFeed",n),[n,s]=Lc();let r=Ie(null),a=Ie(null),o=Ie(!0),l=Ie(""),c=Ie(!1),h=Ie(""),f=Ie(150),p=Ie(!1),u=Ie(Cc(new Date)),g=Ie(0),_=Ie(0),m=ti(()=>j(r)?j(p)?Al(j(r).nodes,j(r).edges,j(u)).visibleNodes:j(r).nodes:[]),d=ti(()=>j(r)?j(p)?Al(j(r).nodes,j(r).edges,j(u)).visibleEdges:j(r).edges:[]);function T(rt){if(j(r))switch(rt.type){case"nodeAdded":j(r).nodes=[...j(r).nodes,rt.node],j(r).nodeCount=j(r).nodes.length,ie(g,j(r).nodeCount,!0);break;case"nodeRemoved":j(r).nodes=j(r).nodes.filter(Ct=>Ct.id!==rt.nodeId),j(r).nodeCount=j(r).nodes.length,ie(g,j(r).nodeCount,!0);break;case"edgeAdded":j(r).edges=[...j(r).edges,rt.edge],j(r).edgeCount=j(r).edges.length,ie(_,j(r).edgeCount,!0);break;case"edgesRemoved":j(r).edges=j(r).edges.filter(Ct=>Ct.source!==rt.nodeId&&Ct.target!==rt.nodeId),j(r).edgeCount=j(r).edges.length,ie(_,j(r).edgeCount,!0);break;case"nodeUpdated":{const Ct=j(r).nodes.find(w=>w.id===rt.nodeId);Ct&&(Ct.retention=rt.retention);break}}}Rl(()=>E());async function E(rt,Ct){ie(o,!0),ie(l,"");try{ie(r,await qi.graph({max_nodes:j(f),depth:3,query:rt||void 0,center_id:Ct||void 0}),!0),j(r)&&(ie(g,j(r).nodeCount,!0),ie(_,j(r).edgeCount,!0))}catch{ie(l,"No memories yet. Start using Vestige to populate your graph.")}finally{ie(o,!1)}}async function y(){ie(c,!0);try{await qi.dream(),await E()}catch{}finally{ie(c,!1)}}async function L(rt){try{ie(a,await qi.memories.get(rt),!0)}catch{ie(a,null)}}function R(){j(h).trim()&&E(j(h))}var A=a_(),U=Dt(A);{var S=rt=>{var Ct=Qg();ke(rt,Ct)},M=rt=>{var Ct=t_(),w=Dt(Ct),ve=Ot(Dt(w),4),Bt=Dt(ve,!0);Rt(ve),Rt(w),Rt(Ct),ln(()=>_e(Bt,j(l))),ke(rt,Ct)},D=rt=>{Xg(rt,{get nodes(){return j(m)},get edges(){return j(d)},get centerId(){return j(r).center_id},get events(){return e()},get isDreaming(){return j(c)},onSelect:L,onGraphMutation:T})};Ai(U,rt=>{j(o)?rt(S):j(l)?rt(M,1):j(r)&&rt(D,2)})}var W=Ot(U,2),z=Dt(W),V=Dt(z);Ll(V);var $=Ot(V,2);Rt(z);var G=Ot(z,2),J=Dt(G),H=Dt(J);H.value=H.__value=50;var it=Ot(H);it.value=it.__value=100;var dt=Ot(it);dt.value=dt.__value=150;var yt=Ot(dt);yt.value=yt.__value=200,Rt(J);var Lt=Ot(J,2),qt=Dt(Lt,!0);Rt(Lt);var Y=Ot(Lt,2);Rt(G),Rt(W);var nt=Ot(W,2),xt=Dt(nt);{var ot=rt=>{var Ct=e_(),w=Pl(Ct),ve=Dt(w);Rt(w);var Bt=Ot(w,4),Ht=Dt(Bt);Rt(Bt);var Mt=Ot(Bt,4),ne=Dt(Mt);Rt(Mt),ln(()=>{_e(ve,`${j(g)??""} nodes`),_e(Ht,`${j(_)??""} edges`),_e(ne,`depth ${j(r).depth??""}`)}),ke(rt,Ct)};Ai(xt,rt=>{j(r)&&rt(ot)})}Rt(nt);var wt=Ot(nt,2);{var Ut=rt=>{Jg(rt,{get nodes(){return j(r).nodes},onDateChange:Ct=>{ie(u,Ct,!0)},onToggle:Ct=>{ie(p,Ct,!0)}})};Ai(wt,rt=>{j(r)&&rt(Ut)})}var Gt=Ot(wt,2);{var ce=rt=>{var Ct=r_(),w=Dt(Ct),ve=Ot(Dt(w),2);Rt(w);var Bt=Ot(w,2),Ht=Dt(Bt),Mt=Dt(Ht),ne=Dt(Mt,!0);Rt(Mt);var Et=Ot(Mt,2);Qr(Et,17,()=>j(a).tags,ta,(C,et)=>{var k=n_(),q=Dt(k,!0);Rt(k),ln(()=>_e(q,j(et))),ke(C,k)}),Rt(Ht);var b=Ot(Ht,2),v=Dt(b,!0);Rt(b);var F=Ot(b,2);Qr(F,21,()=>[{label:"Retention",value:j(a).retentionStrength},{label:"Storage",value:j(a).storageStrength},{label:"Retrieval",value:j(a).retrievalStrength}],ta,(C,et)=>{var k=i_(),q=Dt(k),ct=Dt(q),ht=Dt(ct,!0);Rt(ct);var Nt=Ot(ct,2),ue=Dt(Nt);Rt(Nt),Rt(q);var xe=Ot(q,2),Jt=Dt(xe);Rt(xe),Rt(k),ln(Ve=>{_e(ht,j(et).label),_e(ue,`${Ve??""}%`),Ul(Jt,`width: ${j(et).value*100}%; background: ${j(et).value>.7?"#10b981":j(et).value>.4?"#f59e0b":"#ef4444"}`)},[()=>(j(et).value*100).toFixed(1)]),ke(C,k)}),Rt(F);var Z=Ot(F,2),K=Ot(Dt(Z),2);{let C=ti(()=>j(a).storageStrength*30);jg(K,{get retention(){return j(a).retentionStrength},get stability(){return j(C)}})}Rt(Z);var X=Ot(Z,2),St=Dt(X),lt=Dt(St);Rt(St);var ft=Ot(St,2),jt=Dt(ft);Rt(ft);var tt=Ot(ft,2);{var mt=C=>{var et=s_(),k=Dt(et);Rt(et),ln(q=>_e(k,`Accessed: ${q??""}`),[()=>new Date(j(a).lastAccessedAt).toLocaleString()]),ke(C,et)};Ai(tt,C=>{j(a).lastAccessedAt&&C(mt)})}var bt=Ot(tt,2),Pt=Dt(bt);Rt(bt),Rt(X);var pt=Ot(X,2),Xt=Dt(pt),zt=Ot(Xt,2);Rt(pt);var se=Ot(pt,2);Rt(Bt),Rt(Ct),ln((C,et)=>{_e(ne,j(a).nodeType),_e(v,j(a).content),_e(lt,`Created: ${C??""}`),_e(jt,`Updated: ${et??""}`),_e(Pt,`Reviews: ${j(a).reviewCount??0??""}`),ze(se,"href",`${Ic??""}/explore`)},[()=>new Date(j(a).createdAt).toLocaleString(),()=>new Date(j(a).updatedAt).toLocaleString()]),Je("click",ve,()=>ie(a,null)),Je("click",Xt,()=>{j(a)&&qi.memories.promote(j(a).id)}),Je("click",zt,()=>{j(a)&&qi.memories.demote(j(a).id)}),ke(rt,Ct)};Ai(Gt,rt=>{j(a)&&rt(ce)})}Rt(A),ln(()=>{Lt.disabled=j(c),Dc(Lt,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 - ${j(c)?"glow-dream animate-pulse-glow":""}`),_e(qt,j(c)?"◈ Dreaming...":"◈ Dream")}),Je("keydown",V,rt=>rt.key==="Enter"&&R()),Il(V,()=>j(h),rt=>ie(h,rt)),Je("click",$,R),Je("change",J,()=>b()),Nl(J,()=>j(d),rt=>ie(d,rt)),Je("click",Lt,y),Je("click",Y,()=>b()),He(i,A),dr(),s()}Dl(["keydown","click","change"]);export{A_ as component}; + ${j(c)?"glow-dream animate-pulse-glow":""}`),_e(qt,j(c)?"◈ Dreaming...":"◈ Dream")}),Je("keydown",V,rt=>rt.key==="Enter"&&R()),Il(V,()=>j(h),rt=>ie(h,rt)),Je("click",$,R),Je("change",J,()=>E()),Nl(J,()=>j(f),rt=>ie(f,rt)),Je("click",Lt,y),Je("click",Y,()=>E()),ke(i,A),dr(),s()}Dl(["keydown","click","change"]);export{A_ as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.br b/apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.br new file mode 100644 index 0000000000000000000000000000000000000000..6a9be1d23cce2e553f4a2b6da5b7b0959bc8c298 GIT binary patch literal 120063 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%0D(Y91QG~zMIeX3_PO-^hSIa12n5b?VJ$gPs(qR7 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js b/apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js deleted file mode 100644 index 58d9b03..0000000 --- a/apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/Bzak7iHL.js";import{o as ut}from"../chunks/DeTA_5mp.js";import{p as gt,s as T,c as Q,t as u,a as ft,d,e as s,h as $,g as t,r as e,O as ht}from"../chunks/nyjtQ1Ok.js";import{d as bt,s as l,a as yt}from"../chunks/C4L78yoI.js";import{i as R}from"../chunks/B17metm1.js";import{e as U,i as D}from"../chunks/BilMa3tw.js";import{a as o,f as n}from"../chunks/B0IenmM-.js";import{s as q}from"../chunks/BgOFZ9jq.js";import{a as Z}from"../chunks/BcuCGYSa.js";var wt=n(""),Rt=n('

'),Nt=n('
'),Ot=n('

Use "Remind me..." in conversation to create intentions.

'),St=n(' '),kt=n(' '),$t=n('

'),zt=n('
'),Ct=n('

No predictions yet. Use Vestige more to train the predictive model.

'),It=n(" "),Pt=n(' '),Tt=n('

'),Ut=n('
'),Dt=n('

Intentions & Predictions

Prospective Memory

"Remember to do X when Y happens"

Predicted Needs

What you might need next
');function Wt(tt,et){gt(et,!0);let z=T(Q([])),j=T(Q([])),A=T(!0),N=T("active");const at={active:"text-synapse-glow bg-synapse/10 border-synapse/30",fulfilled:"text-recall bg-recall/10 border-recall/30",cancelled:"text-dim bg-white/[0.03] border-subtle/20",snoozed:"text-dream-glow bg-dream/10 border-dream/30"},st={critical:"text-decay",high:"text-amber-400",normal:"text-dim",low:"text-muted"},rt={time:"⏰",context:"◎",event:"⚡"};ut(async()=>{await B()});async function B(){$(A,!0);try{const[r,i]=await Promise.all([Z.intentions(t(N)),Z.predict()]);$(z,r.intentions||[],!0),$(j,i.predictions||[],!0)}catch{}finally{$(A,!1)}}async function it(r){$(N,r,!0),await B()}function F(r){if(!r)return"";try{return new Date(r).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return r}}var L=Dt(),G=s(L),H=d(s(G),2),dt=s(H);e(H),e(G);var M=d(G,2),Y=d(s(M),2);U(Y,20,()=>["active","fulfilled","snoozed","cancelled","all"],D,(r,i)=>{var v=wt(),a=s(v,!0);e(v),u(x=>{q(v,1,`px-3 py-1.5 rounded-xl text-xs transition ${t(N)===i?"bg-synapse/20 text-synapse-glow border border-synapse/40":"glass-subtle text-dim hover:bg-white/[0.03]"}`),l(a,x)},[()=>i.charAt(0).toUpperCase()+i.slice(1)]),yt("click",v,()=>it(i)),o(r,v)}),e(Y);var lt=d(Y,2);{var vt=r=>{var i=Nt();U(i,20,()=>Array(4),D,(v,a)=>{var x=Rt();o(v,x)}),e(i),o(r,i)},ot=r=>{var i=Ot(),v=d(s(i),2),a=s(v);e(v),ht(2),e(i),u(()=>l(a,`No ${t(N)==="all"?"":t(N)+" "}intentions.`)),o(r,i)},nt=r=>{var i=zt();U(i,21,()=>t(z),D,(v,a)=>{var x=$t(),f=s(x),h=s(f),C=s(h,!0);e(h);var g=d(h,2),O=s(g),I=s(O,!0);e(O);var b=d(O,2),y=s(b),P=s(y,!0);e(y);var w=d(y,2),E=s(w);e(w);var S=d(w,2),c=s(S);e(S);var p=d(S,2);{var k=m=>{var _=St(),W=s(_);e(_),u(X=>l(W,`deadline: ${X??""}`),[()=>F(t(a).deadline)]),o(m,_)};R(p,m=>{t(a).deadline&&m(k)})}var V=d(p,2);{var mt=m=>{var _=kt(),W=s(_);e(_),u(X=>l(W,`snoozed until ${X??""}`),[()=>F(t(a).snoozed_until)]),o(m,_)};R(V,m=>{t(a).snoozed_until&&m(mt)})}e(b),e(g);var K=d(g,2),_t=s(K,!0);e(K),e(f),e(x),u((m,_)=>{l(C,rt[t(a).trigger_type]||"◇"),l(I,t(a).content),q(y,1,`px-2 py-0.5 text-[10px] rounded-lg border ${(at[t(a).status]||"text-dim bg-white/[0.03] border-subtle/20")??""}`),l(P,t(a).status),q(w,1,`text-[10px] ${(st[t(a).priority]||"text-muted")??""}`),l(E,`${t(a).priority??""} priority`),l(c,`${t(a).trigger_type??""}: ${m??""}`),l(_t,_)},[()=>t(a).trigger_value.length>40?t(a).trigger_value.slice(0,37)+"...":t(a).trigger_value,()=>F(t(a).created_at)]),o(v,x)}),e(i),o(r,i)};R(lt,r=>{t(A)?r(vt):t(z).length===0?r(ot,1):r(nt,!1)})}e(M);var J=d(M,2),pt=d(s(J),2);{var xt=r=>{var i=Ct();o(r,i)},ct=r=>{var i=Ut();U(i,21,()=>t(j),D,(v,a,x)=>{var f=Tt(),h=s(f);h.textContent=x+1;var C=d(h,2),g=s(C),O=s(g,!0);e(g);var I=d(g,2),b=s(I),y=s(b,!0);e(b);var P=d(b,2);{var w=c=>{var p=It(),k=s(p);e(p),u(V=>l(k,`${V??""}% retention`),[()=>(Number(t(a).retention)*100).toFixed(0)]),o(c,p)};R(P,c=>{t(a).retention&&c(w)})}var E=d(P,2);{var S=c=>{var p=Pt(),k=s(p);e(p),u(()=>l(k,`${t(a).predictedNeed??""} need`)),o(c,p)};R(E,c=>{t(a).predictedNeed&&c(S)})}e(I),e(C),e(f),u(()=>{l(O,t(a).content),l(y,t(a).nodeType)}),o(v,f)}),e(i),o(r,i)};R(pt,r=>{t(j).length===0?r(xt):r(ct,!1)})}e(J),e(L),u(()=>l(dt,`${t(z).length??""} intentions`)),o(tt,L),ft()}bt(["click"]);export{Wt as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js.br b/apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js.br deleted file mode 100644 index 584d9376fddb964d3fca31257d34717e8e1cb1eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2196 zcmV;F2y6En_!l6Y18&O<&wgKXT^)s@LWoQ#6dKfYDoZd6>jgDcQmRyy>KNHk+brJa3!teV1GF&G4B(MWHG|G=Ve$ zfBU~>PO^W}i;l;bREIK=C-eXOo0qv(vqxWAO{+VTzDH?YMFvYykvtp8zJNX$2yUJ`w@WGYi5bFN7 z&&TWJvj_rbmP7nYj%r8iL^zoxZu-}T%h7i)Y9U~Ig4_P%;o{FuTz?nAg0H{BP4y4E zufZ34hptH&xjDTB|UT*l8&% z!yq$+%&Q?x^7QV9G4Y8=?@g&hu-LzjBp8zd&jhj-e%JK;ww>3uk3W%C$lz-cO(JF% zi4fbqM?tvuoTN^7_f41Ca`5+8@La=n#Pv`kin8f2_!fjO)QN;H%ig=K!m1@PA|-%t zc)ktm`2 z%GXnJ6c1u96x7siK~vfvnGrsMzsXj-fk_-p8=Q}HNk5kiRM+&4K8r0wPfC`%%qcW& z@SQBi7I$8$W9)%PL*}IwKk&KaezcPdcRN5ige6aR_T(Rn(9}fuz08`n-Kl-Lw|pLeJ@ zBfDCR3J$IobUvn;l1ev@p4^Kqtj%%$l}1hnC!p+ z!<~Fp(S8?|{+3Wm6AtXYnkTzIopX9iHF|qA6+C)Bjav$l+cpOBA|P|y|C*bO&$|-V z7}t}55?z-j=>7C1OWD$$4mIa&&)RIp`k#CpepAgaQci8B0nuU0wQ37NXk_^p(7f!l zh@DgPG;F_qW*4+|GS4h8)$NGgl^3O%wJ7R76IY5jRF{s@IR3`SY5Mqtu46P}dd?0C-{KA<-&5P_(|E1^BA6 z2O5YXrw0tf&0P^EfRP;ga~#T+hsR?(IB(I7Ata}C0drA+CFYfLAc;AejzkXsx1ZNvSnIP3eTJUi zbj})UvG5h&oi~r}=H&+IiRfth2TBQY+DY>PUMt4sg>*&)0hoUap4`_Iv6#)TuAEII zI(K3C5GSj{ooMJ#se8^kIXm%PuolssxA-fHPD=Lz$M+;PmZ%gu%!f zHw<8dGU#}~>`g=lJi^F`!XE()u8M_gXlbo-S;NO-8&^(D>ohoSdXPO~*k;JO; zG(=~`rNA=XP^BZcvb^WT7rz|NLTo&Ty(1pBdZx@Xds{&>T#M;mLfxz;gNS@Qr0C83 zzr1_Om8TTo$Q0dAXZEC&C=#BOV$GM4qM~DBf`J%21Z5WtnEtnwl18Xu8Pvz>e_0*o zv0AsgZXv~wTYiKtuJiR=xx=5URqz}Y^eV5?gTC;TiyQ~KttLSs4W>(7^|JK9`Ib=%v$h&VyfSUROi*@Xslr{YtCz=X WrF}u*;^EX;)g7nTYE)Z?JJu&vnL$nf diff --git a/apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js.gz b/apps/dashboard/build/_app/immutable/nodes/7.404BTmXF.js.gz deleted file mode 100644 index 7959a81a1d4a1f66096f8a5ba1bea6752927174e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2501 zcmV;$2|D&4iwFP!000026SY`Na~ru4zUNoKD8&oJ7>bnSM?`@tTYhO*ueD@*ZIwy} zXFv|5c^Lp7Bbw*ECC9DGE%zMqoBT^sjTsJyq!g3>?px4~Jiw zbq<(-L(j5+NjNhsgu@!^!@)8Q2g#1%5U%W&YPJhho!?>IRNQ%6f1}Rt%c^GKmkpx`AW= zbp_c!e*O8cS6^3Le_lcQgS|JOPK84bg+?RG6M}cT18dWygLc--Gfde#So&!vP($QL z!WfQ2uk{4=;oLKWu8kzp=^zPY;Ef|B5)}(8y=)K}i90*%ff{yxqU>nJjmd;Bz1-WV zp^jHjR*tRb%fw2JvfOKJAa^HFG48D3w#E^PyWS>BGvOLvoEG7jOe6~%p0}FW_@azNOA&khC>>#72Usw@zK5yfyI{4plE2K`x~o=;3G793 zjFgqJ@r)JPqQ1zy%|*<}dxk>qS>+?@qi)|Dh04nH^Jb&Db%APb%Bo!rj8(mScIlW$ zeFyYRs8w?9HC+%zjg}~REflN78v$miY$h(8!9P5!>~ciT$4HCJ#j^p`1;M$5%@T)h zyS#7K(ar<+SMZ-j@na9SB*6Kr`}v8on|t-m-jDj`*?()B&D-1NUsc;Ir5$&UQj}>K zDBp=5<aPSS?h7Y$z-E5EcU&EjG%2F@F}yfGInEkv+)>r{1lYk52G6P=n&7A*2;d7{g;s#$A}bDGE~b8ybZ&L7z}4vP>oh z-yKmUm{wh#4{n2I)_a1wsSc#}?CiwkiO7sxZ#B{XJ2|e7GC)UC2Iiib`4|d|@^pY= z=QEKqK#3gNrGz|K5`MckNStQSM@y__($Y!a5^33kCT&O3q8oljekJD@l(MV&>2rQY z9yBRC;%5X4S4m9UewrAIgyoas)^-_hk-B26bo=#GE+u!fiCJ$D^;8teptRP~7saS5 z&T3}m4Y2Y>;>(&ZetU|cOMHxzKxSXEVc463)6w##v5Ls z`pRM!t7Ks1{Kj+^PPwI?PT_OofWNeavNzn21Ipg=fEeR_WJERmQ0V8DG@-WdvrOte zVI-lCRKrBdm!w56D9bIuex&?s%!V$L$`VB>ONnMfI)xH^DoPMp9zeoryGWSjy3C#8 zN0vZ2)T|uOwH7(qqLAbv6SE|b`8xonWC%RLw<>m0bjs4Y!(%AM(A8QwS-8TKRS7NG zD2)dMwu8XG9HsNTyAtnWybafnFv8Q?2ig}p-!!RjdQ(Nwa#2`vvl_t~Fzazc#*~HJ zkRD}w+>o#oO;{wW&jS(y?_+LApR#>!$Z-idE+AbVkYj-4+>kD1C)|*{gyaQe!~>E8 zT-0{jwE_ZwvHBl{9a z5x|S%Hd>qfw!4d+n4E}S6H5eb%m5&ml*H_kPTTKD#=!dm;NioVT+=CaJ^q0QB&)c@ zwnpaqZZc)dqCsL+bQhr#bm>5gtUk}n+syVVh}8sB{7e&E3R|eaSCiDT z7Twk)vF@P^ayl%O^fM30At))cZgBlfEAfx(V`i_IfyDsw>nrb92GG@P0I~6G1oikC zbWbsR+F=7~wO5FZj~}%hmA%>c>2pK&$|+PzyVU*uO!r-G$bLD6N=UbWobZ5js~ASy zFBxQf9~fM7Lo$G8&>|n8f3KnVA6$w5jI=CA?yPyq(EwiVii%XL^e?TZdq%xhV;PWU zQ6QgXt|TYSpS5#k@$jKfMzbmNiU;JRB6(UPd9q5fcvxK5bXpMXVp*0KZ2dX~^>*OK${E#QK-<=Fjj{L%da@27E=CNi

U~e`4<2H(iP*0 diff --git a/apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js b/apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js new file mode 100644 index 0000000..66661b0 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js @@ -0,0 +1 @@ +import"../chunks/Bzak7iHL.js";import{o as gt}from"../chunks/DeTA_5mp.js";import{p as yt,s as D,c as Q,t as u,a as bt,d as o,e as n,h as N,g as r,r as a,O as ht}from"../chunks/nyjtQ1Ok.js";import{d as wt,s as d,a as Rt}from"../chunks/C4L78yoI.js";import{i as R}from"../chunks/B17metm1.js";import{e as L,i as U}from"../chunks/BilMa3tw.js";import{a as l,f as v}from"../chunks/B0IenmM-.js";import{s as W}from"../chunks/BgOFZ9jq.js";import{a as Z}from"../chunks/BcuCGYSa.js";var St=v(""),$t=v('

'),Ot=v('
'),Pt=v('

Use "Remind me..." in conversation to create intentions.

'),Nt=v(' '),It=v(' '),Tt=v('

'),kt=v('
'),zt=v('

No predictions yet. Use Vestige more to train the predictive model.

'),Dt=v(" "),Lt=v(' '),Ut=v('

'),Ct=v('
'),At=v('

Intentions & Predictions

Prospective Memory

"Remember to do X when Y happens"

Predicted Needs

What you might need next
');function Wt(tt,et){yt(et,!0);let I=D(Q([])),C=D(Q([])),A=D(!0),S=D("active");const at={active:"text-synapse-glow bg-synapse/10 border-synapse/30",fulfilled:"text-recall bg-recall/10 border-recall/30",cancelled:"text-dim bg-white/[0.03] border-subtle/20",snoozed:"text-dream-glow bg-dream/10 border-dream/30"},st={4:"critical",3:"high",2:"normal",1:"low"},rt={4:"text-decay",3:"text-amber-400",2:"text-dim",1:"text-muted"},it={time:"⏰",context:"◎",event:"⚡",manual:"◇"};function nt(s){let t;try{const e=JSON.parse(s.trigger_data||"{}");if(typeof e.condition=="string"&&e.condition)t=e.condition;else if(typeof e.topic=="string"&&e.topic)t=e.topic;else if(typeof e.at=="string"&&e.at)try{t=new Date(e.at).toLocaleDateString("en-US",{month:"short",day:"numeric"})}catch{t=e.at}else if(typeof e.in_minutes=="number")t=`in ${e.in_minutes} min`;else if(typeof e.inMinutes=="number")t=`in ${e.inMinutes} min`;else if(typeof e.codebase=="string"&&e.codebase){const i=typeof e.filePattern=="string"&&e.filePattern?`/${e.filePattern}`:"";t=`${e.codebase}${i}`}else t=s.trigger_type}catch{t=s.trigger_type}return t.length>40?t.slice(0,37)+"...":t}gt(async()=>{await X()});async function X(){N(A,!0);try{const[s,t]=await Promise.all([Z.intentions(r(S)),Z.predict()]);N(I,s.intentions||[],!0),N(C,t.predictions||[],!0)}catch{}finally{N(A,!1)}}async function ot(s){N(S,s,!0),await X()}function M(s){if(!s)return"";try{return new Date(s).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return s}}var j=At(),F=n(j),q=o(n(F),2),dt=n(q);a(q),a(F);var Y=o(F,2),E=o(n(Y),2);L(E,20,()=>["active","fulfilled","snoozed","cancelled","all"],U,(s,t)=>{var e=St(),i=n(e,!0);a(e),u(p=>{W(e,1,`px-3 py-1.5 rounded-xl text-xs transition ${r(S)===t?"bg-synapse/20 text-synapse-glow border border-synapse/40":"glass-subtle text-dim hover:bg-white/[0.03]"}`),d(i,p)},[()=>t.charAt(0).toUpperCase()+t.slice(1)]),Rt("click",e,()=>ot(t)),l(s,e)}),a(E);var lt=o(E,2);{var vt=s=>{var t=Ot();L(t,20,()=>Array(4),U,(e,i)=>{var p=$t();l(e,p)}),a(t),l(s,t)},ct=s=>{var t=Pt(),e=o(n(t),2),i=n(e);a(e),ht(2),a(t),u(()=>d(i,`No ${r(S)==="all"?"":r(S)+" "}intentions.`)),l(s,t)},pt=s=>{var t=kt();L(t,21,()=>r(I),U,(e,i)=>{var p=Tt(),g=n(p),y=n(g),T=n(y,!0);a(y);var f=o(y,2),$=n(f),k=n($,!0);a($);var b=o($,2),h=n(b),z=n(h,!0);a(h);var w=o(h,2),G=n(w);a(w);var O=o(w,2),x=n(O);a(O);var c=o(O,2);{var P=m=>{var _=Nt(),J=n(_);a(_),u(V=>d(J,`deadline: ${V??""}`),[()=>M(r(i).deadline)]),l(m,_)};R(c,m=>{r(i).deadline&&m(P)})}var B=o(c,2);{var ut=m=>{var _=It(),J=n(_);a(_),u(V=>d(J,`snoozed until ${V??""}`),[()=>M(r(i).snoozed_until)]),l(m,_)};R(B,m=>{r(i).snoozed_until&&m(ut)})}a(b),a(f);var K=o(f,2),ft=n(K,!0);a(K),a(g),a(p),u((m,_)=>{d(T,it[r(i).trigger_type]||"◇"),d(k,r(i).content),W(h,1,`px-2 py-0.5 text-[10px] rounded-lg border ${(at[r(i).status]||"text-dim bg-white/[0.03] border-subtle/20")??""}`),d(z,r(i).status),W(w,1,`text-[10px] ${(rt[r(i).priority]||"text-muted")??""}`),d(G,`${(st[r(i).priority]||"normal")??""} priority`),d(x,`${r(i).trigger_type??""}: ${m??""}`),d(ft,_)},[()=>nt(r(i)),()=>M(r(i).created_at)]),l(e,p)}),a(t),l(s,t)};R(lt,s=>{r(A)?s(vt):r(I).length===0?s(ct,1):s(pt,!1)})}a(Y);var H=o(Y,2),xt=o(n(H),2);{var mt=s=>{var t=zt();l(s,t)},_t=s=>{var t=Ct();L(t,21,()=>r(C),U,(e,i,p)=>{var g=Ut(),y=n(g);y.textContent=p+1;var T=o(y,2),f=n(T),$=n(f,!0);a(f);var k=o(f,2),b=n(k),h=n(b,!0);a(b);var z=o(b,2);{var w=x=>{var c=Dt(),P=n(c);a(c),u(B=>d(P,`${B??""}% retention`),[()=>(Number(r(i).retention)*100).toFixed(0)]),l(x,c)};R(z,x=>{r(i).retention&&x(w)})}var G=o(z,2);{var O=x=>{var c=Lt(),P=n(c);a(c),u(()=>d(P,`${r(i).predictedNeed??""} need`)),l(x,c)};R(G,x=>{r(i).predictedNeed&&x(O)})}a(k),a(T),a(g),u(()=>{d($,r(i).content),d(h,r(i).nodeType)}),l(e,g)}),a(t),l(s,t)};R(xt,s=>{r(C).length===0?s(mt):s(_t,!1)})}a(H),a(j),u(()=>d(dt,`${r(I).length??""} intentions`)),l(tt,j),bt()}wt(["click"]);export{Wt as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.br b/apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.br new file mode 100644 index 0000000000000000000000000000000000000000..1c40ec80934bdb9190044c1e8d72e49579261166 GIT binary patch literal 2403 zcmV-p37qyDh8h4Y3S(n>)a7Y!XWy1)cu^uEB3-KLw0_==A3xaLh(K;7wdzDfqB=_i zxWX8=B_3nrPmifQ-=O*abXqg|R42SuR;H=t_X!=K$vN|HTw&x;m=1^oRG_4MUmMu#)LWr&7-X!u-Z2IoHlMaX^gpQ1bm;J2ir$;o7<1c`-Q+IStF*- zesJB#>EX@Z{$qO`64tG%kCW|QUD-MjB)+1f&d-F8Gkk~ZN(U^5Ya+&OQ91W@lZs7>hX#_#1)@7GO*P@u>$ixvUJ(PnEFPDs&CYkoh!IijSr^_!l7jB%M`ew@ z+fVX`C3wFggI?HNCej#t|BWzwcr|*u`(QdvJj@>dPJOb~2t11fdtXfj`lpn!e#=W? z7$VHNVz(+YDgox1Fbox?;*F80Y0$ryVIl)20oo=eO?%H%a`ij!>6~CTU1mSw@Tt0G zPA|(PJ#MOp{=|?d2YiP8bRx4id%xU=;??zM-7*K53jy)f=yx2(c^^(pInHBQi=aox zXgMfMv6?jt5l2MQ$q16H)hEz;;(oA^uG+NthCIp99VjTZa<>#Gol-cOmO@n)ZPD5# z%#(|dS3~^n*cUqzOxds4sBkCk^r*~xUv(oZofY+y*n8JchKP*628v`uNHu{=GIlnp zU|v$x!^eNN=#=?b5{npR(MjwP>huyMW%q#IoKs+`|<76!L z?(tzx3ML1PLF@Ym40o_MVDJ5)u<>?vC(=|wQ6)*210*0PkL`1~qFmua{>)`jCb$dj z&x5#M?r@)X71biweU^PPY!jQjcEy>6CV3Axu?qdIy;v61@27e;U-;Oyz<*^`fgs^wq9kXdSe3)9(Rmn)sQ<93uJA^ul{Xc6}54eY0LsR5F zWpJJtE5$Si5)RGD`p2EcE-YKd{qR3*ZjJ6t6(unsNOfz{ztZ205qre25<#_itU+Vx z*oKsBm_H^<%KyaGfihPn_vnC_U&JKcWMQr|?D6aq@$e&9$F+EbV^p6)_@^XM-xv$P z%4vrSa2b74wA>7HbXpO-F^iGuX;~>_AJVHd)Z&UiWjJL`I?F}89ic43lBqix@1zVJ ziqh?(?ArF}U*6?iDx};sAFGZ2DEL?{rYICq2h5IGBNS zgGbiVnx9i5k7L&gc)Dd0c#UUa<-WJrIrv{kt_Ah$l$%%w!b5o~D}`wI5YX=(-Cq9(BdT%IPhu01Kd^=#RFl>{Kcn+lY35e57+JxZ6H4KlW!}8GY4k8z>1f%6 zWcWc9P{TcIlUw? z_~)^}=2XwyJL$>S?zIEs@!EboIqL=$&J#-Eie!F^tjbvjrn91b)^?{-dXoQJRlr;2 zwv?EdP$m%~=BSV(tdR5Uca4*2_~~I8tvlVIFAE)|Qh9bmIOEsdY%lS0lM;_$c#Jx` zk(y@%H!#lk^7zpHEIe!5obAyz)NRoj?WE^gs^@gWY?|VXg>b9E14rSElmyR-fbsb2b)fh7RceIlRG;*1BoR zv5ovULP&sKmyq|srUD1@m^{*Wnh`H$O|KO;0wqk~Dvr2k#3{DEF>=)Wt@BP|D!yN7 z0+~UTrs8=wSYN(;z4>q0I<`TJCu(2^M{40?65J)mRt=(%;EluKNqgAf-Ikt=p|N#w z56Bh9oW@Ml=eZN6SxDREaAl*GQnZ0GsEHx zwjzUEY>T&mVp}?$+^JUnSG|KB7W(T%f6=Ee%2{B8EPi>xSy*@9jw3P@G1B>O5ko|1 z$)i5@>OBtTBXfDV;A5)B?eCbK;?!*PLvrLwP$uvBjc+1+wCS{es|m zi3hDQegc4E4VFMXrotz(B!XT(G<%~%05Jq)gS8`^IP>qVnG+@Z&(DP*OowrYR=DMN zk@yNOK|~6%(Xe4O2}yAp%Gao1Q=e)%I$1WM=A~) zUXD*$y6M7jDU|I;!IT_|+>SJ|j67FbpNB!s0|^#yOzfM93D1q{{y=-&N{|o_q+PQa zf)*Vbq^2S%a|vNgDK-4i0GSgiBtmDd$QI!{N5D+nog4)a%$SJ}c;Z4lxq_s_xAW7| z;Rw59BhyzYLws4RaL!#2Y1O?YkJ1y+$Vr;;wwQt=D8PubPZWAe)b4V7iWXKj* zOPiYy$fN~K%gX&*K)ZM|+N449BG+K`ND=5%AHAg{FvN5#HwcQ@YK_Arz$xuhP%_PD zGgCBR(#6g@?0ia)=f|!lrFpg?6MCKx?Y?^EexDu11ooh~S4J))CzEPinH`oxFZz22 V&)j^zPm)}FF}$k>)%E6k`3K1PtBL>s literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.gz b/apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b834c346d6e9841ef1f0047c1033f59fb3302e6e GIT binary patch literal 2728 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/version.json b/apps/dashboard/build/_app/version.json index d4514a1..f8aa517 100644 --- a/apps/dashboard/build/_app/version.json +++ b/apps/dashboard/build/_app/version.json @@ -1 +1 @@ -{"version":"1776204719942"} \ No newline at end of file +{"version":"1776554482425"} \ No newline at end of file diff --git a/apps/dashboard/build/_app/version.json.br b/apps/dashboard/build/_app/version.json.br index 565d48d6180f757fc87c487bbffbd78796932621..c5080ed280b82d72136265df163a5b1cdea5a268 100644 GIT binary patch literal 29 lcmb1^V)$`1H>dWvx5?t##j9KvMx1nvj}N)D%|xV^9RR_D47mUR literal 31 ncmb1^V)(&YlDtxXN%fKDon4WgYD`!8E?UTVt0tE=onZz5!Yd3m diff --git a/apps/dashboard/build/_app/version.json.gz b/apps/dashboard/build/_app/version.json.gz index 19c9eb7d8fbdc5107f6687fdd4f160cc498fb42e..b6eb8f1e5cb50d57ef4bb1b6a455caf58e0c6119 100644 GIT binary patch delta 25 gcmdPbpCBz_YHGOAz{t=jbQLRu#nYenq!}0(09t_uLI3~& delta 25 gcmdPbpCBz_WMF8%Ws8Yn&?;7jCoKItq!}0(09~R700000 diff --git a/apps/dashboard/build/index.html b/apps/dashboard/build/index.html index 7ad805c..50414ea 100644 --- a/apps/dashboard/build/index.html +++ b/apps/dashboard/build/index.html @@ -11,13 +11,13 @@ - - + + - + - + @@ -33,7 +33,7 @@