t2-mapper/docs/assets/PlayerModel-D6m6HpJF.js
2026-04-08 23:48:42 -07:00

2 lines
No EOL
112 KiB
JavaScript

import{r as e}from"./chunk-DECur_0Z.js";import{n as t,r as n,t as r}from"./jsx-runtime-BpGWiA-R.js";import{a as i,i as a,o}from"./react-three-fiber.esm-El6vNTZj.js";import{t as s}from"./Html-CXAi5FD_.js";import{a as c,i as l,s as u}from"./SettingsProvider-BdqQ2Cm4.js";import{t as d}from"./useQuery-6REtM5HO.js";import{$ as f,B as p,Bt as m,Ct as h,F as g,G as _,Gt as v,I as y,It as b,J as x,K as S,L as C,M as w,Mt as T,Nt as E,O as D,Ot as O,P as k,Pt as ee,Q as A,R as j,St as M,T as N,U as P,Ut as F,V as I,W as L,Wt as R,Y as z,Z as te,a as B,at as V,b as H,bt as U,ct as W,d as G,dt as K,et as ne,f as re,ft as ie,gt as ae,h as oe,ht as se,i as ce,it as le,lt as ue,m as de,mt as fe,nt as pe,o as me,pt as he,q as ge,rt as _e,s as ve,st as q,tt as ye,ut as be,v as xe,vt as Se,wt as Ce,xt as we,yt as Te,z as Ee,zt as De}from"./three.module-DKAirPAO.js";import{_ as Oe,a as ke,c as Ae,g as je,h as Me,i as Ne,l as Pe,s as Fe,t as J,u as Ie,v as Le,y as Re}from"./playbackUtils-DuS6opSR.js";import{t as ze}from"./textureUtils-Bk_jPZib.js";import{d as Be,p as Ve,r as He}from"./loaders-5n1D4iOD.js";import{t as Ue}from"./logger-B058WGzf.js";import{a as We,i as Ge,n as Ke,r as qe,s as Je}from"./engineStore-B1KAgiiF.js";import{t as Ye}from"./useAnisotropy-D9othEmk.js";import{a as Xe,c as Ze,d as Qe,f as $e,i as et,l as tt,o as nt,p as rt,r as it}from"./AudioEmitter-3VHhCc7Y.js";import{r as at}from"./cameraTourStore-CtH3IrnD.js";import{t as ot}from"./DebugBounds-CZKrvsAw.js";import{t as st}from"./DebugSuspense-ChOWTvws.js";import{n as ct}from"./streamPlaybackStore-D5ldcfU5.js";function lt(e){let t=new Map,n=new Map,r=e.clone();return ut(e,r,function(e,r){t.set(r,e),n.set(e,r)}),r.traverse(function(e){if(!e.isSkinnedMesh)return;let r=e,i=t.get(e),a=i.skeleton.bones;r.skeleton=i.skeleton.clone(),r.bindMatrix.copy(i.bindMatrix),r.skeleton.bones=a.map(function(e){return n.get(e)}),r.bind(r.skeleton,r.bindMatrix)}),r}function ut(e,t,n){n(e,t);for(let r=0;r<e.children.length;r++)ut(e.children[r],t.children[r],n)}var dt=.1,ft=20;function pt(e){return-2*Math.atan2(e[1],e[3])}function mt(e,t,n,r){if(n)return{animation:`fall`,timeScale:1};if(!e)return{animation:`root`,timeScale:1};let[i,a,o]=e,s=i*i+a*a;if(Math.abs(o)>2||s>ft*ft)return r?{animation:`jet`,timeScale:1}:{animation:`root`,timeScale:1};let c=pt(t),l=Math.cos(c),u=Math.sin(c),d=i*l+a*u,f=-i*u+a*l,p=f,m=-f,h=-d,g=Math.max(p,m,h,d);return g<dt?{animation:`root`,timeScale:1}:g===p?{animation:`run`,timeScale:1}:g===m?{animation:`back`,timeScale:1}:g===h?{animation:`side`,timeScale:1}:{animation:`side`,timeScale:-1}}var ht=-1,gt=32,_t=1,vt=2,yt=3,bt=4,xt=class{states;seqIndexToName;currentStateIndex=0;delayTime=0;lastFireCount=-1;spinTimeScale=0;constructor(e,t){this.states=e,this.seqIndexToName=t,e.length>0&&(this.delayTime=e[0].timeoutValue??0)}get stateIndex(){return this.currentStateIndex}reset(){this.currentStateIndex=0,this.delayTime=this.states.length>0?this.states[0].timeoutValue??0:0,this.lastFireCount=-1}tick(e,t){if(this.states.length===0)return{sequenceName:null,isFiring:!1,spinTimeScale:0,reverse:!1,scaleAnimation:!1,timeoutValue:0,transitioned:!1,soundDataBlockIds:[],stateIndex:-1};let n=this.lastFireCount>=0&&t.fireCount!==this.lastFireCount;this.lastFireCount=t.fireCount;let r=[];if(n){let e=this.states.findIndex(e=>e.fire);if(e>=0&&e!==this.currentStateIndex){this.currentStateIndex=e,this.delayTime=this.states[e].timeoutValue??0;let t=this.states[e].soundDataBlockId;t>=0&&r.push(t)}}this.delayTime-=e;let i=n,a=this.evaluateTickTransitions(t),o=0;for(;a>=0&&o<gt;){if(o++,i=!0,a===this.currentStateIndex){this.delayTime=this.states[a].timeoutValue??0;break}let e=this.states[this.currentStateIndex].spin,n=this.delayTime;this.currentStateIndex=a;let s=this.states[a].timeoutValue??0;this.delayTime=s;let c=this.states[a].soundDataBlockId;switch(c>=0&&r.push(c),this.states[a].spin){case _t:this.spinTimeScale=0;break;case bt:this.spinTimeScale=1;break;case vt:e===yt&&s>0&&(this.delayTime*=1-n/s);break;case yt:e===vt&&s>0&&(this.delayTime*=1-n/s);break}a=this.evaluateEntryTransitions(t)}let s=this.states[this.currentStateIndex],c=s.timeoutValue??0;switch(s.spin){case _t:this.spinTimeScale=0;break;case vt:this.spinTimeScale=c>0?Math.max(0,1-this.delayTime/c):1;break;case bt:this.spinTimeScale=1;break;case yt:this.spinTimeScale=c>0?Math.max(0,this.delayTime/c):0;break}return{sequenceName:this.resolveSequenceName(s),isFiring:s.fire,spinTimeScale:this.spinTimeScale,reverse:!s.direction,scaleAnimation:s.scaleAnimation,timeoutValue:s.timeoutValue??0,transitioned:i,soundDataBlockIds:r,stateIndex:this.currentStateIndex}}evaluateTickTransitions(e){let t=this.states[this.currentStateIndex],n=this.delayTime<=0;if(!(n||!t.waitForTimeout))return-1;let r=this.evaluateConditions(t,e);if(r!==-1)return r;if(n){let e=t.transitionOnTimeout;if(e!==ht)return e}return-1}evaluateEntryTransitions(e){let t=this.states[this.currentStateIndex];return this.evaluateConditions(t,e)}evaluateConditions(e,t){let n=t.loaded?e.transitionOnLoaded:e.transitionOnNotLoaded;if(n!==ht)return n;let r=t.ammo?e.transitionOnAmmo:e.transitionOnNoAmmo;if(r!==ht)return r;let i=t.target?e.transitionOnTarget:e.transitionOnNoTarget;if(i!==ht)return i;let a=t.wet?e.transitionOnWet:e.transitionOnNotWet;if(a!==ht)return a;let o=t.triggerDown?e.transitionOnTriggerDown:e.transitionOnTriggerUp;return o===ht?-1:o}resolveSequenceName(e){return e.sequence==null||e.sequence<0?null:this.seqIndexToName[e.sequence]??null}},Y=e(n(),1),St=(0,Y.createContext)(null),Ct={didCatch:!1,error:null},wt=class extends Y.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Ct}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(...e){let{error:t}=this.state;t!==null&&(this.props.onReset?.({args:e,reason:`imperative-api`}),this.setState(Ct))}componentDidCatch(e,t){this.props.onError?.(e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;n&&t.error!==null&&Tt(e.resetKeys,r)&&(this.props.onReset?.({next:r,prev:e.resetKeys,reason:`keys`}),this.setState(Ct))}render(){let{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:i,error:a}=this.state,o=e;if(i){let e={error:a,resetErrorBoundary:this.resetErrorBoundary};if(typeof t==`function`)o=t(e);else if(n)o=(0,Y.createElement)(n,e);else if(r!==void 0)o=r;else throw a}return(0,Y.createElement)(St.Provider,{value:{didCatch:i,error:a,resetErrorBoundary:this.resetErrorBoundary}},o)}};function Tt(e=[],t=[]){return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}var Et=parseInt(`182`.replace(/\D+/g,``));function Dt(e,t){if(t===0)return console.warn(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.`),e;if(t===2||t===1){let n=e.getIndex();if(n===null){let t=[],r=e.getAttribute(`position`);if(r!==void 0){for(let e=0;e<r.count;e++)t.push(e);e.setIndex(t),n=e.getIndex()}else return console.error(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.`),e}let r=n.count-2,i=[];if(n)if(t===2)for(let e=1;e<=r;e++)i.push(n.getX(0)),i.push(n.getX(e)),i.push(n.getX(e+1));else for(let e=0;e<r;e++)e%2==0?(i.push(n.getX(e)),i.push(n.getX(e+1)),i.push(n.getX(e+2))):(i.push(n.getX(e+2)),i.push(n.getX(e+1)),i.push(n.getX(e)));i.length/3!==r&&console.error(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.`);let a=e.clone();return a.setIndex(i),a.clearGroups(),a}else return console.error(`THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:`,t),e}function Ot(e){if(typeof TextDecoder<`u`)return new TextDecoder().decode(e);let t=``;for(let n=0,r=e.length;n<r;n++)t+=String.fromCharCode(e[n]);try{return decodeURIComponent(escape(t))}catch{return t}}var kt=`srgb`,At=`srgb-linear`,jt=3001,Mt=3e3,Nt=class extends te{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new Rt(e)}),this.register(function(e){return new zt(e)}),this.register(function(e){return new Jt(e)}),this.register(function(e){return new Yt(e)}),this.register(function(e){return new Xt(e)}),this.register(function(e){return new Vt(e)}),this.register(function(e){return new Ht(e)}),this.register(function(e){return new Ut(e)}),this.register(function(e){return new Wt(e)}),this.register(function(e){return new Lt(e)}),this.register(function(e){return new Gt(e)}),this.register(function(e){return new Bt(e)}),this.register(function(e){return new qt(e)}),this.register(function(e){return new Kt(e)}),this.register(function(e){return new Ft(e)}),this.register(function(e){return new Zt(e)}),this.register(function(e){return new Qt(e)})}load(e,t,n,r){let i=this,a;if(this.resourcePath!==``)a=this.resourcePath;else if(this.path!==``){let t=A.extractUrlBase(e);a=A.resolveURL(t,this.path)}else a=A.extractUrlBase(e);this.manager.itemStart(e);let o=function(t){r?r(t):console.error(t),i.manager.itemError(e),i.manager.itemEnd(e)},s=new D(this.manager);s.setPath(this.path),s.setResponseType(`arraybuffer`),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(n){try{i.parse(n,a,function(n){t(n),i.manager.itemEnd(e)},o)}catch(e){o(e)}},n,o)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw Error(`THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".`)}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,r){let i,a={},o={};if(typeof e==`string`)i=JSON.parse(e);else if(e instanceof ArrayBuffer)if(Ot(new Uint8Array(e.slice(0,4)))===$t){try{a[X.KHR_BINARY_GLTF]=new nn(e)}catch(e){r&&r(e);return}i=JSON.parse(a[X.KHR_BINARY_GLTF].content)}else i=JSON.parse(Ot(new Uint8Array(e)));else i=e;if(i.asset===void 0||i.asset.version[0]<2){r&&r(Error(`THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.`));return}let s=new On(i,{path:t||this.resourcePath||``,crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});s.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){let t=this.pluginCallbacks[e](s);t.name||console.error(`THREE.GLTFLoader: Invalid plugin found: missing name`),o[t.name]=t,a[t.name]=!0}if(i.extensionsUsed)for(let e=0;e<i.extensionsUsed.length;++e){let t=i.extensionsUsed[e],n=i.extensionsRequired||[];switch(t){case X.KHR_MATERIALS_UNLIT:a[t]=new It;break;case X.KHR_DRACO_MESH_COMPRESSION:a[t]=new rn(i,this.dracoLoader);break;case X.KHR_TEXTURE_TRANSFORM:a[t]=new an;break;case X.KHR_MESH_QUANTIZATION:a[t]=new on;break;default:n.indexOf(t)>=0&&o[t]===void 0&&console.warn(`THREE.GLTFLoader: Unknown extension "`+t+`".`)}}s.setExtensions(a),s.setPlugins(o),s.parse(n,r)}parseAsync(e,t){let n=this;return new Promise(function(r,i){n.parse(e,t,r,i)})}};function Pt(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var X={KHR_BINARY_GLTF:`KHR_binary_glTF`,KHR_DRACO_MESH_COMPRESSION:`KHR_draco_mesh_compression`,KHR_LIGHTS_PUNCTUAL:`KHR_lights_punctual`,KHR_MATERIALS_CLEARCOAT:`KHR_materials_clearcoat`,KHR_MATERIALS_DISPERSION:`KHR_materials_dispersion`,KHR_MATERIALS_IOR:`KHR_materials_ior`,KHR_MATERIALS_SHEEN:`KHR_materials_sheen`,KHR_MATERIALS_SPECULAR:`KHR_materials_specular`,KHR_MATERIALS_TRANSMISSION:`KHR_materials_transmission`,KHR_MATERIALS_IRIDESCENCE:`KHR_materials_iridescence`,KHR_MATERIALS_ANISOTROPY:`KHR_materials_anisotropy`,KHR_MATERIALS_UNLIT:`KHR_materials_unlit`,KHR_MATERIALS_VOLUME:`KHR_materials_volume`,KHR_TEXTURE_BASISU:`KHR_texture_basisu`,KHR_TEXTURE_TRANSFORM:`KHR_texture_transform`,KHR_MESH_QUANTIZATION:`KHR_mesh_quantization`,KHR_MATERIALS_EMISSIVE_STRENGTH:`KHR_materials_emissive_strength`,EXT_MATERIALS_BUMP:`EXT_materials_bump`,EXT_TEXTURE_WEBP:`EXT_texture_webp`,EXT_TEXTURE_AVIF:`EXT_texture_avif`,EXT_MESHOPT_COMPRESSION:`EXT_meshopt_compression`,EXT_MESH_GPU_INSTANCING:`EXT_mesh_gpu_instancing`},Ft=class{constructor(e){this.parser=e,this.name=X.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n<r;n++){let r=t[n];r.extensions&&r.extensions[this.name]&&r.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(e){let t=this.parser,n=`light:`+e,r=t.cache.get(n);if(r)return r;let i=t.json,a=((i.extensions&&i.extensions[this.name]||{}).lights||[])[e],o,s=new H(16777215);a.color!==void 0&&s.setRGB(a.color[0],a.color[1],a.color[2],At);let c=a.range===void 0?0:a.range;switch(a.type){case`directional`:o=new N(s),o.target.position.set(0,0,-1),o.add(o.target);break;case`point`:o=new Se(s),o.distance=c;break;case`spot`:o=new b(s),o.distance=c,a.spot=a.spot||{},a.spot.innerConeAngle=a.spot.innerConeAngle===void 0?0:a.spot.innerConeAngle,a.spot.outerConeAngle=a.spot.outerConeAngle===void 0?Math.PI/4:a.spot.outerConeAngle,o.angle=a.spot.outerConeAngle,o.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,o.target.position.set(0,0,-1),o.add(o.target);break;default:throw Error(`THREE.GLTFLoader: Unexpected light type: `+a.type)}return o.position.set(0,0,0),o.decay=2,bn(o,a),a.intensity!==void 0&&(o.intensity=a.intensity),o.name=t.createUniqueName(a.name||`light_`+e),r=Promise.resolve(o),t.cache.add(n,r),r}getDependency(e,t){if(e===`light`)return this._loadLight(t)}createNodeAttachment(e){let t=this,n=this.parser,r=n.json.nodes[e],i=(r.extensions&&r.extensions[this.name]||{}).light;return i===void 0?null:this._loadLight(i).then(function(e){return n._getNodeRef(t.cache,i,e)})}},It=class{constructor(){this.name=X.KHR_MATERIALS_UNLIT}getMaterialType(){return V}extendParams(e,t,n){let r=[];e.color=new H(1,1,1),e.opacity=1;let i=t.pbrMetallicRoughness;if(i){if(Array.isArray(i.baseColorFactor)){let t=i.baseColorFactor;e.color.setRGB(t[0],t[1],t[2],At),e.opacity=t[3]}i.baseColorTexture!==void 0&&r.push(n.assignTexture(e,`map`,i.baseColorTexture,kt))}return Promise.all(r)}},Lt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){let n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let r=n.extensions[this.name].emissiveStrength;return r!==void 0&&(t.emissiveIntensity=r),Promise.resolve()}},Rt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[],a=r.extensions[this.name];if(a.clearcoatFactor!==void 0&&(t.clearcoat=a.clearcoatFactor),a.clearcoatTexture!==void 0&&i.push(n.assignTexture(t,`clearcoatMap`,a.clearcoatTexture)),a.clearcoatRoughnessFactor!==void 0&&(t.clearcoatRoughness=a.clearcoatRoughnessFactor),a.clearcoatRoughnessTexture!==void 0&&i.push(n.assignTexture(t,`clearcoatRoughnessMap`,a.clearcoatRoughnessTexture)),a.clearcoatNormalTexture!==void 0&&(i.push(n.assignTexture(t,`clearcoatNormalMap`,a.clearcoatNormalTexture)),a.clearcoatNormalTexture.scale!==void 0)){let e=a.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new F(e,e)}return Promise.all(i)}},zt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_DISPERSION}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let r=n.extensions[this.name];return t.dispersion=r.dispersion===void 0?0:r.dispersion,Promise.resolve()}},Bt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[],a=r.extensions[this.name];return a.iridescenceFactor!==void 0&&(t.iridescence=a.iridescenceFactor),a.iridescenceTexture!==void 0&&i.push(n.assignTexture(t,`iridescenceMap`,a.iridescenceTexture)),a.iridescenceIor!==void 0&&(t.iridescenceIOR=a.iridescenceIor),t.iridescenceThicknessRange===void 0&&(t.iridescenceThicknessRange=[100,400]),a.iridescenceThicknessMinimum!==void 0&&(t.iridescenceThicknessRange[0]=a.iridescenceThicknessMinimum),a.iridescenceThicknessMaximum!==void 0&&(t.iridescenceThicknessRange[1]=a.iridescenceThicknessMaximum),a.iridescenceThicknessTexture!==void 0&&i.push(n.assignTexture(t,`iridescenceThicknessMap`,a.iridescenceThicknessTexture)),Promise.all(i)}},Vt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_SHEEN}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[];t.sheenColor=new H(0,0,0),t.sheenRoughness=0,t.sheen=1;let a=r.extensions[this.name];if(a.sheenColorFactor!==void 0){let e=a.sheenColorFactor;t.sheenColor.setRGB(e[0],e[1],e[2],At)}return a.sheenRoughnessFactor!==void 0&&(t.sheenRoughness=a.sheenRoughnessFactor),a.sheenColorTexture!==void 0&&i.push(n.assignTexture(t,`sheenColorMap`,a.sheenColorTexture,kt)),a.sheenRoughnessTexture!==void 0&&i.push(n.assignTexture(t,`sheenRoughnessMap`,a.sheenRoughnessTexture)),Promise.all(i)}},Ht=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[],a=r.extensions[this.name];return a.transmissionFactor!==void 0&&(t.transmission=a.transmissionFactor),a.transmissionTexture!==void 0&&i.push(n.assignTexture(t,`transmissionMap`,a.transmissionTexture)),Promise.all(i)}},Ut=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_VOLUME}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[],a=r.extensions[this.name];t.thickness=a.thicknessFactor===void 0?0:a.thicknessFactor,a.thicknessTexture!==void 0&&i.push(n.assignTexture(t,`thicknessMap`,a.thicknessTexture)),t.attenuationDistance=a.attenuationDistance||1/0;let o=a.attenuationColor||[1,1,1];return t.attenuationColor=new H().setRGB(o[0],o[1],o[2],At),Promise.all(i)}},Wt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_IOR}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();let r=n.extensions[this.name];return t.ior=r.ior===void 0?1.5:r.ior,Promise.resolve()}},Gt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_SPECULAR}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[],a=r.extensions[this.name];t.specularIntensity=a.specularFactor===void 0?1:a.specularFactor,a.specularTexture!==void 0&&i.push(n.assignTexture(t,`specularIntensityMap`,a.specularTexture));let o=a.specularColorFactor||[1,1,1];return t.specularColor=new H().setRGB(o[0],o[1],o[2],At),a.specularColorTexture!==void 0&&i.push(n.assignTexture(t,`specularColorMap`,a.specularColorTexture,kt)),Promise.all(i)}},Kt=class{constructor(e){this.parser=e,this.name=X.EXT_MATERIALS_BUMP}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[],a=r.extensions[this.name];return t.bumpScale=a.bumpFactor===void 0?1:a.bumpFactor,a.bumpTexture!==void 0&&i.push(n.assignTexture(t,`bumpMap`,a.bumpTexture)),Promise.all(i)}},qt=class{constructor(e){this.parser=e,this.name=X.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){let t=this.parser.json.materials[e];return!t.extensions||!t.extensions[this.name]?null:q}extendMaterialParams(e,t){let n=this.parser,r=n.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();let i=[],a=r.extensions[this.name];return a.anisotropyStrength!==void 0&&(t.anisotropy=a.anisotropyStrength),a.anisotropyRotation!==void 0&&(t.anisotropyRotation=a.anisotropyRotation),a.anisotropyTexture!==void 0&&i.push(n.assignTexture(t,`anisotropyMap`,a.anisotropyTexture)),Promise.all(i)}},Jt=class{constructor(e){this.parser=e,this.name=X.KHR_TEXTURE_BASISU}loadTexture(e){let t=this.parser,n=t.json,r=n.textures[e];if(!r.extensions||!r.extensions[this.name])return null;let i=r.extensions[this.name],a=t.options.ktx2Loader;if(!a){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw Error(`THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures`);return null}return t.loadTextureImage(e,i.source,a)}},Yt=class{constructor(e){this.parser=e,this.name=X.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: WebP required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Xt=class{constructor(e){this.parser=e,this.name=X.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;let a=i.extensions[t],o=r.images[a.source],s=n.textureLoader;if(o.uri){let e=n.options.manager.getHandler(o.uri);e!==null&&(s=e)}return this.detectSupport().then(function(i){if(i)return n.loadTextureImage(e,a.source,s);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw Error(`THREE.GLTFLoader: AVIF required by asset but unsupported.`);return n.loadTexture(e)})}detectSupport(){return this.isSupported||=new Promise(function(e){let t=new Image;t.src=`data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=`,t.onload=t.onerror=function(){e(t.height===1)}}),this.isSupported}},Zt=class{constructor(e){this.name=X.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){let e=n.extensions[this.name],r=this.parser.getDependency(`buffer`,e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw Error(`THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files`);return null}return r.then(function(t){let n=e.byteOffset||0,r=e.byteLength||0,a=e.count,o=e.byteStride,s=new Uint8Array(t,n,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(a,o,s,e.mode,e.filter).then(function(e){return e.buffer}):i.ready.then(function(){let t=new ArrayBuffer(a*o);return i.decodeGltfBuffer(new Uint8Array(t),a,o,s,e.mode,e.filter),t})})}else return null}},Qt=class{constructor(e){this.name=X.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||n.mesh===void 0)return null;let r=t.meshes[n.mesh];for(let e of r.primitives)if(e.mode!==Z.TRIANGLES&&e.mode!==Z.TRIANGLE_STRIP&&e.mode!==Z.TRIANGLE_FAN&&e.mode!==void 0)return null;let i=n.extensions[this.name].attributes,a=[],o={};for(let e in i)a.push(this.parser.getDependency(`accessor`,i[e]).then(t=>(o[e]=t,o[e])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(e=>{let t=e.pop(),n=t.isGroup?t.children:[t],r=e[0].count,i=[];for(let e of n){let t=new _e,n=new R,a=new h,s=new R(1,1,1),c=new y(e.geometry,e.material,r);for(let e=0;e<r;e++)o.TRANSLATION&&n.fromBufferAttribute(o.TRANSLATION,e),o.ROTATION&&a.fromBufferAttribute(o.ROTATION,e),o.SCALE&&s.fromBufferAttribute(o.SCALE,e),c.setMatrixAt(e,t.compose(n,a,s));for(let t in o)if(t===`_COLOR_0`){let e=o[t];c.instanceColor=new g(e.array,e.itemSize,e.normalized)}else t!==`TRANSLATION`&&t!==`ROTATION`&&t!==`SCALE`&&e.geometry.setAttribute(t,o[t]);fe.prototype.copy.call(c,e),this.parser.assignFinalMaterial(c),i.push(c)}return t.isGroup?(t.clear(),t.add(...i),t):i[0]}))}},$t=`glTF`,en=12,tn={JSON:1313821514,BIN:5130562},nn=class{constructor(e){this.name=X.KHR_BINARY_GLTF,this.content=null,this.body=null;let t=new DataView(e,0,en);if(this.header={magic:Ot(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==$t)throw Error(`THREE.GLTFLoader: Unsupported glTF-Binary header.`);if(this.header.version<2)throw Error(`THREE.GLTFLoader: Legacy binary file detected.`);let n=this.header.length-en,r=new DataView(e,en),i=0;for(;i<n;){let t=r.getUint32(i,!0);i+=4;let n=r.getUint32(i,!0);if(i+=4,n===tn.JSON)this.content=Ot(new Uint8Array(e,en+i,t));else if(n===tn.BIN){let n=en+i;this.body=e.slice(n,n+t)}i+=t}if(this.content===null)throw Error(`THREE.GLTFLoader: JSON content not found.`)}},rn=class{constructor(e,t){if(!t)throw Error(`THREE.GLTFLoader: No DRACOLoader instance provided.`);this.name=X.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){let n=this.json,r=this.dracoLoader,i=e.extensions[this.name].bufferView,a=e.extensions[this.name].attributes,o={},s={},c={};for(let e in a){let t=mn[e]||e.toLowerCase();o[t]=a[e]}for(let t in e.attributes){let r=mn[t]||t.toLowerCase();if(a[t]!==void 0){let i=n.accessors[e.attributes[t]];c[r]=un[i.componentType].name,s[r]=i.normalized===!0}}return t.getDependency(`bufferView`,i).then(function(e){return new Promise(function(t,n){r.decodeDracoFile(e,function(e){for(let t in e.attributes){let n=e.attributes[t],r=s[t];r!==void 0&&(n.normalized=r)}t(e)},o,c,At,n)})})}},an=class{constructor(){this.name=X.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return(t.texCoord===void 0||t.texCoord===e.channel)&&t.offset===void 0&&t.rotation===void 0&&t.scale===void 0?e:(e=e.clone(),t.texCoord!==void 0&&(e.channel=t.texCoord),t.offset!==void 0&&e.offset.fromArray(t.offset),t.rotation!==void 0&&(e.rotation=t.rotation),t.scale!==void 0&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e)}},on=class{constructor(){this.name=X.KHR_MESH_QUANTIZATION}},sn=class extends Ee{constructor(e,t,n,r){super(e,t,n,r)}copySampleValue_(e){let t=this.resultBuffer,n=this.sampleValues,r=this.valueSize,i=e*r*3+r;for(let e=0;e!==r;e++)t[e]=n[i+e];return t}interpolate_(e,t,n,r){let i=this.resultBuffer,a=this.sampleValues,o=this.valueSize,s=o*2,c=o*3,l=r-t,u=(n-t)/l,d=u*u,f=d*u,p=e*c,m=p-c,h=-2*f+3*d,g=f-d,_=1-h,v=g-d+u;for(let e=0;e!==o;e++){let t=a[m+e+o],n=a[m+e+s]*l,r=a[p+e+o],c=a[p+e]*l;i[e]=_*t+v*n+h*r+g*c}return i}},cn=new h,ln=class extends sn{interpolate_(e,t,n,r){let i=super.interpolate_(e,t,n,r);return cn.fromArray(i).normalize().toArray(i),i}},Z={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},un={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},dn={9728:be,9729:ge,9984:ie,9985:z,9986:K,9987:x},fn={33071:xe,33648:ue,10497:O},pn={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},mn={POSITION:`position`,NORMAL:`normal`,TANGENT:`tangent`,...Et>=152?{TEXCOORD_0:`uv`,TEXCOORD_1:`uv1`,TEXCOORD_2:`uv2`,TEXCOORD_3:`uv3`}:{TEXCOORD_0:`uv`,TEXCOORD_1:`uv2`},COLOR_0:`color`,WEIGHTS_0:`skinWeight`,JOINTS_0:`skinIndex`},hn={scale:`scale`,translation:`position`,rotation:`quaternion`,weights:`morphTargetInfluences`},gn={CUBICSPLINE:void 0,LINEAR:I,STEP:p},_n={OPAQUE:`OPAQUE`,MASK:`MASK`,BLEND:`BLEND`};function vn(e){return e.DefaultMaterial===void 0&&(e.DefaultMaterial=new W({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),e.DefaultMaterial}function yn(e,t,n){for(let r in n.extensions)e[r]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function bn(e,t){t.extras!==void 0&&(typeof t.extras==`object`?Object.assign(e.userData,t.extras):console.warn(`THREE.GLTFLoader: Ignoring primitive type .extras, `+t.extras))}function xn(e,t,n){let r=!1,i=!1,a=!1;for(let e=0,n=t.length;e<n;e++){let n=t[e];if(n.POSITION!==void 0&&(r=!0),n.NORMAL!==void 0&&(i=!0),n.COLOR_0!==void 0&&(a=!0),r&&i&&a)break}if(!r&&!i&&!a)return Promise.resolve(e);let o=[],s=[],c=[];for(let l=0,u=t.length;l<u;l++){let u=t[l];if(r){let t=u.POSITION===void 0?e.attributes.position:n.getDependency(`accessor`,u.POSITION);o.push(t)}if(i){let t=u.NORMAL===void 0?e.attributes.normal:n.getDependency(`accessor`,u.NORMAL);s.push(t)}if(a){let t=u.COLOR_0===void 0?e.attributes.color:n.getDependency(`accessor`,u.COLOR_0);c.push(t)}}return Promise.all([Promise.all(o),Promise.all(s),Promise.all(c)]).then(function(t){let n=t[0],o=t[1],s=t[2];return r&&(e.morphAttributes.position=n),i&&(e.morphAttributes.normal=o),a&&(e.morphAttributes.color=s),e.morphTargetsRelative=!0,e})}function Sn(e,t){if(e.updateMorphTargets(),t.weights!==void 0)for(let n=0,r=t.weights.length;n<r;n++)e.morphTargetInfluences[n]=t.weights[n];if(t.extras&&Array.isArray(t.extras.targetNames)){let n=t.extras.targetNames;if(e.morphTargetInfluences.length===n.length){e.morphTargetDictionary={};for(let t=0,r=n.length;t<r;t++)e.morphTargetDictionary[n[t]]=t}else console.warn(`THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.`)}}function Cn(e){let t,n=e.extensions&&e.extensions[X.KHR_DRACO_MESH_COMPRESSION];if(t=n?`draco:`+n.bufferView+`:`+n.indices+`:`+wn(n.attributes):e.indices+`:`+wn(e.attributes)+`:`+e.mode,e.targets!==void 0)for(let n=0,r=e.targets.length;n<r;n++)t+=`:`+wn(e.targets[n]);return t}function wn(e){let t=``,n=Object.keys(e).sort();for(let r=0,i=n.length;r<i;r++)t+=n[r]+`:`+e[n[r]]+`;`;return t}function Tn(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw Error(`THREE.GLTFLoader: Unsupported normalized accessor component type.`)}}function En(e){return e.search(/\.jpe?g($|\?)/i)>0||e.search(/^data\:image\/jpeg/)===0?`image/jpeg`:e.search(/\.webp($|\?)/i)>0||e.search(/^data\:image\/webp/)===0?`image/webp`:`image/png`}var Dn=new _e,On=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new Pt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let n=!1,r=!1,i=-1;typeof navigator<`u`&&navigator.userAgent!==void 0&&(n=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,r=navigator.userAgent.indexOf(`Firefox`)>-1,i=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>`u`||n||r&&i<98?this.textureLoader=new m(this.options.manager):this.textureLoader=new k(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new D(this.options.manager),this.fileLoader.setResponseType(`arraybuffer`),this.options.crossOrigin===`use-credentials`&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()})).then(function(){return Promise.all([n.getDependencies(`scene`),n.getDependencies(`animation`),n.getDependencies(`camera`)])}).then(function(t){let a={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};return yn(i,a,r),bn(a,r),Promise.all(n._invokeAll(function(e){return e.afterRoot&&e.afterRoot(a)})).then(function(){for(let e of a.scenes)e.updateMatrixWorld();e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let n=0,r=t.length;n<r;n++){let r=t[n].joints;for(let t=0,n=r.length;t<n;t++)e[r[t]].isBone=!0}for(let t=0,r=e.length;t<r;t++){let r=e[t];r.mesh!==void 0&&(this._addNodeRef(this.meshCache,r.mesh),r.skin!==void 0&&(n[r.mesh].isSkinnedMesh=!0)),r.camera!==void 0&&this._addNodeRef(this.cameraCache,r.camera)}}_addNodeRef(e,t){t!==void 0&&(e.refs[t]===void 0&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,n){if(e.refs[t]<=1)return n;let r=n.clone(),i=(e,t)=>{let n=this.associations.get(e);n!=null&&this.associations.set(t,n);for(let[n,r]of e.children.entries())i(r,t.children[n])};return i(n,r),r.name+=`_instance_`+ e.uses[t]++,r}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let n=0;n<t.length;n++){let r=e(t[n]);if(r)return r}return null}_invokeAll(e){let t=Object.values(this.plugins);t.unshift(this);let n=[];for(let r=0;r<t.length;r++){let i=e(t[r]);i&&n.push(i)}return n}getDependency(e,t){let n=e+`:`+t,r=this.cache.get(n);if(!r){switch(e){case`scene`:r=this.loadScene(t);break;case`node`:r=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case`mesh`:r=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case`accessor`:r=this.loadAccessor(t);break;case`bufferView`:r=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case`buffer`:r=this.loadBuffer(t);break;case`material`:r=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case`texture`:r=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case`skin`:r=this.loadSkin(t);break;case`animation`:r=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case`camera`:r=this.loadCamera(t);break;default:if(r=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(e,t)}),!r)throw Error(`Unknown type: `+e);break}this.cache.add(n,r)}return r}getDependencies(e){let t=this.cache.get(e);if(!t){let n=this,r=this.json[e+(e===`mesh`?`es`:`s`)]||[];t=Promise.all(r.map(function(t,r){return n.getDependency(e,r)})),this.cache.add(e,t)}return t}loadBuffer(e){let t=this.json.buffers[e],n=this.fileLoader;if(t.type&&t.type!==`arraybuffer`)throw Error(`THREE.GLTFLoader: `+t.type+` buffer type is not supported.`);if(t.uri===void 0&&e===0)return Promise.resolve(this.extensions[X.KHR_BINARY_GLTF].body);let r=this.options;return new Promise(function(e,i){n.load(A.resolveURL(t.uri,r.path),e,void 0,function(){i(Error(`THREE.GLTFLoader: Failed to load buffer "`+t.uri+`".`))})})}loadBufferView(e){let t=this.json.bufferViews[e];return this.getDependency(`buffer`,t.buffer).then(function(e){let n=t.byteLength||0,r=t.byteOffset||0;return e.slice(r,r+n)})}loadAccessor(e){let t=this,n=this.json,r=this.json.accessors[e];if(r.bufferView===void 0&&r.sparse===void 0){let e=pn[r.type],t=un[r.componentType],n=r.normalized===!0,i=new t(r.count*e);return Promise.resolve(new de(i,e,n))}let i=[];return r.bufferView===void 0?i.push(null):i.push(this.getDependency(`bufferView`,r.bufferView)),r.sparse!==void 0&&(i.push(this.getDependency(`bufferView`,r.sparse.indices.bufferView)),i.push(this.getDependency(`bufferView`,r.sparse.values.bufferView))),Promise.all(i).then(function(e){let i=e[0],a=pn[r.type],o=un[r.componentType],s=o.BYTES_PER_ELEMENT,c=s*a,l=r.byteOffset||0,u=r.bufferView===void 0?void 0:n.bufferViews[r.bufferView].byteStride,d=r.normalized===!0,f,p;if(u&&u!==c){let e=Math.floor(l/u),n=`InterleavedBuffer:`+r.bufferView+`:`+r.componentType+`:`+e+`:`+r.count,c=t.cache.get(n);c||(f=new o(i,e*u,r.count*u/s),c=new C(f,u/s),t.cache.add(n,c)),p=new j(c,a,l%u/s,d)}else f=i===null?new o(r.count*a):new o(i,l,r.count*a),p=new de(f,a,d);if(r.sparse!==void 0){let t=pn.SCALAR,n=un[r.sparse.indices.componentType],s=r.sparse.indices.byteOffset||0,c=r.sparse.values.byteOffset||0,l=new n(e[1],s,r.sparse.count*t),u=new o(e[2],c,r.sparse.count*a);i!==null&&(p=new de(p.array.slice(),p.itemSize,p.normalized));for(let e=0,t=l.length;e<t;e++){let t=l[e];if(p.setX(t,u[e*a]),a>=2&&p.setY(t,u[e*a+1]),a>=3&&p.setZ(t,u[e*a+2]),a>=4&&p.setW(t,u[e*a+3]),a>=5)throw Error(`THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.`)}}return p})}loadTexture(e){let t=this.json,n=this.options,r=t.textures[e].source,i=t.images[r],a=this.textureLoader;if(i.uri){let e=n.manager.getHandler(i.uri);e!==null&&(a=e)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,t,n){let r=this,i=this.json,a=i.textures[e],o=i.images[t],s=(o.uri||o.bufferView)+`:`+a.sampler;if(this.textureCache[s])return this.textureCache[s];let c=this.loadImageSource(t,n).then(function(t){t.flipY=!1,t.name=a.name||o.name||``,t.name===``&&typeof o.uri==`string`&&o.uri.startsWith(`data:image/`)===!1&&(t.name=o.uri);let n=(i.samplers||{})[a.sampler]||{};return t.magFilter=dn[n.magFilter]||1006,t.minFilter=dn[n.minFilter]||1008,t.wrapS=fn[n.wrapS]||1e3,t.wrapT=fn[n.wrapT]||1e3,r.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=c,c}loadImageSource(e,t){let n=this,r=this.json,i=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(e=>e.clone());let a=r.images[e],o=self.URL||self.webkitURL,s=a.uri||``,c=!1;if(a.bufferView!==void 0)s=n.getDependency(`bufferView`,a.bufferView).then(function(e){c=!0;let t=new Blob([e],{type:a.mimeType});return s=o.createObjectURL(t),s});else if(a.uri===void 0)throw Error(`THREE.GLTFLoader: Image `+e+` is missing URI and bufferView`);let l=Promise.resolve(s).then(function(e){return new Promise(function(n,r){let a=n;t.isImageBitmapLoader===!0&&(a=function(e){let t=new De(e);t.needsUpdate=!0,n(t)}),t.load(A.resolveURL(e,i.path),a,void 0,r)})}).then(function(e){return c===!0&&o.revokeObjectURL(s),bn(e,a),e.userData.mimeType=a.mimeType||En(a.uri),e}).catch(function(e){throw console.error(`THREE.GLTFLoader: Couldn't load texture`,s),e});return this.sourceCache[e]=l,l}assignTexture(e,t,n,r){let i=this;return this.getDependency(`texture`,n.index).then(function(a){if(!a)return null;if(n.texCoord!==void 0&&n.texCoord>0&&(a=a.clone(),a.channel=n.texCoord),i.extensions[X.KHR_TEXTURE_TRANSFORM]){let e=n.extensions===void 0?void 0:n.extensions[X.KHR_TEXTURE_TRANSFORM];if(e){let t=i.associations.get(a);a=i.extensions[X.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),i.associations.set(a,t)}}return r!==void 0&&(typeof r==`number`&&(r=r===jt?kt:At),`colorSpace`in a?a.colorSpace=r:a.encoding=r===kt?jt:Mt),e[t]=a,a})}assignFinalMaterial(e){let t=e.geometry,n=e.material,r=t.attributes.tangent===void 0,i=t.attributes.color!==void 0,a=t.attributes.normal===void 0;if(e.isPoints){let e=`PointsMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new U,ye.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){let e=`LineBasicMaterial:`+n.uuid,t=this.cache.get(e);t||(t=new L,ye.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(r||i||a){let e=`ClonedMaterial:`+n.uuid+`:`;r&&(e+=`derivative-tangents:`),i&&(e+=`vertex-colors:`),a&&(e+=`flat-shading:`);let t=this.cache.get(e);t||(t=n.clone(),i&&(t.vertexColors=!0),a&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return W}loadMaterial(e){let t=this,n=this.json,r=this.extensions,i=n.materials[e],a,o={},s=i.extensions||{},c=[];if(s[X.KHR_MATERIALS_UNLIT]){let e=r[X.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,i,t))}else{let n=i.pbrMetallicRoughness||{};if(o.color=new H(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){let e=n.baseColorFactor;o.color.setRGB(e[0],e[1],e[2],At),o.opacity=e[3]}n.baseColorTexture!==void 0&&c.push(t.assignTexture(o,`map`,n.baseColorTexture,kt)),o.metalness=n.metallicFactor===void 0?1:n.metallicFactor,o.roughness=n.roughnessFactor===void 0?1:n.roughnessFactor,n.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(o,`metalnessMap`,n.metallicRoughnessTexture)),c.push(t.assignTexture(o,`roughnessMap`,n.metallicRoughnessTexture))),a=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}i.doubleSided===!0&&(o.side=2);let l=i.alphaMode||_n.OPAQUE;if(l===_n.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,l===_n.MASK&&(o.alphaTest=i.alphaCutoff===void 0?.5:i.alphaCutoff)),i.normalTexture!==void 0&&a!==V&&(c.push(t.assignTexture(o,`normalMap`,i.normalTexture)),o.normalScale=new F(1,1),i.normalTexture.scale!==void 0)){let e=i.normalTexture.scale;o.normalScale.set(e,e)}if(i.occlusionTexture!==void 0&&a!==V&&(c.push(t.assignTexture(o,`aoMap`,i.occlusionTexture)),i.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=i.occlusionTexture.strength)),i.emissiveFactor!==void 0&&a!==V){let e=i.emissiveFactor;o.emissive=new H().setRGB(e[0],e[1],e[2],At)}return i.emissiveTexture!==void 0&&a!==V&&c.push(t.assignTexture(o,`emissiveMap`,i.emissiveTexture,kt)),Promise.all(c).then(function(){let n=new a(o);return i.name&&(n.name=i.name),bn(n,i),t.associations.set(n,{materials:e}),i.extensions&&yn(r,n,i),n})}createUniqueName(e){let t=M.sanitizeNodeName(e||``);return t in this.nodeNamesUsed?t+`_`+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,n=this.extensions,r=this.primitiveCache;function i(e){return n[X.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(n){return An(n,e,t)})}let a=[];for(let n=0,o=e.length;n<o;n++){let o=e[n],s=Cn(o),c=r[s];if(c)a.push(c.promise);else{let e;e=o.extensions&&o.extensions[X.KHR_DRACO_MESH_COMPRESSION]?i(o):An(new oe,o,t),r[s]={primitive:o,promise:e},a.push(e)}}return Promise.all(a)}loadMesh(e){let t=this,n=this.json,r=this.extensions,i=n.meshes[e],a=i.primitives,o=[];for(let e=0,t=a.length;e<t;e++){let t=a[e].material===void 0?vn(this.cache):this.getDependency(`material`,a[e].material);o.push(t)}return o.push(t.loadGeometries(a)),Promise.all(o).then(function(n){let o=n.slice(0,n.length-1),s=n[n.length-1],c=[];for(let n=0,l=s.length;n<l;n++){let l=s[n],u=a[n],d,f=o[n];if(u.mode===Z.TRIANGLES||u.mode===Z.TRIANGLE_STRIP||u.mode===Z.TRIANGLE_FAN||u.mode===void 0)d=i.isSkinnedMesh===!0?new E(l,f):new le(l,f),d.isSkinnedMesh===!0&&d.normalizeSkinWeights(),u.mode===Z.TRIANGLE_STRIP?d.geometry=Dt(d.geometry,1):u.mode===Z.TRIANGLE_FAN&&(d.geometry=Dt(d.geometry,2));else if(u.mode===Z.LINES)d=new S(l,f);else if(u.mode===Z.LINE_STRIP)d=new P(l,f);else if(u.mode===Z.LINE_LOOP)d=new _(l,f);else if(u.mode===Z.POINTS)d=new Te(l,f);else throw Error(`THREE.GLTFLoader: Primitive mode unsupported: `+u.mode);Object.keys(d.geometry.morphAttributes).length>0&&Sn(d,i),d.name=t.createUniqueName(i.name||`mesh_`+e),bn(d,i),u.extensions&&yn(r,d,u),t.assignFinalMaterial(d),c.push(d)}for(let n=0,r=c.length;n<r;n++)t.associations.set(c[n],{meshes:e,primitives:n});if(c.length===1)return i.extensions&&yn(r,c[0],i),c[0];let l=new w;i.extensions&&yn(r,l,i),t.associations.set(l,{meshes:e});for(let e=0,t=c.length;e<t;e++)l.add(c[e]);return l})}loadCamera(e){let t,n=this.json.cameras[e],r=n[n.type];if(!r){console.warn(`THREE.GLTFLoader: Missing camera parameters.`);return}return n.type===`perspective`?t=new ae(pe.radToDeg(r.yfov),r.aspectRatio||1,r.znear||1,r.zfar||2e6):n.type===`orthographic`&&(t=new se(-r.xmag,r.xmag,r.ymag,-r.ymag,r.znear,r.zfar)),n.name&&(t.name=this.createUniqueName(n.name)),bn(t,n),Promise.resolve(t)}loadSkin(e){let t=this.json.skins[e],n=[];for(let e=0,r=t.joints.length;e<r;e++)n.push(this._loadNodeShallow(t.joints[e]));return t.inverseBindMatrices===void 0?n.push(null):n.push(this.getDependency(`accessor`,t.inverseBindMatrices)),Promise.all(n).then(function(e){let n=e.pop(),r=e,i=[],a=[];for(let e=0,o=r.length;e<o;e++){let o=r[e];if(o){i.push(o);let t=new _e;n!==null&&t.fromArray(n.array,e*16),a.push(t)}else console.warn(`THREE.GLTFLoader: Joint "%s" could not be found.`,t.joints[e])}return new T(i,a)})}loadAnimation(e){let t=this.json,n=this,r=t.animations[e],i=r.name?r.name:`animation_`+e,a=[],o=[],s=[],c=[],l=[];for(let e=0,t=r.channels.length;e<t;e++){let t=r.channels[e],n=r.samplers[t.sampler],i=t.target,u=i.node,d=r.parameters===void 0?n.input:r.parameters[n.input],f=r.parameters===void 0?n.output:r.parameters[n.output];i.node!==void 0&&(a.push(this.getDependency(`node`,u)),o.push(this.getDependency(`accessor`,d)),s.push(this.getDependency(`accessor`,f)),c.push(n),l.push(i))}return Promise.all([Promise.all(a),Promise.all(o),Promise.all(s),Promise.all(c),Promise.all(l)]).then(function(e){let t=e[0],r=e[1],a=e[2],o=e[3],s=e[4],c=[];for(let e=0,i=t.length;e<i;e++){let i=t[e],l=r[e],u=a[e],d=o[e],f=s[e];if(i===void 0)continue;i.updateMatrix&&i.updateMatrix();let p=n._createAnimationTracks(i,l,u,d,f);if(p)for(let e=0;e<p.length;e++)c.push(p[e])}return new B(i,void 0,c)})}createNodeMesh(e){let t=this.json,n=this,r=t.nodes[e];return r.mesh===void 0?null:n.getDependency(`mesh`,r.mesh).then(function(e){let t=n._getNodeRef(n.meshCache,r.mesh,e);return r.weights!==void 0&&t.traverse(function(e){if(e.isMesh)for(let t=0,n=r.weights.length;t<n;t++)e.morphTargetInfluences[t]=r.weights[t]}),t})}loadNode(e){let t=this.json,n=this,r=t.nodes[e],i=n._loadNodeShallow(e),a=[],o=r.children||[];for(let e=0,t=o.length;e<t;e++)a.push(n.getDependency(`node`,o[e]));let s=r.skin===void 0?Promise.resolve(null):n.getDependency(`skin`,r.skin);return Promise.all([i,Promise.all(a),s]).then(function(e){let t=e[0],n=e[1],r=e[2];r!==null&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(r,Dn)});for(let e=0,r=n.length;e<r;e++)t.add(n[e]);return t})}_loadNodeShallow(e){let t=this.json,n=this.extensions,r=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];let i=t.nodes[e],a=i.name?r.createUniqueName(i.name):``,o=[],s=r._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return s&&o.push(s),i.camera!==void 0&&o.push(r.getDependency(`camera`,i.camera).then(function(e){return r._getNodeRef(r.cameraCache,i.camera,e)})),r._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){o.push(e)}),this.nodeCache[e]=Promise.all(o).then(function(t){let o;if(o=i.isBone===!0?new G:t.length>1?new w:t.length===1?t[0]:new fe,o!==t[0])for(let e=0,n=t.length;e<n;e++)o.add(t[e]);if(i.name&&(o.userData.name=i.name,o.name=a),bn(o,i),i.extensions&&yn(n,o,i),i.matrix!==void 0){let e=new _e;e.fromArray(i.matrix),o.applyMatrix4(e)}else i.translation!==void 0&&o.position.fromArray(i.translation),i.rotation!==void 0&&o.quaternion.fromArray(i.rotation),i.scale!==void 0&&o.scale.fromArray(i.scale);return r.associations.has(o)||r.associations.set(o,{}),r.associations.get(o).nodes=e,o}),this.nodeCache[e]}loadScene(e){let t=this.extensions,n=this.json.scenes[e],r=this,i=new w;n.name&&(i.name=r.createUniqueName(n.name)),bn(i,n),n.extensions&&yn(t,i,n);let a=n.nodes||[],o=[];for(let e=0,t=a.length;e<t;e++)o.push(r.getDependency(`node`,a[e]));return Promise.all(o).then(function(e){for(let t=0,n=e.length;t<n;t++)i.add(e[t]);return r.associations=(e=>{let t=new Map;for(let[e,n]of r.associations)(e instanceof ye||e instanceof De)&&t.set(e,n);return e.traverse(e=>{let n=r.associations.get(e);n!=null&&t.set(e,n)}),t})(i),i})}_createAnimationTracks(e,t,n,r,i){let a=[],o=e.name?e.name:e.uuid,s=[];hn[i.path]===hn.weights?e.traverse(function(e){e.morphTargetInfluences&&s.push(e.name?e.name:e.uuid)}):s.push(o);let c;switch(hn[i.path]){case hn.weights:c=he;break;case hn.rotation:c=Ce;break;case hn.position:case hn.scale:c=v;break;default:switch(n.itemSize){case 1:c=he;break;default:c=v;break}break}let l=r.interpolation===void 0?I:gn[r.interpolation],u=this._getArrayFromAccessor(n);for(let e=0,n=s.length;e<n;e++){let n=new c(s[e]+`.`+hn[i.path],t.array,u,l);r.interpolation===`CUBICSPLINE`&&this._createCubicSplineTrackInterpolant(n),a.push(n)}return a}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){let e=Tn(t.constructor),n=new Float32Array(t.length);for(let r=0,i=t.length;r<i;r++)n[r]=t[r]*e;t=n}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(e){return new(this instanceof Ce?ln:sn)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}};function kn(e,t,n){let r=t.attributes,i=new re;if(r.POSITION!==void 0){let e=n.json.accessors[r.POSITION],t=e.min,a=e.max;if(t!==void 0&&a!==void 0){if(i.set(new R(t[0],t[1],t[2]),new R(a[0],a[1],a[2])),e.normalized){let t=Tn(un[e.componentType]);i.min.multiplyScalar(t),i.max.multiplyScalar(t)}}else{console.warn(`THREE.GLTFLoader: Missing min/max properties for accessor POSITION.`);return}}else return;let a=t.targets;if(a!==void 0){let e=new R,t=new R;for(let r=0,i=a.length;r<i;r++){let i=a[r];if(i.POSITION!==void 0){let r=n.json.accessors[i.POSITION],a=r.min,o=r.max;if(a!==void 0&&o!==void 0){if(t.setX(Math.max(Math.abs(a[0]),Math.abs(o[0]))),t.setY(Math.max(Math.abs(a[1]),Math.abs(o[1]))),t.setZ(Math.max(Math.abs(a[2]),Math.abs(o[2]))),r.normalized){let e=Tn(un[r.componentType]);t.multiplyScalar(e)}e.max(t)}else console.warn(`THREE.GLTFLoader: Missing min/max properties for accessor POSITION.`)}}i.expandByVector(e)}e.boundingBox=i;let o=new ee;i.getCenter(o.center),o.radius=i.min.distanceTo(i.max)/2,e.boundingSphere=o}function An(e,t,n){let r=t.attributes,i=[];function a(t,r){return n.getDependency(`accessor`,t).then(function(t){e.setAttribute(r,t)})}for(let t in r){let n=mn[t]||t.toLowerCase();n in e.attributes||i.push(a(r[t],n))}if(t.indices!==void 0&&!e.index){let r=n.getDependency(`accessor`,t.indices).then(function(t){e.setIndex(t)});i.push(r)}return bn(e,t),kn(e,t,n),Promise.all(i).then(function(){return t.targets===void 0?e:xn(e,t.targets,n)})}var jn=new WeakMap,Mn=class extends te{constructor(e){super(e),this.decoderPath=``,this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL=``,this.defaultAttributeIDs={position:`POSITION`,normal:`NORMAL`,color:`COLOR`,uv:`TEX_COORD`},this.defaultAttributeTypes={position:`Float32Array`,normal:`Float32Array`,color:`Float32Array`,uv:`Float32Array`}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,r){let i=new D(this.manager);i.setPath(this.path),i.setResponseType(`arraybuffer`),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,e=>{let n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(r)},n,r)}decodeDracoFile(e,t,n,r){let i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(let e in t.attributeTypes){let n=t.attributeTypes[e];n.BYTES_PER_ELEMENT!==void 0&&(t.attributeTypes[e]=n.name)}let n=JSON.stringify(t);if(jn.has(e)){let t=jn.get(e);if(t.key===n)return t.promise;if(e.byteLength===0)throw Error(`THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.`)}let r,i=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(i,a).then(n=>(r=n,new Promise((n,a)=>{r._callbacks[i]={resolve:n,reject:a},r.postMessage({type:`decode`,id:i,taskConfig:t,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return o.catch(()=>!0).then(()=>{r&&i&&this._releaseTask(r,i)}),jn.set(e,{key:n,promise:o}),o}_createGeometry(e){let t=new oe;e.index&&t.setIndex(new de(e.index.array,1));for(let n=0;n<e.attributes.length;n++){let r=e.attributes[n],i=r.name,a=r.array,o=r.itemSize;t.setAttribute(i,new de(a,o))}return t}_loadLibrary(e,t){let n=new D(this.manager);return n.setPath(this.decoderPath),n.setResponseType(t),n.setWithCredentials(this.withCredentials),new Promise((t,r)=>{n.load(e,t,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let e=typeof WebAssembly!=`object`||this.decoderConfig.type===`js`,t=[];return e?t.push(this._loadLibrary(`draco_decoder.js`,`text`)):(t.push(this._loadLibrary(`draco_wasm_wrapper.js`,`text`)),t.push(this._loadLibrary(`draco_decoder.wasm`,`arraybuffer`))),this.decoderPending=Promise.all(t).then(t=>{let n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);let r=Nn.toString(),i=[`/* draco decoder */`,n,``,`/* worker */`,r.substring(r.indexOf(`{`)+1,r.lastIndexOf(`}`))].join(`
`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){let e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:`init`,decoderConfig:this.decoderConfig}),e.onmessage=function(t){let n=t.data;switch(n.type){case`decode`:e._callbacks[n.id].resolve(n);break;case`error`:e._callbacks[n.id].reject(n);break;default:console.error(`THREE.DRACOLoader: Unexpected message, "`+n.type+`"`)}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});let n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log(`Task load: `,this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}};function Nn(){let e,t;onmessage=function(r){let i=r.data;switch(i.type){case`init`:e=i.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case`decode`:let r=i.buffer,a=i.taskConfig;t.then(e=>{let t=e.draco,o=new t.Decoder,s=new t.DecoderBuffer;s.Init(new Int8Array(r),r.byteLength);try{let e=n(t,o,s,a),r=e.attributes.map(e=>e.array.buffer);e.index&&r.push(e.index.array.buffer),self.postMessage({type:`decode`,id:i.id,geometry:e},r)}catch(e){console.error(e),self.postMessage({type:`error`,id:i.id,error:e.message})}finally{t.destroy(s),t.destroy(o)}});break}};function n(e,t,n,a){let o=a.attributeIDs,s=a.attributeTypes,c,l,u=t.GetEncodedGeometryType(n);if(u===e.TRIANGULAR_MESH)c=new e.Mesh,l=t.DecodeBufferToMesh(n,c);else if(u===e.POINT_CLOUD)c=new e.PointCloud,l=t.DecodeBufferToPointCloud(n,c);else throw Error(`THREE.DRACOLoader: Unexpected geometry type.`);if(!l.ok()||c.ptr===0)throw Error(`THREE.DRACOLoader: Decoding failed: `+l.error_msg());let d={index:null,attributes:[]};for(let n in o){let r=self[s[n]],l,u;if(a.useUniqueIDs)u=o[n],l=t.GetAttributeByUniqueId(c,u);else{if(u=t.GetAttributeId(c,e[o[n]]),u===-1)continue;l=t.GetAttribute(c,u)}d.attributes.push(i(e,t,c,n,r,l))}return u===e.TRIANGULAR_MESH&&(d.index=r(e,t,c)),e.destroy(c),d}function r(e,t,n){let r=n.num_faces()*3,i=r*4,a=e._malloc(i);t.GetTrianglesUInt32Array(n,i,a);let o=new Uint32Array(e.HEAPF32.buffer,a,r).slice();return e._free(a),{array:o,itemSize:1}}function i(e,t,n,r,i,o){let s=o.num_components(),c=n.num_points()*s,l=c*i.BYTES_PER_ELEMENT,u=a(e,i),d=e._malloc(l);t.GetAttributeDataArrayForAllPoints(n,o,u,l,d);let f=new i(e.HEAPF32.buffer,d,c).slice();return e._free(d),{name:r,array:f,itemSize:s}}function a(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}}var Pn,Fn=()=>{if(Pn)return Pn;let e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!=`object`)return{supported:!1};let n=`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`;WebAssembly.validate(e)&&(n=`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`);let r,i=WebAssembly.instantiate(a(n),{}).then(e=>{r=e.instance,r.exports.__wasm_call_ctors()});function a(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;++t){let r=e.charCodeAt(t);n[t]=r>96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let r=0;for(let i=0;i<e.length;++i)n[r++]=n[i]<60?t[n[i]]:(n[i]-60)*64+n[++i];return n.buffer.slice(0,r)}function o(e,t,n,i,a,o){let s=r.exports.sbrk,c=n+3&-4,l=s(c*i),u=s(a.length),d=new Uint8Array(r.exports.memory.buffer);d.set(a,u);let f=e(l,n,i,u,a.length);if(f===0&&o&&o(l,c,i),t.set(d.subarray(l,l+n*i)),s(l-s(0)),f!==0)throw Error(`Malformed buffer data: ${f}`)}let s={0:``,1:`meshopt_decodeFilterOct`,2:`meshopt_decodeFilterQuat`,3:`meshopt_decodeFilterExp`,NONE:``,OCTAHEDRAL:`meshopt_decodeFilterOct`,QUATERNION:`meshopt_decodeFilterQuat`,EXPONENTIAL:`meshopt_decodeFilterExp`},c={0:`meshopt_decodeVertexBuffer`,1:`meshopt_decodeIndexBuffer`,2:`meshopt_decodeIndexSequence`,ATTRIBUTES:`meshopt_decodeVertexBuffer`,TRIANGLES:`meshopt_decodeIndexBuffer`,INDICES:`meshopt_decodeIndexSequence`};return Pn={ready:i,supported:!0,decodeVertexBuffer(e,t,n,i,a){o(r.exports.meshopt_decodeVertexBuffer,e,t,n,i,r.exports[s[a]])},decodeIndexBuffer(e,t,n,i){o(r.exports.meshopt_decodeIndexBuffer,e,t,n,i)},decodeIndexSequence(e,t,n,i){o(r.exports.meshopt_decodeIndexSequence,e,t,n,i)},decodeGltfBuffer(e,t,n,i,a,l){o(r.exports[c[a]],e,t,n,i,r.exports[s[l]])}},Pn},In=null,Ln=`https://www.gstatic.com/draco/versioned/decoders/1.5.5/`;function Rn(e=!0,t=!0,n){return r=>{n&&n(r),e&&(In||=new Mn,In.setDecoderPath(typeof e==`string`?e:Ln),r.setDRACOLoader(In)),t&&r.setMeshoptDecoder(typeof Fn==`function`?Fn():Fn)}}var zn=(e,t,n,r)=>o(Nt,e,Rn(t,n,r));zn.preload=(e,t,n,r)=>o.preload(Nt,e,Rn(t,n,r)),zn.clear=e=>o.clear(Nt,e),zn.setDecoderPath=e=>{Ln=e};var Q=t(),Bn=4;function Vn(e,t){let n=(0,Q.c)(10),{audioLoader:r,audioListener:a}=Qe(),{audioEnabled:o}=c(),s;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=Array.from({length:Bn},Un),n[0]=s):s=n[0];let l=(0,Y.useRef)(s),d;n[1]===Symbol.for(`react.memo_cache_sentinel`)?(d=new Map,n[1]=d):d=n[1];let f=(0,Y.useRef)(d),p,m;n[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>()=>{for(let e of l.current)if(e){tt(e.sound);try{e.sound.stop()}catch{}try{e.sound.disconnect()}catch{}e.sound.parent?.remove(e.sound)}l.current=Array.from({length:Bn},Hn)},m=[],n[2]=p,n[3]=m):(p=n[2],m=n[3]),(0,Y.useEffect)(p,m);let h;n[4]!==o||n[5]!==a||n[6]!==r||n[7]!==t||n[8]!==e?(h=()=>{if(!o||!a||!r||!t)return;let n=e.current?.soundSlots,i=l.current,s=qe.getState().playback.status===`playing`,c=[];if(n)for(let e of n)c[e.index]=e;for(let e=0;e<Bn;e++){let n=c[e],o=!!n?.playing&&n.profileId!=null,l=n?.profileId??-1,d=i[e];if(o&&s){if(d&&d.profileId===l&&d.sound.isPlaying)continue;if(d&&d.profileId!==l){tt(d.sound);try{d.sound.stop()}catch{}d.sound.parent?.remove(d.sound),i[e]=null}let n=f.current.get(l);if(n){if(!i[e]){let r=new we(a);r.setDistanceModel(`inverse`),r.setRefDistance(n.profile.refDist),r.setMaxDistance(n.profile.maxDist),r.setRolloffFactor(1),r.setVolume(n.profile.volume),r.setBuffer(n.buffer),r.setLoop(n.profile.isLooping),r.setPlaybackRate(u()),t.add(r);try{r.play(),Ze(r,1)}catch{}i[e]={profileId:l,sound:r,profile:n.profile}}}else{let e=qe.getState().playback.recording?.streamingPlayback;if(!e)continue;let t=nt(l,e.getDataBlockData.bind(e));if(!t)continue;try{it(He(t.filename),r,e=>{f.current.set(l,{profile:t,buffer:e})})}catch{}}}else if(d){tt(d.sound);try{d.sound.stop()}catch{}d.sound.parent?.remove(d.sound),i[e]=null}}},n[4]=o,n[5]=a,n[6]=r,n[7]=t,n[8]=e,n[9]=h):h=n[9],i(h)}function Hn(){return null}function Un(){return null}function Wn(e,t){if(e!=null){let t=qe.getState().playback.recording?.streamingPlayback;if(t)return!!t.getDataBlockData(e)?.emap}if(t){let e=qe.getState().runtime.runtime;if(e)return!!e.state.datablocks.get(t)?.emap}return!1}function Gn(e){if(e==null)return!1;let t=qe.getState().playback.recording?.streamingPlayback;return t?!!t.getDataBlockData(e)?.emap:!1}var $=r(),Kn=null;function qn(){return Kn||(Kn=ze(Ve(`special/cloakTexture`)),Kn.wrapS=O,Kn.wrapT=O,Kn.colorSpace=``),Kn}var Jn=0,Yn=0,Xn=-1;function Zn(e){e!==Xn&&(Xn=e,Jn=(Jn+1)%128,Yn=(Yn+1)%127,qn().offset.set(Jn/127,Yn/126))}var Qn=[0,Math.PI/2,0],$n=Ue(`GenericShape`);function er(e){let t=(0,Q.c)(20),{shapeName:n,imageDataBlockId:r,entityId:i,shapeType:a,skinName:o}=e,s=a===void 0?`StaticShape`:a,c=nr(n),l;t[0]===r?l=t[1]:(l=Gn(r),t[0]=r,t[1]=l);let u=l,d;if(t[2]!==c.animations||t[3]!==c.scene){bb0:{let e=Ae(c.scene,c.animations,`Mountpoint`);if(!e){d=null;break bb0}let n=e.quaternion.clone().invert(),r=e.position.clone().negate().applyQuaternion(n),i;t[5]!==r||t[6]!==n?(i={position:r,quaternion:n},t[5]=r,t[6]=n,t[7]=i):i=t[7],d=i}t[2]=c.animations,t[3]=c.scene,t[4]=d}else d=t[4];let f=d,p=f?.position,m=f?.quaternion,h;t[8]!==u||t[9]!==i||t[10]!==o?(h=(0,$.jsx)(ar,{emap:u,entityId:i,skinName:o,noRotation:!0}),t[8]=u,t[9]=i,t[10]=o,t[11]=h):h=t[11];let g;t[12]!==p||t[13]!==m||t[14]!==h?(g=(0,$.jsx)(`group`,{position:p,quaternion:m,children:h}),t[12]=p,t[13]=m,t[14]=h,t[15]=g):g=t[15];let _;return t[16]!==n||t[17]!==s||t[18]!==g?(_=(0,$.jsx)(Le,{shapeName:n,type:s,children:g}),t[16]=n,t[17]=s,t[18]=g,t[19]=_):_=t[19],_}function tr(){let{recording:e}=qe.getState().playback;return e==null?performance.now()/1e3:Ke()/1e3}function nr(e){let t=(0,Q.c)(2),n;return t[0]===e?n=t[1]:(n=Be(e),t[0]=e,t[1]=n),zn(n)}function rr(e){let t=(0,Q.c)(9),{color:n,label:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`boxGeometry`,{args:[10,10,10]}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(`meshStandardMaterial`,{color:n,wireframe:!0}),t[1]=n,t[2]=a);let o;t[3]!==n||t[4]!==r?(o=r?(0,$.jsx)($e,{color:n,children:r}):null,t[3]=n,t[4]=r,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,$.jsxs)(`mesh`,{children:[i,a,o]}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function ir(e){let t=(0,Q.c)(4),{color:n,label:r}=e,{debugMode:i}=l(),a;return t[0]!==n||t[1]!==i||t[2]!==r?(a=i?(0,$.jsx)(rr,{color:n,label:r}):null,t[0]=n,t[1]=i,t[2]=r,t[3]=a):a=t[3],a}var ar=(0,Y.memo)(function(e){let t=(0,Q.c)(24),{loadingColor:n,streamEntity:r,emap:i,entityId:a,children:o,mounted:s,noRotation:c,skinName:l,lightConfig:u}=e,d=n===void 0?`yellow`:n,{shapeName:f}=Re();if(!f){let e=`${a}: <missing>`,n;return t[0]===e?n=t[1]:(n=(0,$.jsx)(ir,{color:`orange`,label:e}),t[0]=e,t[1]=n),n}let p=`${a}: ${f}`,m;t[2]===p?m=t[3]:(m=(0,$.jsx)(ir,{color:`red`,label:p}),t[2]=p,t[3]=m);let h;t[4]===f?h=t[5]:(h=e=>{$n.error(`Shape error: %s: %o`,f,e)},t[4]=f,t[5]=h);let g;t[6]===d?g=t[7]:(g=(0,$.jsx)(rr,{color:d}),t[6]=d,t[7]=g);let _;t[8]!==o||t[9]!==i||t[10]!==a||t[11]!==u||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==r?(_=(0,$.jsx)(sr,{streamEntity:r,emap:i,entityId:a,mounted:s,noRotation:c,skinName:l,lightConfig:u,children:o}),t[8]=o,t[9]=i,t[10]=a,t[11]=u,t[12]=s,t[13]=c,t[14]=l,t[15]=r,t[16]=_):_=t[16];let v;t[17]!==g||t[18]!==_?(v=(0,$.jsx)(Y.Suspense,{fallback:g,children:_}),t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;return t[20]!==m||t[21]!==h||t[22]!==v?(y=(0,$.jsx)(wt,{fallback:m,onError:h,children:v}),t[20]=m,t[21]=h,t[22]=v,t[23]=y):y=t[23],y}),or=(0,Y.memo)(function({gltf:e,streamEntity:t,emap:n,entityId:r,children:o,mounted:s,noRotation:u,skinName:d,lightConfig:p}){let{object:m,shapeName:h}=Re(),{debugMode:g}=l(),{animationEnabled:_}=c(),v=Ge(e=>e.runtime.runtime),y=Ye(),{clonedScene:b,mixer:x,clipsByName:S,morphClipsBySeq:C,visNodesBySequence:w,iflMeshes:T}=(0,Y.useMemo)(()=>{let t=lt(e.scene),r=[];t.traverse(e=>{if(!e.isMesh||!e.material)return;let t=Array.isArray(e.material)?e.material[0]:e.material;if(!t?.userData)return;let n=new Set(t.userData.flag_names??[]),i=t.userData.resource_path;if(n.has(`IflMaterial`)&&i){let t=e.userData,a=t?.ifl_sequence?String(t.ifl_sequence).toLowerCase():void 0,o=t?.ifl_duration?Number(t.ifl_duration):void 0,s=t?.ifl_sequence?!!t.ifl_cyclic:void 0,c=t?.ifl_tool_begin==null?void 0:Number(t.ifl_tool_begin);r.push({mesh:e,iflPath:`textures/${i}.ifl`,hasVisSequence:!!t?.vis_sequence,repeat:n.has(`SWrap`)||n.has(`TWrap`),iflSequence:a,iflDuration:o,iflCyclic:s,iflToolBegin:c})}}),Pe(t,h??void 0,{anisotropy:y,emap:n,skinName:d});for(let{mesh:e,hasVisSequence:t}of r)t||(e.visible=!0);let i=new Map;t.traverse(e=>{if(!e.isMesh)return;let t=e.userData;if(!t)return;let n=(t,n,r,a)=>{if(!t||!Array.isArray(n)||n.length<=1||!r||r<=0)return;let o=i.get(t);o||(o=[],i.set(t,o)),!o.some(t=>t.mesh===e)&&o.push({mesh:e,keyframes:n,duration:r,cyclic:a})};n((t.vis_sequence??``).toLowerCase(),t.vis_keyframes,t.vis_duration,!!t.vis_cyclic);for(let e of Object.keys(t)){let r=e.match(/^vis_keyframes_(.+)$/);if(r){let e=r[1];n(e,t[`vis_keyframes_${e}`],t[`vis_duration_${e}`],!!t[`vis_cyclic_${e}`])}}});let a=new Set,o=t.userData?.dts_sequence_names,s=t.userData?.dts_sequence_blend;if(typeof o==`string`)try{let e=JSON.parse(o),t=typeof s==`string`?JSON.parse(s):[];for(let n=0;n<e.length;n++)t[n]&&a.add(e[n].toLowerCase())}catch{}let c=new Set;if(typeof o==`string`)try{for(let e of JSON.parse(o))c.add(e.toLowerCase())}catch{}let l=new Map,u=new Map;for(let n of e.animations){let e=n.name.toLowerCase();if(e.endsWith(`_frame`)){let t=!1;for(let r of c)if(e.startsWith(r+`_`)&&e.length>r.length+1+5){let e=u.get(r);e||(e=[],u.set(r,e)),e.push(n),t=!0;break}if(t)continue}if(a.has(e)){let r=n.clone(),i=Ne(t,r);ve.makeClipAdditive(r,0,i,30),l.set(e,r)}else l.set(e,n)}return{clonedScene:t,mixer:l.size>0?new me(t):null,clipsByName:l,morphClipsBySeq:u,visNodesBySequence:i,iflMeshes:r}},[e.scene,e.animations,h,y,n,d]);(0,Y.useEffect)(()=>()=>{ke(b),x?.uncacheRoot(b)},[b,x]);let E=(0,Y.useRef)(new Map),D=(0,Y.useRef)(new Map),O=(0,Y.useRef)([]),k=(0,Y.useRef)(0),ee=(0,Y.useRef)(_);ee.current=_;let A=(0,Y.useRef)(null),j=(0,Y.useRef)(t);j.current=t;let M=(0,Y.useRef)(null),N=(0,Y.useRef)(null),P=(0,Y.useRef)(void 0);(0,Y.useEffect)(()=>{O.current=[],D.current.clear();for(let e of T)je(e.iflPath,{repeat:e.repeat}).then(t=>{let n=Array.isArray(e.mesh.material)?e.mesh.material[0]:e.mesh.material;n&&(n.map=t.texture,n.needsUpdate=!0);let r={atlas:t,mat:n,sequenceName:e.iflSequence,sequenceDuration:e.iflDuration,cyclic:e.iflCyclic,toolBegin:e.iflToolBegin};O.current.push(r),D.current.set(e.mesh,t)}).catch(t=>{$n.warn(`Failed to load IFL atlas for %s: %o`,e.iflPath,t)})},[T]);let{seqCyclicByName:F,seqBlendByName:I}=(0,Y.useMemo)(()=>{let t=new Map,n=new Map,r=e.scene.userData?.dts_sequence_names,i=e.scene.userData?.dts_sequence_cyclic,a=e.scene.userData?.dts_sequence_blend;if(typeof r==`string`)try{let e=JSON.parse(r),o=typeof i==`string`?JSON.parse(i):[],s=typeof a==`string`?JSON.parse(a):[];for(let r=0;r<e.length;r++){let i=e[r].toLowerCase();t.set(i,o[r]??!0),s[r]&&n.set(i,!0)}}catch{}return{seqCyclicByName:t,seqBlendByName:n}},[e]);(0,Y.useEffect)(()=>{let e=E.current,t=j.current==null;function n(e){if(e.mesh.visible=!0,e.mesh.material?.isMeshStandardMaterial){let t=e.mesh.material,n=Ie(t,e.mesh.userData?.vis??0);e.mesh.material=n.material}if(e.mesh.material&&!Array.isArray(e.mesh.material)){let t=e.mesh.material.userData??={};t._visOrigTransparent??(t._visOrigTransparent=e.mesh.material.transparent,t._visOrigDepthWrite=e.mesh.material.depthWrite,t._visOrigAlphaTest=e.mesh.material.alphaTest)}let t=D.current.get(e.mesh);t&&e.mesh.material&&!Array.isArray(e.mesh.material)&&(e.mesh.material.map=t.texture,e.mesh.material.needsUpdate=!0)}function r(t,r,a=!0){let o=r.toLowerCase();i(t);let s=S.get(o),c=w.get(o),l={sequence:o,startTime:tr(),forward:a};if(s&&x){let e=x.clipAction(s),t=F.get(o)??!0;t?e.setLoop(ne,1/0):(e.setLoop(f,1),e.clampWhenFinished=!0),I.has(o)&&(e.blendMode=ce),e.timeScale=a?1:-1,e.reset(),a||(e.time=s.duration),e.play(),l.action=e;let n=C.get(o);if(n){l.morphActions=[];for(let e of n){let n=x.clipAction(e);n.setLoop(t?ne:f,t?1/0:1),t||(n.clampWhenFinished=!0),n.timeScale=a?1:-1,n.reset(),a||(n.time=e.duration),n.play(),l.morphActions.push(n)}}}if(c){for(let e of c)n(e);l.visNodes=c}e.set(t,l)}function i(t){let n=e.get(t);if(n){if(n.action&&n.action.stop(),n.morphActions)for(let e of n.morphActions)e.stop();if(n.visNodes){for(let e of n.visNodes)if(e.mesh.material&&!Array.isArray(e.mesh.material)){let t=e.mesh.material;t.opacity=e.keyframes[0],e.mesh.visible=e.keyframes[0]>.01;let n=t.userData;n?._visOrigTransparent!=null&&(t.transparent=n._visOrigTransparent,t.depthWrite=n._visOrigDepthWrite,t.alphaTest=n._visOrigAlphaTest)}}e.delete(t)}}if(M.current=r,N.current=i,x&&S.has(`wheel0`)){let e=[];for(let t=0;t<6;t++){let n={rotation:0},r=S.get(`wheel${t}`);if(r){let e=x.clipAction(r);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),n.wheelAction=e}let i=S.get(`spring${t}`);if(i){let e=x.clipAction(i);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=0,n.springAction=e}let a=S.get(`turn${t}`);if(a){let e=x.clipAction(a);e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0,e.play(),e.time=a.duration*.5,n.turnAction=e}e.push(n)}A.current=e}else A.current=null;if(!t)return()=>{M.current=null,N.current=null,P.current=void 0,A.current=null;for(let t of[...e.keys()])i(t)};let a=[];v&&(a.push(v.$.onMethodCalled(`ShapeBase`,`playThread`,(e,t,n)=>{e._id===m?._id&&r(Number(t),String(n))})),a.push(v.$.onMethodCalled(`ShapeBase`,`stopThread`,(e,t)=>{e._id===m?._id&&i(Number(t))})),a.push(v.$.onMethodCalled(`ShapeBase`,`pauseThread`,(t,n)=>{if(t._id!==m?._id)return;let r=e.get(Number(n));if(r?.action&&(r.action.paused=!0,r.morphActions))for(let e of r.morphActions)e.paused=!0})));for(let[e,t]of[[0,`power`],[1,`ambient`]])(S.has(t)||w.has(t)||C.has(t))&&r(e,t);return()=>{a.forEach(e=>e()),M.current=null,N.current=null,P.current=void 0,A.current=null;for(let t of[...e.keys()])i(t)}},[x,S,w,F,I,m,v]);let L=(0,Y.useMemo)(()=>{let t=e.scene.userData?.dts_sequence_names;if(typeof t==`string`)try{return JSON.parse(t).map(e=>e.toLowerCase())}catch{}return e.animations.map(e=>e.name.toLowerCase())},[e]);i((e,t)=>{let n=E.current,r=j.current!=null,i=qe.getState().playback,a=r?i.status===`playing`?t*i.rate:0:t,o=j.current?.threads,s=P.current;if(o!==s){let e=M.current,t=N.current;if(e&&t){P.current=o;let r=[];if(o)for(let e of o)r[e.index]=e;let i=[];if(s)for(let e of s)i[e.index]=e;let a=Math.max(r.length,i.length);for(let o=0;o<a;o++){let a=r[o],s=i[o];if(a){if(!(!s||s.sequence!==a.sequence||s.state!==a.state||s.forward!==a.forward||s.atEnd!==a.atEnd))continue;let r=L[a.sequence];if(!r)continue;if(a.state===1)t(o);else if(a.state===2){let e=n.get(o);if(e?.action&&(e.action.paused=!0,e.morphActions))for(let t of e.morphActions)t.paused=!0}else if(a.atEnd){let t=n.get(o);if((!t||t.sequence!==r)&&(e(o,r,a.forward),t=n.get(o)),t?.action){let e=t.action.getClip();if(t.action.time=a.forward?e.duration:0,t.action.timeScale=1,t.action.setLoop(f,1),t.action.clampWhenFinished=!0,t.action.paused=!0,t.morphActions)for(let e of t.morphActions){let t=e.getClip();e.time=a.forward?t.duration:0,e.timeScale=1,e.setLoop(f,1),e.clampWhenFinished=!0,e.paused=!0}}if(t?.visNodes)for(let e of t.visNodes){let t=e.mesh.material;if(!t||Array.isArray(t))continue;let n=a.forward?e.keyframes.length-1:0;t.opacity=e.keyframes[n],e.mesh.visible=t.opacity>.01}}else{let t=n.get(o);if(!t||t.sequence!==r||t.forward!==a.forward)e(o,r,a.forward);else if(t?.action?.paused&&(t.action.paused=!1,t.action.timeScale=a.forward?1:-1,t.morphActions))for(let e of t.morphActions)e.paused=!1,e.timeScale=a.forward?1:-1}}else s&&t(o)}}}x&&_&&x.update(a);for(let[,e]of n)if(e.visNodes)for(let{mesh:t,keyframes:n,duration:r,cyclic:i}of e.visNodes){let a=t.material;if(!a||Array.isArray(a))continue;if(!_){a.opacity=n[0],t.visible=a.opacity>.01;continue}let o=tr()-e.startTime,s;s=i?(o%r+r)%r/r:e.forward?Math.min(o/r,1):Math.max(1-o/r,0);let c=n.length,l=s*(c-1),u=Math.min(Math.floor(l),c-1),d=Math.min(u+1,c-1),f=l-u;a.opacity=n[u]+(n[d]-n[u])*f,t.visible=a.opacity>.01;let p=a.userData;a.opacity>=.99?p?._visOrigTransparent!=null&&(a.transparent!==p._visOrigTransparent&&(a.transparent=p._visOrigTransparent,a.needsUpdate=!0),a.depthWrite=p._visOrigDepthWrite,a.alphaTest=p._visOrigAlphaTest):a.transparent||(a.transparent=!0,a.depthWrite=!1,a.alphaTest=0,a.needsUpdate=!0)}let c=j.current?.damageState??0,l=w.get(`visibility`);if(l){let e=c>=2?1:0;for(let{mesh:t,keyframes:n}of l){let r=t.material;if(!r||Array.isArray(r))continue;let i=n.length;r.opacity=n[Math.min(Math.floor(e*i),i-1)],t.visible=r.opacity>.01}}let u=A.current;if(u&&_){let e=j.current,t=e?.wheels,n=e?.steeringYaw??0,r=e?.maxSteeringAngle??.3;for(let e=0;e<u.length;e++){let i=u[e],o=t?.[e];if(i.wheelAction&&o&&(i.rotation+=o.speed*a*Math.PI*2,i.rotation-=Math.floor(i.rotation),i.wheelAction.time=i.rotation*i.wheelAction.getClip().duration),i.turnAction){let e=.5-n*Math.abs(n)/r*.5;i.turnAction.time=Math.max(0,Math.min(1,e))*i.turnAction.getClip().duration}}}let d=O.current;if(d.length>0){k.current+=a;for(let e of d){let t=(e,t)=>{Oe(e.atlas,t),e.atlas.swapMode&&e.mat.map!==e.atlas.texture&&(e.mat.map=e.atlas.texture,e.mat.needsUpdate=!0)},r=0;if(_){let t=0;if(e.sequenceName&&e.sequenceDuration){for(let[,r]of n)if(r.sequence===e.sequenceName){let n=tr()-r.startTime,i=e.sequenceDuration;t=(e.cyclic?n/i%1:Math.min(n/i,1))*i+(e.toolBegin??0);break}}else t=k.current;r=Me(e.atlas,t)}t(e,r)}}});let z=(0,Y.useRef)(1),te=(0,Y.useRef)(0);i(e=>{let t=j.current,n=t?.fadeVal??1,r=t?.cloakLevel??0,i=r>0;if(i&&Zn(e.frameloop===`never`?0:e.clock.elapsedTime*60|0),n===z.current&&r===te.current)return;z.current=n,te.current=r;let a=i?.125+(1-r)*.875:n,o=i?qn():Kn;b.traverse(e=>{if(!e.isMesh||!e.material||Array.isArray(e.material))return;let t=e.material,n=t.userData??={};n._baseFadeOpacity??(n._baseFadeOpacity=t.opacity??1,n._baseFadeTransparent=t.transparent??!1,n._originalMap=t.map,n._isOriginallyTranslucent=n._baseFadeTransparent||t.alphaTest>0||t.blending!==1);let r=n._baseFadeOpacity;i&&!n._isOriginallyTranslucent?t.map!==o&&(t.map=o,t.needsUpdate=!0):!i&&n._originalMap!==void 0&&t.map===o&&(t.map=n._originalMap,t.needsUpdate=!0),t.opacity=a*r,t.transparent=a<1||n._baseFadeTransparent,t.depthWrite=a>=1&&!n._baseFadeTransparent})}),Vn(j,b);let B=at(r??``),V=(0,Y.useMemo)(()=>{if(!B)return null;let t=new re().setFromObject(e.scene),n=new R,r=new R;return t.getCenter(n),t.getSize(r),{center:[n.x,n.y,n.z],size:[r.x,r.y,r.z]}},[B,e.scene]),U=(0,Y.useMemo)(()=>{let e={};return b.traverse(t=>{let n=t.name.match(/^Mount(\d+)$/);n&&(e[Number(n[1])]=t)}),Object.keys(e).length>0?e:null},[b]),W=(0,Y.useMemo)(()=>{let e=null;return b.traverse(t=>{t.name===`Eye`&&(e=t)}),e},[b]);(0,Y.useEffect)(()=>{if(!(!W||!r))return()=>{yr.delete(r)}},[W,r]),i(()=>{if(!W||!r)return;let e=yr.get(r);e||(e=new R,yr.set(r,e)),W.getWorldPosition(e),b.worldToLocal(e);let t=e.x,n=e.y,i=e.z;e.set(i,n,-t)});let G=(0,Y.useRef)(null),K=(0,Y.useMemo)(()=>{let t=p;if(!t)return null;let n=new re().setFromObject(e.scene),r=new R;return n.getCenter(r),{type:t.type,color:new H(t.color[0],t.color[1],t.color[2]),time:t.time,radius:t.radius,onlyStatic:t.onlyStatic,isStatic:t.isStatic,center:[r.x,r.y,r.z]}},[e.scene,p]);return i(()=>{if(!G.current||!K)return;if(K.onlyStatic&&!K.isStatic){G.current.intensity=0;return}let e=j.current?.fadeVal??1,t=tr()*1e3,n;n=K.type===2?(.15+(.5+.5*Math.sin(Math.PI*t/K.time))*.85)*e:e,G.current.intensity=n*K.radius*K.radius}),(0,$.jsxs)(`group`,{rotation:u?void 0:Qn,children:[(0,$.jsx)(`primitive`,{object:b}),K&&(0,$.jsx)(`pointLight`,{ref:G,color:K.color,position:K.center,intensity:0,distance:K.radius*2,decay:1}),g?(0,$.jsxs)($e,{children:[r,`: `,h]}):null,V&&(0,$.jsx)(`group`,{position:V.center,children:(0,$.jsx)(ot,{size:V.size})}),o,U&&s&&Object.entries(s).map(([e,t])=>{let n=U[Number(e)];return n?(0,$.jsx)(Y.Fragment,{children:a((0,$.jsx)(`group`,{children:t}),n)},e):null})]})});function sr(e){let t=(0,Q.c)(10),{streamEntity:n,emap:r,entityId:i,children:a,mounted:o,noRotation:s,skinName:c,lightConfig:l}=e,{shapeName:u}=Re(),d=nr(u),f;return t[0]!==a||t[1]!==r||t[2]!==i||t[3]!==d||t[4]!==l||t[5]!==o||t[6]!==s||t[7]!==c||t[8]!==n?(f=(0,$.jsx)(or,{gltf:d,streamEntity:n,emap:r,entityId:i,mounted:o,noRotation:s,skinName:c,lightConfig:l,children:a}),t[0]=a,t[1]=r,t[2]=i,t[3]=d,t[4]=l,t[5]=o,t[6]=s,t[7]=c,t[8]=n,t[9]=f):f=t[9],f}var cr=Ue(`ShapeErrorBoundary`),lr=class extends Y.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){cr.error(`Shape load failed: %s %s`,e.message,t.componentStack)}render(){return this.state.hasError?this.props.fallback:this.props.children}},ur={Root:`_Root_1i0cm_1`,Top:`_Top_1i0cm_10 _Root_1i0cm_1`,Bottom:`_Bottom_1i0cm_15 _Root_1i0cm_1`,IffArrow:`_IffArrow_1i0cm_20`,Name:`_Name_1i0cm_27`,HealthBar:`_HealthBar_1i0cm_35`,HealthFill:`_HealthFill_1i0cm_44`},dr=150,fr=.1,pr=-.2,mr=Ve(`gui/hud_alliedtriangle`),hr=Ve(`gui/hud_enemytriangle`),gr=[];function _r(e){let t=(0,Q.c)(23),{entity:n}=e,r=nr(n.shapeName),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={fadeDistance:dr},t[0]=a):a=t[0];let{groupRef:o,isVisible:c,opacityRef:l}=rt(a),u=(0,Y.useRef)(null),d=(0,Y.useRef)(null),f=(0,Y.useRef)(null),p=(0,Y.useRef)(null),m=(0,Y.useRef)(null),h;t[1]===r.scene?h=t[2]:(h=new re().setFromObject(r.scene),t[1]=r.scene,t[2]=h);let g=h.max.y+fr,_=n.keyframes??gr,v;t[3]===_?v=t[4]:(v=_.some(vr),t[3]=_,t[4]=v);let y=v,b;t[5]!==n.id||t[6]!==n.iffColor||t[7]!==n.playerName||t[8]!==y||t[9]!==c||t[10]!==_||t[11]!==l?(b=()=>{if(!c)return;let e=Fe(_,ct.getState().time),t=e?.health??1;if(e?.damageState!=null&&e.damageState>=1){u.current&&(u.current.style.opacity=`0`),d.current&&(d.current.style.opacity=`0`);return}let r=l.current;if(u.current&&(u.current.style.opacity=r),d.current&&(d.current.style.opacity=r),m.current){let e=n.playerName??n.id;m.current.textContent!==e&&(m.current.textContent=e)}if(p.current&&n.iffColor){let e=n.iffColor.r>n.iffColor.g?hr:mr;p.current.getAttribute(`src`)!==e&&(p.current.src=e)}f.current&&y&&(f.current.style.width=`${Math.max(0,Math.min(100,t*100))}%`,f.current.style.background=n.iffColor?`rgb(${n.iffColor.r}, ${n.iffColor.g}, ${n.iffColor.b})`:``)},t[5]=n.id,t[6]=n.iffColor,t[7]=n.playerName,t[8]=y,t[9]=c,t[10]=_,t[11]=l,t[12]=b):b=t[12],i(b);let x=n.iffColor&&n.iffColor.r>n.iffColor.g?hr:mr,S;t[13]!==n.id||t[14]!==n.playerName||t[15]!==y||t[16]!==g||t[17]!==x||t[18]!==c?(S=c&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(s,{position:[0,g,0],center:!0,children:(0,$.jsx)(`div`,{ref:u,className:ur.Top,children:(0,$.jsx)(`img`,{ref:p,className:ur.IffArrow,src:x,alt:``})})}),(0,$.jsx)(s,{position:[0,pr,0],center:!0,children:(0,$.jsxs)(`div`,{ref:d,className:ur.Bottom,children:[(0,$.jsx)(`div`,{ref:m,className:ur.Name,children:n.playerName??n.id}),y&&(0,$.jsx)(`div`,{className:ur.HealthBar,children:(0,$.jsx)(`div`,{ref:f,className:ur.HealthFill})})]})})]}),t[13]=n.id,t[14]=n.playerName,t[15]=y,t[16]=g,t[17]=x,t[18]=c,t[19]=S):S=t[19];let C;return t[20]!==o||t[21]!==S?(C=(0,$.jsx)(`group`,{ref:o,children:S}),t[20]=o,t[21]=S,t[22]=C):C=t[22],C}function vr(e){return e.health!=null}var yr=new Map,br=`https://assets.tribes2.online/skins/files/`,xr=`https://assets.tribes2.online/skins/manifest.json`,Sr={"light_male.dts":`lmale`,"light_female.dts":`lfemale`,"medium_male.dts":`mmale`,"medium_female.dts":`mfemale`,"heavy_male.dts":`hmale`,"bioderm_light.dts":`lbioderm`,"bioderm_medium.dts":`mbioderm`,"bioderm_heavy.dts":`hbioderm`},Cr=[`customSkinManifest`];async function wr(){let e=await fetch(xr);if(!e.ok)throw Error(`${e.status}`);let t=await e.json(),n={};if(t.customSkins)for(let[e,r]of Object.entries(t.customSkins))n[e]=new Set(r);return n}function Tr(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:Cr,queryFn:wr,staleTime:1/0,retry:1},e[0]=t):t=e[0],d(t)}var Er=8,Dr=[`root`,`run`,`back`,`side`,`fall`,`jet`,`jump`,`land`];function Or(e,t,n=0){let r=new Map,i=[];for(let n of e){let e=n.indexOf(` `);if(e===-1)continue;let r=n.slice(0,e).toLowerCase(),a=n.slice(e+1).trim().toLowerCase();if(!a||!r.startsWith(t)||!r.endsWith(`.dsq`))continue;let o=r.slice(t.length,-4);o&&i.push({clipName:o,alias:a})}let a=new Set;for(let e=0;e<Dr.length;e++){let t=Dr[e];for(let n=0;n<i.length;n++)if(i[n].alias===t){a.add(n),r.set(e,i[n]);break}}let o=Er+n;for(let e=0;e<i.length;e++)a.has(e)||(r.set(o,i[e]),o++);return r}var kr=new Set(Dr);function Ar(e,t,n){let r=e.userData?.dts_sequence_names;if(typeof r!=`string`)return 0;let i;try{i=JSON.parse(r)}catch{return 0}if(!Array.isArray(i)||i.length===0)return 0;let a=new Set;for(let e of t){let t=e.indexOf(` `);if(t===-1)continue;let r=e.slice(0,t).toLowerCase();if(!r.startsWith(n)||!r.endsWith(`.dsq`))continue;let i=r.slice(n.length,-4);i&&a.add(i)}let o=0;for(let e of i){if(a.has(e.toLowerCase()))break;kr.has(e.toLowerCase())||o++}return o}function jr(e,t,n){let r=e.current;if(r){tt(r);try{r.stop()}catch{}try{r.disconnect()}catch{}n?.remove(r),e.current=null,t.current=-1}}function Mr({entity:e}){let t=We(),n=e.shapeName,r=nr(n),o=Ge(e=>{let t=n?.toLowerCase();return t?e.runtime.sequenceAliases.get(t):void 0}),s=Ye(),l=Ge(e=>e.playback.streamSnapshot?.controlPlayerGhostId),{data:d}=Tr(),p=(0,Y.useMemo)(()=>{let t=e.skinPrefName??e.skinName;if(!t||t===`base`)return;let r=Sr[n.toLowerCase()];if(r){try{return Ve(`skins/${t}.${r}`,null)}catch{}if(d?.[r]?.has(t))return`${br}${t}.${r}.png`}},[e.skinPrefName,e.skinName,n,d]),m=(0,Y.useMemo)(()=>Wn(e.dataBlockId,e.dataBlock),[e.dataBlockId,e.dataBlock]),{clonedScene:h,mixer:g,mount0:_,mount1:v,mount2:y,eyeBone:b,iflInitializers:x}=(0,Y.useMemo)(()=>{let e=lt(r.scene),t=Pe(e,void 0,{anisotropy:s,emap:m,skinUrl:p});e.traverse(e=>{if(e.isMesh&&(e.frustumCulled=!1,e.material)){let t=Array.isArray(e.material)?e.material:[e.material];for(let e of t)e.side=0}});let n=new me(e),i=null,a=null,o=null,c=null;return e.traverse(e=>{!i&&e.name===`Mount0`&&(i=e),!a&&e.name===`Mount1`&&(a=e),!o&&e.name===`Mount2`&&(o=e),!c&&e.name===`Eye`&&(c=e)}),{clonedScene:e,mixer:n,mount0:i,mount1:a,mount2:o,eyeBone:c,iflInitializers:t}},[r.scene,s,m,p]);(0,Y.useEffect)(()=>()=>{yr.delete(e.id),ke(h),g.uncacheRoot(h)},[h,g]);let S=(0,Y.useRef)(new Map),C=(0,Y.useRef)({head:null,headside:null}),w=(0,Y.useRef)(new Map),T=(0,Y.useRef)(null),E=(0,Y.useRef)({name:`root`,timeScale:1}),D=(0,Y.useRef)(!1),O=(0,Y.useRef)(void 0),k=(0,Y.useMemo)(()=>{let e=t.getState().playback.recording?.streamingPlayback,i=n?.toLowerCase();if(!e||!i)return new Map;let a=e.getShapeConstructorSequences(i);if(!a)return new Map;let o=i.replace(/\.dts$/i,``)+`_`;return Or(a,o,Ar(r.scene,a,o))},[t,n,r.scene]),ee=(0,Y.useMemo)(()=>{let e=new Map,t=r.scene.userData?.dts_sequence_names,n=r.scene.userData?.dts_sequence_cyclic;if(typeof t==`string`&&typeof n==`string`)try{let r=JSON.parse(t),i=JSON.parse(n),a=new Map;for(let e=0;e<r.length;e++)a.set(r[e].toLowerCase(),i[e]??!0);if(o)for(let[t,n]of o){let r=a.get(n);r!=null&&e.set(t,r)}for(let[t,n]of a)e.has(t)||e.set(t,n)}catch{}return e},[r.scene,o]);(0,Y.useEffect)(()=>{let e=Je(r.animations,g,o);S.current=e;let t=e.get(`root`);t&&t.play(),E.current={name:`root`,timeScale:1};let n={head:null,headside:null};for(let{key:e,names:t}of[{key:`head`,names:[`head`]},{key:`headside`,names:[`headside`]}]){let i=r.animations.find(e=>t.includes(e.name.toLowerCase()));if(!i)continue;let a=i.clone(),o=Math.round(i.duration*30/2);ve.makeClipAdditive(a,o,i,30);let s=g.clipAction(a);s.blendMode=ce,s.timeScale=0,s.weight=1,s.play(),n[e]=s}C.current=n;let i=r.animations.find(e=>e.name.toLowerCase()===`root`);if(i){let e=new Set;for(let t of r.animations){let n=t.name.toLowerCase();if([`forward`,`back`,`side`,`fall`].includes(n))for(let n of t.tracks)e.add(n.name.slice(0,n.name.lastIndexOf(`.`)))}let t=i.tracks.filter(t=>{let n=t.name.slice(0,t.name.lastIndexOf(`.`));return!e.has(n)});if(t.length>0){let e=new B(`root_arms`,i.duration,t);g.clipAction(e).play()}}let a=new Map,s=r.scene.userData?.dts_sequence_names,c=r.scene.userData?.dts_sequence_blend;if(typeof s==`string`&&typeof c==`string`)try{let e=JSON.parse(s),t=JSON.parse(c);for(let n=0;n<e.length;n++){if(!t[n])continue;let i=e[n].toLowerCase();if(i===`head`||i===`headside`)continue;let o=r.animations.find(e=>e.name.toLowerCase()===i);if(!o)continue;let s=o.clone(),c=Ne(r.scene,s);ve.makeClipAdditive(s,0,c,30);let l=g.clipAction(s);l.blendMode=ce,l.timeScale=0,l.weight=0,l.play(),a.set(i,l)}}catch{}w.current=a;let l=a.get(`lookde`);return l&&(l.weight=1,T.current=`lookde`),g.update(0),()=>{g.stopAllAction(),S.current=new Map,C.current={head:null,headside:null},w.current=new Map,T.current=null}},[g,r.animations,o]),(0,Y.useEffect)(()=>{let e=[];for(let{mesh:t,initialize:n}of x)n(t,()=>ct.getState().time).then(t=>e.push(t)).catch(()=>{});return()=>e.forEach(e=>e())},[x]);let A=t=>e.imageSlots?.[t]?.shapeName,j=(0,Y.useRef)(A(0)),[M,N]=(0,Y.useState)(A(0)),P=(0,Y.useRef)(A(2)),[F,I]=(0,Y.useState)(A(2)),L=(0,Y.useRef)(A(3)),[z,te]=(0,Y.useState)(A(3)),V=(0,Y.useRef)(e);V.current=e,Vn(V,h);let{audioLoader:H,audioListener:U}=Qe(),{audioEnabled:W}=c(),G=(0,Y.useRef)(null),K=(0,Y.useRef)(null),re=(0,Y.useRef)(null);return(0,Y.useEffect)(()=>{if(!H)return;let n=t.getState().playback.recording?.streamingPlayback;if(!n||!e.dataBlockId)return;let r=n.getDataBlockData.bind(n),i=r(e.dataBlockId)?.sounds?.[0];if(i==null)return;let a=nt(i,r);if(a){re.current=a;try{it(He(a.filename),H,e=>{K.current=e})}catch{}}},[H,t,e.dataBlockId]),(0,Y.useEffect)(()=>()=>{let e=G.current;if(e){tt(e);try{e.stop()}catch{}try{e.disconnect()}catch{}e.parent?.remove(e),G.current=null}},[]),i((n,r)=>{let i=A(0);i!==j.current&&(j.current=i,N(i));let a=A(2);a!==P.current&&(P.current=a,I(a));let o=A(3);o!==L.current&&(L.current=o,te(o));let s=t.getState().playback,c=s.status===`playing`,l=ct.getState().time,d=Fe(e.keyframes??[],l),p=d?.damageState!=null&&d.damageState>=1,m=S.current;if(p&&!D.current){D.current=!0;let e=d.actionAnim==null?void 0:k.get(d.actionAnim);if(e){let t=m.get(e.clipName);if(t){let n=m.get(E.current.name.toLowerCase());n&&n.fadeOut(J),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(J).play(),E.current={name:e.clipName,timeScale:1},O.current=d.actionAnim}}}if(!p&&D.current){D.current=!1,O.current=void 0;let e=m.get(E.current.name.toLowerCase());e&&(e.stop(),e.setLoop(ne,1/0),e.clampWhenFinished=!1),E.current={name:`root`,timeScale:1};let t=m.get(`root`);t&&t.reset().play()}let _=d?.actionAnim,v=O.current;if(!D.current&&_!==v){O.current=_;let e=_!=null&&_>=Er,t=v!=null&&v>=Er;if(e){let e=k.get(_);if(e){let t=m.get(e.clipName);if(t){let n=m.get(E.current.name.toLowerCase());n&&n.fadeOut(J),t.setLoop(f,1),t.clampWhenFinished=!0,t.reset().fadeIn(J).play(),E.current={name:e.clipName,timeScale:1}}}}else if(t){let e=k.get(v);if(e){let t=m.get(e.clipName);t&&(t.fadeOut(J),t.setLoop(ne,1/0),t.clampWhenFinished=!1)}E.current={name:`root`,timeScale:1};let t=m.get(`root`);t&&t.reset().fadeIn(J).play()}}if(_!=null&&_>=Er&&d?.actionAtEnd){let e=k.get(_);if(e){let t=m.get(e.clipName);t&&(t.paused=!0)}}let y=O.current!=null&&O.current>=Er;if(!D.current&&!y){let t=mt(d?.velocity,d?.rotation??[0,0,0,1],e.falling,e.jetting),n=E.current;if(t.animation!==n.name||t.timeScale!==n.timeScale){let e=m.get(n.name.toLowerCase()),r=m.get(t.animation.toLowerCase());r&&(ee.get(t.animation)??!0?(r.setLoop(ne,1/0),r.clampWhenFinished=!1):(r.setLoop(f,1),r.clampWhenFinished=!0),c&&e&&e!==r?(e.fadeOut(J),r.reset().fadeIn(J).play()):(e&&e!==r&&e.stop(),r.reset().play()),r.timeScale=t.timeScale,E.current={name:t.animation,timeScale:t.timeScale})}}let x=(e.armAction==null?void 0:k.get(e.armAction))?.clipName??`lookde`;if(x!==T.current){let e=w.current,t=T.current?e.get(T.current):null,n=e.get(x);n&&(t&&(t.weight=0),n.weight=p?0:1,T.current=x)}let{head:M,headside:F}=C.current,z=T.current?w.current.get(T.current):null,B=p?0:1,V=e.headPitch??0,H=e.headYaw??0,ie=(V+1)/2,ae=(H+1)/2;z&&(z.time=ie*z.getClip().duration,z.weight=B),M&&(M.time=ie*M.getClip().duration,M.weight=B),F&&(F.time=ae*F.getClip().duration,F.weight=B);let oe=!!e.jetting&&!p,se=re.current,ce=G.current,le=ce?.isPlaying??!1;if(oe&&!le){if(W&&U&&K.current&&se){let e=ce;e||(e=new we(U),e.setDistanceModel(`inverse`),e.setRefDistance(se.refDist),e.setMaxDistance(se.maxDist),e.setRolloffFactor(1),e.setVolume(se.volume),h.add(e),G.current=e);try{e.setBuffer(K.current),e.setLoop(!0),e.setPlaybackRate(u()),e.play(),Ze(e,1)}catch{}}}else if(!oe&&le&&ce){tt(ce);try{ce.stop()}catch{}}if(c?g.update(r*s.rate):g.update(0),b){let t=yr.get(e.id);t||(t=new R,yr.set(e.id,t)),b.getWorldPosition(t),h.worldToLocal(t);let n=t.x,r=t.y,i=t.z;t.set(i,r,-n)}}),(0,$.jsxs)($.Fragment,{children:[e.id!==l&&(0,$.jsx)(_r,{entity:e}),(0,$.jsxs)(`group`,{rotation:[0,Math.PI/2,0],children:[(0,$.jsx)(`primitive`,{object:h}),(0,$.jsx)(Nr,{entityId:e.id,scene:r.scene})]}),M&&_&&(0,$.jsx)(lr,{fallback:(0,$.jsx)(rr,{color:`red`,label:M}),children:(0,$.jsx)(st,{name:`Weapon:${e.id}/${M}`,fallback:(0,$.jsx)(rr,{color:`cyan`,label:M}),children:(0,$.jsx)(Fr,{entity:e,weaponShape:M,mount0:_})})},M),F&&v&&a((0,$.jsx)(Y.Suspense,{children:(0,$.jsx)(er,{shapeName:F,imageDataBlockId:e.imageSlots?.[2]?.dataBlockId,entityId:e.id})}),v),z&&y&&a((0,$.jsx)(Y.Suspense,{children:(0,$.jsx)(er,{shapeName:z,imageDataBlockId:e.imageSlots?.[3]?.dataBlockId,entityId:e.id,skinName:e.imageSlots?.[3]?.skinName})}),y)]})}function Nr(e){let t=(0,Q.c)(19),{entityId:n,scene:r}=e,i=at(n),a;bb0:{if(!i){a=null;break bb0}let e,n;if(t[0]!==r){let i=new re().setFromObject(r);e=new R,n=new R,i.getCenter(e),i.getSize(n),t[0]=r,t[1]=e,t[2]=n}else e=t[1],n=t[2];let o;t[3]!==e.x||t[4]!==e.y||t[5]!==e.z?(o=[e.x,e.y,e.z],t[3]=e.x,t[4]=e.y,t[5]=e.z,t[6]=o):o=t[6];let s=o,c;t[7]!==n.x||t[8]!==n.y||t[9]!==n.z?(c=[n.x,n.y,n.z],t[7]=n.x,t[8]=n.y,t[9]=n.z,t[10]=c):c=t[10];let l=c,u;t[11]!==s||t[12]!==l?(u={center:s,size:l},t[11]=s,t[12]=l,t[13]=u):u=t[13],a=u}let o=a;if(!o)return null;let s;t[14]===o.size?s=t[15]:(s=(0,$.jsx)(ot,{size:o.size}),t[14]=o.size,t[15]=s);let c;return t[16]!==o.center||t[17]!==s?(c=(0,$.jsx)(`group`,{position:o.center,children:s}),t[16]=o.center,t[17]=s,t[18]=c):c=t[18],c}function Pr(e,t){let n=e.userData?.dts_sequence_names;if(typeof n==`string`)try{return JSON.parse(n).map(e=>e.toLowerCase())}catch{}return t.map(e=>e.name.toLowerCase())}function Fr(e){let t=(0,Q.c)(46),{entity:n,weaponShape:r,mount0:a}=e,o=We(),s=nr(r),l=n.imageSlots?.[0]?.dataBlockId,d;t[0]===l?d=t[1]:(d=Gn(l),t[0]=l,t[1]=d);let f=d,p=Ye(),m,h,g,_;if(t[2]!==p||t[3]!==f||t[4]!==s.animations||t[5]!==s.scene){m=lt(s.scene),h=Pe(m,void 0,{anisotropy:p,emap:f});let e=Ae(s.scene,s.animations,`Mountpoint`);if(e){let t=e.quaternion.clone().invert(),n=e.position.clone().negate().applyQuaternion(t);m.position.copy(n),m.quaternion.copy(t)}_=new Map,m.traverse(e=>{if(!e.isMesh)return;let t=(e.userData?.vis_sequence??``).toLowerCase();if(!t)return;let n=_.get(t);n||(n=[],_.set(t,n)),n.push(e)}),g=new me(m),t[2]=p,t[3]=f,t[4]=s.animations,t[5]=s.scene,t[6]=m,t[7]=h,t[8]=g,t[9]=_}else m=t[6],h=t[7],g=t[8],_=t[9];let v=g,y=s.scene,b;t[10]!==y||t[11]!==s.animations?(b=Pr(y,s.animations),t[10]=y,t[11]=s.animations,t[12]=b):b=t[12];let x=b,S;t[13]!==m||t[14]!==h||t[15]!==v||t[16]!==x||t[17]!==_?(S={weaponClone:m,weaponMixer:v,seqIndexToName:x,visNodesBySequence:_,weaponIflInitializers:h},t[13]=m,t[14]=h,t[15]=v,t[16]=x,t[17]=_,t[18]=S):S=t[18];let{weaponClone:C,weaponMixer:w,seqIndexToName:T,visNodesBySequence:E,weaponIflInitializers:D}=S,O,k;t[19]!==C||t[20]!==w?(O=()=>()=>{ke(C),w.uncacheRoot(C)},k=[C,w],t[19]=C,t[20]=w,t[21]=O,t[22]=k):(O=t[21],k=t[22]),(0,Y.useEffect)(O,k);let ee;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(ee=new Map,t[23]=ee):ee=t[23];let A=(0,Y.useRef)(ee),j=(0,Y.useRef)(null),M,N;t[24]!==s.animations||t[25]!==w?(M=()=>{let e=new Map;for(let t of s.animations)e.set(t.name.toLowerCase(),w.clipAction(t));A.current=e;let t=e.get(`spin`);return t&&(t.setLoop(ne,1/0),t.timeScale=0,t.play()),j.current=t??null,w.update(0),()=>{w.stopAllAction(),A.current=new Map,j.current=null,jr(V,H)}},N=[w,s.animations],t[24]=s.animations,t[25]=w,t[26]=M,t[27]=N):(M=t[26],N=t[27]),(0,Y.useEffect)(M,N);let P,F;t[28]===D?(P=t[29],F=t[30]):(P=()=>{let e=[];for(let{mesh:t,initialize:n}of D)n(t,Rr).then(t=>e.push(t)).catch(Lr);return()=>e.forEach(Ir)},F=[D],t[28]=D,t[29]=P,t[30]=F),(0,Y.useEffect)(P,F);let{audioLoader:I,audioListener:L}=Qe(),R=c()?.audioEnabled??!1,z=(0,Y.useRef)(null),te=(0,Y.useRef)(null),B=(0,Y.useRef)(n.weaponImageStates),V=(0,Y.useRef)(null),H=(0,Y.useRef)(-1),U,W;t[31]!==a||t[32]!==C?(U=()=>(a.add(C),()=>{a.remove(C)}),W=[C,a],t[31]=a,t[32]=C,t[33]=U,t[34]=W):(U=t[33],W=t[34]),(0,Y.useEffect)(U,W);let G;return t[35]!==R||t[36]!==L||t[37]!==I||t[38]!==o||t[39]!==n.weaponImageState||t[40]!==n.weaponImageStates||t[41]!==T||t[42]!==E||t[43]!==C||t[44]!==w?(G=(e,t)=>{let r=o.getState().playback,i=r.status===`playing`,a=A.current,s=n.weaponImageState,c=n.weaponImageStates;c!==B.current&&(B.current=c,c&&c.length>0?z.current=new xt(c,T):z.current=null,te.current=null,jr(V,H,C)),!z.current&&c&&c.length>0&&(z.current=new xt(c,T));let l=z.current;if(l&&s&&i){let e=t*r.rate,n=l.tick(e,s);if(zr(n,a,te,E),V.current&&n.stateIndex!==H.current&&jr(V,H,C),R&&I&&L&&n.soundDataBlockIds.length>0){let e=r.recording?.streamingPlayback.getDataBlockData.bind(r.recording.streamingPlayback);if(e)for(let t of n.soundDataBlockIds){let n=nt(t,e);if(n)if(n.isLooping){if(!V.current)try{let e=He(n.filename),t=et();it(e,I,e=>{if(t!==et()||V.current)return;let r=l.stateIndex,i=new we(L);i.setBuffer(e),i.setDistanceModel(`inverse`),i.setRefDistance(n.refDist),i.setMaxDistance(n.maxDist),i.setRolloffFactor(1),i.setVolume(n.volume),i.setPlaybackRate(u()),i.setLoop(!0),C.add(i),Ze(i),i.play(),V.current=i,H.current=r})}catch{}}else Xe(n,L,I,void 0,C)}}j.current&&(j.current.timeScale=n.spinTimeScale)}i?w.update(t*r.rate):w.update(0)},t[35]=R,t[36]=L,t[37]=I,t[38]=o,t[39]=n.weaponImageState,t[40]=n.weaponImageStates,t[41]=T,t[42]=E,t[43]=C,t[44]=w,t[45]=G):G=t[45],i(G),null}function Ir(e){return e()}function Lr(){}function Rr(){return ct.getState().time}function zr(e,t,n,r){let i=e.sequenceName,a=n.current;if(i===a&&!e.transitioned)return;if(i!==a){if(a){let e=r.get(a);if(e)for(let t of e)t.visible=!1}if(i){let e=r.get(i);if(e)for(let t of e)t.visible=!0}}if(!i){if(a){let e=t.get(a);e&&e.fadeOut(J),n.current=null}return}let o=t.get(i);if(o&&(e.transitioned||i!==a)){let r=a?t.get(a):null;if(e.isFiring||e.timeoutValue>0?(o.setLoop(f,1),o.clampWhenFinished=!0):(o.setLoop(ne,1/0),o.clampWhenFinished=!1),e.scaleAnimation&&e.timeoutValue>0){let t=o.getClip().duration;o.timeScale=t>0?t/e.timeoutValue:1}else o.timeScale=e.reverse?-1:1;r&&r!==o?(r.fadeOut(J),o.reset().fadeIn(J).play()):o.reset().play(),n.current=i}}export{lr as a,nr as c,wt as d,lt as f,Cr as i,Wn as l,wr as n,er as o,yr as r,ar as s,Mr as t,zn as u};