@deck.gl/jupyter-widget 9.0.29 → 9.0.30

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/index.js CHANGED
@@ -550,7 +550,7 @@ ${n}${o}${t.type.toUpperCase()}: ${t.message}
550
550
  <code style="user-select:text;"><pre>
551
551
  ${n}
552
552
  </pre></code>`,s.style.top="10px",s.style.left="10px",s.style.position="absolute",s.style.zIndex="9999",s.style.width="100%",s.style.textAlign="left",document.body.appendChild(s);let l=document.getElementsByClassName("luma-compiler-log-error");l[0]?.scrollIntoView&&l[0].scrollIntoView(),s.onclick=()=>{let u=`data:text/plain,${encodeURIComponent(this.source)}`;navigator.clipboard.writeText(u)}}},Cp=d3;Yr(Cp,"defaultProps",{...hn.defaultProps,language:"auto",stage:void 0,source:"",sourceMap:null,entryPoint:"main",debug:"errors"});function tne(t){return f3(t.source).name||t.id||oa(`unnamed ${t.stage}-shader`)}var p3=class extends hn{get[Symbol.toStringTag](){return"Sampler"}constructor(e,r){super(e,r,p3.defaultProps)}},Mp=p3;Yr(Mp,"defaultProps",{...hn.defaultProps,type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var A3=class extends hn{get[Symbol.toStringTag](){return"Framebuffer"}width;height;colorAttachments=[];depthStencilAttachment=null;constructor(e,r={}){super(e,r,A3.defaultProps),this.width=this.props.width,this.height=this.props.height}resize(e){let r=!e;if(e){let[i,n]=Array.isArray(e)?e:[e.width,e.height];r=r||n!==this.height||i!==this.width,this.width=i,this.height=n}r&&(Zt.log(2,`Resizing framebuffer ${this.id} to ${this.width}x${this.height}`)(),this.resizeAttachments(this.width,this.height))}autoCreateAttachmentTextures(){if(this.props.colorAttachments.length===0&&!this.props.depthStencilAttachment)throw new Error("Framebuffer has noattachments");this.colorAttachments=this.props.colorAttachments.map(r=>{if(typeof r=="string"){let i=this.createColorTexture(r);return this.attachResource(i),i.view}return r instanceof bo?r.view:r});let e=this.props.depthStencilAttachment;if(e)if(typeof e=="string"){let r=this.createDepthStencilTexture(e);this.attachResource(r),this.depthStencilAttachment=r.view}else e instanceof bo?this.depthStencilAttachment=e.view:this.depthStencilAttachment=e}createColorTexture(e){return this.device.createTexture({id:"color-attachment",usage:bo.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height})}createDepthStencilTexture(e){return this.device.createTexture({id:"depth-stencil-attachment",usage:bo.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height})}resizeAttachments(e,r){for(let i=0;i<this.colorAttachments.length;++i)if(this.colorAttachments[i]){let n=this.device._createTexture({...this.colorAttachments[i].props,width:e,height:r});this.destroyAttachedResource(this.colorAttachments[i]),this.colorAttachments[i]=n.view,this.attachResource(n.view)}if(this.depthStencilAttachment){let i=this.device._createTexture({...this.depthStencilAttachment.props,width:e,height:r});this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=i.view,this.attachResource(i)}}},yf=A3;Yr(yf,"defaultProps",{...hn.defaultProps,width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var m3=class extends hn{get[Symbol.toStringTag](){return"RenderPipeline"}shaderLayout;bufferLayout;linkStatus="pending";hash="";constructor(e,r){super(e,r,m3.defaultProps),this.shaderLayout=this.props.shaderLayout,this.bufferLayout=this.props.bufferLayout||[]}setUniformsWebGL(e){throw new Error("Use uniform blocks")}},ph=m3;Yr(ph,"defaultProps",{...hn.defaultProps,vs:null,vertexEntryPoint:"vertexMain",vsConstants:{},fs:null,fragmentEntryPoint:"fragmentMain",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},bindings:{},uniforms:{}});var g3=class extends hn{get[Symbol.toStringTag](){return"RenderPass"}constructor(e,r){super(e,r,g3.defaultProps)}},L0=g3;Yr(L0,"defaultProps",{...hn.defaultProps,framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1,occlusionQuerySet:void 0,timestampQuerySet:void 0,beginTimestampIndex:void 0,endTimestampIndex:void 0});var _3=class extends hn{get[Symbol.toStringTag](){return"ComputePipeline"}hash="";constructor(e,r){super(e,r,_3.defaultProps)}},im=_3;Yr(im,"defaultProps",{...hn.defaultProps,shader:void 0,entryPoint:void 0,constants:{},shaderLayout:void 0});var y3=class extends hn{get[Symbol.toStringTag](){return"CommandEncoder"}constructor(e,r){super(e,r,y3.defaultProps)}},F0=y3;Yr(F0,"defaultProps",{...hn.defaultProps,measureExecutionTime:void 0});var v3=class extends hn{get[Symbol.toStringTag](){return"CommandBuffer"}constructor(e,r){super(e,r,v3.defaultProps)}},N0=v3;Yr(N0,"defaultProps",{...hn.defaultProps});function az(t){let[e,r]=ine[t],i=e==="i32"||e==="u32",n=e!=="u32",o=nne[e]*r,s=rne(e,r);return{dataType:e,components:r,defaultVertexFormat:s,byteLength:o,integer:i,signed:n}}function rne(t,e){let r;switch(t){case"f32":r="float32";break;case"i32":r="sint32";break;case"u32":r="uint32";break;case"f16":return e<=2?"float16x2":"float16x4"}return e===1?r:`${r}x${e}`}var ine={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},nne={f32:4,f16:2,i32:4,u32:4};function x3(t){let e;t.endsWith("-webgl")&&(t.replace("-webgl",""),e=!0);let[r,i]=t.split("x"),n=r,o=i?parseInt(i):1,s=X2(n),l={type:n,components:o,byteLength:s.byteLength*o,integer:s.integer,signed:s.signed,normalized:s.normalized};return e&&(l.webglOnly=!0),l}function Z2(t,e){let r={};for(let i of t.attributes)r[i.name]=one(t,e,i.name);return r}function lz(t,e,r=16){let i=Z2(t,e),n=new Array(r).fill(null);for(let o of Object.values(i))n[o.location]=o;return n}function one(t,e,r){let i=sne(t,r),n=ane(e,r);if(!i)return null;let o=az(i.type),s=n?.vertexFormat||o.defaultVertexFormat,l=x3(s);return{attributeName:n?.attributeName||i.name,bufferName:n?.bufferName||i.name,location:i.location,shaderType:i.type,shaderDataType:o.dataType,shaderComponents:o.components,vertexFormat:s,bufferDataType:l.type,bufferComponents:l.components,normalized:l.normalized,integer:o.integer,stepMode:n?.stepMode||i.stepMode,byteOffset:n?.byteOffset||0,byteStride:n?.byteStride||0}}function sne(t,e){let r=t.attributes.find(i=>i.name===e);return r||Zt.warn(`shader layout attribute "${e}" not present in shader`),r||null}function ane(t,e){lne(t);let r=cne(t,e);return r||(r=une(t,e),r)?r:(Zt.warn(`layout for attribute "${e}" not present in buffer layout`),null)}function lne(t){for(let e of t)(e.attributes&&e.format||!e.attributes&&!e.format)&&Zt.warn(`BufferLayout ${name} must have either 'attributes' or 'format' field`)}function cne(t,e){for(let r of t)if(r.format&&r.name===e)return{attributeName:r.name,bufferName:e,stepMode:r.stepMode,vertexFormat:r.format,byteOffset:0,byteStride:r.byteStride||0};return null}function une(t,e){for(let r of t){let i=r.byteStride;if(typeof r.byteStride!="number")for(let o of r.attributes||[]){let s=x3(o.format);i+=s.byteLength}let n=r.attributes?.find(o=>o.attribute===e);if(n)return{attributeName:n.attribute,bufferName:r.name,stepMode:r.stepMode,vertexFormat:n.format,byteOffset:n.byteOffset,byteStride:i}}return null}function b3(t,e){let r={...t,attributes:t.attributes.map(i=>({...i}))};for(let i of e?.attributes||[]){let n=r.attributes.find(o=>o.name===i.name);n?(n.type=i.type||n.type,n.stepMode=i.stepMode||n.stepMode):Zt.warn(`shader layout attribute ${i.name} not present in shader`)}return r}var w3=class extends hn{get[Symbol.toStringTag](){return"VertexArray"}maxVertexAttributes;attributeInfos;indexBuffer=null;attributes;constructor(e,r){super(e,r,w3.defaultProps),this.maxVertexAttributes=e.limits.maxVertexAttributes,this.attributes=new Array(this.maxVertexAttributes).fill(null),this.attributeInfos=lz(r.renderPipeline.shaderLayout,r.renderPipeline.bufferLayout,this.maxVertexAttributes)}setConstantWebGL(e,r){throw new Error("constant attributes not supported")}},k0=w3;Yr(k0,"defaultProps",{...hn.defaultProps,renderPipeline:null});var T3=class extends hn{get[Symbol.toStringTag](){return"TransformFeedback"}constructor(e,r){super(e,r,T3.defaultProps)}},U0=T3;Yr(U0,"defaultProps",{...hn.defaultProps,layout:void 0,buffers:{}});var E3=class extends hn{get[Symbol.toStringTag](){return"QuerySet"}constructor(e,r){super(e,r,E3.defaultProps)}},z0=E3;Yr(z0,"defaultProps",{...hn.defaultProps,type:void 0,count:void 0});var hne={f32:{type:"f32",components:1},i32:{type:"i32",components:1},u32:{type:"u32",components:1},"vec2<f32>":{type:"f32",components:2},"vec3<f32>":{type:"f32",components:3},"vec4<f32>":{type:"f32",components:4},"vec2<i32>":{type:"i32",components:2},"vec3<i32>":{type:"i32",components:3},"vec4<i32>":{type:"i32",components:4},"vec2<u32>":{type:"u32",components:2},"vec3<u32>":{type:"u32",components:3},"vec4<u32>":{type:"u32",components:4},"mat2x2<f32>":{type:"f32",components:4},"mat2x3<f32>":{type:"f32",components:6},"mat2x4<f32>":{type:"f32",components:8},"mat3x2<f32>":{type:"f32",components:6},"mat3x3<f32>":{type:"f32",components:9},"mat3x4<f32>":{type:"f32",components:12},"mat4x2<f32>":{type:"f32",components:8},"mat4x3<f32>":{type:"f32",components:12},"mat4x4<f32>":{type:"f32",components:16}};function cz(t){let e=hne[t];return Yi(t),e}function uz(t,e){switch(e){case 1:return t;case 2:return t+t%2;default:return t+(4-t%4)%4}}var J2;function Q2(t){return(!J2||J2.byteLength<t)&&(J2=new ArrayBuffer(t)),J2}function S3(t,e){let r=Q2(t.BYTES_PER_ELEMENT*e);return new t(r,0,e)}function C3(t){let{target:e,source:r,start:i=0,count:n=1}=t,o=r.length,s=n*o,l=0;for(let u=i;l<o;l++)e[u++]=r[l];for(;l<s;)l<s-l?(e.copyWithin(i+l,i,i+l),l*=2):(e.copyWithin(i+l,i,i+s-l),l=s);return t.target}var hz=1024,$2=class{layout={};byteLength;constructor(e){let r=0;for(let[n,o]of Object.entries(e)){let s=cz(o),{type:l,components:u}=s;r=uz(r,u);let f=r;r+=u,this.layout[n]={type:l,size:u,offset:f}}r+=(4-r%4)%4;let i=r*4;this.byteLength=Math.max(i,hz)}getData(e){let r=Math.max(this.byteLength,hz),i=Q2(r),n={i32:new Int32Array(i),u32:new Uint32Array(i),f32:new Float32Array(i),f16:new Uint16Array(i)};for(let[o,s]of Object.entries(e)){let l=this.layout[o];if(!l){Zt.warn(`Supplied uniform value ${o} not present in uniform block layout`)();continue}let{type:u,size:f,offset:v}=l,T=n[u];if(f===1){if(typeof s!="number"&&typeof s!="boolean"){Zt.warn(`Supplied value for single component uniform ${o} is not a number: ${s}`)();continue}T[v]=Number(s)}else{let E=wp(s);if(!E){Zt.warn(`Supplied value for multi component / array uniform ${o} is not a numeric array: ${s}`)();continue}T.set(E,v)}}return new Uint8Array(i)}has(e){return Boolean(this.layout[e])}get(e){return this.layout[e]}};function fz(t,e,r=16){if(t!==e)return!1;let i=wp(t);if(!i)return!1;let n=wp(e);if(n&&i.length===n.length){for(let o=0;o<i.length;++o)if(n[o]!==i[o])return!1}return!0}function dz(t){let e=wp(t);return e?e.slice():t}var eT=class{name;uniforms={};modifiedUniforms={};modified=!0;bindingLayout={};needsRedraw="initialized";constructor(e){if(this.name=e?.name,e?.name&&e?.shaderLayout){let r=e?.shaderLayout.bindings?.find(n=>n.type==="uniform"&&n.name===e?.name);if(!r)throw new Error(e?.name);let i=r;for(let n of i.uniforms||[])this.bindingLayout[n.name]=n}}setUniforms(e){for(let[r,i]of Object.entries(e))this._setUniform(r,i),this.needsRedraw||this.setNeedsRedraw(`${this.name}.${r}=${i}`)}setNeedsRedraw(e){this.needsRedraw=this.needsRedraw||e}getAllUniforms(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}}_setUniform(e,r){fz(this.uniforms[e],r)||(this.uniforms[e]=dz(r),this.modifiedUniforms[e]=!0,this.modified=!0)}};var ux=class{uniformBlocks=new Map;uniformBufferLayouts=new Map;uniformBuffers=new Map;constructor(e){for(let[r,i]of Object.entries(e)){let n=r,o=new $2(i.uniformTypes||{});this.uniformBufferLayouts.set(n,o);let s=new eT({name:r});s.setUniforms(i.defaultUniforms||{}),this.uniformBlocks.set(n,s)}}destroy(){for(let e of this.uniformBuffers.values())e.destroy()}setUniforms(e){for(let[r,i]of Object.entries(e))this.uniformBlocks.get(r).setUniforms(i);this.updateUniformBuffers()}getUniformBufferByteLength(e){return this.uniformBufferLayouts.get(e).byteLength}getUniformBufferData(e){let r=this.uniformBlocks.get(e).getAllUniforms();return this.uniformBufferLayouts.get(e).getData(r)}createUniformBuffer(e,r,i){i&&this.setUniforms(i);let n=this.getUniformBufferByteLength(r),o=e.createBuffer({usage:Xi.UNIFORM|Xi.COPY_DST,byteLength:n}),s=this.getUniformBufferData(r);return o.write(s),o}getManagedUniformBuffer(e,r){if(!this.uniformBuffers.get(r)){let i=this.getUniformBufferByteLength(r),n=e.createBuffer({usage:Xi.UNIFORM|Xi.COPY_DST,byteLength:i});this.uniformBuffers.set(r,n)}return this.uniformBuffers.get(r)}updateUniformBuffers(){let e=!1;for(let r of this.uniformBlocks.keys()){let i=this.updateUniformBuffer(r);e||=i}return e&&Zt.log(3,`UniformStore.updateUniformBuffers(): ${e}`)(),e}updateUniformBuffer(e){let r=this.uniformBlocks.get(e),i=this.uniformBuffers.get(e),n=!1;if(i&&r.needsRedraw){n||=r.needsRedraw;let o=this.getUniformBufferData(e);this.uniformBuffers.get(e).write(o);let l=this.uniformBlocks.get(e).getAllUniforms();Zt.log(4,`Writing to uniform buffer ${String(e)}`,o,l)()}return n}};function tT(t){let e=ArrayBuffer.isView(t)?t.constructor:t;switch(e){case Float32Array:return"float32";case Uint16Array:return"uint16";case Uint32Array:return"uint32";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int8Array:return"sint8";case Int16Array:return"sint16";case Int32Array:return"sint32";default:throw new Error(e.constructor.name)}}function hx(t){switch(t){case"float32":return Float32Array;case"uint32":return Uint32Array;case"sint32":return Int32Array;case"uint16":case"unorm16":return Uint16Array;case"sint16":case"snorm16":return Int16Array;case"uint8":case"unorm8":return Uint8Array;case"sint8":case"snorm8":return Int8Array;default:throw new Error(t)}}function M3(t,e,r){if(!e||e>4)throw new Error(`size ${e}`);let i=e,n=tT(t);if(n==="uint8"&&r&&i===1)return"unorm8-webgl";if(n==="uint8"&&r&&i===3)return"unorm8x3-webgl";if(n==="uint8"||n==="sint8"){if(i===1||i===3)throw new Error(`size: ${e}`);return r&&(n=n.replace("int","norm")),`${n}x${i}`}if(n==="uint16"||n==="sint16"){if(i===1||i===3)throw new Error(`size: ${e}`);return r&&(n=n.replace("int","norm")),`${n}x${i}`}return i===1?n:`${n}x${i}`}function pz(t){return wp(t)!==null||typeof t=="number"||typeof t=="boolean"}function nm(t){let e={bindings:{},uniforms:{}};return Object.keys(t).forEach(r=>{let i=t[r];pz(i)?e.uniforms[r]=i:e.bindings[r]=i}),e}function I3(t,e,r){let{removedProps:i={},deprecatedProps:n={},replacedProps:o={}}=r;for(let l in i)if(l in e){let f=i[l]?`${t}.${i[l]}`:"N/A";Zt.removed(`${t}.${l}`,f)()}for(let l in n)if(l in e){let u=n[l];Zt.deprecated(`${t}.${l}`,`${t}.${u}`)()}let s=null;for(let[l,u]of Object.entries(o))l in e&&(Zt.deprecated(`${t}.${l}`,`${t}.${u}`)(),s=s||Object.assign({},e),s[u]=e[l],delete s[l]);return s||e}var fne="";async function P3(t,e){return await new Promise((r,i)=>{try{let n=new Image;n.onload=()=>r(n),n.onerror=()=>i(new Error(`Could not load image ${t}.`)),n.crossOrigin=e?.crossOrigin||"anonymous",n.src=t.startsWith("http")?t:fne+t}catch(n){i(n)}})}async function fx(t,e){let r=document.getElementsByTagName("head")[0];if(!r)throw new Error("loadScript");let i=document.createElement("script");return i.setAttribute("type","text/javascript"),i.setAttribute("src",t),e&&(i.id=e),new Promise((n,o)=>{i.onload=n,i.onerror=s=>o(new Error(`Unable to load script '${t}': ${s}`)),r.appendChild(i)})}function dx(t,e,r){if(t===e)return!0;if(!r||!t||!e)return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(!dx(t[i],e[i],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let o of i)if(!e.hasOwnProperty(o)||!dx(t[o],e[o],r-1))return!1;return!0}return!1}function R3(t){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,1e3/60)}function B3(t){return typeof window<"u"&&window.cancelAnimationFrame?window.cancelAnimationFrame(t):clearTimeout(t)}var vf;(function(t){t[t.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",t[t.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",t[t.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ZERO=0]="ZERO",t[t.ONE=1]="ONE",t[t.SRC_COLOR=768]="SRC_COLOR",t[t.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.DST_ALPHA=772]="DST_ALPHA",t[t.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",t[t.DST_COLOR=774]="DST_COLOR",t[t.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",t[t.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",t[t.CONSTANT_COLOR=32769]="CONSTANT_COLOR",t[t.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",t[t.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",t[t.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",t[t.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",t[t.BLEND_EQUATION=32777]="BLEND_EQUATION",t[t.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",t[t.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",t[t.BLEND_DST_RGB=32968]="BLEND_DST_RGB",t[t.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",t[t.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",t[t.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",t[t.BLEND_COLOR=32773]="BLEND_COLOR",t[t.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",t[t.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",t[t.LINE_WIDTH=2849]="LINE_WIDTH",t[t.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",t[t.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",t[t.CULL_FACE_MODE=2885]="CULL_FACE_MODE",t[t.FRONT_FACE=2886]="FRONT_FACE",t[t.DEPTH_RANGE=2928]="DEPTH_RANGE",t[t.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",t[t.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",t[t.DEPTH_FUNC=2932]="DEPTH_FUNC",t[t.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",t[t.STENCIL_FUNC=2962]="STENCIL_FUNC",t[t.STENCIL_FAIL=2964]="STENCIL_FAIL",t[t.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",t[t.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",t[t.STENCIL_REF=2967]="STENCIL_REF",t[t.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",t[t.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",t[t.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",t[t.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",t[t.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",t[t.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",t[t.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",t[t.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",t[t.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",t[t.VIEWPORT=2978]="VIEWPORT",t[t.SCISSOR_BOX=3088]="SCISSOR_BOX",t[t.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",t[t.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",t[t.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",t[t.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",t[t.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",t[t.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",t[t.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",t[t.RED_BITS=3410]="RED_BITS",t[t.GREEN_BITS=3411]="GREEN_BITS",t[t.BLUE_BITS=3412]="BLUE_BITS",t[t.ALPHA_BITS=3413]="ALPHA_BITS",t[t.DEPTH_BITS=3414]="DEPTH_BITS",t[t.STENCIL_BITS=3415]="STENCIL_BITS",t[t.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",t[t.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",t[t.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",t[t.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",t[t.SAMPLES=32937]="SAMPLES",t[t.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",t[t.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",t[t.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",t[t.VENDOR=7936]="VENDOR",t[t.RENDERER=7937]="RENDERER",t[t.VERSION=7938]="VERSION",t[t.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",t[t.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",t[t.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",t[t.STATIC_DRAW=35044]="STATIC_DRAW",t[t.STREAM_DRAW=35040]="STREAM_DRAW",t[t.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",t[t.ARRAY_BUFFER=34962]="ARRAY_BUFFER",t[t.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",t[t.BUFFER_SIZE=34660]="BUFFER_SIZE",t[t.BUFFER_USAGE=34661]="BUFFER_USAGE",t[t.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",t[t.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",t[t.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",t[t.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",t[t.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",t[t.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",t[t.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",t[t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",t[t.CULL_FACE=2884]="CULL_FACE",t[t.FRONT=1028]="FRONT",t[t.BACK=1029]="BACK",t[t.FRONT_AND_BACK=1032]="FRONT_AND_BACK",t[t.BLEND=3042]="BLEND",t[t.DEPTH_TEST=2929]="DEPTH_TEST",t[t.DITHER=3024]="DITHER",t[t.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",t[t.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",t[t.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",t[t.SCISSOR_TEST=3089]="SCISSOR_TEST",t[t.STENCIL_TEST=2960]="STENCIL_TEST",t[t.NO_ERROR=0]="NO_ERROR",t[t.INVALID_ENUM=1280]="INVALID_ENUM",t[t.INVALID_VALUE=1281]="INVALID_VALUE",t[t.INVALID_OPERATION=1282]="INVALID_OPERATION",t[t.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",t[t.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",t[t.CW=2304]="CW",t[t.CCW=2305]="CCW",t[t.DONT_CARE=4352]="DONT_CARE",t[t.FASTEST=4353]="FASTEST",t[t.NICEST=4354]="NICEST",t[t.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",t[t.BYTE=5120]="BYTE",t[t.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",t[t.SHORT=5122]="SHORT",t[t.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",t[t.INT=5124]="INT",t[t.UNSIGNED_INT=5125]="UNSIGNED_INT",t[t.FLOAT=5126]="FLOAT",t[t.DOUBLE=5130]="DOUBLE",t[t.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",t[t.ALPHA=6406]="ALPHA",t[t.RGB=6407]="RGB",t[t.RGBA=6408]="RGBA",t[t.LUMINANCE=6409]="LUMINANCE",t[t.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",t[t.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",t[t.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",t[t.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",t[t.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",t[t.VERTEX_SHADER=35633]="VERTEX_SHADER",t[t.COMPILE_STATUS=35713]="COMPILE_STATUS",t[t.DELETE_STATUS=35712]="DELETE_STATUS",t[t.LINK_STATUS=35714]="LINK_STATUS",t[t.VALIDATE_STATUS=35715]="VALIDATE_STATUS",t[t.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",t[t.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",t[t.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",t[t.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",t[t.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",t[t.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",t[t.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",t[t.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",t[t.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",t[t.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",t[t.SHADER_TYPE=35663]="SHADER_TYPE",t[t.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",t[t.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",t[t.NEVER=512]="NEVER",t[t.LESS=513]="LESS",t[t.EQUAL=514]="EQUAL",t[t.LEQUAL=515]="LEQUAL",t[t.GREATER=516]="GREATER",t[t.NOTEQUAL=517]="NOTEQUAL",t[t.GEQUAL=518]="GEQUAL",t[t.ALWAYS=519]="ALWAYS",t[t.KEEP=7680]="KEEP",t[t.REPLACE=7681]="REPLACE",t[t.INCR=7682]="INCR",t[t.DECR=7683]="DECR",t[t.INVERT=5386]="INVERT",t[t.INCR_WRAP=34055]="INCR_WRAP",t[t.DECR_WRAP=34056]="DECR_WRAP",t[t.NEAREST=9728]="NEAREST",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.TEXTURE_2D=3553]="TEXTURE_2D",t[t.TEXTURE=5890]="TEXTURE",t[t.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",t[t.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",t[t.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",t[t.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",t[t.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",t[t.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",t[t.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",t[t.TEXTURE0=33984]="TEXTURE0",t[t.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",t[t.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",t[t.FLOAT_VEC2=35664]="FLOAT_VEC2",t[t.FLOAT_VEC3=35665]="FLOAT_VEC3",t[t.FLOAT_VEC4=35666]="FLOAT_VEC4",t[t.INT_VEC2=35667]="INT_VEC2",t[t.INT_VEC3=35668]="INT_VEC3",t[t.INT_VEC4=35669]="INT_VEC4",t[t.BOOL=35670]="BOOL",t[t.BOOL_VEC2=35671]="BOOL_VEC2",t[t.BOOL_VEC3=35672]="BOOL_VEC3",t[t.BOOL_VEC4=35673]="BOOL_VEC4",t[t.FLOAT_MAT2=35674]="FLOAT_MAT2",t[t.FLOAT_MAT3=35675]="FLOAT_MAT3",t[t.FLOAT_MAT4=35676]="FLOAT_MAT4",t[t.SAMPLER_2D=35678]="SAMPLER_2D",t[t.SAMPLER_CUBE=35680]="SAMPLER_CUBE",t[t.LOW_FLOAT=36336]="LOW_FLOAT",t[t.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",t[t.HIGH_FLOAT=36338]="HIGH_FLOAT",t[t.LOW_INT=36339]="LOW_INT",t[t.MEDIUM_INT=36340]="MEDIUM_INT",t[t.HIGH_INT=36341]="HIGH_INT",t[t.FRAMEBUFFER=36160]="FRAMEBUFFER",t[t.RENDERBUFFER=36161]="RENDERBUFFER",t[t.RGBA4=32854]="RGBA4",t[t.RGB5_A1=32855]="RGB5_A1",t[t.RGB565=36194]="RGB565",t[t.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",t[t.STENCIL_INDEX=6401]="STENCIL_INDEX",t[t.STENCIL_INDEX8=36168]="STENCIL_INDEX8",t[t.DEPTH_STENCIL=34041]="DEPTH_STENCIL",t[t.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",t[t.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",t[t.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",t[t.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",t[t.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",t[t.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",t[t.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",t[t.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",t[t.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",t[t.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",t[t.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",t[t.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",t[t.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",t[t.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",t[t.NONE=0]="NONE",t[t.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",t[t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",t[t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",t[t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",t[t.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",t[t.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",t[t.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",t[t.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",t[t.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",t[t.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",t[t.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",t[t.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",t[t.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",t[t.READ_BUFFER=3074]="READ_BUFFER",t[t.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",t[t.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",t[t.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",t[t.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",t[t.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",t[t.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",t[t.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",t[t.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",t[t.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",t[t.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",t[t.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",t[t.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",t[t.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",t[t.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",t[t.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",t[t.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",t[t.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",t[t.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",t[t.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",t[t.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",t[t.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",t[t.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",t[t.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",t[t.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",t[t.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",t[t.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",t[t.RED=6403]="RED",t[t.RGB8=32849]="RGB8",t[t.RGBA8=32856]="RGBA8",t[t.RGB10_A2=32857]="RGB10_A2",t[t.TEXTURE_3D=32879]="TEXTURE_3D",t[t.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",t[t.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",t[t.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",t[t.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",t[t.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",t[t.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",t[t.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",t[t.SRGB=35904]="SRGB",t[t.SRGB8=35905]="SRGB8",t[t.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",t[t.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",t[t.RGBA32F=34836]="RGBA32F",t[t.RGB32F=34837]="RGB32F",t[t.RGBA16F=34842]="RGBA16F",t[t.RGB16F=34843]="RGB16F",t[t.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",t[t.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",t[t.R11F_G11F_B10F=35898]="R11F_G11F_B10F",t[t.RGB9_E5=35901]="RGB9_E5",t[t.RGBA32UI=36208]="RGBA32UI",t[t.RGB32UI=36209]="RGB32UI",t[t.RGBA16UI=36214]="RGBA16UI",t[t.RGB16UI=36215]="RGB16UI",t[t.RGBA8UI=36220]="RGBA8UI",t[t.RGB8UI=36221]="RGB8UI",t[t.RGBA32I=36226]="RGBA32I",t[t.RGB32I=36227]="RGB32I",t[t.RGBA16I=36232]="RGBA16I",t[t.RGB16I=36233]="RGB16I",t[t.RGBA8I=36238]="RGBA8I",t[t.RGB8I=36239]="RGB8I",t[t.RED_INTEGER=36244]="RED_INTEGER",t[t.RGB_INTEGER=36248]="RGB_INTEGER",t[t.RGBA_INTEGER=36249]="RGBA_INTEGER",t[t.R8=33321]="R8",t[t.RG8=33323]="RG8",t[t.R16F=33325]="R16F",t[t.R32F=33326]="R32F",t[t.RG16F=33327]="RG16F",t[t.RG32F=33328]="RG32F",t[t.R8I=33329]="R8I",t[t.R8UI=33330]="R8UI",t[t.R16I=33331]="R16I",t[t.R16UI=33332]="R16UI",t[t.R32I=33333]="R32I",t[t.R32UI=33334]="R32UI",t[t.RG8I=33335]="RG8I",t[t.RG8UI=33336]="RG8UI",t[t.RG16I=33337]="RG16I",t[t.RG16UI=33338]="RG16UI",t[t.RG32I=33339]="RG32I",t[t.RG32UI=33340]="RG32UI",t[t.R8_SNORM=36756]="R8_SNORM",t[t.RG8_SNORM=36757]="RG8_SNORM",t[t.RGB8_SNORM=36758]="RGB8_SNORM",t[t.RGBA8_SNORM=36759]="RGBA8_SNORM",t[t.RGB10_A2UI=36975]="RGB10_A2UI",t[t.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",t[t.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",t[t.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",t[t.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",t[t.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",t[t.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",t[t.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",t[t.HALF_FLOAT=5131]="HALF_FLOAT",t[t.RG=33319]="RG",t[t.RG_INTEGER=33320]="RG_INTEGER",t[t.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",t[t.CURRENT_QUERY=34917]="CURRENT_QUERY",t[t.QUERY_RESULT=34918]="QUERY_RESULT",t[t.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",t[t.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",t[t.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",t[t.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",t[t.DRAW_BUFFER0=34853]="DRAW_BUFFER0",t[t.DRAW_BUFFER1=34854]="DRAW_BUFFER1",t[t.DRAW_BUFFER2=34855]="DRAW_BUFFER2",t[t.DRAW_BUFFER3=34856]="DRAW_BUFFER3",t[t.DRAW_BUFFER4=34857]="DRAW_BUFFER4",t[t.DRAW_BUFFER5=34858]="DRAW_BUFFER5",t[t.DRAW_BUFFER6=34859]="DRAW_BUFFER6",t[t.DRAW_BUFFER7=34860]="DRAW_BUFFER7",t[t.DRAW_BUFFER8=34861]="DRAW_BUFFER8",t[t.DRAW_BUFFER9=34862]="DRAW_BUFFER9",t[t.DRAW_BUFFER10=34863]="DRAW_BUFFER10",t[t.DRAW_BUFFER11=34864]="DRAW_BUFFER11",t[t.DRAW_BUFFER12=34865]="DRAW_BUFFER12",t[t.DRAW_BUFFER13=34866]="DRAW_BUFFER13",t[t.DRAW_BUFFER14=34867]="DRAW_BUFFER14",t[t.DRAW_BUFFER15=34868]="DRAW_BUFFER15",t[t.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",t[t.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",t[t.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",t[t.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",t[t.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",t[t.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",t[t.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",t[t.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",t[t.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",t[t.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",t[t.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",t[t.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",t[t.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",t[t.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",t[t.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",t[t.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",t[t.SAMPLER_3D=35679]="SAMPLER_3D",t[t.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",t[t.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",t[t.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",t[t.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",t[t.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",t[t.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",t[t.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",t[t.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",t[t.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",t[t.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",t[t.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",t[t.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",t[t.MAX_SAMPLES=36183]="MAX_SAMPLES",t[t.SAMPLER_BINDING=35097]="SAMPLER_BINDING",t[t.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",t[t.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",t[t.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",t[t.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",t[t.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",t[t.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",t[t.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",t[t.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",t[t.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",t[t.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",t[t.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",t[t.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",t[t.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",t[t.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",t[t.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",t[t.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",t[t.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",t[t.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",t[t.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",t[t.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",t[t.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",t[t.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",t[t.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",t[t.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",t[t.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",t[t.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",t[t.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",t[t.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",t[t.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",t[t.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",t[t.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",t[t.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",t[t.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",t[t.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",t[t.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",t[t.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",t[t.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",t[t.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",t[t.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",t[t.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",t[t.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",t[t.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",t[t.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",t[t.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",t[t.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",t[t.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",t[t.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",t[t.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",t[t.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",t[t.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",t[t.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",t[t.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",t[t.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",t[t.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",t[t.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",t[t.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",t[t.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",t[t.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",t[t.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",t[t.UNIFORM_TYPE=35383]="UNIFORM_TYPE",t[t.UNIFORM_SIZE=35384]="UNIFORM_SIZE",t[t.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",t[t.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",t[t.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",t[t.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",t[t.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",t[t.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",t[t.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",t[t.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",t[t.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",t[t.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",t[t.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",t[t.OBJECT_TYPE=37138]="OBJECT_TYPE",t[t.SYNC_CONDITION=37139]="SYNC_CONDITION",t[t.SYNC_STATUS=37140]="SYNC_STATUS",t[t.SYNC_FLAGS=37141]="SYNC_FLAGS",t[t.SYNC_FENCE=37142]="SYNC_FENCE",t[t.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",t[t.UNSIGNALED=37144]="UNSIGNALED",t[t.SIGNALED=37145]="SIGNALED",t[t.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",t[t.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",t[t.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",t[t.WAIT_FAILED=37149]="WAIT_FAILED",t[t.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",t[t.COLOR=6144]="COLOR",t[t.DEPTH=6145]="DEPTH",t[t.STENCIL=6146]="STENCIL",t[t.MIN=32775]="MIN",t[t.MAX=32776]="MAX",t[t.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",t[t.STREAM_READ=35041]="STREAM_READ",t[t.STREAM_COPY=35042]="STREAM_COPY",t[t.STATIC_READ=35045]="STATIC_READ",t[t.STATIC_COPY=35046]="STATIC_COPY",t[t.DYNAMIC_READ=35049]="DYNAMIC_READ",t[t.DYNAMIC_COPY=35050]="DYNAMIC_COPY",t[t.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",t[t.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",t[t.INVALID_INDEX=4294967295]="INVALID_INDEX",t[t.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",t[t.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",t[t.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",t[t.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",t[t.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",t[t.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",t[t.R16_EXT=33322]="R16_EXT",t[t.RG16_EXT=33324]="RG16_EXT",t[t.RGB16_EXT=32852]="RGB16_EXT",t[t.RGBA16_EXT=32859]="RGBA16_EXT",t[t.R16_SNORM_EXT=36760]="R16_SNORM_EXT",t[t.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",t[t.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",t[t.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",t[t.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",t[t.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",t[t.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",t[t.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",t[t.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",t[t.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",t[t.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",t[t.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",t[t.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",t[t.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",t[t.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",t[t.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",t[t.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",t[t.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",t[t.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",t[t.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",t[t.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",t[t.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",t[t.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",t[t.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",t[t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",t[t.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",t[t.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",t[t.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",t[t.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",t[t.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",t[t.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",t[t.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",t[t.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",t[t.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",t[t.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",t[t.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",t[t.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",t[t.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",t[t.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",t[t.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",t[t.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",t[t.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",t[t.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",t[t.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",t[t.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",t[t.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",t[t.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",t[t.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",t[t.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",t[t.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",t[t.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",t[t.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",t[t.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",t[t.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",t[t.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",t[t.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",t[t.LINE_WEBGL=6913]="LINE_WEBGL",t[t.FILL_WEBGL=6914]="FILL_WEBGL",t[t.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",t[t.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",t[t.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",t[t.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",t[t.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",t[t.CLIP_DISTANCE2_WEBGL=12290]="CLIP_DISTANCE2_WEBGL",t[t.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",t[t.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",t[t.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",t[t.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",t[t.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",t[t.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",t[t.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",t[t.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",t[t.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",t[t.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",t[t.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",t[t.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",t[t.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",t[t.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",t[t.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",t[t.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",t[t.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",t[t.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"})(vf||(vf={}));var Ax={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},ya=(t,e,r)=>e?t.enable(r):t.disable(r),Az=(t,e,r)=>t.hint(r,e),Kc=(t,e,r)=>t.pixelStorei(r,e),mz=(t,e,r)=>{let i=r===36006?36009:36008;return t.bindFramebuffer(i,e)},px=(t,e,r)=>{let n={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];t.bindBuffer(n,e)};function O3(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}var gz={[3042]:ya,[32773]:(t,e)=>t.blendColor(...e),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(t,e)=>t.clearColor(...e),[3107]:(t,e)=>t.colorMask(...e),[2884]:ya,[2885]:(t,e)=>t.cullFace(e),[2929]:ya,[2931]:(t,e)=>t.clearDepth(e),[2932]:(t,e)=>t.depthFunc(e),[2928]:(t,e)=>t.depthRange(...e),[2930]:(t,e)=>t.depthMask(e),[3024]:ya,[35723]:Az,[35725]:(t,e)=>t.useProgram(e),[36007]:(t,e)=>t.bindRenderbuffer(36161,e),[36389]:(t,e)=>t.bindTransformFeedback?.(36386,e),[34229]:(t,e)=>t.bindVertexArray(e),[36006]:mz,[36010]:mz,[34964]:px,[36662]:px,[36663]:px,[35053]:px,[35055]:px,[2886]:(t,e)=>t.frontFace(e),[33170]:Az,[2849]:(t,e)=>t.lineWidth(e),[32823]:ya,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:ya,[32926]:ya,[32928]:ya,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:ya,[3088]:(t,e)=>t.scissor(...e),[2960]:ya,[2961]:(t,e)=>t.clearStencil(e),[2968]:(t,e)=>t.stencilMaskSeparate(1028,e),[36005]:(t,e)=>t.stencilMaskSeparate(1029,e),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(t,e)=>t.viewport(...e),[34383]:ya,[10754]:ya,[12288]:ya,[12289]:ya,[12290]:ya,[12291]:ya,[12292]:ya,[12293]:ya,[12294]:ya,[12295]:ya,[3333]:Kc,[3317]:Kc,[37440]:Kc,[37441]:Kc,[37443]:Kc,[3330]:Kc,[3332]:Kc,[3331]:Kc,[3314]:Kc,[32878]:Kc,[3316]:Kc,[3315]:Kc,[32877]:Kc,framebuffer:(t,e)=>{let r=e&&"handle"in e?e.handle:e;return t.bindFramebuffer(36160,r)},blend:(t,e)=>e?t.enable(3042):t.disable(3042),blendColor:(t,e)=>t.blendColor(...e),blendEquation:(t,e)=>{let r=typeof e=="number"?[e,e]:e;t.blendEquationSeparate(...r)},blendFunc:(t,e)=>{let r=e?.length===2?[...e,...e]:e;t.blendFuncSeparate(...r)},clearColor:(t,e)=>t.clearColor(...e),clearDepth:(t,e)=>t.clearDepth(e),clearStencil:(t,e)=>t.clearStencil(e),colorMask:(t,e)=>t.colorMask(...e),cull:(t,e)=>e?t.enable(2884):t.disable(2884),cullFace:(t,e)=>t.cullFace(e),depthTest:(t,e)=>e?t.enable(2929):t.disable(2929),depthFunc:(t,e)=>t.depthFunc(e),depthMask:(t,e)=>t.depthMask(e),depthRange:(t,e)=>t.depthRange(...e),dither:(t,e)=>e?t.enable(3024):t.disable(3024),derivativeHint:(t,e)=>{t.hint(35723,e)},frontFace:(t,e)=>t.frontFace(e),mipmapHint:(t,e)=>t.hint(33170,e),lineWidth:(t,e)=>t.lineWidth(e),polygonOffsetFill:(t,e)=>e?t.enable(32823):t.disable(32823),polygonOffset:(t,e)=>t.polygonOffset(...e),sampleCoverage:(t,e)=>t.sampleCoverage(...e),scissorTest:(t,e)=>e?t.enable(3089):t.disable(3089),scissor:(t,e)=>t.scissor(...e),stencilTest:(t,e)=>e?t.enable(2960):t.disable(2960),stencilMask:(t,e)=>{e=O3(e)?e:[e,e];let[r,i]=e;t.stencilMaskSeparate(1028,r),t.stencilMaskSeparate(1029,i)},stencilFunc:(t,e)=>{e=O3(e)&&e.length===3?[...e,...e]:e;let[r,i,n,o,s,l]=e;t.stencilFuncSeparate(1028,r,i,n),t.stencilFuncSeparate(1029,o,s,l)},stencilOp:(t,e)=>{e=O3(e)&&e.length===3?[...e,...e]:e;let[r,i,n,o,s,l]=e;t.stencilOpSeparate(1028,r,i,n),t.stencilOpSeparate(1029,o,s,l)},viewport:(t,e)=>t.viewport(...e)};function Ys(t,e,r){return e[t]!==void 0?e[t]:r[t]}var _z={blendEquation:(t,e,r)=>t.blendEquationSeparate(Ys(32777,e,r),Ys(34877,e,r)),blendFunc:(t,e,r)=>t.blendFuncSeparate(Ys(32969,e,r),Ys(32968,e,r),Ys(32971,e,r),Ys(32970,e,r)),polygonOffset:(t,e,r)=>t.polygonOffset(Ys(32824,e,r),Ys(10752,e,r)),sampleCoverage:(t,e,r)=>t.sampleCoverage(Ys(32938,e,r),Ys(32939,e,r)),stencilFuncFront:(t,e,r)=>t.stencilFuncSeparate(1028,Ys(2962,e,r),Ys(2967,e,r),Ys(2963,e,r)),stencilFuncBack:(t,e,r)=>t.stencilFuncSeparate(1029,Ys(34816,e,r),Ys(36003,e,r),Ys(36004,e,r)),stencilOpFront:(t,e,r)=>t.stencilOpSeparate(1028,Ys(2964,e,r),Ys(2965,e,r),Ys(2966,e,r)),stencilOpBack:(t,e,r)=>t.stencilOpSeparate(1029,Ys(34817,e,r),Ys(34818,e,r),Ys(34819,e,r))},D3={enable:(t,e)=>t({[e]:!0}),disable:(t,e)=>t({[e]:!1}),pixelStorei:(t,e,r)=>t({[e]:r}),hint:(t,e,r)=>t({[e]:r}),useProgram:(t,e)=>t({[35725]:e}),bindRenderbuffer:(t,e,r)=>t({[36007]:r}),bindTransformFeedback:(t,e,r)=>t({[36389]:r}),bindVertexArray:(t,e)=>t({[34229]:e}),bindFramebuffer:(t,e,r)=>{switch(e){case 36160:return t({[36006]:r,[36010]:r});case 36009:return t({[36006]:r});case 36008:return t({[36010]:r});default:return null}},bindBuffer:(t,e,r)=>{let i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[e];return i?t({[i]:r}):{valueChanged:!0}},blendColor:(t,e,r,i,n)=>t({[32773]:new Float32Array([e,r,i,n])}),blendEquation:(t,e)=>t({[32777]:e,[34877]:e}),blendEquationSeparate:(t,e,r)=>t({[32777]:e,[34877]:r}),blendFunc:(t,e,r)=>t({[32969]:e,[32968]:r,[32971]:e,[32970]:r}),blendFuncSeparate:(t,e,r,i,n)=>t({[32969]:e,[32968]:r,[32971]:i,[32970]:n}),clearColor:(t,e,r,i,n)=>t({[3106]:new Float32Array([e,r,i,n])}),clearDepth:(t,e)=>t({[2931]:e}),clearStencil:(t,e)=>t({[2961]:e}),colorMask:(t,e,r,i,n)=>t({[3107]:[e,r,i,n]}),cullFace:(t,e)=>t({[2885]:e}),depthFunc:(t,e)=>t({[2932]:e}),depthRange:(t,e,r)=>t({[2928]:new Float32Array([e,r])}),depthMask:(t,e)=>t({[2930]:e}),frontFace:(t,e)=>t({[2886]:e}),lineWidth:(t,e)=>t({[2849]:e}),polygonOffset:(t,e,r)=>t({[32824]:e,[10752]:r}),sampleCoverage:(t,e,r)=>t({[32938]:e,[32939]:r}),scissor:(t,e,r,i,n)=>t({[3088]:new Int32Array([e,r,i,n])}),stencilMask:(t,e)=>t({[2968]:e,[36005]:e}),stencilMaskSeparate:(t,e,r)=>t({[e===1028?2968:36005]:r}),stencilFunc:(t,e,r,i)=>t({[2962]:e,[2967]:r,[2963]:i,[34816]:e,[36003]:r,[36004]:i}),stencilFuncSeparate:(t,e,r,i,n)=>t({[e===1028?2962:34816]:r,[e===1028?2967:36003]:i,[e===1028?2963:36004]:n}),stencilOp:(t,e,r,i)=>t({[2964]:e,[2965]:r,[2966]:i,[34817]:e,[34818]:r,[34819]:i}),stencilOpSeparate:(t,e,r,i,n)=>t({[e===1028?2964:34817]:r,[e===1028?2965:34818]:i,[e===1028?2966:34819]:n}),viewport:(t,e,r,i,n)=>t({[2978]:[e,r,i,n]})},xf=(t,e)=>t.isEnabled(e),L3={[3042]:xf,[2884]:xf,[2929]:xf,[3024]:xf,[32823]:xf,[32926]:xf,[32928]:xf,[3089]:xf,[2960]:xf,[35977]:xf},yz=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function Ah(t,e){if(dne(e))return;let r={};for(let n in e){let o=Number(n),s=gz[n];s&&(typeof s=="string"?r[s]=!0:s(t,e[n],o))}let i=t.state&&t.state.cache;if(i)for(let n in r){let o=_z[n];o(t,e,i)}}function rT(t,e=Ax){if(typeof e=="number"){let n=e,o=L3[n];return o?o(t,n):t.getParameter(n)}let r=Array.isArray(e)?e:Object.keys(e),i={};for(let n of r){let o=L3[n];i[n]=o?o(t,Number(n)):t.getParameter(Number(n))}return i}function vz(t){Ah(t,Ax)}function dne(t){for(let e in t)return!1;return!0}function xz(t,e){if(t===e)return!0;let r=Array.isArray(t)||ArrayBuffer.isView(t),i=Array.isArray(e)||ArrayBuffer.isView(e);if(r&&i&&t.length===e.length){for(let n=0;n<t.length;++n)if(t[n]!==e[n])return!1;return!0}return!1}var F3=class{gl;program=null;stateStack=[];enable=!0;cache;log;constructor(e,{copyState:r=!1,log:i=()=>{}}={}){this.gl=e,this.cache=r?rT(e):Object.assign({},Ax),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(e={}){this.stateStack.push({})}pop(){Yi(this.stateStack.length>0);let e=this.stateStack[this.stateStack.length-1];Ah(this.gl,e),this.stateStack.pop()}_updateCache(e){let r=!1,i,n=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in e){Yi(o!==void 0);let s=e[o],l=this.cache[o];xz(s,l)||(r=!0,i=l,n&&!(o in n)&&(n[o]=l),this.cache[o]=s)}return{valueChanged:r,oldValue:i}}};function om(t){return t.state}function N3(t,e){let{enable:r=!0,copyState:i}=e;if(Yi(i!==void 0),!t.state){t.state=new F3(t,{copyState:i}),Ane(t);for(let o in D3){let s=D3[o];pne(t,o,s)}bz(t,"getParameter"),bz(t,"isEnabled")}let n=om(t);return n.enable=r,t}function Ip(t){let e=om(t);e||(N3(t,{copyState:!1}),e=om(t)),e.push()}function gd(t){let e=om(t);Yi(e),e.pop()}function bz(t,e){let r=t[e].bind(t);t[e]=function(n){if(n===void 0||yz.has(n))return r(n);let o=om(t);return n in o.cache||(o.cache[n]=r(n)),o.enable?o.cache[n]:r(n)},Object.defineProperty(t[e],"name",{value:`${e}-from-cache`,configurable:!1})}function pne(t,e,r){if(!t[e])return;let i=t[e].bind(t);t[e]=function(...o){let s=om(t),{valueChanged:l,oldValue:u}=r(s._updateCache,...o);return l&&i(...o),u},Object.defineProperty(t[e],"name",{value:`${e}-to-cache`,configurable:!1})}function Ane(t){let e=t.useProgram.bind(t);t.useProgram=function(i){let n=om(t);n.program!==i&&(e(i),n.program=i)}}var mne={powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function wz(t,e){e={...mne,...e};let r=null,i=o=>r=o.statusMessage||r;t.addEventListener("webglcontextcreationerror",i,!1);let n=null;if(n||=t.getContext("webgl2",e),t.removeEventListener("webglcontextcreationerror",i,!1),!n)throw new Error(`Failed to create WebGL context: ${r||"Unknown error"}`);if(e.onContextLost){let{onContextLost:o}=e;t.addEventListener("webglcontextlost",s=>o(s),!1)}if(e.onContextRestored){let{onContextRestored:o}=e;t.addEventListener("webglcontextrestored",s=>o(s),!1)}return n}function Iu(t,e,r){return r[e]===void 0&&(r[e]=t.getExtension(e)||null),r[e]}function Tz(t,e){let r=t.getParameter(7936),i=t.getParameter(7937);Iu(t,"WEBGL_debug_renderer_info",e);let n=e.WEBGL_debug_renderer_info,o=t.getParameter(n?n.UNMASKED_VENDOR_WEBGL:7936),s=t.getParameter(n?n.UNMASKED_RENDERER_WEBGL:7937),l=o||r,u=s||i,f=t.getParameter(7938),v=Ez(l,u),T=gne(l,u),E=_ne(l,u);return{type:"webgl",gpu:v,gpuType:E,gpuBackend:T,vendor:l,renderer:u,version:f,shadingLanguage:"glsl",shadingLanguageVersion:300}}function Ez(t,e){return/NVIDIA/i.exec(t)||/NVIDIA/i.exec(e)?"nvidia":/INTEL/i.exec(t)||/INTEL/i.exec(e)?"intel":/Apple/i.exec(t)||/Apple/i.exec(e)?"apple":/AMD/i.exec(t)||/AMD/i.exec(e)||/ATI/i.exec(t)||/ATI/i.exec(e)?"amd":/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e)?"software":"unknown"}function gne(t,e){return/Metal/i.exec(t)||/Metal/i.exec(e)?"metal":/ANGLE/i.exec(t)||/ANGLE/i.exec(e)?"opengl":"unknown"}function _ne(t,e){if(/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e))return"cpu";switch(Ez(t,e)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function iT(t){switch(t){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(t))}var Fl="texture-compression-bc",Ho="texture-compression-astc",bf="texture-compression-etc2",yne="texture-compression-etc1-webgl",nT="texture-compression-pvrtc-webgl",k3="texture-compression-atc-webgl",mx="float32-renderable-webgl",U3="float16-renderable-webgl",vne="rgb9e5ufloat_renderable-webgl",z3="snorm8-renderable-webgl",gx="norm16-renderable-webgl",V3="snorm16-renderable-webgl",oT="float32-filterable",Sz="float16-filterable-webgl",_x="WEBGL_compressed_texture_s3tc",yx="WEBGL_compressed_texture_s3tc_srgb",V0="EXT_texture_compression_rgtc",j0="EXT_texture_compression_bptc",xne="WEBGL_compressed_texture_etc",bne="WEBGL_compressed_texture_astc",wne="WEBGL_compressed_texture_etc1",Tne="WEBGL_compressed_texture_pvrtc",Ene="WEBGL_compressed_texture_atc",Cz="EXT_texture_norm16",Mz="EXT_render_snorm",Sne="EXT_color_buffer_float",sT={"float32-renderable-webgl":["EXT_color_buffer_float"],"float16-renderable-webgl":["EXT_color_buffer_half_float"],"rgb9e5ufloat_renderable-webgl":["WEBGL_render_shared_exponent"],"snorm8-renderable-webgl":[Mz],"norm16-renderable-webgl":[Cz],"snorm16-renderable-webgl":[Cz,Mz],"float32-filterable":["OES_texture_float_linear"],"float16-filterable-webgl":["OES_texture_half_float_linear"],"texture-filterable-anisotropic-webgl":["EXT_texture_filter_anisotropic"],"texture-blend-float-webgl":["EXT_float_blend"],"texture-compression-bc":[_x,yx,V0,j0],"texture-compression-bc5-webgl":[V0],"texture-compression-bc7-webgl":[j0],"texture-compression-etc2":[xne],"texture-compression-astc":[bne],"texture-compression-etc1-webgl":[wne],"texture-compression-pvrtc-webgl":[Tne],"texture-compression-atc-webgl":[Ene]};function Iz(t){return t in sT}function Pz(t,e,r){return(sT[e]||[]).every(n=>Iu(t,n,r))}var aT={"rgb8unorm-unsized":{gl:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,rb:!0},r8snorm:{gl:36756,b:1,c:1,render:z3},r8uint:{gl:33330,b:1,c:1,rb:!0},r8sint:{gl:33329,b:1,c:1,rb:!0},rg8unorm:{gl:33323,b:2,c:2,rb:!0},rg8snorm:{gl:36757,b:2,c:2,render:z3},rg8uint:{gl:33336,b:2,c:2,rb:!0},rg8sint:{gl:33335,b:2,c:2,rb:!0},r16uint:{gl:33332,b:2,c:1,rb:!0},r16sint:{gl:33331,b:2,c:1,rb:!0},r16float:{gl:33325,b:2,c:1,render:U3,filter:"float16-filterable-webgl",rb:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:gx,rb:!0},"r16snorm-webgl":{gl:36760,b:2,c:1,f:V3},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,rb:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,rb:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,rb:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,b:4,c:4,bpp:4},rgba8snorm:{gl:36759,b:4,c:4,render:z3},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:U3,filter:Sz,rb:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,render:gx},"rg16snorm-webgl":{gl:36761,b:2,c:2,render:V3},r32uint:{gl:33334,b:4,c:1,bpp:4,rb:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,rb:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:mx,filter:oT},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:vne},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:mx,rb:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,rb:!0},"rgb10a2uint-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,rb:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:gx},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:gx},rg32uint:{gl:33340,b:8,c:2,rb:!0},rg32sint:{gl:33339,b:8,c:2,rb:!0},rg32float:{gl:33328,b:8,c:2,render:mx,filter:oT,rb:!0},rgba16uint:{gl:36214,b:8,c:4,rb:!0},rgba16sint:{gl:36232,b:8,c:4,rb:!0},rgba16float:{gl:34842,b:8,c:4,render:U3,filter:Sz},"rgba16unorm-webgl":{gl:32859,b:2,c:4,render:gx,rb:!0},"rgba16snorm-webgl":{gl:36763,b:2,c:4,render:V3},"rgb32float-webgl":{gl:34837,render:mx,filter:oT,gl2ext:Sne,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,rb:!0},rgba32sint:{gl:36226,b:16,c:4,rb:!0},rgba32float:{gl:34836,b:16,c:4,render:mx,filter:oT,rb:!0},stencil8:{gl:36168,b:1,c:1,attachment:36128,rb:!0},depth16unorm:{gl:33189,b:2,c:1,attachment:36096,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096,dataFormat:6402,types:[5125]},depth32float:{gl:36012,b:4,c:1,attachment:36096,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,dataFormat:34041,types:[34042],rb:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:_x,f:Fl},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:yx,f:Fl},"bc1-rgba-unorm":{gl:33777,x:_x,f:Fl},"bc1-rgba-unorm-srgb":{gl:35916,x:yx,f:Fl},"bc2-rgba-unorm":{gl:33778,x:_x,f:Fl},"bc2-rgba-unorm-srgb":{gl:35918,x:yx,f:Fl},"bc3-rgba-unorm":{gl:33779,x:_x,f:Fl},"bc3-rgba-unorm-srgb":{gl:35919,x:yx,f:Fl},"bc4-r-unorm":{gl:36283,x:V0,f:Fl},"bc4-r-snorm":{gl:36284,x:V0,f:Fl},"bc5-rg-unorm":{gl:36285,x:V0,f:Fl},"bc5-rg-snorm":{gl:36286,x:V0,f:Fl},"bc6h-rgb-ufloat":{gl:36495,x:j0,f:Fl},"bc6h-rgb-float":{gl:36494,x:j0,f:Fl},"bc7-rgba-unorm":{gl:36492,x:j0,f:Fl},"bc7-rgba-unorm-srgb":{gl:36493,x:j0,f:Fl},"etc2-rgb8unorm":{gl:37492,f:bf},"etc2-rgb8unorm-srgb":{gl:37494,f:bf},"etc2-rgb8a1unorm":{gl:37496,f:bf},"etc2-rgb8a1unorm-srgb":{gl:37497,f:bf},"etc2-rgba8unorm":{gl:37493,f:bf},"etc2-rgba8unorm-srgb":{gl:37495,f:bf},"eac-r11unorm":{gl:37488,f:bf},"eac-r11snorm":{gl:37489,f:bf},"eac-rg11unorm":{gl:37490,f:bf},"eac-rg11snorm":{gl:37491,f:bf},"astc-4x4-unorm":{gl:37808,f:Ho},"astc-4x4-unorm-srgb":{gl:37840,f:Ho},"astc-5x4-unorm":{gl:37809,f:Ho},"astc-5x4-unorm-srgb":{gl:37841,f:Ho},"astc-5x5-unorm":{gl:37810,f:Ho},"astc-5x5-unorm-srgb":{gl:37842,f:Ho},"astc-6x5-unorm":{gl:37811,f:Ho},"astc-6x5-unorm-srgb":{gl:37843,f:Ho},"astc-6x6-unorm":{gl:37812,f:Ho},"astc-6x6-unorm-srgb":{gl:37844,f:Ho},"astc-8x5-unorm":{gl:37813,f:Ho},"astc-8x5-unorm-srgb":{gl:37845,f:Ho},"astc-8x6-unorm":{gl:37814,f:Ho},"astc-8x6-unorm-srgb":{gl:37846,f:Ho},"astc-8x8-unorm":{gl:37815,f:Ho},"astc-8x8-unorm-srgb":{gl:37847,f:Ho},"astc-10x5-unorm":{gl:37819,f:Ho},"astc-10x5-unorm-srgb":{gl:37851,f:Ho},"astc-10x6-unorm":{gl:37817,f:Ho},"astc-10x6-unorm-srgb":{gl:37849,f:Ho},"astc-10x8-unorm":{gl:37818,f:Ho},"astc-10x8-unorm-srgb":{gl:37850,f:Ho},"astc-10x10-unorm":{gl:37819,f:Ho},"astc-10x10-unorm-srgb":{gl:37851,f:Ho},"astc-12x10-unorm":{gl:37820,f:Ho},"astc-12x10-unorm-srgb":{gl:37852,f:Ho},"astc-12x12-unorm":{gl:37821,f:Ho},"astc-12x12-unorm-srgb":{gl:37853,f:Ho},"pvrtc-rgb4unorm-webgl":{gl:35840,f:nT},"pvrtc-rgba4unorm-webgl":{gl:35842,f:nT},"pvrtc-rbg2unorm-webgl":{gl:35841,f:nT},"pvrtc-rgba2unorm-webgl":{gl:35843,f:nT},"etc1-rbg-unorm-webgl":{gl:36196,f:yne},"atc-rgb-unorm-webgl":{gl:35986,f:k3},"atc-rgba-unorm-webgl":{gl:35986,f:k3},"atc-rgbai-unorm-webgl":{gl:34798,f:k3}},Cne={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},Mne={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function lT(t,e,r){let i=aT[e];if(!i||i.gl===void 0)return!1;let n=i.x||i.gl2ext;return n?Boolean(Iu(t,n,r)):!0}function j3(t){let r=aT[t]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${t}`);return r}function Rz(t,e,r){if(!lT(t,e,r)||e.startsWith("depth")||e.startsWith("stencil"))return!1;try{if(Y2(e).signed)return!1}catch{return!1}return e.endsWith("32float")?Boolean(Iu(t,"OES_texture_float_linear, extensions",r)):e.endsWith("16float")?Boolean(Iu(t,"OES_texture_half_float_linear, extensions",r)):!0}function Bz(t,e,r){return!(!lT(t,e,r)||typeof e=="number")}function H0(t){let e=aT[t],r=j3(t),i=Y2(t);return{format:r,dataFormat:e?.dataFormat||Ine(i.format,i.integer,i.normalized,r),type:i.dataType?iT(i.dataType):e?.types?.[0]||5121,compressed:i.compressed}}function Oz(t){let e=aT[t];if(!e?.attachment)throw new Error(`${t} is not a depth stencil format`);return e.attachment}function H3(t){let e=H0(t),r=Cne[e.dataFormat]||4,i=Mne[e.type]||1;return r*i}function Ine(t,e,r,i){if(i===6408||i===6407)return i;switch(t){case"r":return e&&!r?36244:6403;case"rg":return e&&!r?33320:33319;case"rgb":return e&&!r?36248:6407;case"rgba":return e&&!r?36249:6408;default:return 6408}}var Dz={"depth-clip-control":"EXT_depth_clamp","timer-query-webgl":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"},cT=class extends lx{gl;extensions;testedFeatures=new Set;constructor(e,r,i){super([],i),this.gl=e,this.extensions=r,Iu(e,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let e=this.getFeatures();for(let r of e)this.has(r)&&(yield r);return[]}has(e){return this.disabledFeatures[e]?!1:(this.testedFeatures.has(e)||(this.testedFeatures.add(e),Iz(e)&&Pz(this.gl,e,this.extensions)&&this.features.add(e),this.getWebGLFeature(e)&&this.features.add(e)),this.features.has(e))}initializeFeatures(){let e=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of e)this.has(r)}getFeatures(){return[...Object.keys(Dz),...Object.keys(sT)]}getWebGLFeature(e){let r=Dz[e];return Boolean(typeof r=="string"?Iu(this.gl,r,this.extensions):r)}};var uT=class extends ax{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderComponents(){return this.getParameter(35659)}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(e){super(),this.gl=e}getParameter(e){return this.limits[e]===void 0&&(this.limits[e]=this.gl.getParameter(e)),this.limits[e]}};function Pu(t,e,r){if(Pne(e))return r(t);let{nocatch:i=!0}=e;Ip(t),Ah(t,e);let n;if(i)n=r(t),gd(t);else try{n=r(t)}finally{gd(t)}return n}function Pne(t){for(let e in t)return!1;return!0}function Fz(t,e,r,i){if(Tp(e))return i(t);let n=t;Ip(n.gl);try{return Rne(t,e),Ah(n.gl,r),i(t)}finally{gd(n.gl)}}function Rne(t,e){let r=t,{gl:i}=r;if(e.cullMode)switch(e.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(e.frontFace&&i.frontFace(sm("frontFace",e.frontFace,{ccw:2305,cw:2304})),e.unclippedDepth&&t.features.has("depth-clip-control")&&i.enable(34383),e.depthBias!==void 0&&(i.enable(32823),i.polygonOffset(e.depthBias,e.depthBiasSlopeScale||0)),e.provokingVertex&&t.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,s=sm("provokingVertex",e.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(s)}if((e.polygonMode||e.polygonOffsetLine)&&t.features.has("polygon-mode-webgl")){if(e.polygonMode){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,s=sm("polygonMode",e.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,s),o?.polygonModeWEBGL(1029,s)}e.polygonOffsetLine&&i.enable(10754)}if(t.features.has("shader-clip-cull-distance-webgl")&&(e.clipDistance0&&i.enable(12288),e.clipDistance1&&i.enable(12289),e.clipDistance2&&i.enable(12290),e.clipDistance3&&i.enable(12291),e.clipDistance4&&i.enable(12292),e.clipDistance5&&i.enable(12293),e.clipDistance6&&i.enable(12294),e.clipDistance7&&i.enable(12295)),e.depthWriteEnabled!==void 0&&i.depthMask(One("depthWriteEnabled",e.depthWriteEnabled)),e.depthCompare&&(e.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(fT("depthCompare",e.depthCompare))),e.stencilWriteMask){let n=e.stencilWriteMask;i.stencilMaskSeparate(1028,n),i.stencilMaskSeparate(1029,n)}if(e.stencilReadMask&&Zt.warn("stencilReadMask not supported under WebGL"),e.stencilCompare){let n=e.stencilReadMask||4294967295,o=fT("depthCompare",e.stencilCompare);e.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,n),i.stencilFuncSeparate(1029,o,0,n)}if(e.stencilPassOperation&&e.stencilFailOperation&&e.stencilDepthFailOperation){let n=G3("stencilPassOperation",e.stencilPassOperation),o=G3("stencilFailOperation",e.stencilFailOperation),s=G3("stencilDepthFailOperation",e.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,s,n),i.stencilOpSeparate(1029,o,s,n)}if(e.blendColorOperation||e.blendAlphaOperation){i.enable(3042);let n=Lz("blendColorOperation",e.blendColorOperation||"add"),o=Lz("blendAlphaOperation",e.blendAlphaOperation||"add");i.blendEquationSeparate(n,o);let s=hT("blendColorSrcFactor",e.blendColorSrcFactor||"one"),l=hT("blendColorDstFactor",e.blendColorDstFactor||"zero"),u=hT("blendAlphaSrcFactor",e.blendAlphaSrcFactor||"one"),f=hT("blendAlphaDstFactor",e.blendAlphaDstFactor||"zero");i.blendFuncSeparate(s,l,u,f)}}function fT(t,e){return sm(t,e,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function G3(t,e){return sm(t,e,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function Lz(t,e){return sm(t,e,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function hT(t,e){return sm(t,e,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,"constant-color":32769,"one-minus-constant-color":32770,"constant-alpha":32771,"one-minus-constant-alpha":32772})}function Bne(t,e){return`Illegal parameter ${e} for ${t}`}function sm(t,e,r){if(!(e in r))throw new Error(Bne(t,e));return r[e]}function One(t,e){return e}function dT(t){let e={};return t.addressModeU&&(e[10242]=W3(t.addressModeU)),t.addressModeV&&(e[10243]=W3(t.addressModeV)),t.addressModeW&&(e[32882]=W3(t.addressModeW)),t.magFilter&&(e[10240]=Nz(t.magFilter)),(t.minFilter||t.mipmapFilter)&&(e[10241]=Dne(t.minFilter||"linear",t.mipmapFilter)),t.lodMinClamp!==void 0&&(e[33082]=t.lodMinClamp),t.lodMaxClamp!==void 0&&(e[33083]=t.lodMaxClamp),t.type==="comparison-sampler"&&(e[34892]=34894),t.compare&&(e[34893]=fT("compare",t.compare)),t.maxAnisotropy&&(e[34046]=t.maxAnisotropy),e}function W3(t){switch(t){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function Nz(t){switch(t){case"nearest":return 9728;case"linear":return 9729}}function Dne(t,e){if(!e)return Nz(t);switch(t){case"nearest":return e==="nearest"?9984:9986;case"linear":return e==="nearest"?9985:9987}}var $l=class extends Xi{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength;bytesUsed;constructor(e,r={}){super(e,r),this.device=e,this.gl=this.device.gl;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),e.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=Lne(this.props.usage),this.glUsage=Fne(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}_initWithData(e,r=0,i=e.byteLength+r){let n=this.glTarget;this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.glUsage),this.gl.bufferSubData(n,r,e),this.gl.bindBuffer(n,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(e,r,i),this.trackAllocatedMemory(i)}_initWithByteLength(e){Yi(e>=0);let r=e;e===0&&(r=new Float32Array(0));let i=this.glTarget;return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,null),this.bytesUsed=e,this.byteLength=e,this._setDebugData(null,0,e),this.trackAllocatedMemory(e),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(e,r=0){this.gl.bindBuffer(36663,this.handle),this.gl.bufferSubData(36663,r,e),this.gl.bindBuffer(36663,null),this._setDebugData(e,r,e.byteLength)}async readAsync(e=0,r){return this.readSyncWebGL(e,r)}readSyncWebGL(e=0,r){r=r??this.byteLength-e;let i=new Uint8Array(r),n=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,e,i,n,r),this.gl.bindBuffer(36662,null),this._setDebugData(i,e,r),i}};function Lne(t){return t&Xi.INDEX?34963:t&Xi.VERTEX?34962:t&Xi.UNIFORM?35345:34962}function Fne(t){return t&Xi.INDEX||t&Xi.VERTEX?35044:t&Xi.UNIFORM?35048:35044}var am=class extends Mp{device;handle;parameters;constructor(e,r){super(e,r),this.device=e,this.parameters=dT(r),this.handle=this.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(e){for(let[r,i]of Object.entries(e)){let n=Number(r);switch(n){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,n,i);break;default:this.device.gl.samplerParameteri(this.handle,n,i);break}}}};var mh=class extends Sp{device;gl;handle;texture;constructor(e,r){super(e,{...bo.defaultProps,...r}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}};var Nne={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},pT=class extends bo{MAX_ATTRIBUTES;device;gl;handle;sampler=void 0;view=void 0;glFormat=void 0;type=void 0;dataFormat=void 0;mipmaps=void 0;target;textureUnit=void 0;loaded=!1;_video;constructor(e,r){super(e,{...Nne,format:"rgba8unorm",...r}),this.device=e,this.gl=this.device.gl,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=kne(this.props),this.loaded=!1,typeof this.props?.data=="string"&&Object.assign(this.props,{data:P3(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}createView(e){return new mh(this.device,{...e,texture:this})}initialize(e={}){if(this.props.dimension==="cube")return this.initializeCube(e);let r=e.data;if(r instanceof Promise)return r.then(z=>this.initialize(Object.assign({},e,{pixels:z,data:z}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(e)),this;let{parameters:n={}}=e,{pixels:o=null,pixelStore:s={},textureUnit:l=void 0,mipmaps:u=!0}=e;r||(r=o);let{width:f,height:v,dataFormat:T,type:E,compressed:M=!1}=e,{depth:O=0}=e,F=j3(e.format);return{width:f,height:v,compressed:M,dataFormat:T,type:E}=this._deduceParameters({format:e.format,type:E,dataFormat:T,compressed:M,data:r,width:f,height:v}),this.width=f,this.height=v,this.glFormat=F,this.type=E,this.dataFormat=T,this.textureUnit=l,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),this.mipmaps=u,this.setImageData({data:r,width:f,height:v,depth:O,format:e.format,type:E,dataFormat:T,parameters:s,compressed:M}),this.setSampler(e.sampler),this._setSamplerParameters(n),this.view=this.createView({...this.props,mipLevelCount:1,arrayLayerCount:1}),u&&this.device.isTextureFormatFilterable(e.format)&&this.generateMipmap(),i&&(this._video={video:r,parameters:n,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(e){let{mipmaps:r=!0,parameters:i={}}=e;return this.setCubeMapImageData(e).then(()=>{this.loaded=!0,r&&this.generateMipmap(e),this.setSampler(e.sampler),this._setSamplerParameters(i)}),this}setSampler(e={}){let r;e instanceof am?(this.sampler=e,r=e.props):(this.sampler=new am(this.device,e),r=e);let i=dT(r);return this._setSamplerParameters(i),this}resize(e){let{height:r,width:i,mipmaps:n=!1}=e;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:n}):this}update(){if(this._video){let{video:e,parameters:r,lastTime:i}=this._video;if(i===e.currentTime||e.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:e,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=e.currentTime}}generateMipmap(e={}){return this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),Pu(this.gl,e,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this}setImageData(e){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(e);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:n=0,glFormat:o=this.glFormat,offset:s=0,parameters:l={}}=e,{data:u=null,type:f=this.type,width:v=this.width,height:T=this.height,dataFormat:E=this.dataFormat,compressed:M=!1}=e;u||(u=i),{type:f,dataFormat:E,compressed:M,width:v,height:T}=this._deduceParameters({format:this.props.format,type:f,dataFormat:E,compressed:M,data:u,width:v,height:T});let{gl:O}=this;O.bindTexture(this.target,this.handle);let F=null;if({data:u,dataType:F}=this._getDataType({data:u,compressed:M}),Pu(this.gl,l,()=>{switch(F){case"null":O.texImage2D(r,n,o,v,T,0,E,f,u);break;case"typed-array":O.texImage2D(r,n,o,v,T,0,E,f,u,s);break;case"buffer":this.device.gl.bindBuffer(35052,u.handle||u),this.device.gl.texImage2D(r,n,o,v,T,0,E,f,s),this.device.gl.bindBuffer(35052,null);break;case"browser-object":O.texImage2D(r,n,o,v,T,0,E,f,u);break;case"compressed":for(let[z,W]of u.entries())O.compressedTexImage2D(r,z,W.format,W.width,W.height,0,W.data);break;default:Yi(!1,"Unknown image data type")}}),u&&u.byteLength)this.trackAllocatedMemory(u.byteLength,"Texture");else{let z=H3(this.props.format);this.trackAllocatedMemory(this.width*this.height*z,"Texture")}return this.loaded=!0,this}setSubImageData({target:e=this.target,pixels:r=null,data:i=null,x:n=0,y:o=0,width:s=this.width,height:l=this.height,level:u=0,glFormat:f=this.glFormat,type:v=this.type,dataFormat:T=this.dataFormat,compressed:E=!1,offset:M=0,parameters:O={}}){if({type:v,dataFormat:T,compressed:E,width:s,height:l}=this._deduceParameters({format:this.props.format,type:v,dataFormat:T,compressed:E,data:i,width:s,height:l}),Yi(this.depth===1,"texSubImage not supported for 3D textures"),i||(i=r),i&&i.data){let F=i;i=F.data,s=F.shape[0],l=F.shape[1]}i instanceof $l&&(i=i.handle),this.gl.bindTexture(this.target,this.handle),Pu(this.gl,O,()=>{E?this.gl.compressedTexSubImage2D(e,u,n,o,s,l,f,i):i===null?this.gl.texSubImage2D(e,u,n,o,s,l,T,v,null):ArrayBuffer.isView(i)?this.gl.texSubImage2D(e,u,n,o,s,l,T,v,i,M):typeof WebGLBuffer<"u"&&i instanceof WebGLBuffer?(this.device.gl.bindBuffer(35052,i),this.device.gl.texSubImage2D(e,u,n,o,s,l,T,v,M),this.device.gl.bindBuffer(35052,null)):this.device.gl.texSubImage2D(e,u,n,o,s,l,T,v,i)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(e={}){return Zt.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(e=this.textureUnit){let{gl:r}=this;return e!==void 0&&(this.textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.target,this.handle),e}unbind(e=this.textureUnit){let{gl:r}=this;return e!==void 0&&(this.textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.target,null),e}_getDataType({data:e,compressed:r=!1}){return r?{data:e,dataType:"compressed"}:e===null?{data:e,dataType:"null"}:ArrayBuffer.isView(e)?{data:e,dataType:"typed-array"}:e instanceof $l?{data:e.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer?{data:e,dataType:"buffer"}:{data:e,dataType:"browser-object"}}_deduceParameters(e){let{format:r,data:i}=e,{width:n,height:o,dataFormat:s,type:l,compressed:u}=e,f=H0(r);return s=s||f.dataFormat,l=l||f.type,u=u||f.compressed,{width:n,height:o}=this._deduceImageSize(i,n,o),{dataFormat:s,type:l,compressed:u,width:n,height:o,format:r,data:i}}_deduceImageSize(e,r,i){let n;return typeof ImageData<"u"&&e instanceof ImageData?n={width:e.width,height:e.height}:typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement?n={width:e.naturalWidth,height:e.naturalHeight}:typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement?n={width:e.width,height:e.height}:typeof ImageBitmap<"u"&&e instanceof ImageBitmap?n={width:e.width,height:e.height}:typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement?n={width:e.videoWidth,height:e.videoHeight}:e?n={width:r,height:i}:n={width:r>=0?r:1,height:i>=0?i:1},Yi(n,"Could not deduced texture size"),Yi(r===void 0||n.width===r,"Deduced texture width does not match supplied width"),Yi(i===void 0||n.height===i,"Deduced texture height does not match supplied height"),n}async setCubeMapImageData(e){let{gl:r}=this,{width:i,height:n,pixels:o,data:s,format:l=6408,type:u=5121}=e,f=o||s,v=await Promise.all(pT.FACES.map(T=>{let E=f[T];return Promise.all(Array.isArray(E)?E:[E])}));this.bind(),pT.FACES.forEach((T,E)=>{v[E].length>1&&this.props.mipmaps!==!1&&Zt.warn(`${this.id} has mipmap and multiple LODs.`)(),v[E].forEach((M,O)=>{i&&n?r.texImage2D(T,O,l,i,n,0,l,u,M):r.texImage2D(T,O,l,l,u,M)})}),this.unbind()}setImageDataForFace(e){let{face:r,width:i,height:n,pixels:o,data:s,format:l=6408,type:u=5121}=e,{gl:f}=this,v=o||s;return this.bind(),v instanceof Promise?v.then(T=>this.setImageDataForFace(Object.assign({},e,{face:r,data:T,pixels:T}))):this.width||this.height?f.texImage2D(r,0,l,i,n,0,l,u,v):f.texImage2D(r,0,l,l,u,v),this}setImageData3D(e){let{level:r=0,dataFormat:i,format:n,type:o,width:s,height:l,depth:u=1,offset:f=0,data:v,parameters:T={}}=e;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let E=H0(n);if(Pu(this.gl,T,()=>{ArrayBuffer.isView(v)&&this.gl.texImage3D(this.target,r,E.format,s,l,u,0,E.dataFormat,E.type,v),v instanceof $l&&(this.gl.bindBuffer(35052,v.handle),this.gl.texImage3D(this.target,r,i,s,l,u,0,n,o,f))}),v&&v.byteLength)this.trackAllocatedMemory(v.byteLength,"Texture");else{let M=H3(this.props.format);this.trackAllocatedMemory(this.width*this.height*this.depth*M,"Texture")}return this.loaded=!0,this}_setSamplerParameters(e){if(!Tp(e)){Une(e),this.gl.bindTexture(this.target,this.handle);for(let[r,i]of Object.entries(e)){let n=Number(r),o=i;switch(n){case 33082:case 33083:this.gl.texParameterf(this.target,n,o);break;default:this.gl.texParameteri(this.target,n,o);break}}this.gl.bindTexture(this.target,null)}}},ec=pT;Yr(ec,"FACES",[34069,34070,34071,34072,34073,34074]);function kne(t){switch(t.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(t.dimension)}}function Une(t){Zt.log(1,"texture sampler parameters",t)()}var wf=class extends yf{device;gl;handle;get texture(){return this.colorAttachments[0]}constructor(e,r){super(e,r);let i=r.handle===null;if(this.device=e,this.gl=e.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),!i){e.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures();let n=this.gl.bindFramebuffer(36160,this.handle);for(let o=0;o<this.colorAttachments.length;++o){let s=this.colorAttachments[o],l=36064+o;s&&this._attachOne(l,s)}if(this.depthStencilAttachment&&this._attachOne(Oz(this.depthStencilAttachment.props.format),this.depthStencilAttachment),r.check!==!1){let o=this.gl.checkFramebufferStatus(36160);if(o!==36053)throw new Error(`Framebuffer ${Vne(o)}`)}this.gl.bindFramebuffer(36160,n)}}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}createDepthStencilTexture(e){return new ec(this.device,{id:`${this.id}-depth-stencil`,format:e,width:this.width,height:this.height,mipmaps:!1})}resizeAttachments(e,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;e===void 0&&(e=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.texture.resize({width:e,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.texture.resize({width:e,height:r}),this}_attachOne(e,r){if(Array.isArray(r)){let[i,n=0,o=0]=r;return this._attachTexture(e,i,n,o),i}if(r instanceof ec)return this._attachTexture(e,r,0,0),r;if(r instanceof mh){let i=r;return this._attachTexture(e,i.texture,i.props.baseMipLevel,i.props.baseArrayLayer),r.texture}throw new Error("attach")}_attachTexture(e,r,i,n){let{gl:o}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:o.framebufferTextureLayer(36160,e,r.target,n,i);break;case 34067:let s=zne(i);o.framebufferTexture2D(36160,e,s,r.handle,n);break;case 3553:o.framebufferTexture2D(36160,e,3553,r.handle,n);break;default:Yi(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function zne(t){return t<34069?t+34069:t}function Vne(t){switch(t){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${t}`}}var AT=class extends Ep{device;presentationSize;_framebuffer=null;constructor(e,r){super(r),this.device=e,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new wf(this.device,{handle:null}),this._framebuffer}update(){let e=this.getPixelSize();(e[0]!==this.presentationSize[0]||e[1]!==this.presentationSize[1])&&(this.presentationSize=e,this.resize())}resize(e){if(this.device.gl&&this.canvas){let r=this.getDevicePixelRatio(e?.useDevicePixels);this.setDevicePixelRatio(r,e);return}}commit(){}};var jne={spector:Zt.get("spector")||Zt.get("spectorjs")},Hne="https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",Gne=1,wc=null,kz=!1;async function Uz(t){if(!globalThis.SPECTOR)try{await fx(Hne)}catch(e){Zt.warn(String(e))}}function zz(t){if(t={...jne,...t},!t?.spector||(!wc&&globalThis.SPECTOR&&(Zt.probe(Gne,"SPECTOR found and initialized")(),wc=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=wc)),!wc))return null;if(kz||(kz=!0,wc.spyCanvases(),wc?.onCaptureStarted.add(e=>Zt.info("Spector capture started:",e)()),wc?.onCapture.add(e=>{Zt.info("Spector capture complete:",e)(),wc?.getResultUI(),wc?.resultView.display(),wc?.resultView.addCapture(e)})),t?.canvas){if(typeof t.spector=="string"&&t.spector!==t.canvas.id)return wc;wc?.startCapture(t?.canvas,500),new Promise(e=>setTimeout(e,2e3)).then(e=>{Zt.info("Spector capture stopped after 2 seconds")(),wc?.stopCapture()})}return wc}var Wne="https://unpkg.com/webgl-debug@2.0.1/index.js";function Vz(t){return t.luma=t.luma||{},t.luma}async function jz(){Ol()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await fx(Wne))}function Hz(t,e={}){return t?e.debug?Xne(t,e):qne(t):null}function qne(t){let e=Vz(t);return e.realContext?e.realContext:t}function Xne(t,e){if(!globalThis.WebGLDebugUtils)return Zt.warn("webgl-debug not loaded")(),t;let r=Vz(t);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...vf,...t});let i=globalThis.WebGLDebugUtils.makeDebugContext(t,Yne.bind(null,e),Kne.bind(null,e));for(let s in vf)!(s in i)&&typeof vf[s]=="number"&&(i[s]=vf[s]);class n{}Object.setPrototypeOf(i,Object.getPrototypeOf(t)),Object.setPrototypeOf(n,i);let o=Object.create(n);return r.realContext=t,r.debugContext=o,o.debug=!0,o}function q3(t,e){e=Array.from(e).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(t,e);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${t}(${r})`}function Yne(t,e,r,i){i=Array.from(i).map(l=>l===void 0?"undefined":l);let n=globalThis.WebGLDebugUtils.glEnumToString(e),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),s=`${n} in gl.${r}(${o})`;Zt.error(s)();debugger;if(t.throwOnError)throw new Error(s)}function Kne(t,e,r){let i="";if(Zt.level>=1&&(i=q3(e,r),Zt.log(1,i)()),t.break&&t.break.length>0&&(i=i||q3(e,r),t.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let n of r)if(n===void 0){if(i=i||q3(e,r),t.throwOnError)throw new Error(`Undefined argument: ${i}`);Zt.error(`Undefined argument: ${i}`)();debugger}}function Wz(t){let e=t.split(/\r?\n/),r=[];for(let i of e){if(i.length<=1)continue;let n=i.split(":");if(n.length===2){let[T,E]=n;r.push({message:E.trim(),type:Gz(T),lineNum:0,linePos:0});continue}let[o,s,l,...u]=n,f=parseInt(l,10);isNaN(f)&&(f=0);let v=parseInt(s,10);isNaN(v)&&(v=0),r.push({message:u.join(":").trim(),type:Gz(o),lineNum:f,linePos:v})}return r}function Gz(t){let e=["warning","error","info"],r=t.toLowerCase();return e.includes(r)?r:"info"}var mT=class extends Cp{device;handle;constructor(e,r){switch(super(e,r),this.device=e,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let e=this.device.gl.getShaderInfoLog(this.handle);return Wz(e)}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)}async _compile(e){e=(n=>n.startsWith("#version ")?n:`#version 100
553
- ${n}`)(e);let{gl:i}=this.device;if(i.shaderSource(this.handle,e),i.compileShader(this.handle),Zt.level===0){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}Zt.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Zt.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}};var Zne=256,Jne=1024,Qne=16384,X3=6144,$ne=[1,2,4,8],gT=class extends L0{device;glParameters;constructor(e,r){super(e,r),this.device=e,Ip(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){gd(this.device.gl)}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){let r={...this.glParameters};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,e.viewport&&(e.viewport.length>=6?(r.viewport=e.viewport.slice(0,4),r.depthRange=[e.viewport[4],e.viewport[5]]):r.viewport=e.viewport),e.scissorRect&&(r.scissorTest=!0,r.scissor=e.scissorRect),e.blendConstant&&(r.blendColor=e.blendConstant),e.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),e[2967]=e.stencilReference),e.colorMask&&(r.colorMask=$ne.map(i=>Boolean(i&e.colorMask))),this.glParameters=r,Ah(this.device.gl,r)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Qne,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Zne,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=Jne,e.clearStencil=this.props.clearStencil),r!==0&&Pu(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){Pu(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl.clearBufferiv(X3,e,r);break;case Uint32Array:this.device.gl.clearBufferuiv(X3,e,r);break;case Float32Array:default:this.device.gl.clearBufferfv(X3,e,r);break}})}};var eoe="Failed to deduce GL constant from typed array";function qz(t){switch(ArrayBuffer.isView(t)?t.constructor:t){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(eoe)}}function vx(t,e){let{clamped:r=!0}=e||{};switch(t){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var toe={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},roe={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Pp=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(e){return vx(e.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(e){return Yi(e.size),vx(e.type||5126).BYTES_PER_ELEMENT*e.size}static resolve(...e){return new Pp(toe,...e)}constructor(...e){e.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return Pp.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return Pp.getBytesPerVertex(this)}_assign(e={}){return e=I3("Accessor",e,roe),e.type!==void 0&&(this.type=e.type,(e.type===5124||e.type===5125)&&(this.integer=!0)),e.size!==void 0&&(this.size=e.size),e.offset!==void 0&&(this.offset=e.offset),e.stride!==void 0&&(this.stride=e.stride),e.normalize!==void 0&&(this.normalized=e.normalize),e.normalized!==void 0&&(this.normalized=e.normalized),e.integer!==void 0&&(this.integer=e.integer),e.divisor!==void 0&&(this.divisor=e.divisor),e.buffer!==void 0&&(this.buffer=e.buffer),e.index!==void 0&&(typeof e.index=="boolean"?this.index=e.index?1:0:this.index=e.index),e.instanced!==void 0&&(this.divisor=e.instanced?1:0),e.isInstanced!==void 0&&(this.divisor=e.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Xz(t){return ioe.includes(t)}var ioe=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],Yz={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function Y3(t){let e=Yz[t];if(!e)throw new Error("uniform");let[r,i,,n]=e;return{format:n,components:i,glType:r}}function Kz(t){let e=Yz[t];if(!e)throw new Error("attribute");let[,r,,i,n]=e;return{attributeType:i,vertexFormat:n,components:r}}function Zz(t,e){let r={attributes:[],bindings:[]};r.attributes=noe(t,e);let i=aoe(t,e);for(let l of i){let u=l.uniforms.map(f=>({name:f.name,format:f.format,byteOffset:f.byteOffset,byteStride:f.byteStride,arrayLength:f.arrayLength}));r.bindings.push({type:"uniform",name:l.name,location:l.location,visibility:(l.vertex?1:0)&(l.fragment?2:0),minBindingSize:l.byteLength,uniforms:u})}let n=soe(t,e),o=0;for(let l of n)if(Xz(l.type)){let{viewDimension:u,sampleType:f}=coe(l.type);r.bindings.push({type:"texture",name:l.name,location:o,viewDimension:u,sampleType:f}),l.textureUnit=o,o+=1}n.length&&(r.uniforms=n);let s=ooe(t,e);return s?.length&&(r.varyings=s),r}function noe(t,e){let r=[],i=t.getProgramParameter(e,35721);for(let n=0;n<i;n++){let o=t.getActiveAttrib(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l}=o,u=t.getAttribLocation(e,s);if(u>=0){let{attributeType:f}=Kz(l),v=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:u,stepMode:v,type:f})}}return r.sort((n,o)=>n.location-o.location),r}function ooe(t,e){let r=[],i=t.getProgramParameter(e,35971);for(let n=0;n<i;n++){let o=t.getTransformFeedbackVarying(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l,size:u}=o,{glType:f,components:v}=Y3(l),T=new Pp({type:f,size:u*v}),E={location:n,name:s,accessor:T};r.push(E)}return r.sort((n,o)=>n.location-o.location),r}function soe(t,e){let r=[],i=t.getProgramParameter(e,35718);for(let n=0;n<i;n++){let o=t.getActiveUniform(e,n);if(!o)throw new Error("activeInfo");let{name:s,size:l,type:u}=o,{name:f,isArray:v}=uoe(s),T=t.getUniformLocation(e,f),E={location:T,name:f,size:l,type:u,isArray:v};if(r.push(E),E.size>1)for(let M=0;M<E.size;M++){let O=`${f}[${M}]`;T=t.getUniformLocation(e,O);let F={...E,name:O,location:T};r.push(F)}}return r}function aoe(t,e){let r=(o,s)=>t.getActiveUniformBlockParameter(e,o,s),i=[],n=t.getProgramParameter(e,35382);for(let o=0;o<n;o++){let s={name:t.getActiveUniformBlockName(e,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},l=r(o,35395)||[],u=t.getActiveUniforms(e,l,35383),f=t.getActiveUniforms(e,l,35384),v=t.getActiveUniforms(e,l,35387),T=t.getActiveUniforms(e,l,35388);for(let E=0;E<s.uniformCount;++E){let M=t.getActiveUniform(e,l[E]);if(!M)throw new Error("activeInfo");s.uniforms.push({name:M.name,format:Y3(u[E]).format,type:u[E],arrayLength:f[E],byteOffset:v[E],byteStride:T[E]})}i.push(s)}return i.sort((o,s)=>o.location-s.location),i}var loe={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function coe(t){let e=loe[t];if(!e)throw new Error("sampler");let[r,i]=e;return{viewDimension:r,sampleType:i}}function uoe(t){if(t[t.length-1]!=="]")return{name:t,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(t);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${t}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Jz(t,e,r,i){let n=t,o=i;o===!0&&(o=1),o===!1&&(o=0);let s=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,i);case 5126:return t.uniform1fv(e,s);case 35664:return t.uniform2fv(e,s);case 35665:return t.uniform3fv(e,s);case 35666:return t.uniform4fv(e,s);case 5124:return t.uniform1iv(e,s);case 35667:return t.uniform2iv(e,s);case 35668:return t.uniform3iv(e,s);case 35669:return t.uniform4iv(e,s);case 35670:return t.uniform1iv(e,s);case 35671:return t.uniform2iv(e,s);case 35672:return t.uniform3iv(e,s);case 35673:return t.uniform4iv(e,s);case 5125:return n.uniform1uiv(e,s,1);case 36294:return n.uniform2uiv(e,s,2);case 36295:return n.uniform3uiv(e,s,3);case 36296:return n.uniform4uiv(e,s,4);case 35674:return t.uniformMatrix2fv(e,!1,s);case 35675:return t.uniformMatrix3fv(e,!1,s);case 35676:return t.uniformMatrix4fv(e,!1,s);case 35685:return n.uniformMatrix2x3fv(e,!1,s);case 35686:return n.uniformMatrix2x4fv(e,!1,s);case 35687:return n.uniformMatrix3x2fv(e,!1,s);case 35688:return n.uniformMatrix3x4fv(e,!1,s);case 35689:return n.uniformMatrix4x2fv(e,!1,s);case 35690:return n.uniformMatrix4x3fv(e,!1,s)}throw new Error("Illegal uniform")}function Qz(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(t)}}function $z(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(t)}}var e5=4,_T=class extends ph{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(e,r){super(e,r),this.device=e,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=r.vs,this.fs=r.fs;let{varyings:i,bufferMode:n=35981}=r;switch(i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,n)),this._linkShaders(),Zt.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Zz(this.device.gl,this.handle),Zt.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=b3(this.introspectedLayout,r.shaderLayout),this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":Zt.warn(`Primitive topology ${this.props.topology} is deprecated and will be removed in v9.1`);break;default:}}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(e,r){for(let[i,n]of Object.entries(e)){let o=this.shaderLayout.bindings.find(s=>s.name===i)||this.shaderLayout.bindings.find(s=>s.name===`${i}Uniforms`);if(!o){let s=this.shaderLayout.bindings.map(l=>`"${l.name}"`).join(", ");r?.disableWarnings||Zt.warn(`Unknown binding "${i}" in render pipeline "${this.id}", expected one of ${s}`)();continue}switch(n||Zt.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(n instanceof $l)&&!(n.buffer instanceof $l))throw new Error("buffer value");break;case"texture":if(!(n instanceof mh||n instanceof ec||n instanceof wf))throw new Error("texture value");break;case"sampler":Zt.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=n}}draw(e){let{renderPass:r,parameters:i=this.props.parameters,topology:n=this.props.topology,vertexArray:o,vertexCount:s,instanceCount:l,isInstanced:u=!1,firstVertex:f=0,transformFeedback:v}=e,T=Qz(n),E=Boolean(o.indexBuffer),M=o.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return Zt.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable()||s===0)return Zt.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;if(s===0)return Zt.info(2,`RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)(),!0;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),v&&v.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let O=r;return Fz(this.device,i,O.glParameters,()=>{E&&u?this.device.gl.drawElementsInstanced(T,s||0,M,f,l||0):E?this.device.gl.drawElements(T,s||0,M,f):u?this.device.gl.drawArraysInstanced(T,f,s||0,l||0):this.device.gl.drawArrays(T,f,s||0),v&&v.end()}),o.unbindAfterRender(r),!0}setUniformsWebGL(e){let{bindings:r}=nm(e);Object.keys(r).forEach(i=>{Zt.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,e)}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),Zt.time(e5,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),Zt.timeEnd(e5,`linkProgram for ${this.id}`)(),Zt.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}Zt.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),Zt.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}_reportLinkStatus(e){switch(e){case"success":return;default:throw this.vs.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`)):this.fs?.compilationStatus==="error"?(this.fs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`)):new Error(`Error during ${e}: ${this.device.gl.getProgramInfoLog(this.handle)}`)}}_getLinkStatus(){let{gl:e}=this.device;return e.getProgramParameter(this.handle,35714)?(e.validateProgram(this.handle),e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation")):(this.linkStatus="error","linking")}async _waitForLinkComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await e(10)}}_areTexturesRenderable(){let e=!0;for(let[,r]of Object.entries(this.bindings))r instanceof ec&&(r.update(),e=e&&r.loaded);return e}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:e}=this.device;e.useProgram(this.handle);let r=0,i=0;for(let n of this.shaderLayout.bindings){let o=this.bindings[n.name]||this.bindings[n.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${n.name} in ${this.id}`);switch(n.type){case"uniform":let{name:s}=n,l=e.getUniformBlockIndex(this.handle,s);if(l===4294967295)throw new Error(`Invalid uniform block name ${s}`);e.uniformBlockBinding(this.handle,i,l),o instanceof $l?e.bindBufferBase(35345,i,o.handle):e.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof mh||o instanceof ec||o instanceof wf))throw new Error("texture");let u;if(o instanceof mh)u=o.texture;else if(o instanceof ec)u=o;else if(o instanceof wf&&o.colorAttachments[0]instanceof mh)Zt.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),u=o.colorAttachments[0].texture;else throw new Error("No texture");e.activeTexture(33984+r),e.bindTexture(u.target,u.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${n.type}' not supported in WebGL`)}}}_applyUniforms(){for(let e of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:n,textureUnit:o}=e,s=this.uniforms[r]??o;s!==void 0&&Jz(this.device.gl,i,n,s)}}};var yT=class extends N0{device;commands=[];constructor(e){super(e,{}),this.device=e}submitCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":hoe(this.device,r.options);break;case"copy-buffer-to-texture":foe(this.device,r.options);break;case"copy-texture-to-buffer":doe(this.device,r.options);break;case"copy-texture-to-texture":poe(this.device,r.options);break}}};function hoe(t,e){let r=e.source,i=e.destination;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,i.handle),t.gl.copyBufferSubData(36662,36663,e.sourceOffset??0,e.destinationOffset??0,e.size),t.gl.bindBuffer(36662,null),t.gl.bindBuffer(36663,null)}function foe(t,e){throw new Error("Not implemented")}function doe(t,e){let{source:r,mipLevel:i=0,aspect:n="all",width:o=e.source.width,height:s=e.source.height,depthOrArrayLayers:l=0,origin:u=[0,0],destination:f,byteOffset:v=0,bytesPerRow:T,rowsPerImage:E}=e;if(n!=="all")throw new Error("not supported");if(i!==0||l!==0||T||E)throw new Error("not implemented");let{framebuffer:M,destroyFramebuffer:O}=t5(r),F;try{let z=f,W=o||M.width,J=s||M.height,K=H0(M.texture.props.format),ne=K.dataFormat,ge=K.type;t.gl.bindBuffer(35051,z.handle),F=t.gl.bindFramebuffer(36160,M.handle),t.gl.readPixels(u[0],u[1],W,J,ne,ge,v)}finally{t.gl.bindBuffer(35051,null),F!==void 0&&t.gl.bindFramebuffer(36160,F),O&&M.destroy()}}function poe(t,e){let{source:r,destinationMipLevel:i=0,origin:n=[0,0],destinationOrigin:o=[0,0],destination:s}=e,{width:l=e.destination.width,height:u=e.destination.height}=e,{framebuffer:f,destroyFramebuffer:v}=t5(r),[T,E]=n,[M,O,F]=o,z=t.gl.bindFramebuffer(36160,f.handle),W=null,J;if(s instanceof ec)W=s,l=Number.isFinite(l)?l:W.width,u=Number.isFinite(u)?u:W.height,W.bind(0),J=W.target;else throw new Error("invalid destination");switch(J){case 3553:case 34067:t.gl.copyTexSubImage2D(J,i,M,O,T,E,l,u);break;case 35866:case 32879:t.gl.copyTexSubImage3D(J,i,M,O,F,T,E,l,u);break;default:}W&&W.unbind(),t.gl.bindFramebuffer(36160,z),v&&f.destroy()}function t5(t){if(t instanceof bo){let{width:e,height:r,id:i}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${i}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var vT=class extends F0{device;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new yT(e)}destroy(){}finish(){this.commandBuffer.submitCommands()}copyBufferToBuffer(e){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:e})}copyBufferToTexture(e){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:e})}copyTextureToBuffer(e){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:e})}copyTextureToTexture(e){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:e})}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}resolveQuerySet(e,r,i){}};var G0=class extends k0{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return PP()==="Chrome"}constructor(e,r){super(e,r),this.device=e,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(e){let r=e;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(e,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:n,type:o,stride:s,offset:l,normalized:u,integer:f,divisor:v}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),f?this.device.gl.vertexAttribIPointer(e,n,o,s,l):this.device.gl.vertexAttribPointer(e,n,o,u,s,l),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,v||0),this.attributes[e]=i,this.device.gl.bindVertexArray(null)}setConstantWebGL(e,r){this._enable(e,!1),this.attributes[e]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let e=0;e<this.maxVertexAttributes;++e){let r=this.attributes[e];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(e,r)}}_getAccessor(e){let r=this.attributeInfos[e];if(!r)throw new Error(`Unknown attribute location ${e}`);let i=iT(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let n=G0.isConstantAttributeZeroSupported(this.device)||e!==0;(r||n)&&(e=Number(e),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(e):this.device.gl.disableVertexAttribArray(e),this.device.gl.bindVertexArray(null))}getConstantBuffer(e,r){let i=Aoe(r),n=i.byteLength*e,o=i.length*e;if(this.buffer&&n!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${n} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:n}),s=s||!moe(i,this.bufferValue),s){let l=S3(r.constructor,o);C3({target:l,source:i,start:0,count:o}),this.buffer.write(l),this.bufferValue=r}return this.buffer}};function Aoe(t){return Array.isArray(t)?new Float32Array(t):t}function moe(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var xT=class extends U0{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(e,r){super(e,r),this.device=e,this.gl=e.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(e="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback($z(e))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(e){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in e)this.setBuffer(r,e[r])})}setBuffer(e,r){let i=this._getVaryingIndex(e),{buffer:n,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(i<0){this.unusedBuffers[e]=n,Zt.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[i]={buffer:n,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(i,n,s,o)}getBuffer(e){if(r5(e))return this.buffers[e]||null;let r=this._getVaryingIndex(e);return r>=0?this.buffers[r]:null}bind(e=this.handle){if(typeof e!="function")return this.gl.bindTransformFeedback(36386,e),this;let r;return this._bound?r=e():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=e(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(e){if(e instanceof $l)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:i=0,byteLength:n=e.buffer.byteLength}=e;return{buffer:r,byteOffset:i,byteLength:n}}_getVaryingIndex(e){if(r5(e))return Number(e);for(let r of this.layout.varyings)if(e===r.name)return r.location;return-1}_bindBuffers(){for(let e in this.buffers){let{buffer:r,byteLength:i,byteOffset:n}=this._getBufferRange(this.buffers[e]);this._bindBuffer(Number(e),r,n,i)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,i=0,n){let o=r&&r.handle;!o||n===void 0?this.gl.bindBufferBase(35982,e,o):this.gl.bindBufferRange(35982,e,o,i,n)}};function r5(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var bT=class extends z0{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(e,r){if(super(e,r),this.device=e,r.count>1)throw new Error("WebGL QuerySet can only have one value");this.handle=this.device.gl.createQuery(),Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(e){return this._begin(e?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(e){this._queryPending||(this.target=e,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let e=this.device.gl.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(e=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,n)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>e?(n("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};function K3(t){switch(t){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Yi(!1),0}}function i5(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return Yi(!1),0}}function n5(t,e){let{sourceX:r=0,sourceY:i=0,sourceFormat:n=6408,sourceAttachment:o=36064}=e||{},{target:s=null,sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=s5(t);Yi(v);let{gl:E,handle:M}=v;l=l||v.width,u=u||v.height;let O=o-36064;f=f||v.colorAttachments[O]?.texture?.type||5121,s=_oe(s,f,n,l,u),f=f||qz(s);let F=E.bindFramebuffer(36160,M);return E.readPixels(r,i,l,u,n,f,s),E.bindFramebuffer(36160,F||null),T&&v.destroy(),s}function o5(t,e){let{target:r,sourceX:i=0,sourceY:n=0,sourceFormat:o=6408,targetByteOffset:s=0}=e||{},{sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=s5(t);Yi(v),l=l||v.width,u=u||v.height;let E=v;f=f||5121;let M=r;if(!M){let F=K3(o),z=i5(f),W=s+l*u*F*z;M=E.device.createBuffer({byteLength:W})}let O=t.device.createCommandEncoder();return O.copyTextureToBuffer({source:t,width:l,height:u,origin:[i,n],destination:M,byteOffset:s}),O.destroy(),T&&v.destroy(),M}function s5(t){return t instanceof yf?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:goe(t),deleteFramebuffer:!0}}function goe(t,e){let{device:r,width:i,height:n,id:o}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${o}`,width:i,height:n,colorAttachments:[t]})}function _oe(t,e,r,i,n){if(t)return t;e=e||5121;let o=vx(e,{clamped:!1}),s=K3(r);return new o(i*n*s)}var yoe=256,voe=1024,xoe=16384;var boe="clear: bad arguments";function a5(t,e){let{framebuffer:r=null,color:i=null,depth:n=null,stencil:o=null}=e||{},s={};r&&(s.framebuffer=r);let l=0;i&&(l|=xoe,i!==!0&&(s.clearColor=i)),n&&(l|=yoe,n!==!0&&(s.clearDepth=n)),o&&(l|=voe,n!==!0&&(s.clearStencil=n)),Yi(l!==0,boe);let u=t.gl;Pu(u,s,()=>{u.clear(l)})}var xx=1,W0=class extends Yc{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;static isSupported(){return typeof WebGL2RenderingContext<"u"}static attach(e){if(e instanceof W0)return e;if(e?.device instanceof Yc)return e.device;if(!woe(e))throw new Error("Invalid WebGL2RenderingContext");return new W0({gl:e})}static async create(e={}){Zt.groupCollapsed(xx,"WebGLDevice created")();let r=[];e.debug&&r.push(jz()),e.spector&&r.push(Uz()),typeof e.canvas=="string"&&r.push(Ep.pageLoaded);let i=await Promise.allSettled(r);for(let s of i)s.status==="rejected"&&Zt.error(`Failed to initialize debug libraries ${s.reason}`)();if(Zt.probe(xx+1,"DOM is loaded")(),e.gl?.device)return Zt.warn("reattaching existing device")(),W0.attach(e.gl);let n=new W0(e),o=`Created ${n.type}${n.debug?" debug":""} context: ${n.info.vendor}, ${n.info.renderer} for canvas: ${n.canvasContext.id}`;return Zt.probe(xx,o)(),Zt.table(xx,n.info)(),Zt.groupEnd(xx)(),n}constructor(e){super({...e,id:e.id||oa("webgl-device")});let r=e.gl?.device;if(r)throw new Error(`WebGL context already attached to device ${r.id}`);let i=e.gl?.canvas||e.canvas;this.canvasContext=new AT(this,{...e,canvas:i}),this.lost=new Promise(l=>{this._resolveContextLost=l});let n=e.gl||null;if(n||=wz(this.canvasContext.canvas,{...e,onContextLost:l=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."})}),!n)throw new Error("WebGL context creation failed");this.handle=n,this.gl=n,this.gl.device=this,this.gl._version=2,e.spector&&(this.spectorJS=zz({...this.props,canvas:this.handle.canvas})),this.info=Tz(this.gl,this._extensions),this.limits=new uT(this.gl),this.features=new cT(this.gl,this._extensions,this.props.disabledFeatures),this.props.initalizeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize();let{enable:o=!0,copyState:s=!1}=e;N3(this.gl,{enable:o,copyState:s,log:(...l)=>Zt.log(1,...l)()}),e.debug&&(this.gl=Hz(this.gl,{...e,throwOnError:!0}),this.debug=!0,Zt.level=Math.max(Zt.level,1),Zt.warn("WebGL debug mode activated. Performance reduced.")())}destroy(){}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(e){return lT(this.gl,e,this._extensions)}isTextureFormatFilterable(e){return Rz(this.gl,e,this._extensions)}isTextureFormatRenderable(e){return Bz(this.gl,e,this._extensions)}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createBuffer(e){let r=this._getBufferProps(e);return new $l(this,r)}_createTexture(e){return new ec(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new am(this,e)}createShader(e){return new mT(this,e)}createFramebuffer(e){return new wf(this,e)}createVertexArray(e){return new G0(this,e)}createTransformFeedback(e){return new xT(this,e)}createQuerySet(e){return new bT(this,e)}createRenderPipeline(e){return new _T(this,e)}beginRenderPass(e){return new gT(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(e){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(e){return new vT(this,e)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(e,r){return n5(e,r)}readPixelsToBufferWebGL(e,r){return o5(e,r)}setParametersWebGL(e){Ah(this.gl,e)}getParametersWebGL(e){return rT(this.gl,e)}withParametersWebGL(e,r){return Pu(this.gl,e,r)}clearWebGL(e){a5(this,e)}resetWebGL(){Zt.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),vz(this.gl)}gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;loseDevice(){let e=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(e=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){Ip(this.gl)}popState(){gd(this.gl)}setSpectorMetadata(e,r){e.__SPECTOR_Metadata=r}getGLKey(e,r){r=r||this.gl2||this.gl;let i=Number(e);for(let n in r)if(r[n]===i)return`GL.${n}`;return String(e)}_constants;setConstantAttributeWebGL(e,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let n=this._constants[e];switch(n&&Coe(n,r)&&Zt.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:Toe(this,e,r);break;case Int32Array:Eoe(this,e,r);break;case Uint32Array:Soe(this,e,r);break;default:Yi(!1)}}getExtension(e){return Iu(this.gl,e,this._extensions),this._extensions}},Tf=W0;Yr(Tf,"type","webgl");function woe(t){return typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext?!0:Boolean(t&&Number.isFinite(t._version))}function Toe(t,e,r){switch(r.length){case 1:t.gl.vertexAttrib1fv(e,r);break;case 2:t.gl.vertexAttrib2fv(e,r);break;case 3:t.gl.vertexAttrib3fv(e,r);break;case 4:t.gl.vertexAttrib4fv(e,r);break;default:Yi(!1)}}function Eoe(t,e,r){t.gl.vertexAttribI4iv(e,r)}function Soe(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function Coe(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var l5,c5,h5={fontFamily:'"Helvetica Neue", Helvetica, Arial, sans-serif',display:"flex",flex:"wrap",maxWidth:"500px",flexDirection:"column",zIndex:2};function wT(){return document.createElement("div")}function Moe(t){if(!t.picked)return null;if(t.object===l5)return c5;let e={html:Poe(t.object),style:h5};return c5=e,l5=t.object,e}var Ioe=new Set(["position","index"]);function Poe(t){let e=wT();for(let r in t){if(Ioe.has(r))continue;let i=wT();i.className="header",i.textContent=r;let n=wT();n.className="value",n.textContent=Boe(t[r]);let o=wT();Roe(o,i,n),o.appendChild(i),o.appendChild(n),e.appendChild(o)}return e.innerHTML}function Roe(t,e,r){Object.assign(e.style,{fontWeight:700,marginRight:"10px",flex:"1 1 0%"}),Object.assign(r.style,{flex:"none",maxWidth:"250px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),Object.assign(t.style,{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"stretch"})}function Boe(t){let e;if(Array.isArray(t)&&t.length>4)e=`Array<${t.length}>`;else if(typeof t=="string")e=t;else if(typeof t=="number")e=String(t);else try{e=JSON.stringify(t)}catch{e="<Non-Serializable Object>"}let r=50;return e.length>r&&(e=e.slice(0,r)),e}function u5(t,e){let r,i=t,n="properties",o=/{[^}]*}/g,s=u=>u.replace(/[{}]/g,""),l=[...new Set(t.match(o).map(s))];for(let u of l){if(u.includes(".")){r=e;let f=u.split(".");for(let v of f)if(r.hasOwnProperty(v))r=r[v];else{r=void 0;break}}else e.hasOwnProperty(u)?r=e[u]:e[n]&&e[n].hasOwnProperty(u)?r=e[n][u]:r=void 0;i=i.replaceAll(`{${u}}`,r)}return i}function Z3(t){return t?t.html||t.text?e=>{if(!e.picked)return null;let r={style:t.style||h5};return t.html?r.html=u5(t.html,e.object):r.text=u5(t.text,e.object),r}:Moe:null}function f5(t){let e=document.createElement("link");e.type="text/css",e.rel="stylesheet",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}function d5(t,e){let r=document.createElement("div");return r.style.width=Number.isFinite(t)?`${t}px`:t,r.style.height=`${e}px`,r.style.position="relative",r}var A5=ga(p5()),Ooe="https://api.tiles.mapbox.com/mapbox-gl-js/v1.13.2/mapbox-gl.css",$3=A5.default;function m5(t=Ooe){f5(t)}function g5(){let t=["mapboxgl-missing-css"];for(let e of t){let r=document.getElementsByClassName(e)[0];r&&r.style&&(r.style.display="none")}}var eR={};function _5(t){if(!eR[t]){let e=document.createElement("script");e.type="text/javascript",e.src=t,document.querySelector("head").appendChild(e),eR[t]=new Promise(i=>{e.onload=i})}return eR[t]}var y5="4.2.0-beta.2";var Doe=globalThis.loaders?.parseImageNode,tR=typeof Image<"u",rR=typeof ImageBitmap<"u",Loe=Boolean(Doe),iR=md?!0:Loe;function v5(t){switch(t){case"auto":return rR||tR||iR;case"imagebitmap":return rR;case"image":return tR;case"data":return iR;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function x5(){if(rR)return"imagebitmap";if(tR)return"image";if(iR)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function b5(t){let e=Foe(t);if(!e)throw new Error("Not an image");return e}function bx(t){switch(b5(t)){case"data":return t;case"image":case"imagebitmap":let 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")}}function Foe(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var Noe=/^data:image\/svg\+xml/,koe=/\.svg((\?|#).*)?$/;function TT(t){return t&&(Noe.test(t)||koe.test(t))}function w5(t,e){if(TT(e)){let i=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(i=unescape(encodeURIComponent(i)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(i)}`}return nR(t,e)}function nR(t,e){if(TT(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function ET(t,e,r){let i=w5(t,r),n=self.URL||self.webkitURL,o=typeof i!="string"&&n.createObjectURL(i);try{return await Uoe(o||i,e)}finally{o&&n.revokeObjectURL(o)}}async function Uoe(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((i,n)=>{try{r.onload=()=>i(r),r.onerror=o=>{let s=o instanceof Error?o.message:"error";n(new Error(s))}}catch(o){n(o)}})}var zoe={},T5=!0;async function E5(t,e,r){let i;TT(r)?i=await ET(t,e,r):i=nR(t,r);let n=e&&e.imagebitmap;return await Voe(i,n)}async function Voe(t,e=null){if((joe(e)||!T5)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),T5=!1}return await createImageBitmap(t)}function joe(t){for(let e in t||zoe)return!1;return!0}function S5(t){return!qoe(t,"ftyp",4)||!(t[8]&96)?null:Hoe(t)}function Hoe(t){switch(Goe(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Goe(t,e,r){return String.fromCharCode(...t.slice(e,r))}function Woe(t){return[...t].map(e=>e.charCodeAt(0))}function qoe(t,e,r=0){let i=Woe(e);for(let n=0;n<i.length;++n)if(i[n]!==t[n+r])return!1;return!0}var Ef=!1,wx=!0;function lm(t){let e=Tx(t);return Yoe(e)||Joe(e)||Koe(e)||Zoe(e)||Xoe(e)}function Xoe(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=S5(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function Yoe(t){let e=Tx(t);return e.byteLength>=24&&e.getUint32(0,Ef)===2303741511?{mimeType:"image/png",width:e.getUint32(16,Ef),height:e.getUint32(20,Ef)}:null}function Koe(t){let e=Tx(t);return e.byteLength>=10&&e.getUint32(0,Ef)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,wx),height:e.getUint16(8,wx)}:null}function Zoe(t){let e=Tx(t);return e.byteLength>=14&&e.getUint16(0,Ef)===16973&&e.getUint32(2,wx)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,wx),height:e.getUint32(22,wx)}:null}function Joe(t){let e=Tx(t);if(!(e.byteLength>=3&&e.getUint16(0,Ef)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:i,sofMarkers:n}=Qoe(),o=2;for(;o+9<e.byteLength;){let s=e.getUint16(o,Ef);if(n.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,Ef),width:e.getUint16(o+7,Ef)};if(!i.has(s))return null;o+=2,o+=e.getUint16(o,Ef)}return null}function Qoe(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Tx(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")}async function C5(t,e){let{mimeType:r}=lm(t)||{},i=globalThis.loaders?.parseImageNode;return On(i),await i(t,r)}async function M5(t,e,r){e=e||{};let n=(e.image||{}).type||"auto",{url:o}=r||{},s=$oe(n),l;switch(s){case"imagebitmap":l=await E5(t,e,o);break;case"image":l=await ET(t,e,o);break;case"data":l=await C5(t,e);break;default:On(!1)}return n==="data"&&(l=bx(l)),l}function $oe(t){switch(t){case"auto":case"data":return x5();default:return v5(t),t}}var ese=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],tse=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],rse={image:{type:"auto",decode:!0}},Sf={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:y5,mimeTypes:tse,extensions:ese,parse:M5,tests:[t=>Boolean(lm(new DataView(t)))],options:rse};var oR={};function sR(t){if(oR[t]===void 0){let e=md?nse(t):ise(t);oR[t]=e}return oR[t]}function ise(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,i=globalThis.loaders?.parseImageNode;return Boolean(i)&&r.includes(t)}function nse(t){switch(t){case"image/avif":case"image/webp":return ose(t);default:return!0}}function ose(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var sse=new bc({id:"deck"}),ur=sse;var aR={};function I5(t){aR=t}function Ks(t,e,r,i){ur.level>0&&aR[t]&&aR[t].call(null,e,r,i)}function ase(t){let e=t[0],r=t[t.length-1];return e==="{"&&r==="}"||e==="["&&r==="]"}var P5={dataType:null,batchType:null,id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:ase,parseTextSync:JSON.parse};function lse(){let t="9.0.29",e=globalThis.deck&&globalThis.deck.VERSION;if(e&&e!==t)throw new Error(`deck.gl - multiple versions detected: ${e} vs ${t}`);return e||(ur.log(1,`deck.gl ${t}`)(),globalThis.deck={...globalThis.deck,VERSION:t,version:t,log:ur,_registerLoggers:I5},rm([P5,[Sf,{imagebitmap:{premultiplyAlpha:"none"}}]])),t}var ST=lse();function Cf(t,e){if(!t)throw new Error(e||"shadertools: assertion failed.")}var lR={number:{type:"number",validate(t,e){return Number.isFinite(t)&&typeof e=="object"&&(e.max===void 0||t<=e.max)&&(e.min===void 0||t>=e.min)}},array:{type:"array",validate(t,e){return Array.isArray(t)||ArrayBuffer.isView(t)}}};function B5(t){let e={};for(let[r,i]of Object.entries(t))e[r]=cse(i);return e}function O5(t,e,r){let i={};for(let[n,o]of Object.entries(e))t&&n in t&&!o.private?(o.validate&&Cf(o.validate(t[n],o),`${r}: invalid ${n}`),i[n]=t[n]):i[n]=o.value;return i}function cse(t){let e=R5(t);if(e!=="object")return{value:t,...lR[e],type:e};if(typeof t=="object")return t?t.type!==void 0?{...t,...lR[t.type],type:t.type}:t.value===void 0?{type:"object",value:t}:(e=R5(t.value),{...t,...lR[e],type:e}):{type:"object",value:null};throw new Error("props")}function R5(t){return Array.isArray(t)||ArrayBuffer.isView(t)?"array":typeof t}var D5=`#ifdef MODULE_LOGDEPTH
553
+ ${n}`)(e);let{gl:i}=this.device;if(i.shaderSource(this.handle,e),i.compileShader(this.handle),Zt.level===0){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}Zt.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Zt.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}};var Zne=256,Jne=1024,Qne=16384,X3=6144,$ne=[1,2,4,8],gT=class extends L0{device;glParameters;constructor(e,r){super(e,r),this.device=e,Ip(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){gd(this.device.gl)}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){let r={...this.glParameters};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,e.viewport&&(e.viewport.length>=6?(r.viewport=e.viewport.slice(0,4),r.depthRange=[e.viewport[4],e.viewport[5]]):r.viewport=e.viewport),e.scissorRect&&(r.scissorTest=!0,r.scissor=e.scissorRect),e.blendConstant&&(r.blendColor=e.blendConstant),e.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),e[2967]=e.stencilReference),e.colorMask&&(r.colorMask=$ne.map(i=>Boolean(i&e.colorMask))),this.glParameters=r,Ah(this.device.gl,r)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Qne,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Zne,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=Jne,e.clearStencil=this.props.clearStencil),r!==0&&Pu(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){Pu(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl.clearBufferiv(X3,e,r);break;case Uint32Array:this.device.gl.clearBufferuiv(X3,e,r);break;case Float32Array:default:this.device.gl.clearBufferfv(X3,e,r);break}})}};var eoe="Failed to deduce GL constant from typed array";function qz(t){switch(ArrayBuffer.isView(t)?t.constructor:t){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(eoe)}}function vx(t,e){let{clamped:r=!0}=e||{};switch(t){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var toe={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},roe={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Pp=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(e){return vx(e.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(e){return Yi(e.size),vx(e.type||5126).BYTES_PER_ELEMENT*e.size}static resolve(...e){return new Pp(toe,...e)}constructor(...e){e.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return Pp.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return Pp.getBytesPerVertex(this)}_assign(e={}){return e=I3("Accessor",e,roe),e.type!==void 0&&(this.type=e.type,(e.type===5124||e.type===5125)&&(this.integer=!0)),e.size!==void 0&&(this.size=e.size),e.offset!==void 0&&(this.offset=e.offset),e.stride!==void 0&&(this.stride=e.stride),e.normalize!==void 0&&(this.normalized=e.normalize),e.normalized!==void 0&&(this.normalized=e.normalized),e.integer!==void 0&&(this.integer=e.integer),e.divisor!==void 0&&(this.divisor=e.divisor),e.buffer!==void 0&&(this.buffer=e.buffer),e.index!==void 0&&(typeof e.index=="boolean"?this.index=e.index?1:0:this.index=e.index),e.instanced!==void 0&&(this.divisor=e.instanced?1:0),e.isInstanced!==void 0&&(this.divisor=e.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Xz(t){return ioe.includes(t)}var ioe=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],Yz={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function Y3(t){let e=Yz[t];if(!e)throw new Error("uniform");let[r,i,,n]=e;return{format:n,components:i,glType:r}}function Kz(t){let e=Yz[t];if(!e)throw new Error("attribute");let[,r,,i,n]=e;return{attributeType:i,vertexFormat:n,components:r}}function Zz(t,e){let r={attributes:[],bindings:[]};r.attributes=noe(t,e);let i=aoe(t,e);for(let l of i){let u=l.uniforms.map(f=>({name:f.name,format:f.format,byteOffset:f.byteOffset,byteStride:f.byteStride,arrayLength:f.arrayLength}));r.bindings.push({type:"uniform",name:l.name,location:l.location,visibility:(l.vertex?1:0)&(l.fragment?2:0),minBindingSize:l.byteLength,uniforms:u})}let n=soe(t,e),o=0;for(let l of n)if(Xz(l.type)){let{viewDimension:u,sampleType:f}=coe(l.type);r.bindings.push({type:"texture",name:l.name,location:o,viewDimension:u,sampleType:f}),l.textureUnit=o,o+=1}n.length&&(r.uniforms=n);let s=ooe(t,e);return s?.length&&(r.varyings=s),r}function noe(t,e){let r=[],i=t.getProgramParameter(e,35721);for(let n=0;n<i;n++){let o=t.getActiveAttrib(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l}=o,u=t.getAttribLocation(e,s);if(u>=0){let{attributeType:f}=Kz(l),v=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:u,stepMode:v,type:f})}}return r.sort((n,o)=>n.location-o.location),r}function ooe(t,e){let r=[],i=t.getProgramParameter(e,35971);for(let n=0;n<i;n++){let o=t.getTransformFeedbackVarying(e,n);if(!o)throw new Error("activeInfo");let{name:s,type:l,size:u}=o,{glType:f,components:v}=Y3(l),T=new Pp({type:f,size:u*v}),E={location:n,name:s,accessor:T};r.push(E)}return r.sort((n,o)=>n.location-o.location),r}function soe(t,e){let r=[],i=t.getProgramParameter(e,35718);for(let n=0;n<i;n++){let o=t.getActiveUniform(e,n);if(!o)throw new Error("activeInfo");let{name:s,size:l,type:u}=o,{name:f,isArray:v}=uoe(s),T=t.getUniformLocation(e,f),E={location:T,name:f,size:l,type:u,isArray:v};if(r.push(E),E.size>1)for(let M=0;M<E.size;M++){let O=`${f}[${M}]`;T=t.getUniformLocation(e,O);let F={...E,name:O,location:T};r.push(F)}}return r}function aoe(t,e){let r=(o,s)=>t.getActiveUniformBlockParameter(e,o,s),i=[],n=t.getProgramParameter(e,35382);for(let o=0;o<n;o++){let s={name:t.getActiveUniformBlockName(e,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},l=r(o,35395)||[],u=t.getActiveUniforms(e,l,35383),f=t.getActiveUniforms(e,l,35384),v=t.getActiveUniforms(e,l,35387),T=t.getActiveUniforms(e,l,35388);for(let E=0;E<s.uniformCount;++E){let M=t.getActiveUniform(e,l[E]);if(!M)throw new Error("activeInfo");s.uniforms.push({name:M.name,format:Y3(u[E]).format,type:u[E],arrayLength:f[E],byteOffset:v[E],byteStride:T[E]})}i.push(s)}return i.sort((o,s)=>o.location-s.location),i}var loe={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function coe(t){let e=loe[t];if(!e)throw new Error("sampler");let[r,i]=e;return{viewDimension:r,sampleType:i}}function uoe(t){if(t[t.length-1]!=="]")return{name:t,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(t);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${t}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Jz(t,e,r,i){let n=t,o=i;o===!0&&(o=1),o===!1&&(o=0);let s=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,i);case 5126:return t.uniform1fv(e,s);case 35664:return t.uniform2fv(e,s);case 35665:return t.uniform3fv(e,s);case 35666:return t.uniform4fv(e,s);case 5124:return t.uniform1iv(e,s);case 35667:return t.uniform2iv(e,s);case 35668:return t.uniform3iv(e,s);case 35669:return t.uniform4iv(e,s);case 35670:return t.uniform1iv(e,s);case 35671:return t.uniform2iv(e,s);case 35672:return t.uniform3iv(e,s);case 35673:return t.uniform4iv(e,s);case 5125:return n.uniform1uiv(e,s,1);case 36294:return n.uniform2uiv(e,s,2);case 36295:return n.uniform3uiv(e,s,3);case 36296:return n.uniform4uiv(e,s,4);case 35674:return t.uniformMatrix2fv(e,!1,s);case 35675:return t.uniformMatrix3fv(e,!1,s);case 35676:return t.uniformMatrix4fv(e,!1,s);case 35685:return n.uniformMatrix2x3fv(e,!1,s);case 35686:return n.uniformMatrix2x4fv(e,!1,s);case 35687:return n.uniformMatrix3x2fv(e,!1,s);case 35688:return n.uniformMatrix3x4fv(e,!1,s);case 35689:return n.uniformMatrix4x2fv(e,!1,s);case 35690:return n.uniformMatrix4x3fv(e,!1,s)}throw new Error("Illegal uniform")}function Qz(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(t)}}function $z(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(t)}}var e5=4,_T=class extends ph{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(e,r){super(e,r),this.device=e,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=r.vs,this.fs=r.fs;let{varyings:i,bufferMode:n=35981}=r;switch(i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,n)),this._linkShaders(),Zt.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Zz(this.device.gl,this.handle),Zt.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=b3(this.introspectedLayout,r.shaderLayout),this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":Zt.warn(`Primitive topology ${this.props.topology} is deprecated and will be removed in v9.1`);break;default:}}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(e,r){for(let[i,n]of Object.entries(e)){let o=this.shaderLayout.bindings.find(s=>s.name===i)||this.shaderLayout.bindings.find(s=>s.name===`${i}Uniforms`);if(!o){let s=this.shaderLayout.bindings.map(l=>`"${l.name}"`).join(", ");r?.disableWarnings||Zt.warn(`Unknown binding "${i}" in render pipeline "${this.id}", expected one of ${s}`)();continue}switch(n||Zt.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(n instanceof $l)&&!(n.buffer instanceof $l))throw new Error("buffer value");break;case"texture":if(!(n instanceof mh||n instanceof ec||n instanceof wf))throw new Error("texture value");break;case"sampler":Zt.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=n}}draw(e){let{renderPass:r,parameters:i=this.props.parameters,topology:n=this.props.topology,vertexArray:o,vertexCount:s,instanceCount:l,isInstanced:u=!1,firstVertex:f=0,transformFeedback:v}=e,T=Qz(n),E=Boolean(o.indexBuffer),M=o.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return Zt.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable()||s===0)return Zt.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;if(s===0)return Zt.info(2,`RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)(),!0;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),v&&v.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let O=r;return Fz(this.device,i,O.glParameters,()=>{E&&u?this.device.gl.drawElementsInstanced(T,s||0,M,f,l||0):E?this.device.gl.drawElements(T,s||0,M,f):u?this.device.gl.drawArraysInstanced(T,f,s||0,l||0):this.device.gl.drawArrays(T,f,s||0),v&&v.end()}),o.unbindAfterRender(r),!0}setUniformsWebGL(e){let{bindings:r}=nm(e);Object.keys(r).forEach(i=>{Zt.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,e)}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),Zt.time(e5,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),Zt.timeEnd(e5,`linkProgram for ${this.id}`)(),Zt.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}Zt.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),Zt.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}_reportLinkStatus(e){switch(e){case"success":return;default:throw this.vs.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`)):this.fs?.compilationStatus==="error"?(this.fs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`)):new Error(`Error during ${e}: ${this.device.gl.getProgramInfoLog(this.handle)}`)}}_getLinkStatus(){let{gl:e}=this.device;return e.getProgramParameter(this.handle,35714)?(e.validateProgram(this.handle),e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation")):(this.linkStatus="error","linking")}async _waitForLinkComplete(){let e=async n=>await new Promise(o=>setTimeout(o,n));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await e(10)}}_areTexturesRenderable(){let e=!0;for(let[,r]of Object.entries(this.bindings))r instanceof ec&&(r.update(),e=e&&r.loaded);return e}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:e}=this.device;e.useProgram(this.handle);let r=0,i=0;for(let n of this.shaderLayout.bindings){let o=this.bindings[n.name]||this.bindings[n.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${n.name} in ${this.id}`);switch(n.type){case"uniform":let{name:s}=n,l=e.getUniformBlockIndex(this.handle,s);if(l===4294967295)throw new Error(`Invalid uniform block name ${s}`);e.uniformBlockBinding(this.handle,i,l),o instanceof $l?e.bindBufferBase(35345,i,o.handle):e.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof mh||o instanceof ec||o instanceof wf))throw new Error("texture");let u;if(o instanceof mh)u=o.texture;else if(o instanceof ec)u=o;else if(o instanceof wf&&o.colorAttachments[0]instanceof mh)Zt.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),u=o.colorAttachments[0].texture;else throw new Error("No texture");e.activeTexture(33984+r),e.bindTexture(u.target,u.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${n.type}' not supported in WebGL`)}}}_applyUniforms(){for(let e of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:n,textureUnit:o}=e,s=this.uniforms[r]??o;s!==void 0&&Jz(this.device.gl,i,n,s)}}};var yT=class extends N0{device;commands=[];constructor(e){super(e,{}),this.device=e}submitCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":hoe(this.device,r.options);break;case"copy-buffer-to-texture":foe(this.device,r.options);break;case"copy-texture-to-buffer":doe(this.device,r.options);break;case"copy-texture-to-texture":poe(this.device,r.options);break}}};function hoe(t,e){let r=e.source,i=e.destination;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,i.handle),t.gl.copyBufferSubData(36662,36663,e.sourceOffset??0,e.destinationOffset??0,e.size),t.gl.bindBuffer(36662,null),t.gl.bindBuffer(36663,null)}function foe(t,e){throw new Error("Not implemented")}function doe(t,e){let{source:r,mipLevel:i=0,aspect:n="all",width:o=e.source.width,height:s=e.source.height,depthOrArrayLayers:l=0,origin:u=[0,0],destination:f,byteOffset:v=0,bytesPerRow:T,rowsPerImage:E}=e;if(n!=="all")throw new Error("not supported");if(i!==0||l!==0||T||E)throw new Error("not implemented");let{framebuffer:M,destroyFramebuffer:O}=t5(r),F;try{let z=f,W=o||M.width,J=s||M.height,K=H0(M.texture.props.format),ne=K.dataFormat,ge=K.type;t.gl.bindBuffer(35051,z.handle),F=t.gl.bindFramebuffer(36160,M.handle),t.gl.readPixels(u[0],u[1],W,J,ne,ge,v)}finally{t.gl.bindBuffer(35051,null),F!==void 0&&t.gl.bindFramebuffer(36160,F),O&&M.destroy()}}function poe(t,e){let{source:r,destinationMipLevel:i=0,origin:n=[0,0],destinationOrigin:o=[0,0],destination:s}=e,{width:l=e.destination.width,height:u=e.destination.height}=e,{framebuffer:f,destroyFramebuffer:v}=t5(r),[T,E]=n,[M,O,F]=o,z=t.gl.bindFramebuffer(36160,f.handle),W=null,J;if(s instanceof ec)W=s,l=Number.isFinite(l)?l:W.width,u=Number.isFinite(u)?u:W.height,W.bind(0),J=W.target;else throw new Error("invalid destination");switch(J){case 3553:case 34067:t.gl.copyTexSubImage2D(J,i,M,O,T,E,l,u);break;case 35866:case 32879:t.gl.copyTexSubImage3D(J,i,M,O,F,T,E,l,u);break;default:}W&&W.unbind(),t.gl.bindFramebuffer(36160,z),v&&f.destroy()}function t5(t){if(t instanceof bo){let{width:e,height:r,id:i}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${i}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var vT=class extends F0{device;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new yT(e)}destroy(){}finish(){this.commandBuffer.submitCommands()}copyBufferToBuffer(e){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:e})}copyBufferToTexture(e){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:e})}copyTextureToBuffer(e){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:e})}copyTextureToTexture(e){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:e})}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}resolveQuerySet(e,r,i){}};var G0=class extends k0{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return PP()==="Chrome"}constructor(e,r){super(e,r),this.device=e,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(e){let r=e;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(e,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:n,type:o,stride:s,offset:l,normalized:u,integer:f,divisor:v}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),f?this.device.gl.vertexAttribIPointer(e,n,o,s,l):this.device.gl.vertexAttribPointer(e,n,o,u,s,l),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,v||0),this.attributes[e]=i,this.device.gl.bindVertexArray(null)}setConstantWebGL(e,r){this._enable(e,!1),this.attributes[e]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let e=0;e<this.maxVertexAttributes;++e){let r=this.attributes[e];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(e,r)}}_getAccessor(e){let r=this.attributeInfos[e];if(!r)throw new Error(`Unknown attribute location ${e}`);let i=iT(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let n=G0.isConstantAttributeZeroSupported(this.device)||e!==0;(r||n)&&(e=Number(e),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(e):this.device.gl.disableVertexAttribArray(e),this.device.gl.bindVertexArray(null))}getConstantBuffer(e,r){let i=Aoe(r),n=i.byteLength*e,o=i.length*e;if(this.buffer&&n!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${n} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:n}),s=s||!moe(i,this.bufferValue),s){let l=S3(r.constructor,o);C3({target:l,source:i,start:0,count:o}),this.buffer.write(l),this.bufferValue=r}return this.buffer}};function Aoe(t){return Array.isArray(t)?new Float32Array(t):t}function moe(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var xT=class extends U0{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(e,r){super(e,r),this.device=e,this.gl=e.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(e="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback($z(e))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(e){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in e)this.setBuffer(r,e[r])})}setBuffer(e,r){let i=this._getVaryingIndex(e),{buffer:n,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(i<0){this.unusedBuffers[e]=n,Zt.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[i]={buffer:n,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(i,n,s,o)}getBuffer(e){if(r5(e))return this.buffers[e]||null;let r=this._getVaryingIndex(e);return r>=0?this.buffers[r]:null}bind(e=this.handle){if(typeof e!="function")return this.gl.bindTransformFeedback(36386,e),this;let r;return this._bound?r=e():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=e(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(e){if(e instanceof $l)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:i=0,byteLength:n=e.buffer.byteLength}=e;return{buffer:r,byteOffset:i,byteLength:n}}_getVaryingIndex(e){if(r5(e))return Number(e);for(let r of this.layout.varyings)if(e===r.name)return r.location;return-1}_bindBuffers(){for(let e in this.buffers){let{buffer:r,byteLength:i,byteOffset:n}=this._getBufferRange(this.buffers[e]);this._bindBuffer(Number(e),r,n,i)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,i=0,n){let o=r&&r.handle;!o||n===void 0?this.gl.bindBufferBase(35982,e,o):this.gl.bindBufferRange(35982,e,o,i,n)}};function r5(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var bT=class extends z0{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(e,r){if(super(e,r),this.device=e,r.count>1)throw new Error("WebGL QuerySet can only have one value");this.handle=this.device.gl.createQuery(),Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(e){return this._begin(e?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(e){this._queryPending||(this.target=e,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let e=this.device.gl.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(e=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,n)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>e?(n("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};function K3(t){switch(t){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Yi(!1),0}}function i5(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return Yi(!1),0}}function n5(t,e){let{sourceX:r=0,sourceY:i=0,sourceFormat:n=6408,sourceAttachment:o=36064}=e||{},{target:s=null,sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=s5(t);Yi(v);let{gl:E,handle:M}=v;l=l||v.width,u=u||v.height;let O=o-36064;f=f||v.colorAttachments[O]?.texture?.type||5121,s=_oe(s,f,n,l,u),f=f||qz(s);let F=E.bindFramebuffer(36160,M);return E.readPixels(r,i,l,u,n,f,s),E.bindFramebuffer(36160,F||null),T&&v.destroy(),s}function o5(t,e){let{target:r,sourceX:i=0,sourceY:n=0,sourceFormat:o=6408,targetByteOffset:s=0}=e||{},{sourceWidth:l,sourceHeight:u,sourceType:f}=e||{},{framebuffer:v,deleteFramebuffer:T}=s5(t);Yi(v),l=l||v.width,u=u||v.height;let E=v;f=f||5121;let M=r;if(!M){let F=K3(o),z=i5(f),W=s+l*u*F*z;M=E.device.createBuffer({byteLength:W})}let O=t.device.createCommandEncoder();return O.copyTextureToBuffer({source:t,width:l,height:u,origin:[i,n],destination:M,byteOffset:s}),O.destroy(),T&&v.destroy(),M}function s5(t){return t instanceof yf?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:goe(t),deleteFramebuffer:!0}}function goe(t,e){let{device:r,width:i,height:n,id:o}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${o}`,width:i,height:n,colorAttachments:[t]})}function _oe(t,e,r,i,n){if(t)return t;e=e||5121;let o=vx(e,{clamped:!1}),s=K3(r);return new o(i*n*s)}var yoe=256,voe=1024,xoe=16384;var boe="clear: bad arguments";function a5(t,e){let{framebuffer:r=null,color:i=null,depth:n=null,stencil:o=null}=e||{},s={};r&&(s.framebuffer=r);let l=0;i&&(l|=xoe,i!==!0&&(s.clearColor=i)),n&&(l|=yoe,n!==!0&&(s.clearDepth=n)),o&&(l|=voe,n!==!0&&(s.clearStencil=n)),Yi(l!==0,boe);let u=t.gl;Pu(u,s,()=>{u.clear(l)})}var xx=1,W0=class extends Yc{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;static isSupported(){return typeof WebGL2RenderingContext<"u"}static attach(e){if(e instanceof W0)return e;if(e?.device instanceof Yc)return e.device;if(!woe(e))throw new Error("Invalid WebGL2RenderingContext");return new W0({gl:e})}static async create(e={}){Zt.groupCollapsed(xx,"WebGLDevice created")();let r=[];e.debug&&r.push(jz()),e.spector&&r.push(Uz()),typeof e.canvas=="string"&&r.push(Ep.pageLoaded);let i=await Promise.allSettled(r);for(let s of i)s.status==="rejected"&&Zt.error(`Failed to initialize debug libraries ${s.reason}`)();if(Zt.probe(xx+1,"DOM is loaded")(),e.gl?.device)return Zt.warn("reattaching existing device")(),W0.attach(e.gl);let n=new W0(e),o=`Created ${n.type}${n.debug?" debug":""} context: ${n.info.vendor}, ${n.info.renderer} for canvas: ${n.canvasContext.id}`;return Zt.probe(xx,o)(),Zt.table(xx,n.info)(),Zt.groupEnd(xx)(),n}constructor(e){super({...e,id:e.id||oa("webgl-device")});let r=e.gl?.device;if(r)throw new Error(`WebGL context already attached to device ${r.id}`);let i=e.gl?.canvas||e.canvas;this.canvasContext=new AT(this,{...e,canvas:i}),this.lost=new Promise(l=>{this._resolveContextLost=l});let n=e.gl||null;if(n||=wz(this.canvasContext.canvas,{...e,onContextLost:l=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."})}),!n)throw new Error("WebGL context creation failed");this.handle=n,this.gl=n,this.gl.device=this,this.gl._version=2,e.spector&&(this.spectorJS=zz({...this.props,canvas:this.handle.canvas})),this.info=Tz(this.gl,this._extensions),this.limits=new uT(this.gl),this.features=new cT(this.gl,this._extensions,this.props.disabledFeatures),this.props.initalizeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize();let{enable:o=!0,copyState:s=!1}=e;N3(this.gl,{enable:o,copyState:s,log:(...l)=>Zt.log(1,...l)()}),e.debug&&(this.gl=Hz(this.gl,{...e,throwOnError:!0}),this.debug=!0,Zt.level=Math.max(Zt.level,1),Zt.warn("WebGL debug mode activated. Performance reduced.")())}destroy(){}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(e){return lT(this.gl,e,this._extensions)}isTextureFormatFilterable(e){return Rz(this.gl,e,this._extensions)}isTextureFormatRenderable(e){return Bz(this.gl,e,this._extensions)}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createBuffer(e){let r=this._getBufferProps(e);return new $l(this,r)}_createTexture(e){return new ec(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new am(this,e)}createShader(e){return new mT(this,e)}createFramebuffer(e){return new wf(this,e)}createVertexArray(e){return new G0(this,e)}createTransformFeedback(e){return new xT(this,e)}createQuerySet(e){return new bT(this,e)}createRenderPipeline(e){return new _T(this,e)}beginRenderPass(e){return new gT(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(e){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(e){return new vT(this,e)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(e,r){return n5(e,r)}readPixelsToBufferWebGL(e,r){return o5(e,r)}setParametersWebGL(e){Ah(this.gl,e)}getParametersWebGL(e){return rT(this.gl,e)}withParametersWebGL(e,r){return Pu(this.gl,e,r)}clearWebGL(e){a5(this,e)}resetWebGL(){Zt.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),vz(this.gl)}gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;loseDevice(){let e=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(e=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){Ip(this.gl)}popState(){gd(this.gl)}setSpectorMetadata(e,r){e.__SPECTOR_Metadata=r}getGLKey(e,r){r=r||this.gl2||this.gl;let i=Number(e);for(let n in r)if(r[n]===i)return`GL.${n}`;return String(e)}_constants;setConstantAttributeWebGL(e,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let n=this._constants[e];switch(n&&Coe(n,r)&&Zt.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:Toe(this,e,r);break;case Int32Array:Eoe(this,e,r);break;case Uint32Array:Soe(this,e,r);break;default:Yi(!1)}}getExtension(e){return Iu(this.gl,e,this._extensions),this._extensions}},Tf=W0;Yr(Tf,"type","webgl");function woe(t){return typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext?!0:Boolean(t&&Number.isFinite(t._version))}function Toe(t,e,r){switch(r.length){case 1:t.gl.vertexAttrib1fv(e,r);break;case 2:t.gl.vertexAttrib2fv(e,r);break;case 3:t.gl.vertexAttrib3fv(e,r);break;case 4:t.gl.vertexAttrib4fv(e,r);break;default:Yi(!1)}}function Eoe(t,e,r){t.gl.vertexAttribI4iv(e,r)}function Soe(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function Coe(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var l5,c5,h5={fontFamily:'"Helvetica Neue", Helvetica, Arial, sans-serif',display:"flex",flex:"wrap",maxWidth:"500px",flexDirection:"column",zIndex:2};function wT(){return document.createElement("div")}function Moe(t){if(!t.picked)return null;if(t.object===l5)return c5;let e={html:Poe(t.object),style:h5};return c5=e,l5=t.object,e}var Ioe=new Set(["position","index"]);function Poe(t){let e=wT();for(let r in t){if(Ioe.has(r))continue;let i=wT();i.className="header",i.textContent=r;let n=wT();n.className="value",n.textContent=Boe(t[r]);let o=wT();Roe(o,i,n),o.appendChild(i),o.appendChild(n),e.appendChild(o)}return e.innerHTML}function Roe(t,e,r){Object.assign(e.style,{fontWeight:700,marginRight:"10px",flex:"1 1 0%"}),Object.assign(r.style,{flex:"none",maxWidth:"250px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),Object.assign(t.style,{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"stretch"})}function Boe(t){let e;if(Array.isArray(t)&&t.length>4)e=`Array<${t.length}>`;else if(typeof t=="string")e=t;else if(typeof t=="number")e=String(t);else try{e=JSON.stringify(t)}catch{e="<Non-Serializable Object>"}let r=50;return e.length>r&&(e=e.slice(0,r)),e}function u5(t,e){let r,i=t,n="properties",o=/{[^}]*}/g,s=u=>u.replace(/[{}]/g,""),l=[...new Set(t.match(o).map(s))];for(let u of l){if(u.includes(".")){r=e;let f=u.split(".");for(let v of f)if(r.hasOwnProperty(v))r=r[v];else{r=void 0;break}}else e.hasOwnProperty(u)?r=e[u]:e[n]&&e[n].hasOwnProperty(u)?r=e[n][u]:r=void 0;i=i.replaceAll(`{${u}}`,r)}return i}function Z3(t){return t?t.html||t.text?e=>{if(!e.picked)return null;let r={style:t.style||h5};return t.html?r.html=u5(t.html,e.object):r.text=u5(t.text,e.object),r}:Moe:null}function f5(t){let e=document.createElement("link");e.type="text/css",e.rel="stylesheet",e.href=t,document.getElementsByTagName("head")[0].appendChild(e)}function d5(t,e){let r=document.createElement("div");return r.style.width=Number.isFinite(t)?`${t}px`:t,r.style.height=`${e}px`,r.style.position="relative",r}var A5=ga(p5()),Ooe="https://api.tiles.mapbox.com/mapbox-gl-js/v1.13.2/mapbox-gl.css",$3=A5.default;function m5(t=Ooe){f5(t)}function g5(){let t=["mapboxgl-missing-css"];for(let e of t){let r=document.getElementsByClassName(e)[0];r&&r.style&&(r.style.display="none")}}var eR={};function _5(t){if(!eR[t]){let e=document.createElement("script");e.type="text/javascript",e.src=t,document.querySelector("head").appendChild(e),eR[t]=new Promise(i=>{e.onload=i})}return eR[t]}var y5="4.2.0-beta.2";var Doe=globalThis.loaders?.parseImageNode,tR=typeof Image<"u",rR=typeof ImageBitmap<"u",Loe=Boolean(Doe),iR=md?!0:Loe;function v5(t){switch(t){case"auto":return rR||tR||iR;case"imagebitmap":return rR;case"image":return tR;case"data":return iR;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function x5(){if(rR)return"imagebitmap";if(tR)return"image";if(iR)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function b5(t){let e=Foe(t);if(!e)throw new Error("Not an image");return e}function bx(t){switch(b5(t)){case"data":return t;case"image":case"imagebitmap":let 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")}}function Foe(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var Noe=/^data:image\/svg\+xml/,koe=/\.svg((\?|#).*)?$/;function TT(t){return t&&(Noe.test(t)||koe.test(t))}function w5(t,e){if(TT(e)){let i=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(i=unescape(encodeURIComponent(i)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(i)}`}return nR(t,e)}function nR(t,e){if(TT(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function ET(t,e,r){let i=w5(t,r),n=self.URL||self.webkitURL,o=typeof i!="string"&&n.createObjectURL(i);try{return await Uoe(o||i,e)}finally{o&&n.revokeObjectURL(o)}}async function Uoe(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((i,n)=>{try{r.onload=()=>i(r),r.onerror=o=>{let s=o instanceof Error?o.message:"error";n(new Error(s))}}catch(o){n(o)}})}var zoe={},T5=!0;async function E5(t,e,r){let i;TT(r)?i=await ET(t,e,r):i=nR(t,r);let n=e&&e.imagebitmap;return await Voe(i,n)}async function Voe(t,e=null){if((joe(e)||!T5)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),T5=!1}return await createImageBitmap(t)}function joe(t){for(let e in t||zoe)return!1;return!0}function S5(t){return!qoe(t,"ftyp",4)||!(t[8]&96)?null:Hoe(t)}function Hoe(t){switch(Goe(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Goe(t,e,r){return String.fromCharCode(...t.slice(e,r))}function Woe(t){return[...t].map(e=>e.charCodeAt(0))}function qoe(t,e,r=0){let i=Woe(e);for(let n=0;n<i.length;++n)if(i[n]!==t[n+r])return!1;return!0}var Ef=!1,wx=!0;function lm(t){let e=Tx(t);return Yoe(e)||Joe(e)||Koe(e)||Zoe(e)||Xoe(e)}function Xoe(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=S5(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function Yoe(t){let e=Tx(t);return e.byteLength>=24&&e.getUint32(0,Ef)===2303741511?{mimeType:"image/png",width:e.getUint32(16,Ef),height:e.getUint32(20,Ef)}:null}function Koe(t){let e=Tx(t);return e.byteLength>=10&&e.getUint32(0,Ef)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,wx),height:e.getUint16(8,wx)}:null}function Zoe(t){let e=Tx(t);return e.byteLength>=14&&e.getUint16(0,Ef)===16973&&e.getUint32(2,wx)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,wx),height:e.getUint32(22,wx)}:null}function Joe(t){let e=Tx(t);if(!(e.byteLength>=3&&e.getUint16(0,Ef)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:i,sofMarkers:n}=Qoe(),o=2;for(;o+9<e.byteLength;){let s=e.getUint16(o,Ef);if(n.has(s))return{mimeType:"image/jpeg",height:e.getUint16(o+5,Ef),width:e.getUint16(o+7,Ef)};if(!i.has(s))return null;o+=2,o+=e.getUint16(o,Ef)}return null}function Qoe(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Tx(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")}async function C5(t,e){let{mimeType:r}=lm(t)||{},i=globalThis.loaders?.parseImageNode;return On(i),await i(t,r)}async function M5(t,e,r){e=e||{};let n=(e.image||{}).type||"auto",{url:o}=r||{},s=$oe(n),l;switch(s){case"imagebitmap":l=await E5(t,e,o);break;case"image":l=await ET(t,e,o);break;case"data":l=await C5(t,e);break;default:On(!1)}return n==="data"&&(l=bx(l)),l}function $oe(t){switch(t){case"auto":case"data":return x5();default:return v5(t),t}}var ese=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],tse=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],rse={image:{type:"auto",decode:!0}},Sf={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:y5,mimeTypes:tse,extensions:ese,parse:M5,tests:[t=>Boolean(lm(new DataView(t)))],options:rse};var oR={};function sR(t){if(oR[t]===void 0){let e=md?nse(t):ise(t);oR[t]=e}return oR[t]}function ise(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,i=globalThis.loaders?.parseImageNode;return Boolean(i)&&r.includes(t)}function nse(t){switch(t){case"image/avif":case"image/webp":return ose(t);default:return!0}}function ose(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var sse=new bc({id:"deck"}),ur=sse;var aR={};function I5(t){aR=t}function Ks(t,e,r,i){ur.level>0&&aR[t]&&aR[t].call(null,e,r,i)}function ase(t){let e=t[0],r=t[t.length-1];return e==="{"&&r==="}"||e==="["&&r==="]"}var P5={dataType:null,batchType:null,id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:ase,parseTextSync:JSON.parse};function lse(){let t="9.0.30",e=globalThis.deck&&globalThis.deck.VERSION;if(e&&e!==t)throw new Error(`deck.gl - multiple versions detected: ${e} vs ${t}`);return e||(ur.log(1,`deck.gl ${t}`)(),globalThis.deck={...globalThis.deck,VERSION:t,version:t,log:ur,_registerLoggers:I5},rm([P5,[Sf,{imagebitmap:{premultiplyAlpha:"none"}}]])),t}var ST=lse();function Cf(t,e){if(!t)throw new Error(e||"shadertools: assertion failed.")}var lR={number:{type:"number",validate(t,e){return Number.isFinite(t)&&typeof e=="object"&&(e.max===void 0||t<=e.max)&&(e.min===void 0||t>=e.min)}},array:{type:"array",validate(t,e){return Array.isArray(t)||ArrayBuffer.isView(t)}}};function B5(t){let e={};for(let[r,i]of Object.entries(t))e[r]=cse(i);return e}function O5(t,e,r){let i={};for(let[n,o]of Object.entries(e))t&&n in t&&!o.private?(o.validate&&Cf(o.validate(t[n],o),`${r}: invalid ${n}`),i[n]=t[n]):i[n]=o.value;return i}function cse(t){let e=R5(t);if(e!=="object")return{value:t,...lR[e],type:e};if(typeof t=="object")return t?t.type!==void 0?{...t,...lR[t.type],type:t.type}:t.value===void 0?{type:"object",value:t}:(e=R5(t.value),{...t,...lR[e],type:e}):{type:"object",value:null};throw new Error("props")}function R5(t){return Array.isArray(t)||ArrayBuffer.isView(t)?"array":typeof t}var D5=`#ifdef MODULE_LOGDEPTH
554
554
  logdepth_adjustPosition(gl_Position);
555
555
  #endif
556
556
  `,L5=`#ifdef MODULE_MATERIAL
@@ -3326,7 +3326,7 @@ void main() {
3326
3326
  fragColor = outTexture;
3327
3327
  fragColor.g = outTexture.r / max(1.0, outTexture.a);
3328
3328
  }
3329
- `;var ZAe=2,fD={format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},G7=[0,0],JAe={SUM:0,MEAN:1},QAe={getPosition:{type:"accessor",value:t=>t.position},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:Hu,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},$Ae=["float32-renderable-webgl","texture-blend-float-webgl"],eme={data:{props:["radiusPixels"]}},US=class extends eu{initializeState(){super.initializeAggregationLayer(eme),this.setState({colorDomain:G7}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){super.updateState(e),this._updateHeatmapState(e)}_updateHeatmapState(e){let{props:r,oldProps:i}=e,n=this._getChangeFlags(e);(n.dataChanged||n.viewportChanged)&&(n.boundsChanged=this._updateBounds(n.dataChanged),this._updateTextureRenderingBounds()),n.dataChanged||n.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):n.viewportZoomChanged&&this._debouncedUpdateWeightmap(),r.colorRange!==i.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}renderLayers(){let{weightsTexture:e,triPositionBuffer:r,triTexCoordBuffer:i,maxWeightsTexture:n,colorTexture:o,colorDomain:s}=this.state,{updateTriggers:l,intensity:u,threshold:f,aggregation:v}=this.props,T=this.getSubLayerClass("triangle",pb);return new T(this.getSubLayerProps({id:"triangle-layer",updateTriggers:l}),{coordinateSystem:Zr.DEFAULT,data:{attributes:{positions:r,texCoords:i}},vertexCount:4,maxTexture:n,colorTexture:o,aggregationMode:JAe[v]||0,weightsTexture:e,intensity:u,threshold:f,colorDomain:s})}finalizeState(e){super.finalizeState(e);let{weightsTransform:r,weightsTexture:i,maxWeightTransform:n,maxWeightsTexture:o,triPositionBuffer:s,triTexCoordBuffer:l,colorTexture:u,updateTimer:f}=this.state;r?.destroy(),i?.destroy(),n?.destroy(),o?.destroy(),s?.destroy(),l?.destroy(),u?.destroy(),f&&clearTimeout(f)}_getAttributeManager(){return new Mh(this.context.device,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(e){let r={},{dimensions:i}=this.state;r.dataChanged=this.isAttributeChanged()&&"attribute changed"||this.isAggregationDirty(e,{compareAll:!0,dimension:i.data})&&"aggregation is dirty",r.viewportChanged=e.changeFlags.viewportChanged;let{zoom:n}=this.state;return(!e.context.viewport||e.context.viewport.zoom!==n)&&(r.viewportZoomChanged=!0),r}_createTextures(){let{textureSize:e,format:r}=this.state;this.setState({weightsTexture:this.context.device.createTexture({...fD,width:e,height:e,format:r}),maxWeightsTexture:this.context.device.createTexture({...fD,width:1,height:1,format:r})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:"float64",accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}_setupTextureParams(){let{device:e}=this.context,{weightsTextureSize:r}=this.props,i=Math.min(r,e.limits.maxTextureDimension2D),n=$Ae.every(l=>e.features.has(l)),o=n?"rgba32float":"rgba8unorm",s=n?1:1/255;this.setState({textureSize:i,format:o,weightsScale:s}),n||ur.warn(`HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`)()}_createWeightsTransform(e){let{weightsTransform:r}=this.state,{weightsTexture:i}=this.state,n=this.getAttributeManager();r?.destroy(),r=new If(this.context.device,{id:`${this.id}-weights-transform`,bufferLayout:n.getBufferLayouts(),vertexCount:1,targetTexture:i,parameters:{depthWriteEnabled:!1,blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"},topology:"point-list",...e}),this.setState({weightsTransform:r})}_setupResources(){this._createTextures();let{device:e}=this.context,{textureSize:r,weightsTexture:i,maxWeightsTexture:n}=this.state,o=this.getShaders({vs:uD,fs:hD});this._createWeightsTransform(o);let s=this.getShaders({vs:j7,fs:H7}),l=new If(e,{id:`${this.id}-max-weights-transform`,bindings:{inTexture:i},uniforms:{textureSize:r},targetTexture:n,...s,vertexCount:r*r,topology:"point-list",parameters:{depthWriteEnabled:!1,blendColorOperation:"max",blendAlphaOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}});this.setState({weightsTexture:i,maxWeightsTexture:n,maxWeightTransform:l,zoom:null,triPositionBuffer:e.createBuffer({byteLength:48}),triTexCoordBuffer:e.createBuffer({byteLength:48})})}updateShaders(e){this._createWeightsTransform({vs:uD,fs:hD,...e})}_updateMaxWeightValue(){let{maxWeightTransform:e}=this.state;e.run({parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]})}_updateBounds(e=!1){let{viewport:r}=this.context,i=[r.unproject([0,0]),r.unproject([r.width,0]),r.unproject([r.width,r.height]),r.unproject([0,r.height])].map(l=>l.map(Math.fround)),n=F7(i),o={visibleWorldBounds:n,viewportCorners:i},s=!1;if(e||!this.state.worldBounds||!N7(this.state.worldBounds,n)){let l=this._worldToCommonBounds(n),u=this._commonToWorldBounds(l);this.props.coordinateSystem===Zr.LNGLAT&&(u[1]=Math.max(u[1],-85.051129),u[3]=Math.min(u[3],85.051129),u[0]=Math.max(u[0],-360),u[2]=Math.min(u[2],360));let f=this._worldToCommonBounds(u);o.worldBounds=u,o.normalizedCommonBounds=f,s=!0}return this.setState(o),s}_updateTextureRenderingBounds(){let{triPositionBuffer:e,triTexCoordBuffer:r,normalizedCommonBounds:i,viewportCorners:n}=this.state,{viewport:o}=this.context;e.write(lD(n,3));let s=n.map(l=>U7(o.projectPosition(l),i));r.write(lD(s,2))}_updateColorTexture(e){let{colorRange:r}=e.props,{colorTexture:i}=this.state,n=Qp(r,!1,Uint8Array);i&&i?.width===r.length?i.setSubImageData({data:n}):(i?.destroy(),i=this.context.device.createTexture({...fD,data:n,width:r.length,height:1})),this.setState({colorTexture:i})}_updateWeightmap(){let{radiusPixels:e,colorDomain:r,aggregation:i}=this.props,{worldBounds:n,textureSize:o,weightsScale:s}=this.state,l=this.state.weightsTransform;this.state.isWeightMapDirty=!1;let u=this._worldToCommonBounds(n,{useLayerCoordinateSystem:!0});if(r&&i==="SUM"){let{viewport:M}=this.context,O=M.distanceScales.metersPerUnit[2]*(u[2]-u[0])/o;this.state.colorDomain=r.map(F=>F*O*s)}else this.state.colorDomain=r||G7;let v=this.getAttributeManager().getAttributes(),T=this.getModuleSettings(),E={radiusPixels:e,commonBounds:u,textureWidth:o,weightsScale:s};this._setModelAttributes(l.model,v),l.model.setVertexCount(this.getNumInstances()),l.model.setUniforms(E),l.model.updateModuleSettings(T),l.run({parameters:{viewport:[0,0,o,o]},clearColor:[0,0,0,0]}),this._updateMaxWeightValue()}_debouncedUpdateWeightmap(e=!1){let{updateTimer:r}=this.state,{debounceTimeout:i}=this.props;e?(r=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(r),r=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),i)),this.setState({updateTimer:r})}_worldToCommonBounds(e,r={}){let{useLayerCoordinateSystem:i=!1}=r,[n,o,s,l]=e,{viewport:u}=this.context,{textureSize:f}=this.state,{coordinateSystem:v}=this.props,T=i&&(v===Zr.LNGLAT_OFFSETS||v===Zr.METER_OFFSETS),E=T?u.projectPosition(this.props.coordinateOrigin):[0,0],M=f*ZAe/u.scale,O,F;return i&&!T?(O=this.projectPosition([n,o,0]),F=this.projectPosition([s,l,0])):(O=u.projectPosition([n,o,0]),F=u.projectPosition([s,l,0])),k7([O[0]-E[0],O[1]-E[1],F[0]-E[0],F[1]-E[1]],M,M)}_commonToWorldBounds(e){let[r,i,n,o]=e,{viewport:s}=this.context,l=s.unprojectPosition([r,i]),u=s.unprojectPosition([n,o]);return l.slice(0,2).concat(u.slice(0,2))}},Ab=US;(()=>{US.layerName="HeatmapLayer"})(),(()=>{US.defaultProps=QAe})();function tme(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function zS(t){if(Array.isArray(t))return t.map(e=>zS(e));if(t&&typeof t=="object"){let e={};for(let[r,i]of Object.entries(t))e[tme(r)]=zS(i);return e}return t}var wG=ga(bG(),1);function xD(t,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(n,o,s,l)=>Boolean(e?.arrayPaths?.some(f=>o===f)),...e?._fastXML},i=uge(t,r);return e?.uncapitalizeKeys?zS(i):i}function uge(t,e){return new wG.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var hge="4.2.0-beta.2",Oh={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:hge,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:fge,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>xD(new TextDecoder().decode(t),{...Oh.options.xml,...e?.xml}),parseTextSync:(t,e)=>xD(t,{...Oh.options.xml,...e?.xml})};function fge(t){return t.startsWith("<?xml")}function TG(t,e){let r=Oh.parseTextSync?.(t,e),i=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof i=="string"?i:i.value||i.code||"Unknown error"}var dge="4.2.0-beta.2",_b={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:dge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:pge,options:{wms:{throwOnError:!1}},parse:async(t,e)=>bD(new TextDecoder().decode(t),e),parseSync:(t,e)=>bD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>bD(t,e)};function pge(t){return t.startsWith("<?xml")}function bD(t,e){let r={..._b.options.wms,...e?.wms},i=TG(t,r),n=r.minimalErrors?i:`WMS Service error: ${i}`;if(r.throwOnError)throw new Error(n);return n}function tg(t){return Array.isArray(t)?t:t?[t]:[]}function yb(t){let e=tg(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function vb(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function jS(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function rg(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function wD(t,e){let r=Oh.parseTextSync?.(t,e),i=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,n=Age(i);if(e?.inheritedLayerProps)for(let o of n.layers)SG(o,null);return e?.includeRawJSON&&(n.json=i),e?.includeXMLText&&(n.xml=t),n}function Age(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:yb(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:jS(t.Service?.LayerLimit),maxWidth:jS(t.Service?.maxWidth),maxHeight:jS(t.Service?.maxHeight),layers:[],requests:mge(t.Capability?.Request),exceptions:gge(t.Exception)},r=tg(t.Capability?.Layer);for(let i of r)e.layers.push(EG(i));for(let[i,n]of Object.entries(e))n===void 0&&delete e[i];return e}function mge(t){let e={};for(let[r,i]of Object.entries(t||{})){let n=yb(i?.Format);e[r]={mimeTypes:n}}return e}function gge(t){if(tg(t?.Format).length>0)return{mimeTypes:yb(t)}}function EG(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:yb(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(f=>typeof f=="string")&&(e.crs=r);let i=t?.EX_GeographicBoundingBox&&_ge(t?.EX_GeographicBoundingBox);i&&(e.geographicBoundingBox=i),i=t?.LatLonBoundingBox&&yge(t?.LatLonBoundingBox),i&&(e.geographicBoundingBox=i);let n=t?.BoundingBox&&vge(t?.BoundingBox);n&&n.length>0&&(e.boundingBoxes=n);let s=tg(t?.Dimension).map(f=>bge(f));s.length&&(e.dimensions=s),t?.opaque&&(e.opaque=rg(t?.opaque)),t?.cascaded&&(e.cascaded=rg(t?.cascaded)),t?.queryable&&(e.queryable=rg(t?.queryable));let l=tg(t?.Layer),u=[];for(let f of l)u.push(EG(f));u.length>0&&(e.layers=u);for(let[f,v]of Object.entries(e))v===void 0&&delete e[f];return e}function _ge(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:i,southBoundLatitude:n}=t;return[[e,n],[i,r]]}function yge(t){let{minx:e,miny:r,maxx:i,maxy:n}=t;return[[e,r],[i,n]]}function vge(t){return tg(t).map(r=>xge(r))}function xge(t){let{CRS:e,SRS:r,minx:i,miny:n,maxx:o,maxy:s,resx:l,resy:u}=t,f={crs:e||r,boundingBox:[[vb(i),vb(n)],[vb(o),vb(s)]]};return l&&(f.xResolution=l),u&&(f.yResolution=u),f}function bge(t){let{name:e,units:r,value:i}=t,n={name:e,units:r,extent:i};return t.unitSymbol&&(n.unitSymbol=t.unitSymbol),t.default&&(n.defaultValue=t.default),t.multipleValues&&(n.multipleValues=rg(t.multipleValues)),t.nearestValue&&(n.nearestValue=rg(t.nearestValue)),t.current&&(n.current=rg(t.current)),n}function SG(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])SG(r,t)}var wge="4.2.0-beta.2",j_={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:wge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:Tge,options:{wms:{}},parse:async(t,e)=>wD(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>wD(t,e?.wms)};function Tge(t){return t.startsWith("<?xml")}function TD(t,e){let i=(Oh.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(i)?i:[i]).map(o=>Ege(o))}}function Ege(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var CG={...j_,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>TD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>TD(t,e)};function ED(t,e){return Oh.parseTextSync?.(t,e)}var MG={...j_,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>ED(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>ED(t,e)};function IG(t,e){let{type:r="auto"}=t,i=r==="auto"?Cge(t.url,e):Sge(r,e);if(!i)throw new Error("Not a valid image source type");return i.create(t)}function Sge(t,e){for(let r of e)if(r.type===t)return r;return null}function Cge(t,e){for(let r of e)if(r.testURL&&r.testURL(t))return r;return null}var PG={type:"wms",testURL:t=>t.toLowerCase().includes("wms"),create:t=>new SD(t)},SD=class extends Su{url;data;substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e){super(e),this.url=e.url,this.data=e.url,this.substituteCRS84=e.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...e.wmsParameters},this.vendorParameters=e.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:i,...n}=e,o={bbox:r?[...r[0],...r[1]]:i,...n};return await this.getMap(o)}normalizeMetadata(e){return e}async getCapabilities(e,r){let i=this.getCapabilitiesURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);let s=await j_.parse(o,this.loadOptions);return this.capabilities=s,s}async getMap(e,r){let i=this.getMapURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}async getFeatureInfo(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await CG.parse(o,this.loadOptions)}async getFeatureInfoText(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),new TextDecoder().decode(o)}async describeLayer(e,r){let i=this.describeLayerURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await MG.parse(o,this.loadOptions)}async getLegendGraphic(e,r){let i=this.getLegendGraphicURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}getCapabilitiesURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",i,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let i={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",i,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let{boundingBox:i,bbox:n}=e;e.bbox=i?[...i[0],...i[1]]:n;let o={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",o,r)}describeLayerURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",i,r)}getLegendGraphicURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",i,r)}_parseWMSUrl(e){let[r,i]=e.split("?"),n=i.split("&"),o={};for(let s of n){let[l,u]=s.split("=");o[l]=u}return{url:r,parameters:o}}_getWMSUrl(e,r,i){let n=this.url,o=!0,s={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...i},l=["transparent","time","elevation"];for(let[u,f]of Object.entries(s))(!l.includes(u)||f)&&(n+=o?"?":"&",o=!1,n+=this._getURLParameter(u,f,r));return encodeURI(n)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,i){switch(e){case"crs":i.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":i.version==="1.3.0"&&(e="crs");break;case"bbox":let n=this._flipBoundingBox(r,i);n&&(r=n);break;case"x":i.version==="1.3.0"&&(e="i");break;case"y":i.version==="1.3.0"&&(e="j");break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let i=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),n=e;return i?[n[1],n[0],n[3],n[2]]:n}async _fetchArrayBuffer(e){let r=await this.fetch(e),i=await r.arrayBuffer();return this._checkResponse(r,i),i}_checkResponse(e,r){let i=e.headers["content-type"];if(!e.ok||_b.mimeTypes.includes(i)){let n=Yv(this.loadOptions,{wms:{throwOnError:!0}}),o=_b.parseSync?.(r,n);throw new Error(o)}}_parseError(e){let r=_b.parseSync?.(e,this.loadOptions);return new Error(r)}};var H_=class extends Su{constructor(e){super(e)}async getMetadata(){throw new Error("ImageSource.getMetadata not implemented")}async getImage(e){let r=this.getGranularParameters(e),i=this.getURLFromTemplate(r),o=await(await this.fetch(i)).arrayBuffer();return await Sf.parse(o)}getGranularParameters(e){let[[r,i],[n,o]]=e.boundingBox;return{...e,east:r,north:i,south:o,west:n}}getURLFromTemplate(e){let r=this.props.url;for(let[i,n]of Object.entries(e))r=r.replace(`\${${i}}`,String(n)),r=r.replace(`{${i}}`,String(n));return r}};Yr(H_,"type","template"),Yr(H_,"testURL",e=>e.toLowerCase().includes("{"));var CD=class extends H_{data;constructor(e){super(e),this.data=e.url}async getMetadata(){return await this.metadata()}async getImage(e){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(e){throw new Error("not implemented")}metadataURL(e){return`${this.props.url}?f=pjson`}exportImageURL(e){let r=`bbox=${e.bbox[0]},${e.bbox[1]},${e.bbox[2]},${e.bbox[3]}`,i=`size=${e.width},${e.height}`,n={...e,bbox:r,size:i};return delete n.width,delete n.height,this.getUrl("exportImage",n)}getUrl(e,r,i){let n=`${this.props.url}/${e}`,o=!0;for(let[s,l]of Object.entries(r))n+=o?"?":"&",o=!1,Array.isArray(l)?n+=`${s.toUpperCase()}=${l.join(",")}`:n+=`${s.toUpperCase()}=${l?String(l):""}`;return n}async checkResponse(e){if(!e.ok)throw new Error("error")}},RG={type:"arcgis-image-server",testURL:t=>t.toLowerCase().includes("ImageServer"),create:t=>new CD(t)};var Mge=[PG,RG];function MD(t){return IG(t,Mge)}var BG=6378137*Math.PI;function ID(t){let e=La(t);return e[0]=(e[0]/256-1)*BG,e[1]=(e[1]/256-1)*BG,e}var Ige={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},GS=class extends es{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:i}){let{viewport:n}=this.context;e.dataChanged||r.serviceType!==i.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(n,"image source changed"),0)):Ls(r.layers,i.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(n,"viewport changed")):this.debounce(()=>this.loadImage(n,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:i}=this.state;return r&&new Vm({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:i.srs==="EPSG:4326"?Zr.LNGLAT:Zr.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:i}=this.state;return i?await this.state.imageSource.getFeatureInfoText?.({...i,query_layers:i.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Su)return e.data;if(typeof e.data=="string")return MD({url:e.data,loadOptions:e.loadOptions,type:e.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:i,serviceType:n}=this.props;if(n==="wms"&&i.length===0)return;let o=e.getBounds(),{width:s,height:l}=e,u=this.getRequestId(),{srs:f}=this.props;f==="auto"&&(f=e.resolution?"EPSG:4326":"EPSG:3857");let v={width:s,height:l,boundingBox:[[o[0],o[1]],[o[2],o[3]]],layers:i,crs:f};if(f==="EPSG:3857"){let T=ID([o[0],o[1]]),E=ID([o[2],o[3]]);v.boundingBox=[T,E]}try{this.state.loadCounter++,this.props.onImageLoadStart(u);let T=await this.state.imageSource.getImage(v);this.state.lastRequestId<u&&(this.getCurrentLayer()?.props.onImageLoad(u),this.setState({image:T,bounds:o,lastRequestParameters:v,lastRequestId:u}))}catch(T){this.raiseError(T,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(u,T)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}},HS=GS;(()=>{GS.layerName="WMSLayer"})(),(()=>{GS.defaultProps=Ige})();var Pge={getHeight:{type:"accessor",value:0},greatCircle:!0},WS=class extends zm{},xb=WS;(()=>{WS.layerName="GreatCircleLayer"})(),(()=>{WS.defaultProps=Pge})();var Rge={...Bh.defaultProps},qS=class extends es{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:i,filled:n,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:z}=this.props,{updateTriggers:W,material:J,transitions:K}=this.props,ne=this.getSubLayerClass("cell",Bh),{updateTriggers:ge,...H}=this.indexToBounds()||{};return new ne({filled:n,wireframe:i,extruded:r,elevationScale:e,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,material:J,transitions:K,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:z},this.getSubLayerProps({id:"cell",updateTriggers:W&&{...ge,getElevation:W.getElevation,getFillColor:W.getFillColor,getLineColor:W.getLineColor,getLineWidth:W.getLineWidth}}),H)}},tu=qS;(()=>{qS.layerName="GeoCellLayer"})(),(()=>{qS.defaultProps=Rge})();var XS=ga(PD(),1),Bge=3,Oge=30,Dge=2*Oge+1,DG=180/Math.PI;function FG(t,e,r){let i=1<<e;return[(t[0]+r[0])/i,(t[1]+r[1])/i]}function LG(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function NG(t){return[LG(t[0]),LG(t[1])]}function kG(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function UG([t,e,r]){let i=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*DG,i*DG]}function zG(t){let e=XS.default.fromString(t,!0,10).toString(2);for(;e.length<Bge+Dge;)e="0"+e;let r=e.lastIndexOf("1"),i=e.substring(0,3),n=e.substring(3,r),o=n.length/2,s=XS.default.fromString(i,!0,2).toString(10),l=XS.default.fromString(n,!0,2).toString(4);for(;l.length<o;)l="0"+l;return`${s}/${l}`}function Lge(t,e,r,i){if(i===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let n=e[0];e[0]=e[1],e[1]=n}}function VG(t){let e=t.split("/"),r=parseInt(e[0],10),i=e[1],n=i.length,o=[0,0],s;for(let l=n-1;l>=0;l--){s=n-l;let u=i[l],f=0,v=0;u==="1"?v=1:u==="2"?(f=1,v=1):u==="3"&&(f=1);let T=Math.pow(2,s-1);Lge(T,o,f,v),o[0]+=T*f,o[1]+=T*v}if(r%2===1){let l=o[0];o[0]=o[1],o[1]=l}return{face:r,ij:o,level:s}}var jG=ga(PD(),1);function Fge(t){let e=t.padEnd(16,"0");return jG.default.fromString(e,16)}var Nge=100;function kge({face:t,ij:e,level:r}){let i=[[0,0],[0,1],[1,1],[1,0],[0,0]],n=Math.max(1,Math.ceil(Nge*Math.pow(2,-r))),o=new Float64Array(4*n*2+2),s=0,l=0;for(let u=0;u<4;u++){let f=i[u].slice(0),v=i[u+1],T=(v[0]-f[0])/n,E=(v[1]-f[1])/n;for(let M=0;M<n;M++){f[0]+=T,f[1]+=E;let O=FG(e,r,f),F=NG(O),z=kG(t,F),W=UG(z);Math.abs(W[1])>89.999&&(W[0]=l);let J=W[0]-l;W[0]+=J>180?-360:J<-180?360:0,o[s++]=W[0],o[s++]=W[1],l=W[0]}}return o[s++]=o[0],o[s++]=o[1],o}function Uge(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=Fge(t)}return zG(t.toString())}function HG(t){let e=Uge(t),r=VG(e);return kge(r)}var zge={getS2Token:{type:"accessor",value:t=>t.token}},YS=class extends tu{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(i,n)=>HG(r(i,n))}}},wb=YS;(()=>{YS.layerName="S2Layer"})(),(()=>{YS.defaultProps=zge})();var RD=512;function Vge(t,e){let r=0,i=0,n=1<<t.length,o=n/RD;for(let s=0;s<t.length;s++){n>>=1;let l=parseInt(t[s]);l%2&&(r|=n),l>1&&(i|=n)}return[[r/o,RD-i/o],[(r+e)/o,RD-(i+e)/o]]}function GG(t,e=1){let[r,i]=Vge(t,e),[n,o]=xl(r),[s,l]=xl(i);return[s,o,s,l,n,l,n,o,s,o]}var jge={getQuadkey:{type:"accessor",value:t=>t.quadkey}},KS=class extends tu{indexToBounds(){let{data:e,extruded:r,getQuadkey:i}=this.props,n=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(o,s)=>GG(i(o,s),n),updateTriggers:{getPolygon:n}}}},Tb=KS;(()=>{KS.layerName="QuadkeyLayer"})(),(()=>{KS.defaultProps=jge})();var ig=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:i,onError:n}){let{index:o,id:s,bbox:l,userData:u,zoom:f}=this,v=this._loaderId;this._abortController=new AbortController;let{signal:T}=this._abortController,E=await r.scheduleRequest(this,F=>F.isSelected?1:-1);if(!E){this._isCancelled=!0;return}if(this._isCancelled){E.done();return}let M=null,O;try{M=await e({index:o,id:s,bbox:l,userData:u,zoom:f,signal:T})}catch(F){O=F||!0}finally{E.done()}if(v===this._loaderId){if(this._loader=void 0,this.content=M,this._isCancelled&&!M){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,O?n(O,this):i(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var sa={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var WG=new ot,Hge=new ot,rA=class{constructor(e=[0,0,0],r=[0,0,0],i){i=i||WG.copy(e).add(r).scale(.5),this.center=new ot(i),this.halfDiagonal=new ot(r).subtract(this.center),this.minimum=new ot(e),this.maximum=new ot(r)}clone(){return new rA(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,i=Hge.from(e.normal),n=r.x*Math.abs(i.x)+r.y*Math.abs(i.y)+r.z*Math.abs(i.z),o=this.center.dot(i)+e.distance;return o-n>0?sa.INSIDE:o+n<0?sa.OUTSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=WG.from(e).subtract(this.center),{halfDiagonal:i}=this,n=0,o;return o=Math.abs(r.x)-i.x,o>0&&(n+=o*o),o=Math.abs(r.y)-i.y,o>0&&(n+=o*o),o=Math.abs(r.z)-i.z,o>0&&(n+=o*o),n}};var Eb=new ot,qG=new ot,Gu=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new ot,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=Eb.from(r),this.center=new ot().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new Gu(this.center,this.radius)}union(e){let r=this.center,i=this.radius,n=e.center,o=e.radius,s=Eb.copy(n).subtract(r),l=s.magnitude();if(i>=l+o)return this.clone();if(o>=l+i)return e.clone();let u=(i+l+o)*.5;return qG.copy(s).scale((-i+u)/l).add(r),this.center.copy(qG),this.radius=u,this}expand(e){let i=Eb.from(e).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(e){this.center.transform(e);let r=Zs.getScaling(Eb,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let i=Eb.from(e).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(e){let r=this.center,i=this.radius,o=e.normal.dot(r)+e.distance;return o<-i?sa.OUTSIDE:o<i?sa.INTERSECTING:sa.INSIDE}};var Gge=new ot,Wge=new ot,ZS=new ot,JS=new ot,QS=new ot,qge=new ot,Xge=new ot,Ud={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Dh=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new ot().from(e),this.halfAxes=new mo(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2);return[new ot(e).len(),new ot(r).len(),new ot(i).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2),n=new ot(e).normalize(),o=new ot(r).normalize(),s=new ot(i).normalize();return new Du().fromMatrix3(new mo([...n,...o,...s]))}fromCenterHalfSizeQuaternion(e,r,i){let n=new Du(i),o=new mo().fromQuaternion(n);return o[0]=o[0]*r[0],o[1]=o[1]*r[0],o[2]=o[2]*r[0],o[3]=o[3]*r[1],o[4]=o[4]*r[1],o[5]=o[5]*r[1],o[6]=o[6]*r[2],o[7]=o[7]*r[2],o[8]=o[8]*r[2],this.center=new ot().from(e),this.halfAxes=o,this}clone(){return new Dh(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new Gu){let r=this.halfAxes,i=r.getColumn(0,ZS),n=r.getColumn(1,JS),o=r.getColumn(2,QS),s=Gge.copy(i).add(n).add(o);return e.center.copy(this.center),e.radius=s.magnitude(),e}intersectPlane(e){let r=this.center,i=e.normal,n=this.halfAxes,o=i.x,s=i.y,l=i.z,u=Math.abs(o*n[Ud.COLUMN0ROW0]+s*n[Ud.COLUMN0ROW1]+l*n[Ud.COLUMN0ROW2])+Math.abs(o*n[Ud.COLUMN1ROW0]+s*n[Ud.COLUMN1ROW1]+l*n[Ud.COLUMN1ROW2])+Math.abs(o*n[Ud.COLUMN2ROW0]+s*n[Ud.COLUMN2ROW1]+l*n[Ud.COLUMN2ROW2]),f=i.dot(r)+e.distance;return f<=-u?sa.OUTSIDE:f>=u?sa.INSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=Wge.from(e).subtract(this.center),i=this.halfAxes,n=i.getColumn(0,ZS),o=i.getColumn(1,JS),s=i.getColumn(2,QS),l=n.magnitude(),u=o.magnitude(),f=s.magnitude();n.normalize(),o.normalize(),s.normalize();let v=0,T;return T=Math.abs(r.dot(n))-l,T>0&&(v+=T*T),T=Math.abs(r.dot(o))-u,T>0&&(v+=T*T),T=Math.abs(r.dot(s))-f,T>0&&(v+=T*T),v}computePlaneDistances(e,r,i=[-0,-0]){let n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=this.center,l=this.halfAxes,u=l.getColumn(0,ZS),f=l.getColumn(1,JS),v=l.getColumn(2,QS),T=qge.copy(u).add(f).add(v).add(s),E=Xge.copy(T).subtract(e),M=r.dot(E);return n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),i[0]=n,i[1]=o,i}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,ZS);r.transformAsPoint(e);let i=this.halfAxes.getColumn(1,JS);i.transformAsPoint(e);let n=this.halfAxes.getColumn(2,QS);return n.transformAsPoint(e),this.halfAxes=new mo([...r,...i,...n]),this}getTransform(){throw new Error("not implemented")}};var XG=new ot,YG=new ot,$a=class{constructor(e=[0,0,1],r=0){this.normal=new ot,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return Ja(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=XG.from(e),this.normal.from(r).normalize();let i=-this.normal.dot(e);return this.distance=i,this}fromCoefficients(e,r,i,n){return this.normal.set(e,r,i),Ja(Cs(this.normal.len(),1)),this.distance=n,this}clone(){return new $a(this.normal,this.distance)}equals(e){return Cs(this.distance,e.distance)&&Cs(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=YG.copy(this.normal).transformAsVector(e).normalize(),i=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(i,r)}projectPointOntoPlane(e,r=[0,0,0]){let i=XG.from(e),n=this.getPointDistance(i),o=YG.copy(this.normal).scale(n);return i.subtract(o).to(r)}};var KG=[new ot([1,0,0]),new ot([0,1,0]),new ot([0,0,1])],ZG=new ot,Yge=new ot,wa=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*KG.length;let r=e.center,i=e.radius,n=0;for(let o of KG){let s=this.planes[n],l=this.planes[n+1];s||(s=this.planes[n]=new $a),l||(l=this.planes[n+1]=new $a);let u=ZG.copy(o).scale(-i).add(r);s.fromPointNormal(u,o);let f=ZG.copy(o).scale(i).add(r),v=Yge.copy(o).negate();l.fromPointNormal(f,v),n+=2}return this}computeVisibility(e){let r=sa.INSIDE;for(let i of this.planes)switch(e.intersectPlane(i)){case sa.OUTSIDE:return sa.OUTSIDE;case sa.INTERSECTING:r=sa.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(Ja(Number.isFinite(r),"parentPlaneMask is required."),r===wa.MASK_OUTSIDE||r===wa.MASK_INSIDE)return r;let i=wa.MASK_INSIDE,n=this.planes;for(let o=0;o<this.planes.length;++o){let s=o<31?1<<o:0;if(o<31&&!(r&s))continue;let l=n[o],u=e.intersectPlane(l);if(u===sa.OUTSIDE)return wa.MASK_OUTSIDE;u===sa.INTERSECTING&&(i|=s)}return i}};wa.MASK_OUTSIDE=4294967295;wa.MASK_INSIDE=0;wa.MASK_INDETERMINATE=2147483647;var Rtt=new ot,Btt=new ot,Ott=new ot,Dtt=new ot,Ltt=new ot;var Vtt=new ot,jtt=new ot,Htt=new ot,Gtt=new ot,Wtt=new ot,qtt=new ot,Xtt=new ot,Ytt=new ot,Ktt=new ot,Ztt=new ot,Jtt=new ot,Qtt=new ot;var Lf=new mo,Zge=new mo,Jge=new mo,$S=new mo,JG=new mo;function DD(t,e={}){let r=Lu.EPSILON20,i=10,n=0,o=0,s=Zge,l=Jge;s.identity(),l.copy(t);let u=r*Qge(l);for(;o<i&&$ge(l)>u;)e0e(l,$S),JG.copy($S).transpose(),l.multiplyRight($S),l.multiplyLeft(JG),s.multiplyRight($S),++n>2&&(++o,n=0);return e.unitary=s.toTarget(e.unitary),e.diagonal=l.toTarget(e.diagonal),e}function Qge(t){let e=0;for(let r=0;r<9;++r){let i=t[r];e+=i*i}return Math.sqrt(e)}var BD=[1,0,0],OD=[2,2,1];function $ge(t){let e=0;for(let r=0;r<3;++r){let i=t[Lf.getElementIndex(OD[r],BD[r])];e+=2*i*i}return Math.sqrt(e)}function e0e(t,e){let r=Lu.EPSILON15,i=0,n=1;for(let f=0;f<3;++f){let v=Math.abs(t[Lf.getElementIndex(OD[f],BD[f])]);v>i&&(n=f,i=v)}let o=BD[n],s=OD[n],l=1,u=0;if(Math.abs(t[Lf.getElementIndex(s,o)])>r){let f=t[Lf.getElementIndex(s,s)],v=t[Lf.getElementIndex(o,o)],T=t[Lf.getElementIndex(s,o)],E=(f-v)/2/T,M;E<0?M=-1/(-E+Math.sqrt(1+E*E)):M=1/(E+Math.sqrt(1+E*E)),l=1/Math.sqrt(1+M*M),u=M*l}return mo.IDENTITY.to(e),e[Lf.getElementIndex(o,o)]=e[Lf.getElementIndex(s,s)]=l,e[Lf.getElementIndex(s,o)]=u,e[Lf.getElementIndex(o,s)]=-u,e}var iA=new ot,t0e=new ot,r0e=new ot,i0e=new ot,n0e=new ot,o0e=new mo,s0e={diagonal:new mo,unitary:new mo};function Sb(t,e=new Dh){if(!t||t.length===0)return e.halfAxes=new mo([0,0,0,0,0,0,0,0,0]),e.center=new ot,e;let r=t.length,i=new ot(0,0,0);for(let $ of t)i.add($);let n=1/r;i.multiplyByScalar(n);let o=0,s=0,l=0,u=0,f=0,v=0;for(let $ of t){let Z=iA.copy($).subtract(i);o+=Z.x*Z.x,s+=Z.x*Z.y,l+=Z.x*Z.z,u+=Z.y*Z.y,f+=Z.y*Z.z,v+=Z.z*Z.z}o*=n,s*=n,l*=n,u*=n,f*=n,v*=n;let T=o0e;T[0]=o,T[1]=s,T[2]=l,T[3]=s,T[4]=u,T[5]=f,T[6]=l,T[7]=f,T[8]=v;let{unitary:E}=DD(T,s0e),M=e.halfAxes.copy(E),O=M.getColumn(0,r0e),F=M.getColumn(1,i0e),z=M.getColumn(2,n0e),W=-Number.MAX_VALUE,J=-Number.MAX_VALUE,K=-Number.MAX_VALUE,ne=Number.MAX_VALUE,ge=Number.MAX_VALUE,H=Number.MAX_VALUE;for(let $ of t)iA.copy($),W=Math.max(iA.dot(O),W),J=Math.max(iA.dot(F),J),K=Math.max(iA.dot(z),K),ne=Math.min(iA.dot(O),ne),ge=Math.min(iA.dot(F),ge),H=Math.min(iA.dot(z),H);O=O.multiplyByScalar(.5*(ne+W)),F=F.multiplyByScalar(.5*(ge+J)),z=z.multiplyByScalar(.5*(H+K)),e.center.copy(O).add(F).add(z);let me=t0e.set(W-ne,J-ge,K-H).multiplyByScalar(.5),he=new mo([me[0],0,0,0,me[1],0,0,0,me[2]]);return e.halfAxes.multiplyRight(he),e}var G_=512,QG=3,$G=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],eW=$G.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),a0e=eW.concat([[.25,.5],[.75,.5]]),nA=class{constructor(e,r,i){this.x=e,this.y=r,this.z=i}get children(){if(!this._children){let e=this.x*2,r=this.y*2,i=this.z+1;this._children=[new nA(e,r,i),new nA(e,r+1,i),new nA(e+1,r,i),new nA(e+1,r+1,i)]}return this._children}update(e){let{viewport:r,cullingVolume:i,elevationBounds:n,minZ:o,maxZ:s,bounds:l,offset:u,project:f}=e,v=this.getBoundingVolume(n,u,f);if(l&&!this.insideBounds(l)||i.computeVisibility(v)<0)return!1;if(!this.childVisible){let{z:E}=this;if(E<s&&E>=o){let M=v.distanceTo(r.cameraPosition)*r.scale/r.height;E+=Math.floor(Math.log2(M))}if(E>=s)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let E of this.children)E.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,i,n]){let o=Math.pow(2,this.z),s=G_/o;return this.x*s<i&&this.y*s<n&&(this.x+1)*s>e&&(this.y+1)*s>r}getBoundingVolume(e,r,i){if(i){let u=this.z<1?a0e:this.z<2?eW:$G,f=[];for(let v of u){let T=eC(this.x+v[0],this.y+v[1],this.z);T[2]=e[0],f.push(i(T)),e[0]!==e[1]&&(T[2]=e[1],f.push(i(T)))}return Sb(f)}let n=Math.pow(2,this.z),o=G_/n,s=this.x*o+r*G_,l=G_-(this.y+1)*o;return new rA([s,l,e[0]],[s+o,l+o,e[1]])}};function tW(t,e,r,i){let n=t instanceof Bd&&t.resolution?t.projectPosition:null,o=Object.values(t.getFrustumPlanes()).map(({normal:M,distance:O})=>new $a(M.clone().negate(),O)),s=new wa(o),l=t.distanceScales.unitsPerMeter[2],u=r&&r[0]*l||0,f=r&&r[1]*l||0,v=t instanceof Tc&&t.pitch<=60?e:0;if(i){let[M,O,F,z]=i,W=La([M,z]),J=La([F,O]);i=[W[0],G_-W[1],J[0],G_-J[1]]}let T=new nA(0,0,0),E={viewport:t,project:n,cullingVolume:s,elevationBounds:[u,f],minZ:v,maxZ:e,bounds:i,offset:0};if(T.update(E),t instanceof Tc&&t.subViewports&&t.subViewports.length>1){for(E.offset=-1;T.update(E)&&!(--E.offset<-QG););for(E.offset=1;T.update(E)&&!(++E.offset>QG););}return T.getSelected()}var zd=512,l0e=[-1/0,-1/0,1/0,1/0],oA={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}};function iW(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(n=>n[0])),Math.min(...r.map(n=>n[1])),Math.max(...r.map(n=>n[0])),Math.max(...r.map(n=>n[1]))]}function c0e(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function Ff(t,e){if(!t||!t.length)return null;let{index:r,id:i}=e;if(Array.isArray(t)){let o=c0e(i)%t.length;t=t[o]}let n=t;for(let o of Object.keys(r)){let s=new RegExp(`{${o}}`,"g");n=n.replace(s,String(r[o]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(n=n.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),n}function u0e(t,e,r){let i;if(e&&e.length===2){let[n,o]=e,s=t.getBounds({z:n}),l=t.getBounds({z:o});i=[Math.min(s[0],l[0]),Math.min(s[1],l[1]),Math.max(s[2],l[2]),Math.max(s[3],l[3])]}else i=t.getBounds();return t.isGeospatial?[Math.max(i[0],r[0]),Math.max(i[1],r[1]),Math.min(i[2],r[2]),Math.min(i[3],r[3])]:[Math.max(Math.min(i[0],r[2]),r[0]),Math.max(Math.min(i[1],r[3]),r[1]),Math.min(Math.max(i[2],r[0]),r[2]),Math.min(Math.max(i[3],r[1]),r[3])]}function nW({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(n=>LD(n,e||0,r))}function LD(t,e,r){if(!Array.isArray(e)){let o=r.x-t.x,s=r.y-t.y,{width:l,height:u}=r,f={targetZ:e},v=t.unproject([o,s],f),T=t.unproject([o+l,s],f),E=t.unproject([o,s+u],f),M=t.unproject([o+l,s+u],f);return[Math.min(v[0],T[0],E[0],M[0]),Math.min(v[1],T[1],E[1],M[1]),Math.max(v[0],T[0],E[0],M[0]),Math.max(v[1],T[1],E[1],M[1])]}let i=LD(t,e[0],r),n=LD(t,e[1],r);return[Math.min(i[0],n[0]),Math.min(i[1],n[1]),Math.max(i[2],n[2]),Math.max(i[3],n[3])]}function h0e(t,e,r){return r?iW(t,r).map(n=>n*e/zd):t.map(i=>i*e/zd)}function FD(t,e){return Math.pow(2,t)*zd/e}function eC(t,e,r){let i=FD(r,zd),n=t/i*360-180,o=Math.PI-2*Math.PI*e/i,s=180/Math.PI*Math.atan(.5*(Math.exp(o)-Math.exp(-o)));return[n,s]}function rW(t,e,r,i){let n=FD(r,i);return[t/n*zd,e/n*zd]}function ND(t,e,r,i,n=zd){if(t.isGeospatial){let[f,v]=eC(e,r,i),[T,E]=eC(e+1,r+1,i);return{west:f,north:v,east:T,south:E}}let[o,s]=rW(e,r,i,n),[l,u]=rW(e+1,r+1,i,n);return{left:o,top:s,right:l,bottom:u}}function f0e(t,e,r,i,n){let o=u0e(t,null,i),s=FD(e,r),[l,u,f,v]=h0e(o,s,n),T=[];for(let E=Math.floor(l);E<f;E++)for(let M=Math.floor(u);M<v;M++)T.push({x:E,y:M,z:e});return T}function kD({viewport:t,maxZoom:e,minZoom:r,zRange:i,extent:n,tileSize:o=zd,modelMatrix:s,modelMatrixInverse:l,zoomOffset:u=0}){let f=t.isGeospatial?Math.round(t.zoom+Math.log2(zd/o))+u:Math.ceil(t.zoom)+u;if(typeof r=="number"&&Number.isFinite(r)&&f<r){if(!n)return[];f=r}typeof e=="number"&&Number.isFinite(e)&&f>e&&(f=e);let v=n;return s&&l&&n&&!t.isGeospatial&&(v=iW(n,s)),t.isGeospatial?tW(t,f,i,n):f0e(t,f,o,v||l0e,l)}function UD(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function zD(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function oW(t){let e={},r;return i=>{for(let n in i)if(!d0e(i[n],e[n])){r=t(i),e=i;break}return r}}function d0e(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}return!1}var sW=1,tC=2,p0e="never",A0e="no-overlap",Cb="best-available",m0e=5,g0e={[Cb]:y0e,[A0e]:v0e,[p0e]:()=>{}},_0e={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},ng=class{constructor(e){this._getCullBounds=oW(nW),this.opts={..._0e,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new xp({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new Kr,this._modelMatrixInverse=new Kr}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom))}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:i}={zRange:null,modelMatrix:null}){let n=i?new Kr(i):new Kr,o=!n.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!Cs(this._zRange,r)||o){o&&(this._modelMatrixInverse=n.clone().invert(),this._modelMatrix=n),this._viewport=e,this._zRange=r;let l=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=l.map(u=>this._getTile(u,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(l=>this._getTile(l.index,!0)));let s=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),s&&this._frameNumber++,this._frameNumber}isTileVisible(e,r){if(!e.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:n}=e;for(let[o,s,l,u]of i){let f;if("west"in n)f=n.west<l&&n.east>o&&n.south<u&&n.north>s;else{let v=Math.min(n.top,n.bottom),T=Math.max(n.top,n.bottom);f=n.left<l&&n.right>o&&v<u&&T>s}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:i,zRange:n,modelMatrix:o,modelMatrixInverse:s}){let{tileSize:l,extent:u,zoomOffset:f}=this.opts;return kD({viewport:e,maxZoom:r,minZoom:i,zRange:n,tileSize:l,extent:u,modelMatrix:o,modelMatrixInverse:s,zoomOffset:f})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:ND(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),i=Math.floor(e.y/2),n=e.z-1;return{x:r,y:i,z:n}}updateTileStates(){let e=this.opts.refinementStrategy||Cb,r=new Array(this._cache.size),i=0;for(let n of this._cache.values())r[i++]=n.isVisible,n.isSelected=!1,n.isVisible=!1;for(let n of this._selectedTiles)n.isSelected=!0,n.isVisible=!0;(typeof e=="function"?e:g0e[e])(Array.from(this._cache.values())),i=0;for(let n of this._cache.values())if(r[i++]!==n.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],i=0;for(let n of this._cache.values())n.isLoading&&(i++,!n.isSelected&&!n.isVisible&&r.push(n));for(;e>0&&i>e&&r.length>0;)r.shift().abort(),i--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let i=this._getNearestAncestor(r);r.parent=i,i?.children&&i.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,i=r.maxCacheSize||(r.maxCacheByteSize?1/0:m0e*this.selectedTiles.length),n=r.maxCacheByteSize||1/0;if(e.size>i||this._cacheByteSize>n){for(let[s,l]of e)if(!l.isVisible&&!l.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize?l.byteLength:0,e.delete(s),this.opts.onTileUnload?.(l)),e.size<=i&&this._cacheByteSize<=n)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((s,l)=>s.zoom-l.zoom),this._dirty=!1)}_getTile(e,r){let i=this.getTileId(e),n=this._cache.get(i),o=!1;return!n&&r?(n=new ig(e),Object.assign(n,this.getTileMetadata(n.index)),Object.assign(n,{id:i,zoom:this.getTileZoom(n.index)}),o=!0,this._cache.set(i,n),this._dirty=!0):n&&n.needsReload&&(o=!0),n&&o&&n.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),n}_getNearestAncestor(e){let{_minZoom:r=0}=this,i=e.index;for(;this.getTileZoom(i)>r;){i=this.getParentIndex(i);let n=this._getTile(i);if(n)return n}return null}};function y0e(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!aW(e)&&VD(e);for(let e of t)e.isVisible=Boolean(e.state&tC)}function v0e(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&aW(r);let e=Array.from(t).sort((r,i)=>r.zoom-i.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&tC),r.children&&(r.isVisible||r.state&sW))for(let i of r.children)i.state=sW;else r.isSelected&&VD(r)}function aW(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=tC,!0;e=e.parent}return!1}function VD(t){for(let e of t.children)e.isLoaded||e.content?e.state|=tC:VD(e)}var x0e={TilesetClass:ng,data:{type:"data",value:[]},dataComparator:oA.equal,renderSubLayers:{type:"function",value:t=>new Df(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:Cb,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0},rC=class extends es{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&e.layers&&e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,i=e.propsOrDataChanged||e.updateTriggersChanged,n=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?i&&(r.setOptions(this._getTilesetOptions()),n?r.reloadAll():r.tiles.forEach(o=>{o.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:i,refinementStrategy:n,extent:o,maxZoom:s,minZoom:l,maxRequests:u,debounceTime:f,zoomOffset:v}=this.props;return{maxCacheSize:r,maxCacheByteSize:i,maxZoom:s,minZoom:l,tileSize:e,refinementStrategy:n,extent:o,maxRequests:u,debounceTime:f,zoomOffset:v,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:i}=this.props,n=e.update(this.context.viewport,{zRange:r,modelMatrix:i}),{isLoaded:o}=e,s=this.state.isLoaded!==o,l=this.state.frameNumber!==n;o&&(s||l)&&this._onViewportLoad(),l&&this.setState({frameNumber:n}),this.state.isLoaded=o}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:i,fetch:n}=this.props,{signal:o}=e;return e.url=typeof r=="string"||Array.isArray(r)?Ff(r,e):null,i?i(e):n&&e.url?n(e.url,{propName:"data",layer:this,signal:o}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,i=r.props.tile,n=e.info;return n.picked&&(n.tile=i),n.sourceTile=i,n.sourceTileSubLayer=r,n}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){return this.state.tileset.tiles.map(e=>{let r=this.getSubLayerPropsByTile(e);if(!(!e.isLoaded&&!e.content))if(e.layers)r&&e.layers[0]&&Object.keys(r).some(i=>e.layers[0].props[i]!==r[i])&&(e.layers=e.layers.map(i=>i.clone(r)));else{let i=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=Bf(i,Boolean).map(n=>n.clone({tile:e,...r}))}return e.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:i}=e.props;return this.state.tileset.isTileVisible(i,r)}},Nf=rC;(()=>{rC.defaultProps=x0e})(),(()=>{rC.layerName="TileLayer"})();var b0e={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},iC=class extends Ph{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`uniform float trailLength;
3329
+ `;var ZAe=2,fD={format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},G7=[0,0],JAe={SUM:0,MEAN:1},QAe={getPosition:{type:"accessor",value:t=>t.position},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50},colorRange:Hu,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},$Ae=["float32-renderable-webgl","texture-blend-float-webgl"],eme={data:{props:["radiusPixels"]}},US=class extends eu{initializeState(){super.initializeAggregationLayer(eme),this.setState({colorDomain:G7}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){super.updateState(e),this._updateHeatmapState(e)}_updateHeatmapState(e){let{props:r,oldProps:i}=e,n=this._getChangeFlags(e);(n.dataChanged||n.viewportChanged)&&(n.boundsChanged=this._updateBounds(n.dataChanged),this._updateTextureRenderingBounds()),n.dataChanged||n.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):n.viewportZoomChanged&&this._debouncedUpdateWeightmap(),r.colorRange!==i.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}renderLayers(){let{weightsTexture:e,triPositionBuffer:r,triTexCoordBuffer:i,maxWeightsTexture:n,colorTexture:o,colorDomain:s}=this.state,{updateTriggers:l,intensity:u,threshold:f,aggregation:v}=this.props,T=this.getSubLayerClass("triangle",pb);return new T(this.getSubLayerProps({id:"triangle-layer",updateTriggers:l}),{coordinateSystem:Zr.DEFAULT,data:{attributes:{positions:r,texCoords:i}},vertexCount:4,maxTexture:n,colorTexture:o,aggregationMode:JAe[v]||0,weightsTexture:e,intensity:u,threshold:f,colorDomain:s})}finalizeState(e){super.finalizeState(e);let{weightsTransform:r,weightsTexture:i,maxWeightTransform:n,maxWeightsTexture:o,triPositionBuffer:s,triTexCoordBuffer:l,colorTexture:u,updateTimer:f}=this.state;r?.destroy(),i?.destroy(),n?.destroy(),o?.destroy(),s?.destroy(),l?.destroy(),u?.destroy(),f&&clearTimeout(f)}_getAttributeManager(){return new Mh(this.context.device,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(e){let r={},{dimensions:i}=this.state;r.dataChanged=this.isAttributeChanged()&&"attribute changed"||this.isAggregationDirty(e,{compareAll:!0,dimension:i.data})&&"aggregation is dirty",r.viewportChanged=e.changeFlags.viewportChanged;let{zoom:n}=this.state;return(!e.context.viewport||e.context.viewport.zoom!==n)&&(r.viewportZoomChanged=!0),r}_createTextures(){let{textureSize:e,format:r}=this.state;this.setState({weightsTexture:this.context.device.createTexture({...fD,width:e,height:e,format:r}),maxWeightsTexture:this.context.device.createTexture({...fD,width:1,height:1,format:r})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:"float64",accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}_setupTextureParams(){let{device:e}=this.context,{weightsTextureSize:r}=this.props,i=Math.min(r,e.limits.maxTextureDimension2D),n=$Ae.every(l=>e.features.has(l)),o=n?"rgba32float":"rgba8unorm",s=n?1:1/255;this.setState({textureSize:i,format:o,weightsScale:s}),n||ur.warn(`HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`)()}_createWeightsTransform(e){let{weightsTransform:r}=this.state,{weightsTexture:i}=this.state,n=this.getAttributeManager();r?.destroy(),r=new If(this.context.device,{id:`${this.id}-weights-transform`,bufferLayout:n.getBufferLayouts(),vertexCount:1,targetTexture:i,parameters:{depthWriteEnabled:!1,blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"},topology:"point-list",...e}),this.setState({weightsTransform:r})}_setupResources(){this._createTextures();let{device:e}=this.context,{textureSize:r,weightsTexture:i,maxWeightsTexture:n}=this.state,o=this.getShaders({vs:uD,fs:hD});this._createWeightsTransform(o);let s=this.getShaders({vs:j7,fs:H7}),l=new If(e,{id:`${this.id}-max-weights-transform`,bindings:{inTexture:i},uniforms:{textureSize:r},targetTexture:n,...s,vertexCount:r*r,topology:"point-list",parameters:{depthWriteEnabled:!1,blendColorOperation:"max",blendAlphaOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}});this.setState({weightsTexture:i,maxWeightsTexture:n,maxWeightTransform:l,zoom:null,triPositionBuffer:e.createBuffer({byteLength:48}),triTexCoordBuffer:e.createBuffer({byteLength:48})})}updateShaders(e){this._createWeightsTransform({vs:uD,fs:hD,...e})}_updateMaxWeightValue(){let{maxWeightTransform:e}=this.state;e.run({parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]})}_updateBounds(e=!1){let{viewport:r}=this.context,i=[r.unproject([0,0]),r.unproject([r.width,0]),r.unproject([r.width,r.height]),r.unproject([0,r.height])].map(l=>l.map(Math.fround)),n=F7(i),o={visibleWorldBounds:n,viewportCorners:i},s=!1;if(e||!this.state.worldBounds||!N7(this.state.worldBounds,n)){let l=this._worldToCommonBounds(n),u=this._commonToWorldBounds(l);this.props.coordinateSystem===Zr.LNGLAT&&(u[1]=Math.max(u[1],-85.051129),u[3]=Math.min(u[3],85.051129),u[0]=Math.max(u[0],-360),u[2]=Math.min(u[2],360));let f=this._worldToCommonBounds(u);o.worldBounds=u,o.normalizedCommonBounds=f,s=!0}return this.setState(o),s}_updateTextureRenderingBounds(){let{triPositionBuffer:e,triTexCoordBuffer:r,normalizedCommonBounds:i,viewportCorners:n}=this.state,{viewport:o}=this.context;e.write(lD(n,3));let s=n.map(l=>U7(o.projectPosition(l),i));r.write(lD(s,2))}_updateColorTexture(e){let{colorRange:r}=e.props,{colorTexture:i}=this.state,n=Qp(r,!1,Uint8Array);i&&i?.width===r.length?i.setSubImageData({data:n}):(i?.destroy(),i=this.context.device.createTexture({...fD,data:n,width:r.length,height:1})),this.setState({colorTexture:i})}_updateWeightmap(){let{radiusPixels:e,colorDomain:r,aggregation:i}=this.props,{worldBounds:n,textureSize:o,weightsScale:s}=this.state,l=this.state.weightsTransform;this.state.isWeightMapDirty=!1;let u=this._worldToCommonBounds(n,{useLayerCoordinateSystem:!0});if(r&&i==="SUM"){let{viewport:M}=this.context,O=M.distanceScales.metersPerUnit[2]*(u[2]-u[0])/o;this.state.colorDomain=r.map(F=>F*O*s)}else this.state.colorDomain=r||G7;let v=this.getAttributeManager().getAttributes(),T=this.getModuleSettings(),E={radiusPixels:e,commonBounds:u,textureWidth:o,weightsScale:s};this._setModelAttributes(l.model,v),l.model.setVertexCount(this.getNumInstances()),l.model.setUniforms(E),l.model.updateModuleSettings(T),l.run({parameters:{viewport:[0,0,o,o]},clearColor:[0,0,0,0]}),this._updateMaxWeightValue()}_debouncedUpdateWeightmap(e=!1){let{updateTimer:r}=this.state,{debounceTimeout:i}=this.props;e?(r=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(r),r=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),i)),this.setState({updateTimer:r})}_worldToCommonBounds(e,r={}){let{useLayerCoordinateSystem:i=!1}=r,[n,o,s,l]=e,{viewport:u}=this.context,{textureSize:f}=this.state,{coordinateSystem:v}=this.props,T=i&&(v===Zr.LNGLAT_OFFSETS||v===Zr.METER_OFFSETS),E=T?u.projectPosition(this.props.coordinateOrigin):[0,0],M=f*ZAe/u.scale,O,F;return i&&!T?(O=this.projectPosition([n,o,0]),F=this.projectPosition([s,l,0])):(O=u.projectPosition([n,o,0]),F=u.projectPosition([s,l,0])),k7([O[0]-E[0],O[1]-E[1],F[0]-E[0],F[1]-E[1]],M,M)}_commonToWorldBounds(e){let[r,i,n,o]=e,{viewport:s}=this.context,l=s.unprojectPosition([r,i]),u=s.unprojectPosition([n,o]);return l.slice(0,2).concat(u.slice(0,2))}},Ab=US;(()=>{US.layerName="HeatmapLayer"})(),(()=>{US.defaultProps=QAe})();function tme(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function zS(t){if(Array.isArray(t))return t.map(e=>zS(e));if(t&&typeof t=="object"){let e={};for(let[r,i]of Object.entries(t))e[tme(r)]=zS(i);return e}return t}var wG=ga(bG(),1);function xD(t,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(n,o,s,l)=>Boolean(e?.arrayPaths?.some(f=>o===f)),...e?._fastXML},i=uge(t,r);return e?.uncapitalizeKeys?zS(i):i}function uge(t,e){return new wG.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var hge="4.2.0-beta.2",Oh={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:hge,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:fge,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>xD(new TextDecoder().decode(t),{...Oh.options.xml,...e?.xml}),parseTextSync:(t,e)=>xD(t,{...Oh.options.xml,...e?.xml})};function fge(t){return t.startsWith("<?xml")}function TG(t,e){let r=Oh.parseTextSync?.(t,e),i=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof i=="string"?i:i.value||i.code||"Unknown error"}var dge="4.2.0-beta.2",_b={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:dge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:pge,options:{wms:{throwOnError:!1}},parse:async(t,e)=>bD(new TextDecoder().decode(t),e),parseSync:(t,e)=>bD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>bD(t,e)};function pge(t){return t.startsWith("<?xml")}function bD(t,e){let r={..._b.options.wms,...e?.wms},i=TG(t,r),n=r.minimalErrors?i:`WMS Service error: ${i}`;if(r.throwOnError)throw new Error(n);return n}function tg(t){return Array.isArray(t)?t:t?[t]:[]}function yb(t){let e=tg(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function vb(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function jS(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function rg(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function wD(t,e){let r=Oh.parseTextSync?.(t,e),i=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,n=Age(i);if(e?.inheritedLayerProps)for(let o of n.layers)SG(o,null);return e?.includeRawJSON&&(n.json=i),e?.includeXMLText&&(n.xml=t),n}function Age(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:yb(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:jS(t.Service?.LayerLimit),maxWidth:jS(t.Service?.maxWidth),maxHeight:jS(t.Service?.maxHeight),layers:[],requests:mge(t.Capability?.Request),exceptions:gge(t.Exception)},r=tg(t.Capability?.Layer);for(let i of r)e.layers.push(EG(i));for(let[i,n]of Object.entries(e))n===void 0&&delete e[i];return e}function mge(t){let e={};for(let[r,i]of Object.entries(t||{})){let n=yb(i?.Format);e[r]={mimeTypes:n}}return e}function gge(t){if(tg(t?.Format).length>0)return{mimeTypes:yb(t)}}function EG(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:yb(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(f=>typeof f=="string")&&(e.crs=r);let i=t?.EX_GeographicBoundingBox&&_ge(t?.EX_GeographicBoundingBox);i&&(e.geographicBoundingBox=i),i=t?.LatLonBoundingBox&&yge(t?.LatLonBoundingBox),i&&(e.geographicBoundingBox=i);let n=t?.BoundingBox&&vge(t?.BoundingBox);n&&n.length>0&&(e.boundingBoxes=n);let s=tg(t?.Dimension).map(f=>bge(f));s.length&&(e.dimensions=s),t?.opaque&&(e.opaque=rg(t?.opaque)),t?.cascaded&&(e.cascaded=rg(t?.cascaded)),t?.queryable&&(e.queryable=rg(t?.queryable));let l=tg(t?.Layer),u=[];for(let f of l)u.push(EG(f));u.length>0&&(e.layers=u);for(let[f,v]of Object.entries(e))v===void 0&&delete e[f];return e}function _ge(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:i,southBoundLatitude:n}=t;return[[e,n],[i,r]]}function yge(t){let{minx:e,miny:r,maxx:i,maxy:n}=t;return[[e,r],[i,n]]}function vge(t){return tg(t).map(r=>xge(r))}function xge(t){let{CRS:e,SRS:r,minx:i,miny:n,maxx:o,maxy:s,resx:l,resy:u}=t,f={crs:e||r,boundingBox:[[vb(i),vb(n)],[vb(o),vb(s)]]};return l&&(f.xResolution=l),u&&(f.yResolution=u),f}function bge(t){let{name:e,units:r,value:i}=t,n={name:e,units:r,extent:i};return t.unitSymbol&&(n.unitSymbol=t.unitSymbol),t.default&&(n.defaultValue=t.default),t.multipleValues&&(n.multipleValues=rg(t.multipleValues)),t.nearestValue&&(n.nearestValue=rg(t.nearestValue)),t.current&&(n.current=rg(t.current)),n}function SG(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])SG(r,t)}var wge="4.2.0-beta.2",j_={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:wge,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:Tge,options:{wms:{}},parse:async(t,e)=>wD(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>wD(t,e?.wms)};function Tge(t){return t.startsWith("<?xml")}function TD(t,e){let i=(Oh.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(i)?i:[i]).map(o=>Ege(o))}}function Ege(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var CG={...j_,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>TD(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>TD(t,e)};function ED(t,e){return Oh.parseTextSync?.(t,e)}var MG={...j_,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>ED(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>ED(t,e)};function IG(t,e){let{type:r="auto"}=t,i=r==="auto"?Cge(t.url,e):Sge(r,e);if(!i)throw new Error("Not a valid image source type");return i.create(t)}function Sge(t,e){for(let r of e)if(r.type===t)return r;return null}function Cge(t,e){for(let r of e)if(r.testURL&&r.testURL(t))return r;return null}var PG={type:"wms",testURL:t=>t.toLowerCase().includes("wms"),create:t=>new SD(t)},SD=class extends Su{url;data;substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e){super(e),this.url=e.url,this.data=e.url,this.substituteCRS84=e.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...e.wmsParameters},this.vendorParameters=e.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:i,...n}=e,o={bbox:r?[...r[0],...r[1]]:i,...n};return await this.getMap(o)}normalizeMetadata(e){return e}async getCapabilities(e,r){let i=this.getCapabilitiesURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);let s=await j_.parse(o,this.loadOptions);return this.capabilities=s,s}async getMap(e,r){let i=this.getMapURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}async getFeatureInfo(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await CG.parse(o,this.loadOptions)}async getFeatureInfoText(e,r){let i=this.getFeatureInfoURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),new TextDecoder().decode(o)}async describeLayer(e,r){let i=this.describeLayerURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();return this._checkResponse(n,o),await MG.parse(o,this.loadOptions)}async getLegendGraphic(e,r){let i=this.getLegendGraphicURL(e,r),n=await this.fetch(i),o=await n.arrayBuffer();this._checkResponse(n,o);try{return await Sf.parse(o,this.loadOptions)}catch{throw this._parseError(o)}}getCapabilitiesURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",i,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let i={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",i,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let{boundingBox:i,bbox:n}=e;e.bbox=i?[...i[0],...i[1]]:n;let o={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",o,r)}describeLayerURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",i,r)}getLegendGraphicURL(e,r){let i={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",i,r)}_parseWMSUrl(e){let[r,i]=e.split("?"),n=i.split("&"),o={};for(let s of n){let[l,u]=s.split("=");o[l]=u}return{url:r,parameters:o}}_getWMSUrl(e,r,i){let n=this.url,o=!0,s={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...i},l=["transparent","time","elevation"];for(let[u,f]of Object.entries(s))(!l.includes(u)||f)&&(n+=o?"?":"&",o=!1,n+=this._getURLParameter(u,f,r));return encodeURI(n)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,i){switch(e){case"crs":i.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":i.version==="1.3.0"&&(e="crs");break;case"bbox":let n=this._flipBoundingBox(r,i);n&&(r=n);break;case"x":i.version==="1.3.0"&&(e="i");break;case"y":i.version==="1.3.0"&&(e="j");break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let i=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),n=e;return i?[n[1],n[0],n[3],n[2]]:n}async _fetchArrayBuffer(e){let r=await this.fetch(e),i=await r.arrayBuffer();return this._checkResponse(r,i),i}_checkResponse(e,r){let i=e.headers["content-type"];if(!e.ok||_b.mimeTypes.includes(i)){let n=Yv(this.loadOptions,{wms:{throwOnError:!0}}),o=_b.parseSync?.(r,n);throw new Error(o)}}_parseError(e){let r=_b.parseSync?.(e,this.loadOptions);return new Error(r)}};var H_=class extends Su{constructor(e){super(e)}async getMetadata(){throw new Error("ImageSource.getMetadata not implemented")}async getImage(e){let r=this.getGranularParameters(e),i=this.getURLFromTemplate(r),o=await(await this.fetch(i)).arrayBuffer();return await Sf.parse(o)}getGranularParameters(e){let[[r,i],[n,o]]=e.boundingBox;return{...e,east:r,north:i,south:o,west:n}}getURLFromTemplate(e){let r=this.props.url;for(let[i,n]of Object.entries(e))r=r.replace(`\${${i}}`,String(n)),r=r.replace(`{${i}}`,String(n));return r}};Yr(H_,"type","template"),Yr(H_,"testURL",e=>e.toLowerCase().includes("{"));var CD=class extends H_{data;constructor(e){super(e),this.data=e.url}async getMetadata(){return await this.metadata()}async getImage(e){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(e){throw new Error("not implemented")}metadataURL(e){return`${this.props.url}?f=pjson`}exportImageURL(e){let r=`bbox=${e.bbox[0]},${e.bbox[1]},${e.bbox[2]},${e.bbox[3]}`,i=`size=${e.width},${e.height}`,n={...e,bbox:r,size:i};return delete n.width,delete n.height,this.getUrl("exportImage",n)}getUrl(e,r,i){let n=`${this.props.url}/${e}`,o=!0;for(let[s,l]of Object.entries(r))n+=o?"?":"&",o=!1,Array.isArray(l)?n+=`${s.toUpperCase()}=${l.join(",")}`:n+=`${s.toUpperCase()}=${l?String(l):""}`;return n}async checkResponse(e){if(!e.ok)throw new Error("error")}},RG={type:"arcgis-image-server",testURL:t=>t.toLowerCase().includes("ImageServer"),create:t=>new CD(t)};var Mge=[PG,RG];function MD(t){return IG(t,Mge)}var BG=6378137*Math.PI;function ID(t){let e=La(t);return e[0]=(e[0]/256-1)*BG,e[1]=(e[1]/256-1)*BG,e}var Ige={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},GS=class extends es{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:i}){let{viewport:n}=this.context;e.dataChanged||r.serviceType!==i.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(n,"image source changed"),0)):Ls(r.layers,i.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(n,"viewport changed")):this.debounce(()=>this.loadImage(n,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:i}=this.state;return r&&new Vm({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:i.srs==="EPSG:4326"?Zr.LNGLAT:Zr.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:i}=this.state;return i?await this.state.imageSource.getFeatureInfoText?.({...i,query_layers:i.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Su)return e.data;if(typeof e.data=="string")return MD({url:e.data,loadOptions:e.loadOptions,type:e.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:i,serviceType:n}=this.props;if(n==="wms"&&i.length===0)return;let o=e.getBounds(),{width:s,height:l}=e,u=this.getRequestId(),{srs:f}=this.props;f==="auto"&&(f=e.resolution?"EPSG:4326":"EPSG:3857");let v={width:s,height:l,boundingBox:[[o[0],o[1]],[o[2],o[3]]],layers:i,crs:f};if(f==="EPSG:3857"){let T=ID([o[0],o[1]]),E=ID([o[2],o[3]]);v.boundingBox=[T,E]}try{this.state.loadCounter++,this.props.onImageLoadStart(u);let T=await this.state.imageSource.getImage(v);this.state.lastRequestId<u&&(this.getCurrentLayer()?.props.onImageLoad(u),this.setState({image:T,bounds:o,lastRequestParameters:v,lastRequestId:u}))}catch(T){this.raiseError(T,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(u,T)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}},HS=GS;(()=>{GS.layerName="WMSLayer"})(),(()=>{GS.defaultProps=Ige})();var Pge={getHeight:{type:"accessor",value:0},greatCircle:!0},WS=class extends zm{},xb=WS;(()=>{WS.layerName="GreatCircleLayer"})(),(()=>{WS.defaultProps=Pge})();var Rge={...Bh.defaultProps},qS=class extends es{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:i,filled:n,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:z}=this.props,{updateTriggers:W,material:J,transitions:K}=this.props,ne=this.getSubLayerClass("cell",Bh),{updateTriggers:ge,...H}=this.indexToBounds()||{};return new ne({filled:n,wireframe:i,extruded:r,elevationScale:e,stroked:o,lineWidthUnits:s,lineWidthScale:l,lineWidthMinPixels:u,lineWidthMaxPixels:f,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:E,material:J,transitions:K,getElevation:M,getFillColor:O,getLineColor:F,getLineWidth:z},this.getSubLayerProps({id:"cell",updateTriggers:W&&{...ge,getElevation:W.getElevation,getFillColor:W.getFillColor,getLineColor:W.getLineColor,getLineWidth:W.getLineWidth}}),H)}},tu=qS;(()=>{qS.layerName="GeoCellLayer"})(),(()=>{qS.defaultProps=Rge})();var XS=ga(PD(),1),Bge=3,Oge=30,Dge=2*Oge+1,DG=180/Math.PI;function FG(t,e,r){let i=1<<e;return[(t[0]+r[0])/i,(t[1]+r[1])/i]}function LG(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function NG(t){return[LG(t[0]),LG(t[1])]}function kG(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function UG([t,e,r]){let i=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*DG,i*DG]}function zG(t){let e=XS.default.fromString(t,!0,10).toString(2);for(;e.length<Bge+Dge;)e="0"+e;let r=e.lastIndexOf("1"),i=e.substring(0,3),n=e.substring(3,r),o=n.length/2,s=XS.default.fromString(i,!0,2).toString(10),l=XS.default.fromString(n,!0,2).toString(4);for(;l.length<o;)l="0"+l;return`${s}/${l}`}function Lge(t,e,r,i){if(i===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let n=e[0];e[0]=e[1],e[1]=n}}function VG(t){let e=t.split("/"),r=parseInt(e[0],10),i=e[1],n=i.length,o=[0,0],s;for(let l=n-1;l>=0;l--){s=n-l;let u=i[l],f=0,v=0;u==="1"?v=1:u==="2"?(f=1,v=1):u==="3"&&(f=1);let T=Math.pow(2,s-1);Lge(T,o,f,v),o[0]+=T*f,o[1]+=T*v}if(r%2===1){let l=o[0];o[0]=o[1],o[1]=l}return{face:r,ij:o,level:s}}var jG=ga(PD(),1);function Fge(t){let e=t.padEnd(16,"0");return jG.default.fromString(e,16)}var Nge=100;function kge({face:t,ij:e,level:r}){let i=[[0,0],[0,1],[1,1],[1,0],[0,0]],n=Math.max(1,Math.ceil(Nge*Math.pow(2,-r))),o=new Float64Array(4*n*2+2),s=0,l=0;for(let u=0;u<4;u++){let f=i[u].slice(0),v=i[u+1],T=(v[0]-f[0])/n,E=(v[1]-f[1])/n;for(let M=0;M<n;M++){f[0]+=T,f[1]+=E;let O=FG(e,r,f),F=NG(O),z=kG(t,F),W=UG(z);Math.abs(W[1])>89.999&&(W[0]=l);let J=W[0]-l;W[0]+=J>180?-360:J<-180?360:0,o[s++]=W[0],o[s++]=W[1],l=W[0]}}return o[s++]=o[0],o[s++]=o[1],o}function Uge(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=Fge(t)}return zG(t.toString())}function HG(t){let e=Uge(t),r=VG(e);return kge(r)}var zge={getS2Token:{type:"accessor",value:t=>t.token}},YS=class extends tu{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(i,n)=>HG(r(i,n))}}},wb=YS;(()=>{YS.layerName="S2Layer"})(),(()=>{YS.defaultProps=zge})();var RD=512;function Vge(t,e){let r=0,i=0,n=1<<t.length,o=n/RD;for(let s=0;s<t.length;s++){n>>=1;let l=parseInt(t[s]);l%2&&(r|=n),l>1&&(i|=n)}return[[r/o,RD-i/o],[(r+e)/o,RD-(i+e)/o]]}function GG(t,e=1){let[r,i]=Vge(t,e),[n,o]=xl(r),[s,l]=xl(i);return[s,o,s,l,n,l,n,o,s,o]}var jge={getQuadkey:{type:"accessor",value:t=>t.quadkey}},KS=class extends tu{indexToBounds(){let{data:e,extruded:r,getQuadkey:i}=this.props,n=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(o,s)=>GG(i(o,s),n),updateTriggers:{getPolygon:n}}}},Tb=KS;(()=>{KS.layerName="QuadkeyLayer"})(),(()=>{KS.defaultProps=jge})();var ig=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:i,onError:n}){let{index:o,id:s,bbox:l,userData:u,zoom:f}=this,v=this._loaderId;this._abortController=new AbortController;let{signal:T}=this._abortController,E=await r.scheduleRequest(this,F=>F.isSelected?1:-1);if(!E){this._isCancelled=!0;return}if(this._isCancelled){E.done();return}let M=null,O;try{M=await e({index:o,id:s,bbox:l,userData:u,zoom:f,signal:T})}catch(F){O=F||!0}finally{E.done()}if(v===this._loaderId){if(this._loader=void 0,this.content=M,this._isCancelled&&!M){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,O?n(O,this):i(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var sa={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var WG=new ot,Hge=new ot,rA=class{constructor(e=[0,0,0],r=[0,0,0],i){i=i||WG.copy(e).add(r).scale(.5),this.center=new ot(i),this.halfDiagonal=new ot(r).subtract(this.center),this.minimum=new ot(e),this.maximum=new ot(r)}clone(){return new rA(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,i=Hge.from(e.normal),n=r.x*Math.abs(i.x)+r.y*Math.abs(i.y)+r.z*Math.abs(i.z),o=this.center.dot(i)+e.distance;return o-n>0?sa.INSIDE:o+n<0?sa.OUTSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=WG.from(e).subtract(this.center),{halfDiagonal:i}=this,n=0,o;return o=Math.abs(r.x)-i.x,o>0&&(n+=o*o),o=Math.abs(r.y)-i.y,o>0&&(n+=o*o),o=Math.abs(r.z)-i.z,o>0&&(n+=o*o),n}};var Eb=new ot,qG=new ot,Gu=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new ot,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=Eb.from(r),this.center=new ot().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new Gu(this.center,this.radius)}union(e){let r=this.center,i=this.radius,n=e.center,o=e.radius,s=Eb.copy(n).subtract(r),l=s.magnitude();if(i>=l+o)return this.clone();if(o>=l+i)return e.clone();let u=(i+l+o)*.5;return qG.copy(s).scale((-i+u)/l).add(r),this.center.copy(qG),this.radius=u,this}expand(e){let i=Eb.from(e).subtract(this.center).magnitude();return i>this.radius&&(this.radius=i),this}transform(e){this.center.transform(e);let r=Zs.getScaling(Eb,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let i=Eb.from(e).subtract(this.center);return Math.max(0,i.len()-this.radius)}intersectPlane(e){let r=this.center,i=this.radius,o=e.normal.dot(r)+e.distance;return o<-i?sa.OUTSIDE:o<i?sa.INTERSECTING:sa.INSIDE}};var Gge=new ot,Wge=new ot,ZS=new ot,JS=new ot,QS=new ot,qge=new ot,Xge=new ot,Ud={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Dh=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new ot().from(e),this.halfAxes=new mo(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2);return[new ot(e).len(),new ot(r).len(),new ot(i).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),i=this.halfAxes.getColumn(2),n=new ot(e).normalize(),o=new ot(r).normalize(),s=new ot(i).normalize();return new Du().fromMatrix3(new mo([...n,...o,...s]))}fromCenterHalfSizeQuaternion(e,r,i){let n=new Du(i),o=new mo().fromQuaternion(n);return o[0]=o[0]*r[0],o[1]=o[1]*r[0],o[2]=o[2]*r[0],o[3]=o[3]*r[1],o[4]=o[4]*r[1],o[5]=o[5]*r[1],o[6]=o[6]*r[2],o[7]=o[7]*r[2],o[8]=o[8]*r[2],this.center=new ot().from(e),this.halfAxes=o,this}clone(){return new Dh(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new Gu){let r=this.halfAxes,i=r.getColumn(0,ZS),n=r.getColumn(1,JS),o=r.getColumn(2,QS),s=Gge.copy(i).add(n).add(o);return e.center.copy(this.center),e.radius=s.magnitude(),e}intersectPlane(e){let r=this.center,i=e.normal,n=this.halfAxes,o=i.x,s=i.y,l=i.z,u=Math.abs(o*n[Ud.COLUMN0ROW0]+s*n[Ud.COLUMN0ROW1]+l*n[Ud.COLUMN0ROW2])+Math.abs(o*n[Ud.COLUMN1ROW0]+s*n[Ud.COLUMN1ROW1]+l*n[Ud.COLUMN1ROW2])+Math.abs(o*n[Ud.COLUMN2ROW0]+s*n[Ud.COLUMN2ROW1]+l*n[Ud.COLUMN2ROW2]),f=i.dot(r)+e.distance;return f<=-u?sa.OUTSIDE:f>=u?sa.INSIDE:sa.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=Wge.from(e).subtract(this.center),i=this.halfAxes,n=i.getColumn(0,ZS),o=i.getColumn(1,JS),s=i.getColumn(2,QS),l=n.magnitude(),u=o.magnitude(),f=s.magnitude();n.normalize(),o.normalize(),s.normalize();let v=0,T;return T=Math.abs(r.dot(n))-l,T>0&&(v+=T*T),T=Math.abs(r.dot(o))-u,T>0&&(v+=T*T),T=Math.abs(r.dot(s))-f,T>0&&(v+=T*T),v}computePlaneDistances(e,r,i=[-0,-0]){let n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=this.center,l=this.halfAxes,u=l.getColumn(0,ZS),f=l.getColumn(1,JS),v=l.getColumn(2,QS),T=qge.copy(u).add(f).add(v).add(s),E=Xge.copy(T).subtract(e),M=r.dot(E);return n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),T.copy(s).add(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).add(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).add(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),s.copy(T).subtract(u).subtract(f).subtract(v),E.copy(T).subtract(e),M=r.dot(E),n=Math.min(M,n),o=Math.max(M,o),i[0]=n,i[1]=o,i}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,ZS);r.transformAsPoint(e);let i=this.halfAxes.getColumn(1,JS);i.transformAsPoint(e);let n=this.halfAxes.getColumn(2,QS);return n.transformAsPoint(e),this.halfAxes=new mo([...r,...i,...n]),this}getTransform(){throw new Error("not implemented")}};var XG=new ot,YG=new ot,$a=class{constructor(e=[0,0,1],r=0){this.normal=new ot,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return Ja(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=XG.from(e),this.normal.from(r).normalize();let i=-this.normal.dot(e);return this.distance=i,this}fromCoefficients(e,r,i,n){return this.normal.set(e,r,i),Ja(Cs(this.normal.len(),1)),this.distance=n,this}clone(){return new $a(this.normal,this.distance)}equals(e){return Cs(this.distance,e.distance)&&Cs(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=YG.copy(this.normal).transformAsVector(e).normalize(),i=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(i,r)}projectPointOntoPlane(e,r=[0,0,0]){let i=XG.from(e),n=this.getPointDistance(i),o=YG.copy(this.normal).scale(n);return i.subtract(o).to(r)}};var KG=[new ot([1,0,0]),new ot([0,1,0]),new ot([0,0,1])],ZG=new ot,Yge=new ot,wa=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*KG.length;let r=e.center,i=e.radius,n=0;for(let o of KG){let s=this.planes[n],l=this.planes[n+1];s||(s=this.planes[n]=new $a),l||(l=this.planes[n+1]=new $a);let u=ZG.copy(o).scale(-i).add(r);s.fromPointNormal(u,o);let f=ZG.copy(o).scale(i).add(r),v=Yge.copy(o).negate();l.fromPointNormal(f,v),n+=2}return this}computeVisibility(e){let r=sa.INSIDE;for(let i of this.planes)switch(e.intersectPlane(i)){case sa.OUTSIDE:return sa.OUTSIDE;case sa.INTERSECTING:r=sa.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(Ja(Number.isFinite(r),"parentPlaneMask is required."),r===wa.MASK_OUTSIDE||r===wa.MASK_INSIDE)return r;let i=wa.MASK_INSIDE,n=this.planes;for(let o=0;o<this.planes.length;++o){let s=o<31?1<<o:0;if(o<31&&!(r&s))continue;let l=n[o],u=e.intersectPlane(l);if(u===sa.OUTSIDE)return wa.MASK_OUTSIDE;u===sa.INTERSECTING&&(i|=s)}return i}};wa.MASK_OUTSIDE=4294967295;wa.MASK_INSIDE=0;wa.MASK_INDETERMINATE=2147483647;var Rtt=new ot,Btt=new ot,Ott=new ot,Dtt=new ot,Ltt=new ot;var Vtt=new ot,jtt=new ot,Htt=new ot,Gtt=new ot,Wtt=new ot,qtt=new ot,Xtt=new ot,Ytt=new ot,Ktt=new ot,Ztt=new ot,Jtt=new ot,Qtt=new ot;var Lf=new mo,Zge=new mo,Jge=new mo,$S=new mo,JG=new mo;function DD(t,e={}){let r=Lu.EPSILON20,i=10,n=0,o=0,s=Zge,l=Jge;s.identity(),l.copy(t);let u=r*Qge(l);for(;o<i&&$ge(l)>u;)e0e(l,$S),JG.copy($S).transpose(),l.multiplyRight($S),l.multiplyLeft(JG),s.multiplyRight($S),++n>2&&(++o,n=0);return e.unitary=s.toTarget(e.unitary),e.diagonal=l.toTarget(e.diagonal),e}function Qge(t){let e=0;for(let r=0;r<9;++r){let i=t[r];e+=i*i}return Math.sqrt(e)}var BD=[1,0,0],OD=[2,2,1];function $ge(t){let e=0;for(let r=0;r<3;++r){let i=t[Lf.getElementIndex(OD[r],BD[r])];e+=2*i*i}return Math.sqrt(e)}function e0e(t,e){let r=Lu.EPSILON15,i=0,n=1;for(let f=0;f<3;++f){let v=Math.abs(t[Lf.getElementIndex(OD[f],BD[f])]);v>i&&(n=f,i=v)}let o=BD[n],s=OD[n],l=1,u=0;if(Math.abs(t[Lf.getElementIndex(s,o)])>r){let f=t[Lf.getElementIndex(s,s)],v=t[Lf.getElementIndex(o,o)],T=t[Lf.getElementIndex(s,o)],E=(f-v)/2/T,M;E<0?M=-1/(-E+Math.sqrt(1+E*E)):M=1/(E+Math.sqrt(1+E*E)),l=1/Math.sqrt(1+M*M),u=M*l}return mo.IDENTITY.to(e),e[Lf.getElementIndex(o,o)]=e[Lf.getElementIndex(s,s)]=l,e[Lf.getElementIndex(s,o)]=u,e[Lf.getElementIndex(o,s)]=-u,e}var iA=new ot,t0e=new ot,r0e=new ot,i0e=new ot,n0e=new ot,o0e=new mo,s0e={diagonal:new mo,unitary:new mo};function Sb(t,e=new Dh){if(!t||t.length===0)return e.halfAxes=new mo([0,0,0,0,0,0,0,0,0]),e.center=new ot,e;let r=t.length,i=new ot(0,0,0);for(let $ of t)i.add($);let n=1/r;i.multiplyByScalar(n);let o=0,s=0,l=0,u=0,f=0,v=0;for(let $ of t){let Z=iA.copy($).subtract(i);o+=Z.x*Z.x,s+=Z.x*Z.y,l+=Z.x*Z.z,u+=Z.y*Z.y,f+=Z.y*Z.z,v+=Z.z*Z.z}o*=n,s*=n,l*=n,u*=n,f*=n,v*=n;let T=o0e;T[0]=o,T[1]=s,T[2]=l,T[3]=s,T[4]=u,T[5]=f,T[6]=l,T[7]=f,T[8]=v;let{unitary:E}=DD(T,s0e),M=e.halfAxes.copy(E),O=M.getColumn(0,r0e),F=M.getColumn(1,i0e),z=M.getColumn(2,n0e),W=-Number.MAX_VALUE,J=-Number.MAX_VALUE,K=-Number.MAX_VALUE,ne=Number.MAX_VALUE,ge=Number.MAX_VALUE,H=Number.MAX_VALUE;for(let $ of t)iA.copy($),W=Math.max(iA.dot(O),W),J=Math.max(iA.dot(F),J),K=Math.max(iA.dot(z),K),ne=Math.min(iA.dot(O),ne),ge=Math.min(iA.dot(F),ge),H=Math.min(iA.dot(z),H);O=O.multiplyByScalar(.5*(ne+W)),F=F.multiplyByScalar(.5*(ge+J)),z=z.multiplyByScalar(.5*(H+K)),e.center.copy(O).add(F).add(z);let me=t0e.set(W-ne,J-ge,K-H).multiplyByScalar(.5),he=new mo([me[0],0,0,0,me[1],0,0,0,me[2]]);return e.halfAxes.multiplyRight(he),e}var G_=512,QG=3,$G=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],eW=$G.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),a0e=eW.concat([[.25,.5],[.75,.5]]),nA=class{constructor(e,r,i){this.x=e,this.y=r,this.z=i}get children(){if(!this._children){let e=this.x*2,r=this.y*2,i=this.z+1;this._children=[new nA(e,r,i),new nA(e,r+1,i),new nA(e+1,r,i),new nA(e+1,r+1,i)]}return this._children}update(e){let{viewport:r,cullingVolume:i,elevationBounds:n,minZ:o,maxZ:s,bounds:l,offset:u,project:f}=e,v=this.getBoundingVolume(n,u,f);if(l&&!this.insideBounds(l)||i.computeVisibility(v)<0)return!1;if(!this.childVisible){let{z:E}=this;if(E<s&&E>=o){let M=v.distanceTo(r.cameraPosition)*r.scale/r.height;E+=Math.floor(Math.log2(M))}if(E>=s)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let E of this.children)E.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,i,n]){let o=Math.pow(2,this.z),s=G_/o;return this.x*s<i&&this.y*s<n&&(this.x+1)*s>e&&(this.y+1)*s>r}getBoundingVolume(e,r,i){if(i){let u=this.z<1?a0e:this.z<2?eW:$G,f=[];for(let v of u){let T=eC(this.x+v[0],this.y+v[1],this.z);T[2]=e[0],f.push(i(T)),e[0]!==e[1]&&(T[2]=e[1],f.push(i(T)))}return Sb(f)}let n=Math.pow(2,this.z),o=G_/n,s=this.x*o+r*G_,l=G_-(this.y+1)*o;return new rA([s,l,e[0]],[s+o,l+o,e[1]])}};function tW(t,e,r,i){let n=t instanceof Bd&&t.resolution?t.projectPosition:null,o=Object.values(t.getFrustumPlanes()).map(({normal:M,distance:O})=>new $a(M.clone().negate(),O)),s=new wa(o),l=t.distanceScales.unitsPerMeter[2],u=r&&r[0]*l||0,f=r&&r[1]*l||0,v=t instanceof Tc&&t.pitch<=60?e:0;if(i){let[M,O,F,z]=i,W=La([M,z]),J=La([F,O]);i=[W[0],G_-W[1],J[0],G_-J[1]]}let T=new nA(0,0,0),E={viewport:t,project:n,cullingVolume:s,elevationBounds:[u,f],minZ:v,maxZ:e,bounds:i,offset:0};if(T.update(E),t instanceof Tc&&t.subViewports&&t.subViewports.length>1){for(E.offset=-1;T.update(E)&&!(--E.offset<-QG););for(E.offset=1;T.update(E)&&!(++E.offset>QG););}return T.getSelected()}var zd=512,l0e=[-1/0,-1/0,1/0,1/0],oA={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}};function iW(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(n=>n[0])),Math.min(...r.map(n=>n[1])),Math.max(...r.map(n=>n[0])),Math.max(...r.map(n=>n[1]))]}function c0e(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function Ff(t,e){if(!t||!t.length)return null;let{index:r,id:i}=e;if(Array.isArray(t)){let o=c0e(i)%t.length;t=t[o]}let n=t;for(let o of Object.keys(r)){let s=new RegExp(`{${o}}`,"g");n=n.replace(s,String(r[o]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(n=n.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),n}function u0e(t,e,r){let i;if(e&&e.length===2){let[n,o]=e,s=t.getBounds({z:n}),l=t.getBounds({z:o});i=[Math.min(s[0],l[0]),Math.min(s[1],l[1]),Math.max(s[2],l[2]),Math.max(s[3],l[3])]}else i=t.getBounds();return t.isGeospatial?[Math.max(i[0],r[0]),Math.max(i[1],r[1]),Math.min(i[2],r[2]),Math.min(i[3],r[3])]:[Math.max(Math.min(i[0],r[2]),r[0]),Math.max(Math.min(i[1],r[3]),r[1]),Math.min(Math.max(i[2],r[0]),r[2]),Math.min(Math.max(i[3],r[1]),r[3])]}function nW({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(n=>LD(n,e||0,r))}function LD(t,e,r){if(!Array.isArray(e)){let o=r.x-t.x,s=r.y-t.y,{width:l,height:u}=r,f={targetZ:e},v=t.unproject([o,s],f),T=t.unproject([o+l,s],f),E=t.unproject([o,s+u],f),M=t.unproject([o+l,s+u],f);return[Math.min(v[0],T[0],E[0],M[0]),Math.min(v[1],T[1],E[1],M[1]),Math.max(v[0],T[0],E[0],M[0]),Math.max(v[1],T[1],E[1],M[1])]}let i=LD(t,e[0],r),n=LD(t,e[1],r);return[Math.min(i[0],n[0]),Math.min(i[1],n[1]),Math.max(i[2],n[2]),Math.max(i[3],n[3])]}function h0e(t,e,r){return r?iW(t,r).map(n=>n*e/zd):t.map(i=>i*e/zd)}function FD(t,e){return Math.pow(2,t)*zd/e}function eC(t,e,r){let i=FD(r,zd),n=t/i*360-180,o=Math.PI-2*Math.PI*e/i,s=180/Math.PI*Math.atan(.5*(Math.exp(o)-Math.exp(-o)));return[n,s]}function rW(t,e,r,i){let n=FD(r,i);return[t/n*zd,e/n*zd]}function ND(t,e,r,i,n=zd){if(t.isGeospatial){let[f,v]=eC(e,r,i),[T,E]=eC(e+1,r+1,i);return{west:f,north:v,east:T,south:E}}let[o,s]=rW(e,r,i,n),[l,u]=rW(e+1,r+1,i,n);return{left:o,top:s,right:l,bottom:u}}function f0e(t,e,r,i,n){let o=u0e(t,null,i),s=FD(e,r),[l,u,f,v]=h0e(o,s,n),T=[];for(let E=Math.floor(l);E<f;E++)for(let M=Math.floor(u);M<v;M++)T.push({x:E,y:M,z:e});return T}function kD({viewport:t,maxZoom:e,minZoom:r,zRange:i,extent:n,tileSize:o=zd,modelMatrix:s,modelMatrixInverse:l,zoomOffset:u=0}){let f=t.isGeospatial?Math.round(t.zoom+Math.log2(zd/o))+u:Math.ceil(t.zoom)+u;if(typeof r=="number"&&Number.isFinite(r)&&f<r){if(!n)return[];f=r}typeof e=="number"&&Number.isFinite(e)&&f>e&&(f=e);let v=n;return s&&l&&n&&!t.isGeospatial&&(v=iW(n,s)),t.isGeospatial?tW(t,f,i,n):f0e(t,f,o,v||l0e,l)}function UD(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function zD(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function oW(t){let e={},r;return i=>{for(let n in i)if(!d0e(i[n],e[n])){r=t(i),e=i;break}return r}}function d0e(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let i=0;i<r;i++)if(t[i]!==e[i])return!1;return!0}return!1}var sW=1,tC=2,p0e="never",A0e="no-overlap",Cb="best-available",m0e=5,g0e={[Cb]:y0e,[A0e]:v0e,[p0e]:()=>{}},_0e={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},ng=class{constructor(e){this._getCullBounds=oW(nW),this.opts={..._0e,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!=null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new xp({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new Kr,this._modelMatrixInverse=new Kr}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom))}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:i}={zRange:null,modelMatrix:null}){let n=i?new Kr(i):new Kr,o=!n.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!Cs(this._zRange,r)||o){o&&(this._modelMatrixInverse=n.clone().invert(),this._modelMatrix=n),this._viewport=e,this._zRange=r;let l=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=l.map(u=>this._getTile(u,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(l=>this._getTile(l.index,!0)));let s=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),s&&this._frameNumber++,this._frameNumber}isTileVisible(e,r){if(!e.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:n}=e;for(let[o,s,l,u]of i){let f;if("west"in n)f=n.west<l&&n.east>o&&n.south<u&&n.north>s;else{let v=Math.min(n.top,n.bottom),T=Math.max(n.top,n.bottom);f=n.left<l&&n.right>o&&v<u&&T>s}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:i,zRange:n,modelMatrix:o,modelMatrixInverse:s}){let{tileSize:l,extent:u,zoomOffset:f}=this.opts;return kD({viewport:e,maxZoom:r,minZoom:i,zRange:n,tileSize:l,extent:u,modelMatrix:o,modelMatrixInverse:s,zoomOffset:f})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:ND(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),i=Math.floor(e.y/2),n=e.z-1;return{x:r,y:i,z:n}}updateTileStates(){let e=this.opts.refinementStrategy||Cb,r=new Array(this._cache.size),i=0;for(let n of this._cache.values())r[i++]=n.isVisible,n.isSelected=!1,n.isVisible=!1;for(let n of this._selectedTiles)n.isSelected=!0,n.isVisible=!0;(typeof e=="function"?e:g0e[e])(Array.from(this._cache.values())),i=0;for(let n of this._cache.values())if(r[i++]!==n.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],i=0;for(let n of this._cache.values())n.isLoading&&(i++,!n.isSelected&&!n.isVisible&&r.push(n));for(;e>0&&i>e&&r.length>0;)r.shift().abort(),i--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let i=this._getNearestAncestor(r);r.parent=i,i?.children&&i.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,i=r.maxCacheSize??(r.maxCacheByteSize!=null?1/0:m0e*this.selectedTiles.length),n=r.maxCacheByteSize??1/0;if(e.size>i||this._cacheByteSize>n){for(let[s,l]of e)if(!l.isVisible&&!l.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!=null?l.byteLength:0,e.delete(s),this.opts.onTileUnload?.(l)),e.size<=i&&this._cacheByteSize<=n)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((s,l)=>s.zoom-l.zoom),this._dirty=!1)}_getTile(e,r){let i=this.getTileId(e),n=this._cache.get(i),o=!1;return!n&&r?(n=new ig(e),Object.assign(n,this.getTileMetadata(n.index)),Object.assign(n,{id:i,zoom:this.getTileZoom(n.index)}),o=!0,this._cache.set(i,n),this._dirty=!0):n&&n.needsReload&&(o=!0),n&&o&&n.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),n}_getNearestAncestor(e){let{_minZoom:r=0}=this,i=e.index;for(;this.getTileZoom(i)>r;){i=this.getParentIndex(i);let n=this._getTile(i);if(n)return n}return null}};function y0e(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!aW(e)&&VD(e);for(let e of t)e.isVisible=Boolean(e.state&tC)}function v0e(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&aW(r);let e=Array.from(t).sort((r,i)=>r.zoom-i.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&tC),r.children&&(r.isVisible||r.state&sW))for(let i of r.children)i.state=sW;else r.isSelected&&VD(r)}function aW(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=tC,!0;e=e.parent}return!1}function VD(t){for(let e of t.children)e.isLoaded||e.content?e.state|=tC:VD(e)}var x0e={TilesetClass:ng,data:{type:"data",value:[]},dataComparator:oA.equal,renderSubLayers:{type:"function",value:t=>new Df(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:Cb,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0},rC=class extends es{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&e.layers&&e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,i=e.propsOrDataChanged||e.updateTriggersChanged,n=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?i&&(r.setOptions(this._getTilesetOptions()),n?r.reloadAll():r.tiles.forEach(o=>{o.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:i,refinementStrategy:n,extent:o,maxZoom:s,minZoom:l,maxRequests:u,debounceTime:f,zoomOffset:v}=this.props;return{maxCacheSize:r,maxCacheByteSize:i,maxZoom:s,minZoom:l,tileSize:e,refinementStrategy:n,extent:o,maxRequests:u,debounceTime:f,zoomOffset:v,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:i}=this.props,n=e.update(this.context.viewport,{zRange:r,modelMatrix:i}),{isLoaded:o}=e,s=this.state.isLoaded!==o,l=this.state.frameNumber!==n;o&&(s||l)&&this._onViewportLoad(),l&&this.setState({frameNumber:n}),this.state.isLoaded=o}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:i,fetch:n}=this.props,{signal:o}=e;return e.url=typeof r=="string"||Array.isArray(r)?Ff(r,e):null,i?i(e):n&&e.url?n(e.url,{propName:"data",layer:this,signal:o}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,i=r.props.tile,n=e.info;return n.picked&&(n.tile=i),n.sourceTile=i,n.sourceTileSubLayer=r,n}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){return this.state.tileset.tiles.map(e=>{let r=this.getSubLayerPropsByTile(e);if(!(!e.isLoaded&&!e.content))if(e.layers)r&&e.layers[0]&&Object.keys(r).some(i=>e.layers[0].props[i]!==r[i])&&(e.layers=e.layers.map(i=>i.clone(r)));else{let i=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=Bf(i,Boolean).map(n=>n.clone({tile:e,...r}))}return e.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:i}=e.props;return this.state.tileset.isTileVisible(i,r)}},Nf=rC;(()=>{rC.defaultProps=x0e})(),(()=>{rC.layerName="TileLayer"})();var b0e={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},iC=class extends Ph{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`uniform float trailLength;
3330
3330
  in float instanceTimestamps;
3331
3331
  in float instanceNextTimestamps;
3332
3332
  out float vTime;