@mapvx/web-kit 1.2.0-develop.11 → 1.2.0-develop.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/chunks/{DRACOLoader-CjN7nfMz.cjs → DRACOLoader-B7myelzS.cjs} +2 -2
- package/dist/cjs/chunks/{GLTFLoader-C33v_eKh.cjs → GLTFLoader-Bhlg-PN9.cjs} +2 -2
- package/dist/cjs/chunks/{KTX2Loader-GfgRciKI.cjs → KTX2Loader-8oVInPCY.cjs} +2 -2
- package/dist/cjs/chunks/{accessibility-CamvBQ8h.cjs → accessibility-DQMGPqEF.cjs} +2 -2
- package/dist/cjs/chunks/{back_arrow-BrByZltA.cjs → back_arrow-BT38PaNs.cjs} +2 -2
- package/dist/cjs/chunks/{debug-hooks-C_m1SbH2.cjs → debug-hooks-DDHLlDXD.cjs} +2 -2
- package/dist/cjs/chunks/{dist-B3zxScE2.cjs → dist-BsZPOLf6.cjs} +2 -2
- package/dist/cjs/chunks/{dist-DRfr3UXp.cjs → dist-CdHuaZdF.cjs} +2 -2
- package/dist/cjs/chunks/{dist-CpCOzc73.cjs → dist-Dqt88Zla.cjs} +2 -2
- package/dist/cjs/chunks/{expression-EUvjFYH4.cjs → expression-DOSBosTT.cjs} +2 -2
- package/dist/cjs/chunks/{globe-viewport-SZrSWKdf.cjs → globe-viewport-CTph-zTi.cjs} +2 -2
- package/dist/cjs/chunks/{icon-origin-point-DW7v7TzN.cjs → icon-origin-point-BQq_v8fl.cjs} +2 -2
- package/dist/cjs/chunks/{meshopt_decoder.module-Dk924uu3.cjs → meshopt_decoder.module-Xc0iTpWr.cjs} +2 -2
- package/dist/cjs/chunks/{repeat_icon-Bpef1DPh.cjs → repeat_icon-DgZwJHQn.cjs} +2 -2
- package/dist/cjs/chunks/{rolldown-runtime-1If4f64F.cjs → rolldown-runtime-DCHM1mdG.cjs} +2 -2
- package/dist/cjs/chunks/{shader-type-decoder-BqFbHaKB.cjs → shader-type-decoder-ClUxS2uC.cjs} +2 -2
- package/dist/cjs/chunks/{styles-DP9KZtXl.cjs → styles-ap7q_oUC.cjs} +2 -2
- package/dist/cjs/chunks/{three.module-Drz560ge.cjs → three.module-CZrl_ZUv.cjs} +2 -2
- package/dist/cjs/chunks/{walking-BfKvsH3Y.cjs → walking-zHHQi5LZ.cjs} +2 -2
- package/dist/cjs/chunks/{webgl-CxZNw2p_.cjs → webgl-CmboLkDs.cjs} +2 -2
- package/dist/cjs/chunks/{webgl-device-Dpif38ir.cjs → webgl-device-BXkaCOiH.cjs} +2 -2
- package/dist/cjs/web-kit.cjs +22 -22
- package/dist/es/chunks/{DRACOLoader-CudX8012.js → DRACOLoader-CNpxxqVh.js} +2 -2
- package/dist/es/chunks/{GLTFLoader-BLc_n6C7.js → GLTFLoader-CbnWtZLU.js} +2 -2
- package/dist/es/chunks/{KTX2Loader-CnBac9vX.js → KTX2Loader-DA7PMnUh.js} +2 -2
- package/dist/es/chunks/{accessibility-BTRW5qzF.js → accessibility-D1G0e3jm.js} +2 -2
- package/dist/es/chunks/{back_arrow-DaE2mYq8.js → back_arrow-DOtCNdHS.js} +2 -2
- package/dist/es/chunks/{debug-hooks-A7fGcVSJ.js → debug-hooks-Cd_b4Bki.js} +2 -2
- package/dist/es/chunks/{dist-Cq65fMeu.js → dist-CrKfguaO.js} +2 -2
- package/dist/es/chunks/{dist-B8bewEN3.js → dist-DXAjwVD1.js} +2 -2
- package/dist/es/chunks/{dist-CeI9yzhC.js → dist-DXRF-lm8.js} +2 -2
- package/dist/es/chunks/{expression-BFfy7ZSj.js → expression-6f6kc1i6.js} +2 -2
- package/dist/es/chunks/{globe-viewport-C_lLyBu9.js → globe-viewport-Brth2aT0.js} +2 -2
- package/dist/es/chunks/{icon-origin-point-bHQmYXyG.js → icon-origin-point-DWIRQVPT.js} +2 -2
- package/dist/es/chunks/{meshopt_decoder.module-ClKO_vyv.js → meshopt_decoder.module-Ch7mmZHA.js} +2 -2
- package/dist/es/chunks/{repeat_icon-BDjNCPIN.js → repeat_icon-D5mfHUaL.js} +2 -2
- package/dist/es/chunks/{rolldown-runtime-CGJB3Nua.js → rolldown-runtime-BptZgroH.js} +2 -2
- package/dist/es/chunks/{shader-type-decoder-DV9QwQh3.js → shader-type-decoder-CQKC8yW9.js} +2 -2
- package/dist/es/chunks/{styles-BPMrJs_x.js → styles-Be_VFWZ4.js} +2 -2
- package/dist/es/chunks/{three.module-DUnMDXpm.js → three.module-CrfgWCl8.js} +2 -2
- package/dist/es/chunks/{walking-CUOW_o2S.js → walking-BRSMxmlG.js} +2 -2
- package/dist/es/chunks/{webgl-B16MrmDy.js → webgl-ClUuONJn.js} +2 -2
- package/dist/es/chunks/{webgl-device-Bht0bA0i.js → webgl-device-6J3R62SY.js} +2 -2
- package/dist/es/web-kit.mjs +25 -25
- package/dist/iife/web-kit.iife.js +22 -22
- package/dist/types/index.d.ts +7 -9
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! Web-kit v1.2.0-develop.
|
|
2
|
-
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="31434e74-17b8-4299-964d-8ac2681d0da8",e._sentryDebugIdIdentifier="sentry-dbid-31434e74-17b8-4299-964d-8ac2681d0da8")}catch(e){}}();const e=require("./debug-hooks-C_m1SbH2.cjs"),t=require("./shader-type-decoder-BqFbHaKB.cjs"),r=require("./webgl-device-Dpif38ir.cjs");function n(e){return function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}(e)||function(e){return!!Array.isArray(e)&&(0===e.length||"number"==typeof e[0])}(e)}var i=class e extends t.Resource{get[Symbol.toStringTag](){return"ComputePipeline"}hash="";shaderLayout;constructor(t,r){super(t,r,e.defaultProps),this.shaderLayout=r.shaderLayout}static defaultProps={...t.Resource.defaultProps,shader:void 0,entryPoint:void 0,constants:{},shaderLayout:void 0}},s=class e{static defaultProps={...r.RenderPipeline.defaultProps};static getDefaultPipelineFactory(t){const r=t.getModuleData("@luma.gl/core");return r.defaultPipelineFactory||=new e(t),r.defaultPipelineFactory}device;_hashCounter=0;_hashes={};_renderPipelineCache={};_computePipelineCache={};_sharedRenderPipelineCache={};get[Symbol.toStringTag](){return"PipelineFactory"}toString(){return`PipelineFactory(${this.device.id})`}constructor(e){this.device=e}createRenderPipeline(e){if(!this.device.props._cachePipelines)return this.device.createRenderPipeline(e);const n={...r.RenderPipeline.defaultProps,...e},i=this._renderPipelineCache,s=this._hashRenderPipeline(n);let o=i[s]?.resource;if(o)i[s].useCount++,this.device.props.debugFactories&&t.log.log(3,`${this}: ${i[s].resource} reused, count=${i[s].useCount}, (id=${e.id})`)();else{const e="webgl"===this.device.type&&this.device.props._sharePipelines?this.createSharedRenderPipeline(n):void 0;o=this.device.createRenderPipeline({...n,id:n.id?`${n.id}-cached`:t.uid("unnamed-cached"),_sharedRenderPipeline:e}),o.hash=s,i[s]={resource:o,useCount:1},this.device.props.debugFactories&&t.log.log(3,`${this}: ${o} created, count=${i[s].useCount}`)()}return o}createComputePipeline(e){if(!this.device.props._cachePipelines)return this.device.createComputePipeline(e);const r={...i.defaultProps,...e},n=this._computePipelineCache,s=this._hashComputePipeline(r);let o=n[s]?.resource;return o?(n[s].useCount++,this.device.props.debugFactories&&t.log.log(3,`${this}: ${n[s].resource} reused, count=${n[s].useCount}, (id=${e.id})`)()):(o=this.device.createComputePipeline({...r,id:r.id?`${r.id}-cached`:void 0}),o.hash=s,n[s]={resource:o,useCount:1},this.device.props.debugFactories&&t.log.log(3,`${this}: ${o} created, count=${n[s].useCount}`)()),o}release(e){if(!this.device.props._cachePipelines)return void e.destroy();const r=this._getCache(e),n=e.hash;r[n].useCount--,0===r[n].useCount?(this._destroyPipeline(e),this.device.props.debugFactories&&t.log.log(3,`${this}: ${e} released and destroyed`)()):r[n].useCount<0?(t.log.error(`${this}: ${e} released, useCount < 0, resetting`)(),r[n].useCount=0):this.device.props.debugFactories&&t.log.log(3,`${this}: ${e} released, count=${r[n].useCount}`)()}createSharedRenderPipeline(e){const t=this._hashSharedRenderPipeline(e);let r=this._sharedRenderPipelineCache[t];return r||(r={resource:this.device._createSharedRenderPipelineWebGL(e),useCount:0},this._sharedRenderPipelineCache[t]=r),r.useCount++,r.resource}releaseSharedRenderPipeline(e){if(!e.sharedRenderPipeline)return;const t=this._hashSharedRenderPipeline(e.sharedRenderPipeline.props),r=this._sharedRenderPipelineCache[t];r&&(r.useCount--,0===r.useCount&&(r.resource.destroy(),delete this._sharedRenderPipelineCache[t]))}_destroyPipeline(e){const t=this._getCache(e);return!!this.device.props._destroyPipelines&&(delete t[e.hash],e.destroy(),e instanceof r.RenderPipeline&&this.releaseSharedRenderPipeline(e),!0)}_getCache(e){let t;if(e instanceof i&&(t=this._computePipelineCache),e instanceof r.RenderPipeline&&(t=this._renderPipelineCache),!t)throw new Error(`${this}`);if(!t[e.hash])throw new Error(`${this}: ${e} matched incorrect entry`);return t}_hashComputePipeline(e){const{type:t}=this.device;return`${t}/C/${this._getHash(e.shader.source)}SL${this._getHash(JSON.stringify(e.shaderLayout))}`}_hashRenderPipeline(e){const t=e.vs?this._getHash(e.vs.source):0,r=e.fs?this._getHash(e.fs.source):0,n=this._getWebGLVaryingHash(e),i=this._getHash(JSON.stringify(e.shaderLayout)),s=this._getHash(JSON.stringify(e._uniformBlockLayouts)),o=this._getHash(JSON.stringify(e.bufferLayout)),{type:a}=this.device;if("webgl"===a){const f=this._getHash(JSON.stringify(e.parameters));return`${a}/R/${t}/${r}V${n}T${e.topology}P${f}SL${i}UBL${s}BL${o}`}{const s=this._getHash(JSON.stringify({vertexEntryPoint:e.vertexEntryPoint,fragmentEntryPoint:e.fragmentEntryPoint})),f=this._getHash(JSON.stringify(e.parameters)),u=this._getWebGPUAttachmentHash(e);return`${a}/R/${t}/${r}V${n}T${e.topology}EP${s}P${f}SL${i}BL${o}A${u}`}}_hashSharedRenderPipeline(e){return`webgl/S/${e.vs?this._getHash(e.vs.source):0}/${e.fs?this._getHash(e.fs.source):0}V${this._getWebGLVaryingHash(e)}`}_getHash(e){return void 0===this._hashes[e]&&(this._hashes[e]=this._hashCounter++),this._hashes[e]}_getWebGLVaryingHash(e){const{varyings:t=[],bufferMode:r=null}=e;return this._getHash(JSON.stringify({varyings:t,bufferMode:r}))}_getWebGPUAttachmentHash(e){const t=e.colorAttachmentFormats??[this.device.preferredColorFormat],r=e.depthStencilAttachmentFormat??(e.parameters?.depthWriteEnabled?this.device.preferredDepthFormat:null);return this._getHash(JSON.stringify({colorAttachmentFormats:t,depthStencilAttachmentFormat:r}))}},o=class e{static defaultProps={...r.Shader.defaultProps};static getDefaultShaderFactory(t){const r=t.getModuleData("@luma.gl/core");return r.defaultShaderFactory||=new e(t),r.defaultShaderFactory}device;_cache={};get[Symbol.toStringTag](){return"ShaderFactory"}toString(){return`${this[Symbol.toStringTag]}(${this.device.id})`}constructor(e){this.device=e}createShader(e){if(!this.device.props._cacheShaders)return this.device.createShader(e);const r=this._hashShader(e);let n=this._cache[r];if(n)n.useCount++,this.device.props.debugFactories&&t.log.log(3,`${this}: Reusing shader ${n.resource.id} count=${n.useCount}`)();else{const i=this.device.createShader({...e,id:e.id?`${e.id}-cached`:void 0});this._cache[r]=n={resource:i,useCount:1},this.device.props.debugFactories&&t.log.log(3,`${this}: Created new shader ${i.id}`)()}return n.resource}release(e){if(!this.device.props._cacheShaders)return void e.destroy();const r=this._hashShader(e),n=this._cache[r];if(n)if(n.useCount--,0===n.useCount)this.device.props._destroyShaders&&(delete this._cache[r],n.resource.destroy(),this.device.props.debugFactories&&t.log.log(3,`${this}: Releasing shader ${e.id}, destroyed`)());else{if(n.useCount<0)throw new Error(`ShaderFactory: Shader ${e.id} released too many times`);this.device.props.debugFactories&&t.log.log(3,`${this}: Releasing shader ${e.id} count=${n.useCount}`)()}}_hashShader(e){return`${e.stage}:${e.source}`}};function a(e){return Array.isArray(e)?0===e.length||"number"==typeof e[0]:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}(e)}var f=class{layout;constructor(e){this.layout=e}has(e){return Boolean(this.layout.fields[e])}get(e){const t=this.layout.fields[e];return t?{offset:t.offset,size:t.size}:void 0}getFlatUniformValues(e){const t={};for(const[r,n]of Object.entries(e)){const e=this.layout.uniformTypes[r];e?this._flattenCompositeValue(t,r,e,n):this.layout.fields[r]&&(t[r]=n)}return t}getData(e){const t=r.getScratchArrayBuffer(this.layout.byteLength);new Uint8Array(t,0,this.layout.byteLength).fill(0);const n={i32:new Int32Array(t),u32:new Uint32Array(t),f32:new Float32Array(t),f16:new Uint16Array(t)},i=this.getFlatUniformValues(e);for(const[r,s]of Object.entries(i))this._writeLeafValue(n,r,s);return new Uint8Array(t,0,this.layout.byteLength)}_flattenCompositeValue(e,n,i,s){if(void 0!==s)if("string"==typeof i||this.layout.fields[n])e[n]=s;else{if(Array.isArray(i)){const r=i[0],o=i[1];if(Array.isArray(r))throw new Error(`Nested arrays are not supported for ${n}`);if("string"==typeof r&&a(s))return void this._flattenPackedArray(e,n,r,o,s);if(!Array.isArray(s))return void t.log.warn(`Unsupported uniform array value for ${n}:`,s)();for(let t=0;t<Math.min(s.length,o);t++){const i=s[t];void 0!==i&&this._flattenCompositeValue(e,`${n}[${t}]`,r,i)}return}if(r.isCompositeShaderTypeStruct(i)&&function(e){return Boolean(e)&&"object"==typeof e&&!Array.isArray(e)&&!ArrayBuffer.isView(e)}(s))for(const[t,r]of Object.entries(s)){if(void 0===r)continue;const s=`${n}.${t}`;this._flattenCompositeValue(e,s,i[t],r)}else t.log.warn(`Unsupported uniform value for ${n}:`,s)()}}_flattenPackedArray(e,t,n,i,s){const o=s,a=r.getLeafLayoutInfo(n,this.layout.layout).components;for(let r=0;r<i;r++){const n=r*a;if(n>=o.length)break;e[`${t}[${r}]`]=1===a?Number(o[n]):u(s,n,n+a)}}_writeLeafValue(e,r,n){const i=this.layout.fields[r];if(!i)return void t.log.warn(`Uniform ${r} not found in layout`)();const{type:s,components:o,columns:a,rows:f,offset:u,columnStride:h}=i,c=e[s];if(1===o)return void(c[u]=Number(n));const d=n;if(1===a){for(let e=0;e<o;e++)c[u+e]=Number(d[e]??0);return}let l=0;for(let t=0;t<a;t++){const e=u+t*h;for(let t=0;t<f;t++)c[e+t]=Number(d[l++]??0)}}};function u(e,t,r){return Array.prototype.slice.call(e,t,r)}var h=class{name;uniforms={};modifiedUniforms={};modified=!0;bindingLayout={};needsRedraw="initialized";constructor(e){if(this.name=e?.name||"unnamed",e?.name&&e?.shaderLayout){const t=e?.shaderLayout.bindings?.find(t=>"uniform"===t.type&&t.name===e?.name);if(!t)throw new Error(e?.name);const r=t;for(const e of r.uniforms||[])this.bindingLayout[e.name]=e}}setUniforms(e){for(const[t,r]of Object.entries(e))this._setUniform(t,r)&&!this.needsRedraw&&this.setNeedsRedraw(`${this.name}.${t}=${r}`)}setNeedsRedraw(e){this.needsRedraw=this.needsRedraw||e}getAllUniforms(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}}_setUniform(e,t){return!function(e,t,r=16){if(e===t)return!0;const n=e,i=t;if(!a(n)||!a(i))return!1;if(n.length!==i.length)return!1;const s=Math.min(r,128);if(n.length>s)return!1;for(let o=0;o<n.length;++o)if(i[o]!==n[o])return!1;return!0}(this.uniforms[e],t)&&(this.uniforms[e]=a(r=t)?r.slice():r,this.modifiedUniforms[e]=!0,this.modified=!0,!0);var r}},c=class{device;uniformBlocks=new Map;shaderBlockLayouts=new Map;shaderBlockWriters=new Map;uniformBuffers=new Map;constructor(e,t){this.device=e;for(const[n,i]of Object.entries(t)){const t=n,s=r.makeShaderBlockLayout(i.uniformTypes??{},{layout:i.layout??d(e)}),o=new f(s);this.shaderBlockLayouts.set(t,s),this.shaderBlockWriters.set(t,o);const a=new h({name:n});a.setUniforms(o.getFlatUniformValues(i.defaultUniforms||{})),this.uniformBlocks.set(t,a)}}destroy(){for(const e of this.uniformBuffers.values())e.destroy()}setUniforms(e,t){for(const[r,n]of Object.entries(e)){const e=r,t=this.shaderBlockWriters.get(e)?.getFlatUniformValues(n||{});this.uniformBlocks.get(e)?.setUniforms(t||{})}this.updateUniformBuffers(t)}getUniformBufferByteLength(e){const t=this.shaderBlockLayouts.get(e)?.byteLength||0;return Math.max(t,1024)}getUniformBufferData(e){const t=this.uniformBlocks.get(e)?.getAllUniforms()||{};return this.shaderBlockWriters.get(e)?.getData(t)||new Uint8Array(0)}createUniformBuffer(e,r){r&&this.setUniforms(r);const n=this.getUniformBufferByteLength(e),i=this.device.createBuffer({usage:t.Buffer.UNIFORM|t.Buffer.COPY_DST,byteLength:n}),s=this.getUniformBufferData(e);return i.write(s),i}getManagedUniformBuffer(e){if(!this.uniformBuffers.get(e)){const r=this.getUniformBufferByteLength(e),n=this.device.createBuffer({usage:t.Buffer.UNIFORM|t.Buffer.COPY_DST,byteLength:r});this.uniformBuffers.set(e,n)}return this.uniformBuffers.get(e)}updateUniformBuffers(e){let r=!1;for(const t of this.uniformBlocks.keys()){const n=this.updateUniformBuffer(t,e);r||=n}return r&&t.log.log(3,`UniformStore.updateUniformBuffers(): ${r}`)(),r}updateUniformBuffer(e,r){const n=this.uniformBlocks.get(e);let i=this.uniformBuffers.get(e),s=!1;if(i&&n?.needsRedraw){s||=n.needsRedraw;const o=this.getUniformBufferData(e);if(i=this.uniformBuffers.get(e),i&&(r?this.device.writeBufferViaCommandEncoder(r,i,o):i.write(o)),t.log.level>=4){const r=this.uniformBlocks.get(e)?.getAllUniforms();t.log.log(4,`Writing to uniform buffer ${String(e)}`,o,r)()}}return s}};function d(e){return"webgpu"===e.type?"wgsl-uniform":"std140"}var l=/^(vs|fs):(?:#(?:decl|main-start|main-end)|[A-Za-z_][\w-]*)$/;function y(e=[],t){const r=[],n={},i={},s={},o={};for(const a of e)p({modules:r,defines:n,injections:i,vertexInputs:s,varyings:o},a),p({modules:r,defines:n,injections:i,vertexInputs:s,varyings:o},a[t]);for(const a of Object.keys(o))if(s[a])throw new Error(`ShaderPlugin name "${a}" cannot be both a vertex input and a varying`);return{modules:r,defines:n,injections:i,vertexInputs:s,varyings:o}}function g(e=[],t=[]){const r=[...e],n=new Set(r.map(e=>e.name));for(const i of t)n.has(i.name)||(r.push(i),n.add(i.name));return r}function p(e,t){if(t){t.modules?.length&&e.modules.push(...t.modules),t.defines&&Object.assign(e.defines,t.defines);for(const[r,n]of Object.entries(t.vertexInputs||{})){b(r,"vertex input");const t=e.vertexInputs[r];if(t&&t!==n)throw new Error(`ShaderPlugin vertex input "${r}" has conflicting types "${t}" and "${n}"`);e.vertexInputs[r]=n}for(const[r,n]of Object.entries(t.varyings||{})){b(r,"varying");const t=m(r,n),i=e.varyings[r];if(i&&(i.type!==t.type||i.interpolation!==t.interpolation))throw new Error(`ShaderPlugin varying "${r}" has conflicting declarations "${i.type}/${i.interpolation}" and "${t.type}/${t.interpolation}"`);e.varyings[r]=t}for(const r of t.injections||[])w(r.target),e.injections[r.target]||(e.injections[r.target]=[]),e.injections[r.target].push({injection:r.injection,order:r.order??0})}}function b(e,t){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)||e.startsWith("_luma_"))throw new Error(`ShaderPlugin ${t} "${e}" must be a valid non-reserved identifier`)}function m(e,r){const{primitiveType:n}=t.shaderTypeDecoder.getAttributeShaderTypeInfo(r.type),i="i32"===n||"u32"===n,s=r.interpolation||(i?"flat":"smooth");if(i&&"smooth"===s)throw new Error(`ShaderPlugin integer varying "${e}" must use flat interpolation`);return{type:r.type,interpolation:s}}function w(e){if(!l.test(e))throw new Error(`ShaderPlugin injection target "${e}" must be a named shader anchor or hook`)}var v={};function _(e="id"){return v[e]=v[e]||1,`${e}-${v[e]++}`}function B(e,t){if(!e||!t.some(e=>e.bindingLayout?.length))return e;const r={...e,bindings:e.bindings.map(e=>({...e}))};"attributes"in(e||{})&&(r.attributes=e?.attributes||[]);for(const n of t)for(const e of n.bindingLayout||[])for(const t of $(e.name)){const n=r.bindings.find(e=>e.name===t);0===n?.group&&(n.group=e.group),n&&void 0!==e.visibility&&(n.visibility=e.visibility)}return r}function L(e,t,r=[]){return e?t?{...e,attributes:e.attributes.length?O(e.attributes,t.attributes.filter(e=>r.includes(e.name))):t.attributes,bindings:D(e.bindings,t.bindings)}:e:t}function P(e){return Boolean(e.uniformTypes&&!function(e){for(const t in e)return!1;return!0}(e.uniformTypes))}function E(t){const r=[];for(const n of t){const t=e.getShaderModuleUniformBlockName(n),i=new Set([n.vs,n.fs].flatMap(t=>t?e.getGLSLUniformBlocks(t).filter(e=>e.isStd140).map(e=>e.blockName):[])),s=i.has(t)?t:1===i.size?i.values().next().value:void 0;P(n)&&s&&r.push({name:s,uniformTypes:n.uniformTypes})}return r}function S(e,t){const r=[],n=new Set;for(const i of[...e||[],...t||[]])n.has(i.name)||(n.add(i.name),r.push(i));return r}function $(e){const t=new Set([e,`${e}Uniforms`]);return e.endsWith("Uniforms")||t.add(`${e}Sampler`),[...t]}function D(e,t){const r=e.map(e=>({...e})),n=new Set(e.map(e=>e.name)),i=new Set(e.map(e=>`${e.group}:${e.location}`));for(const s of t){const e=`${s.group}:${s.location}`;n.has(s.name)||i.has(e)||r.push({...s})}return r}function O(e,t){const r=e.map(e=>({...e})),n=new Map(e.map(e=>[e.name,e])),i=new Map(e.map(e=>[e.location,e]));for(const s of t){const e=n.get(s.name);if(e){if(e.type!==s.type||e.location!==s.location)throw new Error(`Shader attribute "${s.name}" conflicts with its inferred type or location`);continue}const t=i.get(s.location);if(t)throw new Error(`Shader attributes "${t.name}" and "${s.name}" both use location ${s.location}`);r.push({...s})}return r}function U(e,t={}){const r={bindings:{},uniforms:{}};return Object.keys(e).forEach(i=>{const s=e[i];var o;Object.prototype.hasOwnProperty.call(t,i)||(n(o=s)||"number"==typeof o||"boolean"==typeof o)?r.uniforms[i]=s:r.bindings[i]=s}),r}var T=class{options={disableWarnings:!1};modules;moduleUniforms;moduleBindings;directBindings={};constructor(r,n){Object.assign(this.options,n);const i=e.getShaderModuleDependencies(Object.values(r).filter(G));for(const e of i)r[e.name]=e;t.log.log(1,"Creating ShaderInputs with modules",Object.keys(r))(),this.modules=r,this.moduleUniforms={},this.moduleBindings={};for(const[e,s]of Object.entries(r))s&&(this._addModule(s),s.name&&e!==s.name&&!this.options.disableWarnings&&t.log.warn(`Module name: ${e} vs ${s.name}`)())}destroy(){}setProps(e){e.bindings&&Object.assign(this.directBindings,e.bindings);for(const r of Object.keys(e)){if("bindings"===r)continue;const n=r,i=e[n]||{},s=this.modules[n];if(s){const e=this.moduleUniforms[n],t=this.moduleBindings[n],r=s.getUniforms?.(i,e)||i,{uniforms:o,bindings:a}=U(r,s.uniformTypes);this.moduleUniforms[n]=V(e,o,s.uniformTypes),this.moduleBindings[n]={...t,...a}}else this.options.disableWarnings||t.log.warn(`Module ${r} not found`)()}}getModules(){return Object.values(this.modules)}addModules(t){const r=e.getShaderModuleDependencies(t);for(const e of r){const t=e.name;this.modules[t]||(this.modules[t]=e,this._addModule(e))}}getUniformValues(){return this.moduleUniforms}getBindingValues(){const e={};for(const t of Object.values(this.moduleBindings))Object.assign(e,t);return Object.assign(e,this.directBindings),e}getModuleBindingValues(e){const t=this.moduleBindings[e];return t?{...t}:{}}getDebugTable(){const e={};for(const[t,r]of Object.entries(this.moduleUniforms))for(const[n,i]of Object.entries(r))e[`${t}.${n}`]={type:this.modules[t].uniformTypes?.[n],value:String(i)};return e}_addModule(e){const t=e.name;this.moduleUniforms[t]=V({},e.defaultUniforms||{},e.uniformTypes),this.moduleBindings[t]={}}};function V(e={},t={},r={}){const n={...e};for(const[i,s]of Object.entries(t))void 0!==s&&(n[i]=A(e[i],s,r[i]));return n}function A(e,t,r){if(!r||"string"==typeof r)return x(t);if(Array.isArray(r)){if(C(t)||!Array.isArray(t))return x(t);const n=Array.isArray(e)&&!C(e)?[...e]:[],i=n.slice();for(let e=0;e<t.length;e++){const s=t[e];void 0!==s&&(i[e]=A(n[e],s,r[0]))}return i}if(!j(t))return x(t);const n=r,i=j(e)?e:{},s={...i};for(const[o,a]of Object.entries(t))void 0!==a&&(s[o]=A(i[o],a,n[o]));return s}function x(e){return ArrayBuffer.isView(e)?Array.prototype.slice.call(e):Array.isArray(e)?C(e)?e.slice():e.map(e=>void 0===e?void 0:x(e)):j(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,void 0===t?void 0:x(t)])):e}function C(e){return ArrayBuffer.isView(e)||Array.isArray(e)&&(0===e.length||"number"==typeof e[0])}function j(e){return Boolean(e)&&"object"==typeof e&&!Array.isArray(e)&&!ArrayBuffer.isView(e)}function G(e){return Boolean(e?.dependencies)}var R=t.Buffer.DEBUG_DATA_MAX_LENGTH,M=class{device;id;ready;usage;props;isReady=!0;destroyed=!1;generation=0;updateTimestamp;debugData=new ArrayBuffer(0);_debugDataEnabled;_maxDebugDataByteLength;_ownsBuffer;_buffer;get buffer(){return this._buffer}get byteLength(){return this._buffer.byteLength}get[Symbol.toStringTag](){return"DynamicBuffer"}toString(){return`DynamicBuffer:"${this.id}":${this.byteLength}B`}toJSON(){return this.toString()}constructor(e,r){const{debugData:n=!1,buffer:i,ownsBuffer:s=!0,...o}=r;if(i&&i.device!==e)throw new Error("DynamicBuffer adopted buffers must belong to the supplied device");if(i&&(void 0!==o.byteLength||void 0!==o.data))throw new Error("DynamicBuffer cannot combine an adopted buffer with byteLength or data");const a=r.id||i?.id||_("dynamic-buffer"),f={...o,id:a,usage:o.usage??i?.usage,indexType:o.indexType??i?.indexType};(f.usage||0)&t.Buffer.INDEX&&!f.indexType&&(o.data instanceof Uint32Array?f.indexType="uint32":o.data instanceof Uint16Array?f.indexType="uint16":o.data instanceof Uint8Array&&(f.indexType="uint8")),delete f.data,delete f.byteOffset,this.device=e,this.id=a,this.props=f,this.usage=f.usage||0,this._debugDataEnabled=Boolean(n),this._maxDebugDataByteLength="object"==typeof n&&void 0!==n.maxByteLength?n.maxByteLength:R,this._ownsBuffer=s,this._buffer=i??this.device.createBuffer({...o,id:a}),this.ready=Promise.resolve(this._buffer),this.updateTimestamp=this._buffer.updateTimestamp,this._resetDebugData(this._buffer.byteLength),o.data&&this._writeDebugData(o.data,o.byteOffset||0)}write(e,t=0){this._buffer.write(e,t),this._touch(),this._writeDebugData(e,t)}async mapAndWriteAsync(e,t=0,r=this.byteLength-t){let n=null;await this._buffer.mapAndWriteAsync(async(t,i)=>{await e(t,i),n=new Uint8Array(t.slice(0,r))},t,r),this._touch(),n&&this._writeDebugData(n,t)}async readAsync(e=0,t=this.byteLength-e){const r=await this._buffer.readAsync(e,t);return this._writeDebugData(r,e)&&this._touch(),r}async mapAndReadAsync(e,t=0,r=this.byteLength-t){let n=null;const i=await this._buffer.mapAndReadAsync(async(t,r)=>(n=new Uint8Array(t.slice(0)),await e(t,r)),t,r);return n&&this._writeDebugData(n,t)&&this._touch(),i}resize(e){const{byteLength:t,preserveData:r=!1}=e;if(t===this.byteLength)return!1;const n=Math.min(e.copyByteLength??Math.min(this.byteLength,t),this.byteLength,t),i=this._buffer,s=this.debugData.slice(0),{data:o,byteOffset:a,...f}=this.props,u=this.device.createBuffer({...f,byteLength:t});return r&&n>0&&this._copyBufferContents(i,u,n),this._buffer=u,this._resetDebugData(t),r&&s.byteLength>0&&this._writeDebugData(s,0),this._ownsBuffer&&i.destroy(),this._ownsBuffer=!0,this.generation++,this._touch(),!0}ensureSize(e,t){return!(e<=this.byteLength)&&this.resize({byteLength:e,preserveData:t?.preserveData})}getBinding(e){return void 0===e?.offset&&void 0===e?.size?this._buffer:{buffer:this._buffer,offset:e?.offset,size:e?.size}}destroy(){this.destroyed||(this._ownsBuffer&&this._buffer.destroy(),this.destroyed=!0,this.debugData=new ArrayBuffer(0))}_copyBufferContents(e,t,r){const n="webgpu"===this.device.type?4*Math.ceil(r/4):r,i=this.device.createCommandEncoder();i.copyBufferToBuffer({sourceBuffer:e,destinationBuffer:t,size:n}),this.device.submit(i.finish())}_touch(){this.updateTimestamp=this.device.incrementTimestamp()}_resetDebugData(e){this._debugDataEnabled?this.debugData=new ArrayBuffer(Math.min(e,this._maxDebugDataByteLength)):this.debugData=new ArrayBuffer(0)}_writeDebugData(e,t){if(!this._debugDataEnabled||0===this.debugData.byteLength||t>=this.debugData.byteLength)return!1;const r=ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e),n=new Uint8Array(this.debugData),i=Math.min(r.byteLength,n.byteLength-t);return n.set(r.subarray(0,i),t),i>0}};function k(e){return null!==e&&"object"==typeof e&&"buffer"in e}function z(e){return e instanceof M?e:k(e)&&e.buffer instanceof M?e.buffer:null}function F(e){return{buffer:(t=e.buffer,t instanceof M?t.buffer:t),offset:e.offset,size:e.size};var t}var N=/^vertex-list<([^<>]+)>$/,I=/^value-list<([^<>]+)>$/;function H(e){return N.test(e)}function Y(e){return I.test(e)}function q(e){const r=function(e){const r=N.exec(e),n=I.exec(e),i=r?.[1]??n?.[1]??e;try{t.vertexFormatDecoder.getVertexFormatInfo(i)}catch{throw new Error(`Unsupported GPUVector format ${e}`)}return i}(e),n=H(e),i=Y(e),s=t.vertexFormatDecoder.getVertexFormatInfo(r),o=s.type,a=s.normalized,f=function(e,t){if(t)return"f32";switch(e){case"float32":return"f32";case"float16":return"f16";case"uint8":case"uint16":case"uint32":return"u32";case"sint8":case"sint16":case"sint32":return"i32";default:throw new Error(`Unsupported GPUVector component type ${e}`)}}(o,a);return{format:e,elementFormat:r,vertexList:n,valueList:i,type:o,signedDataType:W(r,o),primitiveType:f,components:s.components,byteLength:s.byteLength,integer:s.integer,signed:s.signed,normalized:a,...s.webglOnly?{webglOnly:!0}:{}}}function W(e,t){if("unorm10-10-10-2"===e)return"uint32";switch(t){case"unorm8":return"uint8";case"snorm8":return"sint8";case"unorm16":return"uint16";case"snorm16":return"sint16";default:return t}}var J=class{buffer;format;length;byteOffset;byteStride;constructor(e){const r=t.vertexFormatDecoder.getVertexFormatInfo(e.format).byteLength,n=e.byteOffset??0,i=e.byteStride??r;if(X(e.length,"GPUDataView length"),X(n,"GPUDataView byteOffset"),X(i,"GPUDataView byteStride"),i<r)throw new Error(`GPUDataView byteStride ${i} is smaller than ${e.format} byte length ${r}`);const s=0===e.length?0:(e.length-1)*i+r,o=n+s;if(!Number.isSafeInteger(s)||!Number.isSafeInteger(o))throw new Error("GPUDataView byte range must use safe integers");if(o>e.buffer.byteLength)throw new Error("GPUDataView exceeds its backing buffer byte length");this.buffer=e.buffer,this.format=e.format,this.length=e.length,this.byteOffset=n,this.byteStride=i}get elementByteLength(){return t.vertexFormatDecoder.getVertexFormatInfo(this.format).byteLength}get byteLength(){return 0===this.length?0:(this.length-1)*this.byteStride+this.elementByteLength}};function X(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`${t} must be a non-negative safe integer`)}function Z(e){return Boolean(e&&"object"==typeof e&&"struct"===e.type)}function K(e,n){const i=Object.entries(e);if(0===i.length)throw new Error("GPUData struct format must declare at least one field");return"packed"===n?function(e){const r=[];let n=0,i=0;for(const[s,o]of e){const e=t.vertexFormatDecoder.getVertexFormatInfo(o);if(e.webglOnly)throw new Error(`Packed GPUData struct field "${s}" uses WebGL-only format ${o}`);n=te(n,Math.min(4,e.byteLength)),r.push([s,Object.freeze({format:o,byteOffset:n,byteLength:e.byteLength})]),n+=e.byteLength,i+=e.components}return Object.freeze({type:"struct",layout:"packed",fields:Object.freeze(Object.fromEntries(r)),components:i,byteStride:te(n,4),rowByteLength:n})}(i):function(e){const n=Object.fromEntries(e.map(([e,t])=>[e,Q(t)])),i=r.makeShaderBlockLayout(n,{layout:"wgsl-storage"}),s=[];let o=0,a=0;for(const[r,f]of e){const e=t.vertexFormatDecoder.getVertexFormatInfo(f),n=4*i.fields[r].offset;s.push([r,Object.freeze({format:f,byteOffset:n,byteLength:e.byteLength})]),o=Math.max(o,n+e.byteLength),a+=e.components}return Object.freeze({type:"struct",layout:"wgsl-storage",fields:Object.freeze(Object.fromEntries(s)),components:a,byteStride:i.byteLength,rowByteLength:o})}(i)}function Q(e){const r=t.vertexFormatDecoder.getVertexFormatInfo(e);switch(r.type){case"float32":return ee("f32",r.components);case"sint32":return ee("i32",r.components);case"uint32":return ee("u32",r.components);default:return ee("u32",Math.ceil(r.byteLength/4))}}function ee(e,t){return 1===t?e:`vec${t}<${e}>`}function te(e,t){return Math.ceil(e/t)*t}var re=class{buffer;ownsDataBuffer;constructor(e,t){this.buffer=e,this.ownsDataBuffer=t}get ownsBuffer(){return this.ownsDataBuffer}transferBufferOwnership(e){if(e.buffer!==this.buffer)throw new Error("GPUData ownership can only be transferred to the same buffer");e.ownsDataBuffer=this.ownsDataBuffer,this.ownsDataBuffer=!1}destroy(){this.ownsDataBuffer&&(this.buffer.destroy(),this.ownsDataBuffer=!1)}},ne=class extends re{dataType;format;length;valueLength;stride;byteOffset;byteStride;rowByteLength;readbackMetadata;valueOffsets;nullBitmap;valueByteLength;constructor(e){const{buffer:t,format:r,length:n,valueLength:i,stride:s,byteOffset:o=0,byteStride:a,rowByteLength:f,ownsBuffer:u=!1,readbackMetadata:h,valueOffsets:c,nullBitmap:d,valueByteLength:l,dataType:y}=e;let g;super(t,u),g=r?"string"==typeof r?r:K(r,e.layout??"wgsl-storage"):void 0;const p=Z(g)?g:void 0,b="string"==typeof g?q(g):void 0;if(this.dataType=y,this.format=g,this.length=n,this.valueLength=i??n,this.stride=s??b?.components??p?.components??a??f??1,this.byteOffset=o,this.rowByteLength=f??p?.rowByteLength??b?.byteLength??a??this.stride,this.byteStride=a??p?.byteStride??this.rowByteLength,p){if(this.rowByteLength<p.rowByteLength)throw new Error(`GPUData rowByteLength ${this.rowByteLength} is smaller than struct format row byte length ${p.rowByteLength}`);if(this.byteStride<Math.max(p.byteStride,this.rowByteLength))throw new Error(`GPUData byteStride ${this.byteStride} is smaller than its struct row layout`)}this.readbackMetadata=h,this.valueOffsets=c,this.nullBitmap=d,this.valueByteLength=l}getChild(e){if(!Z(this.format))return null;const t=this.format.fields[e];return t?new J({buffer:this.buffer,format:t.format,length:this.length,byteOffset:this.byteOffset+t.byteOffset,byteStride:this.byteStride}):null}getChildAt(e){if(!Z(this.format))return null;const t=Object.values(this.format.fields)[e];return t?new J({buffer:this.buffer,format:t.format,length:this.length,byteOffset:this.byteOffset+t.byteOffset,byteStride:this.byteStride}):null}},ie=class{name;dataType;format;length;valueLength;stride;byteOffset;byteStride;rowByteLength;bufferLayout;data=[];device;bufferProps;isAppendable=!1;ownsDataChunks=!0;ownedVectors=[];appendableByteLength=0;constructor(e){switch(e.type){case"buffer":{const{name:t,buffer:r,format:n,length:i,valueLength:s=i,byteOffset:o=0,ownsBuffer:a=!1}=e,{stride:f,byteStride:u,rowByteLength:h}=se(e);return this.name=t,this.dataType=e.dataType,this.format=n,this.length=i,this.valueLength=s,this.stride=f,this.byteOffset=o,this.byteStride=u,this.rowByteLength=h,void this.data.push(new ne({buffer:r,format:n,length:i,valueLength:s,stride:f,byteOffset:o,byteStride:u,rowByteLength:h,ownsBuffer:a,dataType:e.dataType}))}case"interleaved":{const{name:t,buffer:r,format:n,length:i,valueLength:s=i,byteOffset:o=0,byteStride:a,attributes:f,ownsBuffer:u=!1}=e;return this.name=t,this.dataType=e.dataType,this.format=n,this.length=i,this.valueLength=s,this.stride=a,this.byteOffset=o,this.byteStride=a,this.rowByteLength=a,this.bufferLayout={name:t,byteStride:a,attributes:f},void this.data.push(new ne({buffer:r,format:n,length:i,valueLength:s,stride:a,byteOffset:o,byteStride:a,rowByteLength:a,ownsBuffer:u,dataType:e.dataType}))}case"data":{const t=e.format??function(e){return e[0]?.format}(e.data),r=t?q(t):void 0,{name:n,data:i,stride:s=i[0]?.stride??r?.components??1,valueLength:o=i.reduce((e,t)=>e+t.valueLength,0),byteStride:a=i[0]?.byteStride??r?.byteLength,rowByteLength:f=i[0]?.rowByteLength??r?.byteLength,bufferLayout:u,ownsData:h=!1}=e;if(void 0===a||void 0===f)throw new Error("GPUVector requires format or explicit byte layout metadata");return t&&function(e,t){if(e.find(e=>e.format!==t))throw new Error("GPUVector data chunks must share the declared format")}(i,t),this.name=n,this.dataType=e.dataType,this.format=t,this.length=i.reduce((e,t)=>e+t.length,0),this.valueLength=o,this.stride=s,this.byteOffset=1===i.length?i[0].byteOffset:0,this.byteStride=a,this.rowByteLength=f,this.bufferLayout=u,this.ownsDataChunks=h,void this.data.push(...i)}case"appendable":{const{name:t,device:r,format:n,valueLength:i=0,bufferProps:s}=e,{stride:o,byteStride:a,rowByteLength:f}=se(e);return this.name=t,this.dataType=e.dataType,this.format=n,this.length=0,this.valueLength=i,this.stride=o,this.byteOffset=0,this.byteStride=a,this.rowByteLength=f,this.device=r,this.bufferProps=s,void(this.isAppendable=!0)}}}get ownsBuffer(){return this.ownsDataChunks&&this.data.some(e=>e.ownsBuffer)||this.ownedVectors.some(e=>e.ownsBuffer)}get capacityRows(){return this.isAppendable?this.length:void 0}get appendedByteLength(){return this.appendableByteLength}addData(e){if(this.format&&e.format!==this.format)throw new Error("GPUVector.addData() requires matching formats");if(e.byteStride!==this.byteStride)throw new Error("GPUVector.addData() requires matching byteStride");if(e.rowByteLength!==this.rowByteLength)throw new Error("GPUVector.addData() requires matching rowByteLength");return this.data.push(e),this.length+=e.length,this.valueLength+=e.valueLength,this}appendDataChunk(e,t=this.appendableByteLength+e.buffer.byteLength){if(!this.isAppendable)throw new Error("GPUVector.appendDataChunk() requires appendable vector storage");if(this.format&&e.format!==this.format)throw new Error("GPUVector.appendDataChunk() requires matching formats");if(e.byteStride!==this.byteStride||e.rowByteLength!==this.rowByteLength)throw new Error("GPUVector.appendDataChunk() requires matching byte layout metadata");return this.data.push(e),this.length+=e.length,this.valueLength+=e.valueLength,this.appendableByteLength=t,this}resetLastBatch(){if(!this.isAppendable)throw new Error("GPUVector.resetLastBatch() requires appendable vector storage");for(const e of this.data.splice(0))e.destroy();return this.length=0,this.valueLength=0,this.appendableByteLength=0,this}retainOwnedVectors(e){return this.ownedVectors.push(...e),this}transferBufferOwnership(e){const t=this.data[0],r=e.data[0];if(!t||!r||t.buffer!==r.buffer)throw new Error("GPUVector ownership can only be transferred to the same buffer");t.transferBufferOwnership(r)}destroy(){if(this.ownsDataChunks)for(const e of this.data)e.destroy();for(const e of this.ownedVectors.splice(0))e.destroy()}};function se(e){const t=e.format?q(e.format):void 0,r=e.rowByteLength??e.byteStride??t?.byteLength;if(void 0===r)throw new Error("GPUVector requires format or explicit rowByteLength");return{stride:e.stride??t?.components??1,byteStride:e.byteStride??r,rowByteLength:r}}var oe=new class{poolSize=20;bufferPools;constructor(){this.bufferPools=new Map}createOrReuse(e,r){if(r>e.limits.maxBufferSize)throw new Error(`Buffer pool cannot allocate ${r} bytes: device.limits.maxBufferSize is ${e.limits.maxBufferSize}`);const n=this.bufferPools.get(e),i=n?n.findIndex(e=>e.byteLength>=r):-1;if(i<0)return e.createBuffer({usage:t.Buffer.VERTEX|t.Buffer.STORAGE|t.Buffer.COPY_DST|t.Buffer.COPY_SRC,byteLength:r});const[s]=n.splice(i,1);return s}recycle(e){const t=e.device;this.bufferPools.has(t)||this.bufferPools.set(t,[]);const r=this.bufferPools.get(t),n=r.findIndex(t=>t.byteLength>e.byteLength);n<0?r.push(e):r.splice(n,0,e),this.purge()}purge(){for(const[e,t]of this.bufferPools){const r=e.isLost?0:this.poolSize;for(;t.length>r;)t.shift().destroy();0===t.length&&this.bufferPools.delete(e)}}},ae=class e{static get bufferPoolSize(){return oe.poolSize}static set bufferPoolSize(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("GPUDataEvaluator.bufferPoolSize must be a non-negative safe integer");oe.poolSize=e,oe.purge()}type;size;get offset(){return this._offset}get stride(){return this._stride}normalized;isConstant;length;get byteLength(){return this._byteLength}ValueType;source=null;format;_id;_destroyed=!1;_value;_offset;_stride;_byteLength;_gpuVector;_bufferOwnership="owned";_targetBuffer;static fromArray(r,{type:n,size:i=1,offset:s=0,stride:o=0,normalized:a=!1}){let f,u=n;Array.isArray(r)?(u=u||"float32",f=new(t.getTypedArrayFromDataType(u))(r)):r instanceof Float64Array?(u="uint32",i*=2,s*=2,o*=2,f=new Uint32Array(r.buffer,r.byteOffset,r.byteLength/4)):(u=u||t.getDataTypeFromTypedArray(r),f=r);return new e({id:`<${u} * ${i}>`,type:u,size:i,offset:s,stride:o,normalized:a,value:f})}static fromConstant(r,n="float32"){const i=t.getTypedArrayFromDataType(n);let s;return Array.isArray(r)?s=`[${r.join(",")}]`:(s=String(r),r=[r]),new e({id:s,isConstant:!0,type:n,size:r.length,value:new i(r)})}static fromGPUData(t,r={}){!function(e){if(!e.format)throw new Error("GPUDataEvaluator.fromGPUData() requires GPUData format metadata");if(H(e.format)||Y(e.format))throw new Error("GPUDataEvaluator.fromGPUData() does not support variable-length input");const t=q(e.format).byteLength;if(e.rowByteLength!==t)throw new Error(`GPUDataEvaluator.fromGPUData() requires rowByteLength ${t} for GPUData`)}(t);const n=new J({buffer:t.buffer,format:t.format,length:t.length,byteOffset:t.byteOffset,byteStride:t.byteStride});return new e({...ue(n),id:r.id,gpuData:t})}static fromGPUDataView(t,r={}){return new e({...ue(t),id:r.id,buffer:t.buffer})}constructor(r){const{id:n,value:i,buffer:s,gpuData:o,format:a,source:f=null,isConstant:u=!1}=r;if(!(f||i||s||o))throw new Error("GPUDataEvaluator must have a value source");let{type:h,size:c,offset:d,stride:l,normalized:y,length:g}=r;if(f instanceof e?(h=h??f.type,c=c??f.size,d=d??f.offset,l=l??f.stride,y=y??f.normalized,g=g??f.length):(c=c??1,d=d??0,y=y??!1,g=u?1:g),!h)throw new Error("GPUDataEvaluator: type not defined");if(this._id=n,this.type=h,this.size=c,this.ValueType=t.getTypedArrayFromDataType(this.type),this._offset=d,this._stride=l||this.ValueType.BYTES_PER_ELEMENT*c,this.normalized=y,this.source=f,this.format=a,void 0===g)if(u)g=1;else{if(!i)throw new Error("GPUDataEvaluator: length not defined");g=Math.ceil(i.byteLength/this.stride)}this.isConstant=u,this.length=g;const p=this.ValueType.BYTES_PER_ELEMENT*this.size;this._byteLength=0===g?0:(g-1)*this.stride+p,this._value=i,this._bufferOwnership=f instanceof e||s||o?"borrowed":"owned",o?this._gpuVector=new ie({type:"data",name:this._id??"data",format:o.format,data:[o],stride:o.stride,byteStride:o.byteStride,rowByteLength:o.rowByteLength}):s&&(this._gpuVector=this.createGPUVectorView({buffer:s,name:this._id,format:this.format}))}get value(){return this._value||(this.source instanceof e?this.source.value:void 0)}get evaluated(){return Boolean(this._gpuVector)}get id(){return this._id}get gpuVector(){if(!this._gpuVector)throw new Error(`${this} not evaluated`);return this._gpuVector}get buffer(){return he(this.gpuVector)}setTargetBuffer({buffer:t,byteOffset:r=0,byteStride:n=this.stride}){if(this._destroyed)throw new Error(`GPUDataEvaluator ${this} already destroyed`);if(this._gpuVector)throw new Error(`GPUDataEvaluator ${this} already evaluated`);if(!this.source||this.source instanceof e)throw new Error("GPUDataEvaluator target buffers require a deferred operation source");this._targetBuffer={buffer:t,byteOffset:r,byteStride:n}}async evaluate(t,r={}){if(this._destroyed)throw new Error(`GPUDataEvaluator ${this} already destroyed`);if(this._gpuVector)return this._gpuVector;let n;if(this.source instanceof e){const e=await this.source.evaluate(t);return this._gpuVector=this.createGPUVectorView({...r,buffer:he(e)}),this._gpuVector}if(n=this._getEvaluationBuffer(t),this._value)n.write(this._value);else{const e=await this.source.execute(t,n);if(!e.success)throw e.error||new Error(`${this.source} evaluation failed`);e.value&&(this._value=e.value)}return this._gpuVector=this.createGPUVectorView({...r,buffer:n}),this._gpuVector}evaluateSync(t,r={}){if(this._destroyed)throw new Error(`GPUDataEvaluator ${this} already destroyed`);if(this._gpuVector)return this._gpuVector;let n;if(this.source instanceof e){const e=this.source.evaluateSync(t);return this._gpuVector=this.createGPUVectorView({...r,buffer:he(e)}),this._gpuVector}if(n=this._getEvaluationBuffer(t),this._value)n.write(this._value);else{const e=this.source.executeSync(t,n);if(!e.success)throw e.error||new Error(`${this.source} evaluation failed`);e.value&&(this._value=e.value)}return this._gpuVector=this.createGPUVectorView({...r,buffer:n}),this._gpuVector}createGPUVectorView(e){const t=e.name??this._id??"vector",r=e.format??this.format??function(e,t,r=!1){return t>=1&&t<=4?de(e,t,r):void 0}(this.type,this.size,this.normalized);if(e.interleaved){const r="object"==typeof e.interleaved&&e.interleaved.attributes?e.interleaved.attributes:function(e){const t=[];return ce(e,t,{byteOffset:0}),t}(this);return new ie({type:"interleaved",name:t,buffer:e.buffer,format:e.format??this.format,length:this.length,byteOffset:this.offset,byteStride:this.stride,attributes:r,ownsBuffer:!1})}return new ie({type:"buffer",name:t,buffer:e.buffer,format:r,length:this.length,stride:this.size,byteOffset:this.offset,byteStride:this.stride,rowByteLength:this.ValueType.BYTES_PER_ELEMENT*this.size,ownsBuffer:!1})}_getEvaluationBuffer(e){const t=this._targetBuffer;if(!t)return oe.createOrReuse(e,this.byteLength);if(t.buffer.device!==e)throw new Error("GPUDataEvaluator target buffer belongs to a different device");const r=this.ValueType.BYTES_PER_ELEMENT*this.size,n=0===this.length?0:(this.length-1)*t.byteStride+r;if(t.byteOffset+n>t.buffer.byteLength)throw new Error("GPUDataEvaluator target buffer is too small for the output layout");return this._offset=t.byteOffset,this._stride=t.byteStride,this._byteLength=n,this._bufferOwnership="borrowed",this._targetBuffer=void 0,t.buffer}async readValue(e=0,t){const{ValueType:r}=this,{size:n,offset:i,stride:s,length:o}=this,a=r.BYTES_PER_ELEMENT*n;if(t=t??o,e=Math.max(0,Math.min(o,e)),t=Math.max(e,Math.min(o,t)),this._value)return function(e,t,r,n){const{ValueType:i,size:s,offset:o,stride:a}=e,f=a/i.BYTES_PER_ELEMENT,u=o/i.BYTES_PER_ELEMENT,h=n-r;if(f===s){const e=u+r*f;return t.subarray(e,e+h*s)}const c=new i(h*s);for(let d=0;d<h;d++){const e=u+(r+d)*f;c.set(t.subarray(e,e+s),d*s)}return c}(this,this._value,e,t);const f=t-e;if(0===f)return new r(0);const u=i+e*s,h=s===a?f*a:(f-1)*s+a,c=await this.buffer.readAsync(u,h),d=new r(c.buffer,c.byteOffset,c.byteLength/r.BYTES_PER_ELEMENT);if(s===a)return d;const l=new Uint8Array(a*f);for(let y=0;y<f;y++){const e=y*s;l.set(c.subarray(e,e+a),y*a)}return new r(l.buffer)}async ensureCPUValue(){const e=this.value;if(e)return e;const t=await this.buffer.readAsync(0,this.offset+this.byteLength);if(t.byteLength%this.ValueType.BYTES_PER_ELEMENT!==0)throw new Error(`${this} backing buffer byte length is not aligned to its scalar type`);const r=t.slice();return this._value=new this.ValueType(r.buffer,r.byteOffset,r.byteLength/this.ValueType.BYTES_PER_ELEMENT),this._value}ensureCPUValueSync(){const e=this.value;if(e)return e;throw new Error(`${this} CPU value is not available for synchronous evaluation`)}toString(){return this._id??this.source?.toString()??this.constructor.name}destroy(){this._gpuVector&&("owned"===this._bufferOwnership&&oe.recycle(he(this._gpuVector)),this._gpuVector=void 0),this._targetBuffer=void 0,this._destroyed=!0}};function fe(e){if(e instanceof ae)return e;if("number"==typeof e||Array.isArray(e))return ae.fromConstant(e);if(e instanceof ne)return ae.fromGPUData(e);if(e instanceof J)return ae.fromGPUDataView(e);throw new Error("getGPUDataEvaluator() requires GPUDataEvaluator, GPUData, GPUDataView, number, or number[]")}function ue(e){const r=q(e.format),n=t.getTypedArrayFromDataType(r.signedDataType),i=n.BYTES_PER_ELEMENT*r.components;if(r.byteLength!==i)throw new Error(`GPUDataEvaluator does not support packed vertex format ${e.format}: ${r.byteLength} physical bytes cannot expose ${r.components} ${r.signedDataType} components`);if(e.byteOffset%n.BYTES_PER_ELEMENT!==0||e.byteStride%n.BYTES_PER_ELEMENT!==0)throw new Error(`GPUDataEvaluator requires ${e.format} offset and stride aligned to ${n.BYTES_PER_ELEMENT} bytes`);return{type:r.signedDataType,size:r.components,offset:e.byteOffset,stride:e.byteStride,normalized:r.normalized,length:e.length,format:e.format}}function he(e){const t=function(e){const[t,...r]=e.data;if(!t||r.length>0)throw new Error(`GPUDataEvaluator requires exactly one GPUData chunk for "${e.name}"`);return t}(e).buffer;return t instanceof M?t.buffer:t}function ce(e,t,r){const n=e.source;if(!n||n instanceof ae||"interleave"!==n.name)t.push({attribute:e.id??e.toString(),format:de(e.type,e.size,e.normalized),byteOffset:r.byteOffset}),r.byteOffset+=e.ValueType.BYTES_PER_ELEMENT*e.size;else for(const i of Object.values(n.inputs))i instanceof ae&&ce(i,t,r)}function de(e,t,r=!1){if(t<1||t>4)throw new Error(`Cannot synthesize a GPUVector vertex format with ${t} components`);let n=e;if(r)switch(e){case"uint8":n="unorm8";break;case"sint8":n="snorm8";break;case"uint16":n="unorm16";break;case"sint16":n="snorm16";break;case"float32":n="float32";break;default:throw new Error(`Unsupported normalized vertex format for ${e}`)}return"uint8"!==n&&"sint8"!==n&&"uint16"!==n&&"sint16"!==n&&"unorm8"!==n&&"snorm8"!==n&&"unorm16"!==n&&"snorm16"!==n||3!==t?`${n}${1===t?"":`x${t}`}`:`${n}x3-webgl`}var le={add:{arity:2,symbol:"arithmetic_add"},subtract:{arity:2,symbol:"arithmetic_subtract"},multiply:{arity:2,symbol:"arithmetic_multiply"},divide:{arity:2,symbol:"arithmetic_divide"},pow:{arity:2,symbol:"pow"},sqrt:{arity:1,symbol:"sqrt"},abs:{arity:1,symbol:"abs"},sin:{arity:1,symbol:"sin"},cos:{arity:1,symbol:"cos"},tan:{arity:1,symbol:"arithmetic_tan"},exp:{arity:1,symbol:"exp"},log:{arity:1,symbol:"log"}};function ye(e,{operations:t,inputs:r}){switch(e.kind){case"input":if(!(e.name in r))throw new Error(`Unknown expression input '${e.name}'`);return;case"literal":if(Array.isArray(e.value)){for(const t of e.value)if(!Number.isFinite(t))throw new Error(`Expression literal array must contain only finite values, got ${t}`)}else if(!Number.isFinite(e.value))throw new Error(`Expression literal must be finite, got ${e.value}`);return;case"call":{const n=t[e.op];if(!n)throw new Error(`Unknown expression op '${e.op}'`);if(e.args.length!==n.arity)throw new Error(`Expression op '${e.op}' expects ${n.arity} args, got ${e.args.length}`);for(const i of e.args)ye(i,{operations:t,inputs:r});return}default:throw new Error(`Unsupported expression node ${e.kind}`)}}function ge(e,t){return ye(e,t),pe(e,t)}function pe(e,t){switch(e.kind){case"input":{const r=t.inputs[e.name];return t.laneIndex<r.size?t.formatInput(e.name):t.formatOutOfBoundsInput(e.name)}case"literal":return t.formatLiteral(e.value);case"call":{const r=t.operations[e.op],n=e.args.map(e=>pe(e,t));return t.formatCall(r.symbol,n)}default:throw new Error(`Unsupported expression node ${e.kind}`)}}Object.defineProperty(exports,"ARITHMETIC_OPERATIONS",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"ComputePipeline",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"DynamicBuffer",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"GPUDataEvaluator",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"GPUVector",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"PipelineFactory",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"ShaderFactory",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"ShaderInputs",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"UniformStore",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"bufferPool",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"compileExpression",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"getDynamicBufferFromBinding",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"getGPUDataEvaluator",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"getShaderModuleUniformBlockLayouts",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"isBufferRangeBinding",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"isNumericArray",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"mergeInferredShaderLayout",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"mergeShaderModuleBindingsIntoLayout",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"mergeShaderModules",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"mergeShaderPluginModules",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"resolveBufferRangeBinding",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"resolveShaderPlugins",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"shaderModuleHasUniforms",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"uid",{enumerable:!0,get:function(){return _}});
|
|
1
|
+
/*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
|
|
2
|
+
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="52a41911-0083-4584-84d1-b925d75f882c",e._sentryDebugIdIdentifier="sentry-dbid-52a41911-0083-4584-84d1-b925d75f882c")}catch(e){}}();const e=require("./debug-hooks-DDHLlDXD.cjs"),t=require("./shader-type-decoder-ClUxS2uC.cjs"),r=require("./webgl-device-BXkaCOiH.cjs");function n(e){return function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}(e)||function(e){return!!Array.isArray(e)&&(0===e.length||"number"==typeof e[0])}(e)}var i=class e extends t.Resource{get[Symbol.toStringTag](){return"ComputePipeline"}hash="";shaderLayout;constructor(t,r){super(t,r,e.defaultProps),this.shaderLayout=r.shaderLayout}static defaultProps={...t.Resource.defaultProps,shader:void 0,entryPoint:void 0,constants:{},shaderLayout:void 0}},s=class e{static defaultProps={...r.RenderPipeline.defaultProps};static getDefaultPipelineFactory(t){const r=t.getModuleData("@luma.gl/core");return r.defaultPipelineFactory||=new e(t),r.defaultPipelineFactory}device;_hashCounter=0;_hashes={};_renderPipelineCache={};_computePipelineCache={};_sharedRenderPipelineCache={};get[Symbol.toStringTag](){return"PipelineFactory"}toString(){return`PipelineFactory(${this.device.id})`}constructor(e){this.device=e}createRenderPipeline(e){if(!this.device.props._cachePipelines)return this.device.createRenderPipeline(e);const n={...r.RenderPipeline.defaultProps,...e},i=this._renderPipelineCache,s=this._hashRenderPipeline(n);let o=i[s]?.resource;if(o)i[s].useCount++,this.device.props.debugFactories&&t.log.log(3,`${this}: ${i[s].resource} reused, count=${i[s].useCount}, (id=${e.id})`)();else{const e="webgl"===this.device.type&&this.device.props._sharePipelines?this.createSharedRenderPipeline(n):void 0;o=this.device.createRenderPipeline({...n,id:n.id?`${n.id}-cached`:t.uid("unnamed-cached"),_sharedRenderPipeline:e}),o.hash=s,i[s]={resource:o,useCount:1},this.device.props.debugFactories&&t.log.log(3,`${this}: ${o} created, count=${i[s].useCount}`)()}return o}createComputePipeline(e){if(!this.device.props._cachePipelines)return this.device.createComputePipeline(e);const r={...i.defaultProps,...e},n=this._computePipelineCache,s=this._hashComputePipeline(r);let o=n[s]?.resource;return o?(n[s].useCount++,this.device.props.debugFactories&&t.log.log(3,`${this}: ${n[s].resource} reused, count=${n[s].useCount}, (id=${e.id})`)()):(o=this.device.createComputePipeline({...r,id:r.id?`${r.id}-cached`:void 0}),o.hash=s,n[s]={resource:o,useCount:1},this.device.props.debugFactories&&t.log.log(3,`${this}: ${o} created, count=${n[s].useCount}`)()),o}release(e){if(!this.device.props._cachePipelines)return void e.destroy();const r=this._getCache(e),n=e.hash;r[n].useCount--,0===r[n].useCount?(this._destroyPipeline(e),this.device.props.debugFactories&&t.log.log(3,`${this}: ${e} released and destroyed`)()):r[n].useCount<0?(t.log.error(`${this}: ${e} released, useCount < 0, resetting`)(),r[n].useCount=0):this.device.props.debugFactories&&t.log.log(3,`${this}: ${e} released, count=${r[n].useCount}`)()}createSharedRenderPipeline(e){const t=this._hashSharedRenderPipeline(e);let r=this._sharedRenderPipelineCache[t];return r||(r={resource:this.device._createSharedRenderPipelineWebGL(e),useCount:0},this._sharedRenderPipelineCache[t]=r),r.useCount++,r.resource}releaseSharedRenderPipeline(e){if(!e.sharedRenderPipeline)return;const t=this._hashSharedRenderPipeline(e.sharedRenderPipeline.props),r=this._sharedRenderPipelineCache[t];r&&(r.useCount--,0===r.useCount&&(r.resource.destroy(),delete this._sharedRenderPipelineCache[t]))}_destroyPipeline(e){const t=this._getCache(e);return!!this.device.props._destroyPipelines&&(delete t[e.hash],e.destroy(),e instanceof r.RenderPipeline&&this.releaseSharedRenderPipeline(e),!0)}_getCache(e){let t;if(e instanceof i&&(t=this._computePipelineCache),e instanceof r.RenderPipeline&&(t=this._renderPipelineCache),!t)throw new Error(`${this}`);if(!t[e.hash])throw new Error(`${this}: ${e} matched incorrect entry`);return t}_hashComputePipeline(e){const{type:t}=this.device;return`${t}/C/${this._getHash(e.shader.source)}SL${this._getHash(JSON.stringify(e.shaderLayout))}`}_hashRenderPipeline(e){const t=e.vs?this._getHash(e.vs.source):0,r=e.fs?this._getHash(e.fs.source):0,n=this._getWebGLVaryingHash(e),i=this._getHash(JSON.stringify(e.shaderLayout)),s=this._getHash(JSON.stringify(e._uniformBlockLayouts)),o=this._getHash(JSON.stringify(e.bufferLayout)),{type:a}=this.device;if("webgl"===a){const f=this._getHash(JSON.stringify(e.parameters));return`${a}/R/${t}/${r}V${n}T${e.topology}P${f}SL${i}UBL${s}BL${o}`}{const s=this._getHash(JSON.stringify({vertexEntryPoint:e.vertexEntryPoint,fragmentEntryPoint:e.fragmentEntryPoint})),f=this._getHash(JSON.stringify(e.parameters)),u=this._getWebGPUAttachmentHash(e);return`${a}/R/${t}/${r}V${n}T${e.topology}EP${s}P${f}SL${i}BL${o}A${u}`}}_hashSharedRenderPipeline(e){return`webgl/S/${e.vs?this._getHash(e.vs.source):0}/${e.fs?this._getHash(e.fs.source):0}V${this._getWebGLVaryingHash(e)}`}_getHash(e){return void 0===this._hashes[e]&&(this._hashes[e]=this._hashCounter++),this._hashes[e]}_getWebGLVaryingHash(e){const{varyings:t=[],bufferMode:r=null}=e;return this._getHash(JSON.stringify({varyings:t,bufferMode:r}))}_getWebGPUAttachmentHash(e){const t=e.colorAttachmentFormats??[this.device.preferredColorFormat],r=e.depthStencilAttachmentFormat??(e.parameters?.depthWriteEnabled?this.device.preferredDepthFormat:null);return this._getHash(JSON.stringify({colorAttachmentFormats:t,depthStencilAttachmentFormat:r}))}},o=class e{static defaultProps={...r.Shader.defaultProps};static getDefaultShaderFactory(t){const r=t.getModuleData("@luma.gl/core");return r.defaultShaderFactory||=new e(t),r.defaultShaderFactory}device;_cache={};get[Symbol.toStringTag](){return"ShaderFactory"}toString(){return`${this[Symbol.toStringTag]}(${this.device.id})`}constructor(e){this.device=e}createShader(e){if(!this.device.props._cacheShaders)return this.device.createShader(e);const r=this._hashShader(e);let n=this._cache[r];if(n)n.useCount++,this.device.props.debugFactories&&t.log.log(3,`${this}: Reusing shader ${n.resource.id} count=${n.useCount}`)();else{const i=this.device.createShader({...e,id:e.id?`${e.id}-cached`:void 0});this._cache[r]=n={resource:i,useCount:1},this.device.props.debugFactories&&t.log.log(3,`${this}: Created new shader ${i.id}`)()}return n.resource}release(e){if(!this.device.props._cacheShaders)return void e.destroy();const r=this._hashShader(e),n=this._cache[r];if(n)if(n.useCount--,0===n.useCount)this.device.props._destroyShaders&&(delete this._cache[r],n.resource.destroy(),this.device.props.debugFactories&&t.log.log(3,`${this}: Releasing shader ${e.id}, destroyed`)());else{if(n.useCount<0)throw new Error(`ShaderFactory: Shader ${e.id} released too many times`);this.device.props.debugFactories&&t.log.log(3,`${this}: Releasing shader ${e.id} count=${n.useCount}`)()}}_hashShader(e){return`${e.stage}:${e.source}`}};function a(e){return Array.isArray(e)?0===e.length||"number"==typeof e[0]:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}(e)}var f=class{layout;constructor(e){this.layout=e}has(e){return Boolean(this.layout.fields[e])}get(e){const t=this.layout.fields[e];return t?{offset:t.offset,size:t.size}:void 0}getFlatUniformValues(e){const t={};for(const[r,n]of Object.entries(e)){const e=this.layout.uniformTypes[r];e?this._flattenCompositeValue(t,r,e,n):this.layout.fields[r]&&(t[r]=n)}return t}getData(e){const t=r.getScratchArrayBuffer(this.layout.byteLength);new Uint8Array(t,0,this.layout.byteLength).fill(0);const n={i32:new Int32Array(t),u32:new Uint32Array(t),f32:new Float32Array(t),f16:new Uint16Array(t)},i=this.getFlatUniformValues(e);for(const[r,s]of Object.entries(i))this._writeLeafValue(n,r,s);return new Uint8Array(t,0,this.layout.byteLength)}_flattenCompositeValue(e,n,i,s){if(void 0!==s)if("string"==typeof i||this.layout.fields[n])e[n]=s;else{if(Array.isArray(i)){const r=i[0],o=i[1];if(Array.isArray(r))throw new Error(`Nested arrays are not supported for ${n}`);if("string"==typeof r&&a(s))return void this._flattenPackedArray(e,n,r,o,s);if(!Array.isArray(s))return void t.log.warn(`Unsupported uniform array value for ${n}:`,s)();for(let t=0;t<Math.min(s.length,o);t++){const i=s[t];void 0!==i&&this._flattenCompositeValue(e,`${n}[${t}]`,r,i)}return}if(r.isCompositeShaderTypeStruct(i)&&function(e){return Boolean(e)&&"object"==typeof e&&!Array.isArray(e)&&!ArrayBuffer.isView(e)}(s))for(const[t,r]of Object.entries(s)){if(void 0===r)continue;const s=`${n}.${t}`;this._flattenCompositeValue(e,s,i[t],r)}else t.log.warn(`Unsupported uniform value for ${n}:`,s)()}}_flattenPackedArray(e,t,n,i,s){const o=s,a=r.getLeafLayoutInfo(n,this.layout.layout).components;for(let r=0;r<i;r++){const n=r*a;if(n>=o.length)break;e[`${t}[${r}]`]=1===a?Number(o[n]):u(s,n,n+a)}}_writeLeafValue(e,r,n){const i=this.layout.fields[r];if(!i)return void t.log.warn(`Uniform ${r} not found in layout`)();const{type:s,components:o,columns:a,rows:f,offset:u,columnStride:h}=i,c=e[s];if(1===o)return void(c[u]=Number(n));const d=n;if(1===a){for(let e=0;e<o;e++)c[u+e]=Number(d[e]??0);return}let l=0;for(let t=0;t<a;t++){const e=u+t*h;for(let t=0;t<f;t++)c[e+t]=Number(d[l++]??0)}}};function u(e,t,r){return Array.prototype.slice.call(e,t,r)}var h=class{name;uniforms={};modifiedUniforms={};modified=!0;bindingLayout={};needsRedraw="initialized";constructor(e){if(this.name=e?.name||"unnamed",e?.name&&e?.shaderLayout){const t=e?.shaderLayout.bindings?.find(t=>"uniform"===t.type&&t.name===e?.name);if(!t)throw new Error(e?.name);const r=t;for(const e of r.uniforms||[])this.bindingLayout[e.name]=e}}setUniforms(e){for(const[t,r]of Object.entries(e))this._setUniform(t,r)&&!this.needsRedraw&&this.setNeedsRedraw(`${this.name}.${t}=${r}`)}setNeedsRedraw(e){this.needsRedraw=this.needsRedraw||e}getAllUniforms(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}}_setUniform(e,t){return!function(e,t,r=16){if(e===t)return!0;const n=e,i=t;if(!a(n)||!a(i))return!1;if(n.length!==i.length)return!1;const s=Math.min(r,128);if(n.length>s)return!1;for(let o=0;o<n.length;++o)if(i[o]!==n[o])return!1;return!0}(this.uniforms[e],t)&&(this.uniforms[e]=a(r=t)?r.slice():r,this.modifiedUniforms[e]=!0,this.modified=!0,!0);var r}},c=class{device;uniformBlocks=new Map;shaderBlockLayouts=new Map;shaderBlockWriters=new Map;uniformBuffers=new Map;constructor(e,t){this.device=e;for(const[n,i]of Object.entries(t)){const t=n,s=r.makeShaderBlockLayout(i.uniformTypes??{},{layout:i.layout??d(e)}),o=new f(s);this.shaderBlockLayouts.set(t,s),this.shaderBlockWriters.set(t,o);const a=new h({name:n});a.setUniforms(o.getFlatUniformValues(i.defaultUniforms||{})),this.uniformBlocks.set(t,a)}}destroy(){for(const e of this.uniformBuffers.values())e.destroy()}setUniforms(e,t){for(const[r,n]of Object.entries(e)){const e=r,t=this.shaderBlockWriters.get(e)?.getFlatUniformValues(n||{});this.uniformBlocks.get(e)?.setUniforms(t||{})}this.updateUniformBuffers(t)}getUniformBufferByteLength(e){const t=this.shaderBlockLayouts.get(e)?.byteLength||0;return Math.max(t,1024)}getUniformBufferData(e){const t=this.uniformBlocks.get(e)?.getAllUniforms()||{};return this.shaderBlockWriters.get(e)?.getData(t)||new Uint8Array(0)}createUniformBuffer(e,r){r&&this.setUniforms(r);const n=this.getUniformBufferByteLength(e),i=this.device.createBuffer({usage:t.Buffer.UNIFORM|t.Buffer.COPY_DST,byteLength:n}),s=this.getUniformBufferData(e);return i.write(s),i}getManagedUniformBuffer(e){if(!this.uniformBuffers.get(e)){const r=this.getUniformBufferByteLength(e),n=this.device.createBuffer({usage:t.Buffer.UNIFORM|t.Buffer.COPY_DST,byteLength:r});this.uniformBuffers.set(e,n)}return this.uniformBuffers.get(e)}updateUniformBuffers(e){let r=!1;for(const t of this.uniformBlocks.keys()){const n=this.updateUniformBuffer(t,e);r||=n}return r&&t.log.log(3,`UniformStore.updateUniformBuffers(): ${r}`)(),r}updateUniformBuffer(e,r){const n=this.uniformBlocks.get(e);let i=this.uniformBuffers.get(e),s=!1;if(i&&n?.needsRedraw){s||=n.needsRedraw;const o=this.getUniformBufferData(e);if(i=this.uniformBuffers.get(e),i&&(r?this.device.writeBufferViaCommandEncoder(r,i,o):i.write(o)),t.log.level>=4){const r=this.uniformBlocks.get(e)?.getAllUniforms();t.log.log(4,`Writing to uniform buffer ${String(e)}`,o,r)()}}return s}};function d(e){return"webgpu"===e.type?"wgsl-uniform":"std140"}var l=/^(vs|fs):(?:#(?:decl|main-start|main-end)|[A-Za-z_][\w-]*)$/;function y(e=[],t){const r=[],n={},i={},s={},o={};for(const a of e)p({modules:r,defines:n,injections:i,vertexInputs:s,varyings:o},a),p({modules:r,defines:n,injections:i,vertexInputs:s,varyings:o},a[t]);for(const a of Object.keys(o))if(s[a])throw new Error(`ShaderPlugin name "${a}" cannot be both a vertex input and a varying`);return{modules:r,defines:n,injections:i,vertexInputs:s,varyings:o}}function g(e=[],t=[]){const r=[...e],n=new Set(r.map(e=>e.name));for(const i of t)n.has(i.name)||(r.push(i),n.add(i.name));return r}function p(e,t){if(t){t.modules?.length&&e.modules.push(...t.modules),t.defines&&Object.assign(e.defines,t.defines);for(const[r,n]of Object.entries(t.vertexInputs||{})){b(r,"vertex input");const t=e.vertexInputs[r];if(t&&t!==n)throw new Error(`ShaderPlugin vertex input "${r}" has conflicting types "${t}" and "${n}"`);e.vertexInputs[r]=n}for(const[r,n]of Object.entries(t.varyings||{})){b(r,"varying");const t=m(r,n),i=e.varyings[r];if(i&&(i.type!==t.type||i.interpolation!==t.interpolation))throw new Error(`ShaderPlugin varying "${r}" has conflicting declarations "${i.type}/${i.interpolation}" and "${t.type}/${t.interpolation}"`);e.varyings[r]=t}for(const r of t.injections||[])w(r.target),e.injections[r.target]||(e.injections[r.target]=[]),e.injections[r.target].push({injection:r.injection,order:r.order??0})}}function b(e,t){if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)||e.startsWith("_luma_"))throw new Error(`ShaderPlugin ${t} "${e}" must be a valid non-reserved identifier`)}function m(e,r){const{primitiveType:n}=t.shaderTypeDecoder.getAttributeShaderTypeInfo(r.type),i="i32"===n||"u32"===n,s=r.interpolation||(i?"flat":"smooth");if(i&&"smooth"===s)throw new Error(`ShaderPlugin integer varying "${e}" must use flat interpolation`);return{type:r.type,interpolation:s}}function w(e){if(!l.test(e))throw new Error(`ShaderPlugin injection target "${e}" must be a named shader anchor or hook`)}var v={};function _(e="id"){return v[e]=v[e]||1,`${e}-${v[e]++}`}function B(e,t){if(!e||!t.some(e=>e.bindingLayout?.length))return e;const r={...e,bindings:e.bindings.map(e=>({...e}))};"attributes"in(e||{})&&(r.attributes=e?.attributes||[]);for(const n of t)for(const e of n.bindingLayout||[])for(const t of $(e.name)){const n=r.bindings.find(e=>e.name===t);0===n?.group&&(n.group=e.group),n&&void 0!==e.visibility&&(n.visibility=e.visibility)}return r}function L(e,t,r=[]){return e?t?{...e,attributes:e.attributes.length?O(e.attributes,t.attributes.filter(e=>r.includes(e.name))):t.attributes,bindings:D(e.bindings,t.bindings)}:e:t}function P(e){return Boolean(e.uniformTypes&&!function(e){for(const t in e)return!1;return!0}(e.uniformTypes))}function E(t){const r=[];for(const n of t){const t=e.getShaderModuleUniformBlockName(n),i=new Set([n.vs,n.fs].flatMap(t=>t?e.getGLSLUniformBlocks(t).filter(e=>e.isStd140).map(e=>e.blockName):[])),s=i.has(t)?t:1===i.size?i.values().next().value:void 0;P(n)&&s&&r.push({name:s,uniformTypes:n.uniformTypes})}return r}function S(e,t){const r=[],n=new Set;for(const i of[...e||[],...t||[]])n.has(i.name)||(n.add(i.name),r.push(i));return r}function $(e){const t=new Set([e,`${e}Uniforms`]);return e.endsWith("Uniforms")||t.add(`${e}Sampler`),[...t]}function D(e,t){const r=e.map(e=>({...e})),n=new Set(e.map(e=>e.name)),i=new Set(e.map(e=>`${e.group}:${e.location}`));for(const s of t){const e=`${s.group}:${s.location}`;n.has(s.name)||i.has(e)||r.push({...s})}return r}function O(e,t){const r=e.map(e=>({...e})),n=new Map(e.map(e=>[e.name,e])),i=new Map(e.map(e=>[e.location,e]));for(const s of t){const e=n.get(s.name);if(e){if(e.type!==s.type||e.location!==s.location)throw new Error(`Shader attribute "${s.name}" conflicts with its inferred type or location`);continue}const t=i.get(s.location);if(t)throw new Error(`Shader attributes "${t.name}" and "${s.name}" both use location ${s.location}`);r.push({...s})}return r}function U(e,t={}){const r={bindings:{},uniforms:{}};return Object.keys(e).forEach(i=>{const s=e[i];var o;Object.prototype.hasOwnProperty.call(t,i)||(n(o=s)||"number"==typeof o||"boolean"==typeof o)?r.uniforms[i]=s:r.bindings[i]=s}),r}var T=class{options={disableWarnings:!1};modules;moduleUniforms;moduleBindings;directBindings={};constructor(r,n){Object.assign(this.options,n);const i=e.getShaderModuleDependencies(Object.values(r).filter(G));for(const e of i)r[e.name]=e;t.log.log(1,"Creating ShaderInputs with modules",Object.keys(r))(),this.modules=r,this.moduleUniforms={},this.moduleBindings={};for(const[e,s]of Object.entries(r))s&&(this._addModule(s),s.name&&e!==s.name&&!this.options.disableWarnings&&t.log.warn(`Module name: ${e} vs ${s.name}`)())}destroy(){}setProps(e){e.bindings&&Object.assign(this.directBindings,e.bindings);for(const r of Object.keys(e)){if("bindings"===r)continue;const n=r,i=e[n]||{},s=this.modules[n];if(s){const e=this.moduleUniforms[n],t=this.moduleBindings[n],r=s.getUniforms?.(i,e)||i,{uniforms:o,bindings:a}=U(r,s.uniformTypes);this.moduleUniforms[n]=V(e,o,s.uniformTypes),this.moduleBindings[n]={...t,...a}}else this.options.disableWarnings||t.log.warn(`Module ${r} not found`)()}}getModules(){return Object.values(this.modules)}addModules(t){const r=e.getShaderModuleDependencies(t);for(const e of r){const t=e.name;this.modules[t]||(this.modules[t]=e,this._addModule(e))}}getUniformValues(){return this.moduleUniforms}getBindingValues(){const e={};for(const t of Object.values(this.moduleBindings))Object.assign(e,t);return Object.assign(e,this.directBindings),e}getModuleBindingValues(e){const t=this.moduleBindings[e];return t?{...t}:{}}getDebugTable(){const e={};for(const[t,r]of Object.entries(this.moduleUniforms))for(const[n,i]of Object.entries(r))e[`${t}.${n}`]={type:this.modules[t].uniformTypes?.[n],value:String(i)};return e}_addModule(e){const t=e.name;this.moduleUniforms[t]=V({},e.defaultUniforms||{},e.uniformTypes),this.moduleBindings[t]={}}};function V(e={},t={},r={}){const n={...e};for(const[i,s]of Object.entries(t))void 0!==s&&(n[i]=A(e[i],s,r[i]));return n}function A(e,t,r){if(!r||"string"==typeof r)return x(t);if(Array.isArray(r)){if(C(t)||!Array.isArray(t))return x(t);const n=Array.isArray(e)&&!C(e)?[...e]:[],i=n.slice();for(let e=0;e<t.length;e++){const s=t[e];void 0!==s&&(i[e]=A(n[e],s,r[0]))}return i}if(!j(t))return x(t);const n=r,i=j(e)?e:{},s={...i};for(const[o,a]of Object.entries(t))void 0!==a&&(s[o]=A(i[o],a,n[o]));return s}function x(e){return ArrayBuffer.isView(e)?Array.prototype.slice.call(e):Array.isArray(e)?C(e)?e.slice():e.map(e=>void 0===e?void 0:x(e)):j(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,void 0===t?void 0:x(t)])):e}function C(e){return ArrayBuffer.isView(e)||Array.isArray(e)&&(0===e.length||"number"==typeof e[0])}function j(e){return Boolean(e)&&"object"==typeof e&&!Array.isArray(e)&&!ArrayBuffer.isView(e)}function G(e){return Boolean(e?.dependencies)}var R=t.Buffer.DEBUG_DATA_MAX_LENGTH,M=class{device;id;ready;usage;props;isReady=!0;destroyed=!1;generation=0;updateTimestamp;debugData=new ArrayBuffer(0);_debugDataEnabled;_maxDebugDataByteLength;_ownsBuffer;_buffer;get buffer(){return this._buffer}get byteLength(){return this._buffer.byteLength}get[Symbol.toStringTag](){return"DynamicBuffer"}toString(){return`DynamicBuffer:"${this.id}":${this.byteLength}B`}toJSON(){return this.toString()}constructor(e,r){const{debugData:n=!1,buffer:i,ownsBuffer:s=!0,...o}=r;if(i&&i.device!==e)throw new Error("DynamicBuffer adopted buffers must belong to the supplied device");if(i&&(void 0!==o.byteLength||void 0!==o.data))throw new Error("DynamicBuffer cannot combine an adopted buffer with byteLength or data");const a=r.id||i?.id||_("dynamic-buffer"),f={...o,id:a,usage:o.usage??i?.usage,indexType:o.indexType??i?.indexType};(f.usage||0)&t.Buffer.INDEX&&!f.indexType&&(o.data instanceof Uint32Array?f.indexType="uint32":o.data instanceof Uint16Array?f.indexType="uint16":o.data instanceof Uint8Array&&(f.indexType="uint8")),delete f.data,delete f.byteOffset,this.device=e,this.id=a,this.props=f,this.usage=f.usage||0,this._debugDataEnabled=Boolean(n),this._maxDebugDataByteLength="object"==typeof n&&void 0!==n.maxByteLength?n.maxByteLength:R,this._ownsBuffer=s,this._buffer=i??this.device.createBuffer({...o,id:a}),this.ready=Promise.resolve(this._buffer),this.updateTimestamp=this._buffer.updateTimestamp,this._resetDebugData(this._buffer.byteLength),o.data&&this._writeDebugData(o.data,o.byteOffset||0)}write(e,t=0){this._buffer.write(e,t),this._touch(),this._writeDebugData(e,t)}async mapAndWriteAsync(e,t=0,r=this.byteLength-t){let n=null;await this._buffer.mapAndWriteAsync(async(t,i)=>{await e(t,i),n=new Uint8Array(t.slice(0,r))},t,r),this._touch(),n&&this._writeDebugData(n,t)}async readAsync(e=0,t=this.byteLength-e){const r=await this._buffer.readAsync(e,t);return this._writeDebugData(r,e)&&this._touch(),r}async mapAndReadAsync(e,t=0,r=this.byteLength-t){let n=null;const i=await this._buffer.mapAndReadAsync(async(t,r)=>(n=new Uint8Array(t.slice(0)),await e(t,r)),t,r);return n&&this._writeDebugData(n,t)&&this._touch(),i}resize(e){const{byteLength:t,preserveData:r=!1}=e;if(t===this.byteLength)return!1;const n=Math.min(e.copyByteLength??Math.min(this.byteLength,t),this.byteLength,t),i=this._buffer,s=this.debugData.slice(0),{data:o,byteOffset:a,...f}=this.props,u=this.device.createBuffer({...f,byteLength:t});return r&&n>0&&this._copyBufferContents(i,u,n),this._buffer=u,this._resetDebugData(t),r&&s.byteLength>0&&this._writeDebugData(s,0),this._ownsBuffer&&i.destroy(),this._ownsBuffer=!0,this.generation++,this._touch(),!0}ensureSize(e,t){return!(e<=this.byteLength)&&this.resize({byteLength:e,preserveData:t?.preserveData})}getBinding(e){return void 0===e?.offset&&void 0===e?.size?this._buffer:{buffer:this._buffer,offset:e?.offset,size:e?.size}}destroy(){this.destroyed||(this._ownsBuffer&&this._buffer.destroy(),this.destroyed=!0,this.debugData=new ArrayBuffer(0))}_copyBufferContents(e,t,r){const n="webgpu"===this.device.type?4*Math.ceil(r/4):r,i=this.device.createCommandEncoder();i.copyBufferToBuffer({sourceBuffer:e,destinationBuffer:t,size:n}),this.device.submit(i.finish())}_touch(){this.updateTimestamp=this.device.incrementTimestamp()}_resetDebugData(e){this._debugDataEnabled?this.debugData=new ArrayBuffer(Math.min(e,this._maxDebugDataByteLength)):this.debugData=new ArrayBuffer(0)}_writeDebugData(e,t){if(!this._debugDataEnabled||0===this.debugData.byteLength||t>=this.debugData.byteLength)return!1;const r=ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e),n=new Uint8Array(this.debugData),i=Math.min(r.byteLength,n.byteLength-t);return n.set(r.subarray(0,i),t),i>0}};function k(e){return null!==e&&"object"==typeof e&&"buffer"in e}function z(e){return e instanceof M?e:k(e)&&e.buffer instanceof M?e.buffer:null}function F(e){return{buffer:(t=e.buffer,t instanceof M?t.buffer:t),offset:e.offset,size:e.size};var t}var N=/^vertex-list<([^<>]+)>$/,I=/^value-list<([^<>]+)>$/;function H(e){return N.test(e)}function Y(e){return I.test(e)}function q(e){const r=function(e){const r=N.exec(e),n=I.exec(e),i=r?.[1]??n?.[1]??e;try{t.vertexFormatDecoder.getVertexFormatInfo(i)}catch{throw new Error(`Unsupported GPUVector format ${e}`)}return i}(e),n=H(e),i=Y(e),s=t.vertexFormatDecoder.getVertexFormatInfo(r),o=s.type,a=s.normalized,f=function(e,t){if(t)return"f32";switch(e){case"float32":return"f32";case"float16":return"f16";case"uint8":case"uint16":case"uint32":return"u32";case"sint8":case"sint16":case"sint32":return"i32";default:throw new Error(`Unsupported GPUVector component type ${e}`)}}(o,a);return{format:e,elementFormat:r,vertexList:n,valueList:i,type:o,signedDataType:W(r,o),primitiveType:f,components:s.components,byteLength:s.byteLength,integer:s.integer,signed:s.signed,normalized:a,...s.webglOnly?{webglOnly:!0}:{}}}function W(e,t){if("unorm10-10-10-2"===e)return"uint32";switch(t){case"unorm8":return"uint8";case"snorm8":return"sint8";case"unorm16":return"uint16";case"snorm16":return"sint16";default:return t}}var J=class{buffer;format;length;byteOffset;byteStride;constructor(e){const r=t.vertexFormatDecoder.getVertexFormatInfo(e.format).byteLength,n=e.byteOffset??0,i=e.byteStride??r;if(X(e.length,"GPUDataView length"),X(n,"GPUDataView byteOffset"),X(i,"GPUDataView byteStride"),i<r)throw new Error(`GPUDataView byteStride ${i} is smaller than ${e.format} byte length ${r}`);const s=0===e.length?0:(e.length-1)*i+r,o=n+s;if(!Number.isSafeInteger(s)||!Number.isSafeInteger(o))throw new Error("GPUDataView byte range must use safe integers");if(o>e.buffer.byteLength)throw new Error("GPUDataView exceeds its backing buffer byte length");this.buffer=e.buffer,this.format=e.format,this.length=e.length,this.byteOffset=n,this.byteStride=i}get elementByteLength(){return t.vertexFormatDecoder.getVertexFormatInfo(this.format).byteLength}get byteLength(){return 0===this.length?0:(this.length-1)*this.byteStride+this.elementByteLength}};function X(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`${t} must be a non-negative safe integer`)}function Z(e){return Boolean(e&&"object"==typeof e&&"struct"===e.type)}function K(e,n){const i=Object.entries(e);if(0===i.length)throw new Error("GPUData struct format must declare at least one field");return"packed"===n?function(e){const r=[];let n=0,i=0;for(const[s,o]of e){const e=t.vertexFormatDecoder.getVertexFormatInfo(o);if(e.webglOnly)throw new Error(`Packed GPUData struct field "${s}" uses WebGL-only format ${o}`);n=te(n,Math.min(4,e.byteLength)),r.push([s,Object.freeze({format:o,byteOffset:n,byteLength:e.byteLength})]),n+=e.byteLength,i+=e.components}return Object.freeze({type:"struct",layout:"packed",fields:Object.freeze(Object.fromEntries(r)),components:i,byteStride:te(n,4),rowByteLength:n})}(i):function(e){const n=Object.fromEntries(e.map(([e,t])=>[e,Q(t)])),i=r.makeShaderBlockLayout(n,{layout:"wgsl-storage"}),s=[];let o=0,a=0;for(const[r,f]of e){const e=t.vertexFormatDecoder.getVertexFormatInfo(f),n=4*i.fields[r].offset;s.push([r,Object.freeze({format:f,byteOffset:n,byteLength:e.byteLength})]),o=Math.max(o,n+e.byteLength),a+=e.components}return Object.freeze({type:"struct",layout:"wgsl-storage",fields:Object.freeze(Object.fromEntries(s)),components:a,byteStride:i.byteLength,rowByteLength:o})}(i)}function Q(e){const r=t.vertexFormatDecoder.getVertexFormatInfo(e);switch(r.type){case"float32":return ee("f32",r.components);case"sint32":return ee("i32",r.components);case"uint32":return ee("u32",r.components);default:return ee("u32",Math.ceil(r.byteLength/4))}}function ee(e,t){return 1===t?e:`vec${t}<${e}>`}function te(e,t){return Math.ceil(e/t)*t}var re=class{buffer;ownsDataBuffer;constructor(e,t){this.buffer=e,this.ownsDataBuffer=t}get ownsBuffer(){return this.ownsDataBuffer}transferBufferOwnership(e){if(e.buffer!==this.buffer)throw new Error("GPUData ownership can only be transferred to the same buffer");e.ownsDataBuffer=this.ownsDataBuffer,this.ownsDataBuffer=!1}destroy(){this.ownsDataBuffer&&(this.buffer.destroy(),this.ownsDataBuffer=!1)}},ne=class extends re{dataType;format;length;valueLength;stride;byteOffset;byteStride;rowByteLength;readbackMetadata;valueOffsets;nullBitmap;valueByteLength;constructor(e){const{buffer:t,format:r,length:n,valueLength:i,stride:s,byteOffset:o=0,byteStride:a,rowByteLength:f,ownsBuffer:u=!1,readbackMetadata:h,valueOffsets:c,nullBitmap:d,valueByteLength:l,dataType:y}=e;let g;super(t,u),g=r?"string"==typeof r?r:K(r,e.layout??"wgsl-storage"):void 0;const p=Z(g)?g:void 0,b="string"==typeof g?q(g):void 0;if(this.dataType=y,this.format=g,this.length=n,this.valueLength=i??n,this.stride=s??b?.components??p?.components??a??f??1,this.byteOffset=o,this.rowByteLength=f??p?.rowByteLength??b?.byteLength??a??this.stride,this.byteStride=a??p?.byteStride??this.rowByteLength,p){if(this.rowByteLength<p.rowByteLength)throw new Error(`GPUData rowByteLength ${this.rowByteLength} is smaller than struct format row byte length ${p.rowByteLength}`);if(this.byteStride<Math.max(p.byteStride,this.rowByteLength))throw new Error(`GPUData byteStride ${this.byteStride} is smaller than its struct row layout`)}this.readbackMetadata=h,this.valueOffsets=c,this.nullBitmap=d,this.valueByteLength=l}getChild(e){if(!Z(this.format))return null;const t=this.format.fields[e];return t?new J({buffer:this.buffer,format:t.format,length:this.length,byteOffset:this.byteOffset+t.byteOffset,byteStride:this.byteStride}):null}getChildAt(e){if(!Z(this.format))return null;const t=Object.values(this.format.fields)[e];return t?new J({buffer:this.buffer,format:t.format,length:this.length,byteOffset:this.byteOffset+t.byteOffset,byteStride:this.byteStride}):null}},ie=class{name;dataType;format;length;valueLength;stride;byteOffset;byteStride;rowByteLength;bufferLayout;data=[];device;bufferProps;isAppendable=!1;ownsDataChunks=!0;ownedVectors=[];appendableByteLength=0;constructor(e){switch(e.type){case"buffer":{const{name:t,buffer:r,format:n,length:i,valueLength:s=i,byteOffset:o=0,ownsBuffer:a=!1}=e,{stride:f,byteStride:u,rowByteLength:h}=se(e);return this.name=t,this.dataType=e.dataType,this.format=n,this.length=i,this.valueLength=s,this.stride=f,this.byteOffset=o,this.byteStride=u,this.rowByteLength=h,void this.data.push(new ne({buffer:r,format:n,length:i,valueLength:s,stride:f,byteOffset:o,byteStride:u,rowByteLength:h,ownsBuffer:a,dataType:e.dataType}))}case"interleaved":{const{name:t,buffer:r,format:n,length:i,valueLength:s=i,byteOffset:o=0,byteStride:a,attributes:f,ownsBuffer:u=!1}=e;return this.name=t,this.dataType=e.dataType,this.format=n,this.length=i,this.valueLength=s,this.stride=a,this.byteOffset=o,this.byteStride=a,this.rowByteLength=a,this.bufferLayout={name:t,byteStride:a,attributes:f},void this.data.push(new ne({buffer:r,format:n,length:i,valueLength:s,stride:a,byteOffset:o,byteStride:a,rowByteLength:a,ownsBuffer:u,dataType:e.dataType}))}case"data":{const t=e.format??function(e){return e[0]?.format}(e.data),r=t?q(t):void 0,{name:n,data:i,stride:s=i[0]?.stride??r?.components??1,valueLength:o=i.reduce((e,t)=>e+t.valueLength,0),byteStride:a=i[0]?.byteStride??r?.byteLength,rowByteLength:f=i[0]?.rowByteLength??r?.byteLength,bufferLayout:u,ownsData:h=!1}=e;if(void 0===a||void 0===f)throw new Error("GPUVector requires format or explicit byte layout metadata");return t&&function(e,t){if(e.find(e=>e.format!==t))throw new Error("GPUVector data chunks must share the declared format")}(i,t),this.name=n,this.dataType=e.dataType,this.format=t,this.length=i.reduce((e,t)=>e+t.length,0),this.valueLength=o,this.stride=s,this.byteOffset=1===i.length?i[0].byteOffset:0,this.byteStride=a,this.rowByteLength=f,this.bufferLayout=u,this.ownsDataChunks=h,void this.data.push(...i)}case"appendable":{const{name:t,device:r,format:n,valueLength:i=0,bufferProps:s}=e,{stride:o,byteStride:a,rowByteLength:f}=se(e);return this.name=t,this.dataType=e.dataType,this.format=n,this.length=0,this.valueLength=i,this.stride=o,this.byteOffset=0,this.byteStride=a,this.rowByteLength=f,this.device=r,this.bufferProps=s,void(this.isAppendable=!0)}}}get ownsBuffer(){return this.ownsDataChunks&&this.data.some(e=>e.ownsBuffer)||this.ownedVectors.some(e=>e.ownsBuffer)}get capacityRows(){return this.isAppendable?this.length:void 0}get appendedByteLength(){return this.appendableByteLength}addData(e){if(this.format&&e.format!==this.format)throw new Error("GPUVector.addData() requires matching formats");if(e.byteStride!==this.byteStride)throw new Error("GPUVector.addData() requires matching byteStride");if(e.rowByteLength!==this.rowByteLength)throw new Error("GPUVector.addData() requires matching rowByteLength");return this.data.push(e),this.length+=e.length,this.valueLength+=e.valueLength,this}appendDataChunk(e,t=this.appendableByteLength+e.buffer.byteLength){if(!this.isAppendable)throw new Error("GPUVector.appendDataChunk() requires appendable vector storage");if(this.format&&e.format!==this.format)throw new Error("GPUVector.appendDataChunk() requires matching formats");if(e.byteStride!==this.byteStride||e.rowByteLength!==this.rowByteLength)throw new Error("GPUVector.appendDataChunk() requires matching byte layout metadata");return this.data.push(e),this.length+=e.length,this.valueLength+=e.valueLength,this.appendableByteLength=t,this}resetLastBatch(){if(!this.isAppendable)throw new Error("GPUVector.resetLastBatch() requires appendable vector storage");for(const e of this.data.splice(0))e.destroy();return this.length=0,this.valueLength=0,this.appendableByteLength=0,this}retainOwnedVectors(e){return this.ownedVectors.push(...e),this}transferBufferOwnership(e){const t=this.data[0],r=e.data[0];if(!t||!r||t.buffer!==r.buffer)throw new Error("GPUVector ownership can only be transferred to the same buffer");t.transferBufferOwnership(r)}destroy(){if(this.ownsDataChunks)for(const e of this.data)e.destroy();for(const e of this.ownedVectors.splice(0))e.destroy()}};function se(e){const t=e.format?q(e.format):void 0,r=e.rowByteLength??e.byteStride??t?.byteLength;if(void 0===r)throw new Error("GPUVector requires format or explicit rowByteLength");return{stride:e.stride??t?.components??1,byteStride:e.byteStride??r,rowByteLength:r}}var oe=new class{poolSize=20;bufferPools;constructor(){this.bufferPools=new Map}createOrReuse(e,r){if(r>e.limits.maxBufferSize)throw new Error(`Buffer pool cannot allocate ${r} bytes: device.limits.maxBufferSize is ${e.limits.maxBufferSize}`);const n=this.bufferPools.get(e),i=n?n.findIndex(e=>e.byteLength>=r):-1;if(i<0)return e.createBuffer({usage:t.Buffer.VERTEX|t.Buffer.STORAGE|t.Buffer.COPY_DST|t.Buffer.COPY_SRC,byteLength:r});const[s]=n.splice(i,1);return s}recycle(e){const t=e.device;this.bufferPools.has(t)||this.bufferPools.set(t,[]);const r=this.bufferPools.get(t),n=r.findIndex(t=>t.byteLength>e.byteLength);n<0?r.push(e):r.splice(n,0,e),this.purge()}purge(){for(const[e,t]of this.bufferPools){const r=e.isLost?0:this.poolSize;for(;t.length>r;)t.shift().destroy();0===t.length&&this.bufferPools.delete(e)}}},ae=class e{static get bufferPoolSize(){return oe.poolSize}static set bufferPoolSize(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("GPUDataEvaluator.bufferPoolSize must be a non-negative safe integer");oe.poolSize=e,oe.purge()}type;size;get offset(){return this._offset}get stride(){return this._stride}normalized;isConstant;length;get byteLength(){return this._byteLength}ValueType;source=null;format;_id;_destroyed=!1;_value;_offset;_stride;_byteLength;_gpuVector;_bufferOwnership="owned";_targetBuffer;static fromArray(r,{type:n,size:i=1,offset:s=0,stride:o=0,normalized:a=!1}){let f,u=n;Array.isArray(r)?(u=u||"float32",f=new(t.getTypedArrayFromDataType(u))(r)):r instanceof Float64Array?(u="uint32",i*=2,s*=2,o*=2,f=new Uint32Array(r.buffer,r.byteOffset,r.byteLength/4)):(u=u||t.getDataTypeFromTypedArray(r),f=r);return new e({id:`<${u} * ${i}>`,type:u,size:i,offset:s,stride:o,normalized:a,value:f})}static fromConstant(r,n="float32"){const i=t.getTypedArrayFromDataType(n);let s;return Array.isArray(r)?s=`[${r.join(",")}]`:(s=String(r),r=[r]),new e({id:s,isConstant:!0,type:n,size:r.length,value:new i(r)})}static fromGPUData(t,r={}){!function(e){if(!e.format)throw new Error("GPUDataEvaluator.fromGPUData() requires GPUData format metadata");if(H(e.format)||Y(e.format))throw new Error("GPUDataEvaluator.fromGPUData() does not support variable-length input");const t=q(e.format).byteLength;if(e.rowByteLength!==t)throw new Error(`GPUDataEvaluator.fromGPUData() requires rowByteLength ${t} for GPUData`)}(t);const n=new J({buffer:t.buffer,format:t.format,length:t.length,byteOffset:t.byteOffset,byteStride:t.byteStride});return new e({...ue(n),id:r.id,gpuData:t})}static fromGPUDataView(t,r={}){return new e({...ue(t),id:r.id,buffer:t.buffer})}constructor(r){const{id:n,value:i,buffer:s,gpuData:o,format:a,source:f=null,isConstant:u=!1}=r;if(!(f||i||s||o))throw new Error("GPUDataEvaluator must have a value source");let{type:h,size:c,offset:d,stride:l,normalized:y,length:g}=r;if(f instanceof e?(h=h??f.type,c=c??f.size,d=d??f.offset,l=l??f.stride,y=y??f.normalized,g=g??f.length):(c=c??1,d=d??0,y=y??!1,g=u?1:g),!h)throw new Error("GPUDataEvaluator: type not defined");if(this._id=n,this.type=h,this.size=c,this.ValueType=t.getTypedArrayFromDataType(this.type),this._offset=d,this._stride=l||this.ValueType.BYTES_PER_ELEMENT*c,this.normalized=y,this.source=f,this.format=a,void 0===g)if(u)g=1;else{if(!i)throw new Error("GPUDataEvaluator: length not defined");g=Math.ceil(i.byteLength/this.stride)}this.isConstant=u,this.length=g;const p=this.ValueType.BYTES_PER_ELEMENT*this.size;this._byteLength=0===g?0:(g-1)*this.stride+p,this._value=i,this._bufferOwnership=f instanceof e||s||o?"borrowed":"owned",o?this._gpuVector=new ie({type:"data",name:this._id??"data",format:o.format,data:[o],stride:o.stride,byteStride:o.byteStride,rowByteLength:o.rowByteLength}):s&&(this._gpuVector=this.createGPUVectorView({buffer:s,name:this._id,format:this.format}))}get value(){return this._value||(this.source instanceof e?this.source.value:void 0)}get evaluated(){return Boolean(this._gpuVector)}get id(){return this._id}get gpuVector(){if(!this._gpuVector)throw new Error(`${this} not evaluated`);return this._gpuVector}get buffer(){return he(this.gpuVector)}setTargetBuffer({buffer:t,byteOffset:r=0,byteStride:n=this.stride}){if(this._destroyed)throw new Error(`GPUDataEvaluator ${this} already destroyed`);if(this._gpuVector)throw new Error(`GPUDataEvaluator ${this} already evaluated`);if(!this.source||this.source instanceof e)throw new Error("GPUDataEvaluator target buffers require a deferred operation source");this._targetBuffer={buffer:t,byteOffset:r,byteStride:n}}async evaluate(t,r={}){if(this._destroyed)throw new Error(`GPUDataEvaluator ${this} already destroyed`);if(this._gpuVector)return this._gpuVector;let n;if(this.source instanceof e){const e=await this.source.evaluate(t);return this._gpuVector=this.createGPUVectorView({...r,buffer:he(e)}),this._gpuVector}if(n=this._getEvaluationBuffer(t),this._value)n.write(this._value);else{const e=await this.source.execute(t,n);if(!e.success)throw e.error||new Error(`${this.source} evaluation failed`);e.value&&(this._value=e.value)}return this._gpuVector=this.createGPUVectorView({...r,buffer:n}),this._gpuVector}evaluateSync(t,r={}){if(this._destroyed)throw new Error(`GPUDataEvaluator ${this} already destroyed`);if(this._gpuVector)return this._gpuVector;let n;if(this.source instanceof e){const e=this.source.evaluateSync(t);return this._gpuVector=this.createGPUVectorView({...r,buffer:he(e)}),this._gpuVector}if(n=this._getEvaluationBuffer(t),this._value)n.write(this._value);else{const e=this.source.executeSync(t,n);if(!e.success)throw e.error||new Error(`${this.source} evaluation failed`);e.value&&(this._value=e.value)}return this._gpuVector=this.createGPUVectorView({...r,buffer:n}),this._gpuVector}createGPUVectorView(e){const t=e.name??this._id??"vector",r=e.format??this.format??function(e,t,r=!1){return t>=1&&t<=4?de(e,t,r):void 0}(this.type,this.size,this.normalized);if(e.interleaved){const r="object"==typeof e.interleaved&&e.interleaved.attributes?e.interleaved.attributes:function(e){const t=[];return ce(e,t,{byteOffset:0}),t}(this);return new ie({type:"interleaved",name:t,buffer:e.buffer,format:e.format??this.format,length:this.length,byteOffset:this.offset,byteStride:this.stride,attributes:r,ownsBuffer:!1})}return new ie({type:"buffer",name:t,buffer:e.buffer,format:r,length:this.length,stride:this.size,byteOffset:this.offset,byteStride:this.stride,rowByteLength:this.ValueType.BYTES_PER_ELEMENT*this.size,ownsBuffer:!1})}_getEvaluationBuffer(e){const t=this._targetBuffer;if(!t)return oe.createOrReuse(e,this.byteLength);if(t.buffer.device!==e)throw new Error("GPUDataEvaluator target buffer belongs to a different device");const r=this.ValueType.BYTES_PER_ELEMENT*this.size,n=0===this.length?0:(this.length-1)*t.byteStride+r;if(t.byteOffset+n>t.buffer.byteLength)throw new Error("GPUDataEvaluator target buffer is too small for the output layout");return this._offset=t.byteOffset,this._stride=t.byteStride,this._byteLength=n,this._bufferOwnership="borrowed",this._targetBuffer=void 0,t.buffer}async readValue(e=0,t){const{ValueType:r}=this,{size:n,offset:i,stride:s,length:o}=this,a=r.BYTES_PER_ELEMENT*n;if(t=t??o,e=Math.max(0,Math.min(o,e)),t=Math.max(e,Math.min(o,t)),this._value)return function(e,t,r,n){const{ValueType:i,size:s,offset:o,stride:a}=e,f=a/i.BYTES_PER_ELEMENT,u=o/i.BYTES_PER_ELEMENT,h=n-r;if(f===s){const e=u+r*f;return t.subarray(e,e+h*s)}const c=new i(h*s);for(let d=0;d<h;d++){const e=u+(r+d)*f;c.set(t.subarray(e,e+s),d*s)}return c}(this,this._value,e,t);const f=t-e;if(0===f)return new r(0);const u=i+e*s,h=s===a?f*a:(f-1)*s+a,c=await this.buffer.readAsync(u,h),d=new r(c.buffer,c.byteOffset,c.byteLength/r.BYTES_PER_ELEMENT);if(s===a)return d;const l=new Uint8Array(a*f);for(let y=0;y<f;y++){const e=y*s;l.set(c.subarray(e,e+a),y*a)}return new r(l.buffer)}async ensureCPUValue(){const e=this.value;if(e)return e;const t=await this.buffer.readAsync(0,this.offset+this.byteLength);if(t.byteLength%this.ValueType.BYTES_PER_ELEMENT!==0)throw new Error(`${this} backing buffer byte length is not aligned to its scalar type`);const r=t.slice();return this._value=new this.ValueType(r.buffer,r.byteOffset,r.byteLength/this.ValueType.BYTES_PER_ELEMENT),this._value}ensureCPUValueSync(){const e=this.value;if(e)return e;throw new Error(`${this} CPU value is not available for synchronous evaluation`)}toString(){return this._id??this.source?.toString()??this.constructor.name}destroy(){this._gpuVector&&("owned"===this._bufferOwnership&&oe.recycle(he(this._gpuVector)),this._gpuVector=void 0),this._targetBuffer=void 0,this._destroyed=!0}};function fe(e){if(e instanceof ae)return e;if("number"==typeof e||Array.isArray(e))return ae.fromConstant(e);if(e instanceof ne)return ae.fromGPUData(e);if(e instanceof J)return ae.fromGPUDataView(e);throw new Error("getGPUDataEvaluator() requires GPUDataEvaluator, GPUData, GPUDataView, number, or number[]")}function ue(e){const r=q(e.format),n=t.getTypedArrayFromDataType(r.signedDataType),i=n.BYTES_PER_ELEMENT*r.components;if(r.byteLength!==i)throw new Error(`GPUDataEvaluator does not support packed vertex format ${e.format}: ${r.byteLength} physical bytes cannot expose ${r.components} ${r.signedDataType} components`);if(e.byteOffset%n.BYTES_PER_ELEMENT!==0||e.byteStride%n.BYTES_PER_ELEMENT!==0)throw new Error(`GPUDataEvaluator requires ${e.format} offset and stride aligned to ${n.BYTES_PER_ELEMENT} bytes`);return{type:r.signedDataType,size:r.components,offset:e.byteOffset,stride:e.byteStride,normalized:r.normalized,length:e.length,format:e.format}}function he(e){const t=function(e){const[t,...r]=e.data;if(!t||r.length>0)throw new Error(`GPUDataEvaluator requires exactly one GPUData chunk for "${e.name}"`);return t}(e).buffer;return t instanceof M?t.buffer:t}function ce(e,t,r){const n=e.source;if(!n||n instanceof ae||"interleave"!==n.name)t.push({attribute:e.id??e.toString(),format:de(e.type,e.size,e.normalized),byteOffset:r.byteOffset}),r.byteOffset+=e.ValueType.BYTES_PER_ELEMENT*e.size;else for(const i of Object.values(n.inputs))i instanceof ae&&ce(i,t,r)}function de(e,t,r=!1){if(t<1||t>4)throw new Error(`Cannot synthesize a GPUVector vertex format with ${t} components`);let n=e;if(r)switch(e){case"uint8":n="unorm8";break;case"sint8":n="snorm8";break;case"uint16":n="unorm16";break;case"sint16":n="snorm16";break;case"float32":n="float32";break;default:throw new Error(`Unsupported normalized vertex format for ${e}`)}return"uint8"!==n&&"sint8"!==n&&"uint16"!==n&&"sint16"!==n&&"unorm8"!==n&&"snorm8"!==n&&"unorm16"!==n&&"snorm16"!==n||3!==t?`${n}${1===t?"":`x${t}`}`:`${n}x3-webgl`}var le={add:{arity:2,symbol:"arithmetic_add"},subtract:{arity:2,symbol:"arithmetic_subtract"},multiply:{arity:2,symbol:"arithmetic_multiply"},divide:{arity:2,symbol:"arithmetic_divide"},pow:{arity:2,symbol:"pow"},sqrt:{arity:1,symbol:"sqrt"},abs:{arity:1,symbol:"abs"},sin:{arity:1,symbol:"sin"},cos:{arity:1,symbol:"cos"},tan:{arity:1,symbol:"arithmetic_tan"},exp:{arity:1,symbol:"exp"},log:{arity:1,symbol:"log"}};function ye(e,{operations:t,inputs:r}){switch(e.kind){case"input":if(!(e.name in r))throw new Error(`Unknown expression input '${e.name}'`);return;case"literal":if(Array.isArray(e.value)){for(const t of e.value)if(!Number.isFinite(t))throw new Error(`Expression literal array must contain only finite values, got ${t}`)}else if(!Number.isFinite(e.value))throw new Error(`Expression literal must be finite, got ${e.value}`);return;case"call":{const n=t[e.op];if(!n)throw new Error(`Unknown expression op '${e.op}'`);if(e.args.length!==n.arity)throw new Error(`Expression op '${e.op}' expects ${n.arity} args, got ${e.args.length}`);for(const i of e.args)ye(i,{operations:t,inputs:r});return}default:throw new Error(`Unsupported expression node ${e.kind}`)}}function ge(e,t){return ye(e,t),pe(e,t)}function pe(e,t){switch(e.kind){case"input":{const r=t.inputs[e.name];return t.laneIndex<r.size?t.formatInput(e.name):t.formatOutOfBoundsInput(e.name)}case"literal":return t.formatLiteral(e.value);case"call":{const r=t.operations[e.op],n=e.args.map(e=>pe(e,t));return t.formatCall(r.symbol,n)}default:throw new Error(`Unsupported expression node ${e.kind}`)}}Object.defineProperty(exports,"ARITHMETIC_OPERATIONS",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"ComputePipeline",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"DynamicBuffer",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"GPUDataEvaluator",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"GPUVector",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"PipelineFactory",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"ShaderFactory",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"ShaderInputs",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"UniformStore",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"bufferPool",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"compileExpression",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"getDynamicBufferFromBinding",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"getGPUDataEvaluator",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"getShaderModuleUniformBlockLayouts",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"isBufferRangeBinding",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"isNumericArray",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"mergeInferredShaderLayout",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"mergeShaderModuleBindingsIntoLayout",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"mergeShaderModules",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"mergeShaderPluginModules",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"resolveBufferRangeBinding",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"resolveShaderPlugins",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"shaderModuleHasUniforms",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"uid",{enumerable:!0,get:function(){return _}});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! Web-kit v1.2.0-develop.
|
|
2
|
-
!function(){try{var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new t.Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="c7330cb8-7e4b-40fa-88c5-e47ff6e0d146",t._sentryDebugIdIdentifier="sentry-dbid-c7330cb8-7e4b-40fa-88c5-e47ff6e0d146")}catch(t){}}();const t=require("./debug-hooks-C_m1SbH2.cjs");var e=globalThis.loaders?.parseImageNode,r="undefined"!=typeof Image,n="undefined"!=typeof ImageBitmap,i=!!t.isBrowser$1||Boolean(e);function s(t){const e=function(t){return"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?"imagebitmap":"undefined"!=typeof Image&&t instanceof Image?"image":t&&"object"==typeof t&&t.data&&t.width&&t.height?"data":null}(t);if(!e)throw new Error("Not an image");return e}function a(t){switch(s(t)){case"data":return t;case"image":case"imagebitmap":const e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}var o=/^data:image\/svg\+xml/,c=/\.svg((\?|#).*)?$/;function u(t){return t&&(o.test(t)||c.test(t))}function h(t,e){if(u(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function l(t,e,r){const n=function(t,e){if(u(e)){let e=(new TextDecoder).decode(t);try{"function"==typeof unescape&&"function"==typeof encodeURIComponent&&(e=unescape(encodeURIComponent(e)))}catch(r){throw new Error(r.message)}return`data:image/svg+xml;base64,${btoa(e)}`}return h(t,e)}(t,r),i=self.URL||self.webkitURL,s="string"!=typeof n&&i.createObjectURL(n);try{return await async function(t,e){const r=new Image;if(r.src=t,e.image&&e.image.decode&&r.decode)return await r.decode(),r;return await new Promise((t,e)=>{try{r.onload=()=>t(r),r.onerror=t=>{const r=t instanceof Error?t.message:"error";e(new Error(r))}}catch(n){e(n)}})}(s||n,e)}finally{s&&i.revokeObjectURL(s)}}var g=!0;async function f(t,e,r){let n;n=u(r)?await l(t,e,r):h(t,r);const i=e&&e.imagebitmap;return await async function(t,e=null){!function(t){if(!t)return!0;for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}(e)&&g||(e=null);if(e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),g=!1}return await createImageBitmap(t)}(n,i)}function m(t){return function(t,e,r=0){const n=(i=e,[...i].map(t=>t.charCodeAt(0)));var i;for(let s=0;s<n.length;++s)if(n[s]!==t[s+r])return!1;return!0}(t,"ftyp",4)&&96&t[8]?function(t){switch((e=t,r=8,n=12,String.fromCharCode(...e.slice(r,n))).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}var e,r,n}(t):null}var d=!1,p=!0;function y(t){const e=b(t);return function(t){const e=b(t);return e.byteLength>=24&&2303741511===e.getUint32(0,d)?{mimeType:"image/png",width:e.getUint32(16,d),height:e.getUint32(20,d)}:null}(e)||function(t){const e=b(t);if(!(e.byteLength>=3&&65496===e.getUint16(0,d)&&255===e.getUint8(2)))return null;const{tableMarkers:r,sofMarkers:n}=function(){const t=new Set([65499,65476,65484,65501,65534]);for(let e=65504;e<65520;++e)t.add(e);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}();let i=2;for(;i+9<e.byteLength;){const t=e.getUint16(i,d);if(n.has(t))return{mimeType:"image/jpeg",height:e.getUint16(i+5,d),width:e.getUint16(i+7,d)};if(!r.has(t))return null;i+=2,i+=e.getUint16(i,d)}return null}(e)||function(t){const e=b(t);return e.byteLength>=10&&1195984440===e.getUint32(0,d)?{mimeType:"image/gif",width:e.getUint16(6,p),height:e.getUint16(8,p)}:null}(e)||function(t){const e=b(t);return e.byteLength>=14&&16973===e.getUint16(0,d)&&e.getUint32(2,p)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,p),height:e.getUint32(22,p)}:null}(e)||function(t){const e=new Uint8Array(t instanceof DataView?t.buffer:t),r=m(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}(e)}function b(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}var w,M={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:"4.5.4",mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],extensions:["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],parse:async function(e,s,o){const c=((s=s||{}).image||{}).type||"auto",{url:u}=o||{};let h;switch(function(t){switch(t){case"auto":case"data":return function(){if(n)return"imagebitmap";if(r)return"image";if(i)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}();default:return function(t){switch(t){case"auto":return n||r||i;case"imagebitmap":return n;case"image":return r;case"data":return i;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}(t),t}}(c)){case"imagebitmap":h=await f(e,s,u);break;case"image":h=await l(e,s,u);break;case"data":h=await async function(e){const{mimeType:r}=y(e)||{},n=globalThis.loaders?.parseImageNode;return t.assert$3(n),await n(e,r)}(e);break;default:t.assert$3(!1)}return"data"===c&&(h=a(h)),h},tests:[t=>Boolean(y(new DataView(t)))],options:{image:{type:"auto",decode:!0}}},x=class e extends t.Vector{static get ZERO(){return w||(w=new e(0,0,0,0),Object.freeze(w)),w}constructor(e=0,r=0,n=0,i=0){super(-0,-0,-0,-0),t.isArray(e)&&1===arguments.length?this.copy(e):(t.config.debug&&(t.checkNumber(e),t.checkNumber(r),t.checkNumber(n),t.checkNumber(i)),this[0]=e,this[1]=r,this[2]=n,this[3]=i)}set(t,e,r,n){return this[0]=t,this[1]=e,this[2]=r,this[3]=n,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}fromObject(e){return t.config.debug&&(t.checkNumber(e.x),t.checkNumber(e.y),t.checkNumber(e.z),t.checkNumber(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=t.checkNumber(e)}get w(){return this[3]}set w(e){this[3]=t.checkNumber(e)}transform(e){return t.transformMat4$1(this,this,e),this.check()}transformByMatrix3(e){return t.vec4_transformMat3(this,this,e),this.check()}transformByMatrix2(e){return t.vec4_transformMat2(this,this,e),this.check()}transformByQuaternion(e){return t.transformQuat$1(this,this,e),this.check()}applyMatrix4(t){return t.transform(this,this),this}};function k(t,e){if(t===e){const r=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function j(t,e){const r=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],c=e[6],u=e[7],h=e[8],l=h*a-o*u,g=-h*s+o*c,f=u*s-a*c;let m=r*l+n*g+i*f;return m?(m=1/m,t[0]=l*m,t[1]=(-h*n+i*u)*m,t[2]=(o*n-i*a)*m,t[3]=g*m,t[4]=(h*r-i*c)*m,t[5]=(-o*r+i*s)*m,t[6]=f*m,t[7]=(-u*r+n*c)*m,t[8]=(a*r-n*s)*m,t):null}function T(t){const e=t[0],r=t[1],n=t[2],i=t[3],s=t[4],a=t[5],o=t[6],c=t[7],u=t[8];return e*(u*s-a*c)+r*(-u*i+a*o)+n*(c*i-s*o)}function P(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],c=e[5],u=e[6],h=e[7],l=e[8],g=r[0],f=r[1],m=r[2],d=r[3],p=r[4],y=r[5],b=r[6],w=r[7],M=r[8];return t[0]=g*n+f*a+m*u,t[1]=g*i+f*o+m*h,t[2]=g*s+f*c+m*l,t[3]=d*n+p*a+y*u,t[4]=d*i+p*o+y*h,t[5]=d*s+p*c+y*l,t[6]=b*n+w*a+M*u,t[7]=b*i+w*o+M*h,t[8]=b*s+w*c+M*l,t}function A(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],c=e[5],u=e[6],h=e[7],l=e[8],g=r[0],f=r[1];return t[0]=n,t[1]=i,t[2]=s,t[3]=a,t[4]=o,t[5]=c,t[6]=g*n+f*a+u,t[7]=g*i+f*o+h,t[8]=g*s+f*c+l,t}function E(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],c=e[5],u=e[6],h=e[7],l=e[8],g=Math.sin(r),f=Math.cos(r);return t[0]=f*n+g*a,t[1]=f*i+g*o,t[2]=f*s+g*c,t[3]=f*a-g*n,t[4]=f*o-g*i,t[5]=f*c-g*s,t[6]=u,t[7]=h,t[8]=l,t}function I(t,e,r){const n=r[0],i=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function v(t,e){const r=e[0],n=e[1],i=e[2],s=e[3],a=r+r,o=n+n,c=i+i,u=r*a,h=n*a,l=n*o,g=i*a,f=i*o,m=i*c,d=s*a,p=s*o,y=s*c;return t[0]=1-l-m,t[3]=h-y,t[6]=g+p,t[1]=h+y,t[4]=1-u-m,t[7]=f-d,t[2]=g-p,t[5]=f+d,t[8]=1-u-l,t}function D(){const e=new t.ARRAY_TYPE(4);return t.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function U(t,e,r){r*=.5;const n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function L(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=r[0],c=r[1],u=r[2],h=r[3];return t[0]=n*h+a*o+i*u-s*c,t[1]=i*h+a*c+s*o-n*u,t[2]=s*h+a*u+n*c-i*o,t[3]=a*h-n*o-i*c-s*u,t}function R(t,e,r,n){const i=e[0],s=e[1],a=e[2],o=e[3];let c,u,h,l,g,f=r[0],m=r[1],d=r[2],p=r[3];return c=i*f+s*m+a*d+o*p,c<0&&(c=-c,f=-f,m=-m,d=-d,p=-p),1-c>1e-6?(u=Math.acos(c),g=Math.sin(u),h=Math.sin((1-n)*u)/g,l=Math.sin(n*u)/g):(h=1-n,l=n),t[0]=h*i+l*f,t[1]=h*s+l*m,t[2]=h*a+l*d,t[3]=h*o+l*p,t}function O(t,e){const r=e[0]+e[4]+e[8];let n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let r=0;e[4]>e[0]&&(r=1),e[8]>e[3*r+r]&&(r=2);const i=(r+1)%3,s=(r+2)%3;n=Math.sqrt(e[3*r+r]-e[3*i+i]-e[3*s+s]+1),t[r]=.5*n,n=.5/n,t[3]=(e[3*i+s]-e[3*s+i])*n,t[i]=(e[3*i+r]+e[3*r+i])*n,t[s]=(e[3*s+r]+e[3*r+s])*n}return t}var _=t.add,N=t.scale,S=t.dot,q=t.lerp,B=t.length,z=t.squaredLength,V=t.normalize,C=function(){const e=t.create(),r=t.fromValues(1,0,0),n=t.fromValues(0,1,0);return function(i,s,a){const o=t.dot$1(s,a);return o<-.999999?(t.cross(e,r,s),t.len(e)<1e-6&&t.cross(e,n,s),t.normalize$1(e,e),U(i,e,Math.PI),i):o>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(t.cross(e,s,a),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+o,V(i,i))}}(),Z=(function(){const t=D(),e=D()}(),function(){const e=function(){const e=new t.ARRAY_TYPE(9);return t.ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}()}(),[0,0,0,1]),Y=class extends t.MathArray{constructor(t=0,e=0,r=0,n=1){super(-0,-0,-0,-0),Array.isArray(t)&&1===arguments.length?this.copy(t):this.set(t,e,r,n)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,e,r,n){return this[0]=t,this[1]=e,this[2]=r,this[3]=n,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return O(this,t),this.check()}fromAxisRotation(t,e){return U(this,t,e),this.check()}identity(){var t;return(t=this)[0]=0,t[1]=0,t[2]=0,t[3]=1,this.check()}setAxisAngle(t,e){return this.fromAxisRotation(t,e)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=t.checkNumber(e)}get y(){return this[1]}set y(e){this[1]=t.checkNumber(e)}get z(){return this[2]}set z(e){this[2]=t.checkNumber(e)}get w(){return this[3]}set w(e){this[3]=t.checkNumber(e)}len(){return B(this)}lengthSquared(){return z(this)}dot(t){return S(this,t)}rotationTo(t,e){return C(this,t,e),this.check()}add(t){return _(this,this,t),this.check()}calculateW(){return function(t,e){const r=e[0],n=e[1],i=e[2];t[0]=r,t[1]=n,t[2]=i,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-i*i))}(this,this),this.check()}conjugate(){var t,e;return e=this,(t=this)[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],this.check()}invert(){return function(t,e){const r=e[0],n=e[1],i=e[2],s=e[3],a=r*r+n*n+i*i+s*s,o=a?1/a:0;t[0]=-r*o,t[1]=-n*o,t[2]=-i*o,t[3]=s*o}(this,this),this.check()}lerp(t,e,r){return void 0===r?this.lerp(this,t,e):(q(this,t,e,r),this.check())}multiplyRight(t){return L(this,this,t),this.check()}multiplyLeft(t){return L(this,t,this),this.check()}normalize(){const t=this.len(),e=t>0?1/t:0;return this[0]=this[0]*e,this[1]=this[1]*e,this[2]=this[2]*e,this[3]=this[3]*e,0===t&&(this[3]=1),this.check()}rotateX(t){return function(t,e,r){r*=.5;const n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),c=Math.cos(r);t[0]=n*c+a*o,t[1]=i*c+s*o,t[2]=s*c-i*o,t[3]=a*c-n*o}(this,this,t),this.check()}rotateY(t){return function(t,e,r){r*=.5;const n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),c=Math.cos(r);t[0]=n*c-s*o,t[1]=i*c+a*o,t[2]=s*c+n*o,t[3]=a*c-i*o}(this,this,t),this.check()}rotateZ(t){return function(t,e,r){r*=.5;const n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),c=Math.cos(r);t[0]=n*c+i*o,t[1]=i*c-n*o,t[2]=s*c+a*o,t[3]=a*c-s*o}(this,this,t),this.check()}scale(t){return N(this,this,t),this.check()}slerp(t,e,r){let n,i,s;switch(arguments.length){case 1:({start:n=Z,target:i,ratio:s}=t);break;case 2:n=this,i=t,s=e;break;default:n=t,i=e,s=r}return R(this,n,i,s),this.check()}transformVector4(e,r=new x){return t.transformQuat(r,e,this),t.checkVector(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,e){return this.setAxisAngle(t,e)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}},G=Math.PI/180,$=180/Math.PI,F=6370972;function X(){const t=256/F,e=Math.PI/180*256;return{unitsPerMeter:[t,t,t],unitsPerMeter2:[0,0,0],metersPerUnit:[24886.609375,24886.609375,24886.609375],unitsPerDegree:[e,e,t],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,24886.609375]}}var Q=class extends t.Viewport{constructor(e={}){const{longitude:r=0,bearing:n=0,pitch:i=0,zoom:s=0,nearZMultiplier:a=.5,farZMultiplier:o=1,resolution:c=10}=e;let{latitude:u=0,height:h,altitude:l=1.5,fovy:g}=e;u=Math.max(Math.min(u,90),-90),h=h||1,g?l=t.fovyToAltitude(g):g=t.altitudeToFovy(l);const f=Math.max(Math.min(u,t.MAX_LATITUDE),-t.MAX_LATITUDE),m=Math.pow(2,s-H(f)),d=i*G,p=e.nearZ??a,y=e.farZ??(l+512*m/h/Math.max(Math.cos(d),.1))*o,b=(new t.Matrix4).lookAt({eye:[0,-l,0],up:[0,0,1]}).rotateX(-d).rotateY(-n*G).rotateX(u*G).rotateZ(-r*G).scale(m/h);super({...e,height:h,viewMatrix:b,longitude:r,latitude:u,zoom:s,distanceScales:X(),fovy:g,focalDistance:l,near:p,far:y}),this.scale=m,this.latitude=u,this.longitude=r,this.bearing=n,this.pitch=i,this.fovy=g,this.resolution=c}get projectionMode(){return t.PROJECTION_MODE.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(t={}){const e={targetZ:t.z||0},r=this.unproject([0,this.height/2],e),n=this.unproject([this.width/2,0],e),i=this.unproject([this.width,this.height/2],e),s=this.unproject([this.width/2,this.height],e);return i[0]<this.longitude&&(i[0]+=360),r[0]>this.longitude&&(r[0]-=360),[Math.min(r[0],i[0],n[0],s[0]),Math.min(r[1],i[1],n[1],s[1]),Math.max(r[0],i[0],n[0],s[0]),Math.max(r[1],i[1],n[1],s[1])]}_getRayToGlobe(e,{topLeft:r=!0,targetZ:n}={}){const[i,s]=e,a=r?s:this.height-s,{pixelUnprojectionMatrix:o}=this,c=J(o,[i,a,-1,1]),u=J(o,[i,a,1,1]),h=256*((n||0)/F+1),l=t.sqrLen(t.sub([],c,u)),g=t.sqrLen(c),f=t.sqrLen(u);return{rayStartPosition:c,rayEndPosition:u,radius:h,rayLengthSquared:l,rayStartDistanceSquared:g,distanceToCenterSquared:(4*g*f-(l-g-f)**2)/16*4/l}}_getRayDistanceToGlobeCenterRatio(t,e){const{distanceToCenterSquared:r,radius:n}=this._getRayToGlobe(t,e);return Math.sqrt(Math.max(0,r))/n}getZoomAnchorStrength(t){const e=this._getRayDistanceToGlobeCenterRatio(t);return e>1.15?0:1-.65*Math.max(0,Math.min(1,(e-.75)/.25))}unproject(e,{topLeft:r=!0,targetZ:n}={}){const[i,s,a]=e,o=r?s:this.height-s,{pixelUnprojectionMatrix:c}=this;let u;if(Number.isFinite(a))u=J(c,[i,o,a,1]);else{const{rayStartPosition:i,rayEndPosition:s,radius:a,rayLengthSquared:o,rayStartDistanceSquared:c,distanceToCenterSquared:h}=this._getRayToGlobe(e,{topLeft:r,targetZ:n}),l=(Math.sqrt(c-h)-Math.sqrt(Math.max(0,a*a-h)))/Math.sqrt(o);u=t.lerp$1([],i,s,l)}const[h,l,g]=this.unprojectPosition(u);return Number.isFinite(a)?[h,l,g]:Number.isFinite(n)?[h,l,n]:[h,l]}projectPosition(t){const[e,r,n=0]=t,i=e*G,s=r*G,a=Math.cos(s),o=256*(n/F+1);return[Math.sin(i)*a*o,-Math.cos(i)*a*o,Math.sin(s)*o]}unprojectPosition(e){const[r,n,i]=e,s=t.len(e),a=Math.asin(i/s);return[Math.atan2(r,-n)*$,a*$,(s/256-1)*F]}projectFlat(t){return t}unprojectFlat(t){return t}panByPosition(e,r,n){if(!n){const n=this.getZoomAnchorStrength(r);if(0===n)return{longitude:this.longitude,latitude:this.latitude};const i=this.unproject(r),s=t.mod(e[0]-i[0]+180,360)-180;return{longitude:this.longitude+s*n,latitude:Math.max(Math.min(this.latitude+(e[1]-i[1])*n,90),-90)}}const[i,s,a]=e,o=.25/Math.pow(2,this.zoom-H(this.latitude)),c=i+o*(n[0]-r[0]);let u=s-o*(n[1]-r[1]);u=Math.max(Math.min(u,90),-90);const h={longitude:c,latitude:u,zoom:a-H(s)};return h.zoom+=H(h.latitude),h}};function H(e,r){r&&(e=Math.max(Math.min(e,t.MAX_LATITUDE),-t.MAX_LATITUDE));const n=Math.PI*Math.cos(e*Math.PI/180);return Math.log2(n)}function J(e,r){const n=t.transformMat4([],r,e);return t.scale(n,n,1/n[3]),n}Q.displayName="GlobeViewport",Object.defineProperty(exports,"GlobeViewport",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"ImageLoader",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"Quaternion",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"determinant",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"fromQuat",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"getBinaryImageMetadata",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"getImageData",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"invert",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"multiply",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"rotate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"scale",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"translate",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"transpose",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"zoomAdjust",{enumerable:!0,get:function(){return H}});
|
|
1
|
+
/*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
|
|
2
|
+
!function(){try{var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new t.Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="322a0970-2dac-4006-9b13-63785fcd5077",t._sentryDebugIdIdentifier="sentry-dbid-322a0970-2dac-4006-9b13-63785fcd5077")}catch(t){}}();const t=require("./debug-hooks-DDHLlDXD.cjs");var e=globalThis.loaders?.parseImageNode,r="undefined"!=typeof Image,n="undefined"!=typeof ImageBitmap,i=!!t.isBrowser$1||Boolean(e);function s(t){const e=function(t){return"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?"imagebitmap":"undefined"!=typeof Image&&t instanceof Image?"image":t&&"object"==typeof t&&t.data&&t.width&&t.height?"data":null}(t);if(!e)throw new Error("Not an image");return e}function a(t){switch(s(t)){case"data":return t;case"image":case"imagebitmap":const e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}var o=/^data:image\/svg\+xml/,c=/\.svg((\?|#).*)?$/;function u(t){return t&&(o.test(t)||c.test(t))}function h(t,e){if(u(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function l(t,e,r){const n=function(t,e){if(u(e)){let e=(new TextDecoder).decode(t);try{"function"==typeof unescape&&"function"==typeof encodeURIComponent&&(e=unescape(encodeURIComponent(e)))}catch(r){throw new Error(r.message)}return`data:image/svg+xml;base64,${btoa(e)}`}return h(t,e)}(t,r),i=self.URL||self.webkitURL,s="string"!=typeof n&&i.createObjectURL(n);try{return await async function(t,e){const r=new Image;if(r.src=t,e.image&&e.image.decode&&r.decode)return await r.decode(),r;return await new Promise((t,e)=>{try{r.onload=()=>t(r),r.onerror=t=>{const r=t instanceof Error?t.message:"error";e(new Error(r))}}catch(n){e(n)}})}(s||n,e)}finally{s&&i.revokeObjectURL(s)}}var g=!0;async function f(t,e,r){let n;n=u(r)?await l(t,e,r):h(t,r);const i=e&&e.imagebitmap;return await async function(t,e=null){!function(t){if(!t)return!0;for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}(e)&&g||(e=null);if(e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),g=!1}return await createImageBitmap(t)}(n,i)}function m(t){return function(t,e,r=0){const n=(i=e,[...i].map(t=>t.charCodeAt(0)));var i;for(let s=0;s<n.length;++s)if(n[s]!==t[s+r])return!1;return!0}(t,"ftyp",4)&&96&t[8]?function(t){switch((e=t,r=8,n=12,String.fromCharCode(...e.slice(r,n))).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}var e,r,n}(t):null}var d=!1,p=!0;function y(t){const e=b(t);return function(t){const e=b(t);return e.byteLength>=24&&2303741511===e.getUint32(0,d)?{mimeType:"image/png",width:e.getUint32(16,d),height:e.getUint32(20,d)}:null}(e)||function(t){const e=b(t);if(!(e.byteLength>=3&&65496===e.getUint16(0,d)&&255===e.getUint8(2)))return null;const{tableMarkers:r,sofMarkers:n}=function(){const t=new Set([65499,65476,65484,65501,65534]);for(let e=65504;e<65520;++e)t.add(e);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}();let i=2;for(;i+9<e.byteLength;){const t=e.getUint16(i,d);if(n.has(t))return{mimeType:"image/jpeg",height:e.getUint16(i+5,d),width:e.getUint16(i+7,d)};if(!r.has(t))return null;i+=2,i+=e.getUint16(i,d)}return null}(e)||function(t){const e=b(t);return e.byteLength>=10&&1195984440===e.getUint32(0,d)?{mimeType:"image/gif",width:e.getUint16(6,p),height:e.getUint16(8,p)}:null}(e)||function(t){const e=b(t);return e.byteLength>=14&&16973===e.getUint16(0,d)&&e.getUint32(2,p)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,p),height:e.getUint32(22,p)}:null}(e)||function(t){const e=new Uint8Array(t instanceof DataView?t.buffer:t),r=m(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}(e)}function b(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}var w,M={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:"4.5.4",mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],extensions:["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],parse:async function(e,s,o){const c=((s=s||{}).image||{}).type||"auto",{url:u}=o||{};let h;switch(function(t){switch(t){case"auto":case"data":return function(){if(n)return"imagebitmap";if(r)return"image";if(i)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}();default:return function(t){switch(t){case"auto":return n||r||i;case"imagebitmap":return n;case"image":return r;case"data":return i;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}(t),t}}(c)){case"imagebitmap":h=await f(e,s,u);break;case"image":h=await l(e,s,u);break;case"data":h=await async function(e){const{mimeType:r}=y(e)||{},n=globalThis.loaders?.parseImageNode;return t.assert$3(n),await n(e,r)}(e);break;default:t.assert$3(!1)}return"data"===c&&(h=a(h)),h},tests:[t=>Boolean(y(new DataView(t)))],options:{image:{type:"auto",decode:!0}}},x=class e extends t.Vector{static get ZERO(){return w||(w=new e(0,0,0,0),Object.freeze(w)),w}constructor(e=0,r=0,n=0,i=0){super(-0,-0,-0,-0),t.isArray(e)&&1===arguments.length?this.copy(e):(t.config.debug&&(t.checkNumber(e),t.checkNumber(r),t.checkNumber(n),t.checkNumber(i)),this[0]=e,this[1]=r,this[2]=n,this[3]=i)}set(t,e,r,n){return this[0]=t,this[1]=e,this[2]=r,this[3]=n,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}fromObject(e){return t.config.debug&&(t.checkNumber(e.x),t.checkNumber(e.y),t.checkNumber(e.z),t.checkNumber(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=t.checkNumber(e)}get w(){return this[3]}set w(e){this[3]=t.checkNumber(e)}transform(e){return t.transformMat4$1(this,this,e),this.check()}transformByMatrix3(e){return t.vec4_transformMat3(this,this,e),this.check()}transformByMatrix2(e){return t.vec4_transformMat2(this,this,e),this.check()}transformByQuaternion(e){return t.transformQuat$1(this,this,e),this.check()}applyMatrix4(t){return t.transform(this,this),this}};function k(t,e){if(t===e){const r=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function j(t,e){const r=e[0],n=e[1],i=e[2],s=e[3],a=e[4],o=e[5],c=e[6],u=e[7],h=e[8],l=h*a-o*u,g=-h*s+o*c,f=u*s-a*c;let m=r*l+n*g+i*f;return m?(m=1/m,t[0]=l*m,t[1]=(-h*n+i*u)*m,t[2]=(o*n-i*a)*m,t[3]=g*m,t[4]=(h*r-i*c)*m,t[5]=(-o*r+i*s)*m,t[6]=f*m,t[7]=(-u*r+n*c)*m,t[8]=(a*r-n*s)*m,t):null}function T(t){const e=t[0],r=t[1],n=t[2],i=t[3],s=t[4],a=t[5],o=t[6],c=t[7],u=t[8];return e*(u*s-a*c)+r*(-u*i+a*o)+n*(c*i-s*o)}function P(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],c=e[5],u=e[6],h=e[7],l=e[8],g=r[0],f=r[1],m=r[2],d=r[3],p=r[4],y=r[5],b=r[6],w=r[7],M=r[8];return t[0]=g*n+f*a+m*u,t[1]=g*i+f*o+m*h,t[2]=g*s+f*c+m*l,t[3]=d*n+p*a+y*u,t[4]=d*i+p*o+y*h,t[5]=d*s+p*c+y*l,t[6]=b*n+w*a+M*u,t[7]=b*i+w*o+M*h,t[8]=b*s+w*c+M*l,t}function A(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],c=e[5],u=e[6],h=e[7],l=e[8],g=r[0],f=r[1];return t[0]=n,t[1]=i,t[2]=s,t[3]=a,t[4]=o,t[5]=c,t[6]=g*n+f*a+u,t[7]=g*i+f*o+h,t[8]=g*s+f*c+l,t}function E(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=e[4],c=e[5],u=e[6],h=e[7],l=e[8],g=Math.sin(r),f=Math.cos(r);return t[0]=f*n+g*a,t[1]=f*i+g*o,t[2]=f*s+g*c,t[3]=f*a-g*n,t[4]=f*o-g*i,t[5]=f*c-g*s,t[6]=u,t[7]=h,t[8]=l,t}function I(t,e,r){const n=r[0],i=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function v(t,e){const r=e[0],n=e[1],i=e[2],s=e[3],a=r+r,o=n+n,c=i+i,u=r*a,h=n*a,l=n*o,g=i*a,f=i*o,m=i*c,d=s*a,p=s*o,y=s*c;return t[0]=1-l-m,t[3]=h-y,t[6]=g+p,t[1]=h+y,t[4]=1-u-m,t[7]=f-d,t[2]=g-p,t[5]=f+d,t[8]=1-u-l,t}function D(){const e=new t.ARRAY_TYPE(4);return t.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function U(t,e,r){r*=.5;const n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function L(t,e,r){const n=e[0],i=e[1],s=e[2],a=e[3],o=r[0],c=r[1],u=r[2],h=r[3];return t[0]=n*h+a*o+i*u-s*c,t[1]=i*h+a*c+s*o-n*u,t[2]=s*h+a*u+n*c-i*o,t[3]=a*h-n*o-i*c-s*u,t}function R(t,e,r,n){const i=e[0],s=e[1],a=e[2],o=e[3];let c,u,h,l,g,f=r[0],m=r[1],d=r[2],p=r[3];return c=i*f+s*m+a*d+o*p,c<0&&(c=-c,f=-f,m=-m,d=-d,p=-p),1-c>1e-6?(u=Math.acos(c),g=Math.sin(u),h=Math.sin((1-n)*u)/g,l=Math.sin(n*u)/g):(h=1-n,l=n),t[0]=h*i+l*f,t[1]=h*s+l*m,t[2]=h*a+l*d,t[3]=h*o+l*p,t}function O(t,e){const r=e[0]+e[4]+e[8];let n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let r=0;e[4]>e[0]&&(r=1),e[8]>e[3*r+r]&&(r=2);const i=(r+1)%3,s=(r+2)%3;n=Math.sqrt(e[3*r+r]-e[3*i+i]-e[3*s+s]+1),t[r]=.5*n,n=.5/n,t[3]=(e[3*i+s]-e[3*s+i])*n,t[i]=(e[3*i+r]+e[3*r+i])*n,t[s]=(e[3*s+r]+e[3*r+s])*n}return t}var _=t.add,N=t.scale,S=t.dot,q=t.lerp,B=t.length,z=t.squaredLength,V=t.normalize,C=function(){const e=t.create(),r=t.fromValues(1,0,0),n=t.fromValues(0,1,0);return function(i,s,a){const o=t.dot$1(s,a);return o<-.999999?(t.cross(e,r,s),t.len(e)<1e-6&&t.cross(e,n,s),t.normalize$1(e,e),U(i,e,Math.PI),i):o>.999999?(i[0]=0,i[1]=0,i[2]=0,i[3]=1,i):(t.cross(e,s,a),i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=1+o,V(i,i))}}(),Z=(function(){const t=D(),e=D()}(),function(){const e=function(){const e=new t.ARRAY_TYPE(9);return t.ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}()}(),[0,0,0,1]),Y=class extends t.MathArray{constructor(t=0,e=0,r=0,n=1){super(-0,-0,-0,-0),Array.isArray(t)&&1===arguments.length?this.copy(t):this.set(t,e,r,n)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,e,r,n){return this[0]=t,this[1]=e,this[2]=r,this[3]=n,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return O(this,t),this.check()}fromAxisRotation(t,e){return U(this,t,e),this.check()}identity(){var t;return(t=this)[0]=0,t[1]=0,t[2]=0,t[3]=1,this.check()}setAxisAngle(t,e){return this.fromAxisRotation(t,e)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=t.checkNumber(e)}get y(){return this[1]}set y(e){this[1]=t.checkNumber(e)}get z(){return this[2]}set z(e){this[2]=t.checkNumber(e)}get w(){return this[3]}set w(e){this[3]=t.checkNumber(e)}len(){return B(this)}lengthSquared(){return z(this)}dot(t){return S(this,t)}rotationTo(t,e){return C(this,t,e),this.check()}add(t){return _(this,this,t),this.check()}calculateW(){return function(t,e){const r=e[0],n=e[1],i=e[2];t[0]=r,t[1]=n,t[2]=i,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-i*i))}(this,this),this.check()}conjugate(){var t,e;return e=this,(t=this)[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],this.check()}invert(){return function(t,e){const r=e[0],n=e[1],i=e[2],s=e[3],a=r*r+n*n+i*i+s*s,o=a?1/a:0;t[0]=-r*o,t[1]=-n*o,t[2]=-i*o,t[3]=s*o}(this,this),this.check()}lerp(t,e,r){return void 0===r?this.lerp(this,t,e):(q(this,t,e,r),this.check())}multiplyRight(t){return L(this,this,t),this.check()}multiplyLeft(t){return L(this,t,this),this.check()}normalize(){const t=this.len(),e=t>0?1/t:0;return this[0]=this[0]*e,this[1]=this[1]*e,this[2]=this[2]*e,this[3]=this[3]*e,0===t&&(this[3]=1),this.check()}rotateX(t){return function(t,e,r){r*=.5;const n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),c=Math.cos(r);t[0]=n*c+a*o,t[1]=i*c+s*o,t[2]=s*c-i*o,t[3]=a*c-n*o}(this,this,t),this.check()}rotateY(t){return function(t,e,r){r*=.5;const n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),c=Math.cos(r);t[0]=n*c-s*o,t[1]=i*c+a*o,t[2]=s*c+n*o,t[3]=a*c-i*o}(this,this,t),this.check()}rotateZ(t){return function(t,e,r){r*=.5;const n=e[0],i=e[1],s=e[2],a=e[3],o=Math.sin(r),c=Math.cos(r);t[0]=n*c+i*o,t[1]=i*c-n*o,t[2]=s*c+a*o,t[3]=a*c-s*o}(this,this,t),this.check()}scale(t){return N(this,this,t),this.check()}slerp(t,e,r){let n,i,s;switch(arguments.length){case 1:({start:n=Z,target:i,ratio:s}=t);break;case 2:n=this,i=t,s=e;break;default:n=t,i=e,s=r}return R(this,n,i,s),this.check()}transformVector4(e,r=new x){return t.transformQuat(r,e,this),t.checkVector(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,e){return this.setAxisAngle(t,e)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}},G=Math.PI/180,$=180/Math.PI,F=6370972;function X(){const t=256/F,e=Math.PI/180*256;return{unitsPerMeter:[t,t,t],unitsPerMeter2:[0,0,0],metersPerUnit:[24886.609375,24886.609375,24886.609375],unitsPerDegree:[e,e,t],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,24886.609375]}}var Q=class extends t.Viewport{constructor(e={}){const{longitude:r=0,bearing:n=0,pitch:i=0,zoom:s=0,nearZMultiplier:a=.5,farZMultiplier:o=1,resolution:c=10}=e;let{latitude:u=0,height:h,altitude:l=1.5,fovy:g}=e;u=Math.max(Math.min(u,90),-90),h=h||1,g?l=t.fovyToAltitude(g):g=t.altitudeToFovy(l);const f=Math.max(Math.min(u,t.MAX_LATITUDE),-t.MAX_LATITUDE),m=Math.pow(2,s-H(f)),d=i*G,p=e.nearZ??a,y=e.farZ??(l+512*m/h/Math.max(Math.cos(d),.1))*o,b=(new t.Matrix4).lookAt({eye:[0,-l,0],up:[0,0,1]}).rotateX(-d).rotateY(-n*G).rotateX(u*G).rotateZ(-r*G).scale(m/h);super({...e,height:h,viewMatrix:b,longitude:r,latitude:u,zoom:s,distanceScales:X(),fovy:g,focalDistance:l,near:p,far:y}),this.scale=m,this.latitude=u,this.longitude=r,this.bearing=n,this.pitch=i,this.fovy=g,this.resolution=c}get projectionMode(){return t.PROJECTION_MODE.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(t={}){const e={targetZ:t.z||0},r=this.unproject([0,this.height/2],e),n=this.unproject([this.width/2,0],e),i=this.unproject([this.width,this.height/2],e),s=this.unproject([this.width/2,this.height],e);return i[0]<this.longitude&&(i[0]+=360),r[0]>this.longitude&&(r[0]-=360),[Math.min(r[0],i[0],n[0],s[0]),Math.min(r[1],i[1],n[1],s[1]),Math.max(r[0],i[0],n[0],s[0]),Math.max(r[1],i[1],n[1],s[1])]}_getRayToGlobe(e,{topLeft:r=!0,targetZ:n}={}){const[i,s]=e,a=r?s:this.height-s,{pixelUnprojectionMatrix:o}=this,c=J(o,[i,a,-1,1]),u=J(o,[i,a,1,1]),h=256*((n||0)/F+1),l=t.sqrLen(t.sub([],c,u)),g=t.sqrLen(c),f=t.sqrLen(u);return{rayStartPosition:c,rayEndPosition:u,radius:h,rayLengthSquared:l,rayStartDistanceSquared:g,distanceToCenterSquared:(4*g*f-(l-g-f)**2)/16*4/l}}_getRayDistanceToGlobeCenterRatio(t,e){const{distanceToCenterSquared:r,radius:n}=this._getRayToGlobe(t,e);return Math.sqrt(Math.max(0,r))/n}getZoomAnchorStrength(t){const e=this._getRayDistanceToGlobeCenterRatio(t);return e>1.15?0:1-.65*Math.max(0,Math.min(1,(e-.75)/.25))}unproject(e,{topLeft:r=!0,targetZ:n}={}){const[i,s,a]=e,o=r?s:this.height-s,{pixelUnprojectionMatrix:c}=this;let u;if(Number.isFinite(a))u=J(c,[i,o,a,1]);else{const{rayStartPosition:i,rayEndPosition:s,radius:a,rayLengthSquared:o,rayStartDistanceSquared:c,distanceToCenterSquared:h}=this._getRayToGlobe(e,{topLeft:r,targetZ:n}),l=(Math.sqrt(c-h)-Math.sqrt(Math.max(0,a*a-h)))/Math.sqrt(o);u=t.lerp$1([],i,s,l)}const[h,l,g]=this.unprojectPosition(u);return Number.isFinite(a)?[h,l,g]:Number.isFinite(n)?[h,l,n]:[h,l]}projectPosition(t){const[e,r,n=0]=t,i=e*G,s=r*G,a=Math.cos(s),o=256*(n/F+1);return[Math.sin(i)*a*o,-Math.cos(i)*a*o,Math.sin(s)*o]}unprojectPosition(e){const[r,n,i]=e,s=t.len(e),a=Math.asin(i/s);return[Math.atan2(r,-n)*$,a*$,(s/256-1)*F]}projectFlat(t){return t}unprojectFlat(t){return t}panByPosition(e,r,n){if(!n){const n=this.getZoomAnchorStrength(r);if(0===n)return{longitude:this.longitude,latitude:this.latitude};const i=this.unproject(r),s=t.mod(e[0]-i[0]+180,360)-180;return{longitude:this.longitude+s*n,latitude:Math.max(Math.min(this.latitude+(e[1]-i[1])*n,90),-90)}}const[i,s,a]=e,o=.25/Math.pow(2,this.zoom-H(this.latitude)),c=i+o*(n[0]-r[0]);let u=s-o*(n[1]-r[1]);u=Math.max(Math.min(u,90),-90);const h={longitude:c,latitude:u,zoom:a-H(s)};return h.zoom+=H(h.latitude),h}};function H(e,r){r&&(e=Math.max(Math.min(e,t.MAX_LATITUDE),-t.MAX_LATITUDE));const n=Math.PI*Math.cos(e*Math.PI/180);return Math.log2(n)}function J(e,r){const n=t.transformMat4([],r,e);return t.scale(n,n,1/n[3]),n}Q.displayName="GlobeViewport",Object.defineProperty(exports,"GlobeViewport",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"ImageLoader",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"Quaternion",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"determinant",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"fromQuat",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"getBinaryImageMetadata",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"getImageData",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"invert",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"multiply",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"rotate",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"scale",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"translate",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"transpose",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"zoomAdjust",{enumerable:!0,get:function(){return H}});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! Web-kit v1.2.0-develop.
|
|
2
|
-
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="
|
|
1
|
+
/*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
|
|
2
|
+
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="28a89839-9b83-4508-a788-8f354d46ea11",e._sentryDebugIdIdentifier="sentry-dbid-28a89839-9b83-4508-a788-8f354d46ea11")}catch(e){}}();exports.default="data:image/svg+xml,%3csvg%20width='22'%20height='22'%20viewBox='0%200%2022%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='11'%20cy='11'%20r='11'%20fill='%23E7F1F7'/%3e%3ccircle%20cx='11.0002'%20cy='10.9999'%20r='6.61538'%20fill='%23396FE5'%20stroke='white'%20stroke-width='2'/%3e%3c/svg%3e";
|
package/dist/cjs/chunks/{meshopt_decoder.module-Dk924uu3.cjs → meshopt_decoder.module-Xc0iTpWr.cjs}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! Web-kit v1.2.0-develop.
|
|
2
|
-
!function(){try{var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},b=(new a.Error).stack;b&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[b]="5b731208-d8d2-43fd-9748-ec936bb6fdf2",a._sentryDebugIdIdentifier="sentry-dbid-5b731208-d8d2-43fd-9748-ec936bb6fdf2")}catch(a){}}();var a=function(){var a=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]),b=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 c,e=WebAssembly.validate(a)?d("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:W9Dklbzik94evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaeai86b:q:W:cjbaecitab8Piw83i:q:G:cjbaecefgecjd9hmbkk:JBl8Aud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaialfgxar9RhodnadTgmmbavaoad;8qbbkaicefhPcj;abad9Uc;WFbGcjdadca0EhsdndndnadTmbaoadfhzcbhHinaeaH9nmdaxaP9RaD6miabaHad2fhOaPaDfhAasaeaH9RaHasfae6EgCcsfgocl4cifcd4hXavcj;cbfaoc9WGgQcetfhLavcj;cbfaQci2fhKavcj;cbfaQfhYcbh8Aaoc;ab6hEincbh3dnawTmbaPa8Acd4fRbbh3kcbh5avcj;cbfh8Eindndndndna3a5cet4ciGgoc9:fPdebdkaxaA9RaQ6mwdnaQTmbavcj;cbfa5aQ2faAaQ;8qbbkaAaCfhAxdkaQTmeavcj;cbfa5aQ2fcbaQ;8kbxekaxaA9RaX6moaoclVcbawEhraAaXfhocbhidnaEmbaxao9Rc;Gb6mbcbhlina8EalfhidndndndndndnaAalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaoclffagRb:q:W:cjbfhoxikaiaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaocwffagRb:q:W:cjbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbahaocdffagRb:q:W:cjbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaoclffagRb:q:W:cjbfhoxikaiczfaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaocwffagRb:q:W:cjbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbahaocdffagRb:q:W:cjbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaoclffagRb:q:W:cjbfhoxikaicafaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaocwffagRb:q:W:cjbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbahaocdffagRb:q:W:cjbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbaiaoclffaqRb:q:W:cjbfhoxikaic8Wfaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbaiaocwffaqRb:q:W:cjbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitpbi:q:G:cjbaiRb:q:W:cjbgipsaoRbegqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqRb:q:W:cjbfhokalc;abfhialcjefaQ0meaihlaxao9Rc;Fb0mbkkdnaiaQ9pmbaici4hlinaxao9RcK6mwa8EaifhqdndndndndndnaAaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spkbbahaoclffagRb:q:W:cjbfhoxikaqaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spkbbahaocwffagRb:q:W:cjbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpkbbahaocdffagRb:q:W:cjbfhokalcdfhlaiczfgiaQ6mbkkaohAaoTmoka8EaQfh8Ea5cefg5cl9hmbkdndndndnawTmbaza8Acd4fRbbglciGPlbedwbkaQTmdavcjdfa8Afhlava8Afpbdbh8Jcbhoinalavcj;cbfaofpblbg8KaYaofpblbg8LpmbzeHdOiAlCvXoQrLg8MaLaofpblbg8NaKaofpblbgypmbzeHdOiAlCvXoQrLg8PpmbezHdiOAlvCXorQLg8Fcep9Ta8Fpxeeeeeeeeeeeeeeeegap9op9Hp9rg8Fa8Jp9Ug8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9Abbbaladfgla8Ja8Ma8PpmwDKYqk8AExm35Ps8E8Fg8Fcep9Ta8Faap9op9Hp9rg8Fp9Ug8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9Abbbaladfgla8Ja8Ka8LpmwKDYq8AkEx3m5P8Es8Fg8Ka8NaypmwKDYq8AkEx3m5P8Es8Fg8LpmbezHdiOAlvCXorQLg8Fcep9Ta8Faap9op9Hp9rg8Fp9Ug8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9Abbbaladfgla8Ja8Ka8LpmwDKYqk8AExm35Ps8E8Fg8Fcep9Ta8Faap9op9Hp9rg8Fp9Ugap9Abbbaladfglaaa8Fa8Fpmlvorlvorlvorlvorp9Ugap9Abbbaladfglaaa8Fa8FpmwDqkwDqkwDqkwDqkp9Ugap9Abbbaladfglaaa8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9AbbbaladfhlaoczfgoaQ6mbxikkaQTmeavcjdfa8Afhlava8Afpbdbh8Jcbhoinalavcj;cbfaofpblbg8KaYaofpblbg8LpmbzeHdOiAlCvXoQrLg8MaLaofpblbg8NaKaofpblbgypmbzeHdOiAlCvXoQrLg8PpmbezHdiOAlvCXorQLg8Fcep:nea8Fpxebebebebebebebebgap9op:bep9rg8Fa8Jp:oeg8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9Abbbaladfgla8Ja8Ma8PpmwDKYqk8AExm35Ps8E8Fg8Fcep:nea8Faap9op:bep9rg8Fp:oeg8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9Abbbaladfgla8Ja8Ka8LpmwKDYq8AkEx3m5P8Es8Fg8Ka8NaypmwKDYq8AkEx3m5P8Es8Fg8LpmbezHdiOAlvCXorQLg8Fcep:nea8Faap9op:bep9rg8Fp:oeg8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9Abbbaladfgla8Ja8Ka8LpmwDKYqk8AExm35Ps8E8Fg8Fcep:nea8Faap9op:bep9rg8Fp:oegap9Abbbaladfglaaa8Fa8Fpmlvorlvorlvorlvorp:oegap9Abbbaladfglaaa8Fa8FpmwDqkwDqkwDqkwDqkp:oegap9Abbbaladfglaaa8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9AbbbaladfhlaoczfgoaQ6mbxdkkaQTmbcbhocbalcl4gl9Rc8FGhiavcjdfa8Afhrava8Afpbdbhainaravcj;cbfaofpblbg8JaYaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaLaofpblbg8MaKaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Faip:Rea8Falp:Tep9qg8Faap9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9Abbbaradfgraaa8LaypmwDKYqk8AExm35Ps8E8Fg8Faip:Rea8Falp:Tep9qg8Fp9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9Abbbaradfgraaa8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Faip:Rea8Falp:Tep9qg8Fp9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9Abbbaradfgraaa8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Faip:Rea8Falp:Tep9qg8Fp9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9AbbbaradfhraoczfgoaQ6mbkka8Aclfg8Aad6mbkdnaCad2goTmbaOavcjdfao;8qbbkdnammbavavcjdfaCcufad2fad;8qbbkaCaHfhHc9:hoaAhPaAmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdasaeao9Raoasfae6Eaofgoae6mbkaial9RhPkcbc99axaP9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbkNsezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk;Toio97eue97aec98Ghedndnadcl9hmbaeTmecbhdinababpbbbgicKp:RecKp:Sep;6eglaicwp:RecKp:Sep;6ealp;Geaiczp:RecKp:Sep;6egvp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgwp9op9rp;Keglpxbb;:9cbb;:9cbb;:9cbb;:9calalp;Meaoaop;Meavaravawp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFbbbFbbbFbbbFbbbp9oaipxbbbFbbbFbbbFbbbFp9op9qalavp;Mearp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaoavp;Mearp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgDaDpbbbgipxbbbbbbFFbbbbbbFFgwp9oabpbbbgoaipmbediwDqkzHOAKY8AEgvczp:Reczp:Sep;6eglaoaipmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eavczp:Sep;6egvp;Gealp;Gep;Kep;Legipxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgqp9op9rp;Keglpxb;:FSb;:FSb;:FSb;:FSalalp;Meaiaip;Meavaravaqp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbp9oaiavp;Mearp;Keczp:Rep9qgialavp;Mearp;KepxFFbbFFbbFFbbFFbbp9oglpmwDKYqk8AExm35Ps8E8Fp9qpkbbabaoawp9oaialpmbezHdiOAlvCXorQLp9qpkbbabcafhbadclfgdae6mbkkk;2ileue97euo97dnaec98GgiTmbcbheinabcKfpx:ji:1S:ji:1S:ji:1S:ji:1SabpbbbglabczfgvpbbbgopmlvorxmPsCXQL358E8Fgrczp:Segwpxibbbibbbibbbibbbp9qp;6egDp;NegqaDaDp;MegDaDp;KealaopmbediwDqkzHOAKY8AEgDczp:Reczp:Sep;6eglalp;MeaDczp:Sep;6egoaop;Mearczp:Reczp:Sep;6egrarp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gDp;KepxFFbbFFbbFFbbFFbbgkp9oaqaop;MeaDp;Keczp:Rep9qgoaqalp;MeaDp;Keakp9oaqarp;MeaDp;Keczp:Rep9qgDpmwDKYqk8AExm35Ps8E8Fglp5eawclp:RegqpEi:T:j83ibavalp5baqpEd:T:j83ibabcwfaoaDpmbezHdiOAlvCXorQLgDp5eaqpEe:T:j83ibabaDp5baqpEb:T:j83ibabcafhbaeclfgeai6mbkkkuee97dnadcd4ae2c98GgeTmbcbhdinababpbbbgicwp:Recwp:Sep;6eaicep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbabczfhbadclfgdae6mbkkk:Sodw97euaec98Ghedndnadcl9hmbaeTmecbhdinabpxbbuJbbuJbbuJbbuJabpbbbgicKp:TeglaicYp:Tep9qgvcdp:Teavp9qgvclp:Teavp9qgop;6ep;Negvaicwp:RecKp:SegraipxFbbbFbbbFbbbFbbbgwp9ogDp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oavaDarp:Xeaiczp:RecKp:Segip:Uep;6ep;Meaqp;Keawp9op9qavaDaraip:Uep:Xep;6ep;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qavaoalcep:Rep9oalpxebbbebbbebbbebbbp9op9qp;6ep;Meaqp;KecKp:Rep9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgkpxbFu9hbFu9hbFu9hbFu9habpbbbglakpbbbgrpmlvorxmPsCXQL358E8Fgvczp:TegqavcHp:Tep9qgicdp:Teaip9qgiclp:Teaip9qgicwp:Teaip9qgop;6ep;NegialarpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbglp9ograDczp:Segwp:Ueavczp:Reczp:SegDp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gvp;Kealp9oaiarawaDp:Uep:Xep;6ep;Meavp;Keczp:Rep9qgwaiaoaqcep:Rep9oaqpxebbbebbbebbbebbbp9op9qp;6ep;Meavp;Keczp:ReaiaDarp:Uep;6ep;Meavp;Kealp9op9qgipmwDKYqk8AExm35Ps8E8FpkbbabawaipmbezHdiOAlvCXorQLpkbbabcafhbadclfgdae6mbkkk9teiucbcbydj:G:cjbgeabcifc98GfgbBdj:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkxebcj:Gdklz:zbb"):d("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq:VZkdbk:XYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbh5dnawTmbaxa8Acd4fRbbh5kcbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q:G:cjbfcj:G:cjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bwar9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfcbaicdfa8J9c8N1:NfghRbbag9cjjjjjw:dg8J9qE86bbarcVfcbaha8J9c8M1:NfghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fcbaha8J9c8N1:NfgiRbbag9cjjjjjw:dg8J9qE86bbarc96fcbaia8J9c8M1:NfgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbw83bwarai8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbaocl4h8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E94aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:ysezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8Aav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk: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:4ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxalarcefciGcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGgkfcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkalarcufciGcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkalakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K:G:cjbgeabcifc98GfgbBd:K:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk83dbcj:Gdk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:K:Gdkl8W:qbb"),i=WebAssembly.instantiate(e,{}).then(function(a){(c=a.instance).exports.__wasm_call_ctors()});function d(a){for(var c=new Uint8Array(a.length),e=0;e<a.length;++e){var i=a.charCodeAt(e);c[e]=i>96?i-97:i>64?i-39:i+4}var d=0;for(e=0;e<a.length;++e)c[d++]=c[e]<60?b[c[e]]:64*(c[e]-60)+c[++e];return c.buffer.slice(0,d)}function p(a,b,c,e,i,d,p){var g=a.exports.sbrk,f=e+3&-4,h=g(f*i),l=g(d.length),o=new Uint8Array(a.exports.memory.buffer);o.set(d,l);var s=b(h,e,i,l,d.length);if(0==s&&p&&p(h,f,i),c.set(o.subarray(h,h+e*i)),g(h-g(0)),0!=s)throw new Error("Malformed buffer data: "+s)}var g={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},h=[],l=0;function o(a){var b={object:new Worker(a),pending:0,requests:{}};return b.object.onmessage=function(a){var c=a.data;b.pending-=c.count,b.requests[c.id][c.action](c.value),delete b.requests[c.id]},b}function s(a){var b=a.data;self.ready.then(function(a){if(!b.id)return self.close();try{var c=new Uint8Array(b.count*b.size);p(a,a.exports[b.mode],c,b.count,b.size,b.source,a.exports[b.filter]),self.postMessage({id:b.id,count:b.count,action:"resolve",value:c},[c.buffer])}catch(e){self.postMessage({id:b.id,count:b.count,action:"reject",value:e})}})}return{ready:i,supported:!0,useWorkers:function(a){!function(a){for(var b="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(e)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+s.name+";"+p.toString()+s.toString(),c=new Blob([b],{type:"text/javascript"}),i=URL.createObjectURL(c),d=h.length;d<a;++d)h[d]=o(i);for(d=a;d<h.length;++d)h[d].object.postMessage({});h.length=a,URL.revokeObjectURL(i)}(a)},decodeVertexBuffer:function(a,b,e,i,d){p(c,c.exports.meshopt_decodeVertexBuffer,a,b,e,i,c.exports[g[d]])},decodeIndexBuffer:function(a,b,e,i){p(c,c.exports.meshopt_decodeIndexBuffer,a,b,e,i)},decodeIndexSequence:function(a,b,e,i){p(c,c.exports.meshopt_decodeIndexSequence,a,b,e,i)},decodeGltfBuffer:function(a,b,e,i,d,h){p(c,c.exports[f[d]],a,b,e,i,c.exports[g[h]])},decodeGltfBufferAsync:function(a,b,e,d,o){return h.length>0?function(a,b,c,e,i){for(var d=h[0],p=1;p<h.length;++p)h[p].pending<d.pending&&(d=h[p]);return new Promise(function(p,g){var f=new Uint8Array(c),h=++l;d.pending+=a,d.requests[h]={resolve:p,reject:g},d.object.postMessage({id:h,count:a,size:b,source:f,mode:e,filter:i},[f.buffer])})}(a,b,e,f[d],g[o]):i.then(function(){var i=new Uint8Array(a*b);return p(c,c.exports[f[d]],i,a,b,e,c.exports[g[o]]),i})}}}();exports.MeshoptDecoder=a;
|
|
1
|
+
/*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
|
|
2
|
+
!function(){try{var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},b=(new a.Error).stack;b&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[b]="a1dc35b7-93bf-4efb-8d57-75896d0ed825",a._sentryDebugIdIdentifier="sentry-dbid-a1dc35b7-93bf-4efb-8d57-75896d0ed825")}catch(a){}}();var a=function(){var a=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]),b=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 c,e=WebAssembly.validate(a)?d("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq:W9Dklbzik94evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaeai86b:q:W:cjbaecitab8Piw83i:q:G:cjbaecefgecjd9hmbkk:JBl8Aud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaialfgxar9RhodnadTgmmbavaoad;8qbbkaicefhPcj;abad9Uc;WFbGcjdadca0EhsdndndnadTmbaoadfhzcbhHinaeaH9nmdaxaP9RaD6miabaHad2fhOaPaDfhAasaeaH9RaHasfae6EgCcsfgocl4cifcd4hXavcj;cbfaoc9WGgQcetfhLavcj;cbfaQci2fhKavcj;cbfaQfhYcbh8Aaoc;ab6hEincbh3dnawTmbaPa8Acd4fRbbh3kcbh5avcj;cbfh8Eindndndndna3a5cet4ciGgoc9:fPdebdkaxaA9RaQ6mwdnaQTmbavcj;cbfa5aQ2faAaQ;8qbbkaAaCfhAxdkaQTmeavcj;cbfa5aQ2fcbaQ;8kbxekaxaA9RaX6moaoclVcbawEhraAaXfhocbhidnaEmbaxao9Rc;Gb6mbcbhlina8EalfhidndndndndndnaAalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaoclffagRb:q:W:cjbfhoxikaiaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaocwffagRb:q:W:cjbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbahaocdffagRb:q:W:cjbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaoclffagRb:q:W:cjbfhoxikaiczfaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaocwffagRb:q:W:cjbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbahaocdffagRb:q:W:cjbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaoclffagRb:q:W:cjbfhoxikaicafaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbahaocwffagRb:q:W:cjbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbahaocdffagRb:q:W:cjbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbaiaoclffaqRb:q:W:cjbfhoxikaic8Wfaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Ngicitpbi:q:G:cjbaiRb:q:W:cjbgipsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spklbaiaocwffaqRb:q:W:cjbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitpbi:q:G:cjbaiRb:q:W:cjbgipsaoRbegqcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqRb:q:W:cjbfhokalc;abfhialcjefaQ0meaihlaxao9Rc;Fb0mbkkdnaiaQ9pmbaici4hlinaxao9RcK6mwa8EaifhqdndndndndndnaAaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLg8Fcdp:mea8FpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogapxiiiiiiiiiiiiiiiip8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spkbbahaoclffagRb:q:W:cjbfhoxikaqaopbbwaopbbbg8Fclp:mea8FpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogapxssssssssssssssssp8Jg8Fp5b9cjF;8;4;W;G;ab9:9cU1:Nghcitpbi:q:G:cjbahRb:q:W:cjbghpsa8Fp5e9cjF;8;4;W;G;ab9:9cU1:Nggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPaaa8Fp9spkbbahaocwffagRb:q:W:cjbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbghcitpbi:q:G:cjbahRb:q:W:cjbghpsaoRbeggcitpbi:q:G:cjbp9UpmbedilvorzHOACXQLpPpkbbahaocdffagRb:q:W:cjbfhokalcdfhlaiczfgiaQ6mbkkaohAaoTmoka8EaQfh8Ea5cefg5cl9hmbkdndndndnawTmbaza8Acd4fRbbglciGPlbedwbkaQTmdavcjdfa8Afhlava8Afpbdbh8Jcbhoinalavcj;cbfaofpblbg8KaYaofpblbg8LpmbzeHdOiAlCvXoQrLg8MaLaofpblbg8NaKaofpblbgypmbzeHdOiAlCvXoQrLg8PpmbezHdiOAlvCXorQLg8Fcep9Ta8Fpxeeeeeeeeeeeeeeeegap9op9Hp9rg8Fa8Jp9Ug8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9Abbbaladfgla8Ja8Ma8PpmwDKYqk8AExm35Ps8E8Fg8Fcep9Ta8Faap9op9Hp9rg8Fp9Ug8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9Abbbaladfgla8Ja8Ka8LpmwKDYq8AkEx3m5P8Es8Fg8Ka8NaypmwKDYq8AkEx3m5P8Es8Fg8LpmbezHdiOAlvCXorQLg8Fcep9Ta8Faap9op9Hp9rg8Fp9Ug8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp9Ug8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9Abbbaladfgla8Ja8Ka8LpmwDKYqk8AExm35Ps8E8Fg8Fcep9Ta8Faap9op9Hp9rg8Fp9Ugap9Abbbaladfglaaa8Fa8Fpmlvorlvorlvorlvorp9Ugap9Abbbaladfglaaa8Fa8FpmwDqkwDqkwDqkwDqkp9Ugap9Abbbaladfglaaa8Fa8FpmxmPsxmPsxmPsxmPsp9Ug8Jp9AbbbaladfhlaoczfgoaQ6mbxikkaQTmeavcjdfa8Afhlava8Afpbdbh8Jcbhoinalavcj;cbfaofpblbg8KaYaofpblbg8LpmbzeHdOiAlCvXoQrLg8MaLaofpblbg8NaKaofpblbgypmbzeHdOiAlCvXoQrLg8PpmbezHdiOAlvCXorQLg8Fcep:nea8Fpxebebebebebebebebgap9op:bep9rg8Fa8Jp:oeg8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9Abbbaladfgla8Ja8Ma8PpmwDKYqk8AExm35Ps8E8Fg8Fcep:nea8Faap9op:bep9rg8Fp:oeg8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9Abbbaladfgla8Ja8Ka8LpmwKDYq8AkEx3m5P8Es8Fg8Ka8NaypmwKDYq8AkEx3m5P8Es8Fg8LpmbezHdiOAlvCXorQLg8Fcep:nea8Faap9op:bep9rg8Fp:oeg8Jp9Abbbaladfgla8Ja8Fa8Fpmlvorlvorlvorlvorp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmwDqkwDqkwDqkwDqkp:oeg8Jp9Abbbaladfgla8Ja8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9Abbbaladfgla8Ja8Ka8LpmwDKYqk8AExm35Ps8E8Fg8Fcep:nea8Faap9op:bep9rg8Fp:oegap9Abbbaladfglaaa8Fa8Fpmlvorlvorlvorlvorp:oegap9Abbbaladfglaaa8Fa8FpmwDqkwDqkwDqkwDqkp:oegap9Abbbaladfglaaa8Fa8FpmxmPsxmPsxmPsxmPsp:oeg8Jp9AbbbaladfhlaoczfgoaQ6mbxdkkaQTmbcbhocbalcl4gl9Rc8FGhiavcjdfa8Afhrava8Afpbdbhainaravcj;cbfaofpblbg8JaYaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaLaofpblbg8MaKaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Faip:Rea8Falp:Tep9qg8Faap9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9Abbbaradfgraaa8LaypmwDKYqk8AExm35Ps8E8Fg8Faip:Rea8Falp:Tep9qg8Fp9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9Abbbaradfgraaa8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Faip:Rea8Falp:Tep9qg8Fp9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9Abbbaradfgraaa8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Faip:Rea8Falp:Tep9qg8Fp9rgap9Abbbaradfgraaa8Fa8Fpmlvorlvorlvorlvorp9rgap9Abbbaradfgraaa8Fa8FpmwDqkwDqkwDqkwDqkp9rgap9Abbbaradfgraaa8Fa8FpmxmPsxmPsxmPsxmPsp9rgap9AbbbaradfhraoczfgoaQ6mbkka8Aclfg8Aad6mbkdnaCad2goTmbaOavcjdfao;8qbbkdnammbavavcjdfaCcufad2fad;8qbbkaCaHfhHc9:hoaAhPaAmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdasaeao9Raoasfae6Eaofgoae6mbkaial9RhPkcbc99axaP9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbkNsezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk;Toio97eue97aec98Ghedndnadcl9hmbaeTmecbhdinababpbbbgicKp:RecKp:Sep;6eglaicwp:RecKp:Sep;6ealp;Geaiczp:RecKp:Sep;6egvp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgwp9op9rp;Keglpxbb;:9cbb;:9cbb;:9cbb;:9calalp;Meaoaop;Meavaravawp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFbbbFbbbFbbbFbbbp9oaipxbbbFbbbFbbbFbbbFp9op9qalavp;Mearp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaoavp;Mearp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgDaDpbbbgipxbbbbbbFFbbbbbbFFgwp9oabpbbbgoaipmbediwDqkzHOAKY8AEgvczp:Reczp:Sep;6eglaoaipmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eavczp:Sep;6egvp;Gealp;Gep;Kep;Legipxbbbbbbbbbbbbbbbbp:2egralpxbbbjbbbjbbbjbbbjgqp9op9rp;Keglpxb;:FSb;:FSb;:FSb;:FSalalp;Meaiaip;Meavaravaqp9op9rp;Keglalp;Mep;Kep;Kep;Jep;Negvp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbp9oaiavp;Mearp;Keczp:Rep9qgialavp;Mearp;KepxFFbbFFbbFFbbFFbbp9oglpmwDKYqk8AExm35Ps8E8Fp9qpkbbabaoawp9oaialpmbezHdiOAlvCXorQLp9qpkbbabcafhbadclfgdae6mbkkk;2ileue97euo97dnaec98GgiTmbcbheinabcKfpx:ji:1S:ji:1S:ji:1S:ji:1SabpbbbglabczfgvpbbbgopmlvorxmPsCXQL358E8Fgrczp:Segwpxibbbibbbibbbibbbp9qp;6egDp;NegqaDaDp;MegDaDp;KealaopmbediwDqkzHOAKY8AEgDczp:Reczp:Sep;6eglalp;MeaDczp:Sep;6egoaop;Mearczp:Reczp:Sep;6egrarp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jep;Mepxbbn0bbn0bbn0bbn0gDp;KepxFFbbFFbbFFbbFFbbgkp9oaqaop;MeaDp;Keczp:Rep9qgoaqalp;MeaDp;Keakp9oaqarp;MeaDp;Keczp:Rep9qgDpmwDKYqk8AExm35Ps8E8Fglp5eawclp:RegqpEi:T:j83ibavalp5baqpEd:T:j83ibabcwfaoaDpmbezHdiOAlvCXorQLgDp5eaqpEe:T:j83ibabaDp5baqpEb:T:j83ibabcafhbaeclfgeai6mbkkkuee97dnadcd4ae2c98GgeTmbcbhdinababpbbbgicwp:Recwp:Sep;6eaicep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbabczfhbadclfgdae6mbkkk:Sodw97euaec98Ghedndnadcl9hmbaeTmecbhdinabpxbbuJbbuJbbuJbbuJabpbbbgicKp:TeglaicYp:Tep9qgvcdp:Teavp9qgvclp:Teavp9qgop;6ep;Negvaicwp:RecKp:SegraipxFbbbFbbbFbbbFbbbgwp9ogDp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oavaDarp:Xeaiczp:RecKp:Segip:Uep;6ep;Meaqp;Keawp9op9qavaDaraip:Uep:Xep;6ep;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qavaoalcep:Rep9oalpxebbbebbbebbbebbbp9op9qp;6ep;Meaqp;KecKp:Rep9qpkbbabczfhbadclfgdae6mbxdkkaeTmbcbhdinabczfgkpxbFu9hbFu9hbFu9hbFu9habpbbbglakpbbbgrpmlvorxmPsCXQL358E8Fgvczp:TegqavcHp:Tep9qgicdp:Teaip9qgiclp:Teaip9qgicwp:Teaip9qgop;6ep;NegialarpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbglp9ograDczp:Segwp:Ueavczp:Reczp:SegDp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gvp;Kealp9oaiarawaDp:Uep:Xep;6ep;Meavp;Keczp:Rep9qgwaiaoaqcep:Rep9oaqpxebbbebbbebbbebbbp9op9qp;6ep;Meavp;Keczp:ReaiaDarp:Uep;6ep;Meavp;Kealp9op9qgipmwDKYqk8AExm35Ps8E8FpkbbabawaipmbezHdiOAlvCXorQLpkbbabcafhbadclfgdae6mbkkk9teiucbcbydj:G:cjbgeabcifc98GfgbBdj:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkxebcj:Gdklz:zbb"):d("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuecj:Gdkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq:VZkdbk:XYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbh5dnawTmbaxa8Acd4fRbbh5kcbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q:G:cjbfcj:G:cjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bwar9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfcbaicdfa8J9c8N1:NfghRbbag9cjjjjjw:dg8J9qE86bbarcVfcbaha8J9c8M1:NfghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fcbaha8J9c8N1:NfgiRbbag9cjjjjjw:dg8J9qE86bbarc96fcbaia8J9c8M1:NfgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbw83bwarai8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbaocl4h8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E94aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:ysezu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnalaeci9UgrcHf6mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8Aav9cu83iUav9cu83i8Wav9cu83iyav9cu83iaav9cu83iKav9cu83izav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbavaiaqaDcsGfRbbgscl4gP9RcsGcdtfydbaxcefgOaPEhDavaias9RcsGcdtfydbaOaPTgzfgOascsGgPEhsaPThPdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiazfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaPfhiaOaPfhxxekaxcbalRbbgsEgHaDc;:eSgDfhOascsGhAdndnascl4gCmbaOcefhzxekaOhzavaiaC9RcsGcdtfydbhOkdndnaAmbazcefhxxekazhxavaias9RcsGcdtfydbhzkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhHascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaHhDxekaDcefhDkasce4cbasceG9R7amfgmhHkdndnaCcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhOaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkaOhsxekascefhskaPce4cbaPceG9R7amfgmhOkdndnaAcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhzaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkazhlxekalcefhlkaPce4cbaPceG9R7amfgmhzkdndnadcd9hmbabarcetfgDaH87ebaDclfaz87ebaDcdfaO87ebxekabarcdtfgDaHBdbaDcwfazBdbaDclfaOBdbkavc;abfaocitfgDaOBdbaDaHBdlavaicdtfaHBdbavc;abfaocefcsGcitfgDazBdbaDaOBdlavaicefgicsGcdtfaOBdbavc;abfaocdfcsGcitfgDaHBdbaDazBdlavaiaCTaCcsSVfgicsGcdtfazBdbaiaATaAcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnalaecvf9pmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk: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:4ioiue99dud99dud99dnaeTmbcbhiabhlindndnal8Uebgv:YgoJ:ji:1Salcof8UebgrciVgw:Y:vgDNJbbbZJbbb:;avcu9kEMgq:lJbbb9p9DTmbaq:Ohkxekcjjjj94hkkalclf8Uebhvalcdf8UebhxalarcefciGcetfak87ebdndnax:YgqaDNJbbbZJbbb:;axcu9kEMgm:lJbbb9p9DTmbam:Ohxxekcjjjj94hxkabaiarciGgkfcd7cetfax87ebdndnav:YgmaDNJbbbZJbbb:;avcu9kEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkalarcufciGcetfav87ebdndnawaw2:ZgPaPMaoaoN:taqaqN:tamamN:tgoJbbbbaoJbbbb9GE:raDNJbbbZMgD:lJbbb9p9DTmbaD:Ohrxekcjjjj94hrkalakcetfar87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K:G:cjbgeabcifc98GfgbBd:K:G:cjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk83dbcj:Gdk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:K:Gdkl8W:qbb"),i=WebAssembly.instantiate(e,{}).then(function(a){(c=a.instance).exports.__wasm_call_ctors()});function d(a){for(var c=new Uint8Array(a.length),e=0;e<a.length;++e){var i=a.charCodeAt(e);c[e]=i>96?i-97:i>64?i-39:i+4}var d=0;for(e=0;e<a.length;++e)c[d++]=c[e]<60?b[c[e]]:64*(c[e]-60)+c[++e];return c.buffer.slice(0,d)}function p(a,b,c,e,i,d,p){var g=a.exports.sbrk,f=e+3&-4,h=g(f*i),l=g(d.length),o=new Uint8Array(a.exports.memory.buffer);o.set(d,l);var s=b(h,e,i,l,d.length);if(0==s&&p&&p(h,f,i),c.set(o.subarray(h,h+e*i)),g(h-g(0)),0!=s)throw new Error("Malformed buffer data: "+s)}var g={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},h=[],l=0;function o(a){var b={object:new Worker(a),pending:0,requests:{}};return b.object.onmessage=function(a){var c=a.data;b.pending-=c.count,b.requests[c.id][c.action](c.value),delete b.requests[c.id]},b}function s(a){var b=a.data;self.ready.then(function(a){if(!b.id)return self.close();try{var c=new Uint8Array(b.count*b.size);p(a,a.exports[b.mode],c,b.count,b.size,b.source,a.exports[b.filter]),self.postMessage({id:b.id,count:b.count,action:"resolve",value:c},[c.buffer])}catch(e){self.postMessage({id:b.id,count:b.count,action:"reject",value:e})}})}return{ready:i,supported:!0,useWorkers:function(a){!function(a){for(var b="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(e)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+s.name+";"+p.toString()+s.toString(),c=new Blob([b],{type:"text/javascript"}),i=URL.createObjectURL(c),d=h.length;d<a;++d)h[d]=o(i);for(d=a;d<h.length;++d)h[d].object.postMessage({});h.length=a,URL.revokeObjectURL(i)}(a)},decodeVertexBuffer:function(a,b,e,i,d){p(c,c.exports.meshopt_decodeVertexBuffer,a,b,e,i,c.exports[g[d]])},decodeIndexBuffer:function(a,b,e,i){p(c,c.exports.meshopt_decodeIndexBuffer,a,b,e,i)},decodeIndexSequence:function(a,b,e,i){p(c,c.exports.meshopt_decodeIndexSequence,a,b,e,i)},decodeGltfBuffer:function(a,b,e,i,d,h){p(c,c.exports[f[d]],a,b,e,i,c.exports[g[h]])},decodeGltfBufferAsync:function(a,b,e,d,o){return h.length>0?function(a,b,c,e,i){for(var d=h[0],p=1;p<h.length;++p)h[p].pending<d.pending&&(d=h[p]);return new Promise(function(p,g){var f=new Uint8Array(c),h=++l;d.pending+=a,d.requests[h]={resolve:p,reject:g},d.object.postMessage({id:h,count:a,size:b,source:f,mode:e,filter:i},[f.buffer])})}(a,b,e,f[d],g[o]):i.then(function(){var i=new Uint8Array(a*b);return p(c,c.exports[f[d]],i,a,b,e,c.exports[g[o]]),i})}}}();exports.MeshoptDecoder=a;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! Web-kit v1.2.0-develop.
|
|
2
|
-
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},C=(new e.Error).stack;C&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[C]="
|
|
1
|
+
/*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
|
|
2
|
+
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},C=(new e.Error).stack;C&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[C]="cbd7b440-ff63-4044-b2cf-a60fb4142406",e._sentryDebugIdIdentifier="sentry-dbid-cbd7b440-ff63-4044-b2cf-a60fb4142406")}catch(e){}}();exports.default='<svg width="21" height="20" viewBox="0 0 21 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">\n<path d="M6.36016 17.7535C6.43073 18.1345 6.36016 18.4258 6.17199 18.6051C5.98381 18.7843 5.6545 18.8292 5.27816 18.7395L0.691401 17.4622C-0.0848194 17.2605 -0.22595 16.6555 0.362095 16.1401L1.60875 15.042C1.58523 15.0196 1.58523 14.9972 1.56171 14.9748C-0.978649 10.8964 -0.0848196 5.80955 3.39641 2.73953C3.91389 2.26894 4.50194 1.86558 5.13702 1.48462C6.71299 0.588264 8.43008 0.140085 10.1472 0.117676V1.59667C8.71234 1.64149 7.25399 2.02244 5.93677 2.76193C5.39576 3.07566 4.90181 3.4342 4.45489 3.81516C1.53819 6.39219 0.761966 10.6051 2.76132 14.0112L4.0315 12.8908C4.61954 12.3754 5.23111 12.5547 5.39576 13.2941L6.36016 17.7535ZM15.6278 6.70591C15.7924 7.44541 16.404 7.62468 16.992 7.10927L18.2622 5.98883C20.2616 9.39499 19.4853 13.6079 16.5922 16.1849C16.1452 16.5883 15.6513 16.9244 15.1103 17.2381C13.7931 18 12.3347 18.3586 10.8999 18.4034V19.8824C12.617 19.8376 14.3341 19.3894 15.91 18.5154C16.5451 18.1569 17.1332 17.7311 17.6506 17.2605C21.1083 14.1905 21.9786 9.10367 19.4383 5.04765C19.4148 5.02524 19.4148 5.00283 19.3913 4.98042L20.6379 3.88238C21.226 3.36698 21.0848 2.76193 20.3086 2.56025L15.7218 1.30535C15.3455 1.19331 15.0162 1.26053 14.828 1.4398C14.6398 1.61908 14.5458 1.91039 14.6398 2.29135L15.6278 6.70591Z" fill="currentColor"/>\n</svg>\n';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! Web-kit v1.2.0-develop.
|
|
2
|
-
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"1.2.0-develop.
|
|
1
|
+
/*! Web-kit v1.2.0-develop.12 | (c) 2026 MapVX */
|
|
2
|
+
!function(){try{var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"1.2.0-develop.12"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ed680b2c-83c3-450c-8c73-12e28562d6d4",e._sentryDebugIdIdentifier="sentry-dbid-ed680b2c-83c3-450c-8c73-12e28562d6d4")}catch(e){}}();var e=Object.create,t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,o=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),a=(e,r)=>{let n={};for(var o in e)t(n,o,{get:e[o],enumerable:!0});return r||t(n,Symbol.toStringTag,{value:"Module"}),n},b=(u,a,b)=>(b=null!=u?e(o(u)):{},((e,o,u,a)=>{if(o&&"object"==typeof o||"function"==typeof o)for(var b,d=n(o),f=0,i=d.length;f<i;f++)b=d[f],l.call(e,b)||b===u||t(e,b,{get:(e=>o[e]).bind(null,b),enumerable:!(a=r(o,b))||a.enumerable});return e})(!a&&u&&u.__esModule&&l.call(u,"default")?b:t(b,"default",{value:u,enumerable:!0}),u));Object.defineProperty(exports,"__commonJSMin",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"__exportAll",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"__toESM",{enumerable:!0,get:function(){return b}});
|