@mapvx/web-kit 1.2.0-develop.12 → 1.2.0-develop.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/chunks/{DRACOLoader-B7myelzS.cjs → DRACOLoader-gEI4jG0V.cjs} +2 -2
  2. package/dist/cjs/chunks/{GLTFLoader-Bhlg-PN9.cjs → GLTFLoader-Cd9ix-wY.cjs} +2 -2
  3. package/dist/cjs/chunks/{KTX2Loader-8oVInPCY.cjs → KTX2Loader-Dk2GlCFI.cjs} +2 -2
  4. package/dist/cjs/chunks/{accessibility-DQMGPqEF.cjs → accessibility-C9U1mv_p.cjs} +2 -2
  5. package/dist/cjs/chunks/{back_arrow-BT38PaNs.cjs → back_arrow-tpfWrGJ9.cjs} +2 -2
  6. package/dist/cjs/chunks/{debug-hooks-DDHLlDXD.cjs → debug-hooks-xLx1YP8n.cjs} +2 -2
  7. package/dist/cjs/chunks/{dist-BsZPOLf6.cjs → dist-1oZjernx.cjs} +2 -2
  8. package/dist/cjs/chunks/{dist-CdHuaZdF.cjs → dist-CYGLkXos.cjs} +2 -2
  9. package/dist/cjs/chunks/{dist-Dqt88Zla.cjs → dist-ENDZf7Zh.cjs} +2 -2
  10. package/dist/cjs/chunks/{expression-DOSBosTT.cjs → expression-q70ZQCYv.cjs} +2 -2
  11. package/dist/cjs/chunks/{globe-viewport-CTph-zTi.cjs → globe-viewport-CIe_h8dV.cjs} +2 -2
  12. package/dist/cjs/chunks/{icon-origin-point-BQq_v8fl.cjs → icon-origin-point-D_DBb1gM.cjs} +2 -2
  13. package/dist/cjs/chunks/{meshopt_decoder.module-Xc0iTpWr.cjs → meshopt_decoder.module-B5j8Tze_.cjs} +2 -2
  14. package/dist/cjs/chunks/{repeat_icon-DgZwJHQn.cjs → repeat_icon-F6Q7hnPl.cjs} +2 -2
  15. package/dist/cjs/chunks/{rolldown-runtime-DCHM1mdG.cjs → rolldown-runtime-BOxlEPsq.cjs} +2 -2
  16. package/dist/cjs/chunks/{shader-type-decoder-ClUxS2uC.cjs → shader-type-decoder-B16cQ7H3.cjs} +2 -2
  17. package/dist/cjs/chunks/{styles-ap7q_oUC.cjs → styles-zP5lXn9p.cjs} +2 -2
  18. package/dist/cjs/chunks/{three.module-CZrl_ZUv.cjs → three.module-BHURJnCD.cjs} +2 -2
  19. package/dist/cjs/chunks/{walking-zHHQi5LZ.cjs → walking-CMpmZTw3.cjs} +2 -2
  20. package/dist/cjs/chunks/{webgl-CmboLkDs.cjs → webgl-CJbVWdD9.cjs} +2 -2
  21. package/dist/cjs/chunks/{webgl-device-BXkaCOiH.cjs → webgl-device-D7wKHxQy.cjs} +2 -2
  22. package/dist/cjs/web-kit.cjs +5 -5
  23. package/dist/es/chunks/{DRACOLoader-CNpxxqVh.js → DRACOLoader-r8VXQ8hj.js} +2 -2
  24. package/dist/es/chunks/{GLTFLoader-CbnWtZLU.js → GLTFLoader-IbJ3eCNr.js} +2 -2
  25. package/dist/es/chunks/{KTX2Loader-DA7PMnUh.js → KTX2Loader-DZlQyAGv.js} +2 -2
  26. package/dist/es/chunks/{accessibility-D1G0e3jm.js → accessibility-BldDqm74.js} +2 -2
  27. package/dist/es/chunks/{back_arrow-DOtCNdHS.js → back_arrow-BeeCYF4P.js} +2 -2
  28. package/dist/es/chunks/{debug-hooks-Cd_b4Bki.js → debug-hooks-NzJ2oy3C.js} +2 -2
  29. package/dist/es/chunks/{dist-DXAjwVD1.js → dist-B3-nPsaF.js} +2 -2
  30. package/dist/es/chunks/{dist-CrKfguaO.js → dist-DNNWa2bQ.js} +2 -2
  31. package/dist/es/chunks/{dist-DXRF-lm8.js → dist-DOcsJa1u.js} +2 -2
  32. package/dist/es/chunks/{expression-6f6kc1i6.js → expression-Dpos4VqC.js} +2 -2
  33. package/dist/es/chunks/{globe-viewport-Brth2aT0.js → globe-viewport-BmqhgdhG.js} +2 -2
  34. package/dist/es/chunks/{icon-origin-point-DWIRQVPT.js → icon-origin-point-CkHTMtFu.js} +2 -2
  35. package/dist/es/chunks/{meshopt_decoder.module-Ch7mmZHA.js → meshopt_decoder.module-YGVnWwV0.js} +2 -2
  36. package/dist/es/chunks/{repeat_icon-D5mfHUaL.js → repeat_icon-B_t3ecTa.js} +2 -2
  37. package/dist/es/chunks/{rolldown-runtime-BptZgroH.js → rolldown-runtime-BSTMnvUK.js} +2 -2
  38. package/dist/es/chunks/{shader-type-decoder-CQKC8yW9.js → shader-type-decoder-CFX5sij5.js} +2 -2
  39. package/dist/es/chunks/{styles-Be_VFWZ4.js → styles-DTTMB3rI.js} +2 -2
  40. package/dist/es/chunks/{three.module-CrfgWCl8.js → three.module-Cj5xe6gn.js} +2 -2
  41. package/dist/es/chunks/{walking-BRSMxmlG.js → walking--SMEsH_B.js} +2 -2
  42. package/dist/es/chunks/{webgl-ClUuONJn.js → webgl-ZcaUll7k.js} +2 -2
  43. package/dist/es/chunks/{webgl-device-6J3R62SY.js → webgl-device-KnEQ5CNv.js} +2 -2
  44. package/dist/es/web-kit.mjs +5 -5
  45. package/dist/iife/web-kit.iife.js +3 -3
  46. package/dist/sw/mvx-tiles-sw.js +97 -49
  47. package/dist/types/index.d.ts +36 -36
  48. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- /*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
2
- !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3916b495-5916-4367-af2b-9933d843d9b9",e._sentryDebugIdIdentifier="sentry-dbid-3916b495-5916-4367-af2b-9933d843d9b9")}catch(e){}}();const e=require("./three.module-CZrl_ZUv.cjs");var t=new WeakMap,r=class extends e.Loader$1{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(t,r,o,s){const n=new e.FileLoader$1(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),n.load(t,e=>{this.parse(e,r,s)},o,s)}parse(t,r,o=()=>{}){this.decodeDracoFile(t,r,null,null,e.SRGBColorSpace$1,o).catch(o)}decodeDracoFile(t,r,o,s,n=e.LinearSRGBColorSpace$1,i=()=>{}){const a={attributeIDs:o||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!o,vertexColorSpace:n};return this.decodeGeometry(t,a).then(r).catch(i)}decodeGeometry(e,r){const o=JSON.stringify(r);if(t.has(e)){const r=t.get(e);if(r.key===o)return r.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const n=this.workerNextTaskID++,i=e.byteLength,a=this._getWorker(n,i).then(t=>(s=t,new Promise((t,o)=>{s._callbacks[n]={resolve:t,reject:o},s.postMessage({type:"decode",id:n,taskConfig:r,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return a.catch(()=>!0).then(()=>{s&&n&&this._releaseTask(s,n)}),t.set(e,{key:o,promise:a}),a}_createGeometry(t){const r=new e.BufferGeometry$1;t.index&&r.setIndex(new e.BufferAttribute$1(t.index.array,1));for(let o=0;o<t.attributes.length;o++){const{name:s,array:n,itemSize:i,stride:a,vertexColorSpace:d}=t.attributes[o];let c;if(i===a)c=new e.BufferAttribute$1(n,i);else{const t=new e.InterleavedBuffer$1(n,a);c=new e.InterleavedBufferAttribute$1(t,i,0)}"color"===s&&(this._assignVertexColorSpace(c,d),c.normalized=n instanceof Float32Array==!1),r.setAttribute(s,c)}return r}_assignVertexColorSpace(t,r){if("srgb"!==r)return;const o=new e.Color$1;for(let s=0,n=t.count;s<n;s++)o.fromBufferAttribute(t,s),e.ColorManagement$1.colorSpaceToWorking(o,e.SRGBColorSpace$1),t.setXYZ(s,o.r,o.g,o.b)}_loadLibrary(t,r){const o=new e.FileLoader$1(this.manager);return o.setPath(this.decoderPath),o.setResponseType(r),o.setWithCredentials(this.withCredentials),new Promise((e,r)=>{o.load(t,e,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,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=>{const r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const s=o.toString(),n=["/* draco decoder */",r,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){const r=t.data;switch(r.type){case"decode":e._callbacks[r.id].resolve(r);break;case"error":e._callbacks[r.id].reject(r);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+r.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r})}_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.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),this}};function o(){let e,t;function r(e,t,r,o,s,n){const i=r.num_points(),a=n.num_components(),d=function(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}}(e,s),c=a*s.BYTES_PER_ELEMENT,l=4*Math.ceil(c/4),u=l/s.BYTES_PER_ELEMENT,h=i*c,f=i*l,y=e._malloc(h);t.GetAttributeDataArrayForAllPoints(r,n,d,h,y);const _=new s(e.HEAPF32.buffer,y,h/s.BYTES_PER_ELEMENT);let b;if(c===l)b=_.slice();else{b=new s(f/s.BYTES_PER_ELEMENT);let e=0;for(let t=0,r=_.length;t<r;t++){for(let r=0;r<a;r++)b[e+r]=_[t*a+r];e+=u}}return e._free(y),{name:o,count:i,itemSize:a,array:b,stride:u}}onmessage=function(o){const s=o.data;switch(s.type){case"init":e=s.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":const o=s.buffer,n=s.taskConfig;t.then(e=>{const t=e.draco,i=new t.Decoder;try{const e=function(e,t,o,s){const n=s.attributeIDs,i=s.attributeTypes;let a,d;const c=t.GetEncodedGeometryType(o);if(c===e.TRIANGULAR_MESH)a=new e.Mesh,d=t.DecodeArrayToMesh(o,o.byteLength,a);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");a=new e.PointCloud,d=t.DecodeArrayToPointCloud(o,o.byteLength,a)}if(!d.ok()||0===a.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+d.error_msg());const l={index:null,attributes:[]};for(const u in n){const o=self[i[u]];let d,c;if(s.useUniqueIDs)c=n[u],d=t.GetAttributeByUniqueId(a,c);else{if(c=t.GetAttributeId(a,e[n[u]]),-1===c)continue;d=t.GetAttribute(a,c)}const h=r(e,t,a,u,o,d);"color"===u&&(h.vertexColorSpace=s.vertexColorSpace),l.attributes.push(h)}c===e.TRIANGULAR_MESH&&(l.index=function(e,t,r){const o=3*r.num_faces(),s=4*o,n=e._malloc(s);t.GetTrianglesUInt32Array(r,s,n);const i=new Uint32Array(e.HEAPF32.buffer,n,o).slice();return e._free(n),{array:i,itemSize:1}}(e,t,a));return e.destroy(a),l}(t,i,new Int8Array(o),n),a=e.attributes.map(e=>e.array.buffer);e.index&&a.push(e.index.array.buffer),self.postMessage({type:"decode",id:s.id,geometry:e},a)}catch(a){console.error(a),self.postMessage({type:"error",id:s.id,error:a.message})}finally{t.destroy(i)}})}}}exports.DRACOLoader=r;
1
+ /*! Web-kit v1.2.0-develop.13 | (c) 2026 MapVX */
2
+ !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ddb91736-1fa8-4552-8bc8-6c0eb600db32",e._sentryDebugIdIdentifier="sentry-dbid-ddb91736-1fa8-4552-8bc8-6c0eb600db32")}catch(e){}}();const e=require("./three.module-BHURJnCD.cjs");var t=new WeakMap,r=class extends e.Loader$1{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(t,r,o,s){const n=new e.FileLoader$1(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),n.load(t,e=>{this.parse(e,r,s)},o,s)}parse(t,r,o=()=>{}){this.decodeDracoFile(t,r,null,null,e.SRGBColorSpace$1,o).catch(o)}decodeDracoFile(t,r,o,s,n=e.LinearSRGBColorSpace$1,i=()=>{}){const a={attributeIDs:o||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!o,vertexColorSpace:n};return this.decodeGeometry(t,a).then(r).catch(i)}decodeGeometry(e,r){const o=JSON.stringify(r);if(t.has(e)){const r=t.get(e);if(r.key===o)return r.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const n=this.workerNextTaskID++,i=e.byteLength,a=this._getWorker(n,i).then(t=>(s=t,new Promise((t,o)=>{s._callbacks[n]={resolve:t,reject:o},s.postMessage({type:"decode",id:n,taskConfig:r,buffer:e},[e])}))).then(e=>this._createGeometry(e.geometry));return a.catch(()=>!0).then(()=>{s&&n&&this._releaseTask(s,n)}),t.set(e,{key:o,promise:a}),a}_createGeometry(t){const r=new e.BufferGeometry$1;t.index&&r.setIndex(new e.BufferAttribute$1(t.index.array,1));for(let o=0;o<t.attributes.length;o++){const{name:s,array:n,itemSize:i,stride:a,vertexColorSpace:d}=t.attributes[o];let c;if(i===a)c=new e.BufferAttribute$1(n,i);else{const t=new e.InterleavedBuffer$1(n,a);c=new e.InterleavedBufferAttribute$1(t,i,0)}"color"===s&&(this._assignVertexColorSpace(c,d),c.normalized=n instanceof Float32Array==!1),r.setAttribute(s,c)}return r}_assignVertexColorSpace(t,r){if("srgb"!==r)return;const o=new e.Color$1;for(let s=0,n=t.count;s<n;s++)o.fromBufferAttribute(t,s),e.ColorManagement$1.colorSpaceToWorking(o,e.SRGBColorSpace$1),t.setXYZ(s,o.r,o.g,o.b)}_loadLibrary(t,r){const o=new e.FileLoader$1(this.manager);return o.setPath(this.decoderPath),o.setResponseType(r),o.setWithCredentials(this.withCredentials),new Promise((e,r)=>{o.load(t,e,void 0,r)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,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=>{const r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const s=o.toString(),n=["/* draco decoder */",r,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const e=new Worker(this.workerSourceURL);e._callbacks={},e._taskCosts={},e._taskLoad=0,e.postMessage({type:"init",decoderConfig:this.decoderConfig}),e.onmessage=function(t){const r=t.data;switch(r.type){case"decode":e._callbacks[r.id].resolve(r);break;case"error":e._callbacks[r.id].reject(r);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+r.type+'"')}},this.workerPool.push(e)}else this.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r})}_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.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),this}};function o(){let e,t;function r(e,t,r,o,s,n){const i=r.num_points(),a=n.num_components(),d=function(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}}(e,s),c=a*s.BYTES_PER_ELEMENT,l=4*Math.ceil(c/4),u=l/s.BYTES_PER_ELEMENT,h=i*c,f=i*l,y=e._malloc(h);t.GetAttributeDataArrayForAllPoints(r,n,d,h,y);const _=new s(e.HEAPF32.buffer,y,h/s.BYTES_PER_ELEMENT);let b;if(c===l)b=_.slice();else{b=new s(f/s.BYTES_PER_ELEMENT);let e=0;for(let t=0,r=_.length;t<r;t++){for(let r=0;r<a;r++)b[e+r]=_[t*a+r];e+=u}}return e._free(y),{name:o,count:i,itemSize:a,array:b,stride:u}}onmessage=function(o){const s=o.data;switch(s.type){case"init":e=s.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":const o=s.buffer,n=s.taskConfig;t.then(e=>{const t=e.draco,i=new t.Decoder;try{const e=function(e,t,o,s){const n=s.attributeIDs,i=s.attributeTypes;let a,d;const c=t.GetEncodedGeometryType(o);if(c===e.TRIANGULAR_MESH)a=new e.Mesh,d=t.DecodeArrayToMesh(o,o.byteLength,a);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");a=new e.PointCloud,d=t.DecodeArrayToPointCloud(o,o.byteLength,a)}if(!d.ok()||0===a.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+d.error_msg());const l={index:null,attributes:[]};for(const u in n){const o=self[i[u]];let d,c;if(s.useUniqueIDs)c=n[u],d=t.GetAttributeByUniqueId(a,c);else{if(c=t.GetAttributeId(a,e[n[u]]),-1===c)continue;d=t.GetAttribute(a,c)}const h=r(e,t,a,u,o,d);"color"===u&&(h.vertexColorSpace=s.vertexColorSpace),l.attributes.push(h)}c===e.TRIANGULAR_MESH&&(l.index=function(e,t,r){const o=3*r.num_faces(),s=4*o,n=e._malloc(s);t.GetTrianglesUInt32Array(r,s,n);const i=new Uint32Array(e.HEAPF32.buffer,n,o).slice();return e._free(n),{array:i,itemSize:1}}(e,t,a));return e.destroy(a),l}(t,i,new Int8Array(o),n),a=e.attributes.map(e=>e.array.buffer);e.index&&a.push(e.index.array.buffer),self.postMessage({type:"decode",id:s.id,geometry:e},a)}catch(a){console.error(a),self.postMessage({type:"error",id:s.id,error:a.message})}finally{t.destroy(i)}})}}}exports.DRACOLoader=r;
@@ -1,2 +1,2 @@
1
- /*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
2
- !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="95c3712b-ea4b-41ef-8abd-cdf56350804f",e._sentryDebugIdIdentifier="sentry-dbid-95c3712b-ea4b-41ef-8abd-cdf56350804f")}catch(e){}}();const e=require("./three.module-CZrl_ZUv.cjs");function t(e,t){if(0===t)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(2===t||1===t){let s=e.getIndex();if(null===s){const t=[],r=e.getAttribute("position");if(void 0===r)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<r.count;e++)t.push(e);e.setIndex(t),s=e.getIndex()}const r=s.count-2,n=[];if(2===t)for(let e=1;e<=r;e++)n.push(s.getX(0)),n.push(s.getX(e)),n.push(s.getX(e+1));else for(let e=0;e<r;e++)e%2==0?(n.push(s.getX(e)),n.push(s.getX(e+1)),n.push(s.getX(e+2))):(n.push(s.getX(e+2)),n.push(s.getX(e+1)),n.push(s.getX(e)));n.length/3!==r&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const o=e.clone();return o.setIndex(n),o.clearGroups(),o}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}function s(e){const t=new Map,s=new Map,n=e.clone();return r(e,n,function(e,r){t.set(r,e),s.set(e,r)}),n.traverse(function(e){if(!e.isSkinnedMesh)return;const r=e,n=t.get(e),o=n.skeleton.bones;r.skeleton=n.skeleton.clone(),r.bindMatrix.copy(n.bindMatrix),r.skeleton.bones=o.map(function(e){return s.get(e)}),r.bind(r.skeleton,r.bindMatrix)}),n}function r(e,t,s){s(e,t);for(let n=0;n<e.children.length;n++)r(e.children[n],t.children[n],s)}var n=class extends e.Loader$1{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new h(e)}),this.register(function(e){return new d(e)}),this.register(function(e){return new E(e)}),this.register(function(e){return new v(e)}),this.register(function(e){return new M(e)}),this.register(function(e){return new m(e)}),this.register(function(e){return new f(e)}),this.register(function(e){return new g(e)}),this.register(function(e){return new T(e)}),this.register(function(e){return new u(e)}),this.register(function(e){return new R(e)}),this.register(function(e){return new p(e)}),this.register(function(e){return new _(e)}),this.register(function(e){return new x(e)}),this.register(function(e){return new c(e)}),this.register(function(e){return new A(e,a.EXT_MESHOPT_COMPRESSION)}),this.register(function(e){return new A(e,a.KHR_MESHOPT_COMPRESSION)}),this.register(function(e){return new S(e)})}load(t,s,r,n){const o=this;let i;if(""!==this.resourcePath)i=this.resourcePath;else if(""!==this.path){const s=e.LoaderUtils$1.extractUrlBase(t);i=e.LoaderUtils$1.resolveURL(s,this.path)}else i=e.LoaderUtils$1.extractUrlBase(t);this.manager.itemStart(t);const a=function(e){n?n(e):console.error(e),o.manager.itemError(t),o.manager.itemEnd(t)},c=new e.FileLoader$1(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(t,function(e){try{o.parse(e,i,function(e){s(e),o.manager.itemEnd(t)},a)}catch(r){a(r)}},r,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,s,r){let n;const o={},i={},c=new TextDecoder;if("string"==typeof e)n=JSON.parse(e);else if(e instanceof ArrayBuffer)if(c.decode(new Uint8Array(e,0,4))===y){try{o[a.KHR_BINARY_GLTF]=new I(e)}catch(h){return void(r&&r(h))}n=JSON.parse(o[a.KHR_BINARY_GLTF].content)}else n=JSON.parse(c.decode(e));else n=e;if(void 0===n.asset||n.asset.version[0]<2)return void(r&&r(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const u=new te(n,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});u.fileLoader.setRequestHeader(this.requestHeader);for(let a=0;a<this.pluginCallbacks.length;a++){const e=this.pluginCallbacks[a](u);e.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),i[e.name]=e,o[e.name]=!0}if(n.extensionsUsed)for(let d=0;d<n.extensionsUsed.length;++d){const e=n.extensionsUsed[d],t=n.extensionsRequired||[];switch(e){case a.KHR_MATERIALS_UNLIT:o[e]=new l;break;case a.KHR_DRACO_MESH_COMPRESSION:o[e]=new b(n,this.dracoLoader);break;case a.KHR_TEXTURE_TRANSFORM:o[e]=new C;break;case a.KHR_MESH_QUANTIZATION:o[e]=new N;break;default:t.indexOf(e)>=0&&void 0===i[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}u.setExtensions(o),u.setPlugins(i),u.parse(s,r)}parseAsync(e,t){const s=this;return new Promise(function(r,n){s.parse(e,t,r,n)})}};function o(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}function i(e,t,s){const r=e.json.materials[t];return r.extensions&&r.extensions[s]?r.extensions[s]:null}var a={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",KHR_MESHOPT_COMPRESSION:"KHR_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},c=class{constructor(e){this.parser=e,this.name=a.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,r=t.length;s<r;s++){const r=t[s];r.extensions&&r.extensions[this.name]&&void 0!==r.extensions[this.name].light&&e._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(t){const s=this.parser,r="light:"+t;let n=s.cache.get(r);if(n)return n;const o=s.json,i=((o.extensions&&o.extensions[this.name]||{}).lights||[])[t];let a;const c=new e.Color$1(16777215);void 0!==i.color&&c.setRGB(i.color[0],i.color[1],i.color[2],e.LinearSRGBColorSpace$1);const l=void 0!==i.range?i.range:0;switch(i.type){case"directional":a=new e.DirectionalLight$1(c),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new e.PointLight$1(c),a.distance=l;break;case"spot":a=new e.SpotLight$1(c),a.distance=l,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,a.angle=i.spot.outerConeAngle,a.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+i.type)}return a.position.set(0,0,0),W(a,i),void 0!==i.intensity&&(a.intensity=i.intensity),a.name=s.createUniqueName(i.name||"light_"+t),n=Promise.resolve(a),s.cache.add(r,n),n}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,s=this.parser,r=s.json.nodes[e],n=(r.extensions&&r.extensions[this.name]||{}).light;return void 0===n?null:this._loadLight(n).then(function(e){return s._getNodeRef(t.cache,n,e)})}},l=class{constructor(){this.name=a.KHR_MATERIALS_UNLIT}getMaterialType(){return e.MeshBasicMaterial$1}extendParams(t,s,r){const n=[];t.color=new e.Color$1(1,1,1),t.opacity=1;const o=s.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){const s=o.baseColorFactor;t.color.setRGB(s[0],s[1],s[2],e.LinearSRGBColorSpace$1),t.opacity=s[3]}void 0!==o.baseColorTexture&&n.push(r.assignTexture(t,"map",o.baseColorTexture,e.SRGBColorSpace$1))}return Promise.all(n)}},u=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);return null===s||void 0!==s.emissiveStrength&&(t.emissiveIntensity=s.emissiveStrength),Promise.resolve()}},h=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];if(void 0!==r.clearcoatFactor&&(s.clearcoat=r.clearcoatFactor),void 0!==r.clearcoatTexture&&n.push(this.parser.assignTexture(s,"clearcoatMap",r.clearcoatTexture)),void 0!==r.clearcoatRoughnessFactor&&(s.clearcoatRoughness=r.clearcoatRoughnessFactor),void 0!==r.clearcoatRoughnessTexture&&n.push(this.parser.assignTexture(s,"clearcoatRoughnessMap",r.clearcoatRoughnessTexture)),void 0!==r.clearcoatNormalTexture&&(n.push(this.parser.assignTexture(s,"clearcoatNormalMap",r.clearcoatNormalTexture)),void 0!==r.clearcoatNormalTexture.scale)){const t=r.clearcoatNormalTexture.scale;s.clearcoatNormalScale=new e.Vector2$1(t,t)}return Promise.all(n)}},d=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_DISPERSION}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);return null===s||(t.dispersion=void 0!==s.dispersion?s.dispersion:0),Promise.resolve()}},p=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return void 0!==s.iridescenceFactor&&(t.iridescence=s.iridescenceFactor),void 0!==s.iridescenceTexture&&r.push(this.parser.assignTexture(t,"iridescenceMap",s.iridescenceTexture)),void 0!==s.iridescenceIor&&(t.iridescenceIOR=s.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==s.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),void 0!==s.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),void 0!==s.iridescenceThicknessTexture&&r.push(this.parser.assignTexture(t,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(r)}},m=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_SHEEN}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];if(s.sheenColor=new e.Color$1(0,0,0),s.sheenRoughness=0,s.sheen=1,void 0!==r.sheenColorFactor){const t=r.sheenColorFactor;s.sheenColor.setRGB(t[0],t[1],t[2],e.LinearSRGBColorSpace$1)}return void 0!==r.sheenRoughnessFactor&&(s.sheenRoughness=r.sheenRoughnessFactor),void 0!==r.sheenColorTexture&&n.push(this.parser.assignTexture(s,"sheenColorMap",r.sheenColorTexture,e.SRGBColorSpace$1)),void 0!==r.sheenRoughnessTexture&&n.push(this.parser.assignTexture(s,"sheenRoughnessMap",r.sheenRoughnessTexture)),Promise.all(n)}},f=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return void 0!==s.transmissionFactor&&(t.transmission=s.transmissionFactor),void 0!==s.transmissionTexture&&r.push(this.parser.assignTexture(t,"transmissionMap",s.transmissionTexture)),Promise.all(r)}},g=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_VOLUME}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];s.thickness=void 0!==r.thicknessFactor?r.thicknessFactor:0,void 0!==r.thicknessTexture&&n.push(this.parser.assignTexture(s,"thicknessMap",r.thicknessTexture)),s.attenuationDistance=r.attenuationDistance||1/0;const o=r.attenuationColor||[1,1,1];return s.attenuationColor=(new e.Color$1).setRGB(o[0],o[1],o[2],e.LinearSRGBColorSpace$1),Promise.all(n)}},T=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_IOR}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);return null===s||(t.ior=void 0!==s.ior?s.ior:1.5,0===t.ior&&(t.ior=1e3)),Promise.resolve()}},R=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_SPECULAR}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];s.specularIntensity=void 0!==r.specularFactor?r.specularFactor:1,void 0!==r.specularTexture&&n.push(this.parser.assignTexture(s,"specularIntensityMap",r.specularTexture));const o=r.specularColorFactor||[1,1,1];return s.specularColor=(new e.Color$1).setRGB(o[0],o[1],o[2],e.LinearSRGBColorSpace$1),void 0!==r.specularColorTexture&&n.push(this.parser.assignTexture(s,"specularColorMap",r.specularColorTexture,e.SRGBColorSpace$1)),Promise.all(n)}},x=class{constructor(e){this.parser=e,this.name=a.EXT_MATERIALS_BUMP}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return t.bumpScale=void 0!==s.bumpFactor?s.bumpFactor:1,void 0!==s.bumpTexture&&r.push(this.parser.assignTexture(t,"bumpMap",s.bumpTexture)),Promise.all(r)}},_=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_ANISOTROPY}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return void 0!==s.anisotropyStrength&&(t.anisotropy=s.anisotropyStrength),void 0!==s.anisotropyRotation&&(t.anisotropyRotation=s.anisotropyRotation),void 0!==s.anisotropyTexture&&r.push(this.parser.assignTexture(t,"anisotropyMap",s.anisotropyTexture)),Promise.all(r)}},E=class{constructor(e){this.parser=e,this.name=a.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,s=t.json,r=s.textures[e];if(!r.extensions||!r.extensions[this.name])return null;const n=r.extensions[this.name],o=t.options.ktx2Loader;if(!o){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,o)}},v=class{constructor(e){this.parser=e,this.name=a.EXT_TEXTURE_WEBP}loadTexture(e){const t=this.name,s=this.parser,r=s.json,n=r.textures[e];if(!n.extensions||!n.extensions[t])return null;const o=n.extensions[t],i=r.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}},M=class{constructor(e){this.parser=e,this.name=a.EXT_TEXTURE_AVIF}loadTexture(e){const t=this.name,s=this.parser,r=s.json,n=r.textures[e];if(!n.extensions||!n.extensions[t])return null;const o=n.extensions[t],i=r.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}},A=class{constructor(e,t){this.name=t,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],r=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(t){const s=e.byteOffset||0,r=e.byteLength||0,o=e.count,i=e.byteStride,a=new Uint8Array(t,s,r);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(o,i,a,e.mode,e.filter).then(function(e){return e.buffer}):n.ready.then(function(){const t=new ArrayBuffer(o*i);return n.decodeGltfBuffer(new Uint8Array(t),o,i,a,e.mode,e.filter),t})})}return null}},S=class{constructor(e){this.name=a.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(t){const s=this.parser.json,r=s.nodes[t];if(!r.extensions||!r.extensions[this.name]||void 0===r.mesh)return null;const n=s.meshes[r.mesh];for(const e of n.primitives)if(e.mode!==$.TRIANGLES&&e.mode!==$.TRIANGLE_STRIP&&e.mode!==$.TRIANGLE_FAN&&void 0!==e.mode)return null;const o=r.extensions[this.name].attributes,i=[],a={};for(const e in o)i.push(this.parser.getDependency("accessor",o[e]).then(t=>(a[e]=t,a[e])));return i.length<1?null:(i.push(this.parser.createNodeMesh(t)),Promise.all(i).then(t=>{const s=t.pop(),r=s.isGroup?s.children:[s],n=t[0].count,o=[];for(const i of r){const t=new e.Matrix4$1,s=new e.Vector3$1,r=new e.Quaternion$1,c=new e.Vector3$1(1,1,1),l=new e.InstancedMesh$1(i.geometry,i.material,n);for(let e=0;e<n;e++)a.TRANSLATION&&s.fromBufferAttribute(a.TRANSLATION,e),a.ROTATION&&r.fromBufferAttribute(a.ROTATION,e),a.SCALE&&c.fromBufferAttribute(a.SCALE,e),l.setMatrixAt(e,t.compose(s,r,c));for(const n in a)if("_COLOR_0"===n){const t=a[n];l.instanceColor=new e.InstancedBufferAttribute$1(t.array,t.itemSize,t.normalized)}else"TRANSLATION"!==n&&"ROTATION"!==n&&"SCALE"!==n&&i.geometry.setAttribute(n,a[n]);e.Object3D$1.prototype.copy.call(l,i),this.parser.assignFinalMaterial(l),o.push(l)}return s.isGroup?(s.clear(),s.add(...o),s):o[0]}))}},y="glTF",L=1313821514,w=5130562,I=class{constructor(e){this.name=a.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),s=new TextDecoder;if(this.header={magic:s.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==y)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const r=this.header.length-12,n=new DataView(e,12);let o=0;for(;o<r;){const t=n.getUint32(o,!0);o+=4;const r=n.getUint32(o,!0);if(o+=4,r===L){const r=new Uint8Array(e,12+o,t);this.content=s.decode(r)}else if(r===w){const s=12+o;this.body=e.slice(s,s+t)}o+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}},b=class{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=a.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(t,s){const r=this.json,n=this.dracoLoader,o=t.extensions[this.name].bufferView,i=t.extensions[this.name].attributes,a={},c={},l={};for(const e in i){const t=G[e]||e.toLowerCase();a[t]=i[e]}for(const e in t.attributes){const s=G[e]||e.toLowerCase();if(void 0!==i[e]){const n=r.accessors[t.attributes[e]];l[s]=k[n.componentType].name,c[s]=!0===n.normalized}}return s.getDependency("bufferView",o).then(function(t){return new Promise(function(s,r){n.decodeDracoFile(t,function(e){for(const t in e.attributes){const s=e.attributes[t],r=c[t];void 0!==r&&(s.normalized=r)}s(e)},a,l,e.LinearSRGBColorSpace$1,r)})})}},C=class{constructor(){this.name=a.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}},N=class{constructor(){this.name=a.KHR_MESH_QUANTIZATION}},O=class extends e.Interpolant$1{constructor(e,t,s,r){super(e,t,s,r)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,r=this.valueSize,n=e*r*3+r;for(let o=0;o!==r;o++)t[o]=s[n+o];return t}interpolate_(e,t,s,r){const n=this.resultBuffer,o=this.sampleValues,i=this.valueSize,a=2*i,c=3*i,l=r-t,u=(s-t)/l,h=u*u,d=h*u,p=e*c,m=p-c,f=-2*d+3*h,g=d-h,T=1-f,R=g-h+u;for(let x=0;x!==i;x++){const e=o[m+x+i],t=o[m+x+a]*l,s=o[p+x+i],r=o[p+x]*l;n[x]=T*e+R*t+f*s+g*r}return n}},P=new e.Quaternion$1,H=class extends O{interpolate_(e,t,s,r){const n=super.interpolate_(e,t,s,r);return P.fromArray(n).normalize().toArray(n),n}},$={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},k={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},F={9728:e.NearestFilter$1,9729:e.LinearFilter$1,9984:e.NearestMipmapNearestFilter$1,9985:e.LinearMipmapNearestFilter$1,9986:e.NearestMipmapLinearFilter$1,9987:e.LinearMipmapLinearFilter$1},D={33071:e.ClampToEdgeWrapping$1,33648:e.MirroredRepeatWrapping$1,10497:e.RepeatWrapping$1},U={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},G={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},B={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},K={CUBICSPLINE:void 0,LINEAR:e.InterpolateLinear$1,STEP:e.InterpolateDiscrete$1},V="OPAQUE",j="MASK",X="BLEND";function z(t){return void 0===t.DefaultMaterial&&(t.DefaultMaterial=new e.MeshStandardMaterial$1({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),t.DefaultMaterial}function q(e,t,s){for(const r in s.extensions)void 0===e[r]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=s.extensions[r])}function W(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Y(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,r=t.weights.length;s<r;s++)e.morphTargetInfluences[s]=t.weights[s];if(t.extras&&Array.isArray(t.extras.targetNames)){const s=t.extras.targetNames;if(e.morphTargetInfluences.length===s.length){e.morphTargetDictionary={};for(let t=0,r=s.length;t<r;t++)e.morphTargetDictionary[s[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function Q(e){let t;const s=e.extensions&&e.extensions[a.KHR_DRACO_MESH_COMPRESSION];if(t=s?"draco:"+s.bufferView+":"+s.indices+":"+J(s.attributes):e.indices+":"+J(e.attributes)+":"+e.mode,void 0!==e.targets)for(let r=0,n=e.targets.length;r<n;r++)t+=":"+J(e.targets[r]);return t}function J(e){let t="";const s=Object.keys(e).sort();for(let r=0,n=s.length;r<n;r++)t+=s[r]+":"+e[s[r]]+";";return t}function Z(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 new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}var ee=new e.Matrix4$1,te=class{constructor(t={},s={}){this.json=t,this.extensions={},this.plugins={},this.options=s,this.cache=new o,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 r=!1,n=-1,i=!1,a=-1;if("undefined"!=typeof navigator&&void 0!==navigator.userAgent){const e=navigator.userAgent;r=!0===/^((?!chrome|android).)*safari/i.test(e);const t=e.match(/Version\/(\d+)/);n=r&&t?parseInt(t[1],10):-1,i=e.indexOf("Firefox")>-1,a=i?e.match(/Firefox\/([0-9]+)\./)[1]:-1}"undefined"==typeof createImageBitmap||r&&n<17||i&&a<98?this.textureLoader=new e.TextureLoader$1(this.options.manager):this.textureLoader=new e.ImageBitmapLoader$1(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new e.FileLoader$1(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const s=this,r=this.json,n=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([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])}).then(function(t){const o={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:s,userData:{}};return q(n,o,r),W(o,r),Promise.all(s._invokeAll(function(e){return e.afterRoot&&e.afterRoot(o)})).then(function(){for(const e of o.scenes)e.updateMatrixWorld();e(o)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],s=this.json.meshes||[];for(let r=0,n=t.length;r<n;r++){const s=t[r].joints;for(let t=0,r=s.length;t<r;t++)e[s[t]].isBone=!0}for(let r=0,n=e.length;r<n;r++){const t=e[r];void 0!==t.mesh&&(this._addNodeRef(this.meshCache,t.mesh),void 0!==t.skin&&(s[t.mesh].isSkinnedMesh=!0)),void 0!==t.camera&&this._addNodeRef(this.cameraCache,t.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,s){if(e.refs[t]<=1)return s;const r=s.clone(),n=(e,t)=>{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[r,o]of e.children.entries())n(o,t.children[r])};return n(s,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s<t.length;s++){const r=e(t[s]);if(r)return r}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const s=[];for(let r=0;r<t.length;r++){const n=e(t[r]);n&&s.push(n)}return s}getDependency(e,t){const s=e+":"+t;let r=this.cache.get(s);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(s){return s!=this&&s.getDependency&&s.getDependency(e,t)}),!r)throw new Error("Unknown type: "+e)}this.cache.add(s,r)}return r}getDependencies(e){let t=this.cache.get(e);if(!t){const s=this,r=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(r.map(function(t,r){return s.getDependency(e,r)})),this.cache.add(e,t)}return t}loadBuffer(t){const s=this.json.buffers[t],r=this.fileLoader;if(s.type&&"arraybuffer"!==s.type)throw new Error("THREE.GLTFLoader: "+s.type+" buffer type is not supported.");if(void 0===s.uri&&0===t)return Promise.resolve(this.extensions[a.KHR_BINARY_GLTF].body);const n=this.options;return new Promise(function(t,o){r.load(e.LoaderUtils$1.resolveURL(s.uri,n.path),t,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+s.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const s=t.byteLength||0,r=t.byteOffset||0;return e.slice(r,r+s)})}loadAccessor(t){const s=this,r=this.json,n=this.json.accessors[t];if(void 0===n.bufferView&&void 0===n.sparse){const t=U[n.type],s=k[n.componentType],r=!0===n.normalized,o=new s(n.count*t);return Promise.resolve(new e.BufferAttribute$1(o,t,r))}const o=[];return void 0!==n.bufferView?o.push(this.getDependency("bufferView",n.bufferView)):o.push(null),void 0!==n.sparse&&(o.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(o).then(function(t){const o=t[0],i=U[n.type],a=k[n.componentType],c=a.BYTES_PER_ELEMENT,l=c*i,u=n.byteOffset||0,h=void 0!==n.bufferView?r.bufferViews[n.bufferView].byteStride:void 0,d=!0===n.normalized;let p,m;if(h&&h!==l){const t=Math.floor(u/h),r="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+t+":"+n.count;let l=s.cache.get(r);l||(p=new a(o,t*h,n.count*h/c),l=new e.InterleavedBuffer$1(p,h/c),s.cache.add(r,l)),m=new e.InterleavedBufferAttribute$1(l,i,u%h/c,d)}else p=null===o?new a(n.count*i):new a(o,u,n.count*i),m=new e.BufferAttribute$1(p,i,d);if(void 0!==n.sparse){const s=U.SCALAR,r=k[n.sparse.indices.componentType],c=n.sparse.indices.byteOffset||0,l=n.sparse.values.byteOffset||0,u=new r(t[1],c,n.sparse.count*s),h=new a(t[2],l,n.sparse.count*i);null!==o&&(m=new e.BufferAttribute$1(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let e=0,t=u.length;e<t;e++){const t=u[e];if(m.setX(t,h[e*i]),i>=2&&m.setY(t,h[e*i+1]),i>=3&&m.setZ(t,h[e*i+2]),i>=4&&m.setW(t,h[e*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}m.normalized=d}return m})}loadTexture(e){const t=this.json,s=this.options,r=t.textures[e].source,n=t.images[r];let o=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(o=e)}return this.loadTextureImage(e,r,o)}loadTextureImage(e,t,s){const r=this,n=this.json,o=n.textures[e],i=n.images[t],a=(i.uri||i.bufferView)+":"+o.sampler;if(this.textureCache[a])return this.textureCache[a];const c=this.loadImageSource(t,s).then(function(t){t.flipY=!1,t.name=o.name||i.name||"",""===t.name&&"string"==typeof i.uri&&!1===i.uri.startsWith("data:image/")&&(t.name=i.uri);const s=(n.samplers||{})[o.sampler]||{};return t.magFilter=F[s.magFilter]||1006,t.minFilter=F[s.minFilter]||1008,t.wrapS=D[s.wrapS]||1e3,t.wrapT=D[s.wrapT]||1e3,t.generateMipmaps=!t.isCompressedTexture&&1003!==t.minFilter&&1006!==t.minFilter,r.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[a]=c,c}loadImageSource(t,s){const r=this.json,n=this.options;if(void 0!==this.sourceCache[t])return this.sourceCache[t].then(e=>e.clone());const o=r.images[t],i=self.URL||self.webkitURL;let a=o.uri||"",c=!1;if(void 0!==o.bufferView)a=this.getDependency("bufferView",o.bufferView).then(function(e){c=!0;const t=new Blob([e],{type:o.mimeType});return a=i.createObjectURL(t),a});else if(void 0===o.uri)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const l=Promise.resolve(a).then(function(t){return new Promise(function(r,o){let i=r;!0===s.isImageBitmapLoader&&(i=function(t){const s=new e.Texture$1(t);s.needsUpdate=!0,r(s)}),s.load(e.LoaderUtils$1.resolveURL(t,n.path),i,void 0,o)})}).then(function(e){var t;return!0===c&&i.revokeObjectURL(a),W(e,o),e.userData.mimeType=o.mimeType||((t=o.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":t.search(/\.ktx2($|\?)/i)>0||0===t.search(/^data\:image\/ktx2/)?"image/ktx2":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",a),e});return this.sourceCache[t]=l,l}assignTexture(e,t,s,r){const n=this;return this.getDependency("texture",s.index).then(function(o){if(!o)return null;if(void 0!==s.texCoord&&s.texCoord>0&&((o=o.clone()).channel=s.texCoord),n.extensions[a.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[a.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(o);o=n.extensions[a.KHR_TEXTURE_TRANSFORM].extendTexture(o,e),n.associations.set(o,t)}}return void 0!==r&&(o.colorSpace=r),e[t]=o,o})}assignFinalMaterial(t){const s=t.geometry;let r=t.material;const n=void 0===s.attributes.tangent,o=void 0!==s.attributes.color,i=void 0===s.attributes.normal;if(t.isPoints){const t="PointsMaterial:"+r.uuid;let s=this.cache.get(t);s||(s=new e.PointsMaterial$1,e.Material$1.prototype.copy.call(s,r),s.color.copy(r.color),s.map=r.map,s.sizeAttenuation=!1,this.cache.add(t,s)),r=s}else if(t.isLine){const t="LineBasicMaterial:"+r.uuid;let s=this.cache.get(t);s||(s=new e.LineBasicMaterial$1,e.Material$1.prototype.copy.call(s,r),s.color.copy(r.color),s.map=r.map,this.cache.add(t,s)),r=s}if(n||o||i){let e="ClonedMaterial:"+r.uuid+":";n&&(e+="derivative-tangents:"),o&&(e+="vertex-colors:"),i&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=r.clone(),o&&(t.vertexColors=!0),i&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(r))),r=t}t.material=r}getMaterialType(){return e.MeshStandardMaterial$1}loadMaterial(t){const s=this,r=this.json,n=this.extensions,o=r.materials[t];let i;const c={},l=[];if((o.extensions||{})[a.KHR_MATERIALS_UNLIT]){const e=n[a.KHR_MATERIALS_UNLIT];i=e.getMaterialType(),l.push(e.extendParams(c,o,s))}else{const r=o.pbrMetallicRoughness||{};if(c.color=new e.Color$1(1,1,1),c.opacity=1,Array.isArray(r.baseColorFactor)){const t=r.baseColorFactor;c.color.setRGB(t[0],t[1],t[2],e.LinearSRGBColorSpace$1),c.opacity=t[3]}void 0!==r.baseColorTexture&&l.push(s.assignTexture(c,"map",r.baseColorTexture,e.SRGBColorSpace$1)),c.metalness=void 0!==r.metallicFactor?r.metallicFactor:1,c.roughness=void 0!==r.roughnessFactor?r.roughnessFactor:1,void 0!==r.metallicRoughnessTexture&&(l.push(s.assignTexture(c,"metalnessMap",r.metallicRoughnessTexture)),l.push(s.assignTexture(c,"roughnessMap",r.metallicRoughnessTexture))),i=this._invokeOne(function(e){return e.getMaterialType&&e.getMaterialType(t)}),l.push(Promise.all(this._invokeAll(function(e){return e.extendMaterialParams&&e.extendMaterialParams(t,c)})))}!0===o.doubleSided&&(c.side=2);const u=o.alphaMode||V;if(u===X?(c.transparent=!0,c.depthWrite=!1):(c.transparent=!1,u===j&&(c.alphaTest=void 0!==o.alphaCutoff?o.alphaCutoff:.5)),void 0!==o.normalTexture&&i!==e.MeshBasicMaterial$1&&(l.push(s.assignTexture(c,"normalMap",o.normalTexture)),c.normalScale=new e.Vector2$1(1,1),void 0!==o.normalTexture.scale)){const e=o.normalTexture.scale;c.normalScale.set(e,e)}if(void 0!==o.occlusionTexture&&i!==e.MeshBasicMaterial$1&&(l.push(s.assignTexture(c,"aoMap",o.occlusionTexture)),void 0!==o.occlusionTexture.strength&&(c.aoMapIntensity=o.occlusionTexture.strength)),void 0!==o.emissiveFactor&&i!==e.MeshBasicMaterial$1){const t=o.emissiveFactor;c.emissive=(new e.Color$1).setRGB(t[0],t[1],t[2],e.LinearSRGBColorSpace$1)}return void 0!==o.emissiveTexture&&i!==e.MeshBasicMaterial$1&&l.push(s.assignTexture(c,"emissiveMap",o.emissiveTexture,e.SRGBColorSpace$1)),Promise.all(l).then(function(){const e=new i(c);return o.name&&(e.name=o.name),W(e,o),s.associations.set(e,{materials:t}),o.extensions&&q(n,e,o),e})}createUniqueName(t){const s=e.PropertyBinding$1.sanitizeNodeName(t||"");return s in this.nodeNamesUsed?s+"_"+ ++this.nodeNamesUsed[s]:(this.nodeNamesUsed[s]=0,s)}loadGeometries(t){const s=this,r=this.extensions,n=this.primitiveCache;function o(e){return r[a.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,s).then(function(t){return se(t,e,s)})}const i=[];for(let c=0,l=t.length;c<l;c++){const r=t[c],l=Q(r),u=n[l];if(u)i.push(u.promise);else{let t;t=r.extensions&&r.extensions[a.KHR_DRACO_MESH_COMPRESSION]?o(r):se(new e.BufferGeometry$1,r,s),n[l]={primitive:r,promise:t},i.push(t)}}return Promise.all(i)}loadMesh(s){const r=this,n=this.json,o=this.extensions,i=n.meshes[s],a=i.primitives,c=[];for(let e=0,t=a.length;e<t;e++){const t=void 0===a[e].material?z(this.cache):this.getDependency("material",a[e].material);c.push(t)}return c.push(r.loadGeometries(a)),Promise.all(c).then(function(n){const c=n.slice(0,n.length-1),l=n[n.length-1],u=[];for(let d=0,p=l.length;d<p;d++){const n=l[d],h=a[d];let p;const m=c[d];if(h.mode===$.TRIANGLES||h.mode===$.TRIANGLE_STRIP||h.mode===$.TRIANGLE_FAN||void 0===h.mode)p=!0===i.isSkinnedMesh?new e.SkinnedMesh$1(n,m):new e.Mesh$1(n,m),!0===p.isSkinnedMesh&&p.normalizeSkinWeights(),h.mode===$.TRIANGLE_STRIP?p.geometry=t(p.geometry,1):h.mode===$.TRIANGLE_FAN&&(p.geometry=t(p.geometry,2));else if(h.mode===$.LINES)p=new e.LineSegments$1(n,m);else if(h.mode===$.LINE_STRIP)p=new e.Line$1(n,m);else if(h.mode===$.LINE_LOOP)p=new e.LineLoop$1(n,m);else{if(h.mode!==$.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);p=new e.Points$1(n,m)}Object.keys(p.geometry.morphAttributes).length>0&&Y(p,i),p.name=r.createUniqueName(i.name||"mesh_"+s),W(p,i),h.extensions&&q(o,p,h),r.assignFinalMaterial(p),u.push(p)}for(let e=0,t=u.length;e<t;e++)r.associations.set(u[e],{meshes:s,primitives:e});if(1===u.length)return i.extensions&&q(o,u[0],i),u[0];const h=new e.Group$1;i.extensions&&q(o,h,i),r.associations.set(h,{meshes:s});for(let e=0,t=u.length;e<t;e++)h.add(u[e]);return h})}loadCamera(t){let s;const r=this.json.cameras[t],n=r[r.type];if(n)return"perspective"===r.type?s=new e.PerspectiveCamera$1(e.MathUtils$1.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):"orthographic"===r.type&&(s=new e.OrthographicCamera$1(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),r.name&&(s.name=this.createUniqueName(r.name)),W(s,r),Promise.resolve(s);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(t){const s=this.json.skins[t],r=[];for(let e=0,n=s.joints.length;e<n;e++)r.push(this._loadNodeShallow(s.joints[e]));return void 0!==s.inverseBindMatrices?r.push(this.getDependency("accessor",s.inverseBindMatrices)):r.push(null),Promise.all(r).then(function(t){const r=t.pop(),n=t,o=[],i=[];for(let a=0,c=n.length;a<c;a++){const t=n[a];if(t){o.push(t);const s=new e.Matrix4$1;null!==r&&s.fromArray(r.array,16*a),i.push(s)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',s.joints[a])}return new e.Skeleton$1(o,i)})}loadAnimation(t){const s=this.json,r=this,n=s.animations[t],o=n.name?n.name:"animation_"+t,i=[],a=[],c=[],l=[],u=[];for(let e=0,h=n.channels.length;e<h;e++){const t=n.channels[e],s=n.samplers[t.sampler],r=t.target,o=r.node,h=void 0!==n.parameters?n.parameters[s.input]:s.input,d=void 0!==n.parameters?n.parameters[s.output]:s.output;void 0!==r.node&&(i.push(this.getDependency("node",o)),a.push(this.getDependency("accessor",h)),c.push(this.getDependency("accessor",d)),l.push(s),u.push(r))}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c),Promise.all(l),Promise.all(u)]).then(function(t){const s=t[0],i=t[1],a=t[2],c=t[3],l=t[4],u=[];for(let e=0,n=s.length;e<n;e++){const t=s[e],n=i[e],o=a[e],h=c[e],d=l[e];if(void 0===t)continue;t.updateMatrix&&t.updateMatrix();const p=r._createAnimationTracks(t,n,o,h,d);if(p)for(let e=0;e<p.length;e++)u.push(p[e])}const h=new e.AnimationClip$1(o,void 0,u);return W(h,n),h})}createNodeMesh(e){const t=this.json,s=this,r=t.nodes[e];return void 0===r.mesh?null:s.getDependency("mesh",r.mesh).then(function(e){const t=s._getNodeRef(s.meshCache,r.mesh,e);return void 0!==r.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,s=r.weights.length;t<s;t++)e.morphTargetInfluences[t]=r.weights[t]}),t})}loadNode(t){const s=this,r=this.json.nodes[t],n=s._loadNodeShallow(t),o=[],i=r.children||[];for(let e=0,c=i.length;e<c;e++)o.push(s.getDependency("node",i[e]));const a=void 0===r.skin?Promise.resolve(null):s.getDependency("skin",r.skin);return Promise.all([n,Promise.all(o),a]).then(function(t){const s=t[0],r=t[1],n=t[2];null!==n&&s.traverse(function(e){e.isSkinnedMesh&&e.bind(n,ee)});for(let e=0,o=r.length;e<o;e++)s.add(r[e]);if(void 0!==s.userData.pivot&&r.length>0){const t=s.userData.pivot,n=r[0];s.pivot=(new e.Vector3$1).fromArray(t),s.position.x-=t[0],s.position.y-=t[1],s.position.z-=t[2],n.position.set(0,0,0),delete s.userData.pivot}return s})}_loadNodeShallow(t){const s=this.json,r=this.extensions,n=this;if(void 0!==this.nodeCache[t])return this.nodeCache[t];const o=s.nodes[t],i=o.name?n.createUniqueName(o.name):"",a=[],c=n._invokeOne(function(e){return e.createNodeMesh&&e.createNodeMesh(t)});return c&&a.push(c),void 0!==o.camera&&a.push(n.getDependency("camera",o.camera).then(function(e){return n._getNodeRef(n.cameraCache,o.camera,e)})),n._invokeAll(function(e){return e.createNodeAttachment&&e.createNodeAttachment(t)}).forEach(function(e){a.push(e)}),this.nodeCache[t]=Promise.all(a).then(function(s){let a;if(a=!0===o.isBone?new e.Bone$1:s.length>1?new e.Group$1:1===s.length?s[0]:new e.Object3D$1,a!==s[0])for(let e=0,t=s.length;e<t;e++)a.add(s[e]);if(o.name&&(a.userData.name=o.name,a.name=i),W(a,o),o.extensions&&q(r,a,o),void 0!==o.matrix){const t=new e.Matrix4$1;t.fromArray(o.matrix),a.applyMatrix4(t)}else void 0!==o.translation&&a.position.fromArray(o.translation),void 0!==o.rotation&&a.quaternion.fromArray(o.rotation),void 0!==o.scale&&a.scale.fromArray(o.scale);if(n.associations.has(a)){if(void 0!==o.mesh&&n.meshCache.refs[o.mesh]>1){const e=n.associations.get(a);n.associations.set(a,{...e})}}else n.associations.set(a,{});return n.associations.get(a).nodes=t,a}),this.nodeCache[t]}loadScene(t){const r=this.extensions,n=this.json.scenes[t],o=this,i=new e.Group$1;n.name&&(i.name=o.createUniqueName(n.name)),W(i,n),n.extensions&&q(r,i,n);const a=n.nodes||[],c=[];for(let e=0,s=a.length;e<s;e++)c.push(o.getDependency("node",a[e]));return Promise.all(c).then(function(t){for(let e=0,r=t.length;e<r;e++){const r=t[e];null!==r.parent?i.add(s(r)):i.add(r)}return o.associations=(t=>{const s=new Map;for(const[r,n]of o.associations)(r instanceof e.Material$1||r instanceof e.Texture$1)&&s.set(r,n);return t.traverse(e=>{const t=o.associations.get(e);null!=t&&s.set(e,t)}),s})(i),i})}_createAnimationTracks(t,s,r,n,o){const i=[],a=t.name?t.name:t.uuid,c=[];function l(e){e.morphTargetInfluences&&c.push(e.name?e.name:e.uuid)}let u;switch(B[o.path]===B.weights?(l(t),t.isGroup&&t.children.forEach(l)):c.push(a),B[o.path]){case B.weights:u=e.NumberKeyframeTrack$1;break;case B.rotation:u=e.QuaternionKeyframeTrack$1;break;case B.translation:case B.scale:u=e.VectorKeyframeTrack$1;break;default:if(1===r.itemSize)u=e.NumberKeyframeTrack$1;else u=e.VectorKeyframeTrack$1}const h=void 0!==n.interpolation?K[n.interpolation]:e.InterpolateLinear$1,d=this._getArrayFromAccessor(r);for(let e=0,p=c.length;e<p;e++){const t=new u(c[e]+"."+B[o.path],s.array,d,h);"CUBICSPLINE"===n.interpolation&&this._createCubicSplineTrackInterpolant(t),i.push(t)}return i}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=Z(t.constructor),s=new Float32Array(t.length);for(let r=0,n=t.length;r<n;r++)s[r]=t[r]*e;t=s}return t}_createCubicSplineTrackInterpolant(t){t.createInterpolant=function(t){return new(this instanceof e.QuaternionKeyframeTrack$1?H:O)(this.times,this.values,this.getValueSize()/3,t)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}};function se(t,s,r){const n=s.attributes,o=[];function i(e,s){return r.getDependency("accessor",e).then(function(e){t.setAttribute(s,e)})}for(const e in n){const s=G[e]||e.toLowerCase();s in t.attributes||o.push(i(n[e],s))}if(void 0!==s.indices&&!t.index){const e=r.getDependency("accessor",s.indices).then(function(e){t.setIndex(e)});o.push(e)}return"srgb-linear"!==e.ColorManagement$1.workingColorSpace&&"COLOR_0"in n&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${e.ColorManagement$1.workingColorSpace}" not supported.`),W(t,s),function(t,s,r){const n=s.attributes,o=new e.Box3$1;if(void 0===n.POSITION)return;{const t=r.json.accessors[n.POSITION],s=t.min,i=t.max;if(void 0===s||void 0===i)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(o.set(new e.Vector3$1(s[0],s[1],s[2]),new e.Vector3$1(i[0],i[1],i[2])),t.normalized){const e=Z(k[t.componentType]);o.min.multiplyScalar(e),o.max.multiplyScalar(e)}}const i=s.targets;if(void 0!==i){const t=new e.Vector3$1,s=new e.Vector3$1;for(let e=0,n=i.length;e<n;e++){const n=i[e];if(void 0!==n.POSITION){const e=r.json.accessors[n.POSITION],o=e.min,i=e.max;if(void 0!==o&&void 0!==i){if(s.setX(Math.max(Math.abs(o[0]),Math.abs(i[0]))),s.setY(Math.max(Math.abs(o[1]),Math.abs(i[1]))),s.setZ(Math.max(Math.abs(o[2]),Math.abs(i[2]))),e.normalized){const t=Z(k[e.componentType]);s.multiplyScalar(t)}t.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}o.expandByVector(t)}t.boundingBox=o;const a=new e.Sphere$1;o.getCenter(a.center),a.radius=o.min.distanceTo(o.max)/2,t.boundingSphere=a}(t,s,r),Promise.all(o).then(function(){return void 0!==s.targets?function(e,t,s){let r=!1,n=!1,o=!1;for(let l=0,u=t.length;l<u;l++){const e=t[l];if(void 0!==e.POSITION&&(r=!0),void 0!==e.NORMAL&&(n=!0),void 0!==e.COLOR_0&&(o=!0),r&&n&&o)break}if(!r&&!n&&!o)return Promise.resolve(e);const i=[],a=[],c=[];for(let l=0,u=t.length;l<u;l++){const u=t[l];if(r){const t=void 0!==u.POSITION?s.getDependency("accessor",u.POSITION):e.attributes.position;i.push(t)}if(n){const t=void 0!==u.NORMAL?s.getDependency("accessor",u.NORMAL):e.attributes.normal;a.push(t)}if(o){const t=void 0!==u.COLOR_0?s.getDependency("accessor",u.COLOR_0):e.attributes.color;c.push(t)}}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c)]).then(function(t){const s=t[0],i=t[1],a=t[2];return r&&(e.morphAttributes.position=s),n&&(e.morphAttributes.normal=i),o&&(e.morphAttributes.color=a),e.morphTargetsRelative=!0,e})}(t,s.targets,r):t})}exports.GLTFLoader=n;
1
+ /*! Web-kit v1.2.0-develop.13 | (c) 2026 MapVX */
2
+ !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8cb8c344-4ae7-4371-88d5-cb87eba075ac",e._sentryDebugIdIdentifier="sentry-dbid-8cb8c344-4ae7-4371-88d5-cb87eba075ac")}catch(e){}}();const e=require("./three.module-BHURJnCD.cjs");function t(e,t){if(0===t)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(2===t||1===t){let s=e.getIndex();if(null===s){const t=[],r=e.getAttribute("position");if(void 0===r)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e<r.count;e++)t.push(e);e.setIndex(t),s=e.getIndex()}const r=s.count-2,n=[];if(2===t)for(let e=1;e<=r;e++)n.push(s.getX(0)),n.push(s.getX(e)),n.push(s.getX(e+1));else for(let e=0;e<r;e++)e%2==0?(n.push(s.getX(e)),n.push(s.getX(e+1)),n.push(s.getX(e+2))):(n.push(s.getX(e+2)),n.push(s.getX(e+1)),n.push(s.getX(e)));n.length/3!==r&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const o=e.clone();return o.setIndex(n),o.clearGroups(),o}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e}function s(e){const t=new Map,s=new Map,n=e.clone();return r(e,n,function(e,r){t.set(r,e),s.set(e,r)}),n.traverse(function(e){if(!e.isSkinnedMesh)return;const r=e,n=t.get(e),o=n.skeleton.bones;r.skeleton=n.skeleton.clone(),r.bindMatrix.copy(n.bindMatrix),r.skeleton.bones=o.map(function(e){return s.get(e)}),r.bind(r.skeleton,r.bindMatrix)}),n}function r(e,t,s){s(e,t);for(let n=0;n<e.children.length;n++)r(e.children[n],t.children[n],s)}var n=class extends e.Loader$1{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new h(e)}),this.register(function(e){return new d(e)}),this.register(function(e){return new E(e)}),this.register(function(e){return new v(e)}),this.register(function(e){return new M(e)}),this.register(function(e){return new m(e)}),this.register(function(e){return new f(e)}),this.register(function(e){return new g(e)}),this.register(function(e){return new T(e)}),this.register(function(e){return new u(e)}),this.register(function(e){return new R(e)}),this.register(function(e){return new p(e)}),this.register(function(e){return new _(e)}),this.register(function(e){return new x(e)}),this.register(function(e){return new c(e)}),this.register(function(e){return new A(e,a.EXT_MESHOPT_COMPRESSION)}),this.register(function(e){return new A(e,a.KHR_MESHOPT_COMPRESSION)}),this.register(function(e){return new S(e)})}load(t,s,r,n){const o=this;let i;if(""!==this.resourcePath)i=this.resourcePath;else if(""!==this.path){const s=e.LoaderUtils$1.extractUrlBase(t);i=e.LoaderUtils$1.resolveURL(s,this.path)}else i=e.LoaderUtils$1.extractUrlBase(t);this.manager.itemStart(t);const a=function(e){n?n(e):console.error(e),o.manager.itemError(t),o.manager.itemEnd(t)},c=new e.FileLoader$1(this.manager);c.setPath(this.path),c.setResponseType("arraybuffer"),c.setRequestHeader(this.requestHeader),c.setWithCredentials(this.withCredentials),c.load(t,function(e){try{o.parse(e,i,function(e){s(e),o.manager.itemEnd(t)},a)}catch(r){a(r)}},r,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,s,r){let n;const o={},i={},c=new TextDecoder;if("string"==typeof e)n=JSON.parse(e);else if(e instanceof ArrayBuffer)if(c.decode(new Uint8Array(e,0,4))===y){try{o[a.KHR_BINARY_GLTF]=new I(e)}catch(h){return void(r&&r(h))}n=JSON.parse(o[a.KHR_BINARY_GLTF].content)}else n=JSON.parse(c.decode(e));else n=e;if(void 0===n.asset||n.asset.version[0]<2)return void(r&&r(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const u=new te(n,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});u.fileLoader.setRequestHeader(this.requestHeader);for(let a=0;a<this.pluginCallbacks.length;a++){const e=this.pluginCallbacks[a](u);e.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),i[e.name]=e,o[e.name]=!0}if(n.extensionsUsed)for(let d=0;d<n.extensionsUsed.length;++d){const e=n.extensionsUsed[d],t=n.extensionsRequired||[];switch(e){case a.KHR_MATERIALS_UNLIT:o[e]=new l;break;case a.KHR_DRACO_MESH_COMPRESSION:o[e]=new b(n,this.dracoLoader);break;case a.KHR_TEXTURE_TRANSFORM:o[e]=new C;break;case a.KHR_MESH_QUANTIZATION:o[e]=new N;break;default:t.indexOf(e)>=0&&void 0===i[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}u.setExtensions(o),u.setPlugins(i),u.parse(s,r)}parseAsync(e,t){const s=this;return new Promise(function(r,n){s.parse(e,t,r,n)})}};function o(){let e={};return{get:function(t){return e[t]},add:function(t,s){e[t]=s},remove:function(t){delete e[t]},removeAll:function(){e={}}}}function i(e,t,s){const r=e.json.materials[t];return r.extensions&&r.extensions[s]?r.extensions[s]:null}var a={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",KHR_MESHOPT_COMPRESSION:"KHR_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},c=class{constructor(e){this.parser=e,this.name=a.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let s=0,r=t.length;s<r;s++){const r=t[s];r.extensions&&r.extensions[this.name]&&void 0!==r.extensions[this.name].light&&e._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(t){const s=this.parser,r="light:"+t;let n=s.cache.get(r);if(n)return n;const o=s.json,i=((o.extensions&&o.extensions[this.name]||{}).lights||[])[t];let a;const c=new e.Color$1(16777215);void 0!==i.color&&c.setRGB(i.color[0],i.color[1],i.color[2],e.LinearSRGBColorSpace$1);const l=void 0!==i.range?i.range:0;switch(i.type){case"directional":a=new e.DirectionalLight$1(c),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new e.PointLight$1(c),a.distance=l;break;case"spot":a=new e.SpotLight$1(c),a.distance=l,i.spot=i.spot||{},i.spot.innerConeAngle=void 0!==i.spot.innerConeAngle?i.spot.innerConeAngle:0,i.spot.outerConeAngle=void 0!==i.spot.outerConeAngle?i.spot.outerConeAngle:Math.PI/4,a.angle=i.spot.outerConeAngle,a.penumbra=1-i.spot.innerConeAngle/i.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+i.type)}return a.position.set(0,0,0),W(a,i),void 0!==i.intensity&&(a.intensity=i.intensity),a.name=s.createUniqueName(i.name||"light_"+t),n=Promise.resolve(a),s.cache.add(r,n),n}getDependency(e,t){if("light"===e)return this._loadLight(t)}createNodeAttachment(e){const t=this,s=this.parser,r=s.json.nodes[e],n=(r.extensions&&r.extensions[this.name]||{}).light;return void 0===n?null:this._loadLight(n).then(function(e){return s._getNodeRef(t.cache,n,e)})}},l=class{constructor(){this.name=a.KHR_MATERIALS_UNLIT}getMaterialType(){return e.MeshBasicMaterial$1}extendParams(t,s,r){const n=[];t.color=new e.Color$1(1,1,1),t.opacity=1;const o=s.pbrMetallicRoughness;if(o){if(Array.isArray(o.baseColorFactor)){const s=o.baseColorFactor;t.color.setRGB(s[0],s[1],s[2],e.LinearSRGBColorSpace$1),t.opacity=s[3]}void 0!==o.baseColorTexture&&n.push(r.assignTexture(t,"map",o.baseColorTexture,e.SRGBColorSpace$1))}return Promise.all(n)}},u=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);return null===s||void 0!==s.emissiveStrength&&(t.emissiveIntensity=s.emissiveStrength),Promise.resolve()}},h=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];if(void 0!==r.clearcoatFactor&&(s.clearcoat=r.clearcoatFactor),void 0!==r.clearcoatTexture&&n.push(this.parser.assignTexture(s,"clearcoatMap",r.clearcoatTexture)),void 0!==r.clearcoatRoughnessFactor&&(s.clearcoatRoughness=r.clearcoatRoughnessFactor),void 0!==r.clearcoatRoughnessTexture&&n.push(this.parser.assignTexture(s,"clearcoatRoughnessMap",r.clearcoatRoughnessTexture)),void 0!==r.clearcoatNormalTexture&&(n.push(this.parser.assignTexture(s,"clearcoatNormalMap",r.clearcoatNormalTexture)),void 0!==r.clearcoatNormalTexture.scale)){const t=r.clearcoatNormalTexture.scale;s.clearcoatNormalScale=new e.Vector2$1(t,t)}return Promise.all(n)}},d=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_DISPERSION}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);return null===s||(t.dispersion=void 0!==s.dispersion?s.dispersion:0),Promise.resolve()}},p=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return void 0!==s.iridescenceFactor&&(t.iridescence=s.iridescenceFactor),void 0!==s.iridescenceTexture&&r.push(this.parser.assignTexture(t,"iridescenceMap",s.iridescenceTexture)),void 0!==s.iridescenceIor&&(t.iridescenceIOR=s.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==s.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),void 0!==s.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),void 0!==s.iridescenceThicknessTexture&&r.push(this.parser.assignTexture(t,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(r)}},m=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_SHEEN}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];if(s.sheenColor=new e.Color$1(0,0,0),s.sheenRoughness=0,s.sheen=1,void 0!==r.sheenColorFactor){const t=r.sheenColorFactor;s.sheenColor.setRGB(t[0],t[1],t[2],e.LinearSRGBColorSpace$1)}return void 0!==r.sheenRoughnessFactor&&(s.sheenRoughness=r.sheenRoughnessFactor),void 0!==r.sheenColorTexture&&n.push(this.parser.assignTexture(s,"sheenColorMap",r.sheenColorTexture,e.SRGBColorSpace$1)),void 0!==r.sheenRoughnessTexture&&n.push(this.parser.assignTexture(s,"sheenRoughnessMap",r.sheenRoughnessTexture)),Promise.all(n)}},f=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return void 0!==s.transmissionFactor&&(t.transmission=s.transmissionFactor),void 0!==s.transmissionTexture&&r.push(this.parser.assignTexture(t,"transmissionMap",s.transmissionTexture)),Promise.all(r)}},g=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_VOLUME}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];s.thickness=void 0!==r.thicknessFactor?r.thicknessFactor:0,void 0!==r.thicknessTexture&&n.push(this.parser.assignTexture(s,"thicknessMap",r.thicknessTexture)),s.attenuationDistance=r.attenuationDistance||1/0;const o=r.attenuationColor||[1,1,1];return s.attenuationColor=(new e.Color$1).setRGB(o[0],o[1],o[2],e.LinearSRGBColorSpace$1),Promise.all(n)}},T=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_IOR}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);return null===s||(t.ior=void 0!==s.ior?s.ior:1.5,0===t.ior&&(t.ior=1e3)),Promise.resolve()}},R=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_SPECULAR}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(t,s){const r=i(this.parser,t,this.name);if(null===r)return Promise.resolve();const n=[];s.specularIntensity=void 0!==r.specularFactor?r.specularFactor:1,void 0!==r.specularTexture&&n.push(this.parser.assignTexture(s,"specularIntensityMap",r.specularTexture));const o=r.specularColorFactor||[1,1,1];return s.specularColor=(new e.Color$1).setRGB(o[0],o[1],o[2],e.LinearSRGBColorSpace$1),void 0!==r.specularColorTexture&&n.push(this.parser.assignTexture(s,"specularColorMap",r.specularColorTexture,e.SRGBColorSpace$1)),Promise.all(n)}},x=class{constructor(e){this.parser=e,this.name=a.EXT_MATERIALS_BUMP}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return t.bumpScale=void 0!==s.bumpFactor?s.bumpFactor:1,void 0!==s.bumpTexture&&r.push(this.parser.assignTexture(t,"bumpMap",s.bumpTexture)),Promise.all(r)}},_=class{constructor(e){this.parser=e,this.name=a.KHR_MATERIALS_ANISOTROPY}getMaterialType(t){return null!==i(this.parser,t,this.name)?e.MeshPhysicalMaterial$1:null}extendMaterialParams(e,t){const s=i(this.parser,e,this.name);if(null===s)return Promise.resolve();const r=[];return void 0!==s.anisotropyStrength&&(t.anisotropy=s.anisotropyStrength),void 0!==s.anisotropyRotation&&(t.anisotropyRotation=s.anisotropyRotation),void 0!==s.anisotropyTexture&&r.push(this.parser.assignTexture(t,"anisotropyMap",s.anisotropyTexture)),Promise.all(r)}},E=class{constructor(e){this.parser=e,this.name=a.KHR_TEXTURE_BASISU}loadTexture(e){const t=this.parser,s=t.json,r=s.textures[e];if(!r.extensions||!r.extensions[this.name])return null;const n=r.extensions[this.name],o=t.options.ktx2Loader;if(!o){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,n.source,o)}},v=class{constructor(e){this.parser=e,this.name=a.EXT_TEXTURE_WEBP}loadTexture(e){const t=this.name,s=this.parser,r=s.json,n=r.textures[e];if(!n.extensions||!n.extensions[t])return null;const o=n.extensions[t],i=r.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}},M=class{constructor(e){this.parser=e,this.name=a.EXT_TEXTURE_AVIF}loadTexture(e){const t=this.name,s=this.parser,r=s.json,n=r.textures[e];if(!n.extensions||!n.extensions[t])return null;const o=n.extensions[t],i=r.images[o.source];let a=s.textureLoader;if(i.uri){const e=s.options.manager.getHandler(i.uri);null!==e&&(a=e)}return s.loadTextureImage(e,o.source,a)}},A=class{constructor(e,t){this.name=t,this.parser=e}loadBufferView(e){const t=this.parser.json,s=t.bufferViews[e];if(s.extensions&&s.extensions[this.name]){const e=s.extensions[this.name],r=this.parser.getDependency("buffer",e.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(t){const s=e.byteOffset||0,r=e.byteLength||0,o=e.count,i=e.byteStride,a=new Uint8Array(t,s,r);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(o,i,a,e.mode,e.filter).then(function(e){return e.buffer}):n.ready.then(function(){const t=new ArrayBuffer(o*i);return n.decodeGltfBuffer(new Uint8Array(t),o,i,a,e.mode,e.filter),t})})}return null}},S=class{constructor(e){this.name=a.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(t){const s=this.parser.json,r=s.nodes[t];if(!r.extensions||!r.extensions[this.name]||void 0===r.mesh)return null;const n=s.meshes[r.mesh];for(const e of n.primitives)if(e.mode!==$.TRIANGLES&&e.mode!==$.TRIANGLE_STRIP&&e.mode!==$.TRIANGLE_FAN&&void 0!==e.mode)return null;const o=r.extensions[this.name].attributes,i=[],a={};for(const e in o)i.push(this.parser.getDependency("accessor",o[e]).then(t=>(a[e]=t,a[e])));return i.length<1?null:(i.push(this.parser.createNodeMesh(t)),Promise.all(i).then(t=>{const s=t.pop(),r=s.isGroup?s.children:[s],n=t[0].count,o=[];for(const i of r){const t=new e.Matrix4$1,s=new e.Vector3$1,r=new e.Quaternion$1,c=new e.Vector3$1(1,1,1),l=new e.InstancedMesh$1(i.geometry,i.material,n);for(let e=0;e<n;e++)a.TRANSLATION&&s.fromBufferAttribute(a.TRANSLATION,e),a.ROTATION&&r.fromBufferAttribute(a.ROTATION,e),a.SCALE&&c.fromBufferAttribute(a.SCALE,e),l.setMatrixAt(e,t.compose(s,r,c));for(const n in a)if("_COLOR_0"===n){const t=a[n];l.instanceColor=new e.InstancedBufferAttribute$1(t.array,t.itemSize,t.normalized)}else"TRANSLATION"!==n&&"ROTATION"!==n&&"SCALE"!==n&&i.geometry.setAttribute(n,a[n]);e.Object3D$1.prototype.copy.call(l,i),this.parser.assignFinalMaterial(l),o.push(l)}return s.isGroup?(s.clear(),s.add(...o),s):o[0]}))}},y="glTF",L=1313821514,w=5130562,I=class{constructor(e){this.name=a.KHR_BINARY_GLTF,this.content=null,this.body=null;const t=new DataView(e,0,12),s=new TextDecoder;if(this.header={magic:s.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==y)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const r=this.header.length-12,n=new DataView(e,12);let o=0;for(;o<r;){const t=n.getUint32(o,!0);o+=4;const r=n.getUint32(o,!0);if(o+=4,r===L){const r=new Uint8Array(e,12+o,t);this.content=s.decode(r)}else if(r===w){const s=12+o;this.body=e.slice(s,s+t)}o+=t}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}},b=class{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=a.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(t,s){const r=this.json,n=this.dracoLoader,o=t.extensions[this.name].bufferView,i=t.extensions[this.name].attributes,a={},c={},l={};for(const e in i){const t=G[e]||e.toLowerCase();a[t]=i[e]}for(const e in t.attributes){const s=G[e]||e.toLowerCase();if(void 0!==i[e]){const n=r.accessors[t.attributes[e]];l[s]=k[n.componentType].name,c[s]=!0===n.normalized}}return s.getDependency("bufferView",o).then(function(t){return new Promise(function(s,r){n.decodeDracoFile(t,function(e){for(const t in e.attributes){const s=e.attributes[t],r=c[t];void 0!==r&&(s.normalized=r)}s(e)},a,l,e.LinearSRGBColorSpace$1,r)})})}},C=class{constructor(){this.name=a.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return void 0!==t.texCoord&&t.texCoord!==e.channel||void 0!==t.offset||void 0!==t.rotation||void 0!==t.scale?(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0,e):e}},N=class{constructor(){this.name=a.KHR_MESH_QUANTIZATION}},O=class extends e.Interpolant$1{constructor(e,t,s,r){super(e,t,s,r)}copySampleValue_(e){const t=this.resultBuffer,s=this.sampleValues,r=this.valueSize,n=e*r*3+r;for(let o=0;o!==r;o++)t[o]=s[n+o];return t}interpolate_(e,t,s,r){const n=this.resultBuffer,o=this.sampleValues,i=this.valueSize,a=2*i,c=3*i,l=r-t,u=(s-t)/l,h=u*u,d=h*u,p=e*c,m=p-c,f=-2*d+3*h,g=d-h,T=1-f,R=g-h+u;for(let x=0;x!==i;x++){const e=o[m+x+i],t=o[m+x+a]*l,s=o[p+x+i],r=o[p+x]*l;n[x]=T*e+R*t+f*s+g*r}return n}},P=new e.Quaternion$1,H=class extends O{interpolate_(e,t,s,r){const n=super.interpolate_(e,t,s,r);return P.fromArray(n).normalize().toArray(n),n}},$={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},k={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},F={9728:e.NearestFilter$1,9729:e.LinearFilter$1,9984:e.NearestMipmapNearestFilter$1,9985:e.LinearMipmapNearestFilter$1,9986:e.NearestMipmapLinearFilter$1,9987:e.LinearMipmapLinearFilter$1},D={33071:e.ClampToEdgeWrapping$1,33648:e.MirroredRepeatWrapping$1,10497:e.RepeatWrapping$1},U={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},G={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},B={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},K={CUBICSPLINE:void 0,LINEAR:e.InterpolateLinear$1,STEP:e.InterpolateDiscrete$1},V="OPAQUE",j="MASK",X="BLEND";function z(t){return void 0===t.DefaultMaterial&&(t.DefaultMaterial=new e.MeshStandardMaterial$1({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:0})),t.DefaultMaterial}function q(e,t,s){for(const r in s.extensions)void 0===e[r]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=s.extensions[r])}function W(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Y(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let s=0,r=t.weights.length;s<r;s++)e.morphTargetInfluences[s]=t.weights[s];if(t.extras&&Array.isArray(t.extras.targetNames)){const s=t.extras.targetNames;if(e.morphTargetInfluences.length===s.length){e.morphTargetDictionary={};for(let t=0,r=s.length;t<r;t++)e.morphTargetDictionary[s[t]]=t}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function Q(e){let t;const s=e.extensions&&e.extensions[a.KHR_DRACO_MESH_COMPRESSION];if(t=s?"draco:"+s.bufferView+":"+s.indices+":"+J(s.attributes):e.indices+":"+J(e.attributes)+":"+e.mode,void 0!==e.targets)for(let r=0,n=e.targets.length;r<n;r++)t+=":"+J(e.targets[r]);return t}function J(e){let t="";const s=Object.keys(e).sort();for(let r=0,n=s.length;r<n;r++)t+=s[r]+":"+e[s[r]]+";";return t}function Z(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 new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}var ee=new e.Matrix4$1,te=class{constructor(t={},s={}){this.json=t,this.extensions={},this.plugins={},this.options=s,this.cache=new o,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 r=!1,n=-1,i=!1,a=-1;if("undefined"!=typeof navigator&&void 0!==navigator.userAgent){const e=navigator.userAgent;r=!0===/^((?!chrome|android).)*safari/i.test(e);const t=e.match(/Version\/(\d+)/);n=r&&t?parseInt(t[1],10):-1,i=e.indexOf("Firefox")>-1,a=i?e.match(/Firefox\/([0-9]+)\./)[1]:-1}"undefined"==typeof createImageBitmap||r&&n<17||i&&a<98?this.textureLoader=new e.TextureLoader$1(this.options.manager):this.textureLoader=new e.ImageBitmapLoader$1(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new e.FileLoader$1(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const s=this,r=this.json,n=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([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])}).then(function(t){const o={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:s,userData:{}};return q(n,o,r),W(o,r),Promise.all(s._invokeAll(function(e){return e.afterRoot&&e.afterRoot(o)})).then(function(){for(const e of o.scenes)e.updateMatrixWorld();e(o)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],s=this.json.meshes||[];for(let r=0,n=t.length;r<n;r++){const s=t[r].joints;for(let t=0,r=s.length;t<r;t++)e[s[t]].isBone=!0}for(let r=0,n=e.length;r<n;r++){const t=e[r];void 0!==t.mesh&&(this._addNodeRef(this.meshCache,t.mesh),void 0!==t.skin&&(s[t.mesh].isSkinnedMesh=!0)),void 0!==t.camera&&this._addNodeRef(this.cameraCache,t.camera)}}_addNodeRef(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,s){if(e.refs[t]<=1)return s;const r=s.clone(),n=(e,t)=>{const s=this.associations.get(e);null!=s&&this.associations.set(t,s);for(const[r,o]of e.children.entries())n(o,t.children[r])};return n(s,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let s=0;s<t.length;s++){const r=e(t[s]);if(r)return r}return null}_invokeAll(e){const t=Object.values(this.plugins);t.unshift(this);const s=[];for(let r=0;r<t.length;r++){const n=e(t[r]);n&&s.push(n)}return s}getDependency(e,t){const s=e+":"+t;let r=this.cache.get(s);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(s){return s!=this&&s.getDependency&&s.getDependency(e,t)}),!r)throw new Error("Unknown type: "+e)}this.cache.add(s,r)}return r}getDependencies(e){let t=this.cache.get(e);if(!t){const s=this,r=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(r.map(function(t,r){return s.getDependency(e,r)})),this.cache.add(e,t)}return t}loadBuffer(t){const s=this.json.buffers[t],r=this.fileLoader;if(s.type&&"arraybuffer"!==s.type)throw new Error("THREE.GLTFLoader: "+s.type+" buffer type is not supported.");if(void 0===s.uri&&0===t)return Promise.resolve(this.extensions[a.KHR_BINARY_GLTF].body);const n=this.options;return new Promise(function(t,o){r.load(e.LoaderUtils$1.resolveURL(s.uri,n.path),t,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+s.uri+'".'))})})}loadBufferView(e){const t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){const s=t.byteLength||0,r=t.byteOffset||0;return e.slice(r,r+s)})}loadAccessor(t){const s=this,r=this.json,n=this.json.accessors[t];if(void 0===n.bufferView&&void 0===n.sparse){const t=U[n.type],s=k[n.componentType],r=!0===n.normalized,o=new s(n.count*t);return Promise.resolve(new e.BufferAttribute$1(o,t,r))}const o=[];return void 0!==n.bufferView?o.push(this.getDependency("bufferView",n.bufferView)):o.push(null),void 0!==n.sparse&&(o.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),o.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(o).then(function(t){const o=t[0],i=U[n.type],a=k[n.componentType],c=a.BYTES_PER_ELEMENT,l=c*i,u=n.byteOffset||0,h=void 0!==n.bufferView?r.bufferViews[n.bufferView].byteStride:void 0,d=!0===n.normalized;let p,m;if(h&&h!==l){const t=Math.floor(u/h),r="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+t+":"+n.count;let l=s.cache.get(r);l||(p=new a(o,t*h,n.count*h/c),l=new e.InterleavedBuffer$1(p,h/c),s.cache.add(r,l)),m=new e.InterleavedBufferAttribute$1(l,i,u%h/c,d)}else p=null===o?new a(n.count*i):new a(o,u,n.count*i),m=new e.BufferAttribute$1(p,i,d);if(void 0!==n.sparse){const s=U.SCALAR,r=k[n.sparse.indices.componentType],c=n.sparse.indices.byteOffset||0,l=n.sparse.values.byteOffset||0,u=new r(t[1],c,n.sparse.count*s),h=new a(t[2],l,n.sparse.count*i);null!==o&&(m=new e.BufferAttribute$1(m.array.slice(),m.itemSize,m.normalized)),m.normalized=!1;for(let e=0,t=u.length;e<t;e++){const t=u[e];if(m.setX(t,h[e*i]),i>=2&&m.setY(t,h[e*i+1]),i>=3&&m.setZ(t,h[e*i+2]),i>=4&&m.setW(t,h[e*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}m.normalized=d}return m})}loadTexture(e){const t=this.json,s=this.options,r=t.textures[e].source,n=t.images[r];let o=this.textureLoader;if(n.uri){const e=s.manager.getHandler(n.uri);null!==e&&(o=e)}return this.loadTextureImage(e,r,o)}loadTextureImage(e,t,s){const r=this,n=this.json,o=n.textures[e],i=n.images[t],a=(i.uri||i.bufferView)+":"+o.sampler;if(this.textureCache[a])return this.textureCache[a];const c=this.loadImageSource(t,s).then(function(t){t.flipY=!1,t.name=o.name||i.name||"",""===t.name&&"string"==typeof i.uri&&!1===i.uri.startsWith("data:image/")&&(t.name=i.uri);const s=(n.samplers||{})[o.sampler]||{};return t.magFilter=F[s.magFilter]||1006,t.minFilter=F[s.minFilter]||1008,t.wrapS=D[s.wrapS]||1e3,t.wrapT=D[s.wrapT]||1e3,t.generateMipmaps=!t.isCompressedTexture&&1003!==t.minFilter&&1006!==t.minFilter,r.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[a]=c,c}loadImageSource(t,s){const r=this.json,n=this.options;if(void 0!==this.sourceCache[t])return this.sourceCache[t].then(e=>e.clone());const o=r.images[t],i=self.URL||self.webkitURL;let a=o.uri||"",c=!1;if(void 0!==o.bufferView)a=this.getDependency("bufferView",o.bufferView).then(function(e){c=!0;const t=new Blob([e],{type:o.mimeType});return a=i.createObjectURL(t),a});else if(void 0===o.uri)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const l=Promise.resolve(a).then(function(t){return new Promise(function(r,o){let i=r;!0===s.isImageBitmapLoader&&(i=function(t){const s=new e.Texture$1(t);s.needsUpdate=!0,r(s)}),s.load(e.LoaderUtils$1.resolveURL(t,n.path),i,void 0,o)})}).then(function(e){var t;return!0===c&&i.revokeObjectURL(a),W(e,o),e.userData.mimeType=o.mimeType||((t=o.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":t.search(/\.ktx2($|\?)/i)>0||0===t.search(/^data\:image\/ktx2/)?"image/ktx2":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",a),e});return this.sourceCache[t]=l,l}assignTexture(e,t,s,r){const n=this;return this.getDependency("texture",s.index).then(function(o){if(!o)return null;if(void 0!==s.texCoord&&s.texCoord>0&&((o=o.clone()).channel=s.texCoord),n.extensions[a.KHR_TEXTURE_TRANSFORM]){const e=void 0!==s.extensions?s.extensions[a.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=n.associations.get(o);o=n.extensions[a.KHR_TEXTURE_TRANSFORM].extendTexture(o,e),n.associations.set(o,t)}}return void 0!==r&&(o.colorSpace=r),e[t]=o,o})}assignFinalMaterial(t){const s=t.geometry;let r=t.material;const n=void 0===s.attributes.tangent,o=void 0!==s.attributes.color,i=void 0===s.attributes.normal;if(t.isPoints){const t="PointsMaterial:"+r.uuid;let s=this.cache.get(t);s||(s=new e.PointsMaterial$1,e.Material$1.prototype.copy.call(s,r),s.color.copy(r.color),s.map=r.map,s.sizeAttenuation=!1,this.cache.add(t,s)),r=s}else if(t.isLine){const t="LineBasicMaterial:"+r.uuid;let s=this.cache.get(t);s||(s=new e.LineBasicMaterial$1,e.Material$1.prototype.copy.call(s,r),s.color.copy(r.color),s.map=r.map,this.cache.add(t,s)),r=s}if(n||o||i){let e="ClonedMaterial:"+r.uuid+":";n&&(e+="derivative-tangents:"),o&&(e+="vertex-colors:"),i&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=r.clone(),o&&(t.vertexColors=!0),i&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(r))),r=t}t.material=r}getMaterialType(){return e.MeshStandardMaterial$1}loadMaterial(t){const s=this,r=this.json,n=this.extensions,o=r.materials[t];let i;const c={},l=[];if((o.extensions||{})[a.KHR_MATERIALS_UNLIT]){const e=n[a.KHR_MATERIALS_UNLIT];i=e.getMaterialType(),l.push(e.extendParams(c,o,s))}else{const r=o.pbrMetallicRoughness||{};if(c.color=new e.Color$1(1,1,1),c.opacity=1,Array.isArray(r.baseColorFactor)){const t=r.baseColorFactor;c.color.setRGB(t[0],t[1],t[2],e.LinearSRGBColorSpace$1),c.opacity=t[3]}void 0!==r.baseColorTexture&&l.push(s.assignTexture(c,"map",r.baseColorTexture,e.SRGBColorSpace$1)),c.metalness=void 0!==r.metallicFactor?r.metallicFactor:1,c.roughness=void 0!==r.roughnessFactor?r.roughnessFactor:1,void 0!==r.metallicRoughnessTexture&&(l.push(s.assignTexture(c,"metalnessMap",r.metallicRoughnessTexture)),l.push(s.assignTexture(c,"roughnessMap",r.metallicRoughnessTexture))),i=this._invokeOne(function(e){return e.getMaterialType&&e.getMaterialType(t)}),l.push(Promise.all(this._invokeAll(function(e){return e.extendMaterialParams&&e.extendMaterialParams(t,c)})))}!0===o.doubleSided&&(c.side=2);const u=o.alphaMode||V;if(u===X?(c.transparent=!0,c.depthWrite=!1):(c.transparent=!1,u===j&&(c.alphaTest=void 0!==o.alphaCutoff?o.alphaCutoff:.5)),void 0!==o.normalTexture&&i!==e.MeshBasicMaterial$1&&(l.push(s.assignTexture(c,"normalMap",o.normalTexture)),c.normalScale=new e.Vector2$1(1,1),void 0!==o.normalTexture.scale)){const e=o.normalTexture.scale;c.normalScale.set(e,e)}if(void 0!==o.occlusionTexture&&i!==e.MeshBasicMaterial$1&&(l.push(s.assignTexture(c,"aoMap",o.occlusionTexture)),void 0!==o.occlusionTexture.strength&&(c.aoMapIntensity=o.occlusionTexture.strength)),void 0!==o.emissiveFactor&&i!==e.MeshBasicMaterial$1){const t=o.emissiveFactor;c.emissive=(new e.Color$1).setRGB(t[0],t[1],t[2],e.LinearSRGBColorSpace$1)}return void 0!==o.emissiveTexture&&i!==e.MeshBasicMaterial$1&&l.push(s.assignTexture(c,"emissiveMap",o.emissiveTexture,e.SRGBColorSpace$1)),Promise.all(l).then(function(){const e=new i(c);return o.name&&(e.name=o.name),W(e,o),s.associations.set(e,{materials:t}),o.extensions&&q(n,e,o),e})}createUniqueName(t){const s=e.PropertyBinding$1.sanitizeNodeName(t||"");return s in this.nodeNamesUsed?s+"_"+ ++this.nodeNamesUsed[s]:(this.nodeNamesUsed[s]=0,s)}loadGeometries(t){const s=this,r=this.extensions,n=this.primitiveCache;function o(e){return r[a.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,s).then(function(t){return se(t,e,s)})}const i=[];for(let c=0,l=t.length;c<l;c++){const r=t[c],l=Q(r),u=n[l];if(u)i.push(u.promise);else{let t;t=r.extensions&&r.extensions[a.KHR_DRACO_MESH_COMPRESSION]?o(r):se(new e.BufferGeometry$1,r,s),n[l]={primitive:r,promise:t},i.push(t)}}return Promise.all(i)}loadMesh(s){const r=this,n=this.json,o=this.extensions,i=n.meshes[s],a=i.primitives,c=[];for(let e=0,t=a.length;e<t;e++){const t=void 0===a[e].material?z(this.cache):this.getDependency("material",a[e].material);c.push(t)}return c.push(r.loadGeometries(a)),Promise.all(c).then(function(n){const c=n.slice(0,n.length-1),l=n[n.length-1],u=[];for(let d=0,p=l.length;d<p;d++){const n=l[d],h=a[d];let p;const m=c[d];if(h.mode===$.TRIANGLES||h.mode===$.TRIANGLE_STRIP||h.mode===$.TRIANGLE_FAN||void 0===h.mode)p=!0===i.isSkinnedMesh?new e.SkinnedMesh$1(n,m):new e.Mesh$1(n,m),!0===p.isSkinnedMesh&&p.normalizeSkinWeights(),h.mode===$.TRIANGLE_STRIP?p.geometry=t(p.geometry,1):h.mode===$.TRIANGLE_FAN&&(p.geometry=t(p.geometry,2));else if(h.mode===$.LINES)p=new e.LineSegments$1(n,m);else if(h.mode===$.LINE_STRIP)p=new e.Line$1(n,m);else if(h.mode===$.LINE_LOOP)p=new e.LineLoop$1(n,m);else{if(h.mode!==$.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+h.mode);p=new e.Points$1(n,m)}Object.keys(p.geometry.morphAttributes).length>0&&Y(p,i),p.name=r.createUniqueName(i.name||"mesh_"+s),W(p,i),h.extensions&&q(o,p,h),r.assignFinalMaterial(p),u.push(p)}for(let e=0,t=u.length;e<t;e++)r.associations.set(u[e],{meshes:s,primitives:e});if(1===u.length)return i.extensions&&q(o,u[0],i),u[0];const h=new e.Group$1;i.extensions&&q(o,h,i),r.associations.set(h,{meshes:s});for(let e=0,t=u.length;e<t;e++)h.add(u[e]);return h})}loadCamera(t){let s;const r=this.json.cameras[t],n=r[r.type];if(n)return"perspective"===r.type?s=new e.PerspectiveCamera$1(e.MathUtils$1.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):"orthographic"===r.type&&(s=new e.OrthographicCamera$1(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),r.name&&(s.name=this.createUniqueName(r.name)),W(s,r),Promise.resolve(s);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(t){const s=this.json.skins[t],r=[];for(let e=0,n=s.joints.length;e<n;e++)r.push(this._loadNodeShallow(s.joints[e]));return void 0!==s.inverseBindMatrices?r.push(this.getDependency("accessor",s.inverseBindMatrices)):r.push(null),Promise.all(r).then(function(t){const r=t.pop(),n=t,o=[],i=[];for(let a=0,c=n.length;a<c;a++){const t=n[a];if(t){o.push(t);const s=new e.Matrix4$1;null!==r&&s.fromArray(r.array,16*a),i.push(s)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',s.joints[a])}return new e.Skeleton$1(o,i)})}loadAnimation(t){const s=this.json,r=this,n=s.animations[t],o=n.name?n.name:"animation_"+t,i=[],a=[],c=[],l=[],u=[];for(let e=0,h=n.channels.length;e<h;e++){const t=n.channels[e],s=n.samplers[t.sampler],r=t.target,o=r.node,h=void 0!==n.parameters?n.parameters[s.input]:s.input,d=void 0!==n.parameters?n.parameters[s.output]:s.output;void 0!==r.node&&(i.push(this.getDependency("node",o)),a.push(this.getDependency("accessor",h)),c.push(this.getDependency("accessor",d)),l.push(s),u.push(r))}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c),Promise.all(l),Promise.all(u)]).then(function(t){const s=t[0],i=t[1],a=t[2],c=t[3],l=t[4],u=[];for(let e=0,n=s.length;e<n;e++){const t=s[e],n=i[e],o=a[e],h=c[e],d=l[e];if(void 0===t)continue;t.updateMatrix&&t.updateMatrix();const p=r._createAnimationTracks(t,n,o,h,d);if(p)for(let e=0;e<p.length;e++)u.push(p[e])}const h=new e.AnimationClip$1(o,void 0,u);return W(h,n),h})}createNodeMesh(e){const t=this.json,s=this,r=t.nodes[e];return void 0===r.mesh?null:s.getDependency("mesh",r.mesh).then(function(e){const t=s._getNodeRef(s.meshCache,r.mesh,e);return void 0!==r.weights&&t.traverse(function(e){if(e.isMesh)for(let t=0,s=r.weights.length;t<s;t++)e.morphTargetInfluences[t]=r.weights[t]}),t})}loadNode(t){const s=this,r=this.json.nodes[t],n=s._loadNodeShallow(t),o=[],i=r.children||[];for(let e=0,c=i.length;e<c;e++)o.push(s.getDependency("node",i[e]));const a=void 0===r.skin?Promise.resolve(null):s.getDependency("skin",r.skin);return Promise.all([n,Promise.all(o),a]).then(function(t){const s=t[0],r=t[1],n=t[2];null!==n&&s.traverse(function(e){e.isSkinnedMesh&&e.bind(n,ee)});for(let e=0,o=r.length;e<o;e++)s.add(r[e]);if(void 0!==s.userData.pivot&&r.length>0){const t=s.userData.pivot,n=r[0];s.pivot=(new e.Vector3$1).fromArray(t),s.position.x-=t[0],s.position.y-=t[1],s.position.z-=t[2],n.position.set(0,0,0),delete s.userData.pivot}return s})}_loadNodeShallow(t){const s=this.json,r=this.extensions,n=this;if(void 0!==this.nodeCache[t])return this.nodeCache[t];const o=s.nodes[t],i=o.name?n.createUniqueName(o.name):"",a=[],c=n._invokeOne(function(e){return e.createNodeMesh&&e.createNodeMesh(t)});return c&&a.push(c),void 0!==o.camera&&a.push(n.getDependency("camera",o.camera).then(function(e){return n._getNodeRef(n.cameraCache,o.camera,e)})),n._invokeAll(function(e){return e.createNodeAttachment&&e.createNodeAttachment(t)}).forEach(function(e){a.push(e)}),this.nodeCache[t]=Promise.all(a).then(function(s){let a;if(a=!0===o.isBone?new e.Bone$1:s.length>1?new e.Group$1:1===s.length?s[0]:new e.Object3D$1,a!==s[0])for(let e=0,t=s.length;e<t;e++)a.add(s[e]);if(o.name&&(a.userData.name=o.name,a.name=i),W(a,o),o.extensions&&q(r,a,o),void 0!==o.matrix){const t=new e.Matrix4$1;t.fromArray(o.matrix),a.applyMatrix4(t)}else void 0!==o.translation&&a.position.fromArray(o.translation),void 0!==o.rotation&&a.quaternion.fromArray(o.rotation),void 0!==o.scale&&a.scale.fromArray(o.scale);if(n.associations.has(a)){if(void 0!==o.mesh&&n.meshCache.refs[o.mesh]>1){const e=n.associations.get(a);n.associations.set(a,{...e})}}else n.associations.set(a,{});return n.associations.get(a).nodes=t,a}),this.nodeCache[t]}loadScene(t){const r=this.extensions,n=this.json.scenes[t],o=this,i=new e.Group$1;n.name&&(i.name=o.createUniqueName(n.name)),W(i,n),n.extensions&&q(r,i,n);const a=n.nodes||[],c=[];for(let e=0,s=a.length;e<s;e++)c.push(o.getDependency("node",a[e]));return Promise.all(c).then(function(t){for(let e=0,r=t.length;e<r;e++){const r=t[e];null!==r.parent?i.add(s(r)):i.add(r)}return o.associations=(t=>{const s=new Map;for(const[r,n]of o.associations)(r instanceof e.Material$1||r instanceof e.Texture$1)&&s.set(r,n);return t.traverse(e=>{const t=o.associations.get(e);null!=t&&s.set(e,t)}),s})(i),i})}_createAnimationTracks(t,s,r,n,o){const i=[],a=t.name?t.name:t.uuid,c=[];function l(e){e.morphTargetInfluences&&c.push(e.name?e.name:e.uuid)}let u;switch(B[o.path]===B.weights?(l(t),t.isGroup&&t.children.forEach(l)):c.push(a),B[o.path]){case B.weights:u=e.NumberKeyframeTrack$1;break;case B.rotation:u=e.QuaternionKeyframeTrack$1;break;case B.translation:case B.scale:u=e.VectorKeyframeTrack$1;break;default:if(1===r.itemSize)u=e.NumberKeyframeTrack$1;else u=e.VectorKeyframeTrack$1}const h=void 0!==n.interpolation?K[n.interpolation]:e.InterpolateLinear$1,d=this._getArrayFromAccessor(r);for(let e=0,p=c.length;e<p;e++){const t=new u(c[e]+"."+B[o.path],s.array,d,h);"CUBICSPLINE"===n.interpolation&&this._createCubicSplineTrackInterpolant(t),i.push(t)}return i}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){const e=Z(t.constructor),s=new Float32Array(t.length);for(let r=0,n=t.length;r<n;r++)s[r]=t[r]*e;t=s}return t}_createCubicSplineTrackInterpolant(t){t.createInterpolant=function(t){return new(this instanceof e.QuaternionKeyframeTrack$1?H:O)(this.times,this.values,this.getValueSize()/3,t)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}};function se(t,s,r){const n=s.attributes,o=[];function i(e,s){return r.getDependency("accessor",e).then(function(e){t.setAttribute(s,e)})}for(const e in n){const s=G[e]||e.toLowerCase();s in t.attributes||o.push(i(n[e],s))}if(void 0!==s.indices&&!t.index){const e=r.getDependency("accessor",s.indices).then(function(e){t.setIndex(e)});o.push(e)}return"srgb-linear"!==e.ColorManagement$1.workingColorSpace&&"COLOR_0"in n&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${e.ColorManagement$1.workingColorSpace}" not supported.`),W(t,s),function(t,s,r){const n=s.attributes,o=new e.Box3$1;if(void 0===n.POSITION)return;{const t=r.json.accessors[n.POSITION],s=t.min,i=t.max;if(void 0===s||void 0===i)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(o.set(new e.Vector3$1(s[0],s[1],s[2]),new e.Vector3$1(i[0],i[1],i[2])),t.normalized){const e=Z(k[t.componentType]);o.min.multiplyScalar(e),o.max.multiplyScalar(e)}}const i=s.targets;if(void 0!==i){const t=new e.Vector3$1,s=new e.Vector3$1;for(let e=0,n=i.length;e<n;e++){const n=i[e];if(void 0!==n.POSITION){const e=r.json.accessors[n.POSITION],o=e.min,i=e.max;if(void 0!==o&&void 0!==i){if(s.setX(Math.max(Math.abs(o[0]),Math.abs(i[0]))),s.setY(Math.max(Math.abs(o[1]),Math.abs(i[1]))),s.setZ(Math.max(Math.abs(o[2]),Math.abs(i[2]))),e.normalized){const t=Z(k[e.componentType]);s.multiplyScalar(t)}t.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}o.expandByVector(t)}t.boundingBox=o;const a=new e.Sphere$1;o.getCenter(a.center),a.radius=o.min.distanceTo(o.max)/2,t.boundingSphere=a}(t,s,r),Promise.all(o).then(function(){return void 0!==s.targets?function(e,t,s){let r=!1,n=!1,o=!1;for(let l=0,u=t.length;l<u;l++){const e=t[l];if(void 0!==e.POSITION&&(r=!0),void 0!==e.NORMAL&&(n=!0),void 0!==e.COLOR_0&&(o=!0),r&&n&&o)break}if(!r&&!n&&!o)return Promise.resolve(e);const i=[],a=[],c=[];for(let l=0,u=t.length;l<u;l++){const u=t[l];if(r){const t=void 0!==u.POSITION?s.getDependency("accessor",u.POSITION):e.attributes.position;i.push(t)}if(n){const t=void 0!==u.NORMAL?s.getDependency("accessor",u.NORMAL):e.attributes.normal;a.push(t)}if(o){const t=void 0!==u.COLOR_0?s.getDependency("accessor",u.COLOR_0):e.attributes.color;c.push(t)}}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(c)]).then(function(t){const s=t[0],i=t[1],a=t[2];return r&&(e.morphAttributes.position=s),n&&(e.morphAttributes.normal=i),o&&(e.morphAttributes.color=a),e.morphTargetsRelative=!0,e})}(t,s.targets,r):t})}exports.GLTFLoader=n;
@@ -1,2 +1,2 @@
1
- /*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
2
- !function(){try{var A="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},I=(new A.Error).stack;I&&(A._sentryDebugIds=A._sentryDebugIds||{},A._sentryDebugIds[I]="ae5a0973-e65e-4d21-893b-f037005f6274",A._sentryDebugIdIdentifier="sentry-dbid-ae5a0973-e65e-4d21-893b-f037005f6274")}catch(A){}}();const A=require("./three.module-CZrl_ZUv.cjs");var I,B,g,C=class{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const I=this.workerCreator();I.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=I}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,I){const B=this.workersResolve[A];if(B&&B(I),this.queue.length){const{resolve:I,msg:B,transfer:g}=this.queue.shift();this.workersResolve[A]=I,this.workers[A].postMessage(B,g)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,I){return new Promise(B=>{const g=this._getIdleWorker();-1!==g?(this._initWorker(g),this.workerStatus|=1<<g,this.workersResolve[g]=B,this.workers[g].postMessage(A,I)):this.queue.push({resolve:B,msg:A,transfer:I})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}},Q=1000054e3,E=1000054001,i=1000054004,e=1000054005,t=1000066e3,o=1000066004,s=class{constructor(A,I,B,g){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+I,B),this._littleEndian=g,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const I=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,I}_skip(A){return this._offset+=A,this}_scan(A,I=0){const B=this._offset;let g=0;for(;this._dataView.getUint8(this._offset)!==I&&g<A;)g++,this._offset++;return g<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+B,g)}},a=(new Uint8Array([0]),[171,75,84,88,32,50,48,187,13,10,26,10]);function r(A){return(new TextDecoder).decode(A)}var n,D={env:{emscripten_notify_memory_growth:function(A){g=new Uint8Array(B.exports.memory.buffer)}}},h=class{init(){return I||(I="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+w).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,D)).then(this._init):WebAssembly.instantiate(Buffer.from(w,"base64"),D).then(this._init))}_init(A){B=A.instance,D.env.emscripten_notify_memory_growth(0)}decode(A,I=0){if(!B)throw new Error("ZSTDDecoder: Await .init() before decoding.");const C=A.byteLength,Q=B.exports.malloc(C);g.set(A,Q),I=I||Number(B.exports.ZSTD_findDecompressedSize(Q,C));const E=B.exports.malloc(I),i=B.exports.ZSTD_decompress(E,I,Q,C),e=g.slice(E,E+i);return B.exports.free(Q),B.exports.free(E),e}},w="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",F=(A.ColorManagement$1.spaces[A.SRGBColorSpace$1],A.SRGBColorSpace$1,new WeakMap),G=0,y=class I extends A.Loader$1{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new C,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return console.warn('KTX2Loader: "detectSupportAsync()" has been deprecated. Use "detectSupport()" and "await renderer.init();" when creating the renderer.'),await A.init(),this.detectSupport(A)}detectSupport(A){return!0===A.isWebGPURenderer?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-s3tc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:(this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},"undefined"!=typeof navigator&&void 0!==navigator.platform&&void 0!==navigator.userAgent&&navigator.platform.indexOf("Linux")>=0&&navigator.userAgent.indexOf("Firefox")>=0&&this.workerConfig.astcSupported&&this.workerConfig.etc2Supported&&this.workerConfig.bptcSupported&&this.workerConfig.dxtSupported&&(this.workerConfig.astcSupported=!1,this.workerConfig.etc2Supported=!1)),this}init(){if(!this.transcoderPending){const B=new A.FileLoader$1(this.manager);B.setPath(this.transcoderPath),B.setWithCredentials(this.withCredentials);const g=B.loadAsync("basis_transcoder.js"),C=new A.FileLoader$1(this.manager);C.setPath(this.transcoderPath),C.setResponseType("arraybuffer"),C.setWithCredentials(this.withCredentials);const Q=C.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([g,Q]).then(([A,B])=>{const g=I.BasisWorker.toString(),C=["/* constants */","let _EngineFormat = "+JSON.stringify(I.EngineFormat),"let _EngineType = "+JSON.stringify(I.EngineType),"let _TranscoderFormat = "+JSON.stringify(I.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(I.BasisFormat),"/* basis_transcoder.js */",A,"/* worker */",g.substring(g.indexOf("{")+1,g.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([C])),this.transcoderBinary=B,this.workerPool.setWorkerCreator(()=>{const A=new Worker(this.workerSourceURL),I=this.transcoderBinary.slice(0);return A.postMessage({type:"init",config:this.workerConfig,transcoderBinary:I},[I]),A})}),G>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),G++}return this.transcoderPending}load(I,B,g,C){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const Q=new A.FileLoader$1(this.manager);Q.setPath(this.path),Q.setCrossOrigin(this.crossOrigin),Q.setWithCredentials(this.withCredentials),Q.setRequestHeader(this.requestHeader),Q.setResponseType("arraybuffer"),Q.load(I,A=>{this.parse(A,B,C)},g,C)}parse(A,I,B){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(F.has(A))return F.get(A).promise.then(I).catch(B);this._createTexture(A).then(A=>I?I(A):null).catch(B)}_createTextureFrom(I,B){const{type:g,error:C,data:{faces:Q,width:E,height:i,format:e,type:t,dfdFlags:o}}=I;if("error"===g)return Promise.reject(C);let s;if(6===B.faceCount)s=new A.CompressedCubeTexture$1(Q,e,t);else{const I=Q[0].mipmaps;s=B.layerCount>1?new A.CompressedArrayTexture$1(I,E,i,B.layerCount,e,t):new A.CompressedTexture$1(I,E,i,e,t)}return s.minFilter=1===Q[0].mipmaps.length?A.LinearFilter$1:A.LinearMipmapLinearFilter$1,s.magFilter=A.LinearFilter$1,s.generateMipmaps=!1,s.needsUpdate=!0,s.colorSpace=c(B),s.premultiplyAlpha=!!(1&o),s}async _createTexture(I,B={}){const g=function(A){const I=new Uint8Array(A.buffer,A.byteOffset,a.length);if(I[0]!==a[0]||I[1]!==a[1]||I[2]!==a[2]||I[3]!==a[3]||I[4]!==a[4]||I[5]!==a[5]||I[6]!==a[6]||I[7]!==a[7]||I[8]!==a[8]||I[9]!==a[9]||I[10]!==a[10]||I[11]!==a[11])throw new Error("Missing KTX 2.0 identifier.");const B={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},g=17*Uint32Array.BYTES_PER_ELEMENT,C=new s(A,a.length,g,!0);B.vkFormat=C._nextUint32(),B.typeSize=C._nextUint32(),B.pixelWidth=C._nextUint32(),B.pixelHeight=C._nextUint32(),B.pixelDepth=C._nextUint32(),B.layerCount=C._nextUint32(),B.faceCount=C._nextUint32(),B.levelCount=C._nextUint32(),B.supercompressionScheme=C._nextUint32();const Q=C._nextUint32(),E=C._nextUint32(),i=C._nextUint32(),e=C._nextUint32(),t=C._nextUint64(),o=C._nextUint64(),n=3*Math.max(B.levelCount,1)*8,D=new s(A,a.length+g,n,!0);for(let s=0,a=Math.max(B.levelCount,1);s<a;s++)B.levels.push({levelData:new Uint8Array(A.buffer,A.byteOffset+D._nextUint64(),D._nextUint64()),uncompressedByteLength:D._nextUint64()});const h=new s(A,Q,E,!0);h._skip(4);const w=h._nextUint16(),F=h._nextUint16(),G=h._nextUint16(),y=h._nextUint16(),R={vendorId:w,descriptorType:F,versionNumber:G,colorModel:h._nextUint8(),colorPrimaries:h._nextUint8(),transferFunction:h._nextUint8(),flags:h._nextUint8(),texelBlockDimension:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],bytesPlane:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],samples:[]},S=(y/4-6)/4;for(let s=0;s<S;s++){const A={bitOffset:h._nextUint16(),bitLength:h._nextUint8(),channelType:h._nextUint8(),samplePosition:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&A.channelType?(A.sampleLower=h._nextInt32(),A.sampleUpper=h._nextInt32()):(A.sampleLower=h._nextUint32(),A.sampleUpper=h._nextUint32()),R.samples[s]=A}B.dataFormatDescriptor.length=0,B.dataFormatDescriptor.push(R);const U=new s(A,i,e,!0);for(;U._offset<e;){const A=U._nextUint32(),I=U._scan(A),g=r(I);if(B.keyValue[g]=U._nextUint8Array(A-I.byteLength-1),g.match(/^ktx/i)){const A=r(B.keyValue[g]);B.keyValue[g]=A.substring(0,A.lastIndexOf("\0"))}U._skip(A%4?4-A%4:0)}if(o<=0)return B;const c=new s(A,t,o,!0),d=c._nextUint16(),L=c._nextUint16(),p=c._nextUint32(),f=c._nextUint32(),N=c._nextUint32(),k=c._nextUint32(),M=[];for(let s=0,a=Math.max(B.levelCount,1);s<a;s++)M.push({imageFlags:c._nextUint32(),rgbSliceByteOffset:c._nextUint32(),rgbSliceByteLength:c._nextUint32(),alphaSliceByteOffset:c._nextUint32(),alphaSliceByteLength:c._nextUint32()});const J=t+c._offset,l=J+p,T=l+f,q=T+N;return B.globalData={endpointCount:d,selectorCount:L,imageDescs:M,endpointsData:new Uint8Array(A.buffer,A.byteOffset+J,p),selectorsData:new Uint8Array(A.buffer,A.byteOffset+l,f),tablesData:new Uint8Array(A.buffer,A.byteOffset+T,N),extendedData:new Uint8Array(A.buffer,A.byteOffset+q,k)},B}(new Uint8Array(I)),C=1000066e3===g.vkFormat&&167===g.dataFormatDescriptor[0].colorModel;if(0!==g.vkFormat&&(!C||this.workerConfig.astcHDRSupported))return async function(I){const{vkFormat:B}=I;if(void 0===S[B])throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+B);void 0===U[B]&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+B);let g;2===I.supercompressionScheme&&(n||(n=new Promise(async A=>{const I=new h;await I.init(),A(I)})),g=await n);const C=[];for(let A=0;A<I.levels.length;A++){const Q=Math.max(1,I.pixelWidth>>A),E=Math.max(1,I.pixelHeight>>A),i=I.pixelDepth?Math.max(1,I.pixelDepth>>A):0,e=I.levels[A];let t,o;if(0===I.supercompressionScheme)t=e.levelData;else{if(2!==I.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");t=g.decode(e.levelData,e.uncompressedByteLength)}o=1015===U[B]?new Float32Array(t.buffer,t.byteOffset,t.byteLength/Float32Array.BYTES_PER_ELEMENT):1016===U[B]||1012===U[B]?new Uint16Array(t.buffer,t.byteOffset,t.byteLength/Uint16Array.BYTES_PER_ELEMENT):35902===U[B]||35899===U[B]?new Uint32Array(t.buffer,t.byteOffset,t.byteLength/Uint32Array.BYTES_PER_ELEMENT):t,C.push({data:o,width:Q,height:E,depth:i})}const Q=0===I.levelCount||C.length>1;let E;if(R.has(S[B]))E=0===I.pixelDepth?new A.DataTexture$1(C[0].data,I.pixelWidth,I.pixelHeight):new A.Data3DTexture$1(C[0].data,I.pixelWidth,I.pixelHeight,I.pixelDepth),E.minFilter=Q?A.NearestMipmapNearestFilter$1:A.NearestFilter$1,E.magFilter=A.NearestFilter$1,E.generateMipmaps=0===I.levelCount;else{if(I.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");E=new A.CompressedTexture$1(C,I.pixelWidth,I.pixelHeight),E.minFilter=Q?A.LinearMipmapLinearFilter$1:A.LinearFilter$1,E.magFilter=A.LinearFilter$1}return E.mipmaps=C,E.type=U[B],E.format=S[B],E.colorSpace=c(I),E.needsUpdate=!0,Promise.resolve(E)}(g);const Q=B,E=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:I,taskConfig:Q},[I])).then(A=>this._createTextureFrom(A.data,g));return F.set(I,{promise:E}),E}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),G--}};y.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},y.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},y.EngineFormat={RGBAFormat:A.RGBAFormat$1,RGBA_ASTC_4x4_Format:A.RGBA_ASTC_4x4_Format$1,RGB_BPTC_UNSIGNED_Format:A.RGB_BPTC_UNSIGNED_Format$1,RGBA_BPTC_Format:A.RGBA_BPTC_Format$1,RGBA_ETC2_EAC_Format:A.RGBA_ETC2_EAC_Format$1,RGBA_PVRTC_4BPPV1_Format:A.RGBA_PVRTC_4BPPV1_Format$1,RGBA_S3TC_DXT5_Format:A.RGBA_S3TC_DXT5_Format$1,RGB_ETC1_Format:A.RGB_ETC1_Format$1,RGB_ETC2_Format:A.RGB_ETC2_Format$1,RGB_PVRTC_4BPPV1_Format:A.RGB_PVRTC_4BPPV1_Format$1,RGBA_S3TC_DXT1_Format:A.RGBA_S3TC_DXT1_Format$1},y.EngineType={UnsignedByteType:A.UnsignedByteType$1,HalfFloatType:A.HalfFloatType$1,FloatType:A.FloatType$1},y.BasisWorker=function(){let A,I,B;const g=_EngineFormat,C=_EngineType,Q=_TranscoderFormat,E=_BasisFormat;self.addEventListener("message",function(g){const Q=g.data;switch(Q.type){case"init":A=Q.config,i=Q.transcoderBinary,I=new Promise(A=>{B={wasmBinary:i,onRuntimeInitialized:A},BASIS(B)}).then(()=>{B.initializeBasis(),void 0===B.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":I.then(()=>{try{const{faces:I,buffers:g,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}=function(I){const g=new B.KTX2File(new Uint8Array(I));function Q(){g.close(),g.delete()}if(!g.isValid())throw Q(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");let i;if(g.isUASTC())i=E.UASTC;else if(g.isETC1S())i=E.ETC1S;else{if(!g.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");i=E.UASTC_HDR}const s=g.getWidth(),a=g.getHeight(),r=g.getLayers()||1,n=g.getLevels(),D=g.getFaces(),h=g.getHasAlpha(),w=g.getDFDFlags(),{transcoderFormat:F,engineFormat:G,engineType:y}=function(I,B,g,C){const Q=e[I];for(let E=0;E<Q.length;E++){const i=Q[E];if((!i.if||A[i.if])&&(i.basisFormat.includes(I)&&!(C&&i.transcoderFormat.length<2)&&(!i.needsPowerOfTwo||t(B)&&t(g))))return{transcoderFormat:i.transcoderFormat[C?1:0],engineFormat:i.engineFormat[C?1:0],engineType:i.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(i,s,a,h);if(!s||!a||!n)throw Q(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!g.startTranscoding())throw Q(),new Error("THREE.KTX2Loader: .startTranscoding failed");const R=[],S=[];for(let A=0;A<D;A++){const I=[];for(let B=0;B<n;B++){const E=[];let i,e;for(let I=0;I<r;I++){const t=g.getImageLevelInfo(B,I,A);0!==A||0!==B||0!==I||t.origWidth%4==0&&t.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),n>1?(i=t.origWidth,e=t.origHeight):(i=t.width,e=t.height);let o=new Uint8Array(g.getImageTranscodedSizeInBytes(B,I,0,F));const s=g.transcodeImage(o,B,I,A,F,0,-1,-1);if(y===C.HalfFloatType&&(o=new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!s)throw Q(),new Error("THREE.KTX2Loader: .transcodeImage failed.");E.push(o)}const t=o(E);I.push({data:t,width:i,height:e}),S.push(t.buffer)}R.push({mipmaps:I,width:s,height:a,format:G,type:y})}return Q(),{faces:R,buffers:S,width:s,height:a,hasAlpha:h,dfdFlags:w,format:G,type:y}}(Q.buffer);self.postMessage({type:"transcode",id:Q.id,data:{faces:I,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}},g)}catch(I){console.error(I),self.postMessage({type:"error",id:Q.id,error:I.message})}})}var i});const i=[{if:"astcSupported",basisFormat:[E.UASTC],transcoderFormat:[Q.ASTC_4x4,Q.ASTC_4x4],engineFormat:[g.RGBA_ASTC_4x4_Format,g.RGBA_ASTC_4x4_Format],engineType:[C.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC7_M5,Q.BC7_M5],engineFormat:[g.RGBA_BPTC_Format,g.RGBA_BPTC_Format],engineType:[C.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC1,Q.BC3],engineFormat:[g.RGBA_S3TC_DXT1_Format,g.RGBA_S3TC_DXT5_Format],engineType:[C.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1,Q.ETC2],engineFormat:[g.RGB_ETC2_Format,g.RGBA_ETC2_EAC_Format],engineType:[C.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1],engineFormat:[g.RGB_ETC1_Format],engineType:[C.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.PVRTC1_4_RGB,Q.PVRTC1_4_RGBA],engineFormat:[g.RGB_PVRTC_4BPPV1_Format,g.RGBA_PVRTC_4BPPV1_Format],engineType:[C.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.BC6H],engineFormat:[g.RGB_BPTC_UNSIGNED_Format],engineType:[C.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.RGBA32,Q.RGBA32],engineFormat:[g.RGBAFormat,g.RGBAFormat],engineType:[C.UnsignedByteType,C.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.RGBA_HALF],engineFormat:[g.RGBAFormat],engineType:[C.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],e={[E.ETC1S]:i.filter(A=>A.basisFormat.includes(E.ETC1S)).sort((A,I)=>A.priorityETC1S-I.priorityETC1S),[E.UASTC]:i.filter(A=>A.basisFormat.includes(E.UASTC)).sort((A,I)=>A.priorityUASTC-I.priorityUASTC),[E.UASTC_HDR]:i.filter(A=>A.basisFormat.includes(E.UASTC_HDR)).sort((A,I)=>A.priorityHDR-I.priorityHDR)};function t(A){return A<=2||!(A&A-1)&&0!==A}function o(A){if(1===A.length)return A[0];let I=0;for(let C=0;C<A.length;C++){I+=A[C].byteLength}const B=new Uint8Array(I);let g=0;for(let C=0;C<A.length;C++){const I=A[C];B.set(I,g),g+=I.byteLength}return B}};var R=new Set([A.RGBAFormat$1,A.RGBFormat$1,A.RGFormat$1,A.RedFormat$1]),S={109:A.RGBAFormat$1,103:A.RGFormat$1,100:A.RedFormat$1,97:A.RGBAFormat$1,83:A.RGFormat$1,76:A.RedFormat$1,91:A.RGBAFormat$1,43:A.RGBAFormat$1,37:A.RGBAFormat$1,22:A.RGFormat$1,16:A.RGFormat$1,15:A.RedFormat$1,9:A.RedFormat$1,123:A.RGBFormat$1,122:A.RGBFormat$1,152:A.RGBA_ETC2_EAC_Format$1,148:A.RGB_ETC2_Format$1,153:A.R11_EAC_Format$1,154:A.SIGNED_R11_EAC_Format$1,155:A.RG11_EAC_Format$1,156:A.SIGNED_RG11_EAC_Format$1,[t]:A.RGBA_ASTC_4x4_Format$1,158:A.RGBA_ASTC_4x4_Format$1,157:A.RGBA_ASTC_4x4_Format$1,[o]:A.RGBA_ASTC_6x6_Format$1,166:A.RGBA_ASTC_6x6_Format$1,165:A.RGBA_ASTC_6x6_Format$1,134:A.RGBA_S3TC_DXT1_Format$1,133:A.RGBA_S3TC_DXT1_Format$1,132:A.RGB_S3TC_DXT1_Format$1,131:A.RGB_S3TC_DXT1_Format$1,138:A.RGBA_S3TC_DXT5_Format$1,137:A.RGBA_S3TC_DXT5_Format$1,140:A.SIGNED_RED_RGTC1_Format$1,139:A.RED_RGTC1_Format$1,142:A.SIGNED_RED_GREEN_RGTC2_Format$1,141:A.RED_GREEN_RGTC2_Format$1,146:A.RGBA_BPTC_Format$1,145:A.RGBA_BPTC_Format$1,[e]:A.RGBA_PVRTC_4BPPV1_Format$1,[E]:A.RGBA_PVRTC_4BPPV1_Format$1,[i]:A.RGBA_PVRTC_2BPPV1_Format$1,[Q]:A.RGBA_PVRTC_2BPPV1_Format$1},U={109:A.FloatType$1,103:A.FloatType$1,100:A.FloatType$1,97:A.HalfFloatType$1,83:A.HalfFloatType$1,76:A.HalfFloatType$1,91:A.UnsignedShortType$1,43:A.UnsignedByteType$1,37:A.UnsignedByteType$1,22:A.UnsignedByteType$1,16:A.UnsignedByteType$1,15:A.UnsignedByteType$1,9:A.UnsignedByteType$1,123:A.UnsignedInt5999Type$1,122:A.UnsignedInt101111Type$1,152:A.UnsignedByteType$1,148:A.UnsignedByteType$1,153:A.UnsignedByteType$1,154:A.UnsignedByteType$1,155:A.UnsignedByteType$1,156:A.UnsignedByteType$1,[t]:A.HalfFloatType$1,158:A.UnsignedByteType$1,157:A.UnsignedByteType$1,[o]:A.HalfFloatType$1,166:A.UnsignedByteType$1,165:A.UnsignedByteType$1,134:A.UnsignedByteType$1,133:A.UnsignedByteType$1,132:A.UnsignedByteType$1,131:A.UnsignedByteType$1,138:A.UnsignedByteType$1,137:A.UnsignedByteType$1,140:A.UnsignedByteType$1,139:A.UnsignedByteType$1,142:A.UnsignedByteType$1,141:A.UnsignedByteType$1,146:A.UnsignedByteType$1,145:A.UnsignedByteType$1,[e]:A.UnsignedByteType$1,[E]:A.UnsignedByteType$1,[i]:A.UnsignedByteType$1,[Q]:A.UnsignedByteType$1};function c(I){const B=I.dataFormatDescriptor[0];return 1===B.colorPrimaries?2===B.transferFunction?A.SRGBColorSpace$1:A.LinearSRGBColorSpace$1:10===B.colorPrimaries?2===B.transferFunction?"display-p3":"display-p3-linear":(0===B.colorPrimaries||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${B.colorPrimaries}"`),"")}exports.KTX2Loader=y;
1
+ /*! Web-kit v1.2.0-develop.13 | (c) 2026 MapVX */
2
+ !function(){try{var A="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},I=(new A.Error).stack;I&&(A._sentryDebugIds=A._sentryDebugIds||{},A._sentryDebugIds[I]="d53cfeeb-230d-429a-b6b2-2b8bd9b904f9",A._sentryDebugIdIdentifier="sentry-dbid-d53cfeeb-230d-429a-b6b2-2b8bd9b904f9")}catch(A){}}();const A=require("./three.module-BHURJnCD.cjs");var I,B,g,C=class{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const I=this.workerCreator();I.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=I}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,I){const B=this.workersResolve[A];if(B&&B(I),this.queue.length){const{resolve:I,msg:B,transfer:g}=this.queue.shift();this.workersResolve[A]=I,this.workers[A].postMessage(B,g)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,I){return new Promise(B=>{const g=this._getIdleWorker();-1!==g?(this._initWorker(g),this.workerStatus|=1<<g,this.workersResolve[g]=B,this.workers[g].postMessage(A,I)):this.queue.push({resolve:B,msg:A,transfer:I})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}},Q=1000054e3,E=1000054001,i=1000054004,e=1000054005,t=1000066e3,o=1000066004,s=class{constructor(A,I,B,g){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+I,B),this._littleEndian=g,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const I=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,I}_skip(A){return this._offset+=A,this}_scan(A,I=0){const B=this._offset;let g=0;for(;this._dataView.getUint8(this._offset)!==I&&g<A;)g++,this._offset++;return g<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+B,g)}},a=(new Uint8Array([0]),[171,75,84,88,32,50,48,187,13,10,26,10]);function r(A){return(new TextDecoder).decode(A)}var n,D={env:{emscripten_notify_memory_growth:function(A){g=new Uint8Array(B.exports.memory.buffer)}}},h=class{init(){return I||(I="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+w).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,D)).then(this._init):WebAssembly.instantiate(Buffer.from(w,"base64"),D).then(this._init))}_init(A){B=A.instance,D.env.emscripten_notify_memory_growth(0)}decode(A,I=0){if(!B)throw new Error("ZSTDDecoder: Await .init() before decoding.");const C=A.byteLength,Q=B.exports.malloc(C);g.set(A,Q),I=I||Number(B.exports.ZSTD_findDecompressedSize(Q,C));const E=B.exports.malloc(I),i=B.exports.ZSTD_decompress(E,I,Q,C),e=g.slice(E,E+i);return B.exports.free(Q),B.exports.free(E),e}},w="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",F=(A.ColorManagement$1.spaces[A.SRGBColorSpace$1],A.SRGBColorSpace$1,new WeakMap),G=0,y=class I extends A.Loader$1{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new C,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return console.warn('KTX2Loader: "detectSupportAsync()" has been deprecated. Use "detectSupport()" and "await renderer.init();" when creating the renderer.'),await A.init(),this.detectSupport(A)}detectSupport(A){return!0===A.isWebGPURenderer?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-s3tc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:(this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},"undefined"!=typeof navigator&&void 0!==navigator.platform&&void 0!==navigator.userAgent&&navigator.platform.indexOf("Linux")>=0&&navigator.userAgent.indexOf("Firefox")>=0&&this.workerConfig.astcSupported&&this.workerConfig.etc2Supported&&this.workerConfig.bptcSupported&&this.workerConfig.dxtSupported&&(this.workerConfig.astcSupported=!1,this.workerConfig.etc2Supported=!1)),this}init(){if(!this.transcoderPending){const B=new A.FileLoader$1(this.manager);B.setPath(this.transcoderPath),B.setWithCredentials(this.withCredentials);const g=B.loadAsync("basis_transcoder.js"),C=new A.FileLoader$1(this.manager);C.setPath(this.transcoderPath),C.setResponseType("arraybuffer"),C.setWithCredentials(this.withCredentials);const Q=C.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([g,Q]).then(([A,B])=>{const g=I.BasisWorker.toString(),C=["/* constants */","let _EngineFormat = "+JSON.stringify(I.EngineFormat),"let _EngineType = "+JSON.stringify(I.EngineType),"let _TranscoderFormat = "+JSON.stringify(I.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(I.BasisFormat),"/* basis_transcoder.js */",A,"/* worker */",g.substring(g.indexOf("{")+1,g.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([C])),this.transcoderBinary=B,this.workerPool.setWorkerCreator(()=>{const A=new Worker(this.workerSourceURL),I=this.transcoderBinary.slice(0);return A.postMessage({type:"init",config:this.workerConfig,transcoderBinary:I},[I]),A})}),G>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),G++}return this.transcoderPending}load(I,B,g,C){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const Q=new A.FileLoader$1(this.manager);Q.setPath(this.path),Q.setCrossOrigin(this.crossOrigin),Q.setWithCredentials(this.withCredentials),Q.setRequestHeader(this.requestHeader),Q.setResponseType("arraybuffer"),Q.load(I,A=>{this.parse(A,B,C)},g,C)}parse(A,I,B){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(F.has(A))return F.get(A).promise.then(I).catch(B);this._createTexture(A).then(A=>I?I(A):null).catch(B)}_createTextureFrom(I,B){const{type:g,error:C,data:{faces:Q,width:E,height:i,format:e,type:t,dfdFlags:o}}=I;if("error"===g)return Promise.reject(C);let s;if(6===B.faceCount)s=new A.CompressedCubeTexture$1(Q,e,t);else{const I=Q[0].mipmaps;s=B.layerCount>1?new A.CompressedArrayTexture$1(I,E,i,B.layerCount,e,t):new A.CompressedTexture$1(I,E,i,e,t)}return s.minFilter=1===Q[0].mipmaps.length?A.LinearFilter$1:A.LinearMipmapLinearFilter$1,s.magFilter=A.LinearFilter$1,s.generateMipmaps=!1,s.needsUpdate=!0,s.colorSpace=c(B),s.premultiplyAlpha=!!(1&o),s}async _createTexture(I,B={}){const g=function(A){const I=new Uint8Array(A.buffer,A.byteOffset,a.length);if(I[0]!==a[0]||I[1]!==a[1]||I[2]!==a[2]||I[3]!==a[3]||I[4]!==a[4]||I[5]!==a[5]||I[6]!==a[6]||I[7]!==a[7]||I[8]!==a[8]||I[9]!==a[9]||I[10]!==a[10]||I[11]!==a[11])throw new Error("Missing KTX 2.0 identifier.");const B={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},g=17*Uint32Array.BYTES_PER_ELEMENT,C=new s(A,a.length,g,!0);B.vkFormat=C._nextUint32(),B.typeSize=C._nextUint32(),B.pixelWidth=C._nextUint32(),B.pixelHeight=C._nextUint32(),B.pixelDepth=C._nextUint32(),B.layerCount=C._nextUint32(),B.faceCount=C._nextUint32(),B.levelCount=C._nextUint32(),B.supercompressionScheme=C._nextUint32();const Q=C._nextUint32(),E=C._nextUint32(),i=C._nextUint32(),e=C._nextUint32(),t=C._nextUint64(),o=C._nextUint64(),n=3*Math.max(B.levelCount,1)*8,D=new s(A,a.length+g,n,!0);for(let s=0,a=Math.max(B.levelCount,1);s<a;s++)B.levels.push({levelData:new Uint8Array(A.buffer,A.byteOffset+D._nextUint64(),D._nextUint64()),uncompressedByteLength:D._nextUint64()});const h=new s(A,Q,E,!0);h._skip(4);const w=h._nextUint16(),F=h._nextUint16(),G=h._nextUint16(),y=h._nextUint16(),R={vendorId:w,descriptorType:F,versionNumber:G,colorModel:h._nextUint8(),colorPrimaries:h._nextUint8(),transferFunction:h._nextUint8(),flags:h._nextUint8(),texelBlockDimension:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],bytesPlane:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],samples:[]},S=(y/4-6)/4;for(let s=0;s<S;s++){const A={bitOffset:h._nextUint16(),bitLength:h._nextUint8(),channelType:h._nextUint8(),samplePosition:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&A.channelType?(A.sampleLower=h._nextInt32(),A.sampleUpper=h._nextInt32()):(A.sampleLower=h._nextUint32(),A.sampleUpper=h._nextUint32()),R.samples[s]=A}B.dataFormatDescriptor.length=0,B.dataFormatDescriptor.push(R);const U=new s(A,i,e,!0);for(;U._offset<e;){const A=U._nextUint32(),I=U._scan(A),g=r(I);if(B.keyValue[g]=U._nextUint8Array(A-I.byteLength-1),g.match(/^ktx/i)){const A=r(B.keyValue[g]);B.keyValue[g]=A.substring(0,A.lastIndexOf("\0"))}U._skip(A%4?4-A%4:0)}if(o<=0)return B;const c=new s(A,t,o,!0),d=c._nextUint16(),L=c._nextUint16(),p=c._nextUint32(),f=c._nextUint32(),N=c._nextUint32(),k=c._nextUint32(),M=[];for(let s=0,a=Math.max(B.levelCount,1);s<a;s++)M.push({imageFlags:c._nextUint32(),rgbSliceByteOffset:c._nextUint32(),rgbSliceByteLength:c._nextUint32(),alphaSliceByteOffset:c._nextUint32(),alphaSliceByteLength:c._nextUint32()});const J=t+c._offset,l=J+p,T=l+f,q=T+N;return B.globalData={endpointCount:d,selectorCount:L,imageDescs:M,endpointsData:new Uint8Array(A.buffer,A.byteOffset+J,p),selectorsData:new Uint8Array(A.buffer,A.byteOffset+l,f),tablesData:new Uint8Array(A.buffer,A.byteOffset+T,N),extendedData:new Uint8Array(A.buffer,A.byteOffset+q,k)},B}(new Uint8Array(I)),C=1000066e3===g.vkFormat&&167===g.dataFormatDescriptor[0].colorModel;if(0!==g.vkFormat&&(!C||this.workerConfig.astcHDRSupported))return async function(I){const{vkFormat:B}=I;if(void 0===S[B])throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+B);void 0===U[B]&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+B);let g;2===I.supercompressionScheme&&(n||(n=new Promise(async A=>{const I=new h;await I.init(),A(I)})),g=await n);const C=[];for(let A=0;A<I.levels.length;A++){const Q=Math.max(1,I.pixelWidth>>A),E=Math.max(1,I.pixelHeight>>A),i=I.pixelDepth?Math.max(1,I.pixelDepth>>A):0,e=I.levels[A];let t,o;if(0===I.supercompressionScheme)t=e.levelData;else{if(2!==I.supercompressionScheme)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");t=g.decode(e.levelData,e.uncompressedByteLength)}o=1015===U[B]?new Float32Array(t.buffer,t.byteOffset,t.byteLength/Float32Array.BYTES_PER_ELEMENT):1016===U[B]||1012===U[B]?new Uint16Array(t.buffer,t.byteOffset,t.byteLength/Uint16Array.BYTES_PER_ELEMENT):35902===U[B]||35899===U[B]?new Uint32Array(t.buffer,t.byteOffset,t.byteLength/Uint32Array.BYTES_PER_ELEMENT):t,C.push({data:o,width:Q,height:E,depth:i})}const Q=0===I.levelCount||C.length>1;let E;if(R.has(S[B]))E=0===I.pixelDepth?new A.DataTexture$1(C[0].data,I.pixelWidth,I.pixelHeight):new A.Data3DTexture$1(C[0].data,I.pixelWidth,I.pixelHeight,I.pixelDepth),E.minFilter=Q?A.NearestMipmapNearestFilter$1:A.NearestFilter$1,E.magFilter=A.NearestFilter$1,E.generateMipmaps=0===I.levelCount;else{if(I.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");E=new A.CompressedTexture$1(C,I.pixelWidth,I.pixelHeight),E.minFilter=Q?A.LinearMipmapLinearFilter$1:A.LinearFilter$1,E.magFilter=A.LinearFilter$1}return E.mipmaps=C,E.type=U[B],E.format=S[B],E.colorSpace=c(I),E.needsUpdate=!0,Promise.resolve(E)}(g);const Q=B,E=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:I,taskConfig:Q},[I])).then(A=>this._createTextureFrom(A.data,g));return F.set(I,{promise:E}),E}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),G--}};y.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},y.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},y.EngineFormat={RGBAFormat:A.RGBAFormat$1,RGBA_ASTC_4x4_Format:A.RGBA_ASTC_4x4_Format$1,RGB_BPTC_UNSIGNED_Format:A.RGB_BPTC_UNSIGNED_Format$1,RGBA_BPTC_Format:A.RGBA_BPTC_Format$1,RGBA_ETC2_EAC_Format:A.RGBA_ETC2_EAC_Format$1,RGBA_PVRTC_4BPPV1_Format:A.RGBA_PVRTC_4BPPV1_Format$1,RGBA_S3TC_DXT5_Format:A.RGBA_S3TC_DXT5_Format$1,RGB_ETC1_Format:A.RGB_ETC1_Format$1,RGB_ETC2_Format:A.RGB_ETC2_Format$1,RGB_PVRTC_4BPPV1_Format:A.RGB_PVRTC_4BPPV1_Format$1,RGBA_S3TC_DXT1_Format:A.RGBA_S3TC_DXT1_Format$1},y.EngineType={UnsignedByteType:A.UnsignedByteType$1,HalfFloatType:A.HalfFloatType$1,FloatType:A.FloatType$1},y.BasisWorker=function(){let A,I,B;const g=_EngineFormat,C=_EngineType,Q=_TranscoderFormat,E=_BasisFormat;self.addEventListener("message",function(g){const Q=g.data;switch(Q.type){case"init":A=Q.config,i=Q.transcoderBinary,I=new Promise(A=>{B={wasmBinary:i,onRuntimeInitialized:A},BASIS(B)}).then(()=>{B.initializeBasis(),void 0===B.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":I.then(()=>{try{const{faces:I,buffers:g,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}=function(I){const g=new B.KTX2File(new Uint8Array(I));function Q(){g.close(),g.delete()}if(!g.isValid())throw Q(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");let i;if(g.isUASTC())i=E.UASTC;else if(g.isETC1S())i=E.ETC1S;else{if(!g.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");i=E.UASTC_HDR}const s=g.getWidth(),a=g.getHeight(),r=g.getLayers()||1,n=g.getLevels(),D=g.getFaces(),h=g.getHasAlpha(),w=g.getDFDFlags(),{transcoderFormat:F,engineFormat:G,engineType:y}=function(I,B,g,C){const Q=e[I];for(let E=0;E<Q.length;E++){const i=Q[E];if((!i.if||A[i.if])&&(i.basisFormat.includes(I)&&!(C&&i.transcoderFormat.length<2)&&(!i.needsPowerOfTwo||t(B)&&t(g))))return{transcoderFormat:i.transcoderFormat[C?1:0],engineFormat:i.engineFormat[C?1:0],engineType:i.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(i,s,a,h);if(!s||!a||!n)throw Q(),new Error("THREE.KTX2Loader:\tInvalid texture");if(!g.startTranscoding())throw Q(),new Error("THREE.KTX2Loader: .startTranscoding failed");const R=[],S=[];for(let A=0;A<D;A++){const I=[];for(let B=0;B<n;B++){const E=[];let i,e;for(let I=0;I<r;I++){const t=g.getImageLevelInfo(B,I,A);0!==A||0!==B||0!==I||t.origWidth%4==0&&t.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),n>1?(i=t.origWidth,e=t.origHeight):(i=t.width,e=t.height);let o=new Uint8Array(g.getImageTranscodedSizeInBytes(B,I,0,F));const s=g.transcodeImage(o,B,I,A,F,0,-1,-1);if(y===C.HalfFloatType&&(o=new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!s)throw Q(),new Error("THREE.KTX2Loader: .transcodeImage failed.");E.push(o)}const t=o(E);I.push({data:t,width:i,height:e}),S.push(t.buffer)}R.push({mipmaps:I,width:s,height:a,format:G,type:y})}return Q(),{faces:R,buffers:S,width:s,height:a,hasAlpha:h,dfdFlags:w,format:G,type:y}}(Q.buffer);self.postMessage({type:"transcode",id:Q.id,data:{faces:I,width:i,height:s,hasAlpha:a,format:r,type:n,dfdFlags:D}},g)}catch(I){console.error(I),self.postMessage({type:"error",id:Q.id,error:I.message})}})}var i});const i=[{if:"astcSupported",basisFormat:[E.UASTC],transcoderFormat:[Q.ASTC_4x4,Q.ASTC_4x4],engineFormat:[g.RGBA_ASTC_4x4_Format,g.RGBA_ASTC_4x4_Format],engineType:[C.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC7_M5,Q.BC7_M5],engineFormat:[g.RGBA_BPTC_Format,g.RGBA_BPTC_Format],engineType:[C.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.BC1,Q.BC3],engineFormat:[g.RGBA_S3TC_DXT1_Format,g.RGBA_S3TC_DXT5_Format],engineType:[C.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1,Q.ETC2],engineFormat:[g.RGB_ETC2_Format,g.RGBA_ETC2_EAC_Format],engineType:[C.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.ETC1],engineFormat:[g.RGB_ETC1_Format],engineType:[C.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.PVRTC1_4_RGB,Q.PVRTC1_4_RGBA],engineFormat:[g.RGB_PVRTC_4BPPV1_Format,g.RGBA_PVRTC_4BPPV1_Format],engineType:[C.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.BC6H],engineFormat:[g.RGB_BPTC_UNSIGNED_Format],engineType:[C.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[Q.RGBA32,Q.RGBA32],engineFormat:[g.RGBAFormat,g.RGBAFormat],engineType:[C.UnsignedByteType,C.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[E.UASTC_HDR],transcoderFormat:[Q.RGBA_HALF],engineFormat:[g.RGBAFormat],engineType:[C.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],e={[E.ETC1S]:i.filter(A=>A.basisFormat.includes(E.ETC1S)).sort((A,I)=>A.priorityETC1S-I.priorityETC1S),[E.UASTC]:i.filter(A=>A.basisFormat.includes(E.UASTC)).sort((A,I)=>A.priorityUASTC-I.priorityUASTC),[E.UASTC_HDR]:i.filter(A=>A.basisFormat.includes(E.UASTC_HDR)).sort((A,I)=>A.priorityHDR-I.priorityHDR)};function t(A){return A<=2||!(A&A-1)&&0!==A}function o(A){if(1===A.length)return A[0];let I=0;for(let C=0;C<A.length;C++){I+=A[C].byteLength}const B=new Uint8Array(I);let g=0;for(let C=0;C<A.length;C++){const I=A[C];B.set(I,g),g+=I.byteLength}return B}};var R=new Set([A.RGBAFormat$1,A.RGBFormat$1,A.RGFormat$1,A.RedFormat$1]),S={109:A.RGBAFormat$1,103:A.RGFormat$1,100:A.RedFormat$1,97:A.RGBAFormat$1,83:A.RGFormat$1,76:A.RedFormat$1,91:A.RGBAFormat$1,43:A.RGBAFormat$1,37:A.RGBAFormat$1,22:A.RGFormat$1,16:A.RGFormat$1,15:A.RedFormat$1,9:A.RedFormat$1,123:A.RGBFormat$1,122:A.RGBFormat$1,152:A.RGBA_ETC2_EAC_Format$1,148:A.RGB_ETC2_Format$1,153:A.R11_EAC_Format$1,154:A.SIGNED_R11_EAC_Format$1,155:A.RG11_EAC_Format$1,156:A.SIGNED_RG11_EAC_Format$1,[t]:A.RGBA_ASTC_4x4_Format$1,158:A.RGBA_ASTC_4x4_Format$1,157:A.RGBA_ASTC_4x4_Format$1,[o]:A.RGBA_ASTC_6x6_Format$1,166:A.RGBA_ASTC_6x6_Format$1,165:A.RGBA_ASTC_6x6_Format$1,134:A.RGBA_S3TC_DXT1_Format$1,133:A.RGBA_S3TC_DXT1_Format$1,132:A.RGB_S3TC_DXT1_Format$1,131:A.RGB_S3TC_DXT1_Format$1,138:A.RGBA_S3TC_DXT5_Format$1,137:A.RGBA_S3TC_DXT5_Format$1,140:A.SIGNED_RED_RGTC1_Format$1,139:A.RED_RGTC1_Format$1,142:A.SIGNED_RED_GREEN_RGTC2_Format$1,141:A.RED_GREEN_RGTC2_Format$1,146:A.RGBA_BPTC_Format$1,145:A.RGBA_BPTC_Format$1,[e]:A.RGBA_PVRTC_4BPPV1_Format$1,[E]:A.RGBA_PVRTC_4BPPV1_Format$1,[i]:A.RGBA_PVRTC_2BPPV1_Format$1,[Q]:A.RGBA_PVRTC_2BPPV1_Format$1},U={109:A.FloatType$1,103:A.FloatType$1,100:A.FloatType$1,97:A.HalfFloatType$1,83:A.HalfFloatType$1,76:A.HalfFloatType$1,91:A.UnsignedShortType$1,43:A.UnsignedByteType$1,37:A.UnsignedByteType$1,22:A.UnsignedByteType$1,16:A.UnsignedByteType$1,15:A.UnsignedByteType$1,9:A.UnsignedByteType$1,123:A.UnsignedInt5999Type$1,122:A.UnsignedInt101111Type$1,152:A.UnsignedByteType$1,148:A.UnsignedByteType$1,153:A.UnsignedByteType$1,154:A.UnsignedByteType$1,155:A.UnsignedByteType$1,156:A.UnsignedByteType$1,[t]:A.HalfFloatType$1,158:A.UnsignedByteType$1,157:A.UnsignedByteType$1,[o]:A.HalfFloatType$1,166:A.UnsignedByteType$1,165:A.UnsignedByteType$1,134:A.UnsignedByteType$1,133:A.UnsignedByteType$1,132:A.UnsignedByteType$1,131:A.UnsignedByteType$1,138:A.UnsignedByteType$1,137:A.UnsignedByteType$1,140:A.UnsignedByteType$1,139:A.UnsignedByteType$1,142:A.UnsignedByteType$1,141:A.UnsignedByteType$1,146:A.UnsignedByteType$1,145:A.UnsignedByteType$1,[e]:A.UnsignedByteType$1,[E]:A.UnsignedByteType$1,[i]:A.UnsignedByteType$1,[Q]:A.UnsignedByteType$1};function c(I){const B=I.dataFormatDescriptor[0];return 1===B.colorPrimaries?2===B.transferFunction?A.SRGBColorSpace$1:A.LinearSRGBColorSpace$1:10===B.colorPrimaries?2===B.transferFunction?"display-p3":"display-p3-linear":(0===B.colorPrimaries||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${B.colorPrimaries}"`),"")}exports.KTX2Loader=y;
@@ -1,2 +1,2 @@
1
- /*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
2
- !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e37542ed-7790-4d17-976e-9523460218cc",e._sentryDebugIdIdentifier="sentry-dbid-e37542ed-7790-4d17-976e-9523460218cc")}catch(e){}}();exports.default='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 29 29" fill="none">\n <path d="M28.9058 23.8967C28.5889 22.9479 27.573 22.4331 26.6134 22.7514L25.5156 23.1161L23.1535 17.4537C22.8788 16.7146 22.2161 16.3125 21.474 16.3125H15.9353L15.3462 13.5938H19.0343C20.0364 13.5938 20.847 12.7832 20.847 11.7812C20.847 10.7793 20.0364 9.96875 19.0343 9.96875H14.5605L14.4784 9.58359C14.2632 8.04863 12.8697 7.06875 11.3969 7.27832C9.86185 7.48789 8.87623 8.86426 9.09148 10.3539L10.4328 18.3062C10.5246 19.2352 11.3063 19.9375 12.2353 19.9375H20.2448L22.7859 26.049C23.0714 26.7514 23.7511 27.1875 24.4705 27.1875C24.66 27.1875 24.8546 27.1574 25.0438 27.0937L27.7627 26.1875C28.7132 25.8734 29.223 24.8482 28.9058 23.8967ZM9.06316 26.2812C5.56478 26.2812 2.71895 23.4356 2.71895 19.9375C2.71895 16.8647 4.91563 14.2989 7.82037 13.7184L7.36948 11.0449C3.17551 11.8379 0 15.5139 0 19.9375C0 24.9428 4.05746 29 9.06316 29C13.4475 29 17.1011 25.8865 17.9451 21.75H15.1638C14.3255 24.3611 11.9294 26.2812 9.06316 26.2812ZM10.8758 5.4375C12.3774 5.4375 13.5947 4.22029 13.5947 2.71875C13.5947 1.21721 12.3769 0 10.8758 0C9.37471 0 8.15684 1.21721 8.15684 2.71875C8.15684 4.22029 9.37471 5.4375 10.8758 5.4375Z" fill="currentColor"/>\n</svg>';
1
+ /*! Web-kit v1.2.0-develop.13 | (c) 2026 MapVX */
2
+ !function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ad8e12a8-49a1-4fd3-872c-4738364b88ac",e._sentryDebugIdIdentifier="sentry-dbid-ad8e12a8-49a1-4fd3-872c-4738364b88ac")}catch(e){}}();exports.default='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 29 29" fill="none">\n <path d="M28.9058 23.8967C28.5889 22.9479 27.573 22.4331 26.6134 22.7514L25.5156 23.1161L23.1535 17.4537C22.8788 16.7146 22.2161 16.3125 21.474 16.3125H15.9353L15.3462 13.5938H19.0343C20.0364 13.5938 20.847 12.7832 20.847 11.7812C20.847 10.7793 20.0364 9.96875 19.0343 9.96875H14.5605L14.4784 9.58359C14.2632 8.04863 12.8697 7.06875 11.3969 7.27832C9.86185 7.48789 8.87623 8.86426 9.09148 10.3539L10.4328 18.3062C10.5246 19.2352 11.3063 19.9375 12.2353 19.9375H20.2448L22.7859 26.049C23.0714 26.7514 23.7511 27.1875 24.4705 27.1875C24.66 27.1875 24.8546 27.1574 25.0438 27.0937L27.7627 26.1875C28.7132 25.8734 29.223 24.8482 28.9058 23.8967ZM9.06316 26.2812C5.56478 26.2812 2.71895 23.4356 2.71895 19.9375C2.71895 16.8647 4.91563 14.2989 7.82037 13.7184L7.36948 11.0449C3.17551 11.8379 0 15.5139 0 19.9375C0 24.9428 4.05746 29 9.06316 29C13.4475 29 17.1011 25.8865 17.9451 21.75H15.1638C14.3255 24.3611 11.9294 26.2812 9.06316 26.2812ZM10.8758 5.4375C12.3774 5.4375 13.5947 4.22029 13.5947 2.71875C13.5947 1.21721 12.3769 0 10.8758 0C9.37471 0 8.15684 1.21721 8.15684 2.71875C8.15684 4.22029 9.37471 5.4375 10.8758 5.4375Z" fill="currentColor"/>\n</svg>';