1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3424],{27397:(A,e,a)=>{let t,i,r,s;a.d(e,{p:()=>f});var o=a(97590);class g{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(A){if(!this.workers[A]){let e=this.workerCreator();e.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=e}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return -1}_onMessage(A,e){let a=this.workersResolve[A];if(a&&a(e),this.queue.length){let{resolve:e,msg:a,transfer:t}=this.queue.shift();this.workersResolve[A]=e,this.workers[A].postMessage(a,t)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,e){return new Promise(a=>{let t=this._getIdleWorker();-1!==t?(this._initWorker(t),this.workerStatus|=1<<t,this.workersResolve[t]=a,this.workers[t].postMessage(A,e)):this.queue.push({resolve:a,msg:A,transfer:e})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}var n=a(54003).Buffer;class c{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize: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:[]}],this.keyValue={},this.globalData=null}}class I{constructor(A,e,a,t){this._dataView=new DataView(A.buffer,A.byteOffset+e,a),this._littleEndian=t,this._offset=0}_nextUint8(){let A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){let A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){let A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){let A=this._dataView.getUint32(this._offset,this._littleEndian)+0x100000000*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){let A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_skip(A){return this._offset+=A,this}_scan(A,e=0){let a=this._offset,t=0;for(;this._dataView.getUint8(this._offset)!==e&&t<A;)t++,this._offset++;return t<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+a,t)}}new Uint8Array([0]);let B=[171,75,84,88,32,50,48,187,13,10,26,10];function b(A){return"undefined"!=typeof TextDecoder?(new TextDecoder).decode(A):n.from(A).toString("utf8")}var C=a(54003).Buffer;let E={env:{emscripten_notify_memory_growth:function(A){r=new Uint8Array(i.exports.memory.buffer)}}};class Q{init(){return t||(t="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+l).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,E)).then(this._init):WebAssembly.instantiate(C.from(l,"base64"),E).then(this._init))}_init(A){i=A.instance,E.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!i)throw Error("ZSTDDecoder: Await .init() before decoding.");let a=A.byteLength,t=i.exports.malloc(a);r.set(A,t),e=e||Number(i.exports.ZSTD_findDecompressedSize(t,a));let s=i.exports.malloc(e),o=i.exports.ZSTD_decompress(s,e,t,a),g=r.slice(s,s+o);return i.exports.free(t),i.exports.free(s),g}}let l
vendor: 3,612 bytes, line 1
1="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQ
vendor: 35,368 bytes, line 1
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AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCB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AAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFE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gIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECC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",
1d=new WeakMap,h=0;class f extends o.aHM{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new g,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 this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),etc1Supported:await A.hasFeatureAsync("texture-compression-etc1"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return!0===A.isWebGPURenderer?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bptc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:(this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),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")},this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){let A=new o.Y9S(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);let e=A.loadAsync("basis_transcoder.js"),a=new o.Y9S(this.manager);a.setPath(this.transcoderPath),a.setResponseType("arraybuffer"),a.setWithCredentials(this.withCredentials);let t=a.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([e,t]).then(([A,e])=>{let a=f.BasisWorker,t=["/* constants */","let _EngineFormat = "+JSON.stringify(f.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(f.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(f.BasisFormat),"/* basis_transcoder.js */",A,"/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([t])),this.transcoderBinary=e,this.workerPool.setWorkerCreator(()=>{let A=new Worker(this.workerSourceURL),e=this.transcoderBinary.slice(0);return A.postMessage({type:"init",config:this.workerConfig,transcoderBinary:e},[e]),A})}),h>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),h++}return this.transcoderPending}load(A,e,a,t){if(null===this.workerConfig)throw Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");let i=new o.Y9S(this.manager);i.setResponseType("arraybuffer"),i.setCrossOrigin(this.crossOrigin),i.setWithCredentials(this.withCredentials),i.load(A,A=>{if(d.has(A))return d.get(A).promise.then(e).catch(t);this.createTexture(A).then(A=>e?e(A):null).catch(t)},a,t)}_createTextureFrom(A,e){let a,{faces:t,width:i,height:r,format:s,type:g,error:n,dfdFlags:c}=A;if("error"===g)return Promise.reject(n);if(6===e.faceCount)a=new o.c5h(t,s,o.OUM);else{let A=t[0].mipmaps;a=e.layerCount>1?new o.iOZ(A,i,r,e.layerCount,s,o.OUM):new o.FvD(A,i,r,s,o.OUM)}return a.minFilter=1===t[0].mipmaps.length?o.k6q:o.$_I,a.magFilter=o.k6q,a.generateMipmaps=!1,a.needsUpdate=!0,a.colorSpace=D(e),a.premultiplyAlpha=!!(1&c),a}async createTexture(A,e={}){let a=function(A){let e=new Uint8Array(A.buffer,A.byteOffset,B.length);if(e[0]!==B[0]||e[1]!==B[1]||e[2]!==B[2]||e[3]!==B[3]||e[4]!==B[4]||e[5]!==B[5]||e[6]!==B[6]||e[7]!==B[7]||e[8]!==B[8]||e[9]!==B[9]||e[10]!==B[10]||e[11]!==B[11])throw Error("Missing KTX 2.0 identifier.");let a=new c,t=17*Uint32Array.BYTES_PER_ELEMENT,i=new I(A,B.length,t,!0);a.vkFormat=i._nextUint32(),a.typeSize=i._nextUint32(),a.pixelWidth=i._nextUint32(),a.pixelHeight=i._nextUint32(),a.pixelDepth=i._nextUint32(),a.layerCount=i._nextUint32(),a.faceCount=i._nextUint32();let r=i._nextUint32();a.supercompressionScheme=i._nextUint32();let s=i._nextUint32(),o=i._nextUint32(),g=i._nextUint32(),n=i._nextUint32(),C=i._nextUint64(),E=i._nextUint64(),Q=new I(A,B.length+t,3*r*8,!0);for(let e=0;e<r;e++)a.levels.push({levelData:new Uint8Array(A.buffer,A.byteOffset+Q._nextUint64(),Q._nextUint64()),uncompressedByteLength:Q._nextUint64()});let l=new I(A,s,o,!0),d={vendorId:l._skip(4)._nextUint16(),descriptorType:l._nextUint16(),versionNumber:l._nextUint16(),descriptorBlockSize:l._nextUint16(),colorModel:l._nextUint8(),colorPrimaries:l._nextUint8(),transferFunction:l._nextUint8(),flags:l._nextUint8(),texelBlockDimension:[l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8()],bytesPlane:[l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8()],samples:[]},h=(d.descriptorBlockSize/4-6)/4;for(let A=0;A<h;
1A++){let e={bitOffset:l._nextUint16(),bitLength:l._nextUint8(),channelType:l._nextUint8(),samplePosition:[l._nextUint8(),l._nextUint8(),l._nextUint8(),l._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&e.channelType?(e.sampleLower=l._nextInt32(),e.sampleUpper=l._nextInt32()):(e.sampleLower=l._nextUint32(),e.sampleUpper=l._nextUint32()),d.samples[A]=e}a.dataFormatDescriptor.length=0,a.dataFormatDescriptor.push(d);let f=new I(A,g,n,!0);for(;f._offset<n;){let A=f._nextUint32(),e=f._scan(A),t=b(e),i=f._scan(A-e.byteLength);a.keyValue[t]=t.match(/^ktx/i)?b(i):i,f._offset%4&&f._skip(4-f._offset%4)}if(E<=0)return a;let p=new I(A,C,E,!0),u=p._nextUint16(),m=p._nextUint16(),w=p._nextUint32(),D=p._nextUint32(),k=p._nextUint32(),F=p._nextUint32(),R=[];for(let A=0;A<r;A++)R.push({imageFlags:p._nextUint32(),rgbSliceByteOffset:p._nextUint32(),rgbSliceByteLength:p._nextUint32(),alphaSliceByteOffset:p._nextUint32(),alphaSliceByteLength:p._nextUint32()});let y=C+p._offset,G=y+w,x=G+D,S=x+k,L=new Uint8Array(A.buffer,A.byteOffset+y,w),T=new Uint8Array(A.buffer,A.byteOffset+G,D);return a.globalData={endpointCount:u,selectorCount:m,imageDescs:R,endpointsData:L,selectorsData:T,tablesData:new Uint8Array(A.buffer,A.byteOffset+x,k),extendedData:new Uint8Array(A.buffer,A.byteOffset+S,F)},a}(new Uint8Array(A));if(0!==a.vkFormat)return w(a);let t=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:e},[A])).then(A=>this._createTextureFrom(A.data,a));return d.set(A,{promise:t}),t}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),h--,this}}f.BasisFormat={ETC1S:0,UASTC_4x4:1},f.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},f.EngineFormat={RGBAFormat:o.GWd,RGBA_ASTC_4x4_Format:o.qa3,RGBA_BPTC_Format:o.Fn,RGBA_ETC2_EAC_Format:o.KDk,RGBA_PVRTC_4BPPV1_Format:o.HXV,RGBA_S3TC_DXT5_Format:o.BXX,RGB_ETC1_Format:o.CVz,RGB_ETC2_Format:o.Riy,RGB_PVRTC_4BPPV1_Format:o.k6Q,RGB_S3TC_DXT1_Format:o.IE4},f.BasisWorker=`function () { 2 3 let config; 4 let transcoderPending; 5 let BasisModule; 6 7 const EngineFormat = _EngineFormat; // eslint-disable-line no-undef 8 const TranscoderFormat = _TranscoderFormat; // eslint-disable-line no-undef 9 const BasisFormat = _BasisFormat; // eslint-disable-line no-undef 10 11 self.addEventListener( 'message', function ( e ) { 12 13 const message = e.data; 14 15 switch ( message.type ) { 16 17 case 'init': 18 config = message.config; 19 init( message.transcoderBinary ); 20 break; 21 22 case 'transcode': 23 transcoderPending.then( () => { 24 25 try { 26 27 const { faces, buffers, width, height, hasAlpha, format, dfdFlags } = transcode( message.buffer ); 28 29 self.postMessage( { type: 'transcode', id: message.id, faces, width, height, hasAlpha, format, dfdFlags }, buffers ); 30 31 } catch ( error ) { 32 33 console.error( error ); 34 35 self.postMessage( { type: 'error', id: message.id, error: error.message } ); 36 37 } 38 39 } ); 40 break; 41 42 } 43 44 } ); 45 46 function init( wasmBinary ) { 47 48 transcoderPending = new Promise( ( resolve ) => { 49 50 BasisModule = { wasmBinary, onRuntimeInitialized: resolve }; 51 BASIS( BasisModule ); // eslint-disable-line no-undef 52 53 } ).then( () => { 54 55 BasisModule.initializeBasis(); 56 57 if ( BasisModule.KTX2File === undefined ) { 58 59 console.warn( 'THREE.KTX2Loader: Please update Basis Universal transcoder.' ); 60 61 } 62 63 } ); 64 65 } 66 67 function transcode( buffer ) { 68 69 const ktx2File = new BasisModule.KTX2File( new Uint8Array( buffer ) ); 70 71 function cleanup() { 72 73 ktx2File.close(); 74 ktx2File.delete(); 75 76 } 77 78 if ( ! ktx2File.isValid() ) { 79 80 cleanup(); 81 throw new Error( 'THREE.KTX2Loader: Invalid or unsupported .ktx2 file' ); 82 83 } 84 85 const basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S; 86 const width = ktx2File.getWidth(); 87 const height = ktx2File.getHeight(); 88 const layerCount = ktx2File.getLayers() || 1; 89 const levelCount = ktx2File.getLevels(); 90 const faceCount = ktx2File.getFaces(); 91 const hasAlpha = ktx2File.getHasAlpha(); 92 const dfdFlags = ktx2File.getDFDFlags(); 93 94 const { transcoderFormat, engineFormat } = getTranscoderFormat( basisFormat, width, height, hasAlpha ); 95 96 if ( ! width || ! height || ! levelCount ) { 97 98 cleanup(); 99 throw new Error( 'THREE.KTX2Loader: Invalid texture' ); 100 101 } 102 103 if ( ! ktx2File.startTranscoding() ) { 104 105 cleanup(); 106 throw new Error( 'THREE.KTX2Loader: .startTranscoding failed' ); 107 108 } 109 110 const faces = []; 111 const buffers = []; 112 113 for ( let face = 0; face < faceCount; face ++ ) { 114 115 const mipmaps = []; 116 117 for ( let mip = 0; mip < levelCount; mip ++ ) { 118 119 const layerMips = []; 120 121 let mipWidth, mipHeight; 122 123 for ( let layer = 0; layer < layerCount; layer ++ ) { 124 125 const levelInfo = ktx2File.getImageLevelInfo( mip, layer, face ); 126 127 if ( face === 0 && mip === 0 && layer === 0 && ( levelInfo.origWidth % 4 !== 0 || levelInfo.origHeight % 4 !== 0 ) ) { 128 129 console.warn( 'THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions.' ); 130 131 } 132 133 if ( levelCount > 1 ) { 134 135 mipWidth = levelInfo.origWidth; 136 mipHeight = levelInfo.origHeight; 137 138 } else { 139 140 // Handles non-multiple-of-four dimensions in textures without mipmaps. Textures with 141 // mipmaps must use multiple-of-four dimensions, for some texture formats and APIs. 142 // See mrdoob/three.js#25908. 143 mipWidth = levelInfo.width; 144 mipHeight = levelInfo.height; 145 146 } 147 148 const dst = new Uint8Array( ktx2File.getImageTranscodedSizeInBytes( mip, layer, 0, transcoderFormat ) ); 149 const status = ktx2File.transcodeImage( dst, mip, layer, face, transcoderFormat, 0, - 1, - 1 ); 150 151 if ( ! status ) { 152 153 cleanup(); 154 throw new Error( 'THREE.KTX2Loader: .transcodeImage failed.' ); 155 156 } 157 158 layerMips.push( dst ); 159 160 } 161 162 const mipData = concat( layerMips ); 163 164 mipmaps.push( { data: mipData, width: mipWidth, height: mipHeight } ); 165 buffers.push( mipData.buffer ); 166 167 } 168 169 faces.push( { mipmaps, width, height, format: engineFormat } ); 170 171 } 172 173 cleanup(); 174 175 return { faces, buffers, width, height, hasAlpha, format: engineFormat, dfdFlags }; 176 177 } 178 179 // 180 181 // Optimal choice of a transcoder target format depends on the Basis format (ETC1S or UASTC), 182 // device capabilities, and texture dimensions. The list below ranks the formats separately 183 // for ETC1S and UASTC. 184 // 185 // In some cases, transcoding UASTC to RGBA32 might be preferred for higher quality (at 186 // significant memory cost) compared to ETC1/2, BC1/3, and PVRTC. The transcoder currently 187 // chooses RGBA32 only as a last resort and does not expose that option to the caller. 188 const FORMAT_OPTIONS = [ 189 { 190 if: 'astcSupported', 191 basisFormat: [ BasisFormat.UASTC_4x4 ], 192 transcoderFormat: [ TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4 ], 193 engineFormat: [ EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format ], 194 priorityETC1S: Infinity, 195 priorityUASTC: 1, 196 needsPowerOfTwo: false, 197 }, 198 { 199 if: 'bptcSupported', 200 basisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ], 201 transcoderFormat: [ TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5 ], 202 engineFormat: [ EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format ], 203 priorityETC1S: 3, 204 priorityUASTC: 2, 205 needsPowerOfTwo: false, 206 }, 207 { 208 if: 'dxtSupported', 209 basisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ], 210 transcoderFormat: [ TranscoderFormat.BC1, TranscoderFormat.BC3 ], 211 engineFormat: [ EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format ], 212 priorityETC1S: 4, 213 priorityUASTC: 5, 214 needsPowerOfTwo: false, 215 }, 216 { 217 if: 'etc2Supported', 218 basisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ], 219 transcoderFormat: [ TranscoderFormat.ETC1, TranscoderFormat.ETC2 ], 220 engineFormat: [ EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format ], 221 priorityETC1S: 1, 222 priorityUASTC: 3, 223 needsPowerOfTwo: false, 224 }, 225 { 226 if: 'etc1Supported', 227 basisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ], 228 transcoderFormat: [ TranscoderFormat.ETC1 ], 229 engineFormat: [ EngineFormat.RGB_ETC1_Format ], 230 priorityETC1S: 2, 231 priorityUASTC: 4, 232 needsPowerOfTwo: false, 233 }, 234 { 235 if: 'pvrtcSupported', 236 basisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ], 237 transcoderFormat: [ TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA ], 238 engineFormat: [ EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format ], 239 priorityETC1S: 5, 240 priorityUASTC: 6, 241 needsPowerOfTwo: true, 242 }, 243 ]; 244 245 const ETC1S_OPTIONS = FORMAT_OPTIONS.sort( function ( a, b ) { 246 247 return a.priorityETC1S - b.priorityETC1S; 248 249 } ); 250 const UASTC_OPTIONS = FORMAT_OPTIONS.sort( function ( a, b ) { 251 252 return a.priorityUASTC - b.priorityUASTC; 253 254 } ); 255 256 function getTranscoderFormat( basisFormat, width, height, hasAlpha ) { 257 258 let transcoderFormat; 259 let engineFormat; 260 261 const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS; 262 263 for ( let i = 0; i < options.length; i ++ ) { 264 265 const opt = options[ i ]; 266 267 if ( ! config[ opt.if ] ) continue; 268 if ( ! opt.basisFormat.includes( basisFormat ) ) continue; 269 if ( hasAlpha && opt.transcoderFormat.length < 2 ) continue; 270 if ( opt.needsPowerOfTwo && ! ( isPowerOfTwo( width ) && isPowerOfTwo( height ) ) ) continue; 271 272 transcoderFormat = opt.transcoderFormat[ hasAlpha ? 1 : 0 ]; 273 engineFormat = opt.engineFormat[ hasAlpha ? 1 : 0 ]; 274 275 return { transcoderFormat, engineFormat }; 276 277 } 278 279 console.warn( 'THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.' ); 280 281 transcoderFormat = TranscoderFormat.RGBA32; 282 engineFormat = EngineFormat.RGBAFormat; 283 284 return { transcoderFormat, engineFormat }; 285 286 } 287 288 function isPowerOfTwo( value ) { 289 290 if ( value <= 2 ) return true; 291 292 return ( value & ( value - 1 ) ) === 0 && value !== 0; 293 294 } 295
296 /** Concatenates N byte arrays. */ 297 function concat( arrays ) { 298 299 if ( arrays.length === 1 ) return arrays[ 0 ]; 300 301 let totalByteLength = 0; 302 303 for ( let i = 0; i < arrays.length; i ++ ) { 304 305 const array = arrays[ i ]; 306 totalByteLength += array.byteLength; 307 308 } 309 310 const result = new Uint8Array( totalByteLength ); 311 312 let byteOffset = 0; 313 314 for ( let i = 0; i < arrays.length; i ++ ) { 315 316 const array = arrays[ i ]; 317 result.set( array, byteOffset ); 318 319 byteOffset += array.byteLength; 320 321 } 322 323 return result; 324 325 } 326 327}`;let p=new Set([o.GWd,o.paN,o.VT0]),u={109:o.GWd,97:o.GWd,37:o.GWd,43:o.GWd,103:o.paN,83:o.paN,16:o.paN,22:o.paN,100:o.VT0,76:o.VT0,15:o.VT0,9:o.VT0,166:o.Qrf,165:o.Qrf},m={109:o.RQf,97:o.ix0,37:o.OUM,43:o.OUM,103:o.RQf,83:o.ix0,16:o.OUM,22:o.OUM,100:o.RQf,76:o.ix0,15:o.OUM,9:o.OUM,166:o.OUM,165:o.OUM};async function w(A){let e,a,{vkFormat:t}=A;if(void 0===u[t])throw Error("THREE.KTX2Loader: Unsupported vkFormat.");2===A.supercompressionScheme&&(s||(s=new Promise(async A=>{let e=new Q;await e.init(),A(e)})),e=await s);let i=[];for(let a=0;a<A.levels.length;a++){let r,s,g=Math.max(1,A.pixelWidth>>a),n=Math.max(1,A.pixelHeight>>a),c=A.pixelDepth?Math.max(1,A.pixelDepth>>a):0,I=A.levels[a];if(0===A.supercompressionScheme)r=I.levelData;else if(2===A.supercompressionScheme)r=e.decode(I.levelData,I.uncompressedByteLength);else throw Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");s=m[t]===o.RQf?new Float32Array(r.buffer,r.byteOffset,r.byteLength/Float32Array.BYTES_PER_ELEMENT):m[t]===o.ix0?new Uint16Array(r.buffer,r.byteOffset,r.byteLength/Uint16Array.BYTES_PER_ELEMENT):r,i.push({data:s,width:g,height:n,depth:c})}if(p.has(u[t]))a=0===A.pixelDepth?new o.GYF(i[0].data,A.pixelWidth,A.pixelHeight):new o.dYF(i[0].data,A.pixelWidth,A.pixelHeight,A.pixelDepth);else{if(A.pixelDepth>0)throw Error("THREE.KTX2Loader: Unsupported pixelDepth.");a=new o.FvD(i,A.pixelWidth,A.pixelHeight)}return a.mipmaps=i,a.type=m[t],a.format=u[t],a.colorSpace=D(A),a.needsUpdate=!0,Promise.resolve(a)}function D(A){let e=A.dataFormatDescriptor[0];return 1===e.colorPrimaries?2===e.transferFunction?o.er$:o.Zr2:10===e.colorPrimaries?2===e.transferFunction?o.V5c:o.qIQ:(0===e.colorPrimaries||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`),o.jf0)}},47383:(A,e,a)=>{a.d(e,{Z:()=>r});var t=a(97590);let i=new WeakMap;class r extends t.aHM{constructor(A){super(A),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(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,e,a,i){let r=new t.Y9S(this.manager);r.setPath(this.path),r.setResponseType("arraybuffer"),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(A,A=>{this.parse(A,e,i)},a,i)}parse(A,e,a=()=>{}){this.decodeDracoFile(A,e,null,null,t.er$).catch(a)}decodeDracoFile(A,e,a,i,r=t.Zr2,s=()=>{}){let o={attributeIDs:a||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!a,vertexColorSpace:r};return this.decodeGeometry(A,o).then(e).catch(s)}decodeGeometry(A,e){let a,t=JSON.stringify(e);if(i.has(A)){let e=i.get(A);if(e.key===t)return e.promise;if(0===A.byteLength)throw Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let r=this.workerNextTaskID++,s=A.byteLength,o=this._getWorker(r,s).then(t=>(a=t,new Promise((t,i)=>{a._callbacks[r]={resolve:t,reject:i},a.postMessage({type:"decode",id:r,taskConfig:e,buffer:A},[A])}))).then(A=>this._createGeometry(A.geometry));return o.catch(()=>!0).then(()=>{a&&r&&this._releaseTask(a,r)}),i.set(A,{key:t,promise:o}),o}_createGeometry(A){let e=new t.LoY;A.index&&e.setIndex(new t.THS(A.index.array,1));for(let a=0;a<A.attributes.length;a++){let i=A.attributes[a],r=i.name,s=i.array,o=i.itemSize,g=new t.THS(s,o);"color"===r&&(this._assignVertexColorSpace(g,i.vertexColorSpace),g.normalized=s instanceof Float32Array==!1),e.setAttribute(r,g)}return e}_assignVertexColorSpace(A,e){if(e!==t.er$)return;let a=new t.Q1f;for(let e=0,t=A.count;e<t;e++)a.fromBufferAttribute(A,e).convertSRGBToLinear(),A.setXYZ(e,a.r,a.g,a.b)}_loadLibrary(A,e){let a=new t.Y9S(this.manager);return a.setPath(this.decoderPath),a.setResponseType(e),a.setWithCredentials(this.withCredentials),new Promise((e,t)=>
327{a.load(A,e,void 0,t)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let A="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,e=[];return A?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(e=>{let a=e[0];A||(this.decoderConfig.wasmBinary=e[1]);let t=["/* draco decoder */",a,"\n/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([t]))}),this.decoderPending}_getWorker(A,e){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){let A=new Worker(this.workerSourceURL);A._callbacks={},A._taskCosts={},A._taskLoad=0,A.postMessage({type:"init",decoderConfig:this.decoderConfig}),A.onmessage=function(e){let a=e.data;switch(a.type){case"decode":A._callbacks[a.id].resolve(a);break;case"error":A._callbacks[a.id].reject(a);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+a.type+'"')}},this.workerPool.push(A)}else this.workerPool.sort(function(A,e){return A._taskLoad>e._taskLoad?-1:1});let a=this.workerPool[this.workerPool.length-1];return a._taskCosts[A]=e,a._taskLoad+=e,a})}_releaseTask(A,e){A._taskLoad-=A._taskCosts[e],delete A._callbacks[e],delete A._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,""!==this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),this}}let s=` 328function DRACOWorker() { 329 330 let decoderConfig; 331 let decoderPending; 332 333 onmessage = function ( e ) { 334 335 const message = e.data; 336 337 switch ( message.type ) { 338 339 case 'init': 340 decoderConfig = message.decoderConfig; 341 decoderPending = new Promise( function ( resolve/*, reject*/ ) { 342 343 decoderConfig.onModuleLoaded = function ( draco ) { 344 345 // Module is Promise-like. Wrap before resolving to avoid loop. 346 resolve( { draco: draco } ); 347 348 }; 349 350 DracoDecoderModule( decoderConfig ); // eslint-disable-line no-undef 351 352 } ); 353 break; 354 355 case 'decode': 356 const buffer = message.buffer; 357 const taskConfig = message.taskConfig; 358 decoderPending.then( ( module ) => { 359 360 const draco = module.draco; 361 const decoder = new draco.Decoder(); 362 363 try { 364 365 const geometry = decodeGeometry( draco, decoder, new Int8Array( buffer ), taskConfig ); 366 367 const buffers = geometry.attributes.map( ( attr ) => attr.array.buffer ); 368 369 if ( geometry.index ) buffers.push( geometry.index.array.buffer ); 370 371 self.postMessage( { type: 'decode', id: message.id, geometry }, buffers ); 372 373 } catch ( error ) { 374 375 console.error( error ); 376 377 self.postMessage( { type: 'error', id: message.id, error: error.message } ); 378 379 } finally { 380 381 draco.destroy( decoder ); 382 383 } 384 385 } ); 386 break; 387 388 } 389 390 }; 391 392 function decodeGeometry( draco, decoder, array, taskConfig ) { 393 394 const attributeIDs = taskConfig.attributeIDs; 395 const attributeTypes = taskConfig.attributeTypes; 396 397 let dracoGeometry; 398 let decodingStatus; 399 400 const geometryType = decoder.GetEncodedGeometryType( array ); 401 402 if ( geometryType === draco.TRIANGULAR_MESH ) { 403 404 dracoGeometry = new draco.Mesh(); 405 decodingStatus = decoder.DecodeArrayToMesh( array, array.byteLength, dracoGeometry ); 406 407 } else if ( geometryType === draco.POINT_CLOUD ) { 408 409 dracoGeometry = new draco.PointCloud(); 410 decodingStatus = decoder.DecodeArrayToPointCloud( array, array.byteLength, dracoGeometry ); 411 412 } else { 413 414 throw new Error( 'THREE.DRACOLoader: Unexpected geometry type.' ); 415 416 } 417 418 if ( ! decodingStatus.ok() || dracoGeometry.ptr === 0 ) { 419 420 throw new Error( 'THREE.DRACOLoader: Decoding failed: ' + decodingStatus.error_msg() ); 421 422 } 423 424 const geometry = { index: null, attributes: [] }; 425 426 // Gather all vertex attributes. 427 for ( const attributeName in attributeIDs ) { 428 429 const attributeType = self[ attributeTypes[ attributeName ] ]; 430 431 let attribute; 432 let attributeID; 433 434 // A Draco file may be created with default vertex attributes, whose attribute IDs 435 // are mapped 1:1 from their semantic name (POSITION, NORMAL, ...). Alternatively, 436 // a Draco file may contain a custom set of attributes, identified by known unique 437 // IDs. glTF files always do the latter, and .drc files typically do the former. 438 if ( taskConfig.useUniqueIDs ) { 439 440 attributeID = attributeIDs[ attributeName ]; 441 attribute = decoder.GetAttributeByUniqueId( dracoGeometry, attributeID ); 442 443 } else { 444 445 attributeID = decoder.GetAttributeId( dracoGeometry, draco[ attributeIDs[ attributeName ] ] ); 446 447 if ( attributeID === - 1 ) continue; 448 449 attribute = decoder.GetAttribute( dracoGeometry, attributeID ); 450 451 } 452 453 const attributeResult = decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute ); 454 455 if ( attributeName === 'color' ) { 456 457 attributeResult.vertexColorSpace = taskConfig.vertexColorSpace; 458 459 } 460 461 geometry.attributes.push( attributeResult ); 462 463 } 464 465 // Add index. 466 if ( geometryType === draco.TRIANGULAR_MESH ) { 467 468 geometry.index = decodeIndex( draco, decoder, dracoGeometry ); 469 470 } 471 472 draco.destroy( dracoGeometry ); 473 474 return geometry; 475 476 } 477 478 function decodeIndex( draco, decoder, dracoGeometry ) { 479 480 const numFaces = dracoGeometry.num_faces(); 481 const numIndices = numFaces * 3; 482 const byteLength = numIndices * 4; 483 484 const ptr = draco._malloc( byteLength ); 485 decoder.GetTrianglesUInt32Array( dracoGeometry, byteLength, ptr ); 486 const index = new Uint32Array( draco.HEAPF32.buffer, ptr, numIndices ).slice(); 487 draco._free( ptr ); 488 489 return { array: index, itemSize: 1 }; 490 491 } 492 493 function decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute ) { 494 495 const numComponents = attribute.num_components(); 496 const numPoints = dracoGeometry.num_points(); 497 const numValues = numPoints * numComponents; 498 const byteLength = numValues * attributeType.BYTES_PER_ELEMENT; 499 const dataType = getDracoDataType( draco, attributeType ); 500 501 const ptr = draco._malloc( byteLength ); 502 decoder.GetAttributeDataArrayForAllPoints( dracoGeometry, attribute, dataType, byteLength, ptr ); 503 const array = new attributeType( draco.HEAPF32.buffer, ptr, numValues ).slice(); 504 draco._free( ptr ); 505 506 return { 507 name: attributeName, 508 array: array, 509 itemSize: numComponents 510 }; 511 512 } 513 514 function getDracoDataType( draco, attributeType ) { 515 516 switch ( attributeType ) { 517 518 case Float32Array: return draco.DT_FLOAT32; 519 case Int8Array: return draco.DT_INT8; 520 case Int16Array: return draco.DT_INT16; 521 case Int32Array: return draco.DT_INT32; 522 case Uint8Array: return draco.DT_UINT8; 523 case Uint16Array: return draco.DT_UINT16; 524 case Uint32Array: return draco.DT_UINT32; 525 526 } 527 528 } 529 530} 531`},68617:(A,e,a)=>{a.d(e,{BT:()=>r});var t=a(97590);function i(A,e){if(e===t.RJ4)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),A;if(e!==t.rYR&&e!==t.O49)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),A;{let a=A.getIndex();if(null===a){let e=[],t=A.getAttribute("position");if(void 0===t)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),A;
531for(let A=0;A<t.count;A++)e.push(A);A.setIndex(e),a=A.getIndex()}let i=a.count-2,r=[];if(e===t.rYR)for(let A=1;A<=i;A++)r.push(a.getX(0)),r.push(a.getX(A)),r.push(a.getX(A+1));else for(let A=0;A<i;A++)A%2==0?(r.push(a.getX(A)),r.push(a.getX(A+1)),r.push(a.getX(A+2))):(r.push(a.getX(A+2)),r.push(a.getX(A+1)),r.push(a.getX(A)));r.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");let s=A.clone();return s.setIndex(r),s.clearGroups(),s}}class r extends t.aHM{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(A){return new I(A)}),this.register(function(A){return new f(A)}),this.register(function(A){return new p(A)}),this.register(function(A){return new u(A)}),this.register(function(A){return new b(A)}),this.register(function(A){return new C(A)}),this.register(function(A){return new E(A)}),this.register(function(A){return new Q(A)}),this.register(function(A){return new c(A)}),this.register(function(A){return new l(A)}),this.register(function(A){return new B(A)}),this.register(function(A){return new h(A)}),this.register(function(A){return new d(A)}),this.register(function(A){return new g(A)}),this.register(function(A){return new m(A)}),this.register(function(A){return new w(A)})}load(A,e,a,i){let r,s=this;if(""!==this.resourcePath)r=this.resourcePath;else if(""!==this.path){let e=t.r6x.extractUrlBase(A);r=t.r6x.resolveURL(e,this.path)}else r=t.r6x.extractUrlBase(A);this.manager.itemStart(A);let o=function(e){i?i(e):console.error(e),s.manager.itemError(A),s.manager.itemEnd(A)},g=new t.Y9S(this.manager);g.setPath(this.path),g.setResponseType("arraybuffer"),g.setRequestHeader(this.requestHeader),g.setWithCredentials(this.withCredentials),g.load(A,function(a){try{s.parse(a,r,function(a){e(a),s.manager.itemEnd(A)},o,A)}catch(A){o(A)}},a,o)}setDRACOLoader(A){return this.dracoLoader=A,this}setDDSLoader(){throw Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return -1===this.pluginCallbacks.indexOf(A)&&this.pluginCallbacks.push(A),this}unregister(A){return -1!==this.pluginCallbacks.indexOf(A)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,e,a,t,i){let r,s={},g={},c=new TextDecoder;if("string"==typeof A)r=JSON.parse(A);else if(A instanceof ArrayBuffer)if(c.decode(new Uint8Array(A,0,4))===D){try{s[o.KHR_BINARY_GLTF]=new F(A)}catch(A){t&&t(A);return}r=JSON.parse(s[o.KHR_BINARY_GLTF].content)}else r=JSON.parse(c.decode(A));else r=A;if(void 0===r.asset||r.asset.version[0]<2){t&&t(Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let I=new W(r,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});I.fileLoader.setRequestHeader(this.requestHeader);for(let A=0;A<this.pluginCallbacks.length;A++){let e=this.pluginCallbacks[A](I);e.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),g[e.name]=e,s[e.name]=!0}if(r.extensionsUsed)for(let A=0;A<r.extensionsUsed.length;++A){let e=r.extensionsUsed[A],a=r.extensionsRequired||[];switch(e){case o.KHR_MATERIALS_UNLIT:s[e]=new n;break;case o.KHR_DRACO_MESH_COMPRESSION:s[e]=new R(r,this.dracoLoader);break;case o.KHR_TEXTURE_TRANSFORM:s[e]=new y;break;case o.KHR_MESH_QUANTIZATION:s[e]=new G;break;default:a.indexOf(e)>=0&&void 0===g[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}I.setExtensions(s),I.setPlugins(g),I.parse(a,t)}parseAsync(A,e){let a=this;return new Promise(function(t,i){a.parse(A,e,t,i)})}}function s(){let A={};return{get:function(e){return A[e]},add:function(e,a){A[e]=a},remove:function(e){delete A[e]},removeAll:function(){A={}}}}r.ObjectConstructors={DirectionalLight:t.ZyN,PointLight:t.HiM,SpotLight:t.nCl,MeshStandardMaterial:t._4j,MeshBasicMaterial:t.V9B,MeshPhysicalMaterial:t.uSd,LineBasicMaterial:t.mrM,PointsMaterial:t.BH$,PerspectiveCamera:t.ubm,Orthogra
531phicCamera:t.qUd};let o={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_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class g{constructor(A){this.parser=A,this.name=o.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let A=this.parser,e=this.parser.json.nodes||[];for(let a=0,t=e.length;a<t;a++){let t=e[a];t.extensions&&t.extensions[this.name]&&void 0!==t.extensions[this.name].light&&A._addNodeRef(this.cache,t.extensions[this.name].light)}}_loadLight(A){let e,a=this.parser,i="light:"+A,s=a.cache.get(i);if(s)return s;let o=a.json,g=((o.extensions&&o.extensions[this.name]||{}).lights||[])[A],n=new t.Q1f(0xffffff);void 0!==g.color&&n.setRGB(g.color[0],g.color[1],g.color[2],t.Zr2);let c=void 0!==g.range?g.range:0;switch(g.type){case"directional":(e=new r.ObjectConstructors.DirectionalLight(n)).target.position.set(0,0,-1),e.add(e.target);break;case"point":(e=new r.ObjectConstructors.PointLight(n)).distance=c;break;case"spot":(e=new r.ObjectConstructors.SpotLight(n)).distance=c,g.spot=g.spot||{},g.spot.innerConeAngle=void 0!==g.spot.innerConeAngle?g.spot.innerConeAngle:0,g.spot.outerConeAngle=void 0!==g.spot.outerConeAngle?g.spot.outerConeAngle:Math.PI/4,e.angle=g.spot.outerConeAngle,e.penumbra=1-g.spot.innerConeAngle/g.spot.outerConeAngle,e.target.position.set(0,0,-1),e.add(e.target);break;default:throw Error("THREE.GLTFLoader: Unexpected light type: "+g.type)}return e.position.set(0,0,0),e.decay=2,j(e,g),void 0!==g.intensity&&(e.intensity=g.intensity),e.name=a.createUniqueName(g.name||"light_"+A),s=Promise.resolve(e),a.cache.add(i,s),s}getDependency(A,e){if("light"===A)return this._loadLight(e)}createNodeAttachment(A){let e=this,a=this.parser,t=a.json.nodes[A],i=(t.extensions&&t.extensions[this.name]||{}).light;return void 0===i?null:this._loadLight(i).then(function(A){return a._getNodeRef(e.cache,i,A)})}}class n{constructor(){this.name=o.KHR_MATERIALS_UNLIT}getMaterialType(){return r.ObjectConstructors.MeshBasicMaterial}extendParams(A,e,a){let i=[];A.color=new t.Q1f(1,1,1),A.opacity=1;let r=e.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){let e=r.baseColorFactor;A.color.setRGB(e[0],e[1],e[2],t.Zr2),A.opacity=e[3]}void 0!==r.baseColorTexture&&i.push(a.assignTexture(A,"map",r.baseColorTexture,t.er$))}return Promise.all(i)}}class c{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,e){let a=this.parser.json.materials[A];if(!a.extensions||!a.extensions[this.name])return Promise.resolve();let t=a.extensions[this.name].emissiveStrength;return void 0!==t&&(e.emissiveIntensity=t),Promise.resolve()}}class I{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,i=a.json.materials[A];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();let r=[],s=i.extensions[this.name];if(void 0!==s.clearcoatFactor&&(e.clearcoat=s.clearcoatFactor),void 0!==s.clearcoatTexture&&r.push(a.assignTexture(e,"clearcoatMap",s.clearcoatTexture)),void 0!==s.clearcoatRoughnessFactor&&(e.clearcoatRoughness=s.clearcoatRoughnessFactor),void 0!==s.clearcoatRoughnessTexture&&r.push(a.assignTexture(e,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),void 0!==s.clearcoatNormalTexture&&(r.push(a.assignTexture(e,"clearcoatNormalMap",s.clearcoatNormalTexture)),void 0!==s.clearcoatNormalTexture.scale)){let A=s.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new t.I9Y(A,A)}return Promise.all(r)}}class B{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();let i=[],r=t.extensions[this.name];return void 0!==r.iridescenceFactor&&(e.iridescence=r.iridescenceFactor),void 0!==r.iridescenceTexture&&i.push(a.assignTexture(e,"iridescenceMap",r.iridescenceTexture)),void 0!==r.iridescenceIor&&(e.iridescenceIOR=r.iridescenceIor),void 0===e.iridescenceThicknessRange&&(e.iridescenceThicknessRange=[100,400]),void 0!==r.iridescenceThicknessMinimum&&(e.iridescenceThicknessRange[0]=r.iridescenceThicknessMinimum),void 0!==r.iridescenceThicknessMaximum&&(e.iridescenceThicknessRange[1]=r.iridescenceThicknessMaximum),void 0!==r.iridescenceThicknessTexture&&i.push(a.assignTexture(e,"iridescenceThicknessMap",r.iridescenceThicknessTexture)),Promise.all(i)}}class b{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_SHEEN}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,i=a.json.materials[A];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();let r=[];e.sheenColor=new t.Q1f(0,0,0),e.sheenRoughness=0,e.sheen=1;let s=i.extensions[this.name];if(void 0!==s.sheenColorFactor){let A=s.sheenColorFactor;e.sheenColor.setRGB(A[0],A[1],A[2],t.Zr2)}return void 0!==s.sheenRoughnessFactor&&(e.sheenRoughness=s.sheenRoughnessFactor),void 0!==s.sheenColorTexture&&r.push(a.assignTexture(e,"sheenColorMap",s.sheenColorTexture,t.er$)),void 0!==s.sheenRoughnessTexture&&r.push(a.assignTexture(e,"sheenRoughnessMap",s.sheenRoughnessTexture)),i.extras&&void 0!==i.extras.sheenFactor&&(e.sheen=i.extras.sheenFactor,delete i.extras.sheenFactor),Promise.all(r)}}class C{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();let i=[],r=t.extensions[this.name];return void 0!==r.transmissionFactor&&(e.transmission=r.transmissionFactor),void 0!==r.transmissionTexture&&i.push(a.assignTexture(e,"transmissionMap",r.transmissionTexture)),Promise.all(i)}}class E{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_VOLUME}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,i=a.json.materials[A];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();let r=[],s=i.extensions[this.name];e.thickness=void 0!==s.thicknessFactor?s.thicknessFactor:0,void 0!==s.thicknessTexture&&r.push(a.assignTexture(e,"thicknessMap",s.thicknessTexture)),e.attenuationDistance=s.attenuationDistance||1/0;let o=s.attenuationColor||[1,1,1];return e.attenuationColor=new t.Q1f().setRGB(o[0],o[1],o[2],t.Zr2),Promise.all(r)}}class Q{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_IOR}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser.json.materials[A];if(!a.extensions||!a.extensions[this.name])return Promise.resolve();let t=a.extensions[this.name];return e.ior=void 0!==t.ior?t.ior:1.5,Promise.resolve()}}class l{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_SPECULAR}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,i=a.json.materials[A];if(!i.extensions||!i.extensions[this.name])return Promise.resolve();let r=[],s=i.extensions[this.name];e.specularIntensity=void 0!==s.specularFactor?s.specularFactor:1,void 0!==s.specularTexture&&r.push(a.assignTexture(e,"specularIntensityMap",s.specularTexture));let o=s.specularColorFactor||[1,1,1];return e.specularColor=new t.Q1f().setRGB(o[0],o[1],o[2],t.Zr2),void 0!==s.specularColorTexture&&r.push(a.assignTexture(e,"specularColorMap",s.specularColorTexture,t.er$)),Promise.all(r)}}class d{constructor(A){this.parser=A,this.name=o.EXT_MATERIALS_BUMP}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();let i=[],r=t.extensions[this.name];return e.bumpScale=void 0!==r.bumpFactor?r.bumpFactor:1,void 0!==r.bumpTexture&&i.push(a.assignTexture(e,"bumpMap",r.bumpTexture)),Promise.all(i)}}class h{constructor(A){this.parser=A,this.name=o.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){let e=this.parser.json.materials[A];return e.extensions&&e.extensions[this.name]?r.ObjectConstructors.MeshPhysicalMaterial:null}extendMaterialParams(A,e){let a=this.parser,t=a.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();let i=[],r=t.extensions[this.name];return void 0!==r.anisotropyStrength&&(e.anisotropy=r.anisotropyStrength),void 0!==r.anisotropyRotation&&(e.anisotropyRotation=r.anisotropyRotation),void 0!==r.anisotropyTexture&&i.push(a.assignTexture(e,"anisotropyMap",r.anisotropyTexture)),Promise.all(i)}}class f{constructor(A){this.parser=A,this.name=o.KHR_TEXTURE_BASISU}loadTexture(A){let e=this.parser,a=e.json,t=a.textures[A];if(!t.extensions||!t.extensions[this.name])return null;let i=t.extensions[this.name],r=e.options.ktx2Loader;if(!r)if(!(a.extensionsRequired&&a.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return e.loadTextureImage(A,i.source,r)}}class p{constructor(A){this.parser=A,this.name=o.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(A){let e=this.name,a=this.parser,t=a.json,i=t.textures[A];if(!i.extensions||!i.extensions[e])return null;let r=i.extensions[e],s=t.images[r.source],o=a.textureLoader;if(s.uri){let A=a.options.manager.getHandler(s.uri);null!==A&&(o=A)}return this.detectSupport().then(function(i){if(i)return a.loadTextureImage(A,r.source,o);if(t.extensionsRequired&&t.extensionsRequired.indexOf(e)>=0)throw Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return a.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){let e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){A(1===e.height)}})),this.isSupported}}class u{constructor(A){this.parser=A,this.name=o.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(A){let e=this.name,a=this.parser,t=a.json,i=t.textures[A];if(!i.extensions||!i.extensions[e])return null;let r=i.extensions[e],s=t.images[r.source],o=a.textureLoader;if(s.uri){let A=a.options.manager.getHandler(s.uri);null!==A&&(o=A)}return this.detectSupport().then(function(i){if(i)return a.loadTextureImage(A,r.source,o);if(t.extensionsRequired&&t.extensionsRequired.indexOf(e)>=0)throw Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return a.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){let e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdj
531FDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){A(1===e.height)}})),this.isSupported}}class m{constructor(A){this.name=o.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){let e=this.parser.json,a=e.bufferViews[A];if(!a.extensions||!a.extensions[this.name])return null;{let A=a.extensions[this.name],t=this.parser.getDependency("buffer",A.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported)if(!(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return t.then(function(e){let a=A.byteOffset||0,t=A.byteLength||0,r=A.count,s=A.byteStride,o=new Uint8Array(e,a,t);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(r,s,o,A.mode,A.filter).then(function(A){return A.buffer}):i.ready.then(function(){let e=new ArrayBuffer(r*s);return i.decodeGltfBuffer(new Uint8Array(e),r,s,o,A.mode,A.filter),e})})}}}class w{constructor(A){this.name=o.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){let e=this.parser.json,a=e.nodes[A];if(!a.extensions||!a.extensions[this.name]||void 0===a.mesh)return null;for(let A of e.meshes[a.mesh].primitives)if(A.mode!==T.TRIANGLES&&A.mode!==T.TRIANGLE_STRIP&&A.mode!==T.TRIANGLE_FAN&&void 0!==A.mode)return null;let i=a.extensions[this.name].attributes,r=[],s={};for(let A in i)r.push(this.parser.getDependency("accessor",i[A]).then(e=>(s[A]=e,s[A])));return r.length<1?null:(r.push(this.parser.createNodeMesh(A)),Promise.all(r).then(A=>{let e=A.pop(),a=e.isGroup?e.children:[e],i=A[0].count,r=[];for(let A of a){let e=new t.kn4,a=new t.Pq0,o=new t.PTz,g=new t.Pq0(1,1,1),n=new t.ZLX(A.geometry,A.material,i);for(let A=0;A<i;A++)s.TRANSLATION&&a.fromBufferAttribute(s.TRANSLATION,A),s.ROTATION&&o.fromBufferAttribute(s.ROTATION,A),s.SCALE&&g.fromBufferAttribute(s.SCALE,A),n.setMatrixAt(A,e.compose(a,o,g));for(let e in n.sourceTrs=s,s)if("_COLOR_0"===e){let A=s[e];n.instanceColor=new t.uWO(A.array,A.itemSize,A.normalized)}else"TRANSLATION"!==e&&"ROTATION"!==e&&"SCALE"!==e&&A.geometry.setAttribute(e,s[e]);t.B69.prototype.copy.call(n,A),this.parser.assignFinalMaterial(n),r.push(n)}return e.isGroup?(e.clear(),e.add(...r),e):r[0]}))}}let D="glTF",k={JSON:0x4e4f534a,BIN:5130562};class F{constructor(A){this.name=o.KHR_BINARY_GLTF,this.content=null,this.body=null;let e=new DataView(A,0,12),a=new TextDecoder;if(this.header={magic:a.decode(new Uint8Array(A.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==D)throw Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw Error("THREE.GLTFLoader: Legacy binary file detected.");let t=this.header.length-12,i=new DataView(A,12),r=0;for(;r<t;){let e=i.getUint32(r,!0);r+=4;let t=i.getUint32(r,!0);if(r+=4,t===k.JSON){let t=new Uint8Array(A,12+r,e);this.content=a.decode(t)}else if(t===k.BIN){let a=12+r;this.body=A.slice(a,a+e)}r+=e}if(null===this.content)throw Error("THREE.GLTFLoader: JSON content not found.")}}class R{constructor(A,e){if(!e)throw Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=o.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(A,e){let a=this.json,i=this.dracoLoader,r=A.extensions[this.name].bufferView,s=A.extensions[this.name].attributes,o={},g={},n={};for(let A in s)o[H[A]||A.toLowerCase()]=s[A];for(let e in A.attributes){let t=H[e]||e.toLowerCase();if(void 0!==s[e]){let i=a.accessors[A.attributes[e]],r=U[i.componentType];n[t]=r.name,g[t]=!0===i.normalized}}return e.getDependency("bufferView",r).then(function(A){return new Promise(function(e,a){i.decodeDracoFile(A,function(A){for(let e in A.attributes){let a=A.attributes[e],t=g[e];void 0!==t&&(a.normalized=t)}e(A)},o,n,t.Zr2,a)})})}}class y{constructor(){this.name=o.KHR_TEXTURE_TRANSFORM}extendTexture(A,e){return(void 0===e.texCoord||e.texCoord===A.channel)&&void 0===e.offset&&void 0===e.rotation&&void 0===e.scale||(A.__hasGLTFUuid||(A=A.clone()),void 0!==e.texCoord&&(A.channel=e.texCoord),void 0!==e.offset&&A.offset.fromArray(e.offset),void 0!==e.rotation&&(A.rotation=e.rotation),void 0!==e.scale&&A.repeat.fromArray(e.scale),A.needsUpdate=!0),A}}
531class G{constructor(){this.name=o.KHR_MESH_QUANTIZATION}}class x extends t.lGw{constructor(A,e,a,t){super(A,e,a,t)}copySampleValue_(A){let e=this.resultBuffer,a=this.sampleValues,t=this.valueSize,i=A*t*3+t;for(let A=0;A!==t;A++)e[A]=a[i+A];return e}interpolate_(A,e,a,t){let i=this.resultBuffer,r=this.sampleValues,s=this.valueSize,o=2*s,g=3*s,n=t-e,c=(a-e)/n,I=c*c,B=I*c,b=A*g,C=b-g,E=-2*B+3*I,Q=B-I,l=1-E,d=Q-I+c;for(let A=0;A!==s;A++){let e=r[C+A+s],a=r[C+A+o]*n,t=r[b+A+s],g=r[b+A]*n;i[A]=l*e+d*a+E*t+Q*g}return i}}let S=new t.PTz;class L extends x{interpolate_(A,e,a,t){let i=super.interpolate_(A,e,a,t);return S.fromArray(i).normalize().toArray(i),i}}let T={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},U={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},M={9728:t.hxR,9729:t.k6q,9984:t.pHI,9985:t.kRr,9986:t.Cfg,9987:t.$_I},N={33071:t.ghU,33648:t.kTW,10497:t.GJx},q={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},H={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"},v={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},O={CUBICSPLINE:void 0,LINEAR:t.PJ3,STEP:t.ljd},_={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function P(A,e,a){for(let t in a.extensions)void 0===A[t]&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[t]=a.extensions[t])}function j(A,e){void 0!==e.extras&&("object"==typeof e.extras?Object.assign(A.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function J(A){let e="",a=Object.keys(A).sort();for(let t=0,i=a.length;t<i;t++)e+=a[t]+":"+A[a[t]]+";";return e}function K(A){switch(A){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}let Y=new t.kn4;class W{constructor(A={},e={}){this.json=A,this.extensions={},this.plugins={},this.options=e,this.cache=new s,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 a=!1,i=!1,r=-1;"undefined"!=typeof navigator&&(a=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),r=(i=navigator.userAgent.indexOf("Firefox")>-1)?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||a||i&&r<98?this.textureLoader=new t.Tap(this.options.manager):this.textureLoader=new t.Kzg(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new t.Y9S(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,e){let a=this,t=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(A){return A._markDefs&&A._markDefs()}),Promise.all(this._invokeAll(function(A){return A.beforeRoot&&A.beforeRoot()})).then(function(){return Promise.all([a.getDependencies("scene"),a.getDependencies("animation"),a.getDependencies("camera")])}).then(function(e){let r={scene:e[0][t.scene||0],scenes:e[0],animations:e[1],cameras:e[2],asset:t.asset,parser:a,userData:{}};return P(i,r,t),j(r,t),Promise.all(a._invokeAll(function(A){return A.afterRoot&&A.afterRoot(r)})).then(function(){for(let A of r.scenes)A.updateMatrixWorld();A(r)})}).catch(e)}_markDefs(){let A=this.json.nodes||[],e=this.json.skins||[],a=this.json.meshes||[];for(let a=0,t=e.length;a<t;a++){let t=e[a].joints;for(let e=0,a=t.length;e<a;e++)A[t[e]].isBone=!0}for(let e=0,t=A.length;e<t;e++){let t=A[e];void 0!==t.mesh&&(this._addNodeRef(this.meshCache,t.mesh),void 0!==t.skin&&(a[t.mesh].isSkinnedMesh=!0)),void 0!==t.camera&&this._addNodeRef(this.cameraCache,t.camera)}}_addNodeRef(A,e){void 0!==e&&(void 0===A.refs[e]&&(A.refs[e]=A.uses[e]=0),A.refs[e]++)}
531_getNodeRef(A,e,a){if(A.refs[e]<=1)return a;let t=a.clone(),i=(A,e)=>{let a=this.associations.get(A);for(let[t,r]of(null!=a&&this.associations.set(e,a),A.children.entries()))i(r,e.children[t])};return i(a,t),t.name+="_instance_"+A.uses[e]++,t}_invokeOne(A){let e=Object.values(this.plugins);e.push(this);for(let a=0;a<e.length;a++){let t=A(e[a]);if(t)return t}return null}_invokeAll(A){let e=Object.values(this.plugins);e.unshift(this);let a=[];for(let t=0;t<e.length;t++){let i=A(e[t]);i&&a.push(i)}return a}getDependency(A,e){let a=A+":"+e,t=this.cache.get(a);if(!t){switch(A){case"scene":t=this.loadScene(e);break;case"node":t=this._invokeOne(function(A){return A.loadNode&&A.loadNode(e)});break;case"mesh":t=this._invokeOne(function(A){return A.loadMesh&&A.loadMesh(e)});break;case"accessor":t=this.loadAccessor(e);break;case"bufferView":t=this._invokeOne(function(A){return A.loadBufferView&&A.loadBufferView(e)});break;case"buffer":t=this.loadBuffer(e);break;case"material":t=this._invokeOne(function(A){return A.loadMaterial&&A.loadMaterial(e)});break;case"texture":t=this._invokeOne(function(A){return A.loadTexture&&A.loadTexture(e)});break;case"skin":t=this.loadSkin(e);break;case"animation":t=this._invokeOne(function(A){return A.loadAnimation&&A.loadAnimation(e)});break;case"camera":t=this.loadCamera(e);break;default:if(!(t=this._invokeOne(function(a){return a!=this&&a.getDependency&&a.getDependency(A,e)})))throw Error("Unknown type: "+A)}this.cache.add(a,t)}return t}getDependencies(A){let e=this.cache.get(A);if(!e){let a=this;e=Promise.all((this.json[A+("mesh"===A?"es":"s")]||[]).map(function(e,t){return a.getDependency(A,t)})),this.cache.add(A,e)}return e}loadBuffer(A){let e=this.json.buffers[A],a=this.fileLoader;if(e.type&&"arraybuffer"!==e.type)throw Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(void 0===e.uri&&0===A)return Promise.resolve(this.extensions[o.KHR_BINARY_GLTF].body);let i=this.options;
531return new Promise(function(A,r){a.load(t.r6x.resolveURL(e.uri,i.path),A,void 0,function(){r(Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(A){let e=this.json.bufferViews[A];return this.getDependency("buffer",e.buffer).then(function(A){let a=e.byteLength||0,t=e.byteOffset||0;return A.slice(t,t+a)})}loadAccessor(A){let e=this,a=this.json,i=this.json.accessors[A];if(void 0===i.bufferView&&void 0===i.sparse){let A=q[i.type],e=U[i.componentType],a=!0===i.normalized,r=new e(i.count*A);return Promise.resolve(new t.THS(r,A,a))}let r=[];return void 0!==i.bufferView?r.push(this.getDependency("bufferView",i.bufferView)):r.push(null),void 0!==i.sparse&&(r.push(this.getDependency("bufferView",i.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",i.sparse.values.bufferView))),Promise.all(r).then(function(A){let r,s,o=A[0],g=q[i.type],n=U[i.componentType],c=n.BYTES_PER_ELEMENT,I=c*g,B=i.byteOffset||0,b=void 0!==i.bufferView?a.bufferViews[i.bufferView].byteStride:void 0,C=!0===i.normalized;if(b&&b!==I){let A=Math.floor(B/b),a="InterleavedBuffer:"+i.bufferView+":"+i.componentType+":"+A+":"+i.count,I=e.cache.get(a);I||(r=new n(o,A*b,i.count*b/c),I=new t.eB$(r,b/c),e.cache.add(a,I)),s=new t.eHs(I,g,B%b/c,C)}else r=null===o?new n(i.count*g):new n(o,B,i.count*g),s=new t.THS(r,g,C);if(void 0!==i.sparse){let e=q.SCALAR,a=U[i.sparse.indices.componentType],r=i.sparse.indices.byteOffset||0,c=i.sparse.values.byteOffset||0,I=new a(A[1],r,i.sparse.count*e),B=new n(A[2],c,i.sparse.count*g);null!==o&&(s=new t.THS(s.array.slice(),s.itemSize,s.normalized));for(let A=0,e=I.length;A<e;A++){let e=I[A];if(s.setX(e,B[A*g]),g>=2&&s.setY(e,B[A*g+1]),g>=3&&s.setZ(e,B[A*g+2]),g>=4&&s.setW(e,B[A*g+3]),g>=5)throw Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return s})}loadTexture(A){let e=this.json,a=this.options;if(A<0||A>=e.textures.length)return console.warn("THREE.GLTFLoader: Invalid texture index:",A),null;let t=e.textures[A].source;if(t<0||t>=e.images.length)return console.warn("THREE.GLTFLoader: Invalid source index:",t),null;let i=e.images[t],r=this.textureLoader;if(i.uri){let A=a.manager.getHandler(i.uri);null!==A&&(r=A)}return this.loadTextureImage(A,t,r)}loadTextureImage(A,e,a){let i=this,r=this.json,s=r.textures[A],o=r.images[e],g=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[g])return this.textureCache[g];let n=this.loadImageSource(e,a).then(function(e){e.name=s.name||o.name||"",""===e.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(e.name=o.uri);let a=(r.samplers||{})[s.sampler]||{};return e.magFilter=M[a.magFilter]||t.k6q,e.minFilter=M[a.minFilter]||t.$_I,e.wrapS=N[a.wrapS]||t.GJx,e.wrapT=N[a.wrapT]||t.GJx,a.extras&&void 0!==a.extras.uuid&&(e.uuid=a.extras.uuid,e.__hasGLTFUuid=!0),i.associations.set(e,{textures:A}),e}).catch(function(){return null});return this.textureCache[g]=n,n}loadImageSource(A,e,a=!1,i=!1){let r=this,s=this.json,o=this.options;if(!i&&void 0!==this.sourceCache[A])return this.sourceCache[A].then(A=>A.clone());let g=s.images[A],n=self.URL||self.webkitURL;void 0===g.uri&&g.extras&&g.extras.uri&&(g.uri=g.extras.uri);let c=g.uri||"",I=!1,B=null;if(void 0===g.bufferView||a&&c){if(void 0===g.uri)throw Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView")}else c=r.getDependency("bufferView",g.bufferView).then(function(A){I=!0;let e=new Blob([A],{type:g.mimeType});return c=n.createObjectURL(e),B=e,c});let b=Promise.resolve(c).then(function(A){return new Promise(function(a,i){let s=a;!0===e.isImageBitmapLoader&&(s=function(A){let e=new t.gPd(A);e.needsUpdate=!0,a(e)}),e.load(t.r6x.resolveURL(A,o.path),s,void 0,function(g){!0===e.isImageBitmapLoader?(e=new t.Tap(r.options.manager),s=a,e.setCrossOrigin(r.options.crossOrigin),e.setRequestHeader(r.options.requestHeader),e.load(t.r6x.resolveURL(A,o.path),s,void 0,i)):i(g)})})}).then(function(i){var s;if(!0===I&&n.revokeObjectURL(c),i.userData.mimeType=g.mimeType||((s=g.uri).search(/\.jpe?g($|\?)/i)>0||0===s.search(/^data\:image\/jpeg/)?"image/jpeg":s.search(/\.webp($|\?)/i)>0||0===s.search(/^data\:image\/webp/)?"image/webp":"image/png"),i.flipY=!1,g.extras){if(void 0!==g.extras.flipY){if(!0===e.isImageBitmapLoader){let A=i,e=g.extras.flipY&&!A.flipY;createImageBitmap(A.source.data,{imageOrientation:e?"flipY":"none"}).then(function(e){A._newTex&&(A=A._newTex),A.source.data.close&&A.source.data.close(),A.source.data=e,A.source.needsUpdate=!0,A.needsUpdate=!0})}i.flipY=g.extras.flipY,i.needsUpdate=!0,delete g.extras.flipY}void 0!==g.extras.uuid&&(i.source.uuid=g.extras.uuid),void 0!==g.extras.t_uuid&&(i.uuid=g.extras.t_uuid,i.__hasGLTFUuid=!0)}
531return g.uri&&"string"==typeof g.uri&&!1===I&&(i.userData.rootPath=t.r6x.resolveURL(g.uri,o.path)),B&&(i.userData.__sourceBlob=B),!a&&g.uri&&g.uri!==c&&r.loadImageSource(A,e,!0,!0).then(function(A){i.source.data&&i.source.data.close&&i.source.data.close(),i.dispose(),i.source=A.source,i.source.needsUpdate=!0,i.needsUpdate=!0,i.uuid=A.uuid,A.__hasGLTFUuid&&(i.__hasGLTFUuid=!0),i.flipY=A.flipY,i.userData=A.userData,i.setDirty&&i.setDirty(),A._newTex=i}),i}).catch(function(A){throw console.error("THREE.GLTFLoader: Couldn't load texture",c),A});return this.sourceCache[A]=b,b}assignTexture(A,e,a,t){let i=this;return this.getDependency("texture",a.index).then(function(r){if(!r)return null;if(void 0!==a.texCoord&&a.texCoord>0&&((r=r.clone()).channel=a.texCoord),i.extensions[o.KHR_TEXTURE_TRANSFORM]){let A=void 0!==a.extensions?a.extensions[o.KHR_TEXTURE_TRANSFORM]:void 0;if(A){let e=i.associations.get(r);r=i.extensions[o.KHR_TEXTURE_TRANSFORM].extendTexture(r,A),i.associations.set(r,e)}}return void 0!==t&&(r.colorSpace=t),A[e]=r,r})}assignFinalMaterial(A){let e=A.geometry,a=A.material,i=void 0===e.attributes.tangent,s=void 0!==e.attributes.color,o=void 0===e.attributes.normal;if(A.isPoints){let A="PointsMaterial:"+a.uuid,e=this.cache.get(A);e||(e=new r.ObjectConstructors.PointsMaterial,t.imn.prototype.copy.call(e,a),e.color.copy(a.color),e.map=a.map,e.sizeAttenuation=!1,this.cache.add(A,e)),a=e}else if(A.isLine){let A="LineBasicMaterial:"+a.uuid,e=this.cache.get(A);e||(e=new r.ObjectConstructors.LineBasicMaterial,t.imn.prototype.copy.call(e,a),e.color.copy(a.color),e.map=a.map,this.cache.add(A,e)),a=e}let g=!!a.userData&&!!a.userData.gltfExtensions&&!!a.userData.gltfExtensions.WEBGI_material_extras;if((i||s||o)&&!g){let A="ClonedMaterial:"+a.uuid+":";i&&(A+="derivative-tangents:"),s&&(A+="vertex-colors:"),o&&(A+="flat-shading:");let e=this.cache.get(A);e||(e=a.clone(),s&&(e.vertexColors=!0),o&&(e.flatShading=!0),i&&(e.normalScale&&(e.normalScale.y*=-1),e.clearcoatNormalScale&&(e.clearcoatNormalScale.y*=-1)),this.cache.add(A,e),this.associations.set(e,this.associations.get(a))),a=e}A.material=a}getMaterialType(){return r.ObjectConstructors.MeshStandardMaterial}loadMaterial(A){let e,a=this,i=this.json,s=this.extensions,g=i.materials[A],n={},c=g.extensions||{},I=[];if(c[o.KHR_MATERIALS_UNLIT]){let A=s[o.KHR_MATERIALS_UNLIT];e=A.getMaterialType(),I.push(A.extendParams(n,g,a))}else{let i=g.pbrMetallicRoughness||{};if(n.color=new t.Q1f(1,1,1),n.opacity=1,Array.isArray(i.baseColorFactor)){let A=i.baseColorFactor;n.color.setRGB(A[0],A[1],A[2],t.Zr2),n.opacity=A[3]}void 0!==i.baseColorTexture&&I.push(a.assignTexture(n,"map",i.baseColorTexture,t.er$)),n.metalness=void 0!==i.metallicFactor?i.metallicFactor:1,n.roughness=void 0!==i.roughnessFactor?i.roughnessFactor:1,void 0!==i.metallicRoughnessTexture&&(I.push(a.assignTexture(n,"metalnessMap",i.metallicRoughnessTexture)),I.push(a.assignTexture(n,"roughnessMap",i.metallicRoughnessTexture))),e=this._invokeOne(function(e){return e.getMaterialType&&e.getMaterialType(A)}),I.push(Promise.all(this._invokeAll(function(e){return e.extendMaterialParams&&e.extendMaterialParams(A,n)})))}!0===g.doubleSided&&(n.side=t.$EB);let B=g.alphaMode||_.OPAQUE;if(B===_.BLEND?(n.transparent=!0,n.depthWrite=!1):(n.transparent=!1,B===_.MASK&&(n.alphaTest=void 0!==g.alphaCutoff?g.alphaCutoff:.5)),void 0!==g.normalTexture&&e!==r.ObjectConstructors.MeshBasicMaterial&&(I.push(a.assignTexture(n,"normalMap",g.normalTexture)),n.normalScale=new t.I9Y(1,1),void 0!==g.normalTexture.scale)){let A=g.normalTexture.scale;n.normalScale.set(A,A)}if(void 0!==g.occlusionTexture&&e!==r.ObjectConstructors.MeshBasicMaterial&&(I.push(a.assignTexture(n,"aoMap",g.occlusionTexture)),void 0!==g.occlusionTexture.strength&&(n.aoMapIntensity=g.occlusionTexture.strength)),void 0!==g.emissiveFactor&&e!==r.ObjectConstructors.MeshBasicMaterial){let A=g.emissiveFactor;n.emissive=new t.Q1f().setRGB(A[0],A[1],A[2],t.Zr2)}return void 0!==g.emissiveTexture&&e!==r.ObjectConstructors.MeshBasicMaterial&&I.push(a.assignTexture(n,"emissiveMap",g.emissiveTexture,t.er$)),Promise.all(I).then(function(){let t=new e(n);
531return g.extras&&g.extras.uuid&&(t.uuid=g.extras.uuid),g.name&&(t.name=g.name),j(t,g),a.associations.set(t,{materials:A}),g.extensions&&P(s,t,g),t})}createUniqueName(A){let e=t.Nwf.sanitizeNodeName(A||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(A){let e=this,a=this.extensions,i=this.primitiveCache,r=[];for(let s=0,g=A.length;s<g;s++){let g=A[s],n=function(A){let e,a=A.extensions&&A.extensions[o.KHR_DRACO_MESH_COMPRESSION];if(e=a?"draco:"+a.bufferView+":"+a.indices+":"+J(a.attributes):A.indices+":"+J(A.attributes)+":"+A.mode,void 0!==A.targets)for(let a=0,t=A.targets.length;a<t;a++)e+=":"+J(A.targets[a]);return e}(g),c=i[n];if(c)r.push(c.promise);else{let A;A=g.extensions&&g.extensions[o.KHR_DRACO_MESH_COMPRESSION]?function(A){return a[o.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(A,e).then(function(a){return V(a,A,e)})}(g):V(new t.LoY,g,e),i[n]={primitive:g,promise:A},r.push(A)}}return Promise.all(r)}loadMesh(A){let e=this,a=this.json,s=this.extensions,o=a.meshes[A],g=o.primitives,n=[];for(let A=0,e=g.length;A<e;A++){var c;let e=void 0===g[A].material?(void 0===(c=this.cache).DefaultMaterial&&(c.DefaultMaterial=new r.ObjectConstructors.MeshStandardMaterial({color:0xffffff,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:t.hB5})),c.DefaultMaterial):this.getDependency("material",g[A].material);n.push(e)}return n.push(e.loadGeometries(g)),Promise.all(n).then(function(a){let r=a.slice(0,a.length-1),n=a[a.length-1],c=[];for(let a=0,I=n.length;a<I;a++){let I,B=n[a],b=g[a],C=r[a];if(b.mode===T.TRIANGLES||b.mode===T.TRIANGLE_STRIP||b.mode===T.TRIANGLE_FAN||void 0===b.mode)!0===(I=!0===o.isSkinnedMesh?new t.I46(B,C):new t.eaF(B,C)).isSkinnedMesh&&I.normalizeSkinWeights(),b.mode===T.TRIANGLE_STRIP?I.geometry=i(I.geometry,t.O49):b.mode===T.TRIANGLE_FAN&&(I.geometry=i(I.geometry,t.rYR));else if(b.mode===T.LINES)I=new t.DXC(B,C);else if(b.mode===T.LINE_STRIP)I=new t.N1A(B,C);else if(b.mode===T.LINE_LOOP)I=new t.FCc(B,C);else if(b.mode===T.POINTS)I=new t.ONl(B,C);else throw Error("THREE.GLTFLoader: Primitive mode unsupported: "+b.mode);Object.keys(I.geometry.morphAttributes).length>0&&function(A,e){if(A.updateMorphTargets(),void 0!==e.weights)for(let a=0,t=e.weights.length;a<t;a++)A.morphTargetInfluences[a]=e.weights[a];if(e.extras&&Array.isArray(e.extras.targetNames)){let a=e.extras.targetNames;if(A.morphTargetInfluences.length===a.length){A.morphTargetDictionary={};for(let e=0,t=a.length;e<t;e++)A.morphTargetDictionary[a[e]]=e}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}(I,o),I.name=e.createUniqueName(o.name||"mesh_"+A),I.geometry&&o.extras&&o.extras.isGeometryUserData?(j(I.geometry,o),b.extensions&&P(s,I.geometry,b)):(j(I,o),b.extensions&&P(s,I,b)),e.assignFinalMaterial(I),c.push(I)}o.extensions&&c.forEach(A=>P(s,A,o));for(let a=0,t=c.length;a<t;a++)e.associations.set(c[a],{meshes:A,primitives:a});if(1===c.length)return o.extensions&&P(s,c[0],o),c[0];let I=new t.YJl;o.extensions&&P(s,I,o),e.associations.set(I,{meshes:A});for(let A=0,e=c.length;A<e;A++)I.add(c[A]);return I})}loadCamera(A){let e,a=this.json.cameras[A],i=a[a.type];return i?("perspective"===a.type?e=new r.ObjectConstructors.PerspectiveCamera(t.cj9.radToDeg(i.yfov),i.aspectRatio||1,i.znear||1,i.zfar||2e6):"orthographic"===a.type&&(e=new r.ObjectConstructors.OrthographicCamera(-i.xmag,i.xmag,i.ymag,-i.ymag,i.znear,i.zfar)),a.name&&(e.name=this.createUniqueName(a.name)),j(e,a),Promise.resolve(e)):void console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(A){let e=this.json.skins[A],a=[];for(let A=0,t=e.joints.length;A<t;A++)a.push(this._loadNodeShallow(e.joints[A]));return void 0!==e.inverseBindMatrices?a.push(this.getDependency("accessor",e.inverseBindMatrices)):a.push(null),Promise.all(a).then(function(A){let a=A.pop(),i=[],r=[];for(let s=0,o=A.length;s<o;s++){let o=A[s];if(o){i.push(o);let A=new t.kn4;null!==a&&A.fromArray(a.array,16*s),r.push(A)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[s])}return new t.EAD(i,r)})}loadAnimation(A){let e=this.json,a=this,i=e.animations[A],r=i.name?i.name:"animation_"+A,s=[],o=[],g=[],n=[],c=[];for(let A=0,e=i.channels.length;A<e;A++){let e=i.channels[A],a=i.samplers[e.sampler],t=e.target,r=t.node,I=void 0!==i.parameters?i.parameters[a.input]:a.input,B=void 0!==i.parameters?i.parameters[a.output]:a.output;void 0!==t.node&&(s.push(this.getDependency("node",r)),o.push(this.getDependency("accessor",I)),g.pu
531sh(this.getDependency("accessor",B)),n.push(a),c.push(t))}return Promise.all([Promise.all(s),Promise.all(o),Promise.all(g),Promise.all(n),Promise.all(c)]).then(function(A){let e=A[0],s=A[1],o=A[2],g=A[3],n=A[4],c=[];for(let A=0,t=e.length;A<t;A++){let t=e[A],i=s[A],r=o[A],I=g[A],B=n[A];if(void 0===t)continue;t.updateMatrix&&t.updateMatrix();let b=a._createAnimationTracks(t,i,r,I,B);if(b)for(let A=0;A<b.length;A++)c.push(b[A])}let I=new t.tz3(r,void 0,c);return j(I,i),I})}createNodeMesh(A){let e=this.json,a=this,t=e.nodes[A];return void 0===t.mesh?null:a.getDependency("mesh",t.mesh).then(function(A){let e=a._getNodeRef(a.meshCache,t.mesh,A);return void 0!==t.weights&&e.traverse(function(A){if(A.isMesh)for(let e=0,a=t.weights.length;e<a;e++)A.morphTargetInfluences[e]=t.weights[e]}),e})}loadNode(A){let e=this.json.nodes[A],a=this._loadNodeShallow(A),t=[],i=e.children||[];for(let A=0,e=i.length;A<e;A++)t.push(this.getDependency("node",i[A]));let r=void 0===e.skin?Promise.resolve(null):this.getDependency("skin",e.skin);return Promise.all([a,Promise.all(t),r]).then(function(A){let e=A[0],a=A[1],t=A[2];null!==t&&e.traverse(function(A){A.isSkinnedMesh&&A.bind(t,Y)});for(let A=0,t=a.length;A<t;A++)e.add(a[A]);return e})}_loadNodeShallow(A){let e=this.json,a=this.extensions,i=this;if(void 0!==this.nodeCache[A])return this.nodeCache[A];let r=e.nodes[A],s=r.name?i.createUniqueName(r.name):"",o=[],g=i._invokeOne(function(e){return e.createNodeMesh&&e.createNodeMesh(A)});return g&&o.push(g),void 0!==r.camera&&o.push(i.getDependency("camera",r.camera).then(function(A){return i._getNodeRef(i.cameraCache,r.camera,A)})),i._invokeAll(function(e){return e.createNodeAttachment&&e.createNodeAttachment(A)}).forEach(function(A){o.push(A)}),this.nodeCache[A]=Promise.all(o).then(function(e){let o;if((o=!0===r.isBone?new t.$Kf:e.length>1?new t.YJl:1===e.length?e[0]:new t.B69)!==e[0])for(let A=0,a=e.length;A<a;A++)o.add(e[A]);if(r.name&&(o.userData.name=r.name,o.name=s),j(o,r),r.extensions&&P(a,o,r),void 0!==r.matrix){let A=new t.kn4;A.fromArray(r.matrix),o.applyMatrix4(A)}else void 0!==r.translation&&o.position.fromArray(r.translation),void 0!==r.rotation&&o.quaternion.fromArray(r.rotation),void 0!==r.scale&&o.scale.fromArray(r.scale);return i.associations.has(o)||i.associations.set(o,{}),i.associations.get(o).nodes=A,o}),this.nodeCache[A]}loadScene(A){let e=this.extensions,a=this.json.scenes[A],i=this,r=new t.YJl;a.name&&(r.name=i.createUniqueName(a.name)),j(r,a),a.extensions&&P(e,r,a);let s=a.nodes||[],o=[];for(let A=0,e=s.length;A<e;A++)o.push(i.getDependency("node",s[A]));return Promise.all(o).then(function(A){for(let e=0,a=A.length;e<a;e++)r.add(A[e]);return i.associations=(A=>{let e=new Map;for(let[A,a]of i.associations)(A instanceof t.imn||A instanceof t.gPd)&&e.set(A,a);return A.traverse(A=>{let a=i.associations.get(A);null!=a&&e.set(A,a)}),e})(r),r})}_createAnimationTracks(A,e,a,i,r){let s,o=[],g=A.name?A.name:A.uuid,n=[];switch(v[r.path]===v.weights?A.traverse(function(A){A.morphTargetInfluences&&n.push(A.name?A.name:A.uuid)}):n.push(g),v[r.path]){case v.weights:s=t.Hit;break;case v.rotation:s=t.MBL;break;case v.position:case v.scale:s=t.RiT;break;default:s=1===a.itemSize?t.Hit:t.RiT}let c=void 0!==i.interpolation?O[i.interpolation]:t.PJ3,I=this._getArrayFromAccessor(a);for(let A=0,a=n.length;A<a;A++){let a=new s(n[A]+"."+v[r.path],e.array,I,c);"CUBICSPLINE"===i.interpolation&&this._createCubicSplineTrackInterpolant(a),o.push(a)}return o}_getArrayFromAccessor(A){let e=A.array;if(A.normalized){let A=K(e.constructor),a=new Float32Array(e.length);for(let t=0,i=e.length;t<i;t++)a[t]=e[t]*A;e=a}return e}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(A){return new(this instanceof t.MBL?L:x)(this.times,this.values,this.getValueSize()/3,A)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function V(A,e,a){let i=e.attributes,r=[];for(let e in i){let t=H[e]||e.toLowerCase();t in A.attributes||r.push(function(e,t){return a.getDependency("accessor",e).then(function(e){A.setAttribute(t,e)})}(i[e],t))}if(void 0!==e.indices&&!A.index){let t=a.getDependency("accessor",e.indices).then(function(e){A.setIndex(e)});r.push(t)}return t.ppV.workingColorSpace!==t.Zr2&&"COLOR_0"in i&&console.warn(`THREE.GLTFLoader: Convert
531ing vertex colors from "srgb-linear" to "${t.ppV.workingColorSpace}" not supported.`),j(A,e),!function(A,e,a){let i=e.attributes,r=new t.NRn;if(void 0===i.POSITION)return;{let A=a.json.accessors[i.POSITION],e=A.min,s=A.max;if(void 0===e||void 0===s)return console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(r.set(new t.Pq0(e[0],e[1],e[2]),new t.Pq0(s[0],s[1],s[2])),A.normalized){let e=K(U[A.componentType]);r.min.multiplyScalar(e),r.max.multiplyScalar(e)}}let s=e.targets;if(void 0!==s){let A=new t.Pq0,e=new t.Pq0;for(let t=0,i=s.length;t<i;t++){let i=s[t];if(void 0!==i.POSITION){let t=a.json.accessors[i.POSITION],r=t.min,s=t.max;if(void 0!==r&&void 0!==s){if(e.setX(Math.max(Math.abs(r[0]),Math.abs(s[0]))),e.setY(Math.max(Math.abs(r[1]),Math.abs(s[1]))),e.setZ(Math.max(Math.abs(r[2]),Math.abs(s[2]))),t.normalized){let A=K(U[t.componentType]);e.multiplyScalar(A)}A.max(e)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}r.expandByVector(A)}A.boundingBox=r;let o=new t.iyt;r.getCenter(o.center),o.radius=r.min.distanceTo(r.max)/2,A.boundingSphere=o}(A,e,a),Promise.all(r).then(function(){return void 0!==e.targets?function(A,e,a){let t=!1,i=!1,r=!1;for(let A=0,a=e.length;A<a;A++){let a=e[A];if(void 0!==a.POSITION&&(t=!0),void 0!==a.NORMAL&&(i=!0),void 0!==a.COLOR_0&&(r=!0),t&&i&&r)break}if(!t&&!i&&!r)return Promise.resolve(A);let s=[],o=[],g=[];for(let n=0,c=e.length;n<c;n++){let c=e[n];if(t){let e=void 0!==c.POSITION?a.getDependency("accessor",c.POSITION):A.attributes.position;s.push(e)}if(i){let e=void 0!==c.NORMAL?a.getDependency("accessor",c.NORMAL):A.attributes.normal;o.push(e)}if(r){let e=void 0!==c.COLOR_0?a.getDependency("accessor",c.COLOR_0):A.attributes.color;
531g.push(e)}}return Promise.all([Promise.all(s),Promise.all(o),Promise.all(g)]).then(function(e){let a=e[0],s=e[1],o=e[2];return t&&(A.morphAttributes.position=a),i&&(A.morphAttributes.normal=s),r&&(A.morphAttributes.color=o),A.morphTargetsRelative=!0,A})}(A,e.targets,a):A})}},93576:(A,e,a)=>{a.d(e,{f:()=>t});var t=function(){var A,e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),a=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if("object"!=typeof WebAssembly)return{supported:!1};var t
vendor: 19,325 bytes, line 531
531=WebAssembly.validate(e)?"b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb":"b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",
531i=WebAssembly.instantiate(r(t),{}).then(function(e){(A=e.instance).exports.__wasm_call_ctors()});function r(A){for(var e=new Uint8Array(A.length),t=0;t<A.length;++t){var i=A.charCodeAt(t);e[t]=i>96?i-97:i>64?i-39:i+4}for(var r=0,t=0;t<A.length;++t)e[r++]=e[t]<60?a[e[t]]:(e[t]-60)*64+e[++t];return e.buffer.slice(0,r)}function s(e,a,t,i,r,s){var o=A.exports.sbrk,g=t+3&-4,n=o(g*i),c=o(r.length),I=new Uint8Array(A.exports.memory.buffer);I.set(r,c);var B=e(n,t,i,c,r.length);if(0==B&&s&&s(n,g,i),a.set(I.subarray(n,n+t*i)),o(n-o(0)),0!=B)throw Error("Malformed buffer data: "+B)}var o={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},g={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},n=[],c=0;function I(e){i.then(function(){var a=e.data;try{var t=new Uint8Array(a.count*a.size);s(A.exports[a.mode],t,a.count,a.size,a.source,A.exports[a.filter]),self.postMessage({id:a.id,count:a.count,action:"resolve",value:t},[t.buffer])}catch(A){self.postMessage({id:a.id,count:a.count,action:"reject",value:A})}})}return{ready:i,supported:!0,useWorkers:function(A){for(var e=new Blob(["var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(r(t))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;
531"+s.toString()+I.toString()],{type:"text/javascript"}),a=URL.createObjectURL(e),i=0;i<A;++i)n[i]=function(A){var e={object:new Worker(A),pending:0,requests:{}};return e.object.onmessage=function(A){var a=A.data;e.pending-=a.count,e.requests[a.id][a.action](a.value),delete e.requests[a.id]},e}(a);URL.revokeObjectURL(a)},decodeVertexBuffer:function(e,a,t,i,r){s(A.exports.meshopt_decodeVertexBuffer,e,a,t,i,A.exports[o[r]])},decodeIndexBuffer:function(e,a,t,i){s(A.exports.meshopt_decodeIndexBuffer,e,a,t,i)},decodeIndexSequence:function(e,a,t,i){s(A.exports.meshopt_decodeIndexSequence,e,a,t,i)},decodeGltfBuffer:function(e,a,t,i,r,n){s(A.exports[g[r]],e,a,t,i,A.exports[o[n]])},decodeGltfBufferAsync:function(e,a,t,r,I){return n.length>0?function(A,e,a,t,i){for(var r=n[0],s=1;s<n.length;++s)n[s].pending<r.pending&&(r=n[s]);return new Promise(function(s,o){var g=new Uint8Array(a),n=c++;r.pending+=A,r.requests[n]={resolve:s,reject:o},r.object.postMessage({id:n,count:A,size:e,source:g,mode:t,filter:i},[g.buffer])})}(e,a,t,g[r],o[I]):i.then(function(){var i=new Uint8Array(e*a);return s(A.exports[g[r]],i,e,a,t,A.exports[o[I]]),i})}}}()}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.