@deck.gl/arcgis 9.4.0-alpha.1 → 9.4.0-beta.1
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/dist.dev.js +1043 -1991
- package/dist/index.cjs +9347 -2280
- package/dist/index.cjs.map +3 -4
- package/dist.min.js +4 -3
- package/package.json +9 -5
package/dist.min.js
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['deck'] = factory();
|
|
6
6
|
else root['deck'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var Xa=Object.create;var tr=Object.defineProperty;var Wa=Object.getOwnPropertyDescriptor;var Ha=Object.getOwnPropertyNames;var La=Object.getPrototypeOf,za=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(t&&(e=t(t=0)),e);var er=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Me=(t,e)=>{for(var r in e)tr(t,r,{get:e[r],enumerable:!0})},Ge=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ha(e))!za.call(t,i)&&i!==r&&tr(t,i,{get:()=>e[i],enumerable:!(n=Wa(e,i))||n.enumerable});return t},wt=(t,e,r)=>(Ge(t,e,"default"),r&&Ge(r,e,"default")),F=(t,e,r)=>(r=t!=null?Xa(La(t)):{},Ge(e||!t||!t.__esModule?tr(r,"default",{value:t,enumerable:!0}):r,t)),Ya=t=>Ge(tr({},"__esModule",{value:!0}),t);var rr=er((Fd,zi)=>{zi.exports=globalThis.deck});var ji=er((Vd,Zi)=>{Zi.exports=globalThis.luma});var Dt,$i=I(()=>{(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"})(Dt||(Dt={}))});var qi=I(()=>{$i()});var B=er((Hd,Qi)=>{Qi.exports=globalThis.luma});function Xt(t){let e=t.luma||{_polyfilled:!1,extensions:{},softwareRenderer:!1};return e._polyfilled??=!1,e.extensions||={},t.luma=e,e}var nr=I(()=>{});function Gi(t){if(t={...Za,...t},!t.debugSpectorJS)return null;if(!$&&globalThis.SPECTOR&&!globalThis.luma?.spector){qt.log.probe(Ka,"SPECTOR found and initialized. Start with `luma.spector.displayUI()`")();let{Spector:e}=globalThis.SPECTOR;$=new e,globalThis.luma&&(globalThis.luma.spector=$)}if(!$)return null;if(Ji||(Ji=!0,$.spyCanvases(),$?.onCaptureStarted.add(e=>qt.log.info("Spector capture started:",e)()),$?.onCapture.add(e=>{qt.log.info("Spector capture complete:",e)(),$?.getResultUI(),$?.resultView.display(),$?.resultView.addCapture(e)})),t.gl){let e=t.gl,r=Xt(e),n=r.device;$?.startCapture(t.gl,500),r.device=n,new Promise(i=>setTimeout(i,2e3)).then(i=>{qt.log.info("Spector capture stopped after 2 seconds")(),$?.stopCapture()})}return $}var qt,Ka,$,Ji,Za,ts=I(()=>{qt=F(B(),1);nr();Ka=1,$=null,Ji=!1,Za={debugSpectorJS:qt.log.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",gl:void 0}});var ir,ja,sr,$a,es,Tn=I(()=>{ir=globalThis,ja=globalThis.document||{},sr=globalThis.process||{},$a=globalThis.console,es=globalThis.navigator||{}});function or(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return Boolean(r&&r.indexOf("Electron")>=0)}var mn=I(()=>{});function bt(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||or()}var Rn=I(()=>{mn()});function En(t){return!t&&!bt()?"Node":or(t)?"Electron":(t||es.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var rs=I(()=>{Rn();mn();Tn()});var An,xe=I(()=>{Tn();Rn();rs();An="4.1.1"});function is(t){return t.luma=t.luma||{},t.luma}function ss(t,e={}){return e.debugWebGL||e.traceWebGL?Ja(t,e):Qa(t)}function Qa(t){let e=is(t);return e.realContext?e.realContext:t}function Ja(t,e){if(!globalThis.WebGLDebugUtils)return Pe.log.warn("webgl-debug not loaded")(),t;let r=is(t);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...Dt,...t});let n=globalThis.WebGLDebugUtils.makeDebugContext(t,Ga.bind(null,e),tc.bind(null,e));for(let o in Dt)!(o in n)&&typeof Dt[o]=="number"&&(n[o]=Dt[o]);class i{}Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.setPrototypeOf(i,n);let s=Object.create(i);return r.realContext=t,r.debugContext=s,s.luma=r,s.debug=!0,s}function ns(t,e){e=Array.from(e).map(n=>n===void 0?"undefined":n);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(t,e);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${t}(${r})`}function Ga(t,e,r,n){n=Array.from(n).map(a=>a===void 0?"undefined":a);let i=globalThis.WebGLDebugUtils.glEnumToString(e),s=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,n),o=`${i} in gl.${r}(${s})`;Pe.log.error("%cWebGL","color: white; background: red; padding: 2px 6px; border-radius: 3px;",o)();debugger;throw new Error(o)}function tc(t,e,r){let n="";t.traceWebGL&&Pe.log.level>=1&&(n=ns(e,r),Pe.log.info(1,"%cWebGL","color: white; background: blue; padding: 2px 6px; border-radius: 3px;",n)());for(let i of r)if(i===void 0){n=n||ns(e,r);debugger}}var Pe,os=I(()=>{Pe=F(B(),1);qi()});function bn(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function V(t,e,r){return e[t]!==void 0?e[t]:r[t]}var Ie,X,as,q,cs,Ce,ls,hs,Sn,gt,Mn,fs,xn=I(()=>{Ie={[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},X=(t,e,r)=>e?t.enable(r):t.disable(r),as=(t,e,r)=>t.hint(r,e),q=(t,e,r)=>t.pixelStorei(r,e),cs=(t,e,r)=>{let n=r===36006?36009:36008;return t.bindFramebuffer(n,e)},Ce=(t,e,r)=>{let i={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];t.bindBuffer(i,e)};ls={[3042]:X,[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]:X,[2885]:(t,e)=>t.cullFace(e),[2929]:X,[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]:X,[35723]:as,[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]:cs,[36010]:cs,[34964]:Ce,[36662]:Ce,[36663]:Ce,[35053]:Ce,[35055]:Ce,[2886]:(t,e)=>t.frontFace(e),[33170]:as,[2849]:(t,e)=>t.lineWidth(e),[32823]:X,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:X,[32926]:X,[32928]:X,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:X,[3088]:(t,e)=>t.scissor(...e),[2960]:X,[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]:X,[10754]:X,[12288]:X,[12289]:X,[12290]:X,[12291]:X,[12292]:X,[12293]:X,[12294]:X,[12295]:X,[3333]:q,[3317]:q,[37440]:q,[37441]:q,[37443]:q,[3330]:q,[3332]:q,[3331]:q,[3314]:q,[32878]:q,[3316]:q,[3315]:q,[32877]:q,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[0],e[1]||!1),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=bn(e)?e:[e,e];let[r,n]=e;t.stencilMaskSeparate(1028,r),t.stencilMaskSeparate(1029,n)},stencilFunc:(t,e)=>{e=bn(e)&&e.length===3?[...e,...e]:e;let[r,n,i,s,o,a]=e;t.stencilFuncSeparate(1028,r,n,i),t.stencilFuncSeparate(1029,s,o,a)},stencilOp:(t,e)=>{e=bn(e)&&e.length===3?[...e,...e]:e;let[r,n,i,s,o,a]=e;t.stencilOpSeparate(1028,r,n,i),t.stencilOpSeparate(1029,s,o,a)},viewport:(t,e)=>t.viewport(...e)};hs={blendEquation:(t,e,r)=>t.blendEquationSeparate(V(32777,e,r),V(34877,e,r)),blendFunc:(t,e,r)=>t.blendFuncSeparate(V(32969,e,r),V(32968,e,r),V(32971,e,r),V(32970,e,r)),polygonOffset:(t,e,r)=>t.polygonOffset(V(32824,e,r),V(10752,e,r)),sampleCoverage:(t,e,r)=>t.sampleCoverage(V(32938,e,r),V(32939,e,r)),stencilFuncFront:(t,e,r)=>t.stencilFuncSeparate(1028,V(2962,e,r),V(2967,e,r),V(2963,e,r)),stencilFuncBack:(t,e,r)=>t.stencilFuncSeparate(1029,V(34816,e,r),V(36003,e,r),V(36004,e,r)),stencilOpFront:(t,e,r)=>t.stencilOpSeparate(1028,V(2964,e,r),V(2965,e,r),V(2966,e,r)),stencilOpBack:(t,e,r)=>t.stencilOpSeparate(1029,V(34817,e,r),V(34818,e,r),V(34819,e,r))},Sn={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 n={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[e];return n?t({[n]:r}):{valueChanged:!0}},blendColor:(t,e,r,n,i)=>t({[32773]:new Float32Array([e,r,n,i])}),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,n,i)=>t({[32969]:e,[32968]:r,[32971]:n,[32970]:i}),clearColor:(t,e,r,n,i)=>t({[3106]:new Float32Array([e,r,n,i])}),clearDepth:(t,e)=>t({[2931]:e}),clearStencil:(t,e)=>t({[2961]:e}),colorMask:(t,e,r,n,i)=>t({[3107]:[e,r,n,i]}),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,n,i)=>t({[3088]:new Int32Array([e,r,n,i])}),stencilMask:(t,e)=>t({[2968]:e,[36005]:e}),stencilMaskSeparate:(t,e,r)=>t({[e===1028?2968:36005]:r}),stencilFunc:(t,e,r,n)=>t({[2962]:e,[2967]:r,[2963]:n,[34816]:e,[36003]:r,[36004]:n}),stencilFuncSeparate:(t,e,r,n,i)=>t({[e===1028?2962:34816]:r,[e===1028?2967:36003]:n,[e===1028?2963:36004]:i}),stencilOp:(t,e,r,n)=>t({[2964]:e,[2965]:r,[2966]:n,[34817]:e,[34818]:r,[34819]:n}),stencilOpSeparate:(t,e,r,n,i)=>t({[e===1028?2964:34817]:r,[e===1028?2965:34818]:n,[e===1028?2966:34819]:i}),viewport:(t,e,r,n,i)=>t({[2978]:[e,r,n,i]})},gt=(t,e)=>t.isEnabled(e),Mn={[3042]:gt,[2884]:gt,[2929]:gt,[3024]:gt,[32823]:gt,[32926]:gt,[32928]:gt,[3089]:gt,[2960]:gt,[35977]:gt},fs=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 nt(t,e){if(ec(e))return;let r={};for(let i in e){let s=Number(i),o=ls[i];o&&(typeof o=="string"?r[o]=!0:o(t,e[i],s))}let n=t.lumaState?.cache;if(n)for(let i in r){let s=hs[i];s(t,e,n)}}function ar(t,e=Ie){if(typeof e=="number"){let i=e,s=Mn[i];return s?s(t,i):t.getParameter(i)}let r=Array.isArray(e)?e:Object.keys(e),n={};for(let i of r){let s=Mn[i];n[i]=s?s(t,Number(i)):t.getParameter(Number(i))}return n}function ds(t){nt(t,Ie)}function ec(t){for(let e in t)return!1;return!0}var Qt=I(()=>{xn()});function us(t,e){if(t===e)return!0;if(ps(t)&&ps(e)&&t.length===e.length){for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}return!1}function ps(t){return Array.isArray(t)||ArrayBuffer.isView(t)}var _s=I(()=>{});function gs(t,e){let r=t[e].bind(t);t[e]=function(i){if(i===void 0||fs.has(i))return r(i);let s=it.get(t);return i in s.cache||(s.cache[i]=r(i)),s.enable?s.cache[i]:r(i)},Object.defineProperty(t[e],"name",{value:`${e}-from-cache`,configurable:!1})}function rc(t,e,r){if(!t[e])return;let n=t[e].bind(t);t[e]=function(...s){let o=it.get(t),{valueChanged:a,oldValue:c}=r(o._updateCache,...s);return a&&n(...s),c},Object.defineProperty(t[e],"name",{value:`${e}-to-cache`,configurable:!1})}function nc(t){let e=t.useProgram.bind(t);t.useProgram=function(n){let i=it.get(t);i.program!==n&&(e(n),i.program=n)}}var it,Pn=I(()=>{Qt();_s();xn();it=class{static get(e){return e.lumaState}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(e,r){this.gl=e,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(e={}){this.stateStack.push({})}pop(){let e=this.stateStack[this.stateStack.length-1];nt(this.gl,e),this.stateStack.pop()}trackState(e,r){if(this.cache=r?.copyState?ar(e):Object.assign({},Ie),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.lumaState=this,nc(e);for(let n in Sn){let i=Sn[n];rc(e,n,i)}gs(e,"getParameter"),gs(e,"isEnabled")}_updateCache(e){let r=!1,n,i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let s in e){let o=e[s],a=this.cache[s];us(o,a)||(r=!0,n=a,i&&!(s in i)&&(i[s]=a),this.cache[s]=o)}return{valueChanged:r,oldValue:n}}}});function Ts(t,e,r){let n="",i=c=>{let l=c.statusMessage;l&&(n||=l)};t.addEventListener("webglcontextcreationerror",i,!1);let s=r.failIfMajorPerformanceCaveat!==!0,o={preserveDrawingBuffer:!0,...r,failIfMajorPerformanceCaveat:!0},a=null;try{a||=t.getContext("webgl2",o),!a&&o.failIfMajorPerformanceCaveat&&(n||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow.");let c=!1;if(!a&&s&&(o.failIfMajorPerformanceCaveat=!1,a=t.getContext("webgl2",o),c=!0),a||(a=t.getContext("webgl",{}),a&&(a=null,n||="Your browser only supports WebGL1")),!a)throw n||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${n}`);let l=Xt(a);l.softwareRenderer=c;let{onContextLost:h,onContextRestored:f}=e;return t.addEventListener("webglcontextlost",d=>h(d),!1),t.addEventListener("webglcontextrestored",d=>f(d),!1),a}finally{t.removeEventListener("webglcontextcreationerror",i,!1)}}var ms=I(()=>{nr()});function st(t,e,r){return r[e]===void 0&&(r[e]=t.getExtension(e)||null),r[e]}var ye=I(()=>{});function Rs(t,e){let r=t.getParameter(7936),n=t.getParameter(7937);st(t,"WEBGL_debug_renderer_info",e);let i=e.WEBGL_debug_renderer_info,s=t.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=t.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),a=s||r,c=o||n,l=t.getParameter(7938),h=Es(a,c),f=ic(a,c),d=sc(a,c);return{type:"webgl",gpu:h,gpuType:d,gpuBackend:f,vendor:a,renderer:c,version:l,shadingLanguage:"glsl",shadingLanguageVersion:300}}function Es(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 ic(t,e){return/Metal/i.exec(t)||/Metal/i.exec(e)?"metal":/ANGLE/i.exec(t)||/ANGLE/i.exec(e)?"opengl":"unknown"}function sc(t,e){if(/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e))return"cpu";switch(Es(t,e)){case"apple":return oc(t,e)?"integrated":"unknown";case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function oc(t,e){return/Apple (M\d|A\d|GPU)/i.test(`${t} ${e}`)}var As=I(()=>{ye()});function cr(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 Cn=I(()=>{});function Ms(t){return t in hr}function Dn(t,e,r){return xs(t,e,r,new Set)}function xs(t,e,r,n){let i=hr[e];if(!i||n.has(e))return!1;n.add(e);let s=(i.features||[]).every(o=>xs(t,o,r,n));return n.delete(e),s?(i.extensions||[]).every(o=>Boolean(st(t,o,r))):!1}function Ps(t,e,r){let n=e.create,i=fr[e.format];i?.gl===void 0&&(n=!1),i?.x&&(n=n&&Boolean(st(t,i.x,r))),e.format==="stencil8"&&(n=!1);let s=i?.r===!1?!1:i?.r===void 0||Dn(t,i.r,r),o=n&&e.render&&s&&uc(t,e.format,r);return{format:e.format,create:n&&e.create,render:o,filter:n&&e.filter,blend:n&&e.blend,store:n&&e.store}}function uc(t,e,r){let n=fr[e],i=n?.gl;if(i===void 0||n?.x&&!st(t,n.x,r))return!1;let s=t.getParameter(32873),o=t.getParameter(36006),a=t.createTexture(),c=t.createFramebuffer();if(!a||!c)return!1;let l=Number(0),h=Number(t.getError());for(;h!==l;)h=t.getError();let f=!1;try{if(t.bindTexture(3553,a),t.texStorage2D(3553,1,i,1,1),Number(t.getError())!==l)return!1;t.bindFramebuffer(36160,c),t.framebufferTexture2D(36160,36064,3553,a,0),f=Number(t.checkFramebufferStatus(36160))===Number(36053)&&Number(t.getError())===l}finally{t.bindFramebuffer(36160,o),t.deleteFramebuffer(c),t.bindTexture(3553,s),t.deleteTexture(a)}return f}function dr(t){let e=fr[t],r=gc(t),n=wn.textureFormatDecoder.getInfo(t);return n.compressed&&(e.dataFormat=r),{internalFormat:r,format:e?.dataFormat||_c(n.channels,n.integer,n.normalized,r),type:n.dataType?cr(n.dataType):e?.types?.[0]||5121,compressed:n.compressed||!1}}function Cs(t){switch(wn.textureFormatDecoder.getInfo(t).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${t}`)}}function _c(t,e,r,n){if(n===6408||n===6407)return n;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;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function gc(t){let r=fr[t]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${t}`);return r}var wn,Ne,Oe,Jt,Gt,ac,cc,lc,hc,fc,dc,bs,Ss,In,yn,Nn,On,lr,pc,hr,fr,te=I(()=>{wn=F(B(),1);ye();Cn();Ne="WEBGL_compressed_texture_s3tc",Oe="WEBGL_compressed_texture_s3tc_srgb",Jt="EXT_texture_compression_rgtc",Gt="EXT_texture_compression_bptc",ac="WEBGL_compressed_texture_etc",cc="WEBGL_compressed_texture_astc",lc="WEBGL_compressed_texture_etc1",hc="WEBGL_compressed_texture_pvrtc",fc="WEBGL_compressed_texture_atc",dc="EXT_texture_norm16",bs="EXT_render_snorm",Ss="EXT_color_buffer_float",In="snorm8-renderable-webgl",yn="norm16-renderable-webgl",Nn="snorm16-renderable-webgl",On="float16-renderable-webgl",lr="float32-renderable-webgl",pc="rgb9e5ufloat-renderable-webgl",hr={"float32-renderable-webgl":{extensions:[Ss]},"float16-renderable-webgl":{extensions:["EXT_color_buffer_half_float"]},"rgb9e5ufloat-renderable-webgl":{extensions:["WEBGL_render_shared_exponent"]},"snorm8-renderable-webgl":{extensions:[bs]},"norm16-webgl":{extensions:[dc]},"norm16-renderable-webgl":{features:["norm16-webgl"]},"snorm16-renderable-webgl":{features:["norm16-webgl"],extensions:[bs]},"float32-filterable":{extensions:["OES_texture_float_linear"]},"float16-filterable-webgl":{extensions:["OES_texture_half_float_linear"]},"texture-filterable-anisotropic-webgl":{extensions:["EXT_texture_filter_anisotropic"]},"texture-blend-float-webgl":{extensions:["EXT_float_blend"]},"texture-compression-bc":{extensions:[Ne,Oe,Jt,Gt]},"texture-compression-bc5-webgl":{extensions:[Jt]},"texture-compression-bc7-webgl":{extensions:[Gt]},"texture-compression-etc2":{extensions:[ac]},"texture-compression-astc":{extensions:[cc]},"texture-compression-etc1-webgl":{extensions:[lc]},"texture-compression-pvrtc-webgl":{extensions:[hc]},"texture-compression-atc-webgl":{extensions:[fc]}};fr={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756,r:In},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757,r:In},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0,r:On},r16unorm:{gl:33322,rb:!0,r:yn},r16snorm:{gl:36760,r:Nn},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759,r:In},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0,r:On},rg16unorm:{gl:33324,r:yn},rg16snorm:{gl:36761,r:Nn},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326,r:lr},rgb9e5ufloat:{gl:35901,r:pc},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852,r:!1},"rgb16snorm-webgl":{gl:36762,r:!1},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0,r:lr},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842,r:On},rgba16unorm:{gl:32859,rb:!0,r:yn},rgba16snorm:{gl:36763,r:Nn},"rgb32float-webgl":{gl:34837,x:Ss,r:lr,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0,r:lr},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:Ne},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:Oe},"bc1-rgba-unorm":{gl:33777,x:Ne},"bc1-rgba-unorm-srgb":{gl:35916,x:Oe},"bc2-rgba-unorm":{gl:33778,x:Ne},"bc2-rgba-unorm-srgb":{gl:35918,x:Oe},"bc3-rgba-unorm":{gl:33779,x:Ne},"bc3-rgba-unorm-srgb":{gl:35919,x:Oe},"bc4-r-unorm":{gl:36283,x:Jt},"bc4-r-snorm":{gl:36284,x:Jt},"bc5-rg-unorm":{gl:36285,x:Jt},"bc5-rg-snorm":{gl:36286,x:Jt},"bc6h-rgb-ufloat":{gl:36495,x:Gt},"bc6h-rgb-float":{gl:36494,x:Gt},"bc7-rgba-unorm":{gl:36492,x:Gt},"bc7-rgba-unorm-srgb":{gl:36493,x:Gt},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37816},"astc-10x5-unorm-srgb":{gl:37848},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rgb2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}}});var ys,Is,pr,Ns=I(()=>{ys=F(B(),1);ye();te();Is={"depth-clip-control":"EXT_depth_clamp","timestamp-query":"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"},pr=class extends ys.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(e,r,n){super([],n),this.gl=e,this.extensions=r,st(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),Ms(e)&&Dn(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(Is),...Object.keys(hr)]}getWebGLFeature(e){let r=Is[e];return Boolean(typeof r=="string"?st(this.gl,r,this.extensions):r)}}});var Os,ur,ws=I(()=>{Os=F(B(),1),ur=class extends Os.DeviceLimits{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 maxInterStageShaderVariables(){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]||0}}});function Tc(t){return t<34069?t+34069:t}function mc(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 Ds,Tt,_r=I(()=>{Ds=F(B(),1);te();Tt=class extends Ds.Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(e,r){super(e,r);let n=r.handle===null;this.device=e,this.gl=e.gl,this.handle=this.props.handle||n?this.props.handle:this.gl.createFramebuffer(),n||(e._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),r.handle||(this.autoCreateAttachmentTextures(),this.updateAttachments()))}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&!this.props.handle&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let e=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let n=this.colorAttachments[r];if(n){let i=36064+r;this._attachTextureView(i,n)}}if(this.depthStencilAttachment){let r=Cs(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${mc(r)}`)}this.gl.bindFramebuffer(36160,e)}_attachTextureView(e,r){let{gl:n}=this.device,{texture:i}=r,s=r.props.baseMipLevel,o=r.props.baseArrayLayer;switch(n.bindTexture(i.glTarget,i.handle),i.glTarget){case 35866:case 32879:n.framebufferTextureLayer(36160,e,i.handle,s,o);break;case 34067:let a=Tc(o);n.framebufferTexture2D(36160,e,a,i.handle,s);break;case 3553:n.framebufferTexture2D(36160,e,3553,i.handle,s);break;default:throw new Error("Illegal texture type")}n.bindTexture(i.glTarget,null)}resizeAttachments(e,r){if(this.handle===null){this.width=e,this.height=r;return}super.resizeAttachments(e,r)}}});var Fs,gr,Bs=I(()=>{Fs=F(B(),1);_r();gr=class extends Fs.CanvasContext{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(e,r){super(r),this.device=e,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._configureDevice()}_configureDevice(){(this.drawingBufferWidth!==this._framebuffer?.width||this.drawingBufferHeight!==this._framebuffer?.height)&&this._framebuffer?.resize([this.drawingBufferWidth,this.drawingBufferHeight])}_getCurrentFramebuffer(){return this._framebuffer||=new Tt(this.device,{id:"canvas-context-framebuffer",handle:null,width:this.drawingBufferWidth,height:this.drawingBufferHeight}),this._framebuffer}}});var vs,Tr,Us=I(()=>{vs=F(B(),1),Tr=class extends vs.PresentationContext{device;handle=null;context2d;get[Symbol.toStringTag](){return"WebGLPresentationContext"}constructor(e,r={}){super(r),this.device=e;let n=`${this[Symbol.toStringTag]}(${this.id})`;if(!this.device.getDefaultCanvasContext().offscreenCanvas)throw new Error(`${n}: WebGL PresentationContext requires the default CanvasContext canvas to be an OffscreenCanvas`);let s=this.canvas.getContext("2d");if(!s)throw new Error(`${n}: Failed to create 2d presentation context`);this.context2d=s,this._setAutoCreatedCanvasId(`${this.device.id}-presentation-canvas`),this._configureDevice(),this._startObservers()}present(){this._resizeDrawingBufferIfNeeded(),this.device.submit();let e=this.device.getDefaultCanvasContext(),[r,n]=e.getDrawingBufferSize();if(!(this.drawingBufferWidth===0||this.drawingBufferHeight===0||r===0||n===0||e.canvas.width===0||e.canvas.height===0)){if(r!==this.drawingBufferWidth||n!==this.drawingBufferHeight||e.canvas.width!==this.drawingBufferWidth||e.canvas.height!==this.drawingBufferHeight)throw new Error(`${this[Symbol.toStringTag]}(${this.id}): Default canvas context size ${r}x${n} does not match presentation size ${this.drawingBufferWidth}x${this.drawingBufferHeight}`);this.context2d.clearRect(0,0,this.drawingBufferWidth,this.drawingBufferHeight),this.context2d.drawImage(e.canvas,0,0)}}_configureDevice(){}_getCurrentFramebuffer(e){let r=this.device.getDefaultCanvasContext();return r.setDrawingBufferSize(this.drawingBufferWidth,this.drawingBufferHeight),r.getCurrentFramebuffer(e)}}});function Vs(t="id"){Fn[t]=Fn[t]||1;let e=Fn[t]++;return`${t}-${e}`}var Fn,ks=I(()=>{Fn={}});function Rc(t){return t&Ft.Buffer.INDEX?34963:t&Ft.Buffer.VERTEX?34962:t&Ft.Buffer.UNIFORM?35345:34962}function Ec(t){return t&Ft.Buffer.INDEX||t&Ft.Buffer.VERTEX?35044:t&Ft.Buffer.UNIFORM?35048:35044}var Ft,ot,mr=I(()=>{Ft=F(B(),1),ot=class extends Ft.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(e,r={}){super(e,r),this.device=e,this.gl=this.device.gl;let n=typeof r=="object"?r.handle:void 0;this.handle=n||this.gl.createBuffer(),e._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=Rc(this.props.usage),this.glUsage=Ec(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)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Buffer"):(this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle)),this.destroyed=!0,this.handle=null)}_initWithData(e,r=0,n=e.byteLength+r){let i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bufferSubData(i,r,e),this.gl.bindBuffer(i,null),this.bytesUsed=n,this.byteLength=n,this._setDebugData(e,r,n),this.props.handle?this.trackReferencedMemory(n,"Buffer"):this.trackAllocatedMemory(n)}_initWithByteLength(e){let r=e;e===0&&(r=new Float32Array(0));let n=this.glTarget;return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.bytesUsed=e,this.byteLength=e,this._setDebugData(null,0,e),this.props.handle?this.trackReferencedMemory(e,"Buffer"):this.trackAllocatedMemory(e),this}write(e,r=0){let n=ArrayBuffer.isView(e)?e:new Uint8Array(e),i=0,s=void 0,o=36663;this.gl.bindBuffer(o,this.handle),i!==0||s!==void 0?this.gl.bufferSubData(o,r,n,i,s):this.gl.bufferSubData(o,r,n),this.gl.bindBuffer(o,null),this._setDebugData(e,r,e.byteLength)}async mapAndWriteAsync(e,r=0,n=this.byteLength-r){let i=new ArrayBuffer(n);await e(i,"copied"),this.write(i,r)}async readAsync(e=0,r){return this.readSyncWebGL(e,r)}async mapAndReadAsync(e,r=0,n){let i=await this.readAsync(r,n);return await e(i.buffer,"copied")}readSyncWebGL(e=0,r){r=r??this.byteLength-e;let n=new Uint8Array(r),i=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,e,n,i,r),this.gl.bindBuffer(36662,null),this._setDebugData(n,e,r),n}}});function Xs(t){let e=t.split(/\r?\n/),r=[];for(let n of e){if(n.length<=1)continue;let i=n.trim(),s=n.split(":"),o=s[0]?.trim();if(s.length===2){let[p,_]=s;if(!p||!_){r.push({message:i,type:Rr(o||"info"),lineNum:0,linePos:0});continue}r.push({message:_.trim(),type:Rr(p),lineNum:0,linePos:0});continue}let[a,c,l,...h]=s;if(!a||!c||!l){r.push({message:s.slice(1).join(":").trim()||i,type:Rr(o||"info"),lineNum:0,linePos:0});continue}let f=parseInt(l,10);Number.isNaN(f)&&(f=0);let d=parseInt(c,10);Number.isNaN(d)&&(d=0),r.push({message:h.join(":").trim(),type:Rr(a),lineNum:f,linePos:d})}return r}function Rr(t){let e=["warning","error","info"],r=t.toLowerCase();return e.includes(r)?r:"info"}var Ws=I(()=>{});var we,Er,Hs=I(()=>{we=F(B(),1);Ws();Er=class extends we.Shader{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)}e._setWebGLDebugMetadata(this.handle,this,{spector:this.props});let n=this._compile(this.source);n&&typeof n.catch=="function"&&n.catch(()=>{this.compilationStatus="error"})}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let e=this.device.gl.getShaderInfoLog(this.handle);return e?Xs(e):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}_compile(e){e=e.startsWith("#version ")?e:`#version 300 es
|
|
8
|
-
${e}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,e),r.compileShader(this.handle),!this.device.props.debug){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}return we.log.once(1,"Shader compilation is asynchronous")(),this._waitForCompilationComplete().then(()=>{we.log.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()})}async _waitForCompilationComplete(){let e=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:n}=this.device;for(;;){if(n.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}}});function Ys(t,e,r,n){if(Mc(e))return n(t);let i=t;i.pushState();try{return Ac(t,e),nt(i.gl,r),n(t)}finally{i.popState()}}function Ac(t,e){let r=t,{gl:n}=r;if(e.cullMode)switch(e.cullMode){case"none":n.disable(2884);break;case"front":n.enable(2884),n.cullFace(1028);break;case"back":n.enable(2884),n.cullFace(1029);break}if(e.frontFace&&n.frontFace(Wt("frontFace",e.frontFace,{ccw:2305,cw:2304})),e.unclippedDepth&&t.features.has("depth-clip-control")&&n.enable(34383),e.depthBias!==void 0&&(n.enable(32823),n.polygonOffset(e.depthBias,e.depthBiasSlopeScale||0)),e.provokingVertex&&t.features.has("provoking-vertex-webgl")){let s=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,o=Wt("provokingVertex",e.provokingVertex,{first:36429,last:36430});s?.provokingVertexWEBGL(o)}if((e.polygonMode||e.polygonOffsetLine)&&t.features.has("polygon-mode-webgl")){if(e.polygonMode){let s=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,o=Wt("polygonMode",e.polygonMode,{fill:6914,line:6913});s?.polygonModeWEBGL(1028,o),s?.polygonModeWEBGL(1029,o)}e.polygonOffsetLine&&n.enable(10754)}if(t.features.has("shader-clip-cull-distance-webgl")&&(e.clipDistance0&&n.enable(12288),e.clipDistance1&&n.enable(12289),e.clipDistance2&&n.enable(12290),e.clipDistance3&&n.enable(12291),e.clipDistance4&&n.enable(12292),e.clipDistance5&&n.enable(12293),e.clipDistance6&&n.enable(12294),e.clipDistance7&&n.enable(12295)),e.depthWriteEnabled!==void 0&&n.depthMask(Sc("depthWriteEnabled",e.depthWriteEnabled)),e.depthCompare&&(e.depthCompare!=="always"?n.enable(2929):n.disable(2929),n.depthFunc(br("depthCompare",e.depthCompare))),e.clearDepth!==void 0&&n.clearDepth(e.clearDepth),e.stencilWriteMask){let i=e.stencilWriteMask;n.stencilMaskSeparate(1028,i),n.stencilMaskSeparate(1029,i)}if(e.stencilReadMask&&zs.log.warn("stencilReadMask not supported under WebGL"),e.stencilCompare){let i=e.stencilReadMask||4294967295,s=br("depthCompare",e.stencilCompare);e.stencilCompare!=="always"?n.enable(2960):n.disable(2960),n.stencilFuncSeparate(1028,s,0,i),n.stencilFuncSeparate(1029,s,0,i)}if(e.stencilPassOperation&&e.stencilFailOperation&&e.stencilDepthFailOperation){let i=Bn("stencilPassOperation",e.stencilPassOperation),s=Bn("stencilFailOperation",e.stencilFailOperation),o=Bn("stencilDepthFailOperation",e.stencilDepthFailOperation);n.stencilOpSeparate(1028,s,o,i),n.stencilOpSeparate(1029,s,o,i)}switch(e.blend){case!0:n.enable(3042);break;case!1:n.disable(3042);break;default:}if(e.blendColorOperation||e.blendAlphaOperation){let i=Ls("blendColorOperation",e.blendColorOperation||"add"),s=Ls("blendAlphaOperation",e.blendAlphaOperation||"add");n.blendEquationSeparate(i,s);let o=Ar("blendColorSrcFactor",e.blendColorSrcFactor||"one"),a=Ar("blendColorDstFactor",e.blendColorDstFactor||"zero"),c=Ar("blendAlphaSrcFactor",e.blendAlphaSrcFactor||"one"),l=Ar("blendAlphaDstFactor",e.blendAlphaDstFactor||"zero");n.blendFuncSeparate(o,a,c,l)}}function br(t,e){return Wt(t,e,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Bn(t,e){return Wt(t,e,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function Ls(t,e){return Wt(t,e,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function Ar(t,e,r="color"){return Wt(t,e,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function bc(t,e){return`Illegal parameter ${e} for ${t}`}function Wt(t,e,r){if(!(e in r))throw new Error(bc(t,e));return r[e]}function Sc(t,e){return e}function Mc(t){let e=!0;for(let r in t){e=!1;break}return e}var zs,vn=I(()=>{zs=F(B(),1);Qt()});function Sr(t){let e={};return t.addressModeU&&(e[10242]=Un(t.addressModeU)),t.addressModeV&&(e[10243]=Un(t.addressModeV)),t.addressModeW&&(e[32882]=Un(t.addressModeW)),t.magFilter&&(e[10240]=Vn(t.magFilter)),(t.minFilter||t.mipmapFilter)&&(e[10241]=xc(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]=br("compare",t.compare)),t.maxAnisotropy&&(e[34046]=t.maxAnisotropy),e}function Un(t){switch(t){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function Vn(t){switch(t){case"nearest":return 9728;case"linear":return 9729}}function xc(t,e="none"){if(!e)return Vn(t);switch(e){case"none":return Vn(t);case"nearest":switch(t){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(t){case"nearest":return 9986;case"linear":return 9987}}}var kn=I(()=>{vn()});var Ks,Mr,Zs=I(()=>{Ks=F(B(),1);kn();Mr=class extends Ks.Sampler{device;handle;parameters;constructor(e,r){super(e,r),this.device=e,this.parameters=Sr(r),this.handle=r.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,n]of Object.entries(e)){let i=Number(r);switch(i){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,i,n);break;default:this.device.gl.samplerParameteri(this.handle,i,n);break}}}}});function mt(t,e,r){if(Pc(e))return r(t);let{nocatch:n=!0}=e,i=it.get(t);i.push(),nt(t,e);let s;if(n)s=r(t),i.pop();else try{s=r(t)}finally{i.pop()}return s}function Pc(t){for(let e in t)return!1;return!0}var xr=I(()=>{Qt();Pn()});var Pr,Rt,Xn=I(()=>{Pr=F(B(),1),Rt=class extends Pr.TextureView{device;gl;handle;texture;constructor(e,r){super(e,{...Pr.Texture.defaultProps,...r}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function Cr(t){return Cc[t]}var Cc,Wn=I(()=>{Cc={[5124]:"sint32",[5125]:"uint32",[5122]:"sint16",[5123]:"uint16",[5120]:"sint8",[5121]:"uint8",[5126]:"float32",[5131]:"float16",[33635]:"uint16",[32819]:"uint16",[32820]:"uint16",[33640]:"uint32",[35899]:"uint32",[35902]:"uint32",[34042]:"uint32",[36269]:"uint32"}});function Ic(t,e=0){return e?new t.constructor(t.buffer,t.byteOffset+e,(t.byteLength-e)/t.BYTES_PER_ELEMENT):t}function yc(t,e){if(e%t.BYTES_PER_ELEMENT!==0)throw new Error(`Texture byteOffset ${e} must align to typed array element size ${t.BYTES_PER_ELEMENT}`);return e/t.BYTES_PER_ELEMENT}function Nc(t){switch(t){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(t)}function Ir(t,e,r){return e==="cube"?34069+r:t}var Bt,Et,yr=I(()=>{Bt=F(B(),1);te();kn();xr();Xn();Wn();Et=class extends Bt.Texture{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;_framebuffer=null;_framebufferAttachmentKey=null;constructor(e,r){super(e,r,{byteAlignment:1}),this.device=e,this.gl=this.device.gl;let n=dr(this.props.format);this.glTarget=Nc(this.props.dimension),this.glInternalFormat=n.internalFormat,this.glFormat=n.format,this.glType=n.type,this.compressed=n.compressed,this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.gl.bindTexture(this.glTarget,this.handle);let{dimension:i,width:s,height:o,depth:a,mipLevels:c,glTarget:l,glInternalFormat:h}=this;if(!this.compressed)switch(i){case"2d":case"cube":this.gl.texStorage2D(l,c,h,s,o);break;case"2d-array":case"3d":this.gl.texStorage3D(l,c,h,s,o,a);break;default:throw new Error(i)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data),this.props.handle?this.trackReferencedMemory(this.getAllocatedByteLength(),"Texture"):this.trackAllocatedMemory(this.getAllocatedByteLength(),"Texture"),this.setSampler(this.props.sampler),this.view=new Rt(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this._framebuffer?.destroy(),this._framebuffer=null,this._framebufferAttachmentKey=null,this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Texture"):(this.gl.deleteTexture(this.handle),this.trackDeallocatedMemory("Texture")),this.destroyed=!0)}createView(e){return new Rt(this.device,{...e,texture:this})}setSampler(e={}){super.setSampler(e);let r=Sr(this.sampler.props);this._setSamplerParameters(r)}copyExternalImage(e){let r=this._normalizeCopyExternalImageOptions(e);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:n,glType:i}=this,{image:s,depth:o,mipLevel:a,x:c,y:l,z:h,width:f,height:d}=r,p=Ir(this.glTarget,this.dimension,h),_=r.flipY?{[37440]:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),mt(this.gl,_,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(p,a,c,l,f,d,n,i,s);break;case"2d-array":case"3d":this.gl.texSubImage3D(p,a,c,l,h,f,d,o,n,i,s);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyImageData(e){super.copyImageData(e)}readBuffer(e={},r){if(!r)throw new Error(`${this} readBuffer requires a destination buffer`);let n=this._getSupportedColorReadOptions(e),i=e.byteOffset??0,s=this.computeMemoryLayout(n);if(r.byteLength<i+s.byteLength)throw new Error(`${this} readBuffer target is too small (${r.byteLength} < ${i+s.byteLength})`);let o=r;this.gl.bindBuffer(35051,o.handle);try{this._readColorTextureLayers(n,s,a=>{this.gl.readPixels(n.x,n.y,n.width,n.height,this.glFormat,this.glType,i+a)})}finally{this.gl.bindBuffer(35051,null)}return r}async readDataAsync(e={}){throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`)}writeBuffer(e,r={}){let n=this._normalizeTextureWriteOptions(r),{width:i,height:s,depthOrArrayLayers:o,mipLevel:a,byteOffset:c,x:l,y:h,z:f}=n,{glFormat:d,glType:p,compressed:_}=this,g=Ir(this.glTarget,this.dimension,f);if(_)throw new Error("writeBuffer for compressed textures is not implemented in WebGL");let{bytesPerPixel:u}=this.device.getTextureFormatInfo(this.format),T=u?n.bytesPerRow/u:void 0,S={[3317]:this.byteAlignment,...T!==void 0?{[3314]:T}:{},[32878]:n.rowsPerImage};this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,e.handle),mt(this.gl,S,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(g,a,l,h,i,s,d,p,c);break;case"2d-array":case"3d":this.gl.texSubImage3D(g,a,l,h,f,i,s,o,d,p,c);break;default:}}),this.gl.bindBuffer(35052,null),this.gl.bindTexture(this.glTarget,null)}writeData(e,r={}){let n=this._normalizeTextureWriteOptions(r),i=ArrayBuffer.isView(e)?e:new Uint8Array(e),{width:s,height:o,depthOrArrayLayers:a,mipLevel:c,x:l,y:h,z:f,byteOffset:d}=n,{glFormat:p,glType:_,compressed:g}=this,u=Ir(this.glTarget,this.dimension,f),T;if(!g){let{bytesPerPixel:m}=this.device.getTextureFormatInfo(this.format);m&&(T=n.bytesPerRow/m)}let S=this.compressed?{}:{[3317]:this.byteAlignment,...T!==void 0?{[3314]:T}:{},[32878]:n.rowsPerImage},R=yc(i,d),E=g?Ic(i,d):i,A=this._getMipLevelSize(c),M=l===0&&h===0&&f===0&&s===A.width&&o===A.height&&a===A.depthOrArrayLayers;this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,null),mt(this.gl,S,()=>{switch(this.dimension){case"2d":case"cube":g?M?this.gl.compressedTexImage2D(u,c,p,s,o,0,E):this.gl.compressedTexSubImage2D(u,c,l,h,s,o,p,E):this.gl.texSubImage2D(u,c,l,h,s,o,p,_,i,R);break;case"2d-array":case"3d":g?M?this.gl.compressedTexImage3D(u,c,p,s,o,a,0,E):this.gl.compressedTexSubImage3D(u,c,l,h,f,s,o,a,p,E):this.gl.texSubImage3D(u,c,l,h,f,s,o,a,p,_,i,R);break;default:}}),this.gl.bindTexture(this.glTarget,null)}_getRowByteAlignment(e,r){return 1}_getFramebuffer(){return this._framebuffer||=this.device.createFramebuffer({id:`framebuffer-for-${this.id}`,width:this.width,height:this.height,colorAttachments:[this]}),this._framebuffer}readDataSyncWebGL(e={}){let r=this._getSupportedColorReadOptions(e),n=this.computeMemoryLayout(r),i=Cr(this.glType),s=(0,Bt.getTypedArrayConstructor)(i),o=new s(n.byteLength/s.BYTES_PER_ELEMENT);return this._readColorTextureLayers(r,n,a=>{let c=new s(o.buffer,o.byteOffset+a,n.bytesPerImage/s.BYTES_PER_ELEMENT);this.gl.readPixels(r.x,r.y,r.width,r.height,this.glFormat,this.glType,c)}),o.buffer}_readColorTextureLayers(e,r,n){let i=this._getFramebuffer(),s=r.bytesPerRow/r.bytesPerPixel,o={[3333]:this.byteAlignment,...s!==e.width?{[3330]:s}:{}},a=this.gl.getParameter(3074),c=this.gl.bindFramebuffer(36160,i.handle);try{this.gl.readBuffer(36064),mt(this.gl,o,()=>{for(let l=0;l<e.depthOrArrayLayers;l++)this._attachReadSubresource(i,e.mipLevel,e.z+l),n(l*r.bytesPerImage)})}finally{this.gl.bindFramebuffer(36160,c||null),this.gl.readBuffer(a)}}_attachReadSubresource(e,r,n){let i=`${r}:${n}`;if(this._framebufferAttachmentKey!==i){switch(this.dimension){case"2d":this.gl.framebufferTexture2D(36160,36064,3553,this.handle,r);break;case"cube":this.gl.framebufferTexture2D(36160,36064,Ir(this.glTarget,this.dimension,n),this.handle,r);break;case"2d-array":case"3d":this.gl.framebufferTextureLayer(36160,36064,this.handle,r,n);break;default:throw new Error(`${this} color readback does not support ${this.dimension} textures`)}if(this.device.props.debug){let s=Number(this.gl.checkFramebufferStatus(36160));if(s!==Number(36053))throw new Error(`${e} incomplete for ${this} readback (${s})`)}this._framebufferAttachmentKey=i}}generateMipmapsWebGL(e){if(!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(Bt.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!e?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(n){Bt.log.warn(`Error generating mipmap for ${this}: ${n.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(e){Bt.log.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(e))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,n]of Object.entries(e)){let i=Number(r),s=n;switch(i){case 33082:case 33083:this.gl.texParameterf(this.glTarget,i,s);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,i,s);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,i,s);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,i,s);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,i,s);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,this.handle),e}_unbind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,null),e}}});function js(t,e,r,n){let i=t,s=n;s===!0&&(s=1),s===!1&&(s=0);let o=typeof s=="number"?[s]:s;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 n!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,n);case 5126:return t.uniform1fv(e,o);case 35664:return t.uniform2fv(e,o);case 35665:return t.uniform3fv(e,o);case 35666:return t.uniform4fv(e,o);case 5124:return t.uniform1iv(e,o);case 35667:return t.uniform2iv(e,o);case 35668:return t.uniform3iv(e,o);case 35669:return t.uniform4iv(e,o);case 35670:return t.uniform1iv(e,o);case 35671:return t.uniform2iv(e,o);case 35672:return t.uniform3iv(e,o);case 35673:return t.uniform4iv(e,o);case 5125:return i.uniform1uiv(e,o,1);case 36294:return i.uniform2uiv(e,o,2);case 36295:return i.uniform3uiv(e,o,3);case 36296:return i.uniform4uiv(e,o,4);case 35674:return t.uniformMatrix2fv(e,!1,o);case 35675:return t.uniformMatrix3fv(e,!1,o);case 35676:return t.uniformMatrix4fv(e,!1,o);case 35685:return i.uniformMatrix2x3fv(e,!1,o);case 35686:return i.uniformMatrix2x4fv(e,!1,o);case 35687:return i.uniformMatrix3x2fv(e,!1,o);case 35688:return i.uniformMatrix3x4fv(e,!1,o);case 35689:return i.uniformMatrix4x2fv(e,!1,o);case 35690:return i.uniformMatrix4x3fv(e,!1,o)}throw new Error("Illegal uniform")}var $s=I(()=>{});function qs(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(t)}}function Qs(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(t)}}var Hn=I(()=>{});function Oc(t,e){let r={...t,attributes:t.attributes.map(n=>({...n})),bindings:t.bindings.map(n=>({...n}))};for(let n of e?.attributes||[]){let i=r.attributes.find(s=>s.name===n.name);i?(i.type=n.type||i.type,i.stepMode=n.stepMode||i.stepMode):L.log.warn(`shader layout attribute ${n.name} not present in shader`)}for(let n of e?.bindings||[]){let i=Gs(r,n.name);if(!i){L.log.warn(`shader layout binding ${n.name} not present in shader`);continue}Object.assign(i,n)}return r}function Gs(t,e){return t.bindings.find(r=>r.name===e||r.name===`${e}Uniforms`||`${r.name}Uniforms`===e)}function Js(t,e){return t[e]||t[`${e}Uniforms`]||t[e.replace(/Uniforms$/,"")]}var L,Nr,to=I(()=>{L=F(B(),1);vn();$s();mr();_r();yr();Xn();Hn();Nr=class extends L.RenderPipeline{device;handle;vs;fs;introspectedLayout;bindings={};uniforms={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(e,r){super(e,r),this.device=e;let n=this.sharedRenderPipeline||this.device._createSharedRenderPipelineWebGL(r);this.sharedRenderPipeline=n,this.handle=n.handle,this.vs=n.vs,this.fs=n.fs,this.linkStatus=n.linkStatus,this.introspectedLayout=n.introspectedLayout,this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.shaderLayout=r.shaderLayout?Oc(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.destroyed||(this.sharedRenderPipeline&&!this.props._sharedRenderPipeline&&this.sharedRenderPipeline.destroy(),this.destroyResource())}setBindings(e,r){let n=(0,L.flattenBindingsByGroup)((0,L.normalizeBindingsByGroup)(this.shaderLayout,e));for(let[i,s]of Object.entries(n)){let o=Gs(this.shaderLayout,i);if(o){switch(s||L.log.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(s instanceof ot)&&!(s.buffer instanceof ot))throw new Error("buffer value");break;case"texture":if(!(s instanceof Rt||s instanceof Et||s instanceof Tt))throw new Error(`${this} Bad texture binding for ${i}`);break;case"sampler":L.log.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=s}else{let a=this.shaderLayout.bindings.map(c=>`"${c.name}"`).join(", ");r?.disableWarnings||L.log.warn(`No binding "${i}" in render pipeline "${this.id}", expected one of ${a}`,s)()}}}draw(e){this._syncLinkStatus();let r=e.bindGroups?(0,L.flattenBindingsByGroup)(e.bindGroups):e.bindings||this.bindings,{renderPass:n,parameters:i=this.props.parameters,topology:s=this.props.topology,vertexArray:o,vertexCount:a,instanceCount:c,isInstanced:l=!1,firstVertex:h=0,transformFeedback:f,uniforms:d=this.uniforms}=e,p=qs(s),_=Boolean(o.indexBuffer),g=o.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return L.log.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable(r))return L.log.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),o.bindBeforeRender(n),f&&f.begin(this.props.topology),this._applyBindings(r,{disableWarnings:this.props.disableWarnings}),this._applyUniforms(d);let u=n;return Ys(this.device,i,u.glParameters,()=>{_&&l?this.device.gl.drawElementsInstanced(p,a||0,g,h,c||0):_?this.device.gl.drawElements(p,a||0,g,h):l?this.device.gl.drawArraysInstanced(p,h,a||0,c||0):this.device.gl.drawArrays(p,h,a||0),f&&f.end()}),o.unbindAfterRender(n),!0}_areTexturesRenderable(e){let r=!0;for(let n of this.shaderLayout.bindings)Js(e,n.name)||(L.log.warn(`Binding ${n.name} not found in ${this.id}`)(),r=!1);return r}_applyBindings(e,r){if(this._syncLinkStatus(),this.linkStatus!=="success")return;let{gl:n}=this.device;n.useProgram(this.handle);let i=0,s=0;for(let o of this.shaderLayout.bindings){let a=Js(e,o.name);if(!a)throw new Error(`No value for binding ${o.name} in ${this.id}`);switch(o.type){case"uniform":let{name:c}=o,l=n.getUniformBlockIndex(this.handle,c);if(l===4294967295)throw new Error(`Invalid uniform block name ${c}`);if(n.uniformBlockBinding(this.handle,l,s),a instanceof ot)n.bindBufferBase(35345,s,a.handle);else{let f=a;n.bindBufferRange(35345,s,f.buffer.handle,f.offset||0,f.size||f.buffer.byteLength-(f.offset||0))}s+=1;break;case"texture":if(!(a instanceof Rt||a instanceof Et||a instanceof Tt))throw new Error("texture");let h;if(a instanceof Rt)h=a.texture;else if(a instanceof Et)h=a;else if(a instanceof Tt&&a.colorAttachments[0]instanceof Rt)L.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),h=a.colorAttachments[0].texture;else throw new Error("No texture");n.activeTexture(33984+i),n.bindTexture(h.glTarget,h.handle),i+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${o.type}' not supported in WebGL`)}}}_applyUniforms(e){for(let r of this.shaderLayout.uniforms||[]){let{name:n,location:i,type:s,textureUnit:o}=r,a=e[n]??o;a!==void 0&&js(this.device.gl,i,s,a)}}_syncLinkStatus(){this.linkStatus=this.sharedRenderPipeline.linkStatus}}});function eo(t){return Dc[t]}function Or(t){return wc[t]}function wr(t){return Boolean(no[t])}function ro(t){return no[t]}var wc,no,Dc,Dr=I(()=>{wc={[5126]:"f32",[35664]:"vec2<f32>",[35665]:"vec3<f32>",[35666]:"vec4<f32>",[5124]:"i32",[35667]:"vec2<i32>",[35668]:"vec3<i32>",[35669]:"vec4<i32>",[5125]:"u32",[36294]:"vec2<u32>",[36295]:"vec3<u32>",[36296]:"vec4<u32>",[35670]:"f32",[35671]:"vec2<f32>",[35672]:"vec3<f32>",[35673]:"vec4<f32>",[35674]:"mat2x2<f32>",[35685]:"mat2x3<f32>",[35686]:"mat2x4<f32>",[35687]:"mat3x2<f32>",[35675]:"mat3x3<f32>",[35688]:"mat3x4<f32>",[35689]:"mat4x2<f32>",[35690]:"mat4x3<f32>",[35676]:"mat4x4<f32>"},no={[35678]:{viewDimension:"2d",sampleType:"float"},[35680]:{viewDimension:"cube",sampleType:"float"},[35679]:{viewDimension:"3d",sampleType:"float"},[35682]:{viewDimension:"3d",sampleType:"depth"},[36289]:{viewDimension:"2d-array",sampleType:"float"},[36292]:{viewDimension:"2d-array",sampleType:"depth"},[36293]:{viewDimension:"cube",sampleType:"float"},[36298]:{viewDimension:"2d",sampleType:"sint"},[36299]:{viewDimension:"3d",sampleType:"sint"},[36300]:{viewDimension:"cube",sampleType:"sint"},[36303]:{viewDimension:"2d-array",sampleType:"uint"},[36306]:{viewDimension:"2d",sampleType:"uint"},[36307]:{viewDimension:"3d",sampleType:"uint"},[36308]:{viewDimension:"cube",sampleType:"uint"},[36311]:{viewDimension:"2d-array",sampleType:"uint"}},Dc={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function io(t,e){let r={attributes:[],bindings:[]};r.attributes=Fc(t,e);let n=Uc(t,e);for(let a of n){let c=a.uniforms.map(l=>({name:l.name,format:l.format,byteOffset:l.byteOffset,byteStride:l.byteStride,arrayLength:l.arrayLength}));r.bindings.push({type:"uniform",name:a.name,group:0,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:c})}let i=vc(t,e),s=0;for(let a of i)if(wr(a.type)){let{viewDimension:c,sampleType:l}=ro(a.type);r.bindings.push({type:"texture",name:a.name,group:0,location:s,viewDimension:c,sampleType:l}),a.textureUnit=s,s+=1}i.length&&(r.uniforms=i);let o=Bc(t,e);return o?.length&&(r.varyings=o),r}function Fc(t,e){let r=[],n=t.getProgramParameter(e,35721);for(let i=0;i<n;i++){let s=t.getActiveAttrib(e,i);if(!s)throw new Error("activeInfo");let{name:o,type:a}=s,c=t.getAttribLocation(e,o);if(c>=0){let l=Or(a),h=/instance/i.test(o)?"instance":"vertex";r.push({name:o,location:c,stepMode:h,type:l})}}return r.sort((i,s)=>i.location-s.location),r}function Bc(t,e){let r=[],n=t.getProgramParameter(e,35971);for(let i=0;i<n;i++){let s=t.getTransformFeedbackVarying(e,i);if(!s)throw new Error("activeInfo");let{name:o,type:a,size:c}=s,l=Or(a),{type:h,components:f}=(0,ee.getVariableShaderTypeInfo)(l);r.push({location:i,name:o,type:h,size:c*f})}return r.sort((i,s)=>i.location-s.location),r}function vc(t,e){let r=[],n=t.getProgramParameter(e,35718);for(let i=0;i<n;i++){let s=t.getActiveUniform(e,i);if(!s)throw new Error("activeInfo");let{name:o,size:a,type:c}=s,{name:l,isArray:h}=Vc(o),f=t.getUniformLocation(e,l),d={location:f,name:l,size:a,type:c,isArray:h};if(r.push(d),d.size>1)for(let p=0;p<d.size;p++){let _=`${l}[${p}]`;f=t.getUniformLocation(e,_);let g={...d,name:_,location:f};r.push(g)}}return r}function Uc(t,e){let r=(s,o)=>t.getActiveUniformBlockParameter(e,s,o),n=[],i=t.getProgramParameter(e,35382);for(let s=0;s<i;s++){let o={name:t.getActiveUniformBlockName(e,s)||"",location:r(s,35391),byteLength:r(s,35392),vertex:r(s,35396),fragment:r(s,35398),uniformCount:r(s,35394),uniforms:[]},a=r(s,35395)||[],c=t.getActiveUniforms(e,a,35383),l=t.getActiveUniforms(e,a,35384),h=t.getActiveUniforms(e,a,35387),f=t.getActiveUniforms(e,a,35388);for(let _=0;_<o.uniformCount;++_){let g=a[_];if(g!==void 0){let u=t.getActiveUniform(e,g);if(!u)throw new Error("activeInfo");let T=Or(c[_]);o.uniforms.push({name:u.name,format:T,type:c[_],arrayLength:l[_],byteOffset:h[_],byteStride:f[_]})}}let d=new Set(o.uniforms.map(_=>_.name.split(".")[0]).filter(_=>Boolean(_))),p=o.name.replace(/Uniforms$/,"");if(d.size===1&&!d.has(o.name)&&!d.has(p)){let[_]=d;ee.log.warn(`Uniform block "${o.name}" uses GLSL instance "${_}". luma.gl binds uniform buffers by block name ("${o.name}") and alias ("${p}"). Prefer matching the instance name to one of those to avoid confusing silent mismatches.`)()}n.push(o)}return n.sort((s,o)=>s.location-o.location),n}function Vc(t){if(t[t.length-1]!=="]")return{name:t,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(t);return{name:(0,ee.assertDefined)(r?.[1],`Failed to parse GLSL uniform name ${t}`),length:r?.[2]?1:0,isArray:Boolean(r?.[2])}}var ee,so=I(()=>{ee=F(B(),1);Dr()});var St,oo,Fr,ao=I(()=>{St=F(B(),1);so();Dr();oo=4,Fr=class extends St.SharedRenderPipeline{device;handle;vs;fs;introspectedLayout={attributes:[],bindings:[],uniforms:[]};linkStatus="pending";constructor(e,r){super(e,r),this.device=e,this.handle=r.handle||this.device.gl.createProgram(),this.vs=r.vs,this.fs=r.fs,r.varyings&&r.varyings.length>0&&this.device.gl.transformFeedbackVaryings(this.handle,r.varyings,r.bufferMode||35981),this._linkShaders(),St.log.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=io(this.device.gl,this.handle),St.log.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)()}destroy(){this.destroyed||(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.handle.destroyed=!0,this.destroyResource())}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),St.log.time(oo,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),St.log.timeEnd(oo,`linkProgram for ${this.id}`)(),!this.device.features.has("compilation-status-async-webgl")){let n=this._getLinkStatus();this._reportLinkStatus(n);return}St.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),St.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(e){switch(e){case"success":return;default:let r=e==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let n=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${e}: ${n}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:e}=this.device;return e.getProgramParameter(this.handle,35714)?(this._initializeSamplerUniforms(),e.validateProgram(this.handle),e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}_initializeSamplerUniforms(){let{gl:e}=this.device;e.useProgram(this.handle);let r=0,n=e.getProgramParameter(this.handle,35718);for(let i=0;i<n;i++){let s=e.getActiveUniform(this.handle,i);if(s&&wr(s.type)){let o=s.name.endsWith("[0]"),a=o?s.name.slice(0,-3):s.name,c=e.getUniformLocation(this.handle,a);c!==null&&(r=this._assignSamplerUniform(c,s,o,r))}}}_assignSamplerUniform(e,r,n,i){let{gl:s}=this.device;if(n&&r.size>1){let o=Int32Array.from({length:r.size},(a,c)=>i+c);return s.uniform1iv(e,o),i+r.size}return s.uniform1i(e,i),i+1}async _waitForLinkComplete(){let e=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:n}=this.device;for(;;){if(n.getProgramParameter(this.handle,37297))return;await e(10)}}}});function kc(t,e){let r=e.sourceBuffer,n=e.destinationBuffer;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,n.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 Xc(t,e){throw new Error("copyBufferToTexture is not supported in WebGL")}function Wc(t,e){let{sourceTexture:r,mipLevel:n=0,aspect:i="all",width:s=e.sourceTexture.width,height:o=e.sourceTexture.height,depthOrArrayLayers:a,origin:c=[0,0,0],destinationBuffer:l,byteOffset:h=0,bytesPerRow:f,rowsPerImage:d}=e;if(r instanceof Ht.Texture){r.readBuffer({x:c[0]??0,y:c[1]??0,z:c[2]??0,width:s,height:o,depthOrArrayLayers:a,mipLevel:n,aspect:i,byteOffset:h},l);return}if(i!=="all")throw new Error("aspect not supported in WebGL");if(n!==0||a!==void 0||f||d)throw new Error("not implemented");let{framebuffer:p,destroyFramebuffer:_}=co(r),g;try{let u=l,T=s||p.width,S=o||p.height,R=(0,Ht.assertDefined)(p.colorAttachments[0]),E=dr(R.texture.props.format),A=E.format,M=E.type;t.gl.bindBuffer(35051,u.handle),g=t.gl.bindFramebuffer(36160,p.handle),t.gl.readPixels(c[0],c[1],T,S,A,M,h)}finally{t.gl.bindBuffer(35051,null),g!==void 0&&t.gl.bindFramebuffer(36160,g),_&&p.destroy()}}function Hc(t,e){let{sourceTexture:r,destinationMipLevel:n=0,origin:i=[0,0],destinationOrigin:s=[0,0,0],destinationTexture:o}=e,{width:a=e.destinationTexture.width,height:c=e.destinationTexture.height}=e,{framebuffer:l,destroyFramebuffer:h}=co(r),[f=0,d=0]=i,[p,_,g]=s,u=t.gl.bindFramebuffer(36160,l.handle),T,S;if(o instanceof Et)T=o,a=Number.isFinite(a)?a:T.width,c=Number.isFinite(c)?c:T.height,T._bind(0),S=T.glTarget;else throw new Error("invalid destination");switch(S){case 3553:case 34067:t.gl.copyTexSubImage2D(S,n,p,_,f,d,a,c);break;case 35866:case 32879:t.gl.copyTexSubImage3D(S,n,p,_,g,f,d,a,c);break;default:}T&&T._unbind(),t.gl.bindFramebuffer(36160,u),h&&l.destroy()}function co(t){if(t instanceof Ht.Texture){let{width:e,height:r,id:n}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${n}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var Ht,Br,lo=I(()=>{Ht=F(B(),1);te();yr();Br=class extends Ht.CommandBuffer{device;handle=null;commands=[];constructor(e,r={}){super(e,r),this.device=e}_executeCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":kc(this.device,r.options);break;case"copy-buffer-to-texture":Xc(this.device,r.options);break;case"copy-texture-to-buffer":Wc(this.device,r.options);break;case"copy-texture-to-texture":Hc(this.device,r.options);break;default:throw new Error(r.name)}}}});var ho,Lc,vr,fo=I(()=>{ho=F(B(),1);xr();Qt();Lc=[1,2,4,8],vr=class extends ho.RenderPass{device;handle=null;glParameters={};constructor(e,r){super(e,r),this.device=e;let n=this.props.framebuffer,i=!n||n.handle===null;i&&e.getDefaultCanvasContext()._resizeDrawingBufferIfNeeded();let s;if(!r?.parameters?.viewport)if(!i&&n){let{width:o,height:a}=n;s=[0,0,o,a]}else{let[o,a]=e.getDefaultCanvasContext().getDrawingBufferSize();s=[0,0,o,a]}if(this.device.pushState(),this.setParameters({viewport:s,...this.props.parameters}),!i&&n?.colorAttachments.length){let o=n.colorAttachments.map((a,c)=>36064+c);this.device.gl.drawBuffers(o)}else i&&this.device.gl.drawBuffers([1029]);this.clear(),this.props.timestampQuerySet&&this.props.beginTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.beginTimestampIndex)}end(){this.destroyed||(this.props.timestampQuerySet&&this.props.endTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.endTimestampIndex),this.device.popState(),this.destroy())}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,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!==void 0&&(r[2967]=e.stencilReference,r[36003]=e.stencilReference),"colorMask"in e&&(r.colorMask=Lc.map(n=>Boolean(n&e.colorMask))),this.glParameters=r,nt(this.device.gl,r)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((n,i)=>{n&&this.clearColorBuffer(i,n)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,e.clearStencil=this.props.clearStencil),r!==0&&mt(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){mt(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,e,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,e,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,e,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var po,De,uo=I(()=>{po=F(B(),1);lo();fo();De=class extends po.CommandEncoder{device;handle=null;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new Br(e,{id:`${this.props.id}-command-buffer`})}destroy(){this.destroyResource()}finish(e){return e?.id&&this.commandBuffer.id!==e.id&&(this.commandBuffer.id=e.id,this.commandBuffer.props.id=e.id),this.destroy(),this.commandBuffer}beginRenderPass(e={}){return new vr(this.device,this._applyTimeProfilingToPassProps(e))}beginComputePass(e={}){throw new Error("ComputePass not supported in WebGL")}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,n){throw new Error("resolveQuerySet is not supported in WebGL")}writeTimestamp(e,r){e.writeTimestamp(r)}}});function _o(t){let{target:e,source:r,start:n=0,count:i=1}=t,s=r.length,o=i*s,a=0;for(let c=n;a<s;a++)e[c++]=r[a]??0;for(;a<o;)a<o-a?(e.copyWithin(n+a,n,n+a),a*=2):(e.copyWithin(n+a,n,n+o-a),a=o);return t.target}var go=I(()=>{});function zc(t){return Array.isArray(t)?new Float32Array(t):t}function Yc(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 Ur,re,To=I(()=>{Ur=F(B(),1);xe();Cn();go();re=class extends Ur.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return En()==="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 n=r;if(n.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:i,type:s,stride:o,offset:a,normalized:c,integer:l,divisor:h}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),l?this.device.gl.vertexAttribIPointer(e,i,s,o,a):this.device.gl.vertexAttribPointer(e,i,s,c,o,a),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,h||0),this.attributes[e]=n,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 n=cr(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let i=re.isConstantAttributeZeroSupported(this.device)||e!==0;(r||i)&&(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 n=zc(r),i=n.byteLength*e,s=n.length*e;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let o=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),o||=!Yc(n,this.bufferValue),o){let a=(0,Ur.getScratchArray)(r.constructor,s);_o({target:a,source:n,start:0,count:s}),this.buffer.write(a),this.bufferValue=r}return this.buffer}}});function mo(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var kr,Vr,Ro=I(()=>{kr=F(B(),1);Ln();Hn();Vr=class extends kr.TransformFeedback{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(Qs(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,n]of Object.entries(e))this.setBuffer(r,n)})}setBuffer(e,r){let n=this._getVaryingIndex(e),{buffer:i,byteLength:s,byteOffset:o}=this._getBufferRange(r);if(n<0){this.unusedBuffers[e]=i,kr.log.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[n]={buffer:i,byteLength:s,byteOffset:o},this.bindOnUse||this._bindBuffer(n,i,o,s)}getBuffer(e){if(mo(e))return this.buffers[e]||null;let r=this._getVaryingIndex(e);return 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 ot)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:n=0,byteLength:i=e.buffer.byteLength}=e;return{buffer:r,byteOffset:n,byteLength:i}}_getVaryingIndex(e){if(mo(e))return Number(e);for(let r of this.layout.varyings||[])if(e===r.name)return r.location;return-1}_bindBuffers(){for(let[e,r]of Object.entries(this.buffers)){let{buffer:n,byteLength:i,byteOffset:s}=this._getBufferRange(r);this._bindBuffer(Number(e),n,s,i)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,n=0,i){let s=r&&r.handle;!s||i===void 0?this.gl.bindBufferBase(35982,e,s):this.gl.bindBufferRange(35982,e,s,n,i)}}});var Eo,Xr,Ao=I(()=>{Eo=F(B(),1),Xr=class extends Eo.QuerySet{device;handle;_timestampPairs=[];_pendingReads=new Set;_occlusionQuery=null;_occlusionActive=!1;get[Symbol.toStringTag](){return"QuerySet"}constructor(e,r){if(super(e,r),this.device=e,r.type==="timestamp"){if(r.count<2)throw new Error("Timestamp QuerySet requires at least two query slots");this._timestampPairs=new Array(Math.ceil(r.count/2)).fill(null).map(()=>({activeQuery:null,completedQueries:[]})),this.handle=null}else{if(r.count>1)throw new Error("WebGL occlusion QuerySet can only have one value");let n=this.device.gl.createQuery();if(!n)throw new Error("WebGL query not supported");this.handle=n}Object.seal(this)}destroy(){if(!this.destroyed){this.handle&&this.device.gl.deleteQuery(this.handle);for(let e of this._timestampPairs){e.activeQuery&&(this._cancelPendingQuery(e.activeQuery),this.device.gl.deleteQuery(e.activeQuery.handle));for(let r of e.completedQueries)this._cancelPendingQuery(r),this.device.gl.deleteQuery(r.handle)}this._occlusionQuery&&(this._cancelPendingQuery(this._occlusionQuery),this.device.gl.deleteQuery(this._occlusionQuery.handle));for(let e of Array.from(this._pendingReads))this._cancelPendingQuery(e);this.destroyResource()}}isResultAvailable(e){return this.props.type==="timestamp"?e===void 0?this._timestampPairs.some((r,n)=>this._isTimestampPairAvailable(n)):this._isTimestampPairAvailable(this._getTimestampPairIndex(e)):this._occlusionQuery?this._pollQueryAvailability(this._occlusionQuery):!1}async readResults(e){let r=e?.firstQuery||0,n=e?.queryCount||this.props.count-r;if(this._validateRange(r,n),this.props.type==="timestamp"){let i=new Array(n).fill(0n),s=Math.floor(r/2),o=Math.floor((r+n-1)/2);for(let a=s;a<=o;a++){let c=await this._consumeTimestampPairResult(a),l=a*2,h=l+1;l>=r&&l<r+n&&(i[l-r]=0n),h>=r&&h<r+n&&(i[h-r]=c)}return i}if(!this._occlusionQuery)throw new Error("Occlusion query has not been started");return[await this._consumeQueryResult(this._occlusionQuery)]}async readTimestampDuration(e,r){if(this.props.type!=="timestamp")throw new Error("Timestamp durations require a timestamp QuerySet");if(e<0||r>=this.props.count||r<=e)throw new Error("Timestamp duration range is out of bounds");if(e%2!==0||r!==e+1)throw new Error("WebGL timestamp durations require adjacent even/odd query indices");let n=await this._consumeTimestampPairResult(this._getTimestampPairIndex(e));return Number(n)/1e6}beginOcclusionQuery(){if(this.props.type!=="occlusion")throw new Error("Occlusion queries require an occlusion QuerySet");if(!this.handle)throw new Error("WebGL occlusion query is not available");if(this._occlusionActive)throw new Error("Occlusion query is already active");this.device.gl.beginQuery(35887,this.handle),this._occlusionQuery={handle:this.handle,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null},this._occlusionActive=!0}endOcclusionQuery(){if(!this._occlusionActive)throw new Error("Occlusion query is not active");this.device.gl.endQuery(35887),this._occlusionActive=!1}writeTimestamp(e){if(this.props.type!=="timestamp")throw new Error("Timestamp writes require a timestamp QuerySet");let r=this._getTimestampPairIndex(e),n=this._timestampPairs[r];if(e%2===0){if(n.activeQuery)throw new Error("Timestamp query pair is already active");let i=this.device.gl.createQuery();if(!i)throw new Error("WebGL query not supported");let s={handle:i,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null};this.device.gl.beginQuery(35007,i),n.activeQuery=s;return}if(!n.activeQuery)throw new Error("Timestamp query pair was ended before it was started");this.device.gl.endQuery(35007),n.completedQueries.push(n.activeQuery),n.activeQuery=null}_validateRange(e,r){if(e<0||r<0||e+r>this.props.count)throw new Error("Query read range is out of bounds")}_getTimestampPairIndex(e){if(e<0||e>=this.props.count)throw new Error("Query index is out of bounds");return Math.floor(e/2)}_isTimestampPairAvailable(e){let r=this._timestampPairs[e];return!r||r.completedQueries.length===0?!1:this._pollQueryAvailability(r.completedQueries[0])}_pollQueryAvailability(e){if(e.cancelled||this.destroyed)return e.result=0n,!0;if(e.result!==null||e.disjoint)return!0;if(!this.device.gl.getQueryParameter(e.handle,34919))return!1;let n=Boolean(this.device.gl.getParameter(36795));return e.disjoint=n,e.result=n?0n:BigInt(this.device.gl.getQueryParameter(e.handle,34918)),!0}async _consumeTimestampPairResult(e){let r=this._timestampPairs[e];if(!r||r.completedQueries.length===0)throw new Error("Timestamp query pair has no completed result");let n=r.completedQueries.shift();try{return await this._consumeQueryResult(n)}finally{this.device.gl.deleteQuery(n.handle)}}_consumeQueryResult(e){return e.promise||(this._pendingReads.add(e),e.promise=new Promise((r,n)=>{e.resolve=r,e.reject=n;let i=()=>{if(e.pollRequestId=null,e.cancelled||this.destroyed){this._pendingReads.delete(e),e.promise=null,e.resolve=null,e.reject=null,r(0n);return}if(!this._pollQueryAvailability(e)){e.pollRequestId=this._requestAnimationFrame(i);return}this._pendingReads.delete(e),e.promise=null,e.resolve=null,e.reject=null,e.disjoint?n(new Error("GPU timestamp query was invalidated by a disjoint event")):r(e.result||0n)};i()})),e.promise}_cancelPendingQuery(e){if(this._pendingReads.delete(e),e.cancelled=!0,e.pollRequestId!==null&&(this._cancelAnimationFrame(e.pollRequestId),e.pollRequestId=null),e.resolve){let r=e.resolve;e.promise=null,e.resolve=null,e.reject=null,r(0n)}}_requestAnimationFrame(e){return requestAnimationFrame(e)}_cancelAnimationFrame(e){cancelAnimationFrame(e)}}});var bo,Wr,So=I(()=>{bo=F(B(),1),Wr=class extends bo.Fence{device;gl;handle;signaled;_signaled=!1;constructor(e,r={}){super(e,{}),this.device=e,this.gl=e.gl;let n=this.props.handle||this.gl.fenceSync(this.gl.SYNC_GPU_COMMANDS_COMPLETE,0);if(!n)throw new Error("Failed to create WebGL fence");this.handle=n,this.signaled=new Promise(i=>{let s=()=>{let o=this.gl.clientWaitSync(this.handle,0,0);o===this.gl.ALREADY_SIGNALED||o===this.gl.CONDITION_SATISFIED?(this._signaled=!0,i()):setTimeout(s,1)};s()})}isSignaled(){if(this._signaled)return!0;let e=this.gl.getSyncParameter(this.handle,this.gl.SYNC_STATUS);return this._signaled=e===this.gl.SIGNALED,this._signaled}destroy(){this.destroyed||this.gl.deleteSync(this.handle)}}});function zn(t){switch(t){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function Mo(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var xo=I(()=>{});function Po(t,e){let{sourceX:r=0,sourceY:n=0,sourceAttachment:i=0}=e||{},{target:s=null,sourceWidth:o,sourceHeight:a,sourceDepth:c,sourceFormat:l,sourceType:h}=e||{},{framebuffer:f,deleteFramebuffer:d}=Io(t),{gl:p,handle:_}=f;o||=f.width,a||=f.height;let g=f.colorAttachments[i]?.texture;if(!g)throw new Error(`Invalid framebuffer attachment ${i}`);c=g?.depth||1,l||=g?.glFormat||6408,h||=g?.glType||5121,s=Zc(s,h,l,o,a,c);let u=Fe.dataTypeDecoder.getDataType(s);h=h||eo(u);let T=p.bindFramebuffer(36160,_);return p.readBuffer(36064+i),p.readPixels(r,n,o,a,l,h,s),p.readBuffer(36064),p.bindFramebuffer(36160,T||null),d&&f.destroy(),s}function Co(t,e){let{target:r,sourceX:n=0,sourceY:i=0,sourceFormat:s=6408,targetByteOffset:o=0}=e||{},{sourceWidth:a,sourceHeight:c,sourceType:l}=e||{},{framebuffer:h,deleteFramebuffer:f}=Io(t);a=a||h.width,c=c||h.height;let d=h;l=l||5121;let p=r;if(!p){let g=zn(s),u=Mo(l),T=o+a*c*g*u;p=d.device.createBuffer({byteLength:T})}let _=t.device.createCommandEncoder();return _.copyTextureToBuffer({sourceTexture:t,width:a,height:c,origin:[n,i],destinationBuffer:p,byteOffset:o}),_.destroy(),f&&h.destroy(),p}function Io(t){return t instanceof Fe.Framebuffer?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:Kc(t),deleteFramebuffer:!0}}function Kc(t,e){let{device:r,width:n,height:i,id:s}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${s}`,width:n,height:i,colorAttachments:[t]})}function Zc(t,e,r,n,i,s){if(t)return t;e||=5121;let o=Cr(e),a=Fe.dataTypeDecoder.getTypedArrayConstructor(o),c=zn(r);return new a(n*i*c)}var Fe,yo=I(()=>{Fe=F(B(),1);Dr();xo();Wn()});function jc(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:}}function $c(t,e,r){t.gl.vertexAttribI4iv(e,r)}function qc(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function Qc(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 at,vt,No=I(()=>{at=F(B(),1);Pn();ms();nr();As();Ns();ws();Bs();Us();ts();os();te();ks();mr();Hs();Zs();yr();_r();to();ao();uo();To();Ro();Ao();So();yo();Qt();xr();ye();vt=class extends at.Device{static getDeviceFromContext(e){return e?e.luma?.device??null:null}type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;gl;_constants;extensions;_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(e){switch(e){case"unorm8x4-bgra":return!1;default:return!0}}constructor(e){super({...e,id:e.id||Vs("webgl-device")});let r=at.Device._getCanvasContextProps(e);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let n=r.canvas?.gl??null,i=vt.getDeviceFromContext(n);if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new gr(this,r),this.lost=new Promise(h=>{this._resolveContextLost=h});let s={...e.webgl};r.alphaMode==="premultiplied"&&(s.premultipliedAlpha=!0),e.powerPreference!==void 0&&(s.powerPreference=e.powerPreference),e.failIfMajorPerformanceCaveat!==void 0&&(s.failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat);let a=this.props._handle||Ts(this.canvasContext.canvas,{onContextLost:h=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:h=>console.log("WebGL context restored")},s);if(!a)throw new Error("WebGL context creation failed");if(i=vt.getDeviceFromContext(a),i){if(e._reuseDevices)return at.log.log(1,`Not creating a new Device, instead returning a reference to Device ${i.id} already attached to WebGL context`,i)(),this.canvasContext.destroy(),i._reused=!0,i;throw new Error(`WebGL context already attached to device ${i.id}`)}this.handle=a,this.gl=a,this.spectorJS=Gi({...this.props,gl:this.handle});let c=Xt(this.handle);c.device=this,c.extensions||(c.extensions={}),this.extensions=c.extensions,this.info=Rs(this.gl,this.extensions),this.limits=new ur(this.gl),this.features=new pr(this.gl,this.extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new it(this.gl,{log:(...h)=>at.log.log(1,...h)()}).trackState(this.gl,{copyState:!1}),(e.debug||e.debugWebGL)&&(this.gl=ss(this.gl,{debugWebGL:!0,traceWebGL:e.debugWebGL}),at.log.warn("WebGL debug mode activated. Performance reduced.")()),e.debugWebGL&&(at.log.level=Math.max(at.log.level,1)),this.commandEncoder=new De(this,{id:`${this}-command-encoder`}),this.canvasContext._startObservers()}destroy(){if(this.commandEncoder?.destroy(),!this.props._reuseDevices&&!this._reused){let e=Xt(this.handle);e.device=null}}get isLost(){return this.gl.isContextLost()}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createPresentationContext(e){return new Tr(this,e||{})}createBuffer(e){let r=this._normalizeBufferProps(e);return new ot(this,r)}createTexture(e){return new Et(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new Mr(this,e)}createShader(e){return new Er(this,e)}createFramebuffer(e){return new Tt(this,e)}createVertexArray(e){return new re(this,e)}createTransformFeedback(e){return new Vr(this,e)}createQuerySet(e){return new Xr(this,e)}createFence(){return new Wr(this)}createRenderPipeline(e){return new Nr(this,e)}_createSharedRenderPipelineWebGL(e){return new Fr(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}createCommandEncoder(e={}){return new De(this,e)}submit(e){let r=null;e||({submittedCommandEncoder:r,commandBuffer:e}=this._finalizeDefaultCommandEncoderForSubmit());try{e._executeCommands(),r&&r.resolveTimeProfilingQuerySet().then(()=>{this.commandEncoder._gpuTimeMs=r._gpuTimeMs}).catch(()=>{})}finally{e.destroy()}}_finalizeDefaultCommandEncoderForSubmit(){let e=this.commandEncoder,r=e.finish();return this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:e.props.id,timeProfilingQuerySet:e.getTimeProfilingQuerySet()}),{submittedCommandEncoder:e,commandBuffer:r}}readPixelsToArrayWebGL(e,r){return Po(e,r)}readPixelsToBufferWebGL(e,r){return Co(e,r)}setParametersWebGL(e){nt(this.gl,e)}getParametersWebGL(e){return ar(this.gl,e)}withParametersWebGL(e,r){return mt(this.gl,e,r)}resetWebGL(){at.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),ds(this.gl)}_getDeviceSpecificTextureFormatCapabilities(e){return Ps(this.gl,e,this.extensions)}loseDevice(){let e=!1,n=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return n&&(e=!0,n.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){it.get(this.gl).push()}popState(){it.get(this.gl).pop()}getGLKey(e,r){let n=Number(e);for(let i in this.gl)if(this.gl[i]===n)return`GL.${i}`;return r?.emptyIfUnknown?"":String(e)}getGLKeys(e){let r={emptyIfUnknown:!0};return Object.entries(e).reduce((n,[i,s])=>(n[`${i}:${this.getGLKey(i,r)}`]=`${s}:${this.getGLKey(s,r)}`,n),{})}setConstantAttributeWebGL(e,r){let n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);let i=this._constants[e];switch(i&&Qc(i,r)&&at.log.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:jc(this,e,r);break;case Int32Array:$c(this,e,r);break;case Uint32Array:qc(this,e,r);break;default:throw new Error("constant")}}getExtension(e){return st(this.gl,e,this.extensions),this.extensions}_setWebGLDebugMetadata(e,r,n){e.luma=r;let i={props:n.spector,id:n.spector.id};e.__SPECTOR_Metadata=i}}});var Ln=I(()=>{No();mr()});var Va=er((un,Ua)=>{(function(t,e){typeof un=="object"&&typeof Ua<"u"?e(un):typeof define=="function"&&define.amd?define(["exports"],e):e(t.esriLoader=t.esriLoader||{})})(un,function(t){"use strict";var e=typeof window<"u",r={Promise:e?window.Promise:void 0},n="4.25",i="next";function s(m){if(m.toLowerCase()===i)return i;var b=m&&m.match(/^(\d)\.(\d+)/);return b&&{major:parseInt(b[1],10),minor:parseInt(b[2],10)}}function o(m){return m===void 0&&(m=n),"https://js.arcgis.com/".concat(m,"/")}function a(m){m===void 0&&(m=n);var b=o(m),C=s(m);if(C!==i&&C.major===3){var x=C.minor<=10?"js/":"";return"".concat(b).concat(x,"esri/css/esri.css")}else return"".concat(b,"esri/themes/light/main.css")}function c(m){var b=document.createElement("link");return b.rel="stylesheet",b.href=m,b}function l(m,b){if(b){var C=document.querySelector(b);C.parentNode.insertBefore(m,C)}else document.head.appendChild(m)}function h(m){return document.querySelector('link[href*="'.concat(m,'"]'))}function f(m){return!m||s(m)?a(m):m}function d(m,b){var C=f(m),x=h(C);return x||(x=c(C),l(x,b)),x}var p={};function _(m){var b=document.createElement("script");return b.type="text/javascript",b.src=m,b.setAttribute("data-esri-loader","loading"),b}function g(m,b,C){var x;C&&(x=u(m,C));var y=function(){b(m),m.removeEventListener("load",y,!1),x&&m.removeEventListener("error",x,!1)};m.addEventListener("load",y,!1)}function u(m,b){var C=function(x){b(x.error||new Error("There was an error attempting to load ".concat(m.src))),m.removeEventListener("error",C,!1)};return m.addEventListener("error",C,!1),C}function T(m){m===void 0&&(m={}),p=m}function S(){return document.querySelector("script[data-esri-loader]")}function R(){var m=window.require;return m&&m.on}function E(m){m===void 0&&(m={});var b={};[p,m].forEach(function(y){for(var N in y)Object.prototype.hasOwnProperty.call(y,N)&&(b[N]=y[N])});var C=b.version,x=b.url||o(C);return new r.Promise(function(y,N){var w=S();if(w){var O=w.getAttribute("src");O!==x?N(new Error("The ArcGIS API for JavaScript is already loaded (".concat(O,")."))):R()?y(w):g(w,y,N)}else if(R())N(new Error("The ArcGIS API for JavaScript is already loaded."));else{var U=b.css;if(U){var ut=U===!0;d(ut?C:U,b.insertCssBefore)}w=_(x),g(w,function(){w.setAttribute("data-esri-loader","loaded"),y(w)},N),document.body.appendChild(w)}})}function A(m){return new r.Promise(function(b,C){var x=window.require.on("error",C);window.require(m,function(){for(var y=[],N=0;N<arguments.length;N++)y[N]=arguments[N];x.remove(),b(y)})})}function M(m,b){if(b===void 0&&(b={}),R())return A(m);var C=S(),x=C&&C.getAttribute("src");return!b.url&&x&&(b.url=x),E(b).then(function(){return A(m)})}t.utils=r,t.loadModules=M,t.getScript=S,t.isLoaded=R,t.loadScript=E,t.setDefaultOptions=T,t.loadCss=d,Object.defineProperty(t,"__esModule",{value:!0})})});var Qe={};Me(Qe,{loadArcGISModules:()=>Od});var _t={},Yi=F(rr(),1);wt(_t,F(rr(),1));if(!Yi.Layer)throw new Error("@deck.gl/core is not found");wt(Qe,_t);var Ki={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function _n(t){return t.createSubclass({properties:Ki,constructor(){this._callbacks={},this.watch(Object.keys(Ki),(r,n,i)=>{this.emit("change",{[i]:r})})},on(r,n){this._callbacks[r]=this._callbacks[r]||[],this._callbacks[r].push(n)},emit(r,n){let i=this._callbacks[r];if(i)for(let s of i)s(n)},toJSON(){let r={};for(let n of this.keys())this[n]!==void 0&&(r[n]=this[n]);return r}})}function gn(t,e,r){return e.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor(){this.deck=new t},createLayerView(n){return n.type==="2d"?new r({view:n,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var Oo=F(rr(),1),Hr=F(ji(),1);Ln();async function Jc(t){return new Promise(e=>{let r=new Oo.Deck({controller:!1,gl:t,parameters:{depthCompare:"less-equal"},width:null,height:null,onDeviceInitialized:n=>{e({deckInstance:r,device:n})}})})}async function Lr(t){let{deckInstance:e,device:r}=await Jc(t),n=r.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),i=new Hr.Model(r,{vs:`#version 300 es
|
|
7
|
+
"use strict";var __exports__=(()=>{var Ba=Object.create;var Xe=Object.defineProperty;var Fa=Object.getOwnPropertyDescriptor;var Oa=Object.getOwnPropertyNames;var Na=Object.getPrototypeOf,Va=Object.prototype.hasOwnProperty;var P=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var Ze=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},me=(e,t)=>{for(var r in t)Xe(e,r,{get:t[r],enumerable:!0})},qe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Oa(t))!Va.call(e,i)&&i!==r&&Xe(e,i,{get:()=>t[i],enumerable:!(n=Fa(t,i))||n.enumerable});return e},Ct=(e,t,r)=>(qe(e,t,"default"),r&&qe(r,t,"default")),D=(e,t,r)=>(r=e!=null?Ba(Na(e)):{},qe(t||!e||!e.__esModule?Xe(r,"default",{value:e,enumerable:!0}):r,e)),Ga=e=>qe(Xe({},"__esModule",{value:!0}),e);var He=Ze((Cf,Fi)=>{Fi.exports=globalThis.deck});var Gi=Ze((kf,Vi)=>{Vi.exports=globalThis.luma});var I=Ze((Df,zi)=>{zi.exports=globalThis.luma});function $i(e,t){return Wi?Wi.makeDebugContext(e,t):(Wa(),e)}function ji(e){return za?.initialize(e)||null}function Wa(){Ui||(Ui=!0,Yi.log.warn("Import @luma.gl/webgl/debug before enabling WebGL debugging.")())}var Yi,Wi,za,Ui,qi=P(()=>{Yi=D(I(),1),Wi=null,za=null,Ui=!1});function cn(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function F(e,t,r){return t[e]!==void 0?t[e]:r[e]}var ge,N,Xi,X,Zi,pe,Hi,Qi,ln,mt,hn,Ki,un=P(()=>{ge={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},N=(e,t,r)=>t?e.enable(r):e.disable(r),Xi=(e,t,r)=>e.hint(r,t),X=(e,t,r)=>e.pixelStorei(r,t),Zi=(e,t,r)=>{let n=r===36006?36009:36008;return e.bindFramebuffer(n,t)},pe=(e,t,r)=>{let i={34964:34962,36662:36662,36663:36663,35053:35051,35055:35052}[r];e.bindBuffer(i,t)};Hi={3042:N,32773:(e,t)=>e.blendColor(...t),32777:"blendEquation",34877:"blendEquation",32969:"blendFunc",32968:"blendFunc",32971:"blendFunc",32970:"blendFunc",3106:(e,t)=>e.clearColor(...t),3107:(e,t)=>e.colorMask(...t),2884:N,2885:(e,t)=>e.cullFace(t),2929:N,2931:(e,t)=>e.clearDepth(t),2932:(e,t)=>e.depthFunc(t),2928:(e,t)=>e.depthRange(...t),2930:(e,t)=>e.depthMask(t),3024:N,35723:Xi,35725:(e,t)=>e.useProgram(t),36007:(e,t)=>e.bindRenderbuffer(36161,t),36389:(e,t)=>e.bindTransformFeedback?.(36386,t),34229:(e,t)=>e.bindVertexArray(t),36006:Zi,36010:Zi,34964:pe,36662:pe,36663:pe,35053:pe,35055:pe,2886:(e,t)=>e.frontFace(t),33170:Xi,2849:(e,t)=>e.lineWidth(t),32823:N,32824:"polygonOffset",10752:"polygonOffset",35977:N,32926:N,32928:N,32938:"sampleCoverage",32939:"sampleCoverage",3089:N,3088:(e,t)=>e.scissor(...t),2960:N,2961:(e,t)=>e.clearStencil(t),2968:(e,t)=>e.stencilMaskSeparate(1028,t),36005:(e,t)=>e.stencilMaskSeparate(1029,t),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:(e,t)=>e.viewport(...t),34383:N,10754:N,12288:N,12289:N,12290:N,12291:N,12292:N,12293:N,12294:N,12295:N,3333:X,3317:X,37440:X,37441:X,37443:X,3330:X,3332:X,3331:X,3314:X,32878:X,3316:X,3315:X,32877:X,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(t[0],t[1]||!1),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=cn(t)?t:[t,t];let[r,n]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,n)},stencilFunc:(e,t)=>{t=cn(t)&&t.length===3?[...t,...t]:t;let[r,n,i,s,o,a]=t;e.stencilFuncSeparate(1028,r,n,i),e.stencilFuncSeparate(1029,s,o,a)},stencilOp:(e,t)=>{t=cn(t)&&t.length===3?[...t,...t]:t;let[r,n,i,s,o,a]=t;e.stencilOpSeparate(1028,r,n,i),e.stencilOpSeparate(1029,s,o,a)},viewport:(e,t)=>e.viewport(...t)};Qi={blendEquation:(e,t,r)=>e.blendEquationSeparate(F(32777,t,r),F(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(F(32969,t,r),F(32968,t,r),F(32971,t,r),F(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(F(32824,t,r),F(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(F(32938,t,r),F(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,F(2962,t,r),F(2967,t,r),F(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,F(34816,t,r),F(36003,t,r),F(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,F(2964,t,r),F(2965,t,r),F(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,F(34817,t,r),F(34818,t,r),F(34819,t,r))},ln={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({35725:t}),bindRenderbuffer:(e,t,r)=>e({36007:r}),bindTransformFeedback:(e,t,r)=>e({36389:r}),bindVertexArray:(e,t)=>e({34229:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({36006:r,36010:r});case 36009:return e({36006:r});case 36008:return e({36010:r});default:return null}},bindBuffer:(e,t,r)=>{let n={34962:[34964],36662:[36662],36663:[36663],35051:[35053],35052:[35055]}[t];return n?e({[n]:r}):{valueChanged:!0}},blendColor:(e,t,r,n,i)=>e({32773:new Float32Array([t,r,n,i])}),blendEquation:(e,t)=>e({32777:t,34877:t}),blendEquationSeparate:(e,t,r)=>e({32777:t,34877:r}),blendFunc:(e,t,r)=>e({32969:t,32968:r,32971:t,32970:r}),blendFuncSeparate:(e,t,r,n,i)=>e({32969:t,32968:r,32971:n,32970:i}),clearColor:(e,t,r,n,i)=>e({3106:new Float32Array([t,r,n,i])}),clearDepth:(e,t)=>e({2931:t}),clearStencil:(e,t)=>e({2961:t}),colorMask:(e,t,r,n,i)=>e({3107:[t,r,n,i]}),cullFace:(e,t)=>e({2885:t}),depthFunc:(e,t)=>e({2932:t}),depthRange:(e,t,r)=>e({2928:new Float32Array([t,r])}),depthMask:(e,t)=>e({2930:t}),frontFace:(e,t)=>e({2886:t}),lineWidth:(e,t)=>e({2849:t}),polygonOffset:(e,t,r)=>e({32824:t,10752:r}),sampleCoverage:(e,t,r)=>e({32938:t,32939:r}),scissor:(e,t,r,n,i)=>e({3088:new Int32Array([t,r,n,i])}),stencilMask:(e,t)=>e({2968:t,36005:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,n)=>e({2962:t,2967:r,2963:n,34816:t,36003:r,36004:n}),stencilFuncSeparate:(e,t,r,n,i)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:n,[t===1028?2963:36004]:i}),stencilOp:(e,t,r,n)=>e({2964:t,2965:r,2966:n,34817:t,34818:r,34819:n}),stencilOpSeparate:(e,t,r,n,i)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:n,[t===1028?2966:34819]:i}),viewport:(e,t,r,n,i)=>e({2978:[t,r,n,i]})},mt=(e,t)=>e.isEnabled(t),hn={3042:mt,2884:mt,2929:mt,3024:mt,32823:mt,32926:mt,32928:mt,3089:mt,2960:mt,35977:mt},Ki=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 et(e,t){if(Ua(t))return;let r={};for(let i in t){let s=Number(i),o=Hi[i];o&&(typeof o=="string"?r[o]=!0:o(e,t[i],s))}let n=e.lumaState?.cache;if(n)for(let i in r){let s=Qi[i];s(e,t,n)}}function Qe(e,t=ge){if(typeof t=="number"){let i=t,s=hn[i];return s?s(e,i):e.getParameter(i)}let r=Array.isArray(t)?t:Object.keys(t),n={};for(let i of r){let s=hn[i];n[i]=s?s(e,Number(i)):e.getParameter(Number(i))}return n}function Ji(e){et(e,ge)}function Ua(e){for(let t in e)return!1;return!0}var Yt=P(()=>{un()});function es(e,t){if(e===t)return!0;if(ts(e)&&ts(t)&&e.length===t.length){for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}return!1}function ts(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var rs=P(()=>{});function ns(e,t){let r=e[t].bind(e);e[t]=function(i){if(i===void 0||Ki.has(i))return r(i);let s=rt.get(e);return i in s.cache||(s.cache[i]=r(i)),s.enable?s.cache[i]:r(i)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Ya(e,t,r){if(!e[t])return;let n=e[t].bind(e);e[t]=function(...s){let o=rt.get(e),{valueChanged:a,oldValue:c}=r(o._updateCache,...s);return a&&n(...s),c},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function $a(e){let t=e.useProgram.bind(e);e.useProgram=function(n){let i=rt.get(e);i.program!==n&&(t(n),i.program=n)}}var rt,fn=P(()=>{Yt();rs();un();rt=class{static get(t){return t.lumaState}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(t,r){this.gl=t,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(t={}){this.stateStack.push({})}pop(){let t=this.stateStack[this.stateStack.length-1];et(this.gl,t),this.stateStack.pop()}trackState(t,r){if(this.cache=r?.copyState?Qe(t):Object.assign({},ge),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.lumaState=this,$a(t);for(let n in ln){let i=ln[n];Ya(t,n,i)}ns(t,"getParameter"),ns(t,"isEnabled")}_updateCache(t){let r=!1,n,i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let s in t){let o=t[s],a=this.cache[s];es(o,a)||(r=!0,n=a,i&&!(s in i)&&(i[s]=a),this.cache[s]=o)}return{valueChanged:r,oldValue:n}}}});function be(e){let t=e.luma||{_polyfilled:!1,extensions:{},softwareRenderer:!1};return t._polyfilled??=!1,t.extensions||={},e.luma=t,t}var dn=P(()=>{});function is(e,t,r){let n="",i=c=>{let l=c.statusMessage;l&&(n||=l)};e.addEventListener("webglcontextcreationerror",i,!1);let s=r.failIfMajorPerformanceCaveat!==!0,o={preserveDrawingBuffer:!0,...r,failIfMajorPerformanceCaveat:!0},a=null;try{a||=e.getContext("webgl2",o),!a&&o.failIfMajorPerformanceCaveat&&(n||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow.");let c=!1;if(!a&&s&&(o.failIfMajorPerformanceCaveat=!1,a=e.getContext("webgl2",o),c=!0),a||(a=e.getContext("webgl",{}),a&&(a=null,n||="Your browser only supports WebGL1")),!a)throw n||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${n}`);let l=be(a);l.softwareRenderer=c;let{onContextLost:h,onContextRestored:u}=t;return e.addEventListener("webglcontextlost",f=>h(f),!1),e.addEventListener("webglcontextrestored",f=>u(f),!1),a}finally{e.removeEventListener("webglcontextcreationerror",i,!1)}}var ss=P(()=>{dn()});function nt(e,t,r){return r[t]===void 0&&(r[t]=e.getExtension(t)||null),r[t]}var xe=P(()=>{});function os(e,t){let r=e.getParameter(7936),n=e.getParameter(7937);nt(e,"WEBGL_debug_renderer_info",t);let i=t.WEBGL_debug_renderer_info,s=e.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=e.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),a=s||r,c=o||n,l=e.getParameter(7938),h=as(a,c),u=ja(a,c),f=qa(a,c);return{type:"webgl",gpu:h,gpuType:f,gpuBackend:u,vendor:a,renderer:c,version:l,shadingLanguage:"glsl",shadingLanguageVersion:300}}function as(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function ja(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function qa(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(as(e,t)){case"apple":return Xa(e,t)?"integrated":"unknown";case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function Xa(e,t){return/Apple (M\d|A\d|GPU)/i.test(`${e} ${t}`)}var cs=P(()=>{xe()});function Ke(e){switch(e){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(e))}var mn=P(()=>{});function us(e){return e in tr}function wn(e,t,r){return fs(e,t,r,new Set)}function fs(e,t,r,n){let i=tr[t];if(!i||n.has(t))return!1;n.add(t);let s=(i.features||[]).every(o=>fs(e,o,r,n));return n.delete(t),s?(i.extensions||[]).every(o=>!!nt(e,o,r)):!1}function ds(e,t,r){let n=t.create,i=er[t.format];i?.gl===void 0&&(n=!1),i?.x&&(n=n&&!!nt(e,i.x,r)),t.format==="stencil8"&&(n=!1);let s=i?.r===!1?!1:i?.r===void 0||wn(e,i.r,r),o=n&&t.render&&s&&rc(e,t.format,r);return{format:t.format,create:n&&t.create,render:o,filter:n&&t.filter,blend:n&&t.blend,store:n&&t.store}}function rc(e,t,r){let n=er[t],i=n?.gl;if(i===void 0||n?.x&&!nt(e,n.x,r))return!1;let s=e.getParameter(32873),o=e.getParameter(36006),a=e.createTexture(),c=e.createFramebuffer();if(!a||!c)return!1;let l=0,h=Number(e.getError());for(;h!==l;)h=e.getError();let u=!1;try{if(e.bindTexture(3553,a),e.texStorage2D(3553,1,i,1,1),Number(e.getError())!==l)return!1;e.bindFramebuffer(36160,c),e.framebufferTexture2D(36160,36064,3553,a,0),u=Number(e.checkFramebufferStatus(36160))===36053&&Number(e.getError())===l}finally{e.bindFramebuffer(36160,o),e.deleteFramebuffer(c),e.bindTexture(3553,s),e.deleteTexture(a)}return u}function rr(e){let t=er[e],r=ic(e),n=yn.textureFormatDecoder.getInfo(e);return n.compressed&&(t.dataFormat=r),{internalFormat:r,format:t?.dataFormat||nc(n.channels,n.integer,n.normalized,r),type:n.dataType?Ke(n.dataType):t?.types?.[0]||5121,compressed:n.compressed||!1}}function ms(e){switch(yn.textureFormatDecoder.getInfo(e).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${e}`)}}function nc(e,t,r,n){if(n===6408||n===6407)return n;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function ic(e){let r=er[e]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${e}`);return r}var yn,ye,we,$t,jt,Za,Ha,Qa,Ka,Ja,tc,ls,hs,pn,gn,bn,xn,Je,ec,tr,er,qt=P(()=>{yn=D(I(),1);xe();mn();ye="WEBGL_compressed_texture_s3tc",we="WEBGL_compressed_texture_s3tc_srgb",$t="EXT_texture_compression_rgtc",jt="EXT_texture_compression_bptc",Za="WEBGL_compressed_texture_etc",Ha="WEBGL_compressed_texture_astc",Qa="WEBGL_compressed_texture_etc1",Ka="WEBGL_compressed_texture_pvrtc",Ja="WEBGL_compressed_texture_atc",tc="EXT_texture_norm16",ls="EXT_render_snorm",hs="EXT_color_buffer_float",pn="snorm8-renderable-webgl",gn="norm16-renderable-webgl",bn="snorm16-renderable-webgl",xn="float16-renderable-webgl",Je="float32-renderable-webgl",ec="rgb9e5ufloat-renderable-webgl",tr={"float32-renderable-webgl":{extensions:[hs]},"float16-renderable-webgl":{extensions:["EXT_color_buffer_half_float"]},"rgb9e5ufloat-renderable-webgl":{extensions:["WEBGL_render_shared_exponent"]},"snorm8-renderable-webgl":{extensions:[ls]},"norm16-webgl":{extensions:[tc]},"norm16-renderable-webgl":{features:["norm16-webgl"]},"snorm16-renderable-webgl":{features:["norm16-webgl"],extensions:[ls]},"float32-filterable":{extensions:["OES_texture_float_linear"]},"float16-filterable-webgl":{extensions:["OES_texture_half_float_linear"]},"texture-filterable-anisotropic-webgl":{extensions:["EXT_texture_filter_anisotropic"]},"texture-blend-float-webgl":{extensions:["EXT_float_blend"]},"texture-compression-bc":{extensions:[ye,we,$t,jt]},"texture-compression-bc5-webgl":{extensions:[$t]},"texture-compression-bc7-webgl":{extensions:[jt]},"texture-compression-etc2":{extensions:[Za]},"texture-compression-astc":{extensions:[Ha]},"texture-compression-etc1-webgl":{extensions:[Qa]},"texture-compression-pvrtc-webgl":{extensions:[Ka]},"texture-compression-atc-webgl":{extensions:[Ja]}};er={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756,r:pn},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757,r:pn},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0,r:xn},r16unorm:{gl:33322,rb:!0,r:gn},r16snorm:{gl:36760,r:bn},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759,r:pn},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0,r:xn},rg16unorm:{gl:33324,r:gn},rg16snorm:{gl:36761,r:bn},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326,r:Je},rgb9e5ufloat:{gl:35901,r:ec},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852,r:!1},"rgb16snorm-webgl":{gl:36762,r:!1},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0,r:Je},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842,r:xn},rgba16unorm:{gl:32859,rb:!0,r:gn},rgba16snorm:{gl:36763,r:bn},"rgb32float-webgl":{gl:34837,x:hs,r:Je,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0,r:Je},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:ye},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:we},"bc1-rgba-unorm":{gl:33777,x:ye},"bc1-rgba-unorm-srgb":{gl:35916,x:we},"bc2-rgba-unorm":{gl:33778,x:ye},"bc2-rgba-unorm-srgb":{gl:35918,x:we},"bc3-rgba-unorm":{gl:33779,x:ye},"bc3-rgba-unorm-srgb":{gl:35919,x:we},"bc4-r-unorm":{gl:36283,x:$t},"bc4-r-snorm":{gl:36284,x:$t},"bc5-rg-unorm":{gl:36285,x:$t},"bc5-rg-snorm":{gl:36286,x:$t},"bc6h-rgb-ufloat":{gl:36495,x:jt},"bc6h-rgb-float":{gl:36494,x:jt},"bc7-rgba-unorm":{gl:36492,x:jt},"bc7-rgba-unorm-srgb":{gl:36493,x:jt},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37816},"astc-10x5-unorm-srgb":{gl:37848},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rgb2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}}});var ir,ps,nr,gs=P(()=>{ir=D(I(),1);xe();qt();ps={"depth-clip-control":"EXT_depth_clamp","timestamp-query":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","html-in-canvas":e=>(0,ir.isHTMLInCanvasSupported)()&&typeof e.texElementImage2D=="function","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"},nr=class extends ir.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(t,r,n){super([],n),this.gl=t,this.extensions=r,nt(t,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let t=this.getFeatures();for(let r of t)this.has(r)&&(yield r);return[]}has(t){return this.disabledFeatures?.[t]?!1:(this.testedFeatures.has(t)||(this.testedFeatures.add(t),us(t)&&wn(this.gl,t,this.extensions)&&this.features.add(t),this.getWebGLFeature(t)&&this.features.add(t)),this.features.has(t))}initializeFeatures(){let t=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of t)this.has(r)}getFeatures(){return[...Object.keys(ps),...Object.keys(tr)]}getWebGLFeature(t){let r=ps[t];return typeof r=="string"?!!nt(this.gl,r,this.extensions):typeof r=="function"?r(this.gl):!!r}}});var bs,sr,xs=P(()=>{bs=D(I(),1),sr=class extends bs.DeviceLimits{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 maxBindGroupsPlusVertexBuffers(){return 0}get maxBindingsPerBindGroup(){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 maxStorageBuffersInVertexStage(){return 0}get maxStorageBuffersInFragmentStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxStorageTexturesInVertexStage(){return 0}get maxStorageTexturesInFragmentStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get maxBufferSize(){return Number.MAX_SAFE_INTEGER}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 maxInterStageShaderVariables(){return this.getParameter(35659)}get maxColorAttachments(){return this.getParameter(36063)}get maxColorAttachmentBytesPerSample(){return 0}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(t){super(),this.gl=t}getParameter(t){return this.limits[t]===void 0&&(this.limits[t]=this.gl.getParameter(t)),this.limits[t]||0}}});function sc(e){return e<34069?e+34069:e}function oc(e){switch(e){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`${e}`}}var ys,pt,or=P(()=>{ys=D(I(),1);qt();pt=class extends ys.Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(t,r){super(t,r);let n=r.handle,i=n===null;this.device=t,this.gl=t.gl,this.handle=n||i?n:this.gl.createFramebuffer(),i||(t._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),r.handle||(this.autoCreateAttachmentTextures(),this.updateAttachments()))}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&!this.props.handle&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let t=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let n=this.colorAttachments[r];if(n){let i=36064+r;this._attachTextureView(i,n)}}if(this.depthStencilAttachment){let r=ms(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${oc(r)}`)}this.gl.bindFramebuffer(36160,t)}_attachTextureView(t,r){let{gl:n}=this.device,{texture:i}=r,s=r.props.baseMipLevel,o=r.props.baseArrayLayer;switch(n.bindTexture(i.glTarget,i.handle),i.glTarget){case 35866:case 32879:n.framebufferTextureLayer(36160,t,i.handle,s,o);break;case 34067:let a=sc(o);n.framebufferTexture2D(36160,t,a,i.handle,s);break;case 3553:n.framebufferTexture2D(36160,t,3553,i.handle,s);break;default:throw new Error("Illegal texture type")}n.bindTexture(i.glTarget,null)}resizeAttachments(t,r){if(this.handle===null){this.width=t,this.height=r;return}super.resizeAttachments(t,r)}}});var ws,ar,Es=P(()=>{ws=D(I(),1);or();ar=class extends ws.CanvasContext{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(t,r){super(r),this.device=t,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._configureDevice()}_configureDevice(){(this.drawingBufferWidth!==this._framebuffer?.width||this.drawingBufferHeight!==this._framebuffer?.height)&&this._framebuffer?.resize([this.drawingBufferWidth,this.drawingBufferHeight])}_getCurrentFramebuffer(){return this._framebuffer||=new pt(this.device,{id:"canvas-context-framebuffer",handle:null,width:this.drawingBufferWidth,height:this.drawingBufferHeight}),this._framebuffer}}});var Ts,cr,_s=P(()=>{Ts=D(I(),1),cr=class extends Ts.PresentationContext{device;handle=null;context2d;get[Symbol.toStringTag](){return"WebGLPresentationContext"}constructor(t,r={}){super(r),this.device=t;let n=`${this[Symbol.toStringTag]}(${this.id})`;if(!this.device.getDefaultCanvasContext().offscreenCanvas)throw new Error(`${n}: WebGL PresentationContext requires the default CanvasContext canvas to be an OffscreenCanvas`);let s=this.canvas.getContext("2d");if(!s)throw new Error(`${n}: Failed to create 2d presentation context`);this.context2d=s,this._setAutoCreatedCanvasId(`${this.device.id}-presentation-canvas`),this._configureDevice(),this._startObservers()}present(){this._resizeDrawingBufferIfNeeded(),this.device.submit();let t=this.device.getDefaultCanvasContext(),[r,n]=t.getDrawingBufferSize();if(!(this.drawingBufferWidth===0||this.drawingBufferHeight===0||r===0||n===0||t.canvas.width===0||t.canvas.height===0)){if(r!==this.drawingBufferWidth||n!==this.drawingBufferHeight||t.canvas.width!==this.drawingBufferWidth||t.canvas.height!==this.drawingBufferHeight)throw new Error(`${this[Symbol.toStringTag]}(${this.id}): Default canvas context size ${r}x${n} does not match presentation size ${this.drawingBufferWidth}x${this.drawingBufferHeight}`);this.context2d.clearRect(0,0,this.drawingBufferWidth,this.drawingBufferHeight),this.context2d.drawImage(t.canvas,0,0)}}_configureDevice(){}_getCurrentFramebuffer(t){let r=this.device.getDefaultCanvasContext();return r.setDrawingBufferSize(this.drawingBufferWidth,this.drawingBufferHeight),r.getCurrentFramebuffer(t)}}});function vs(e="id"){En[e]=En[e]||1;let t=En[e]++;return`${e}-${t}`}var En,Ss=P(()=>{En={}});function ac(e){return e&Lt.Buffer.INDEX?34963:e&Lt.Buffer.VERTEX?34962:e&Lt.Buffer.UNIFORM?35345:34962}function cc(e){return e&Lt.Buffer.INDEX||e&Lt.Buffer.VERTEX?35044:e&Lt.Buffer.UNIFORM?35048:35044}var Lt,it,lr=P(()=>{Lt=D(I(),1),it=class extends Lt.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(t,r={}){super(t,r),this.device=t,this.gl=this.device.gl;let n=typeof r=="object"?r.handle:void 0;this.handle=n||this.gl.createBuffer(),t._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=ac(this.props.usage),this.glUsage=cc(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)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Buffer"):(this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle)),this.destroyed=!0,this.handle=null)}_initWithData(t,r=0,n=t.byteLength+r){let i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bufferSubData(i,r,t),this.gl.bindBuffer(i,null),this.bytesUsed=n,this.byteLength=n,this._setDebugData(t,r,n),this.props.handle?this.trackReferencedMemory(n,"Buffer"):this.trackAllocatedMemory(n)}_initWithByteLength(t){let r=t;t===0&&(r=new Float32Array(0));let n=this.glTarget;return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.props.handle?this.trackReferencedMemory(t,"Buffer"):this.trackAllocatedMemory(t),this}write(t,r=0){let n=ArrayBuffer.isView(t)?t:new Uint8Array(t),i=0,s=void 0,o=36663;this.gl.bindBuffer(o,this.handle),i!==0||s!==void 0?this.gl.bufferSubData(o,r,n,i,s):this.gl.bufferSubData(o,r,n),this.gl.bindBuffer(o,null),this._setDebugData(t,r,t.byteLength)}async mapAndWriteAsync(t,r=0,n=this.byteLength-r){let i=new ArrayBuffer(n);await t(i,"copied"),this.write(i,r)}async readAsync(t=0,r){return this.readSyncWebGL(t,r)}async mapAndReadAsync(t,r=0,n){let i=await this.readAsync(r,n);return await t(i.buffer,"copied")}readSyncWebGL(t=0,r){r=r??this.byteLength-t;let n=new Uint8Array(r),i=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,t,n,i,r),this.gl.bindBuffer(36662,null),this._setDebugData(n,t,r),n}}});function Ms(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(n.length<=1)continue;let i=n.trim(),s=n.split(":"),o=s[0]?.trim();if(s.length===2){let[d,p]=s;if(!d||!p){r.push({message:i,type:hr(o||"info"),lineNum:0,linePos:0});continue}r.push({message:p.trim(),type:hr(d),lineNum:0,linePos:0});continue}let[a,c,l,...h]=s;if(!a||!c||!l){r.push({message:s.slice(1).join(":").trim()||i,type:hr(o||"info"),lineNum:0,linePos:0});continue}let u=parseInt(l,10);Number.isNaN(u)&&(u=0);let f=parseInt(c,10);Number.isNaN(f)&&(f=0),r.push({message:h.join(":").trim(),type:hr(a),lineNum:u,linePos:f})}return r}function hr(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var Ps=P(()=>{});function lc(e){return e.split(/\r?\n/).find(t=>t.trim())?.trim()}var Ee,ur,Cs=P(()=>{Ee=D(I(),1);Ps();ur=class extends Ee.Shader{device;handle;_compilationInfoLog="";constructor(t,r){super(t,r),this.device=t;let n=this.props.handle;switch(this.props.stage){case"vertex":this.handle=n||this.device.gl.createShader(35633);break;case"fragment":this.handle=n||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}t._setWebGLDebugMetadata(this.handle,this,{spector:this.props});let i=this._compile(this.source);i&&typeof i.catch=="function"&&i.catch(()=>{this.compilationStatus="error"})}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this._getCompilationInfoLog();return t?Ms(t):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}_compile(t){t=t.startsWith("#version ")?t:`#version 300 es
|
|
8
|
+
${t}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,t),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(this._getCompilationErrorMessage(t));return}return Ee.log.once(1,"Shader compilation is asynchronous")(),this._waitForCompilationComplete().then(()=>{Ee.log.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()})}async _waitForCompilationComplete(){let t=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:n}=this.device;for(;;){if(n.getShaderParameter(this.handle,37297))return;await t(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error",this.compilationStatus==="error"&&this._getCompilationInfoLog()}_getCompilationErrorMessage(t){let r=`${this.props.stage} shader ${this.props.id}`,n=lc(this._getCompilationInfoLog()),i=this.getCompilationInfoSync(),s=i.find(h=>h.type==="error"&&h.message.trim())||i.find(h=>h.message.trim())||i.find(h=>h.type==="error")||i[0];if(!s)return n?`GLSL compilation errors in ${r}: ${n}`:`GLSL compilation errors in ${r}: WebGL did not provide a shader compiler log`;let o=s.lineNum?t.split(/\r?\n/)[s.lineNum-1]?.trim():void 0,a=s.lineNum?` line ${s.lineNum}`:"",c=o?`
|
|
9
|
+
Source: ${o}`:"",l=s.message.trim()||n||"WebGL did not provide a shader compiler log";return`GLSL compilation errors in ${r}:${a}: ${l}${c}`}_getCompilationInfoLog(){let t=this.device.gl.getShaderInfoLog(this.handle)?.trim();return t&&(this._compilationInfoLog=t),this._compilationInfoLog}}});function Rs(e,t,r,n){if(dc(t))return n(e);let i=e;i.pushState();try{return hc(e,t),et(i.gl,r),n(e)}finally{i.popState()}}function hc(e,t){let r=e,{gl:n}=r;if(t.cullMode)switch(t.cullMode){case"none":n.disable(2884);break;case"front":n.enable(2884),n.cullFace(1028);break;case"back":n.enable(2884),n.cullFace(1029);break}if(t.frontFace&&n.frontFace(Dt("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&n.enable(34383),t.depthBias!==void 0&&(n.enable(32823),n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0)),t.provokingVertex&&e.features.has("provoking-vertex-webgl")){let s=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,o=Dt("provokingVertex",t.provokingVertex,{first:36429,last:36430});s?.provokingVertexWEBGL(o)}if((t.polygonMode||t.polygonOffsetLine)&&e.features.has("polygon-mode-webgl")){if(t.polygonMode){let s=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,o=Dt("polygonMode",t.polygonMode,{fill:6914,line:6913});s?.polygonModeWEBGL(1028,o),s?.polygonModeWEBGL(1029,o)}t.polygonOffsetLine&&n.enable(10754)}if(e.features.has("shader-clip-cull-distance-webgl")&&(t.clipDistance0&&n.enable(12288),t.clipDistance1&&n.enable(12289),t.clipDistance2&&n.enable(12290),t.clipDistance3&&n.enable(12291),t.clipDistance4&&n.enable(12292),t.clipDistance5&&n.enable(12293),t.clipDistance6&&n.enable(12294),t.clipDistance7&&n.enable(12295)),t.depthWriteEnabled!==void 0&&n.depthMask(fc("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(2929):n.disable(2929),n.depthFunc(dr("depthCompare",t.depthCompare))),t.clearDepth!==void 0&&n.clearDepth(t.clearDepth),t.stencilWriteMask){let i=t.stencilWriteMask;n.stencilMaskSeparate(1028,i),n.stencilMaskSeparate(1029,i)}if(t.stencilReadMask&&As.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let i=t.stencilReadMask||4294967295,s=dr("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(2960):n.disable(2960),n.stencilFuncSeparate(1028,s,0,i),n.stencilFuncSeparate(1029,s,0,i)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let i=Tn("stencilPassOperation",t.stencilPassOperation),s=Tn("stencilFailOperation",t.stencilFailOperation),o=Tn("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(1028,s,o,i),n.stencilOpSeparate(1029,s,o,i)}switch(t.blend){case!0:n.enable(3042);break;case!1:n.disable(3042);break;default:}if(t.blendColorOperation||t.blendAlphaOperation){let i=Ls("blendColorOperation",t.blendColorOperation||"add"),s=Ls("blendAlphaOperation",t.blendAlphaOperation||"add");n.blendEquationSeparate(i,s);let o=fr("blendColorSrcFactor",t.blendColorSrcFactor||"one"),a=fr("blendColorDstFactor",t.blendColorDstFactor||"zero"),c=fr("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),l=fr("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");n.blendFuncSeparate(o,a,c,l)}}function dr(e,t){return Dt(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Tn(e,t){return Dt(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function Ls(e,t){return Dt(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function fr(e,t,r="color"){return Dt(e,t,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function uc(e,t){return`Illegal parameter ${t} for ${e}`}function Dt(e,t,r){if(!(t in r))throw new Error(uc(e,t));return r[t]}function fc(e,t){return t}function dc(e){let t=!0;for(let r in e){t=!1;break}return t}var As,_n=P(()=>{As=D(I(),1);Yt()});function mr(e){let t={};return e.addressModeU&&(t[10242]=vn(e.addressModeU)),e.addressModeV&&(t[10243]=vn(e.addressModeV)),e.addressModeW&&(t[32882]=vn(e.addressModeW)),e.magFilter&&(t[10240]=Sn(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=mc(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=dr("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function vn(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function Sn(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function mc(e,t="none"){if(!t)return Sn(e);switch(t){case"none":return Sn(e);case"nearest":switch(e){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(e){case"nearest":return 9986;case"linear":return 9987}}}var Mn=P(()=>{_n()});var ks,pr,Ds=P(()=>{ks=D(I(),1);Mn();pr=class extends ks.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=mr(r),this.handle=r.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(t){for(let[r,n]of Object.entries(t)){let i=Number(r);switch(i){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,i,n);break;default:this.device.gl.samplerParameteri(this.handle,i,n);break}}}}});function st(e,t,r){if(pc(t))return r(e);let{nocatch:n=!0}=t,i=rt.get(e);i.push(),et(e,t);let s;if(n)s=r(e),i.pop();else try{s=r(e)}finally{i.pop()}return s}function pc(e){for(let t in e)return!1;return!0}var gr=P(()=>{Yt();fn()});var br,gt,Pn=P(()=>{br=D(I(),1),gt=class extends br.TextureView{device;gl;handle;texture;constructor(t,r){super(t,{...br.Texture.defaultProps,...r}),this.device=t,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function xr(e){return gc[e]}var gc,Cn=P(()=>{gc={5124:"sint32",5125:"uint32",5122:"sint16",5123:"uint16",5120:"sint8",5121:"uint8",5126:"float32",5131:"float16",33635:"uint16",32819:"uint16",32820:"uint16",33640:"uint32",35899:"uint32",35902:"uint32",34042:"uint32",36269:"uint32"}});function bc(e,t=0){return t?new e.constructor(e.buffer,e.byteOffset+t,(e.byteLength-t)/e.BYTES_PER_ELEMENT):e}function xc(e,t){if(t%e.BYTES_PER_ELEMENT!==0)throw new Error(`Texture byteOffset ${t} must align to typed array element size ${e.BYTES_PER_ELEMENT}`);return t/e.BYTES_PER_ELEMENT}function yc(e){switch(e){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(e)}function Te(e,t,r){return t==="cube"?34069+r:e}var At,bt,yr=P(()=>{At=D(I(),1);qt();Mn();gr();Pn();Cn();bt=class extends At.Texture{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;_framebuffer=null;_framebufferAttachmentKey=null;constructor(t,r){super(t,r,{byteAlignment:1}),this.device=t,this.gl=this.device.gl;let n=rr(this.props.format);if(this.glTarget=yc(this.props.dimension),this.glInternalFormat=n.internalFormat,this.glFormat=n.format,this.glType=n.type,this.compressed=n.compressed,this.isHandleBorrowed&&this.props.handle===void 0)throw new Error("Borrowed WebGL textures require a texture handle");if(this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),!this.isHandleBorrowed){this.gl.bindTexture(this.glTarget,this.handle);let{dimension:i,width:s,height:o,depth:a,mipLevels:c,glTarget:l,glInternalFormat:h}=this;if(!this.compressed)switch(i){case"2d":case"cube":this.gl.texStorage2D(l,c,h,s,o);break;case"2d-array":case"3d":this.gl.texStorage3D(l,c,h,s,o,a);break;default:throw new Error(i)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data)}this.ownsHandle?this.trackAllocatedMemory(this.getAllocatedByteLength(),"Texture"):this.trackReferencedMemory(this.getAllocatedByteLength(),"Texture"),this.isHandleBorrowed||this.setSampler(this.props.sampler),this.view=new gt(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this._framebuffer?.destroy(),this._framebuffer=null,this._framebufferAttachmentKey=null,this.removeStats(),this.ownsHandle?(this.gl.deleteTexture(this.handle),this.trackDeallocatedMemory("Texture")):this.trackDeallocatedReferencedMemory("Texture"),this.destroyed=!0)}createView(t){return new gt(this.device,{...t,texture:this})}clone(t){if(this.isHandleBorrowed&&t&&(t.width!==this.width||t.height!==this.height))throw new Error(`Cannot resize borrowed read-only ${this}`);return super.clone(t)}setSampler(t={}){this._assertWritable("set sampler parameters on"),super.setSampler(t);let r=mr(this.sampler.props);this._setSamplerParameters(r)}copyExternalImage(t){this._assertWritable("copy external image data into");let r=this._normalizeCopyExternalImageOptions(t);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:n,glType:i}=this,{image:s,depth:o,mipLevel:a,x:c,y:l,z:h,width:u,height:f}=r,d=Te(this.glTarget,this.dimension,h),p=r.flipY?{37440:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),st(this.gl,p,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(d,a,c,l,u,f,n,i,s);break;case"2d-array":case"3d":this.gl.texSubImage3D(d,a,c,l,h,u,f,o,n,i,s);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyElementImage(t){this._assertWritable("copy element image data into");let r=this._normalizeCopyElementImageOptions(t),{glFormat:n}=this,{element:i,depth:s,mipLevel:o,sourceX:a,sourceY:c,sourceWidth:l,sourceHeight:h,x:u,y:f,z:d,width:p,height:g}=r,m=Te(this.glTarget,this.dimension,d),b=r.flipY?{37440:!0}:{},_=this.gl;if(s!==1||this.dimension!=="2d"&&this.dimension!=="cube")throw new Error(`${this} copyElementImage only supports 2d and cube textures on WebGL`);if(o!==0||u!==0||f!==0)throw new Error(`${this} copyElementImage only supports full base-level uploads on WebGL`);if(typeof _.texElementImage2D!="function")throw new Error(`${this} copyElementImage is not supported by this WebGL implementation`);return this.gl.bindTexture(this.glTarget,this.handle),st(this.gl,b,()=>{_.texElementImage2D?.(m,n,i,{sx:a,sy:c,swidth:l??p,sheight:h??g,width:p,height:g})}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyImageData(t){super.copyImageData(t)}readBuffer(t={},r){if(!r)throw new Error(`${this} readBuffer requires a destination buffer`);let n=this._getSupportedColorReadOptions(t),i=t.byteOffset??0,s=this.computeMemoryLayout(n);if(r.byteLength<i+s.byteLength)throw new Error(`${this} readBuffer target is too small (${r.byteLength} < ${i+s.byteLength})`);let o=r;this.gl.bindBuffer(35051,o.handle);try{this._readColorTextureLayers(n,s,a=>{this.gl.readPixels(n.x,n.y,n.width,n.height,this.glFormat,this.glType,i+a)})}finally{this.gl.bindBuffer(35051,null)}return r}async readDataAsync(t={}){throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`)}writeBuffer(t,r={}){this._assertWritable("write buffer data into");let n=this._normalizeTextureWriteOptions(r),{width:i,height:s,depthOrArrayLayers:o,mipLevel:a,byteOffset:c,x:l,y:h,z:u}=n,{glFormat:f,glType:d,compressed:p}=this,g=Te(this.glTarget,this.dimension,u);if(p)throw new Error("writeBuffer for compressed textures is not implemented in WebGL");let{bytesPerPixel:m}=this.device.getTextureFormatInfo(this.format),b=m?n.bytesPerRow/m:void 0,_={3317:this.byteAlignment,...b!==void 0?{3314:b}:{},32878:n.rowsPerImage};this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,t.handle),st(this.gl,_,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(g,a,l,h,i,s,f,d,c);break;case"2d-array":case"3d":this.gl.texSubImage3D(g,a,l,h,u,i,s,o,f,d,c);break;default:}}),this.gl.bindBuffer(35052,null),this.gl.bindTexture(this.glTarget,null)}writeData(t,r={}){this._assertWritable("write data into");let n=this._normalizeTextureWriteOptions(r),i=ArrayBuffer.isView(t)?t:new Uint8Array(t),{width:s,height:o,depthOrArrayLayers:a,mipLevel:c,x:l,y:h,z:u,byteOffset:f}=n,{glFormat:d,glType:p,compressed:g}=this,m=Te(this.glTarget,this.dimension,u),b;if(!g){let{bytesPerPixel:x}=this.device.getTextureFormatInfo(this.format);x&&(b=n.bytesPerRow/x)}let _=this.compressed?{}:{3317:this.byteAlignment,...b!==void 0?{3314:b}:{},32878:n.rowsPerImage},y=xc(i,f),E=g?bc(i,f):i,v=this._getMipLevelSize(c),w=l===0&&h===0&&u===0&&s===v.width&&o===v.height&&a===v.depthOrArrayLayers;this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,null),st(this.gl,_,()=>{switch(this.dimension){case"2d":case"cube":g?w?this.gl.compressedTexImage2D(m,c,d,s,o,0,E):this.gl.compressedTexSubImage2D(m,c,l,h,s,o,d,E):this.gl.texSubImage2D(m,c,l,h,s,o,d,p,i,y);break;case"2d-array":case"3d":g?w?this.gl.compressedTexImage3D(m,c,d,s,o,a,0,E):this.gl.compressedTexSubImage3D(m,c,l,h,u,s,o,a,d,E):this.gl.texSubImage3D(m,c,l,h,u,s,o,a,d,p,i,y);break;default:}}),this.gl.bindTexture(this.glTarget,null)}_getRowByteAlignment(t,r){return 1}_getFramebuffer(){return this._framebuffer||=this.device.createFramebuffer({id:`framebuffer-for-${this.id}`,width:this.width,height:this.height,colorAttachments:[this]}),this._framebuffer}readDataSyncWebGL(t={}){let r=this._getSupportedColorReadOptions(t),n=this.computeMemoryLayout(r),i=xr(this.glType),s=(0,At.getTypedArrayConstructor)(i),o=new s(n.byteLength/s.BYTES_PER_ELEMENT);return this._readColorTextureLayers(r,n,a=>{let c=new s(o.buffer,o.byteOffset+a,n.bytesPerImage/s.BYTES_PER_ELEMENT);this.gl.readPixels(r.x,r.y,r.width,r.height,this.glFormat,this.glType,c)}),o.buffer}_readColorTextureLayers(t,r,n){let i=this._getFramebuffer(),s=r.bytesPerRow/r.bytesPerPixel,o={3333:this.byteAlignment,...s!==t.width?{3330:s}:{}},a=this.gl.getParameter(3074),c=this.gl.bindFramebuffer(36160,i.handle);try{this.gl.readBuffer(36064),st(this.gl,o,()=>{for(let l=0;l<t.depthOrArrayLayers;l++)this._attachReadSubresource(i,t.mipLevel,t.z+l),n(l*r.bytesPerImage)})}finally{this.gl.bindFramebuffer(36160,c||null),this.gl.readBuffer(a)}}_attachReadSubresource(t,r,n){let i=`${r}:${n}`;if(this._framebufferAttachmentKey!==i){switch(this.dimension){case"2d":this.gl.framebufferTexture2D(36160,36064,3553,this.handle,r);break;case"cube":this.gl.framebufferTexture2D(36160,36064,Te(this.glTarget,this.dimension,n),this.handle,r);break;case"2d-array":case"3d":this.gl.framebufferTextureLayer(36160,36064,this.handle,r,n);break;default:throw new Error(`${this} color readback does not support ${this.dimension} textures`)}if(this.device.props.debug){let s=Number(this.gl.checkFramebufferStatus(36160));if(s!==36053)throw new Error(`${t} incomplete for ${this} readback (${s})`)}this._framebufferAttachmentKey=i}}generateMipmapsWebGL(t){if(this._assertWritable("generate mipmaps for"),!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(At.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!t?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(n){At.log.warn(`Error generating mipmap for ${this}: ${n.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(t){At.log.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(t))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,n]of Object.entries(t)){let i=Number(r),s=n;switch(i){case 33082:case 33083:this.gl.texParameterf(this.glTarget,i,s);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,i,s);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,i,s);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,i,s);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,i,s);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,this.handle),t}_unbind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,null),t}_assertWritable(t){if(this.isHandleBorrowed)throw new Error(`Cannot ${t} borrowed read-only ${this}`)}}});function Is(e,t,r,n){let i=e,s=n;s===!0&&(s=1),s===!1&&(s=0);let o=typeof s=="number"?[s]:s;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 n!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,n);case 5126:return e.uniform1fv(t,o);case 35664:return e.uniform2fv(t,o);case 35665:return e.uniform3fv(t,o);case 35666:return e.uniform4fv(t,o);case 5124:return e.uniform1iv(t,o);case 35667:return e.uniform2iv(t,o);case 35668:return e.uniform3iv(t,o);case 35669:return e.uniform4iv(t,o);case 35670:return e.uniform1iv(t,o);case 35671:return e.uniform2iv(t,o);case 35672:return e.uniform3iv(t,o);case 35673:return e.uniform4iv(t,o);case 5125:return i.uniform1uiv(t,o,1);case 36294:return i.uniform2uiv(t,o,2);case 36295:return i.uniform3uiv(t,o,3);case 36296:return i.uniform4uiv(t,o,4);case 35674:return e.uniformMatrix2fv(t,!1,o);case 35675:return e.uniformMatrix3fv(t,!1,o);case 35676:return e.uniformMatrix4fv(t,!1,o);case 35685:return i.uniformMatrix2x3fv(t,!1,o);case 35686:return i.uniformMatrix2x4fv(t,!1,o);case 35687:return i.uniformMatrix3x2fv(t,!1,o);case 35688:return i.uniformMatrix3x4fv(t,!1,o);case 35689:return i.uniformMatrix4x2fv(t,!1,o);case 35690:return i.uniformMatrix4x3fv(t,!1,o)}throw new Error("Illegal uniform")}var Bs=P(()=>{});function wc(e,t){let r={...e,attributes:e.attributes.map(n=>({...n})),bindings:e.bindings.map(n=>({...n}))};for(let n of t?.attributes||[]){let i=r.attributes.find(s=>s.name===n.name);i?(i.type=n.type||i.type,i.stepMode=n.stepMode||i.stepMode):U.log.warn(`shader layout attribute ${n.name} not present in shader`)}for(let n of t?.bindings||[]){let i=Os(r,n.name);if(!i){U.log.warn(`shader layout binding ${n.name} not present in shader`);continue}Object.assign(i,n)}return r}function Os(e,t){return e.bindings.find(r=>r.name===t||r.name===`${t}Uniforms`||`${r.name}Uniforms`===t)}function Fs(e,t){return e[t]||e[`${t}Uniforms`]||e[t.replace(/Uniforms$/,"")]}var U,wr,Ns=P(()=>{U=D(I(),1);Bs();lr();or();yr();Pn();wr=class extends U.RenderPipeline{device;handle;vs;fs;introspectedLayout;bindings={};uniforms={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(t,r){super(t,r),this.device=t;let n=this.sharedRenderPipeline||this.device._createSharedRenderPipelineWebGL(r);this.sharedRenderPipeline=n,this.handle=n.handle,this.vs=n.vs,this.fs=n.fs,this.linkStatus=n.linkStatus,this.introspectedLayout=n.introspectedLayout,this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.shaderLayout=r.shaderLayout?wc(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.destroyed||(this.sharedRenderPipeline&&!this.props._sharedRenderPipeline&&this.sharedRenderPipeline.destroy(),this.destroyResource())}setBindings(t,r){let n=(0,U.flattenBindingsByGroup)((0,U.normalizeBindingsByGroup)(this.shaderLayout,t));for(let[i,s]of Object.entries(n)){let o=Os(this.shaderLayout,i);if(o){switch(s||U.log.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(s instanceof it)&&!(s.buffer instanceof it))throw new Error("buffer value");break;case"texture":if(!(s instanceof gt||s instanceof bt||s instanceof pt))throw new Error(`${this} Bad texture binding for ${i}`);break;case"sampler":U.log.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=s}else{let a=this.shaderLayout.bindings.map(c=>`"${c.name}"`).join(", ");r?.disableWarnings||U.log.warn(`No binding "${i}" in render pipeline "${this.id}", expected one of ${a}`,s)()}}}draw(t){let r=t.renderPass,n=t.bindGroups?(0,U.flattenBindingsByGroup)(t.bindGroups):t.bindings||this.bindings;return r.setPipeline(this),r.setBindings(n),r.setVertexArray(t.vertexArray),r.draw({parameters:t.parameters,topology:t.topology,isInstanced:t.isInstanced,vertexCount:t.vertexCount,indexCount:t.indexCount,instanceCount:t.instanceCount,firstVertex:t.firstVertex,firstIndex:t.firstIndex,firstInstance:t.firstInstance,baseVertex:t.baseVertex,transformFeedback:t.transformFeedback,uniforms:t.uniforms})}_areTexturesRenderable(t){let r=!0;for(let n of this.shaderLayout.bindings)Fs(t,n.name)||(U.log.warn(`Binding ${n.name} not found in ${this.id}`)(),r=!1);return r}_applyBindings(t,r){if(this._syncLinkStatus(),this.linkStatus!=="success")return;let{gl:n}=this.device;n.useProgram(this.handle);let i=0,s=0;for(let o of this.shaderLayout.bindings){let a=Fs(t,o.name);if(!a)throw new Error(`No value for binding ${o.name} in ${this.id}`);switch(o.type){case"uniform":let{name:c}=o,l=n.getUniformBlockIndex(this.handle,c);if(l===4294967295)throw new Error(`Invalid uniform block name ${c}`);if(n.uniformBlockBinding(this.handle,l,s),a instanceof it)n.bindBufferBase(35345,s,a.handle);else{let u=a;n.bindBufferRange(35345,s,u.buffer.handle,u.offset||0,u.size||u.buffer.byteLength-(u.offset||0))}s+=1;break;case"texture":if(!(a instanceof gt||a instanceof bt||a instanceof pt))throw new Error("texture");let h;if(a instanceof gt)h=a.texture;else if(a instanceof bt)h=a;else if(a instanceof pt&&a.colorAttachments[0]instanceof gt)U.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),h=a.colorAttachments[0].texture;else throw new Error("No texture");n.activeTexture(33984+i),n.bindTexture(h.glTarget,h.handle),i+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${o.type}' not supported in WebGL`)}}}_applyUniforms(t){for(let r of this.shaderLayout.uniforms||[]){let{name:n,location:i,type:s,textureUnit:o}=r,a=t[n]??o;a!==void 0&&Is(this.device.gl,i,s,a)}}_syncLinkStatus(){this.linkStatus=this.sharedRenderPipeline.linkStatus}}});function Vs(e){return Tc[e]}function Er(e){return Ec[e]}function Tr(e){return!!zs[e]}function Gs(e){return zs[e]}var Ec,zs,Tc,_r=P(()=>{Ec={5126:"f32",35664:"vec2<f32>",35665:"vec3<f32>",35666:"vec4<f32>",5124:"i32",35667:"vec2<i32>",35668:"vec3<i32>",35669:"vec4<i32>",5125:"u32",36294:"vec2<u32>",36295:"vec3<u32>",36296:"vec4<u32>",35670:"f32",35671:"vec2<f32>",35672:"vec3<f32>",35673:"vec4<f32>",35674:"mat2x2<f32>",35685:"mat2x3<f32>",35686:"mat2x4<f32>",35687:"mat3x2<f32>",35675:"mat3x3<f32>",35688:"mat3x4<f32>",35689:"mat4x2<f32>",35690:"mat4x3<f32>",35676:"mat4x4<f32>"},zs={35678:{viewDimension:"2d",sampleType:"float"},35680:{viewDimension:"cube",sampleType:"float"},35679:{viewDimension:"3d",sampleType:"float"},35682:{viewDimension:"3d",sampleType:"depth"},36289:{viewDimension:"2d-array",sampleType:"float"},36292:{viewDimension:"2d-array",sampleType:"depth"},36293:{viewDimension:"cube",sampleType:"float"},36298:{viewDimension:"2d",sampleType:"sint"},36299:{viewDimension:"3d",sampleType:"sint"},36300:{viewDimension:"cube",sampleType:"sint"},36303:{viewDimension:"2d-array",sampleType:"uint"},36306:{viewDimension:"2d",sampleType:"uint"},36307:{viewDimension:"3d",sampleType:"uint"},36308:{viewDimension:"cube",sampleType:"uint"},36311:{viewDimension:"2d-array",sampleType:"uint"}},Tc={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function Ws(e,t){let r={attributes:[],bindings:[]};r.attributes=_c(e,t);let n=Mc(e,t);for(let a of n){let c=a.uniforms.map(l=>({name:l.name,format:l.format,byteOffset:l.byteOffset,byteStride:l.byteStride,arrayLength:l.arrayLength}));r.bindings.push({type:"uniform",name:a.name,group:0,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:c})}let i=Sc(e,t),s=0;for(let a of i)if(Tr(a.type)){let{viewDimension:c,sampleType:l}=Gs(a.type);r.bindings.push({type:"texture",name:a.name,group:0,location:s,viewDimension:c,sampleType:l}),a.textureUnit=s,s+=1}i.length&&(r.uniforms=i);let o=vc(e,t);return o?.length&&(r.varyings=o),r}function _c(e,t){let r=[],n=e.getProgramParameter(t,35721);for(let i=0;i<n;i++){let s=e.getActiveAttrib(t,i);if(!s)throw new Error("activeInfo");let{name:o,type:a}=s,c=e.getAttribLocation(t,o);if(c>=0){let l=Er(a),h=/instance/i.test(o)?"instance":"vertex";r.push({name:o,location:c,stepMode:h,type:l})}}return r.sort((i,s)=>i.location-s.location),r}function vc(e,t){let r=[],n=e.getProgramParameter(t,35971);for(let i=0;i<n;i++){let s=e.getTransformFeedbackVarying(t,i);if(!s)throw new Error("activeInfo");let{name:o,type:a,size:c}=s,l=Er(a),{type:h,components:u}=(0,Xt.getVariableShaderTypeInfo)(l);r.push({location:i,name:o,type:h,size:c*u})}return r.sort((i,s)=>i.location-s.location),r}function Sc(e,t){let r=[],n=e.getProgramParameter(t,35718);for(let i=0;i<n;i++){let s=e.getActiveUniform(t,i);if(!s)throw new Error("activeInfo");let{name:o,size:a,type:c}=s,{name:l,isArray:h}=Pc(o),u=e.getUniformLocation(t,l),f={location:u,name:l,size:a,type:c,isArray:h};if(r.push(f),f.size>1)for(let d=0;d<f.size;d++){let p=`${l}[${d}]`;u=e.getUniformLocation(t,p);let g={...f,name:p,location:u};r.push(g)}}return r}function Mc(e,t){let r=(s,o)=>e.getActiveUniformBlockParameter(t,s,o),n=[],i=e.getProgramParameter(t,35382);for(let s=0;s<i;s++){let o={name:e.getActiveUniformBlockName(t,s)||"",location:r(s,35391),byteLength:r(s,35392),vertex:r(s,35396),fragment:r(s,35398),uniformCount:r(s,35394),uniforms:[]},a=r(s,35395)||[],c=e.getActiveUniforms(t,a,35383),l=e.getActiveUniforms(t,a,35384),h=e.getActiveUniforms(t,a,35387),u=e.getActiveUniforms(t,a,35388);for(let p=0;p<o.uniformCount;++p){let g=a[p];if(g!==void 0){let m=e.getActiveUniform(t,g);if(!m)throw new Error("activeInfo");let b=Er(c[p]);o.uniforms.push({name:m.name,format:b,type:c[p],arrayLength:l[p],byteOffset:h[p],byteStride:u[p]})}}let f=new Set(o.uniforms.map(p=>p.name.split(".")[0]).filter(p=>!!p)),d=o.name.replace(/Uniforms$/,"");if(f.size===1&&!f.has(o.name)&&!f.has(d)){let[p]=f;Xt.log.warn(`Uniform block "${o.name}" uses GLSL instance "${p}". luma.gl binds uniform buffers by block name ("${o.name}") and alias ("${d}"). Prefer matching the instance name to one of those to avoid confusing silent mismatches.`)()}n.push(o)}return n.sort((s,o)=>s.location-o.location),n}function Pc(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);return{name:(0,Xt.assertDefined)(r?.[1],`Failed to parse GLSL uniform name ${e}`),length:r?.[2]?1:0,isArray:!!r?.[2]}}var Xt,Us=P(()=>{Xt=D(I(),1);_r()});var wt,Ys,vr,$s=P(()=>{wt=D(I(),1);Us();_r();Ys=4,vr=class extends wt.SharedRenderPipeline{device;handle;vs;fs;introspectedLayout={attributes:[],bindings:[],uniforms:[]};linkStatus="pending";constructor(t,r){super(t,r),this.device=t,this.handle=r.handle||this.device.gl.createProgram(),this.vs=r.vs,this.fs=r.fs,r.varyings&&r.varyings.length>0&&this.device.gl.transformFeedbackVaryings(this.handle,r.varyings,r.bufferMode||35981),this._linkShaders(),wt.log.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Ws(this.device.gl,this.handle),wt.log.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)()}destroy(){this.destroyed||(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.handle.destroyed=!0,this.destroyResource())}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),wt.log.time(Ys,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),wt.log.timeEnd(Ys,`linkProgram for ${this.id}`)(),!this.device.features.has("compilation-status-async-webgl")){let n=this._getLinkStatus();this._reportLinkStatus(n);return}wt.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),wt.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(t){switch(t){case"success":return;default:let r=t==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let n=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${t}: ${n}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(this._initializeSamplerUniforms(),t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}_initializeSamplerUniforms(){let{gl:t}=this.device;t.useProgram(this.handle);let r=0,n=t.getProgramParameter(this.handle,35718);for(let i=0;i<n;i++){let s=t.getActiveUniform(this.handle,i);if(s&&Tr(s.type)){let o=s.name.endsWith("[0]"),a=o?s.name.slice(0,-3):s.name,c=t.getUniformLocation(this.handle,a);c!==null&&(r=this._assignSamplerUniform(c,s,o,r))}}}_assignSamplerUniform(t,r,n,i){let{gl:s}=this.device;if(n&&r.size>1){let o=Int32Array.from({length:r.size},(a,c)=>i+c);return s.uniform1iv(t,o),i+r.size}return s.uniform1i(t,i),i+1}async _waitForLinkComplete(){let t=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:n}=this.device;for(;;){if(n.getProgramParameter(this.handle,37297))return;await t(10)}}}});function Cc(e,t){let r=t.sourceBuffer,n=t.destinationBuffer;e.gl.bindBuffer(36662,r.handle),e.gl.bindBuffer(36663,n.handle),e.gl.copyBufferSubData(36662,36663,t.sourceOffset??0,t.destinationOffset??0,t.size),e.gl.bindBuffer(36662,null),e.gl.bindBuffer(36663,null)}function Lc(e,t){let{sourceBuffer:r,byteOffset:n=0,destinationTexture:i,mipLevel:s=0,origin:o=[0,0,0],aspect:a="all",bytesPerRow:c,rowsPerImage:l,size:h}=t;if(a!=="all")throw new Error("copyBufferToTexture aspect is not supported in WebGL");i.writeBuffer(r,{byteOffset:n,bytesPerRow:c,rowsPerImage:l,mipLevel:s,x:o[0]??0,y:o[1]??0,z:o[2]??0,width:h[0],height:h[1],depthOrArrayLayers:h[2]})}function Ac(e,t){let{sourceTexture:r,mipLevel:n=0,aspect:i="all",width:s=t.sourceTexture.width,height:o=t.sourceTexture.height,depthOrArrayLayers:a,origin:c=[0,0,0],destinationBuffer:l,byteOffset:h=0,bytesPerRow:u,rowsPerImage:f}=t;if(r instanceof It.Texture){r.readBuffer({x:c[0]??0,y:c[1]??0,z:c[2]??0,width:s,height:o,depthOrArrayLayers:a,mipLevel:n,aspect:i,byteOffset:h},l);return}if(i!=="all")throw new Error("aspect not supported in WebGL");if(n!==0||a!==void 0||u||f)throw new Error("not implemented");let{framebuffer:d,destroyFramebuffer:p}=js(r),g;try{let m=l,b=s||d.width,_=o||d.height,y=(0,It.assertDefined)(d.colorAttachments[0]),E=rr(y.texture.props.format),v=E.format,w=E.type;e.gl.bindBuffer(35051,m.handle),g=e.gl.bindFramebuffer(36160,d.handle),e.gl.readPixels(c[0],c[1],b,_,v,w,h)}finally{e.gl.bindBuffer(35051,null),g!==void 0&&e.gl.bindFramebuffer(36160,g),p&&d.destroy()}}function Rc(e,t){let{sourceTexture:r,destinationMipLevel:n=0,origin:i=[0,0],destinationOrigin:s=[0,0,0],destinationTexture:o}=t,{width:a=t.destinationTexture.width,height:c=t.destinationTexture.height}=t,{framebuffer:l,destroyFramebuffer:h}=js(r),[u=0,f=0]=i,[d,p,g]=s,m=e.gl.bindFramebuffer(36160,l.handle),b,_;if(o instanceof bt)b=o,a=Number.isFinite(a)?a:b.width,c=Number.isFinite(c)?c:b.height,b._bind(0),_=b.glTarget;else throw new Error("invalid destination");switch(_){case 3553:case 34067:e.gl.copyTexSubImage2D(_,n,d,p,u,f,a,c);break;case 35866:case 32879:e.gl.copyTexSubImage3D(_,n,d,p,g,u,f,a,c);break;default:}b&&b._unbind(),e.gl.bindFramebuffer(36160,m),h&&l.destroy()}function js(e){if(e instanceof It.Texture){let{width:t,height:r,id:n}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${n}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var It,Sr,qs=P(()=>{It=D(I(),1);qt();yr();Sr=class extends It.CommandBuffer{device;handle=null;commands=[];constructor(t,r={}){super(t,r),this.device=t}_executeCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Cc(this.device,r.options);break;case"copy-buffer-to-texture":Lc(this.device,r.options);break;case"copy-texture-to-buffer":Ac(this.device,r.options);break;case"copy-texture-to-texture":Rc(this.device,r.options);break;default:throw new Error(r.name)}}}});function Xs(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(e)}}function Zs(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(e)}}var Ln=P(()=>{});var Et,kc,Mr,Hs=P(()=>{Et=D(I(),1);gr();Yt();Ln();_n();kc=[1,2,4,8],Mr=class extends Et.RenderPass{device;handle=null;glParameters={};pipeline=null;bindings={};bindingsPipeline=null;vertexArray=null;constructor(t,r){super(t,r),this.device=t;let n=this.props.framebuffer,i=!n||n.handle===null;i&&t.getDefaultCanvasContext()._resizeDrawingBufferIfNeeded();let s;if(!r?.parameters?.viewport)if(!i&&n){let{width:o,height:a}=n;s=[0,0,o,a]}else{let[o,a]=t.getDefaultCanvasContext().getDrawingBufferSize();s=[0,0,o,a]}if(this.device.pushState(),this.setParameters({viewport:s,...this.props.parameters}),!i&&n?.colorAttachments.length){let o=n.colorAttachments.map((a,c)=>36064+c);this.device.gl.drawBuffers(o)}else i&&this.device.gl.drawBuffers([1029]);this.clear(),this.props.timestampQuerySet&&this.props.beginTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.beginTimestampIndex)}end(){this.destroyed||(this.props.timestampQuerySet&&this.props.endTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.endTimestampIndex),this.device.popState(),this.destroy())}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}executeBundles(t){throw new Error("Render bundles are only supported in WebGPU")}setParameters(t={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),t.scissorRect&&(r.scissorTest=!0,r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference!==void 0&&(r[2967]=t.stencilReference,r[36003]=t.stencilReference),"colorMask"in t&&(r.colorMask=kc.map(n=>!!(n&t.colorMask))),this.glParameters=r,et(this.device.gl,r)}setPipeline(t){this.pipeline=t}setBindings(t,r){if(!this.pipeline)throw new Error("RenderPass.setPipeline() must be called before setBindings()");this.bindings=(0,Et.flattenBindingsByGroup)((0,Et.normalizeBindingsByGroup)(this.pipeline.shaderLayout,t)),this.bindingsPipeline=this.pipeline}setVertexArray(t){this.vertexArray=t}draw(t){let r=this.pipeline,n=this.vertexArray;if(!r)throw new Error("RenderPass.setPipeline() must be called before draw()");if(!n)throw new Error("RenderPass.setVertexArray() must be called before draw()");if(r.shaderLayout.bindings.length>0&&this.bindingsPipeline!==r)throw new Error("RenderPass.setBindings() must be called after setPipeline() before draw()");r._syncLinkStatus();let{parameters:i=r.props.parameters,topology:s=r.props.topology,vertexCount:o,indexCount:a,instanceCount:c,isInstanced:l=!1,firstVertex:h=0,transformFeedback:u,uniforms:f=r.uniforms}=t,d=Xs(s),p=!!n.indexBuffer,g=n.indexBuffer?.glIndexType,m=a??o??0;if(r.linkStatus!=="success")return Et.log.info(2,`RenderPipeline:${r.id}.draw() aborted - waiting for shader linking`)(),!1;if(!r._areTexturesRenderable(this.bindings))return Et.log.info(2,`RenderPipeline:${r.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(r.handle),n.bindBeforeRender(this);let b=u;return b&&b.begin(r.props.topology),r._applyBindings(this.bindings,{disableWarnings:r.props.disableWarnings}),r._applyUniforms(f),Rs(this.device,i,this.glParameters,()=>{p&&l?this.device.gl.drawElementsInstanced(d,m,g,h,c||0):p?this.device.gl.drawElements(d,m,g,h):l?this.device.gl.drawArraysInstanced(d,h,o||0,c||0):this.device.gl.drawArrays(d,h,o||0),b&&b.end()}),n.unbindAfterRender(this),!0}drawIndirect(t,r=0){throw new Error("Indirect drawing is only supported in WebGPU")}drawIndexedIndirect(t,r=0){throw new Error("Indirect drawing is only supported in WebGPU")}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((n,i)=>{n&&this.clearColorBuffer(i,n)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,t.clearStencil=this.props.clearStencil),r!==0&&st(this.device.gl,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(t=0,r=[0,0,0,0]){st(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,t,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,t,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,t,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var Qs,_e,Ks=P(()=>{Qs=D(I(),1);qs();Hs();_e=class extends Qs.CommandEncoder{device;handle=null;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new Sr(t,{id:this.id,userData:this.userData})}destroy(){this.destroyResource()}finish(){return this.destroy(),this.commandBuffer}beginRenderPass(t={}){return new Mr(this.device,this._applyTimeProfilingToPassProps(t))}beginComputePass(t={}){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}resolveQuerySet(t,r,n){throw new Error("resolveQuerySet is not supported in WebGL")}writeTimestamp(t,r){t.writeTimestamp(r)}}});var Pr,Dc,Cr,Ic,Js,An=P(()=>{Pr=globalThis,Dc=globalThis.document||{},Cr=globalThis.process||{},Ic=globalThis.console,Js=globalThis.navigator||{}});function Lr(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&process.versions?.electron)return!0;let t=typeof navigator<"u"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}var Rn=P(()=>{});function Tt(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Lr()}var kn=P(()=>{Rn()});function Dn(e){return!e&&!Tt()?"Node":Lr(e)?"Electron":(e||Js.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var to=P(()=>{kn();Rn();An()});var In,ve=P(()=>{An();kn();to();In="4.1.1"});function eo(e){let{target:t,source:r,start:n=0,count:i=1}=e,s=r.length,o=i*s,a=0;for(let c=n;a<s;a++)t[c++]=r[a]??0;for(;a<o;)a<o-a?(t.copyWithin(n+a,n,n+a),a*=2):(t.copyWithin(n+a,n,n+o-a),a=o);return e.target}var ro=P(()=>{});function Fc(e){return Array.isArray(e)?new Float32Array(e):e}function Oc(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Zt,Ar,no=P(()=>{Zt=D(I(),1);ve();mn();ro();Ar=class e extends Zt.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;attributeInfosByLocation;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return Dn()==="Chrome"}constructor(t,r){super(t,r),this.device=t,this.handle=this.device.gl.createVertexArray(),this.attributeInfosByLocation=new Array(this.maxVertexAttributes).fill(null);for(let n of Object.values((0,Zt.getAttributeInfosFromLayouts)(r.shaderLayout,r.bufferLayout)))this.attributeInfosByLocation[n.location]=n}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;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(t,r){let n=r;if(n.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:i,type:s,stride:o,offset:a,normalized:c,integer:l,divisor:h}=this._getAccessor(t);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),l?this.device.gl.vertexAttribIPointer(t,i,s,o,a):this.device.gl.vertexAttribPointer(t,i,s,c,o,a),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(t),this.device.gl.vertexAttribDivisor(t,h||0),this.attributes[t]=n,this.device.gl.bindVertexArray(null)}setConstantWebGL(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(t,r)}}_getAccessor(t){let r=this.attributeInfosByLocation[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let n=Ke(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t,r=!0){let i=e.isConstantAttributeZeroSupported(this.device)||t!==0;(r||i)&&(t=Number(t),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl.bindVertexArray(null))}getConstantBuffer(t,r){let n=Fc(r),i=n.byteLength*t,s=n.length*t;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let o=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),o||=!Oc(n,this.bufferValue),o){let a=(0,Zt.getScratchArray)(r.constructor,s);eo({target:a,source:n,start:0,count:s}),this.buffer.write(a),this.bufferValue=r}return this.buffer}}});function io(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var kr,Rr,so=P(()=>{kr=D(I(),1);Bn();Ln();Rr=class extends kr.TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(t,r){super(t,r),this.device=t,this.gl=t.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(t="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(Zs(t))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let[r,n]of Object.entries(t))this.setBuffer(r,n)})}setBuffer(t,r){let n=this._getVaryingIndex(t),{buffer:i,byteLength:s,byteOffset:o}=this._getBufferRange(r);if(n<0){this.unusedBuffers[t]=i,kr.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[n]={buffer:i,byteLength:s,byteOffset:o},this.bindOnUse||this._bindBuffer(n,i,o,s)}getBuffer(t){if(io(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return this.buffers[r]??null}bind(t=this.handle){if(typeof t!="function")return this.gl.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof it)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:n=0,byteLength:i=t.buffer.byteLength}=t;return{buffer:r,byteOffset:n,byteLength:i}}_getVaryingIndex(t){if(io(t))return Number(t);for(let r of this.layout.varyings||[])if(t===r.name)return r.location;return-1}_bindBuffers(){for(let[t,r]of Object.entries(this.buffers)){let{buffer:n,byteLength:i,byteOffset:s}=this._getBufferRange(r);this._bindBuffer(Number(t),n,s,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r,n=0,i){let s=r&&r.handle;!s||i===void 0?this.gl.bindBufferBase(35982,t,s):this.gl.bindBufferRange(35982,t,s,n,i)}}});var oo,Dr,ao=P(()=>{oo=D(I(),1),Dr=class extends oo.QuerySet{device;handle;_timestampPairs=[];_pendingReads=new Set;_occlusionQuery=null;_occlusionActive=!1;get[Symbol.toStringTag](){return"QuerySet"}constructor(t,r){if(super(t,r),this.device=t,r.type==="timestamp"){if(r.count<2)throw new Error("Timestamp QuerySet requires at least two query slots");this._timestampPairs=new Array(Math.ceil(r.count/2)).fill(null).map(()=>({activeQuery:null,completedQueries:[]})),this.handle=null}else{if(r.count>1)throw new Error("WebGL occlusion QuerySet can only have one value");let n=this.device.gl.createQuery();if(!n)throw new Error("WebGL query not supported");this.handle=n}Object.seal(this)}destroy(){if(!this.destroyed){this.handle&&this.device.gl.deleteQuery(this.handle);for(let t of this._timestampPairs){t.activeQuery&&(this._cancelPendingQuery(t.activeQuery),this.device.gl.deleteQuery(t.activeQuery.handle));for(let r of t.completedQueries)this._cancelPendingQuery(r),this.device.gl.deleteQuery(r.handle)}this._occlusionQuery&&(this._cancelPendingQuery(this._occlusionQuery),this.device.gl.deleteQuery(this._occlusionQuery.handle));for(let t of Array.from(this._pendingReads))this._cancelPendingQuery(t);this.destroyResource()}}isResultAvailable(t){return this.props.type==="timestamp"?t===void 0?this._timestampPairs.some((r,n)=>this._isTimestampPairAvailable(n)):this._isTimestampPairAvailable(this._getTimestampPairIndex(t)):this._occlusionQuery?this._pollQueryAvailability(this._occlusionQuery):!1}async readResults(t){let r=t?.firstQuery||0,n=t?.queryCount||this.props.count-r;if(this._validateRange(r,n),this.props.type==="timestamp"){let i=new Array(n).fill(0n),s=Math.floor(r/2),o=Math.floor((r+n-1)/2);for(let a=s;a<=o;a++){let c=await this._consumeTimestampPairResult(a),l=a*2,h=l+1;l>=r&&l<r+n&&(i[l-r]=0n),h>=r&&h<r+n&&(i[h-r]=c)}return i}if(!this._occlusionQuery)throw new Error("Occlusion query has not been started");return[await this._consumeQueryResult(this._occlusionQuery)]}async readTimestampDuration(t,r){if(this.props.type!=="timestamp")throw new Error("Timestamp durations require a timestamp QuerySet");if(t<0||r>=this.props.count||r<=t)throw new Error("Timestamp duration range is out of bounds");if(t%2!==0||r!==t+1)throw new Error("WebGL timestamp durations require adjacent even/odd query indices");let n=await this._consumeTimestampPairResult(this._getTimestampPairIndex(t));return Number(n)/1e6}beginOcclusionQuery(){if(this.props.type!=="occlusion")throw new Error("Occlusion queries require an occlusion QuerySet");if(!this.handle)throw new Error("WebGL occlusion query is not available");if(this._occlusionActive)throw new Error("Occlusion query is already active");this.device.gl.beginQuery(35887,this.handle),this._occlusionQuery={handle:this.handle,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null},this._occlusionActive=!0}endOcclusionQuery(){if(!this._occlusionActive)throw new Error("Occlusion query is not active");this.device.gl.endQuery(35887),this._occlusionActive=!1}writeTimestamp(t){if(this.props.type!=="timestamp")throw new Error("Timestamp writes require a timestamp QuerySet");let r=this._getTimestampPairIndex(t),n=this._timestampPairs[r];if(t%2===0){if(n.activeQuery)throw new Error("Timestamp query pair is already active");let i=this.device.gl.createQuery();if(!i)throw new Error("WebGL query not supported");let s={handle:i,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null};this.device.gl.beginQuery(35007,i),n.activeQuery=s;return}if(!n.activeQuery)throw new Error("Timestamp query pair was ended before it was started");this.device.gl.endQuery(35007),n.completedQueries.push(n.activeQuery),n.activeQuery=null}_validateRange(t,r){if(t<0||r<0||t+r>this.props.count)throw new Error("Query read range is out of bounds")}_getTimestampPairIndex(t){if(t<0||t>=this.props.count)throw new Error("Query index is out of bounds");return Math.floor(t/2)}_isTimestampPairAvailable(t){let r=this._timestampPairs[t];return!r||r.completedQueries.length===0?!1:this._pollQueryAvailability(r.completedQueries[0])}_pollQueryAvailability(t){if(t.cancelled||this.destroyed)return t.result=0n,!0;if(t.result!==null||t.disjoint)return!0;if(!this.device.gl.getQueryParameter(t.handle,34919))return!1;let n=!!this.device.gl.getParameter(36795);return t.disjoint=n,t.result=n?0n:BigInt(this.device.gl.getQueryParameter(t.handle,34918)),!0}async _consumeTimestampPairResult(t){let r=this._timestampPairs[t];if(!r||r.completedQueries.length===0)throw new Error("Timestamp query pair has no completed result");let n=r.completedQueries.shift();try{return await this._consumeQueryResult(n)}finally{this.device.gl.deleteQuery(n.handle)}}_consumeQueryResult(t){return t.promise||(this._pendingReads.add(t),t.promise=new Promise((r,n)=>{t.resolve=r,t.reject=n;let i=()=>{if(t.pollRequestId=null,t.cancelled||this.destroyed){this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,r(0n);return}if(!this._pollQueryAvailability(t)){t.pollRequestId=this._requestAnimationFrame(i);return}this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,t.disjoint?n(new Error("GPU timestamp query was invalidated by a disjoint event")):r(t.result||0n)};i()})),t.promise}_cancelPendingQuery(t){if(this._pendingReads.delete(t),t.cancelled=!0,t.pollRequestId!==null&&(this._cancelAnimationFrame(t.pollRequestId),t.pollRequestId=null),t.resolve){let r=t.resolve;t.promise=null,t.resolve=null,t.reject=null,r(0n)}}_requestAnimationFrame(t){return requestAnimationFrame(t)}_cancelAnimationFrame(t){cancelAnimationFrame(t)}}});var co,Ir,lo=P(()=>{co=D(I(),1),Ir=class extends co.Fence{device;gl;handle;signaled;_signaled=!1;constructor(t,r={}){super(t,{}),this.device=t,this.gl=t.gl;let n=this.props.handle||this.gl.fenceSync(this.gl.SYNC_GPU_COMMANDS_COMPLETE,0);if(!n)throw new Error("Failed to create WebGL fence");this.handle=n,this.signaled=new Promise(i=>{let s=()=>{let o=this.gl.clientWaitSync(this.handle,0,0);o===this.gl.ALREADY_SIGNALED||o===this.gl.CONDITION_SATISFIED?(this._signaled=!0,i()):setTimeout(s,1)};s()})}isSignaled(){if(this._signaled)return!0;let t=this.gl.getSyncParameter(this.handle,this.gl.SYNC_STATUS);return this._signaled=t===this.gl.SIGNALED,this._signaled}destroy(){this.destroyed||this.gl.deleteSync(this.handle)}}});function Fn(e){switch(e){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function ho(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var uo=P(()=>{});function fo(e,t){let{sourceX:r=0,sourceY:n=0,sourceAttachment:i=0}=t||{},{target:s=null,sourceWidth:o,sourceHeight:a,sourceDepth:c,sourceFormat:l,sourceType:h}=t||{},{framebuffer:u,deleteFramebuffer:f}=po(e),{gl:d,handle:p}=u;o||=u.width,a||=u.height;let g=u.colorAttachments[i]?.texture;if(!g)throw new Error(`Invalid framebuffer attachment ${i}`);c=g?.depth||1,l||=g?.glFormat||6408,h||=g?.glType||5121,s=Vc(s,h,l,o,a,c);let m=Se.dataTypeDecoder.getDataType(s);h=h||Vs(m);let b=d.bindFramebuffer(36160,p);return d.readBuffer(36064+i),d.readPixels(r,n,o,a,l,h,s),d.readBuffer(36064),d.bindFramebuffer(36160,b||null),f&&u.destroy(),s}function mo(e,t){let{target:r,sourceX:n=0,sourceY:i=0,sourceFormat:s=6408,targetByteOffset:o=0}=t||{},{sourceWidth:a,sourceHeight:c,sourceType:l}=t||{},{framebuffer:h,deleteFramebuffer:u}=po(e);a=a||h.width,c=c||h.height;let f=h;l=l||5121;let d=r;if(!d){let g=Fn(s),m=ho(l),b=o+a*c*g*m;d=f.device.createBuffer({byteLength:b})}let p=e.device.createCommandEncoder();return p.copyTextureToBuffer({sourceTexture:e,width:a,height:c,origin:[n,i],destinationBuffer:d,byteOffset:o}),p.destroy(),u&&h.destroy(),d}function po(e){return e instanceof Se.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Nc(e),deleteFramebuffer:!0}}function Nc(e,t){let{device:r,width:n,height:i,id:s}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${s}`,width:n,height:i,colorAttachments:[e]})}function Vc(e,t,r,n,i,s){if(e)return e;t||=5121;let o=xr(t),a=Se.dataTypeDecoder.getTypedArrayConstructor(o),c=Fn(r);return new a(n*i*c)}var Se,go=P(()=>{Se=D(I(),1);_r();uo();Cn()});function Gc(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:}}function zc(e,t,r){e.gl.vertexAttribI4iv(t,r)}function Wc(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function Uc(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var ot,Me,bo=P(()=>{ot=D(I(),1);fn();ss();dn();cs();gs();xs();Es();_s();qi();qt();Ss();lr();Cs();Ds();yr();or();Ns();$s();Ks();no();so();ao();lo();go();Yt();gr();xe();Me=class e extends ot.Device{static getDeviceFromContext(t){return t?t.luma?.device??null:null}type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;_isLost=!1;gl;_constants;extensions;_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(t){return t!=="unorm8x4-bgra"}constructor(t){super({...t,id:t.id||vs("webgl-device")});let r=ot.Device._getCanvasContextProps(t);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let n=r.canvas?.gl??null,i=e.getDeviceFromContext(n);if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new ar(this,r),this.lost=new Promise(h=>{this._resolveContextLost=h});let s={...t.webgl};r.alphaMode==="premultiplied"&&(s.premultipliedAlpha=!0),t.powerPreference!==void 0&&(s.powerPreference=t.powerPreference),t.failIfMajorPerformanceCaveat!==void 0&&(s.failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat);let a=this.props._handle||is(this.canvasContext.canvas,{onContextLost:h=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:h=>{console.log("WebGL context restored")}},s);if(!a)throw new Error("WebGL context creation failed");if(i=e.getDeviceFromContext(a),i){if(t._reuseDevices)return ot.log.log(1,`Not creating a new Device, instead returning a reference to Device ${i.id} already attached to WebGL context`,i)(),this.canvasContext.destroy(),i._reused=!0,i;throw new Error(`WebGL context already attached to device ${i.id}`)}this.handle=a,this.gl=a,this.spectorJS=ji({...this.props,gl:this.handle});let c=be(this.handle);c.device=this,c.extensions||(c.extensions={}),this.extensions=c.extensions,this.info=os(this.gl,this.extensions),this.limits=new sr(this.gl),this.features=new nr(this.gl,this.extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new rt(this.gl,{log:(...h)=>ot.log.log(1,...h)()}).trackState(this.gl,{copyState:!1}),(t.debug||t.debugWebGL)&&(this.gl=$i(this.gl,{debugWebGL:!0,traceWebGL:t.debugWebGL}),ot.log.warn("WebGL debug mode activated. Performance reduced.")()),t.debugWebGL&&(ot.log.level=Math.max(ot.log.level,1)),this.commandEncoder=new _e(this,{id:`${this}-command-encoder`}),this.canvasContext._startObservers()}destroy(){if(!this.props._reuseDevices&&!this._reused){this._isLost=!0,this.commandEncoder?.destroy();let t=be(this.handle);t.device=null}}get isLost(){return this._isLost||this.gl.isContextLost()}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createPresentationContext(t){return new cr(this,t||{})}createBuffer(t){let r=this._normalizeBufferProps(t);return new it(this,r)}createTexture(t){return new bt(this,t)}createExternalTexture(t){throw new Error("ExternalTexture is not available on WebGL")}createSampler(t){return new pr(this,t)}createShader(t){return new ur(this,t)}createFramebuffer(t){return new pt(this,t)}createVertexArray(t){return new Ar(this,t)}createTransformFeedback(t){return new Rr(this,t)}createQuerySet(t){return new Dr(this,t)}createFence(){return new Ir(this)}createRenderPipeline(t){return new wr(this,t)}_createSharedRenderPipelineWebGL(t){return new vr(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}createRenderBundleEncoder(t){throw new Error("Render bundles are only supported in WebGPU")}createCommandEncoder(t={}){return new _e(this,t)}submit(t){let r=null;t||({submittedCommandEncoder:r,commandBuffer:t}=this._finalizeDefaultCommandEncoderForSubmit());try{t._executeCommands(),r&&r.resolveTimeProfilingQuerySet().then(()=>{this.commandEncoder._gpuTimeMs=r._gpuTimeMs}).catch(()=>{})}finally{t.destroy()}}writeBufferViaCommandEncoder(t,r,n,i=0){r.write(n,i)}_finalizeDefaultCommandEncoderForSubmit(){let t=this.commandEncoder,r=t.finish();return this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:t.props.id,timeProfilingQuerySet:t.getTimeProfilingQuerySet()}),{submittedCommandEncoder:t,commandBuffer:r}}readPixelsToArrayWebGL(t,r){return fo(t,r)}readPixelsToBufferWebGL(t,r){return mo(t,r)}setParametersWebGL(t){et(this.gl,t)}getParametersWebGL(t){return Qe(this.gl,t)}withParametersWebGL(t,r){return st(this.gl,t,r)}resetWebGL(){ot.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),Ji(this.gl)}_getDeviceSpecificTextureFormatCapabilities(t){return ds(this.gl,t,this.extensions)}loseDevice(){let t=!1,n=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return n&&(t=!0,n.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),t}pushState(){rt.get(this.gl).push()}popState(){rt.get(this.gl).pop()}getGLKey(t,r){let n=Number(t);for(let i in this.gl)if(this.gl[i]===n)return`GL.${i}`;return r?.emptyIfUnknown?"":String(t)}getGLKeys(t){let r={emptyIfUnknown:!0};return Object.entries(t).reduce((n,[i,s])=>(n[`${i}:${this.getGLKey(i,r)}`]=`${s}:${this.getGLKey(s,r)}`,n),{})}setConstantAttributeWebGL(t,r){let n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);let i=this._constants[t];switch(i&&Uc(i,r)&&ot.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:Gc(this,t,r);break;case Int32Array:zc(this,t,r);break;case Uint32Array:Wc(this,t,r);break;default:throw new Error("constant")}}getExtension(t){return nt(this.gl,t,this.extensions),this.extensions}_setWebGLDebugMetadata(t,r,n){t.luma=r;let i={props:n.spector,id:n.spector.id};t.__SPECTOR_Metadata=i}}});var Bn=P(()=>{bo();lr()});var Da=Ze((sn,ka)=>{(function(e,t){typeof sn=="object"&&typeof ka<"u"?t(sn):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(sn,(function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},n="4.25",i="next";function s(x){if(x.toLowerCase()===i)return i;var T=x&&x.match(/^(\d)\.(\d+)/);return T&&{major:parseInt(T[1],10),minor:parseInt(T[2],10)}}function o(x){return x===void 0&&(x=n),"https://js.arcgis.com/".concat(x,"/")}function a(x){x===void 0&&(x=n);var T=o(x),M=s(x);if(M!==i&&M.major===3){var S=M.minor<=10?"js/":"";return"".concat(T).concat(S,"esri/css/esri.css")}else return"".concat(T,"esri/themes/light/main.css")}function c(x){var T=document.createElement("link");return T.rel="stylesheet",T.href=x,T}function l(x,T){if(T){var M=document.querySelector(T);M.parentNode.insertBefore(x,M)}else document.head.appendChild(x)}function h(x){return document.querySelector('link[href*="'.concat(x,'"]'))}function u(x){return!x||s(x)?a(x):x}function f(x,T){var M=u(x),S=h(M);return S||(S=c(M),l(S,T)),S}var d={};function p(x){var T=document.createElement("script");return T.type="text/javascript",T.src=x,T.setAttribute("data-esri-loader","loading"),T}function g(x,T,M){var S;M&&(S=m(x,M));var C=function(){T(x),x.removeEventListener("load",C,!1),S&&x.removeEventListener("error",S,!1)};x.addEventListener("load",C,!1)}function m(x,T){var M=function(S){T(S.error||new Error("There was an error attempting to load ".concat(x.src))),x.removeEventListener("error",M,!1)};return x.addEventListener("error",M,!1),M}function b(x){x===void 0&&(x={}),d=x}function _(){return document.querySelector("script[data-esri-loader]")}function y(){var x=window.require;return x&&x.on}function E(x){x===void 0&&(x={});var T={};[d,x].forEach(function(C){for(var L in C)Object.prototype.hasOwnProperty.call(C,L)&&(T[L]=C[L])});var M=T.version,S=T.url||o(M);return new r.Promise(function(C,L){var R=_();if(R){var A=R.getAttribute("src");A!==S?L(new Error("The ArcGIS API for JavaScript is already loaded (".concat(A,")."))):y()?C(R):g(R,C,L)}else if(y())L(new Error("The ArcGIS API for JavaScript is already loaded."));else{var B=T.css;if(B){var ft=B===!0;f(ft?M:B,T.insertCssBefore)}R=p(S),g(R,function(){R.setAttribute("data-esri-loader","loaded"),C(R)},L),document.body.appendChild(R)}})}function v(x){return new r.Promise(function(T,M){var S=window.require.on("error",M);window.require(x,function(){for(var C=[],L=0;L<arguments.length;L++)C[L]=arguments[L];S.remove(),T(C)})})}function w(x,T){if(T===void 0&&(T={}),y())return v(x);var M=_(),S=M&&M.getAttribute("src");return!T.url&&S&&(T.url=S),E(T).then(function(){return v(x)})}e.utils=r,e.loadModules=w,e.getScript=_,e.isLoaded=y,e.loadScript=E,e.setDefaultOptions=b,e.loadCss=f,Object.defineProperty(e,"__esModule",{value:!0})}))});var $e={};me($e,{loadArcGISModules:()=>Sf});var dt={},Oi=D(He(),1);Ct(dt,D(He(),1));if(!Oi.Layer)throw new Error("@deck.gl/core is not found");Ct($e,dt);var Ni={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function on(e){return e.createSubclass({properties:Ni,constructor(){this._callbacks={},this.watch(Object.keys(Ni),(r,n,i)=>{this.emit("change",{[i]:r})})},on(r,n){this._callbacks[r]=this._callbacks[r]||[],this._callbacks[r].push(n)},emit(r,n){let i=this._callbacks[r];if(i)for(let s of i)s(n)},toJSON(){let r={};for(let n of this.keys())this[n]!==void 0&&(r[n]=this[n]);return r}})}function an(e,t,r){return t.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor(){this.deck=new e},createLayerView(n){return n.type==="2d"?new r({view:n,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var xo=D(He(),1),Br=D(Gi(),1);Bn();async function Yc(e){return new Promise(t=>{let r=new xo.Deck({controller:!1,gl:e,parameters:{depthCompare:"less-equal"},width:null,height:null,onDeviceInitialized:n=>{t({deckInstance:r,device:n})}})})}async function Fr(e){let{deckInstance:t,device:r}=await Yc(e),n=r.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),i=new Br.Model(r,{vs:`#version 300 es
|
|
9
10
|
in vec2 pos;
|
|
10
11
|
out vec2 v_texcoord;
|
|
11
12
|
void main(void) {
|
|
@@ -25,6 +26,6 @@ void main(void) {
|
|
|
25
26
|
// input correctly; multiplying again here would darken overlays.
|
|
26
27
|
fragColor = imageColor;
|
|
27
28
|
}
|
|
28
|
-
`,bindings:{deckglTexture:n},parameters:{depthWriteEnabled:!1,depthCompare:"always",blendColorSrcFactor:"one",blendColorDstFactor:"one-minus-src-alpha",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha",blendColorOperation:"add",blendAlphaOperation:"add"},geometry:new Hr.Geometry({topology:"triangle-strip",attributes:{pos:{size:2,value:new Int8Array([-1,-1,1,-1,-1,1,-1,1,1,1,1,-1])}}}),vertexCount:6,disableWarnings:!0}),s=r.createFramebuffer({id:"deckfbo",width:1,height:1,colorAttachments:[n],depthStencilAttachment:"depth16unorm"});return e.setProps({_framebuffer:s,_customRender:o=>{if(o==="arcgis"){let a=r.gl;a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),e._drawLayers(o)}else this.redraw()}}),{deck:e,texture:n,fbo:s,model:i}}function Be(t,e){let{model:r,deck:n,fbo:i}=t,s=r.device;if(s instanceof vt){let o=s.getParametersWebGL(36006),{width:a,height:c,views:l,viewState:h,...f}=e,d=window.devicePixelRatio,p=Math.round(a*d),_=Math.round(c*d);i.resize({width:p,height:_});let g=i.colorAttachments[0].texture??i.colorAttachments[0];g!==t.texture&&(t.texture=g,r.setBindings({deckglTexture:g}));let u={width:a,height:c,viewState:h||f};l&&(u.views=l),n.setProps(u),n.redraw("arcgis");let{gl:T}=s;o?(T.bindFramebuffer(36160,o),T.drawBuffers([36064])):T.drawBuffers([1029]),T.enable(3042),T.blendFuncSeparate(1,771,1,771),T.blendEquationSeparate(32774,32774);let S={handle:o,width:p,height:_,colorAttachments:[null]},R=s.beginRenderPass({framebuffer:S,parameters:{viewport:[0,0,p,_]},clearColor:!1,clearDepth:!1});try{r.draw(R)}finally{R.end()}}}function ne(t){t.deck.finalize(),t.model.destroy(),t.fbo.destroy(),t.texture.destroy()}function Yn(t){return t.createSubclass({properties:{cancelInitialization:null,resources:null},async attach(){let e=this.context,r=!1;this.cancelInitialization=()=>r=!0;let n=await Lr.call(this,e);if(r){ne(n);return}this.resources=n,this.layer.deck.on("change",i=>n.deck.setProps(i)),n.deck.setProps(this.layer.deck.toJSON())},redraw(){this.requestRender()},detach(){this.cancelInitialization?.(),this.resources&&(ne(this.resources),this.resources=null)},render(e){if(!this.resources)return;let[r,n]=this.view.state.size,i=e.state;Be(this.resources,{width:r,height:n,latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(i.scale),bearing:-i.rotation,pitch:0})}})}var Gc=/^(?:\d+\.?\d*|\.\d+)$/;function Mt(t){switch(typeof t){case"number":if(!Number.isFinite(t))throw new Error(`Could not parse position string ${t}`);return{type:"literal",value:t};case"string":try{let e=tl(t);return new Zn(e).parseExpression()}catch(e){let r=e instanceof Error?e.message:String(e);throw new Error(`Could not parse position string ${t}: ${r}`)}default:throw new Error(`Could not parse position string ${t}`)}}function Kn(t,e){switch(t.type){case"literal":return t.value;case"percentage":return Math.round(t.value*e);case"binary":let r=Kn(t.left,e),n=Kn(t.right,e);return t.operator==="+"?r+n:r-n;default:throw new Error("Unknown layout expression type")}}function xt(t,e){return Kn(t,e)}function tl(t){let e=[],r=0;for(;r<t.length;){let n=t[r];if(/\s/.test(n)){r++;continue}if(n==="+"||n==="-"||n==="("||n===")"||n==="%"){e.push({type:"symbol",value:n}),r++;continue}if(wo(n)||n==="."){let i=r,s=n===".";for(r++;r<t.length;){let a=t[r];if(wo(a)){r++;continue}if(a==="."&&!s){s=!0,r++;continue}break}let o=t.slice(i,r);if(!Gc.test(o))throw new Error("Invalid number token");e.push({type:"number",value:parseFloat(o)});continue}if(Do(n)){let i=r;for(;r<t.length&&Do(t[r]);)r++;let s=t.slice(i,r).toLowerCase();e.push({type:"word",value:s});continue}throw new Error("Invalid token in position string")}return e}var Zn=class{constructor(e){this.index=0;this.tokens=e}parseExpression(){let e=this.parseBinaryExpression();if(this.index<this.tokens.length)throw new Error("Unexpected token at end of expression");return e}parseBinaryExpression(){let e=this.parseFactor(),r=this.peek();for(;el(r);){this.index++;let n=this.parseFactor();e={type:"binary",operator:r.value,left:e,right:n},r=this.peek()}return e}parseFactor(){let e=this.peek();if(!e)throw new Error("Unexpected end of expression");if(e.type==="symbol"&&e.value==="+")return this.index++,this.parseFactor();if(e.type==="symbol"&&e.value==="-"){this.index++;let r=this.parseFactor();return{type:"binary",operator:"-",left:{type:"literal",value:0},right:r}}if(e.type==="symbol"&&e.value==="("){this.index++;let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(e.type==="word"&&e.value==="calc"){if(this.index++,!this.consumeSymbol("("))throw new Error("Missing opening parenthesis after calc");let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(e.type==="number"){this.index++;let r=e.value,n=this.peek();return n&&n.type==="symbol"&&n.value==="%"?(this.index++,{type:"percentage",value:r/100}):n&&n.type==="word"&&n.value==="px"?(this.index++,{type:"literal",value:r}):{type:"literal",value:r}}throw new Error("Unexpected token in expression")}consumeSymbol(e){let r=this.peek();return r&&r.type==="symbol"&&r.value===e?(this.index++,!0):!1}peek(){return this.tokens[this.index]||null}};function wo(t){return t>="0"&&t<="9"}function Do(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}function el(t){return Boolean(t&&t.type==="symbol"&&(t.value==="+"||t.value==="-"))}function ie(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 n=0;n<t.length;n++)if(!ie(t[n],e[n],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(let s of n)if(!e.hasOwnProperty(s)||!ie(t[s],e[s],r-1))return!1;return!0}return!1}function Fo(t,e){let r={...t};for(let n in e)n!=="id"&&(Array.isArray(r[n])&&Array.isArray(e[n])?r[n]=rl(r[n],e[n]):r[n]=e[n]);return r}function rl(t,e){t=t.slice();for(let r=0;r<e.length;r++){let n=e[r];Number.isFinite(n)&&(t[r]=n)}return t}var ve=class{constructor(e){let{id:r,x:n=0,y:i=0,width:s="100%",height:o="100%",padding:a=null}=e;this.id=r||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=Mt(n),this._y=Mt(i),this._width=Mt(s),this._height=Mt(o),this._padding=a&&{left:Mt(a.left||0),right:Mt(a.right||0),top:Mt(a.top||0),bottom:Mt(a.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e?!0:this.constructor===e.constructor&&ie(this.props,e.props,2)}clone(e){let r=this.constructor;return new r({...this.props,...e})}makeViewport({width:e,height:r,viewState:n}){n=this.filterViewState(n);let i=this.getDimensions({width:e,height:r});if(!i.height||!i.width)return null;let s=this.getViewportType(n);return new s({...n,...this.props,...i})}getViewStateId(){let{viewState:e}=this.props;return typeof e=="string"?e:e?.id||this.id}filterViewState(e){return this.props.viewState&&typeof this.props.viewState=="object"?this.props.viewState.id?Fo(e,this.props.viewState):this.props.viewState:e}getDimensions({width:e,height:r}){let n={x:xt(this._x,e),y:xt(this._y,r),width:xt(this._width,e),height:xt(this._height,r)};return this._padding&&(n.padding={left:xt(this._padding.left,e),top:xt(this._padding.top,r),right:xt(this._padding.right,e),bottom:xt(this._padding.bottom,r)}),n}get controller(){let e=this.props.controller;return e?e===!0?{type:this.ControllerType}:typeof e=="function"?{type:e}:{type:this.ControllerType,...e}:null}};xe();function se(t,e){if(!t)throw new Error(e||"Assertion failed")}function jn(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return se(Number.isFinite(e)&&e>=0),e}function Bo(t){let{logLevel:e,message:r}=t;t.logLevel=jn(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let i=typeof t.message;return se(i==="string"||i==="object"),Object.assign(t,{args:n},t.opts)}var Lt=()=>{},zr=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,i,s={}){let o=Bo({logLevel:r,message:n,args:this._buildArgs(r,n,i),opts:s});return this._createLogFunction(e,o,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return Lt;let i=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&i!==void 0){if(this._onceCache.has(i))return Lt;this._onceCache.add(i)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=jn(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function nl(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var Yr=class{constructor(e,r,n="sessionStorage"){this.storage=nl(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function vo(t){let e;return t<10?e=`${t.toFixed(2)}ms`:t<100?e=`${t.toFixed(1)}ms`:t<1e3?e=`${t.toFixed(0)}ms`:e=`${(t/1e3).toFixed(2)}s`,e}function Uo(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}xe();var Kr;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Kr||(Kr={}));var il=10;function Vo(t){return typeof t!="string"?t:(t=t.toUpperCase(),Kr[t]||Kr.WHITE)}function ko(t,e,r){return!bt&&typeof t=="string"&&(e&&(t=`\x1B[${Vo(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${Vo(r)+il}m${t}\x1B[49m`)),t}function Xo(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),i=t;for(let s of n){let o=i[s];typeof o=="function"&&(e.find(a=>s===a)||(i[s]=o.bind(t)))}}xe();function oe(){let t;if(bt()&&ir.performance)t=ir?.performance?.now?.();else if("hrtime"in sr){let e=sr?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var ae={debug:bt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},$n={enabled:!0,level:0},Pt=class extends zr{constructor({id:e}={id:""}){super({level:0}),this.VERSION=An,this._startTs=oe(),this._deltaTs=oe(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Yr(`__probe-${this.id}__`,{[this.id]:$n}),this.timeStamp(`${this.id} started`),Xo(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((oe()-this._startTs).toPrecision(10))}getDelta(){return Number((oe()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:ae.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:ae.error})}deprecated(e,r){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(e,r){return this.error(`\`${e}\` has been removed. Use \`${r}\` instead`)}probe(e,r,...n){return this._log("log",e,r,n,{method:ae.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:ae.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:ae.debug||ae.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||Lt,tag:ol(r)}):Lt}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||Lt})}group(e,r,n={collapsed:!1}){let i=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:i})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||Lt})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;se(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=oe();let i=sl(this.id,r.message,r);return n.bind(console,i,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration($n),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...$n};this._storage.setConfiguration({[this.id]:{...r,...e}})}};Pt.VERSION=An;function sl(t,e,r){if(typeof e=="string"){let n=r.time?Uo(vo(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=ko(e,r.color,r.background)}return e}function ol(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var G_=new Pt({id:"@probe.gl/log"});var al=new Pt({id:"deck"}),ce=al;var sg=1/Math.PI*180,og=1/180*Math.PI,cl={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...cl}};var H=globalThis.mathgl.config;function qn(t,{precision:e=H.precision}={}){return t=ll(t),`${parseFloat(t.toPrecision(e))}`}function Ct(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function K(t,e,r){return fl(t,n=>Math.max(e,Math.min(r,n)))}function Ue(t,e,r){return Ct(t)?t.map((n,i)=>Ue(n,e[i],r)):r*e+(1-r)*t}function It(t,e,r){let n=H.EPSILON;r&&(H.EPSILON=r);try{if(t===e)return!0;if(Ct(t)&&Ct(e)){if(t.length!==e.length)return!1;for(let i=0;i<t.length;++i)if(!It(t[i],e[i]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=H.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{H.EPSILON=n}}function ll(t){return Math.round(t/H.EPSILON)*H.EPSILON}function hl(t){return t.clone?t.clone():new Array(t.length)}function fl(t,e,r){if(Ct(t)){let n=t;r=r||hl(n);for(let i=0;i<r.length&&i<n.length;++i){let s=typeof t=="number"?t:t[i];r[i]=e(s,i,r)}return r}return e(t)}var le=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:Ct(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(H)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+qn(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!It(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let i=0;i<this.ELEMENTS;++i){let s=e[i],o=typeof r=="number"?r:r[i];this[i]=s+n*(o-s)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(H.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function dl(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function Y(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function Zr(t,e,r=""){if(H.debug&&!dl(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function Qn(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var jr=class extends le{get x(){return this[0]}set x(e){this[0]=Y(e)}get y(){return this[1]}set y(e){this[1]=Y(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let i=this[n]-e[n];r+=i*i}return Y(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return Y(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return Qn(e>=0&&e<this.ELEMENTS,"index is out of range"),Y(this[e])}setComponent(e,r){return Qn(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var G={};Me(G,{add:()=>Tl,angle:()=>vl,ceil:()=>ml,clone:()=>pl,copy:()=>_l,create:()=>Wo,cross:()=>yl,dist:()=>Yl,distance:()=>Yo,div:()=>zl,divide:()=>zo,dot:()=>Il,equals:()=>Xl,exactEquals:()=>kl,floor:()=>Rl,forEach:()=>jl,fromValues:()=>ul,inverse:()=>Pl,len:()=>Wl,length:()=>Zo,lerp:()=>Nl,max:()=>Al,min:()=>El,mul:()=>Ll,multiply:()=>Lo,negate:()=>xl,normalize:()=>Cl,random:()=>Ol,rotate:()=>Bl,round:()=>bl,scale:()=>Sl,scaleAndAdd:()=>Ml,set:()=>gl,sqrDist:()=>Kl,sqrLen:()=>Zl,squaredDistance:()=>Ko,squaredLength:()=>jo,str:()=>Vl,sub:()=>Hl,subtract:()=>Ho,transformMat2:()=>wl,transformMat2d:()=>Dl,transformMat3:()=>Fl,transformMat4:()=>Jn,zero:()=>Ul});var k=typeof Float32Array<"u"?Float32Array:Array,At=Math.random;function J(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var Tg=Math.PI/180;function Wo(){let t=new k(2);return k!=Float32Array&&(t[0]=0,t[1]=0),t}function pl(t){let e=new k(2);return e[0]=t[0],e[1]=t[1],e}function ul(t,e){let r=new k(2);return r[0]=t,r[1]=e,r}function _l(t,e){return t[0]=e[0],t[1]=e[1],t}function gl(t,e,r){return t[0]=e,t[1]=r,t}function Tl(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function Ho(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Lo(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function zo(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function ml(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Rl(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function El(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function Al(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function bl(t,e){return t[0]=J(e[0]),t[1]=J(e[1]),t}function Sl(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function Ml(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function Yo(t,e){let r=e[0]-t[0],n=e[1]-t[1];return Math.sqrt(r*r+n*n)}function Ko(t,e){let r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function Zo(t){let e=t[0],r=t[1];return Math.sqrt(e*e+r*r)}function jo(t){let e=t[0],r=t[1];return e*e+r*r}function xl(t,e){return t[0]=-e[0],t[1]=-e[1],t}function Pl(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function Cl(t,e){let r=e[0],n=e[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t}function Il(t,e){return t[0]*e[0]+t[1]*e[1]}function yl(t,e,r){let n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t}function Nl(t,e,r,n){let i=e[0],s=e[1];return t[0]=i+n*(r[0]-i),t[1]=s+n*(r[1]-s),t}function Ol(t,e){e=e===void 0?1:e;let r=At()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function wl(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i,t[1]=r[1]*n+r[3]*i,t}function Dl(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i+r[4],t[1]=r[1]*n+r[3]*i+r[5],t}function Fl(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[3]*i+r[6],t[1]=r[1]*n+r[4]*i+r[7],t}function Jn(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[4]*i+r[12],t[1]=r[1]*n+r[5]*i+r[13],t}function Bl(t,e,r,n){let i=e[0]-r[0],s=e[1]-r[1],o=Math.sin(n),a=Math.cos(n);return t[0]=i*a-s*o+r[0],t[1]=i*o+s*a+r[1],t}function vl(t,e){let r=t[0],n=t[1],i=e[0],s=e[1],o=Math.sqrt((r*r+n*n)*(i*i+s*s)),a=o&&(r*i+n*s)/o;return Math.acos(Math.min(Math.max(a,-1),1))}function Ul(t){return t[0]=0,t[1]=0,t}function Vl(t){return`vec2(${t[0]}, ${t[1]})`}function kl(t,e){return t[0]===e[0]&&t[1]===e[1]}function Xl(t,e){let r=t[0],n=t[1],i=e[0],s=e[1];return Math.abs(r-i)<=1e-6*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-s)<=1e-6*Math.max(1,Math.abs(n),Math.abs(s))}var Wl=Zo,Hl=Ho,Ll=Lo,zl=zo,Yl=Yo,Kl=Ko,Zl=jo,jl=function(){let t=Wo();return function(e,r,n,i,s,o){let a,c;for(r||(r=2),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,o),e[a]=t[0],e[a+1]=t[1];return e}}();function $o(t,e,r){let n=e[0],i=e[1],s=r[3]*n+r[7]*i||1;return t[0]=(r[0]*n+r[4]*i)/s,t[1]=(r[1]*n+r[5]*i)/s,t}function qr(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[3]*n+r[7]*i+r[11]*s||1;return t[0]=(r[0]*n+r[4]*i+r[8]*s)/o,t[1]=(r[1]*n+r[5]*i+r[9]*s)/o,t[2]=(r[2]*n+r[6]*i+r[10]*s)/o,t}function qo(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i,t[1]=r[1]*n+r[3]*i,t[2]=e[2],t}var tt={};Me(tt,{add:()=>Gl,angle:()=>oi,bezier:()=>ph,ceil:()=>th,clone:()=>$l,copy:()=>Ql,create:()=>Qo,cross:()=>ti,dist:()=>bh,distance:()=>ra,div:()=>Ah,divide:()=>ea,dot:()=>Gn,equals:()=>mh,exactEquals:()=>Th,floor:()=>eh,forEach:()=>Ph,fromValues:()=>ql,hermite:()=>dh,inverse:()=>ch,len:()=>Mh,length:()=>Jo,lerp:()=>hh,max:()=>nh,min:()=>rh,mul:()=>Eh,multiply:()=>ta,negate:()=>ah,normalize:()=>lh,random:()=>uh,rotateX:()=>ni,rotateY:()=>ii,rotateZ:()=>si,round:()=>ih,scale:()=>sh,scaleAndAdd:()=>oh,set:()=>Jl,slerp:()=>fh,sqrDist:()=>Sh,sqrLen:()=>xh,squaredDistance:()=>na,squaredLength:()=>ia,str:()=>gh,sub:()=>Rh,subtract:()=>Go,transformMat3:()=>ei,transformMat4:()=>Ve,transformQuat:()=>ri,zero:()=>_h});function Qo(){let t=new k(3);return k!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function $l(t){let e=new k(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Jo(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function ql(t,e,r){let n=new k(3);return n[0]=t,n[1]=e,n[2]=r,n}function Ql(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Jl(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function Gl(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function Go(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function ta(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function ea(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function th(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function eh(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function rh(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function nh(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function ih(t,e){return t[0]=J(e[0]),t[1]=J(e[1]),t[2]=J(e[2]),t}function sh(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function oh(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function ra(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}function na(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}function ia(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function ah(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function ch(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function lh(t,e){let r=e[0],n=e[1],i=e[2],s=r*r+n*n+i*i;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Gn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function ti(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[0],a=r[1],c=r[2];return t[0]=i*c-s*a,t[1]=s*o-n*c,t[2]=n*a-i*o,t}function hh(t,e,r,n){let i=e[0],s=e[1],o=e[2];return t[0]=i+n*(r[0]-i),t[1]=s+n*(r[1]-s),t[2]=o+n*(r[2]-o),t}function fh(t,e,r,n){let i=Math.acos(Math.min(Math.max(Gn(e,r),-1),1)),s=Math.sin(i),o=Math.sin((1-n)*i)/s,a=Math.sin(n*i)/s;return t[0]=o*e[0]+a*r[0],t[1]=o*e[1]+a*r[1],t[2]=o*e[2]+a*r[2],t}function dh(t,e,r,n,i,s){let o=s*s,a=o*(2*s-3)+1,c=o*(s-2)+s,l=o*(s-1),h=o*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+i[0]*h,t[1]=e[1]*a+r[1]*c+n[1]*l+i[1]*h,t[2]=e[2]*a+r[2]*c+n[2]*l+i[2]*h,t}function ph(t,e,r,n,i,s){let o=1-s,a=o*o,c=s*s,l=a*o,h=3*s*a,f=3*c*o,d=c*s;return t[0]=e[0]*l+r[0]*h+n[0]*f+i[0]*d,t[1]=e[1]*l+r[1]*h+n[1]*f+i[1]*d,t[2]=e[2]*l+r[2]*h+n[2]*f+i[2]*d,t}function uh(t,e){e=e===void 0?1:e;let r=At()*2*Math.PI,n=At()*2-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}function Ve(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[3]*n+r[7]*i+r[11]*s+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*s+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*s+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*s+r[14])/o,t}function ei(t,e,r){let n=e[0],i=e[1],s=e[2];return t[0]=n*r[0]+i*r[3]+s*r[6],t[1]=n*r[1]+i*r[4]+s*r[7],t[2]=n*r[2]+i*r[5]+s*r[8],t}function ri(t,e,r){let n=r[0],i=r[1],s=r[2],o=r[3],a=e[0],c=e[1],l=e[2],h=i*l-s*c,f=s*a-n*l,d=n*c-i*a,p=i*d-s*f,_=s*h-n*d,g=n*f-i*h,u=o*2;return h*=u,f*=u,d*=u,p*=2,_*=2,g*=2,t[0]=a+h+p,t[1]=c+f+_,t[2]=l+d+g,t}function ni(t,e,r,n){let i=[],s=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],s[0]=i[0],s[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),s[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function ii(t,e,r,n){let i=[],s=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],s[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),s[1]=i[1],s[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function si(t,e,r,n){let i=[],s=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],s[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),s[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),s[2]=i[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function oi(t,e){let r=t[0],n=t[1],i=t[2],s=e[0],o=e[1],a=e[2],c=Math.sqrt((r*r+n*n+i*i)*(s*s+o*o+a*a)),l=c&&Gn(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function _h(t){return t[0]=0,t[1]=0,t[2]=0,t}function gh(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function Th(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function mh(t,e){let r=t[0],n=t[1],i=t[2],s=e[0],o=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=1e-6*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-a)<=1e-6*Math.max(1,Math.abs(i),Math.abs(a))}var Rh=Go,Eh=ta,Ah=ea,bh=ra,Sh=na,Mh=Jo,xh=ia,Ph=function(){let t=Qo();return function(e,r,n,i,s,o){let a,c;for(r||(r=3),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var ai=[0,0,0],Qr,ct=class extends jr{static get ZERO(){return Qr||(Qr=new ct(0,0,0),Object.freeze(Qr)),Qr}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&Ct(e)?this.copy(e):(H.debug&&(Y(e),Y(r),Y(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return H.debug&&(Y(e.x),Y(e.y),Y(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=Y(e)}angle(e){return oi(this,e)}cross(e){return ti(this,this,e),this.check()}rotateX({radians:e,origin:r=ai}){return ni(this,this,r,e),this.check()}rotateY({radians:e,origin:r=ai}){return ii(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=ai}){return si(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Ve(this,this,e),this.check()}transformAsVector(e){return qr(this,this,e),this.check()}transformByMatrix3(e){return ei(this,this,e),this.check()}transformByMatrix2(e){return qo(this,this,e),this.check()}transformByQuaternion(e){return ri(this,this,e),this.check()}};var Jr=class extends le{toString(){let e="[";if(H.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${this[r]}`}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=Y(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let i=0;i<this.RANK;++i)r[i]=this[n+i];return r}setColumn(e,r){let n=e*this.RANK;for(let i=0;i<this.RANK;++i)this[n+i]=r[i];return this}};var z={};Me(z,{add:()=>Qh,adjoint:()=>wh,clone:()=>Ih,copy:()=>yh,create:()=>Ch,decompose:()=>Hh,determinant:()=>hi,equals:()=>ef,exactEquals:()=>tf,frob:()=>qh,fromQuat:()=>Ti,fromQuat2:()=>kh,fromRotation:()=>Bh,fromRotationTranslation:()=>oa,fromRotationTranslationScale:()=>Lh,fromRotationTranslationScaleOrigin:()=>zh,fromScaling:()=>Fh,fromTranslation:()=>Dh,fromValues:()=>Nh,fromXRotation:()=>vh,fromYRotation:()=>Uh,fromZRotation:()=>Vh,frustum:()=>mi,getRotation:()=>Wh,getScaling:()=>aa,getTranslation:()=>Xh,identity:()=>sa,invert:()=>li,lookAt:()=>Ai,mul:()=>rf,multiply:()=>ke,multiplyScalar:()=>Jh,multiplyScalarAndAdd:()=>Gh,ortho:()=>Ei,orthoNO:()=>la,orthoZO:()=>Zh,perspective:()=>Ri,perspectiveFromFieldOfView:()=>Kh,perspectiveNO:()=>ca,perspectiveZO:()=>Yh,rotate:()=>pi,rotateX:()=>ui,rotateY:()=>_i,rotateZ:()=>gi,scale:()=>di,set:()=>Oh,str:()=>$h,sub:()=>nf,subtract:()=>ha,targetTo:()=>jh,translate:()=>fi,transpose:()=>ci});function Ch(){let t=new k(16);return k!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function Ih(t){let e=new k(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function yh(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Nh(t,e,r,n,i,s,o,a,c,l,h,f,d,p,_,g){let u=new k(16);return u[0]=t,u[1]=e,u[2]=r,u[3]=n,u[4]=i,u[5]=s,u[6]=o,u[7]=a,u[8]=c,u[9]=l,u[10]=h,u[11]=f,u[12]=d,u[13]=p,u[14]=_,u[15]=g,u}function Oh(t,e,r,n,i,s,o,a,c,l,h,f,d,p,_,g,u){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=s,t[5]=o,t[6]=a,t[7]=c,t[8]=l,t[9]=h,t[10]=f,t[11]=d,t[12]=p,t[13]=_,t[14]=g,t[15]=u,t}function sa(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ci(t,e){if(t===e){let r=e[1],n=e[2],i=e[3],s=e[6],o=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=s,t[11]=e[14],t[12]=i,t[13]=o,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function li(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],d=e[10],p=e[11],_=e[12],g=e[13],u=e[14],T=e[15],S=r*a-n*o,R=r*c-i*o,E=r*l-s*o,A=n*c-i*a,M=n*l-s*a,m=i*l-s*c,b=h*g-f*_,C=h*u-d*_,x=h*T-p*_,y=f*u-d*g,N=f*T-p*g,w=d*T-p*u,O=S*w-R*N+E*y+A*x-M*C+m*b;return O?(O=1/O,t[0]=(a*w-c*N+l*y)*O,t[1]=(i*N-n*w-s*y)*O,t[2]=(g*m-u*M+T*A)*O,t[3]=(d*M-f*m-p*A)*O,t[4]=(c*x-o*w-l*C)*O,t[5]=(r*w-i*x+s*C)*O,t[6]=(u*E-_*m-T*R)*O,t[7]=(h*m-d*E+p*R)*O,t[8]=(o*N-a*x+l*b)*O,t[9]=(n*x-r*N-s*b)*O,t[10]=(_*M-g*E+T*S)*O,t[11]=(f*E-h*M-p*S)*O,t[12]=(a*C-o*y-c*b)*O,t[13]=(r*y-n*C+i*b)*O,t[14]=(g*R-_*A-u*S)*O,t[15]=(h*A-f*R+d*S)*O,t):null}function wh(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],d=e[10],p=e[11],_=e[12],g=e[13],u=e[14],T=e[15],S=r*a-n*o,R=r*c-i*o,E=r*l-s*o,A=n*c-i*a,M=n*l-s*a,m=i*l-s*c,b=h*g-f*_,C=h*u-d*_,x=h*T-p*_,y=f*u-d*g,N=f*T-p*g,w=d*T-p*u;return t[0]=a*w-c*N+l*y,t[1]=i*N-n*w-s*y,t[2]=g*m-u*M+T*A,t[3]=d*M-f*m-p*A,t[4]=c*x-o*w-l*C,t[5]=r*w-i*x+s*C,t[6]=u*E-_*m-T*R,t[7]=h*m-d*E+p*R,t[8]=o*N-a*x+l*b,t[9]=n*x-r*N-s*b,t[10]=_*M-g*E+T*S,t[11]=f*E-h*M-p*S,t[12]=a*C-o*y-c*b,t[13]=r*y-n*C+i*b,t[14]=g*R-_*A-u*S,t[15]=h*A-f*R+d*S,t}function hi(t){let e=t[0],r=t[1],n=t[2],i=t[3],s=t[4],o=t[5],a=t[6],c=t[7],l=t[8],h=t[9],f=t[10],d=t[11],p=t[12],_=t[13],g=t[14],u=t[15],T=e*o-r*s,S=e*a-n*s,R=r*a-n*o,E=l*_-h*p,A=l*g-f*p,M=h*g-f*_,m=e*M-r*A+n*E,b=s*M-o*A+a*E,C=l*R-h*S+f*T,x=p*R-_*S+g*T;return c*m-i*b+u*C-d*x}function ke(t,e,r){let n=e[0],i=e[1],s=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],d=e[9],p=e[10],_=e[11],g=e[12],u=e[13],T=e[14],S=e[15],R=r[0],E=r[1],A=r[2],M=r[3];return t[0]=R*n+E*a+A*f+M*g,t[1]=R*i+E*c+A*d+M*u,t[2]=R*s+E*l+A*p+M*T,t[3]=R*o+E*h+A*_+M*S,R=r[4],E=r[5],A=r[6],M=r[7],t[4]=R*n+E*a+A*f+M*g,t[5]=R*i+E*c+A*d+M*u,t[6]=R*s+E*l+A*p+M*T,t[7]=R*o+E*h+A*_+M*S,R=r[8],E=r[9],A=r[10],M=r[11],t[8]=R*n+E*a+A*f+M*g,t[9]=R*i+E*c+A*d+M*u,t[10]=R*s+E*l+A*p+M*T,t[11]=R*o+E*h+A*_+M*S,R=r[12],E=r[13],A=r[14],M=r[15],t[12]=R*n+E*a+A*f+M*g,t[13]=R*i+E*c+A*d+M*u,t[14]=R*s+E*l+A*p+M*T,t[15]=R*o+E*h+A*_+M*S,t}function fi(t,e,r){let n=r[0],i=r[1],s=r[2],o,a,c,l,h,f,d,p,_,g,u,T;return e===t?(t[12]=e[0]*n+e[4]*i+e[8]*s+e[12],t[13]=e[1]*n+e[5]*i+e[9]*s+e[13],t[14]=e[2]*n+e[6]*i+e[10]*s+e[14],t[15]=e[3]*n+e[7]*i+e[11]*s+e[15]):(o=e[0],a=e[1],c=e[2],l=e[3],h=e[4],f=e[5],d=e[6],p=e[7],_=e[8],g=e[9],u=e[10],T=e[11],t[0]=o,t[1]=a,t[2]=c,t[3]=l,t[4]=h,t[5]=f,t[6]=d,t[7]=p,t[8]=_,t[9]=g,t[10]=u,t[11]=T,t[12]=o*n+h*i+_*s+e[12],t[13]=a*n+f*i+g*s+e[13],t[14]=c*n+d*i+u*s+e[14],t[15]=l*n+p*i+T*s+e[15]),t}function di(t,e,r){let n=r[0],i=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function pi(t,e,r,n){let i=n[0],s=n[1],o=n[2],a=Math.sqrt(i*i+s*s+o*o),c,l,h,f,d,p,_,g,u,T,S,R,E,A,M,m,b,C,x,y,N,w,O,U;return a<1e-6?null:(a=1/a,i*=a,s*=a,o*=a,l=Math.sin(r),c=Math.cos(r),h=1-c,f=e[0],d=e[1],p=e[2],_=e[3],g=e[4],u=e[5],T=e[6],S=e[7],R=e[8],E=e[9],A=e[10],M=e[11],m=i*i*h+c,b=s*i*h+o*l,C=o*i*h-s*l,x=i*s*h-o*l,y=s*s*h+c,N=o*s*h+i*l,w=i*o*h+s*l,O=s*o*h-i*l,U=o*o*h+c,t[0]=f*m+g*b+R*C,t[1]=d*m+u*b+E*C,t[2]=p*m+T*b+A*C,t[3]=_*m+S*b+M*C,t[4]=f*x+g*y+R*N,t[5]=d*x+u*y+E*N,t[6]=p*x+T*y+A*N,t[7]=_*x+S*y+M*N,t[8]=f*w+g*O+R*U,t[9]=d*w+u*O+E*U,t[10]=p*w+T*O+A*U,t[11]=_*w+S*O+M*U,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function ui(t,e,r){let n=Math.sin(r),i=Math.cos(r),s=e[4],o=e[5],a=e[6],c=e[7],l=e[8],h=e[9],f=e[10],d=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*i+l*n,t[5]=o*i+h*n,t[6]=a*i+f*n,t[7]=c*i+d*n,t[8]=l*i-s*n,t[9]=h*i-o*n,t[10]=f*i-a*n,t[11]=d*i-c*n,t}function _i(t,e,r){let n=Math.sin(r),i=Math.cos(r),s=e[0],o=e[1],a=e[2],c=e[3],l=e[8],h=e[9],f=e[10],d=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i-l*n,t[1]=o*i-h*n,t[2]=a*i-f*n,t[3]=c*i-d*n,t[8]=s*n+l*i,t[9]=o*n+h*i,t[10]=a*n+f*i,t[11]=c*n+d*i,t}function gi(t,e,r){let n=Math.sin(r),i=Math.cos(r),s=e[0],o=e[1],a=e[2],c=e[3],l=e[4],h=e[5],f=e[6],d=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i+l*n,t[1]=o*i+h*n,t[2]=a*i+f*n,t[3]=c*i+d*n,t[4]=l*i-s*n,t[5]=h*i-o*n,t[6]=f*i-a*n,t[7]=d*i-c*n,t}function Dh(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function Fh(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Bh(t,e,r){let n=r[0],i=r[1],s=r[2],o=Math.sqrt(n*n+i*i+s*s),a,c,l;return o<1e-6?null:(o=1/o,n*=o,i*=o,s*=o,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=i*n*l+s*c,t[2]=s*n*l-i*c,t[3]=0,t[4]=n*i*l-s*c,t[5]=i*i*l+a,t[6]=s*i*l+n*c,t[7]=0,t[8]=n*s*l+i*c,t[9]=i*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function vh(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Uh(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Vh(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function oa(t,e,r){let n=e[0],i=e[1],s=e[2],o=e[3],a=n+n,c=i+i,l=s+s,h=n*a,f=n*c,d=n*l,p=i*c,_=i*l,g=s*l,u=o*a,T=o*c,S=o*l;return t[0]=1-(p+g),t[1]=f+S,t[2]=d-T,t[3]=0,t[4]=f-S,t[5]=1-(h+g),t[6]=_+u,t[7]=0,t[8]=d+T,t[9]=_-u,t[10]=1-(h+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function kh(t,e){let r=new k(3),n=-e[0],i=-e[1],s=-e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=n*n+i*i+s*s+o*o;return f>0?(r[0]=(a*o+h*n+c*s-l*i)*2/f,r[1]=(c*o+h*i+l*n-a*s)*2/f,r[2]=(l*o+h*s+a*i-c*n)*2/f):(r[0]=(a*o+h*n+c*s-l*i)*2,r[1]=(c*o+h*i+l*n-a*s)*2,r[2]=(l*o+h*s+a*i-c*n)*2),oa(t,e,r),t}function Xh(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function aa(t,e){let r=e[0],n=e[1],i=e[2],s=e[4],o=e[5],a=e[6],c=e[8],l=e[9],h=e[10];return t[0]=Math.sqrt(r*r+n*n+i*i),t[1]=Math.sqrt(s*s+o*o+a*a),t[2]=Math.sqrt(c*c+l*l+h*h),t}function Wh(t,e){let r=new k(3);aa(r,e);let n=1/r[0],i=1/r[1],s=1/r[2],o=e[0]*n,a=e[1]*i,c=e[2]*s,l=e[4]*n,h=e[5]*i,f=e[6]*s,d=e[8]*n,p=e[9]*i,_=e[10]*s,g=o+h+_,u=0;return g>0?(u=Math.sqrt(g+1)*2,t[3]=.25*u,t[0]=(f-p)/u,t[1]=(d-c)/u,t[2]=(a-l)/u):o>h&&o>_?(u=Math.sqrt(1+o-h-_)*2,t[3]=(f-p)/u,t[0]=.25*u,t[1]=(a+l)/u,t[2]=(d+c)/u):h>_?(u=Math.sqrt(1+h-o-_)*2,t[3]=(d-c)/u,t[0]=(a+l)/u,t[1]=.25*u,t[2]=(f+p)/u):(u=Math.sqrt(1+_-o-h)*2,t[3]=(a-l)/u,t[0]=(d+c)/u,t[1]=(f+p)/u,t[2]=.25*u),t}function Hh(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let i=n[0],s=n[1],o=n[2],a=n[4],c=n[5],l=n[6],h=n[8],f=n[9],d=n[10];r[0]=Math.sqrt(i*i+s*s+o*o),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(h*h+f*f+d*d);let p=1/r[0],_=1/r[1],g=1/r[2],u=i*p,T=s*_,S=o*g,R=a*p,E=c*_,A=l*g,M=h*p,m=f*_,b=d*g,C=u+E+b,x=0;return C>0?(x=Math.sqrt(C+1)*2,t[3]=.25*x,t[0]=(A-m)/x,t[1]=(M-S)/x,t[2]=(T-R)/x):u>E&&u>b?(x=Math.sqrt(1+u-E-b)*2,t[3]=(A-m)/x,t[0]=.25*x,t[1]=(T+R)/x,t[2]=(M+S)/x):E>b?(x=Math.sqrt(1+E-u-b)*2,t[3]=(M-S)/x,t[0]=(T+R)/x,t[1]=.25*x,t[2]=(A+m)/x):(x=Math.sqrt(1+b-u-E)*2,t[3]=(T-R)/x,t[0]=(M+S)/x,t[1]=(A+m)/x,t[2]=.25*x),t}function Lh(t,e,r,n){let i=e[0],s=e[1],o=e[2],a=e[3],c=i+i,l=s+s,h=o+o,f=i*c,d=i*l,p=i*h,_=s*l,g=s*h,u=o*h,T=a*c,S=a*l,R=a*h,E=n[0],A=n[1],M=n[2];return t[0]=(1-(_+u))*E,t[1]=(d+R)*E,t[2]=(p-S)*E,t[3]=0,t[4]=(d-R)*A,t[5]=(1-(f+u))*A,t[6]=(g+T)*A,t[7]=0,t[8]=(p+S)*M,t[9]=(g-T)*M,t[10]=(1-(f+_))*M,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function zh(t,e,r,n,i){let s=e[0],o=e[1],a=e[2],c=e[3],l=s+s,h=o+o,f=a+a,d=s*l,p=s*h,_=s*f,g=o*h,u=o*f,T=a*f,S=c*l,R=c*h,E=c*f,A=n[0],M=n[1],m=n[2],b=i[0],C=i[1],x=i[2],y=(1-(g+T))*A,N=(p+E)*A,w=(_-R)*A,O=(p-E)*M,U=(1-(d+T))*M,ut=(u+S)*M,Q=(_+R)*m,Je=(u-S)*m,Li=(1-(d+g))*m;return t[0]=y,t[1]=N,t[2]=w,t[3]=0,t[4]=O,t[5]=U,t[6]=ut,t[7]=0,t[8]=Q,t[9]=Je,t[10]=Li,t[11]=0,t[12]=r[0]+b-(y*b+O*C+Q*x),t[13]=r[1]+C-(N*b+U*C+Je*x),t[14]=r[2]+x-(w*b+ut*C+Li*x),t[15]=1,t}function Ti(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=r+r,a=n+n,c=i+i,l=r*o,h=n*o,f=n*a,d=i*o,p=i*a,_=i*c,g=s*o,u=s*a,T=s*c;return t[0]=1-f-_,t[1]=h+T,t[2]=d-u,t[3]=0,t[4]=h-T,t[5]=1-l-_,t[6]=p+g,t[7]=0,t[8]=d+u,t[9]=p-g,t[10]=1-l-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function mi(t,e,r,n,i,s,o){let a=1/(r-e),c=1/(i-n),l=1/(s-o);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(i+n)*c,t[10]=(o+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*s*2*l,t[15]=0,t}function ca(t,e,r,n,i){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0){let o=1/(n-i);t[10]=(i+n)*o,t[14]=2*i*n*o}else t[10]=-1,t[14]=-2*n;return t}var Ri=ca;function Yh(t,e,r,n,i){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0){let o=1/(n-i);t[10]=i*o,t[14]=i*n*o}else t[10]=-1,t[14]=-n;return t}function Kh(t,e,r,n){let i=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),o=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(o+a),l=2/(i+s);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((o-a)*c*.5),t[9]=(i-s)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function la(t,e,r,n,i,s,o){let a=1/(e-r),c=1/(n-i),l=1/(s-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(i+n)*c,t[14]=(o+s)*l,t[15]=1,t}var Ei=la;function Zh(t,e,r,n,i,s,o){let a=1/(e-r),c=1/(n-i),l=1/(s-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(i+n)*c,t[14]=s*l,t[15]=1,t}function Ai(t,e,r,n){let i,s,o,a,c,l,h,f,d,p,_=e[0],g=e[1],u=e[2],T=n[0],S=n[1],R=n[2],E=r[0],A=r[1],M=r[2];return Math.abs(_-E)<1e-6&&Math.abs(g-A)<1e-6&&Math.abs(u-M)<1e-6?sa(t):(f=_-E,d=g-A,p=u-M,i=1/Math.sqrt(f*f+d*d+p*p),f*=i,d*=i,p*=i,s=S*p-R*d,o=R*f-T*p,a=T*d-S*f,i=Math.sqrt(s*s+o*o+a*a),i?(i=1/i,s*=i,o*=i,a*=i):(s=0,o=0,a=0),c=d*a-p*o,l=p*s-f*a,h=f*o-d*s,i=Math.sqrt(c*c+l*l+h*h),i?(i=1/i,c*=i,l*=i,h*=i):(c=0,l=0,h=0),t[0]=s,t[1]=c,t[2]=f,t[3]=0,t[4]=o,t[5]=l,t[6]=d,t[7]=0,t[8]=a,t[9]=h,t[10]=p,t[11]=0,t[12]=-(s*_+o*g+a*u),t[13]=-(c*_+l*g+h*u),t[14]=-(f*_+d*g+p*u),t[15]=1,t)}function jh(t,e,r,n){let i=e[0],s=e[1],o=e[2],a=n[0],c=n[1],l=n[2],h=i-r[0],f=s-r[1],d=o-r[2],p=h*h+f*f+d*d;p>0&&(p=1/Math.sqrt(p),h*=p,f*=p,d*=p);let _=c*d-l*f,g=l*h-a*d,u=a*f-c*h;return p=_*_+g*g+u*u,p>0&&(p=1/Math.sqrt(p),_*=p,g*=p,u*=p),t[0]=_,t[1]=g,t[2]=u,t[3]=0,t[4]=f*u-d*g,t[5]=d*_-h*u,t[6]=h*g-f*_,t[7]=0,t[8]=h,t[9]=f,t[10]=d,t[11]=0,t[12]=i,t[13]=s,t[14]=o,t[15]=1,t}function $h(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function qh(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function Qh(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function ha(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function Jh(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function Gh(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function tf(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function ef(t,e){let r=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=t[9],d=t[10],p=t[11],_=t[12],g=t[13],u=t[14],T=t[15],S=e[0],R=e[1],E=e[2],A=e[3],M=e[4],m=e[5],b=e[6],C=e[7],x=e[8],y=e[9],N=e[10],w=e[11],O=e[12],U=e[13],ut=e[14],Q=e[15];return Math.abs(r-S)<=1e-6*Math.max(1,Math.abs(r),Math.abs(S))&&Math.abs(n-R)<=1e-6*Math.max(1,Math.abs(n),Math.abs(R))&&Math.abs(i-E)<=1e-6*Math.max(1,Math.abs(i),Math.abs(E))&&Math.abs(s-A)<=1e-6*Math.max(1,Math.abs(s),Math.abs(A))&&Math.abs(o-M)<=1e-6*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(a-m)<=1e-6*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(c-b)<=1e-6*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(l-C)<=1e-6*Math.max(1,Math.abs(l),Math.abs(C))&&Math.abs(h-x)<=1e-6*Math.max(1,Math.abs(h),Math.abs(x))&&Math.abs(f-y)<=1e-6*Math.max(1,Math.abs(f),Math.abs(y))&&Math.abs(d-N)<=1e-6*Math.max(1,Math.abs(d),Math.abs(N))&&Math.abs(p-w)<=1e-6*Math.max(1,Math.abs(p),Math.abs(w))&&Math.abs(_-O)<=1e-6*Math.max(1,Math.abs(_),Math.abs(O))&&Math.abs(g-U)<=1e-6*Math.max(1,Math.abs(g),Math.abs(U))&&Math.abs(u-ut)<=1e-6*Math.max(1,Math.abs(u),Math.abs(ut))&&Math.abs(T-Q)<=1e-6*Math.max(1,Math.abs(T),Math.abs(Q))}var rf=ke,nf=ha;var yt={};Me(yt,{add:()=>lf,ceil:()=>hf,clone:()=>sf,copy:()=>af,create:()=>fa,cross:()=>Af,dist:()=>wf,distance:()=>_a,div:()=>Of,divide:()=>ua,dot:()=>Ef,equals:()=>If,exactEquals:()=>Cf,floor:()=>ff,forEach:()=>vf,fromValues:()=>of,inverse:()=>mf,len:()=>Ff,length:()=>Ta,lerp:()=>bf,max:()=>pf,min:()=>df,mul:()=>Nf,multiply:()=>pa,negate:()=>Tf,normalize:()=>Rf,random:()=>Sf,round:()=>uf,scale:()=>_f,scaleAndAdd:()=>gf,set:()=>cf,sqrDist:()=>Df,sqrLen:()=>Bf,squaredDistance:()=>ga,squaredLength:()=>ma,str:()=>Pf,sub:()=>yf,subtract:()=>da,transformMat4:()=>bi,transformQuat:()=>Mf,zero:()=>xf});function fa(){let t=new k(4);return k!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function sf(t){let e=new k(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function of(t,e,r,n){let i=new k(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}function af(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function cf(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}function lf(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function da(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}function pa(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}function ua(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}function hf(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t[3]=Math.ceil(e[3]),t}function ff(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t[3]=Math.floor(e[3]),t}function df(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}function pf(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}function uf(t,e){return t[0]=J(e[0]),t[1]=J(e[1]),t[2]=J(e[2]),t[3]=J(e[3]),t}function _f(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function gf(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}function _a(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],s=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+s*s)}function ga(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],s=e[3]-t[3];return r*r+n*n+i*i+s*s}function Ta(t){let e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}function ma(t){let e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}function Tf(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}function mf(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}function Rf(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=r*r+n*n+i*i+s*s;return o>0&&(o=1/Math.sqrt(o)),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=s*o,t}function Ef(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Af(t,e,r,n){let i=r[0]*n[1]-r[1]*n[0],s=r[0]*n[2]-r[2]*n[0],o=r[0]*n[3]-r[3]*n[0],a=r[1]*n[2]-r[2]*n[1],c=r[1]*n[3]-r[3]*n[1],l=r[2]*n[3]-r[3]*n[2],h=e[0],f=e[1],d=e[2],p=e[3];return t[0]=f*l-d*c+p*a,t[1]=-(h*l)+d*o-p*s,t[2]=h*c-f*o+p*i,t[3]=-(h*a)+f*s-d*i,t}function bf(t,e,r,n){let i=e[0],s=e[1],o=e[2],a=e[3];return t[0]=i+n*(r[0]-i),t[1]=s+n*(r[1]-s),t[2]=o+n*(r[2]-o),t[3]=a+n*(r[3]-a),t}function Sf(t,e){e=e===void 0?1:e;let r,n,i,s,o,a;do r=At()*2-1,n=At()*2-1,o=r*r+n*n;while(o>=1);do i=At()*2-1,s=At()*2-1,a=i*i+s*s;while(a>=1);let c=Math.sqrt((1-o)/a);return t[0]=e*r,t[1]=e*n,t[2]=e*i*c,t[3]=e*s*c,t}function bi(t,e,r){let n=e[0],i=e[1],s=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*s+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*s+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*s+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*s+r[15]*o,t}function Mf(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[0],a=r[1],c=r[2],l=r[3],h=l*n+a*s-c*i,f=l*i+c*n-o*s,d=l*s+o*i-a*n,p=-o*n-a*i-c*s;return t[0]=h*l+p*-o+f*-c-d*-a,t[1]=f*l+p*-a+d*-o-h*-c,t[2]=d*l+p*-c+h*-a-f*-o,t[3]=e[3],t}function xf(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}function Pf(t){return`vec4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`}function Cf(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function If(t,e){let r=t[0],n=t[1],i=t[2],s=t[3],o=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-c)<=1e-6*Math.max(1,Math.abs(i),Math.abs(c))&&Math.abs(s-l)<=1e-6*Math.max(1,Math.abs(s),Math.abs(l))}var yf=da,Nf=pa,Of=ua,wf=_a,Df=ga,Ff=Ta,Bf=ma,vf=function(){let t=fa();return function(e,r,n,i,s,o){let a,c;for(r||(r=4),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var xi;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(xi||(xi={}));var Uf=45*Math.PI/180,Vf=1,Si=.1,Mi=500,kf=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),Z=class extends Jr{static get IDENTITY(){return Wf()}static get ZERO(){return Xf()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return xi}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,i,s,o,a,c,l,h,f,d,p,_,g,u){return this[0]=e,this[1]=r,this[2]=n,this[3]=i,this[4]=s,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this[9]=h,this[10]=f,this[11]=d,this[12]=p,this[13]=_,this[14]=g,this[15]=u,this.check()}setRowMajor(e,r,n,i,s,o,a,c,l,h,f,d,p,_,g,u){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=o,this[6]=h,this[7]=_,this[8]=n,this[9]=a,this[10]=f,this[11]=g,this[12]=i,this[13]=c,this[14]=d,this[15]=u,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(kf)}fromObject(e){return this.check()}fromQuaternion(e){return Ti(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:i,top:s,near:o=Si,far:a=Mi}=e;return a===1/0?Hf(this,r,n,i,s,o):mi(this,r,n,i,s,o,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:i=[0,1,0]}=e;return Ai(this,r,n,i),this.check()}ortho(e){let{left:r,right:n,bottom:i,top:s,near:o=Si,far:a=Mi}=e;return Ei(this,r,n,i,s,o,a),this.check()}orthographic(e){let{fovy:r=Uf,aspect:n=Vf,focalDistance:i=1,near:s=Si,far:o=Mi}=e;Ra(r);let a=r/2,c=i*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:o})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:i=.1,far:s=500}=e;return Ra(r),Ri(this,r,n,i,s),this.check()}determinant(){return hi(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*s,e[2]=this[2]*o,e[3]=0,e[4]=this[4]*i,e[5]=this[5]*s,e[6]=this[6]*o,e[7]=0,e[8]=this[8]*i,e[9]=this[9]*s,e[10]=this[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*s,e[2]=this[2]*o,e[3]=this[4]*i,e[4]=this[5]*s,e[5]=this[6]*o,e[6]=this[8]*i,e[7]=this[9]*s,e[8]=this[10]*o,e}transpose(){return ci(this,this),this.check()}invert(){return li(this,this),this.check()}multiplyLeft(e){return ke(this,e,this),this.check()}multiplyRight(e){return ke(this,this,e),this.check()}rotateX(e){return ui(this,this,e),this.check()}rotateY(e){return _i(this,this,e),this.check()}rotateZ(e){return gi(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return pi(this,this,e,r),this.check()}scale(e){return di(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return fi(this,this,e),this.check()}transform(e,r){return e.length===4?(r=bi(r||[-0,-0,-0,-0],e,this),Zr(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,i;switch(n){case 2:i=Jn(r||[-0,-0],e,this);break;case 3:i=Ve(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Zr(i,e.length),i}transformAsVector(e,r){let n;switch(e.length){case 2:n=$o(r||[-0,-0],e,this);break;case 3:n=qr(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Zr(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},Gr,tn;function Xf(){return Gr||(Gr=new Z([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(Gr)),Gr}function Wf(){return tn||(tn=new Z,Object.freeze(tn)),tn}function Ra(t){if(t>Math.PI*2)throw Error("expected radians")}function Hf(t,e,r,n,i,s){let o=2*s/(r-e),a=2*s/(i-n),c=(r+e)/(r-e),l=(i+n)/(i-n),h=-1,f=-1,d=-2*s;return t[0]=o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=h,t[11]=f,t[12]=0,t[13]=0,t[14]=d,t[15]=0,t}function fe(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Pi(t,e){let r=t%e;return r<0?e+r:r}function Aa(t){return[t[12],t[13],t[14]]}function ba(t){return{left:he(t[3]+t[0],t[7]+t[4],t[11]+t[8],t[15]+t[12]),right:he(t[3]-t[0],t[7]-t[4],t[11]-t[8],t[15]-t[12]),bottom:he(t[3]+t[1],t[7]+t[5],t[11]+t[9],t[15]+t[13]),top:he(t[3]-t[1],t[7]-t[5],t[11]-t[9],t[15]-t[13]),near:he(t[3]+t[2],t[7]+t[6],t[11]+t[10],t[15]+t[14]),far:he(t[3]-t[2],t[7]-t[6],t[11]-t[10],t[15]-t[14])}}var Ea=new ct;function he(t,e,r,n){Ea.set(t,e,r);let i=Ea.len();return{distance:n/i,normal:new ct(-t/i,-e/i,-r/i)}}function Ci(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Ut(t,e){let r=yt.transformMat4([],e,t);return yt.scale(r,r,1/r[3]),r}function Xe(t,e,r){return t<e?e:t>r?r:t}function Lf(t){return Math.log(t)*Math.LOG2E}var We=Math.log2||Lf;function lt(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var ht=Math.PI,Sa=ht/4,et=ht/180,Ii=180/ht,de=512,en=4003e4,ft=85.051129,Ma=1.5;function yi(t){return We(t)}function rt(t){let[e,r]=t;lt(Number.isFinite(e)),lt(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*et,i=r*et,s=de*(n+ht)/(2*ht),o=de*(ht+Math.log(Math.tan(Sa+i*.5)))/(2*ht);return[s,o]}function j(t){let[e,r]=t,n=e/de*(2*ht)-ht,i=2*(Math.atan(Math.exp(r/de*(2*ht)-ht))-Sa);return[n*Ii,i*Ii]}function Ni(t){let{latitude:e}=t;lt(Number.isFinite(e));let r=Math.cos(e*et);return yi(en*r)-9}function He(t){let e=Math.cos(t*et);return de/en/e}function pe(t){let{latitude:e,longitude:r,highPrecision:n=!1}=t;lt(Number.isFinite(e)&&Number.isFinite(r));let i=de,s=Math.cos(e*et),o=i/360,a=o/s,c=i/en/s,l={unitsPerMeter:[c,c,c],metersPerUnit:[1/c,1/c,1/c],unitsPerDegree:[o,a,c],degreesPerUnit:[1/o,1/a,1/c]};if(n){let h=et*Math.tan(e*et)/s,f=o*h/2,d=i/en*h,p=d/a*c;l.unitsPerDegree2=[0,f,d],l.unitsPerMeter2=[p,0,p]}return l}function Oi(t,e){let[r,n,i]=t,[s,o,a]=e,{unitsPerMeter:c,unitsPerMeter2:l}=pe({longitude:r,latitude:n,highPrecision:!0}),h=rt(t);h[0]+=s*(c[0]+l[0]*o),h[1]+=o*(c[1]+l[1]*o);let f=j(h),d=(i||0)+(a||0);return Number.isFinite(i)||Number.isFinite(a)?[f[0],f[1],d]:f}function rn(t){let{height:e,pitch:r,bearing:n,altitude:i,scale:s,center:o}=t,a=Ci();z.translate(a,a,[0,0,-i]),z.rotateX(a,a,-r*et),z.rotateZ(a,a,n*et);let c=s/e;return z.scale(a,a,[c,c,c]),o&&z.translate(a,a,tt.negate([],o)),a}function wi(t){let{width:e,height:r,altitude:n,pitch:i=0,offset:s,center:o,scale:a,nearZMultiplier:c=1,farZMultiplier:l=1}=t,{fovy:h=Nt(Ma)}=t;n!==void 0&&(h=Nt(n));let f=h*et,d=i*et,p=zt(h),_=p;o&&(_+=o[2]*a/Math.cos(d)/r);let g=f*(.5+(s?s[1]:0)/r),u=Math.sin(g)*_/Math.sin(Xe(Math.PI/2-d-g,.01,Math.PI-.01)),T=Math.sin(d)*u+_,S=_*10,R=Math.min(T*l,S);return{fov:f,aspect:e/r,focalDistance:p,near:c,far:R}}function Nt(t){return 2*Math.atan(.5/t)*Ii}function zt(t){return .5/Math.tan(.5*t*et)}function nn(t,e){let[r,n,i=0]=t;return lt(Number.isFinite(r)&&Number.isFinite(n)&&Number.isFinite(i)),Ut(e,[r,n,i,1])}function ue(t,e,r=0){let[n,i,s]=t;if(lt(Number.isFinite(n)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(s))return Ut(e,[n,i,s,1]);let o=Ut(e,[n,i,0,1]),a=Ut(e,[n,i,1,1]),c=o[2],l=a[2],h=c===l?0:((r||0)-c)/(l-c);return G.lerp([],o,a,h)}function sn(t){let{width:e,height:r,bounds:n,minExtent:i=0,maxZoom:s=24,offset:o=[0,0]}=t,[[a,c],[l,h]]=n,f=zf(t.padding),d=rt([a,Xe(h,-ft,ft)]),p=rt([l,Xe(c,-ft,ft)]),_=[Math.max(Math.abs(p[0]-d[0]),i),Math.max(Math.abs(p[1]-d[1]),i)],g=[e-f.left-f.right-Math.abs(o[0])*2,r-f.top-f.bottom-Math.abs(o[1])*2];lt(g[0]>0&&g[1]>0);let u=g[0]/_[0],T=g[1]/_[1],S=(f.right-f.left)/2/u,R=(f.top-f.bottom)/2/T,E=[(p[0]+d[0])/2+S,(p[1]+d[1])/2+R],A=j(E),M=Math.min(s,We(Math.abs(Math.min(u,T))));return lt(Number.isFinite(M)),{longitude:A[0],latitude:A[1],zoom:M}}function zf(t=0){return typeof t=="number"?{top:t,bottom:t,left:t,right:t}:(lt(Number.isFinite(t.top)&&Number.isFinite(t.bottom)&&Number.isFinite(t.left)&&Number.isFinite(t.right)),t)}var xa=Math.PI/180;function on(t,e=0){let{width:r,height:n,unproject:i}=t,s={targetZ:e},o=i([0,n],s),a=i([r,n],s),c,l,h=t.fovy?.5*t.fovy*xa:Math.atan(.5/t.altitude),f=(90-t.pitch)*xa;return h>f-.01?(c=Pa(t,0,e),l=Pa(t,r,e)):(c=i([0,0],s),l=i([r,0],s)),[o,a,l,c]}function Pa(t,e,r){let{pixelUnprojectionMatrix:n}=t,i=Ut(n,[e,0,1,1]),s=Ut(n,[e,t.height,1,1]),a=(r*t.distanceScales.unitsPerMeter[2]-i[2])/(s[2]-i[2]),c=G.lerp([],i,s,a),l=j(c);return l.push(r),l}var v;(function(t){t[t.Start=1]="Start",t[t.Move=2]="Move",t[t.End=4]="End",t[t.Cancel=8]="Cancel"})(v||(v={}));var W;(function(t){t[t.None=0]="None",t[t.Left=1]="Left",t[t.Right=2]="Right",t[t.Up=4]="Up",t[t.Down=8]="Down",t[t.Horizontal=3]="Horizontal",t[t.Vertical=12]="Vertical",t[t.All=15]="All"})(W||(W={}));var P;(function(t){t[t.Possible=1]="Possible",t[t.Began=2]="Began",t[t.Changed=4]="Changed",t[t.Ended=8]="Ended",t[t.Recognized=8]="Recognized",t[t.Cancelled=16]="Cancelled",t[t.Failed=32]="Failed"})(P||(P={}));var Le="manipulation",an="none",Di="pan-x",Fi="pan-y";function ze(t,e){let r=e.x-t.x,n=e.y-t.y;return Math.sqrt(r*r+n*n)}var im={pointerdown:v.Start,pointermove:v.Move,pointerup:v.End,pointercancel:v.Cancel,pointerout:v.Cancel};var ed=1;function Ia(){return ed++}function Bi(t){return t&P.Cancelled?"cancel":t&P.Ended?"end":t&P.Changed?"move":t&P.Began?"start":""}var dt=class{constructor(e){this.options=e,this.id=Ia(),this.state=P.Possible,this.simultaneous={},this.requireFail=[]}set(e){return Object.assign(this.options,e),this.manager.touchAction.update(),this}recognizeWith(e){if(Array.isArray(e)){for(let i of e)this.recognizeWith(i);return this}let r;if(typeof e=="string"){if(r=this.manager.get(e),!r)throw new Error(`Cannot find recognizer ${e}`)}else r=e;let{simultaneous:n}=this;return n[r.id]||(n[r.id]=r,r.recognizeWith(this)),this}dropRecognizeWith(e){if(Array.isArray(e)){for(let n of e)this.dropRecognizeWith(n);return this}let r;return typeof e=="string"?r=this.manager.get(e):r=e,r&&delete this.simultaneous[r.id],this}requireFailure(e){if(Array.isArray(e)){for(let i of e)this.requireFailure(i);return this}let r;if(typeof e=="string"){if(r=this.manager.get(e),!r)throw new Error(`Cannot find recognizer ${e}`)}else r=e;let{requireFail:n}=this;return n.indexOf(r)===-1&&(n.push(r),r.requireFailure(this)),this}dropRequireFailure(e){if(Array.isArray(e)){for(let n of e)this.dropRequireFailure(n);return this}let r;if(typeof e=="string"?r=this.manager.get(e):r=e,r){let n=this.requireFail.indexOf(r);n>-1&&this.requireFail.splice(n,1)}return this}hasRequireFailures(){return Boolean(this.requireFail.find(e=>e.options.enable))}canRecognizeWith(e){return Boolean(this.simultaneous[e.id])}emit(e){if(!e)return;let{state:r}=this;r<P.Ended&&this.manager.emit(this.options.event+Bi(r),e),this.manager.emit(this.options.event,e),e.additionalEvent&&this.manager.emit(e.additionalEvent,e),r>=P.Ended&&this.manager.emit(this.options.event+Bi(r),e)}tryEmit(e){this.canEmit()?this.emit(e):this.state=P.Failed}canEmit(){let e=0;for(;e<this.requireFail.length;){if(!(this.requireFail[e].state&(P.Failed|P.Possible)))return!1;e++}return!0}recognize(e){let r={...e};if(!this.options.enable){this.reset(),this.state=P.Failed;return}this.state&(P.Recognized|P.Cancelled|P.Failed)&&(this.state=P.Possible),this.state=this.process(r),this.state&(P.Began|P.Changed|P.Ended|P.Cancelled)&&this.tryEmit(r)}getEventNames(){return[this.options.event]}reset(){}};var Ot=class extends dt{attrTest(e){let r=this.options.pointers;return r===0||e.pointers.length===r}process(e){let{state:r}=this,{eventType:n}=e,i=r&(P.Began|P.Changed),s=this.attrTest(e);return i&&(n&v.Cancel||!s)?r|P.Cancelled:i||s?n&v.End?r|P.Ended:r&P.Began?r|P.Changed:P.Began:P.Failed}};var rd=["","start","move","end","cancel"],_e=class extends dt{constructor(e={}){super({enable:!0,event:"doubleclickdrag",pointers:1,interval:500,time:350,threshold:28,dragThreshold:1,pixelsPerScale:120,...e}),this._tapStart=null,this._lastTap=null,this._drag=null,this._emittedStart=!1}getTouchAction(){return[Le]}getEventNames(){return rd.map(e=>this.options.event+e)}process(e){let{options:r}=this;return e.pointers.length===r.pointers?e.eventType&v.Start?this._handleStart(e):e.eventType&v.Move?this._handleMove(e):e.eventType&v.Cancel?this._handleEnd(e,!0):e.eventType&v.End?this._handleEnd(e,!1):P.Failed:(this.reset(),P.Failed)}reset(){this._tapStart=null,this._lastTap=null,this._drag=null,this._emittedStart=!1}emit(e){if(e){if(this.state===P.Began){if(!this._drag?.active||this._emittedStart)return;this._emittedStart=!0,this.manager.emit(`${this.options.event}start`,e),this.manager.emit(this.options.event,e);return}if(this.state===P.Changed){if(!this._emittedStart)return;this.manager.emit(`${this.options.event}move`,e),this.manager.emit(this.options.event,e);return}if(this.state===P.Ended){if(!this._emittedStart)return;this.manager.emit(this.options.event,e),this.manager.emit(`${this.options.event}end`,e),this._emittedStart=!1;return}if(this.state===P.Cancelled){if(!this._emittedStart)return;this.manager.emit(this.options.event,e),this.manager.emit(`${this.options.event}cancel`,e),this._emittedStart=!1}}}_handleStart(e){let r=this._getPointerId(e);return this._lastTap&&this._isTapMatch(e,this._lastTap)?(this._tapStart=null,this._lastTap=null,this._drag={startCenter:e.center,pointerId:r,active:!1},this._emittedStart=!1,P.Began):(this._tapStart={center:e.center,timeStamp:e.timeStamp,pointerId:r},this._lastTap=null,this._drag=null,this._emittedStart=!1,P.Failed)}_handleMove(e){if(!this._drag||!this._isSamePointer(e,this._drag.pointerId))return P.Failed;let r=this._drag.startCenter.y-e.center.y;return!this._drag.active&&Math.abs(r)<this.options.dragThreshold?P.Began:(this._drag.active=!0,e.scale=Math.pow(2,r/this.options.pixelsPerScale),this._emittedStart?P.Changed:P.Began)}_handleEnd(e,r){if(this._drag&&this._isSamePointer(e,this._drag.pointerId)){let{active:n,startCenter:i}=this._drag;if(this._drag=null,this._tapStart=null,this._lastTap=null,!n)return this._emittedStart=!1,P.Failed;let s=i.y-e.center.y;return e.scale=Math.pow(2,s/this.options.pixelsPerScale),r?P.Cancelled:P.Ended}return!this._tapStart||!this._isSamePointer(e,this._tapStart.pointerId)?(r&&this.reset(),P.Failed):(this._isValidTap(e)?this._lastTap={center:e.center,timeStamp:e.timeStamp,pointerId:this._tapStart.pointerId}:this._lastTap=null,this._tapStart=null,P.Failed)}_isTapMatch(e,r){return e.timeStamp-r.timeStamp<=this.options.interval&&ze(e.center,r.center)<=this.options.threshold}_isValidTap(e){return e.deltaTime<=this.options.time&&e.distance<=this.options.threshold}_getPointerId(e){return"pointerId"in e.srcEvent?e.srcEvent.pointerId:null}_isSamePointer(e,r){return r===null||this._getPointerId(e)===r}};var Yt=class extends dt{constructor(e={}){super({enable:!0,event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10,...e}),this.pTime=null,this.pCenter=null,this._timer=null,this._input=null,this.count=0}getTouchAction(){return[Le]}process(e){let{options:r}=this,n=e.pointers.length===r.pointers,i=e.distance<r.threshold,s=e.deltaTime<r.time;if(this.reset(),e.eventType&v.Start&&this.count===0)return this.failTimeout();if(i&&s&&n){if(e.eventType!==v.End)return this.failTimeout();let o=this.pTime?e.timeStamp-this.pTime<r.interval:!0,a=!this.pCenter||ze(this.pCenter,e.center)<r.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,!a||!o?this.count=1:this.count+=1,this._input=e,this.count%r.taps===0)return this.hasRequireFailures()?(this._timer=setTimeout(()=>{this.state=P.Recognized,this.tryEmit(this._input)},r.interval),P.Began):P.Recognized}return P.Failed}failTimeout(){return this._timer=setTimeout(()=>{this.state=P.Failed},this.options.interval),P.Failed}reset(){clearTimeout(this._timer)}emit(e){this.state===P.Recognized&&(e.tapCount=this.count,this.manager.emit(this.options.event,e))}};var nd=["","start","move","end","cancel","up","down","left","right"],Vt=class extends Ot{constructor(e={}){super({enable:!0,pointers:1,event:"pan",threshold:10,direction:W.All,...e}),this.pX=null,this.pY=null}getTouchAction(){let{options:{direction:e}}=this,r=[];return e&W.Horizontal&&r.push(Fi),e&W.Vertical&&r.push(Di),r}getEventNames(){return nd.map(e=>this.options.event+e)}directionTest(e){let{options:r}=this,n=!0,{distance:i}=e,{direction:s}=e,o=e.deltaX,a=e.deltaY;return s&r.direction||(r.direction&W.Horizontal?(s=o===0?W.None:o<0?W.Left:W.Right,n=o!==this.pX,i=Math.abs(e.deltaX)):(s=a===0?W.None:a<0?W.Up:W.Down,n=a!==this.pY,i=Math.abs(e.deltaY))),e.direction=s,n&&i>r.threshold&&Boolean(s&r.direction)}attrTest(e){return super.attrTest(e)&&(Boolean(this.state&P.Began)||!(this.state&P.Began)&&this.directionTest(e))}emit(e){this.pX=e.deltaX,this.pY=e.deltaY;let r=W[e.direction].toLowerCase();r&&(e.additionalEvent=this.options.event+r),super.emit(e)}};var id=["","start","move","end","cancel","in","out"],ge=class extends Ot{constructor(e={}){super({enable:!0,event:"pinch",threshold:0,pointers:2,...e})}getTouchAction(){return[an]}getEventNames(){return id.map(e=>this.options.event+e)}attrTest(e){return super.attrTest(e)&&(Math.abs(e.scale-1)>this.options.threshold||Boolean(this.state&P.Began))}emit(e){if(e.scale!==1){let r=e.scale<1?"in":"out";e.additionalEvent=this.options.event+r}super.emit(e)}};var ya=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",S0=typeof window<"u"?window:global;var C0=ya.indexOf("firefox")!==-1;var Na={DEFAULT:"default",LNGLAT:"lnglat",METER_OFFSETS:"meter-offsets",LNGLAT_OFFSETS:"lnglat-offsets",CARTESIAN:"cartesian"};Object.defineProperty(Na,"IDENTITY",{get:()=>(ce.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),Na.CARTESIAN)});var Te={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0};var i3={multipan:[Vt,{threshold:10,direction:W.Vertical,pointers:2}],pinch:[ge,{},null,["multipan"]],pan:[Vt,{threshold:1},["pinch"],["multipan"]],dblclick:[Yt,{event:"dblclick",taps:2,enable:!1}],dblclickdrag:[_e,{event:"dblclickdrag",enable:!1},["dblclick"],null],click:[Yt,{event:"click"},["dblclickdrag"],["dblclick","dblclickdrag"]]};var ld=Math.PI/180,hd=fe(),Oa=[0,0,0],fd={unitsPerMeter:[1,1,1],metersPerUnit:[1,1,1]};function dd({width:t,height:e,orthographic:r,fovyRadians:n,focalDistance:i,padding:s,near:o,far:a}){let c=t/e,l=r?new Z().orthographic({fovy:n,aspect:c,focalDistance:i,near:o,far:a}):new Z().perspective({fovy:n,aspect:c,near:o,far:a});if(s){let{left:h=0,right:f=0,top:d=0,bottom:p=0}=s,_=K((h+t-f)/2,0,t)-t/2,g=K((d+e-p)/2,0,e)-e/2;l[8]-=_*2/t,l[9]+=g*2/e}return l}var Ui=class{constructor(e={}){this._frustumPlanes={};this.id=e.id||this.constructor.displayName||"viewport",this.x=e.x||0,this.y=e.y||0,this.width=e.width||1,this.height=e.height||1,this.zoom=e.zoom||0,this.padding=e.padding,this.distanceScales=e.distanceScales||fd,this.focalDistance=e.focalDistance||1,this.position=e.position||Oa,this.modelMatrix=e.modelMatrix||null;let{longitude:r,latitude:n}=e;this.isGeospatial=Number.isFinite(n)&&Number.isFinite(r),this._initProps(e),this._initMatrices(e),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}get subViewports(){return null}get metersPerPixel(){return this.distanceScales.metersPerUnit[2]/this.scale}get projectionMode(){return this.isGeospatial?this.zoom<12?Te.WEB_MERCATOR:Te.WEB_MERCATOR_AUTO_OFFSET:Te.IDENTITY}equals(e){return e instanceof Ui?this===e?!0:e.width===this.width&&e.height===this.height&&e.scale===this.scale&&It(e.projectionMatrix,this.projectionMatrix)&&It(e.viewMatrix,this.viewMatrix):!1}project(e,{topLeft:r=!0}={}){let n=this.projectPosition(e),i=nn(n,this.pixelProjectionMatrix),[s,o]=i,a=r?o:this.height-o;return e.length===2?[s,a]:[s,a,i[2]]}unproject(e,{topLeft:r=!0,targetZ:n}={}){let[i,s,o]=e,a=r?s:this.height-s,c=n&&n*this.distanceScales.unitsPerMeter[2],l=ue([i,a,o],this.pixelUnprojectionMatrix,c),[h,f,d]=this.unprojectPosition(l);return Number.isFinite(o)?[h,f,d]:Number.isFinite(n)?[h,f,n]:[h,f]}projectPosition(e){let[r,n]=this.projectFlat(e),i=(e[2]||0)*this.distanceScales.unitsPerMeter[2];return[r,n,i]}unprojectPosition(e){let[r,n]=this.unprojectFlat(e),i=(e[2]||0)*this.distanceScales.metersPerUnit[2];return[r,n,i]}projectFlat(e){if(this.isGeospatial){let r=rt(e);return r[1]=K(r[1],-318,830),r}return e}unprojectFlat(e){return this.isGeospatial?j(e):e}getBounds(e={}){let r={targetZ:e.z||0},n=this.unproject([0,0],r),i=this.unproject([this.width,0],r),s=this.unproject([0,this.height],r),o=this.unproject([this.width,this.height],r);return[Math.min(n[0],i[0],s[0],o[0]),Math.min(n[1],i[1],s[1],o[1]),Math.max(n[0],i[0],s[0],o[0]),Math.max(n[1],i[1],s[1],o[1])]}getDistanceScales(e){return e&&this.isGeospatial?pe({longitude:e[0],latitude:e[1],highPrecision:!0}):this.distanceScales}containsPixel({x:e,y:r,width:n=1,height:i=1}){return e<this.x+this.width&&this.x<e+n&&r<this.y+this.height&&this.y<r+i}getFrustumPlanes(){return this._frustumPlanes.near?this._frustumPlanes:(Object.assign(this._frustumPlanes,ba(this.viewProjectionMatrix)),this._frustumPlanes)}panByPosition(e,r,n){return null}_initProps(e){let r=e.longitude,n=e.latitude;this.isGeospatial&&(Number.isFinite(e.zoom)||(this.zoom=Ni({latitude:n})+Math.log2(this.focalDistance)),this.distanceScales=e.distanceScales||pe({latitude:n,longitude:r}));let i=Math.pow(2,this.zoom);this.scale=i;let{position:s,modelMatrix:o}=e,a=Oa;if(s&&(a=o?new Z(o).transformAsVector(s,[]):s),this.isGeospatial){let c=this.projectPosition([r,n,0]);this.center=new ct(a).scale(this.distanceScales.unitsPerMeter).add(c)}else this.center=this.projectPosition(a)}_initMatrices(e){let{viewMatrix:r=hd,projectionMatrix:n=null,orthographic:i=!1,fovyRadians:s,fovy:o=75,near:a=.1,far:c=1e3,padding:l=null,focalDistance:h=1}=e;this.viewMatrixUncentered=r,this.viewMatrix=new Z().multiplyRight(r).translate(new ct(this.center).negate()),this.projectionMatrix=n||dd({width:this.width,height:this.height,orthographic:i,fovyRadians:s||o*ld,focalDistance:h,padding:l,near:a,far:c});let f=fe();z.multiply(f,f,this.projectionMatrix),z.multiply(f,f,this.viewMatrix),this.viewProjectionMatrix=f,this.viewMatrixInverse=z.invert([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=Aa(this.viewMatrixInverse);let d=fe(),p=fe();z.scale(d,d,[this.width/2,-this.height/2,1]),z.translate(d,d,[1,-1,0]),z.multiply(p,d,this.viewProjectionMatrix),this.pixelProjectionMatrix=p,this.pixelUnprojectionMatrix=z.invert(fe(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||ce.warn("Pixel project matrix not invertible")()}},kt=Ui;kt.displayName="Viewport";var cn=class extends kt{constructor(r={}){let{latitude:n=0,longitude:i=0,zoom:s=0,pitch:o=0,bearing:a=0,nearZMultiplier:c=.1,farZMultiplier:l=1.01,nearZ:h,farZ:f,orthographic:d=!1,projectionMatrix:p,repeat:_=!1,worldOffset:g=0,position:u,padding:T,legacyMeterSizes:S=!1}=r,{width:R,height:E,altitude:A=1.5}=r,M=Math.pow(2,s);R=R||1,E=E||1;let m,b=null;if(p)A=p[5]/2,m=Nt(A);else{r.fovy?(m=r.fovy,A=zt(m)):m=Nt(A);let x;if(T){let{top:y=0,bottom:N=0}=T;x=[0,K((y+E-N)/2,0,E)-E/2]}b=wi({width:R,height:E,scale:M,center:u&&[0,0,u[2]*He(n)],offset:x,pitch:o,fovy:m,nearZMultiplier:c,farZMultiplier:l}),Number.isFinite(h)&&(b.near=h),Number.isFinite(f)&&(b.far=f)}let C=rn({height:E,pitch:o,bearing:a,scale:M,altitude:A});g&&(C=new Z().translate([512*g,0,0]).multiplyLeft(C));super({...r,width:R,height:E,viewMatrix:C,longitude:i,latitude:n,zoom:s,...b,fovy:m,focalDistance:A});this.latitude=n,this.longitude=i,this.zoom=s,this.pitch=o,this.bearing=a,this.altitude=A,this.fovy=m,this.orthographic=d,this._subViewports=_?[]:null,this._pseudoMeters=S,Object.freeze(this)}get subViewports(){if(this._subViewports&&!this._subViewports.length){let r=this.getBounds(),n=Math.floor((r[0]+180)/360),i=Math.ceil((r[2]-180)/360);for(let s=n;s<=i;s++){let o=s?new cn({...this,worldOffset:s}):this;this._subViewports.push(o)}}return this._subViewports}projectPosition(r){if(this._pseudoMeters)return super.projectPosition(r);let[n,i]=this.projectFlat(r),s=(r[2]||0)*He(r[1]);return[n,i,s]}unprojectPosition(r){if(this._pseudoMeters)return super.unprojectPosition(r);let[n,i]=this.unprojectFlat(r),s=(r[2]||0)/He(i);return[n,i,s]}addMetersToLngLat(r,n){return Oi(r,n)}panByPosition(r,n,i){let s=ue(n,this.pixelUnprojectionMatrix),o=this.projectFlat(r),a=G.add([],o,G.negate([],s)),c=G.add([],this.center,a),[l,h]=this.unprojectFlat(c);return{longitude:l,latitude:h}}panByPosition3D(r,n){let i=r[2]||0,s=G.sub([],r,this.unproject(n,{targetZ:i}));return{longitude:this.longitude+s[0],latitude:this.latitude+s[1]}}getBounds(r={}){let n=on(this,r.z||0);return[Math.min(n[0][0],n[1][0],n[2][0],n[3][0]),Math.min(n[0][1],n[1][1],n[2][1],n[3][1]),Math.max(n[0][0],n[1][0],n[2][0],n[3][0]),Math.max(n[0][1],n[1][1],n[2][1],n[3][1])]}fitBounds(r,n={}){let{width:i,height:s}=this,{longitude:o,latitude:a,zoom:c}=sn({width:i,height:s,bounds:r,...n});return new cn({width:i,height:s,longitude:o,latitude:a,zoom:c})}},me=cn;me.displayName="WebMercatorViewport";var Ye=class{constructor(e){this._inProgress=!1;this._handle=null;this.time=0;this.settings={duration:0};this._timeline=e}get inProgress(){return this._inProgress}start(e){this.cancel(),this.settings=e,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:e,settings:r}=this;this._handle=e.addChannel({delay:e.getTime(),duration:r.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var wa=()=>{},Vi={BREAK:1,SNAP_TO_END:2,IGNORE:3},pd=t=>t,ud=Vi.BREAK,Ke=class{constructor(e){this._onTransitionUpdate=e=>{let{time:r,settings:{interpolator:n,startProps:i,endProps:s,duration:o,easing:a}}=e,c=a(r/o),l=n.interpolateProps(i,s,c);this.propsInTransition=this.getControllerState({...this.props,...l}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})};this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new Ye(e.timeline),this.onViewStateChange=e.onViewStateChange||wa,this.onStateChange=e.onStateChange||wa}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let r=!1,n=this.props;if(this.props=e,!n||this._shouldIgnoreViewportChange(n,e))return!1;if(this._isTransitionEnabled(e)){let i=n;if(this.transition.inProgress){let{interruption:s,endProps:o}=this.transition.settings;i={...n,...s===Vi.SNAP_TO_END?o:this.propsInTransition||n}}this._triggerTransition(i,e),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:r,transitionInterpolator:n}=e;return(r>0||r==="auto")&&Boolean(n)}_isUpdateDueToCurrentTransition(e){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition):!1}_shouldIgnoreViewportChange(e,r){return this.transition.inProgress?this.transition.settings.interruption===Vi.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(e,r):!0}_triggerTransition(e,r){let n=this.getControllerState(e),i=this.getControllerState(r).shortestPathFrom(n),s=r.transitionInterpolator,o=s.getDuration?s.getDuration(e,r):r.transitionDuration;if(o===0)return;let a=s.initializeProps(e,i);this.propsInTransition={};let c={duration:o,easing:r.transitionEasing||pd,interpolator:s,interruption:r.transitionInterruption||ud,startProps:a.start,endProps:a.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(c),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(e){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),e?.(r)}}};function Kt(t,e){if(!t)throw new Error(e||"deck.gl: assertion failed.")}var Ze=class{constructor(e){let{compare:r,extract:n,required:i}=e;this._propsToCompare=r,this._propsToExtract=n||r,this._requiredProps=i}arePropsEqual(e,r){for(let n of this._propsToCompare)if(!(n in e)||!(n in r)||!It(e[n],r[n]))return!1;return!0}initializeProps(e,r){let n={},i={};for(let s of this._propsToExtract)(s in e||s in r)&&(n[s]=e[s],i[s]=r[s]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(e,r){return r.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(r=>{let n=e[r];Kt(Number.isFinite(n)||Array.isArray(n),`${r} is required for transition`)})}};var Re=Math.PI/180,Da=180/Math.PI,hn=6370972,Ee=256;function _d(){let t=Ee/hn,e=Math.PI/180*Ee;return{unitsPerMeter:[t,t,t],unitsPerMeter2:[0,0,0],metersPerUnit:[1/t,1/t,1/t],unitsPerDegree:[e,e,t],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,1/t]}}var Ae=class extends kt{constructor(r={}){let{longitude:n=0,bearing:i=0,pitch:s=0,zoom:o=0,nearZMultiplier:a=.5,farZMultiplier:c=1,resolution:l=10}=r,{latitude:h=0,height:f,altitude:d=1.5,fovy:p}=r;h=Math.max(Math.min(h,90),-90),f=f||1,p?d=zt(p):p=Nt(d);let _=Math.max(Math.min(h,ft),-ft),g=Math.pow(2,o-ln(_)),u=s*Re,T=r.nearZ??a,S=r.farZ??(d+Ee*2*g/f/Math.max(Math.cos(u),.1))*c,R=new Z().lookAt({eye:[0,-d,0],up:[0,0,1]}).rotateX(-u).rotateY(-i*Re).rotateX(h*Re).rotateZ(-n*Re).scale(g/f);super({...r,height:f,viewMatrix:R,longitude:n,latitude:h,zoom:o,distanceScales:_d(),fovy:p,focalDistance:d,near:T,far:S});this.scale=g,this.latitude=h,this.longitude=n,this.bearing=i,this.pitch=s,this.fovy=p,this.resolution=l}get projectionMode(){return Te.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(r={}){let n={targetZ:r.z||0},i=this.unproject([0,this.height/2],n),s=this.unproject([this.width/2,0],n),o=this.unproject([this.width,this.height/2],n),a=this.unproject([this.width/2,this.height],n);return o[0]<this.longitude&&(o[0]+=360),i[0]>this.longitude&&(i[0]-=360),[Math.min(i[0],o[0],s[0],a[0]),Math.min(i[1],o[1],s[1],a[1]),Math.max(i[0],o[0],s[0],a[0]),Math.max(i[1],o[1],s[1],a[1])]}unproject(r,{topLeft:n=!0,targetZ:i}={}){let[s,o,a]=r,c=n?o:this.height-o,{pixelUnprojectionMatrix:l}=this,h;if(Number.isFinite(a))h=ki(l,[s,c,a,1]);else{let _=ki(l,[s,c,-1,1]),g=ki(l,[s,c,1,1]),u=((i||0)/hn+1)*Ee,T=tt.sqrLen(tt.sub([],_,g)),S=tt.sqrLen(_),R=tt.sqrLen(g),A=4*((4*S*R-(T-S-R)**2)/16)/T,M=Math.sqrt(S-A),m=Math.sqrt(Math.max(0,u*u-A)),b=(M-m)/Math.sqrt(T);h=tt.lerp([],_,g,b)}let[f,d,p]=this.unprojectPosition(h);return Number.isFinite(a)?[f,d,p]:Number.isFinite(i)?[f,d,i]:[f,d]}projectPosition(r){let[n,i,s=0]=r,o=n*Re,a=i*Re,c=Math.cos(a),l=(s/hn+1)*Ee;return[Math.sin(o)*c*l,-Math.cos(o)*c*l,Math.sin(a)*l]}unprojectPosition(r){let[n,i,s]=r,o=tt.len(r),a=Math.asin(s/o),l=Math.atan2(n,-i)*Da,h=a*Da,f=(o/Ee-1)*hn;return[l,h,f]}projectFlat(r){return r}unprojectFlat(r){return r}panByPosition([r,n,i],s,o){let c=.25/Math.pow(2,this.zoom-ln(this.latitude)),l=r+c*(o[0]-s[0]),h=n-c*(o[1]-s[1]);h=Math.max(Math.min(h,90),-90);let f={longitude:l,latitude:h,zoom:i-ln(n)};return f.zoom+=ln(f.latitude),f}};Ae.displayName="GlobeViewport";function ln(t,e){e&&(t=Math.max(Math.min(t,ft),-ft));let r=Math.PI*Math.cos(t*Math.PI/180);return Math.log2(r)}function ki(t,e){let r=yt.transformMat4([],e,t);return yt.scale(r,r,1/r[3]),r}var gd=["longitude","latitude","zoom","bearing","pitch"],Td=["longitude","latitude","zoom"],Zt=class extends Ze{constructor(r={}){let n=Array.isArray(r)?r:r.transitionProps,i=Array.isArray(r)?{}:r;i.transitionProps=Array.isArray(n)?{compare:n,required:n}:n||{compare:gd,required:Td};super(i.transitionProps);this.opts=i}initializeProps(r,n){let i=super.initializeProps(r,n),{makeViewport:s,around:o}=this.opts;if(s&&o)if(s(r)instanceof Ae)ce.warn("around not supported in GlobeView")();else{let c=s(r),l=s(n),h=c.unproject(o);i.start.around=o,Object.assign(i.end,{around:l.project(h),aroundPosition:h,width:n.width,height:n.height})}return i}interpolateProps(r,n,i){let s={};for(let o of this._propsToExtract)s[o]=Ue(r[o]||0,n[o]||0,i);if(n.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport({...n,...s});Object.assign(s,o.panByPosition(n.aroundPosition,Ue(r.around,n.around,i)))}return s}};var pt={transitionDuration:0},md=300,fn=t=>1-(1-t)*(1-t),jt={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],MULTI_PAN:["multipanstart","multipanmove","multipanend"],DOUBLE_CLICK:["dblclick"],DOUBLE_CLICK_DRAG:["dblclickdragstart","dblclickdragmove","dblclickdragend","dblclickdragcancel"],KEYBOARD:["keydown"]},$t={},je=class{constructor(e){this.state={};this._events={};this._interactionState={isDragging:!1};this._customEvents=[];this._eventStartBlocked=null;this._panMove=!1;this._doubleClickDragAnchor=null;this._suppressDoubleClickUntil=0;this.invertPan=!1;this.dragMode="rotate";this.inertia=0;this.scrollZoom=!0;this.dragPan=!0;this.dragRotate=!0;this.doubleClickZoom=!0;this.doubleClickDragZoom=!0;this.touchZoom=!0;this.touchRotate=!1;this.keyboard=!0;this.transitionManager=new Ke({...e,getControllerState:r=>new this.ControllerState(r),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=e.eventManager,this.onViewStateChange=e.onViewStateChange||(()=>{}),this.onStateChange=e.onStateChange||(()=>{}),this.makeViewport=e.makeViewport,this.pickPosition=e.pickPosition}set events(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.props&&this.setProps(this.props)}finalize(){for(let e in this._events)this._events[e]&&this.eventManager?.off(e,this.handleEvent);this.transitionManager.finalize()}handleEvent(e){this._controllerState=void 0;let r=this._eventStartBlocked;switch(e.type){case"panstart":return r?!1:this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return r?!1:this._onPinchStart(e);case"pinchmove":return this._onPinch(e);case"pinchend":return this._onPinchEnd(e);case"multipanstart":return r?!1:this._onMultiPanStart(e);case"multipanmove":return this._onMultiPan(e);case"multipanend":return this._onMultiPanEnd(e);case"dblclick":return this._onDoubleClick(e);case"dblclickdragstart":return r?!1:this._onDoubleClickDragStart(e);case"dblclickdragmove":return this._onDoubleClickDrag(e);case"dblclickdragend":case"dblclickdragcancel":return this._onDoubleClickDragEnd(e);case"wheel":return this._onWheel(e);case"keydown":return this._onKeyDown(e);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(e){let{x:r,y:n}=this.props,{offsetCenter:i}=e;return[i.x-r,i.y-n]}isPointInBounds(e,r){let{width:n,height:i}=this.props;if(r&&r.handled)return!1;let s=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=i;return s&&r&&r.stopPropagation(),s}isFunctionKeyPressed(e){let{srcEvent:r}=e;return Boolean(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(e){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},e);this._eventStartBlocked=r}setProps(e){e.dragMode&&(this.dragMode=e.dragMode);let r=this.props;this.props=e,"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);let{inertia:n}=e;this.inertia=Number.isFinite(n)?n:n===!0?md:0;let{scrollZoom:i=!0,dragPan:s=!0,dragRotate:o=!0,doubleClickZoom:a=!0,doubleClickDragZoom:c=!1,touchZoom:l=!0,touchRotate:h=!1,keyboard:f=!0}=e,d=Boolean(this.onViewStateChange);if(this.toggleEvents(jt.WHEEL,d&&i),this.toggleEvents(jt.PAN,d),this.toggleEvents(jt.PINCH,d&&(l||h)),this.toggleEvents(jt.MULTI_PAN,d&&h),this.toggleEvents(jt.DOUBLE_CLICK,d&&a),this.toggleEvents(jt.DOUBLE_CLICK_DRAG,d&&c),this.toggleEvents(jt.KEYBOARD,d&&f),this.scrollZoom=i,this.dragPan=s,this.dragRotate=o,this.doubleClickZoom=a,this.doubleClickDragZoom=c,this.touchZoom=l,this.touchRotate=h,this.keyboard=f,(!r||r.height!==e.height||r.width!==e.width||r.maxBounds!==e.maxBounds)&&e.maxBounds){let _=new this.ControllerState({...e,makeViewport:this.makeViewport}),g=_.getViewportProps();Object.keys(g).some(T=>!ie(g[T],e[T],1))&&this.updateViewport(_)}}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,r){this.eventManager&&e.forEach(n=>{this._events[n]!==r&&(this._events[n]=r,r?this.eventManager.on(n,this.handleEvent):this.eventManager.off(n,this.handleEvent))})}updateViewport(e,r=null,n={}){let i={...e.getViewportProps(),...r},s=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(n),s){let o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:o,viewId:this.props.id})}}_onTransition(e){this.onViewStateChange({...e,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(e){Object.assign(this._interactionState,e),this.onStateChange(this._interactionState)}_onPanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(n=!n);let i=this.controllerState[n?"panStart":"rotateStart"]({pos:r});return this._panMove=n,this.updateViewport(i,pt,{isDragging:!0}),!0}_onPan(e){return this.isDragging()?this._panMove?this._onPanMove(e):this._onPanRotate(e):!1}_onPanEnd(e){return this.isDragging()?this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e):!1}_onPanMove(e){if(!this.dragPan)return!1;let r=this.getCenter(e),n=this.controllerState.pan({pos:r});return this.updateViewport(n,pt,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:r}=this;if(this.dragPan&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],s=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:fn},{isDragging:!1,isPanning:!0})}else{let n=this.controllerState.panEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let r=this.getCenter(e),n=this.controllerState.rotate({pos:r});return this.updateViewport(n,pt,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:r}=this;if(this.dragRotate&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],s=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:fn},{isDragging:!1,isRotating:!0})}else{let n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(e){if(!this.scrollZoom)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;e.srcEvent.preventDefault();let{speed:n=.01,smooth:i=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:s}=e,o=2/(1+Math.exp(-Math.abs(s*n)));s<0&&o!==0&&(o=1/o);let a=i?{...this._getTransitionProps({around:r}),transitionDuration:250}:pt,c=this.controllerState.zoom({pos:r,scale:o});return this.updateViewport(c,a,{isZooming:!0,isPanning:!0}),i||this._setInteractionState({isZooming:!1,isPanning:!1}),!0}_onMultiPanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.controllerState.rotateStart({pos:r});return this.updateViewport(n,pt,{isDragging:!0}),!0}_onMultiPan(e){if(!this.touchRotate||!this.isDragging())return!1;let r=this.getCenter(e);r[0]-=e.deltaX;let n=this.controllerState.rotate({pos:r});return this.updateViewport(n,pt,{isDragging:!0,isRotating:!0}),!0}_onMultiPanEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this;if(this.touchRotate&&r&&e.velocityY){let n=this.getCenter(e),i=[n[0],n[1]+=e.velocityY*r/2],s=this.controllerState.rotate({pos:i});this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:fn},{isDragging:!1,isRotating:!0}),this.blockEvents(r)}else{let n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(e){this._doubleClickDragAnchor=null;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return $t._startPinchRotation=e.rotation,$t._lastPinchEvent=e,this.updateViewport(n,pt,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:n}=e,i=this.getCenter(e);r=r.zoom({pos:i,scale:n})}if(this.touchRotate){let{rotation:n}=e;r=r.rotate({deltaAngleX:$t._startPinchRotation-n})}return this.updateViewport(r,pt,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),$t._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:n}=$t;if(this.touchZoom&&r&&n&&e.scale!==n.scale){let i=this.getCenter(e),s=this.controllerState.rotateEnd(),o=Math.log2(e.scale),a=(o-Math.log2(n.scale))/(e.deltaTime-n.deltaTime),c=Math.pow(2,o+a*r/2);s=s.zoom({pos:i,scale:c}).zoomEnd(),this.updateViewport(s,{...this._getTransitionProps({around:i}),transitionDuration:r,transitionEasing:fn},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let i=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return $t._startPinchRotation=null,$t._lastPinchEvent=null,!0}_onDoubleClick(e){if(!this.doubleClickZoom||Date.now()<this._suppressDoubleClickUntil)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e),i=this.controllerState.zoom({pos:r,scale:n?.5:2});return this.updateViewport(i,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onDoubleClickDragStart(e){if(!this.doubleClickDragZoom)return this._doubleClickDragAnchor=null,!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return this._doubleClickDragAnchor=null,!1;this._doubleClickDragAnchor=r;let n=this.controllerState.zoomStart({pos:r});return e.scale!==1&&(n=n.zoom({pos:r,scale:e.scale})),this.updateViewport(n,pt,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDrag(e){let r=this._doubleClickDragAnchor;if(!r)return!1;let n=this.controllerState.zoom({pos:r,scale:e.scale});return this.updateViewport(n,pt,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDragEnd(e){if(!this._doubleClickDragAnchor)return!1;this._doubleClickDragAnchor=null;let r=this.controllerState.zoomEnd();return this.updateViewport(r,null,{isDragging:!1,isPanning:!1,isZooming:!1}),this._suppressDoubleClickUntil=Date.now()+100,this.blockEvents(100),!0}_onKeyDown(e){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(e),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:s,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:a}=this,c,l={};switch(e.srcEvent.code){case"Minus":c=r?a.zoomOut(n).zoomOut(n):a.zoomOut(n),l.isZooming=!0;break;case"Equal":c=r?a.zoomIn(n).zoomIn(n):a.zoomIn(n),l.isZooming=!0;break;case"ArrowLeft":r?(c=a.rotateLeft(s),l.isRotating=!0):(c=a.moveLeft(i),l.isPanning=!0);break;case"ArrowRight":r?(c=a.rotateRight(s),l.isRotating=!0):(c=a.moveRight(i),l.isPanning=!0);break;case"ArrowUp":r?(c=a.rotateUp(o),l.isRotating=!0):(c=a.moveUp(i),l.isPanning=!0);break;case"ArrowDown":r?(c=a.rotateDown(o),l.isRotating=!0):(c=a.moveDown(i),l.isPanning=!0);break;default:return!1}return this.updateViewport(c,this._getTransitionProps(),l),!0}_getTransitionProps(e){let{transition:r}=this;return!r||!r.transitionInterpolator?pt:e?{...r,transitionInterpolator:new Zt({...e,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var $e=class{constructor(e,r,n){this.makeViewport=n,this._viewportProps=this.applyConstraints(e),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var Fa=5,Rd=1.2,Ba=512,va=[[-1/0,-90],[1/0,90]];function dn([t,e]){if(Math.abs(e)>90&&(e=Math.sign(e)*90),Number.isFinite(t)){let[n,i]=rt([t,e]);return[n,K(i,0,Ba)]}let[,r]=rt([0,e]);return[t,K(r,0,Ba)]}var Xi=class extends $e{constructor(r){let{width:n,height:i,latitude:s,longitude:o,zoom:a,bearing:c=0,pitch:l=0,altitude:h=1.5,position:f=[0,0,0],maxZoom:d=20,minZoom:p=0,maxPitch:_=60,minPitch:g=0,startPanLngLat:u,startZoomLngLat:T,startRotatePos:S,startRotateLngLat:R,startBearing:E,startPitch:A,startZoom:M,normalize:m=!0}=r;Kt(Number.isFinite(o)),Kt(Number.isFinite(s)),Kt(Number.isFinite(a));let b=r.maxBounds||(m?va:null);super({width:n,height:i,latitude:s,longitude:o,zoom:a,bearing:c,pitch:l,altitude:h,maxZoom:d,minZoom:p,maxPitch:_,minPitch:g,normalize:m,position:f,maxBounds:b},{startPanLngLat:u,startZoomLngLat:T,startRotatePos:S,startRotateLngLat:R,startBearing:E,startPitch:A,startZoom:M},r.makeViewport);this.getAltitude=r.getAltitude}panStart({pos:r}){return this._getUpdatedState({startPanLngLat:this._unproject(r)})}pan({pos:r,startPos:n}){let i=this.getState().startPanLngLat||this._unproject(n);if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,r);return this._getUpdatedState(o)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:r}){let n=this.getAltitude?.(r);return this._getUpdatedState({startRotatePos:r,startRotateLngLat:n!==void 0?this._unproject3D(r,n):void 0,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:r,deltaAngleX:n=0,deltaAngleY:i=0}){let{startRotatePos:s,startRotateLngLat:o,startBearing:a,startPitch:c}=this.getState();if(!s||a===void 0||c===void 0)return this;let l;if(r?l=this._getNewRotation(r,s,c,a):l={bearing:a+n,pitch:c+i},o){let h=this.makeViewport({...this.getViewportProps(),...l}),f="panByPosition3D"in h?"panByPosition3D":"panByPosition";return this._getUpdatedState({...l,...h[f](o,s)})}return this._getUpdatedState(l)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startRotateLngLat:null,startBearing:null,startPitch:null})}zoomStart({pos:r}){return this._getUpdatedState({startZoomLngLat:this._unproject(r),startZoom:this.getViewportProps().zoom})}zoom({pos:r,startPos:n,scale:i}){let{startZoom:s,startZoomLngLat:o}=this.getState();if(o||(s=this.getViewportProps().zoom,o=this._unproject(n)||this._unproject(r)),!o)return this;let a=this._constrainZoom(s+Math.log2(i)),c=this.makeViewport({...this.getViewportProps(),zoom:a});return this._getUpdatedState({zoom:a,...c.panByPosition(o,r)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(r=2){return this._zoomFromCenter(r)}zoomOut(r=2){return this._zoomFromCenter(1/r)}moveLeft(r=100){return this._panFromCenter([r,0])}moveRight(r=100){return this._panFromCenter([-r,0])}moveUp(r=100){return this._panFromCenter([0,r])}moveDown(r=100){return this._panFromCenter([0,-r])}rotateLeft(r=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-r})}rotateRight(r=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+r})}rotateUp(r=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+r})}rotateDown(r=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-r})}shortestPathFrom(r){let n=r.getViewportProps(),i={...this.getViewportProps()},{bearing:s,longitude:o}=i;return Math.abs(s-n.bearing)>180&&(i.bearing=s<0?s+360:s-360),Math.abs(o-n.longitude)>180&&(i.longitude=o<0?o+360:o-360),i}applyConstraints(r){let{maxPitch:n,minPitch:i,pitch:s,longitude:o,bearing:a,normalize:c,maxBounds:l}=r;if(c&&((o<-180||o>180)&&(r.longitude=Pi(o+180,360)-180),(a<-180||a>180)&&(r.bearing=Pi(a+180,360)-180)),r.pitch=K(s,i,n),r.zoom=this._constrainZoom(r.zoom,r),l){let h=dn(l[0]),f=dn(l[1]),d=2**r.zoom,p=r.width/2/d,_=r.height/2/d,[g,u]=j([h[0]+p,h[1]+_]),[T,S]=j([f[0]-p,f[1]-_]);r.longitude=K(r.longitude,g,T),r.latitude=K(r.latitude,u,S)}return r}_constrainZoom(r,n){n||=this.getViewportProps();let{maxZoom:i,maxBounds:s}=n,o=s!==null&&n.width>0&&n.height>0,{minZoom:a}=n;if(o){let c=dn(s[0]),l=dn(s[1]),h=l[0]-c[0],f=l[1]-c[1];Number.isFinite(h)&&h>0&&(a=Math.max(a,Math.log2(n.width/h))),Number.isFinite(f)&&f>0&&(a=Math.max(a,Math.log2(n.height/f))),a>i&&(a=i)}return K(r,a,i)}_zoomFromCenter(r){let{width:n,height:i}=this.getViewportProps();return this.zoom({pos:[n/2,i/2],scale:r})}_panFromCenter(r){let{width:n,height:i}=this.getViewportProps();return this.pan({startPos:[n/2,i/2],pos:[n/2+r[0],i/2+r[1]]})}_getUpdatedState(r){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...r})}_unproject(r){let n=this.makeViewport(this.getViewportProps());return r&&n.unproject(r)}_unproject3D(r,n){return this.makeViewport(this.getViewportProps()).unproject(r,{targetZ:n})}_getNewRotation(r,n,i,s){let o=r[0]-n[0],a=r[1]-n[1],c=r[1],l=n[1],{width:h,height:f}=this.getViewportProps(),d=o/h,p=0;a>0?Math.abs(f-l)>Fa&&(p=a/(l-f)*Rd):a<0&&l>Fa&&(p=1-c/l),p=K(p,-1,1);let{minPitch:_,maxPitch:g}=this.getViewportProps(),u=s+180*d,T=i;return p>0?T=i+p*(g-i):p<0&&(T=i-p*(_-i)),{pitch:T,bearing:u}}},qe=class extends je{constructor(){super(...arguments);this.ControllerState=Xi;this.transition={transitionDuration:300,transitionInterpolator:new Zt({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})};this.dragMode="pan";this.rotationPivot="center";this._getAltitude=r=>{if(this.rotationPivot==="2d")return 0;if(this.rotationPivot==="3d"&&this.pickPosition){let{x:n,y:i}=this.props,s=this.pickPosition(n+r[0],i+r[1]);if(s&&s.coordinate&&s.coordinate.length>=3)return s.coordinate[2]}}}setProps(r){"rotationPivot"in r&&(this.rotationPivot=r.rotationPivot||"center"),r.getAltitude=this._getAltitude,r.position=r.position||[0,0,0],r.maxBounds=r.maxBounds||(r.normalize===!1?null:va),super.setProps(r)}updateViewport(r,n=null,i={}){let s=r.getState();i.isDragging&&s.startRotateLngLat?i={...i,rotationPivotPosition:s.startRotateLngLat}:i.isDragging===!1&&(i={...i,rotationPivotPosition:void 0}),super.updateViewport(r,n,i)}};var be=class extends ve{constructor(e={}){super(e)}getViewportType(){return me}get ControllerType(){return qe}};be.displayName="MapView";var Ed=5916575505e-1,Ad=78271.484,pn=111320,bd=55*Math.PI/180,Sd=65,Md=80;function xd(t,e){let r=(t.latitude+e.latitude)/2*Math.PI/180,n=(t.latitude-e.latitude)*pn,i=(t.longitude-e.longitude)*pn*Math.cos(r);return Math.sqrt(n*n+i*i)}function Pd(t,e,r,n,i){let s=t.toMap({x:n/2,y:i/2}),o=t.toMap({x:n/2+1,y:i/2});if(s&&o){let a=xd(s,o);if(a>0){let c=r*Math.PI/180;return Math.log2(Ad*Math.cos(c)/a)}}return Math.log2(Ed/t.scale)-1}function Cd(t,e,r){let n=Math.max(0,Math.min(1,(r-t)/(e-t)));return n*n*(3-2*n)}function Id(t,e){let r=t/e;return .5/(Math.tan(bd/2)/Math.sqrt(1+r*r))}function yd(t,e,r,n){let i=Id(r,n),s=Cd(Sd,Md,t);return e*(1-s)+i*s}function Nd(t,e,r,n,i,s){return{views:new be({id:"arcgis-scene"}),viewState:{"arcgis-scene":{id:"arcgis-scene",longitude:e,latitude:r,zoom:n,pitch:t.camera.tilt,bearing:t.camera.heading,altitude:s,position:[0,0,0],resolution:i}}}}function Wi(t,e){class r{constructor(i,s){if(this.resources=null,this.cancelInitialization=null,this.renderNode=null,i&&typeof i=="object"&&"view"in i){let{view:l,...h}=i;this.view=l,this.deck=new t(h)}else this.view=i,this.deck=new t(s);let o=!1,a=this,c=e.createSubclass({consumes:{required:["composite-color"]},produces:"composite-color",initialize(){},render(l){let h=this,f=l.find(U=>U.name==="composite-color");if(!a.resources&&!o){let U=h.gl;if(U){o=!0;let ut=!1;a.cancelInitialization=()=>{ut=!0},Lr.call(a,U).then(Q=>{if(o=!1,ut){ne(Q);return}a.deck.on("change",Je=>Q.deck.setProps(Je)),Q.deck.setProps(a.deck.toJSON()),a.resources=Q,h.requestRender()}).catch(Q=>{o=!1,console.error("DeckRenderer: failed to initialize resources",Q)})}return f}if(!a.resources)return f;let d=h.bindRenderTarget(),p=h.gl,_=window.devicePixelRatio||1,g=p.drawingBufferWidth/_,u=p.drawingBufferHeight/_,T=a.view.camera.position,S=a.view.toMap({x:g/2,y:u/2}),R=S?S.latitude:a.view.center.latitude,E=S?S.longitude:a.view.center.longitude,A=(R+T.latitude)/2*Math.PI/180,M=(T.latitude-R)*pn,m=(T.longitude-E)*pn*Math.cos(A),b=Math.sqrt(M*M+m*m),C=Math.sqrt(b*b+T.z*T.z),x=Pd(a.view,E,R,g,u),y=u*a.view.resolution,N=C/y,w=yd(a.view.camera.tilt,N,g,u),O=Nd(a.view,E,R,x,a.view.resolution,w);try{O?Be(a.resources,{width:g,height:u,latitude:R,longitude:E,altitude:w,zoom:x,bearing:a.view.camera.heading,pitch:a.view.camera.tilt,...O}):Be(a.resources,{width:g,height:u,latitude:R,longitude:E,altitude:w,zoom:x,bearing:a.view.camera.heading,pitch:a.view.camera.tilt})}catch(U){console.error("DeckRenderer: render error",U)}return d}});this.renderNode=new c({view:this.view})}async setup(i){}dispose(){this.cancelInitialization?.(),this.resources&&(ne(this.resources),this.resources=null),this.renderNode=null}redraw(){this.renderNode?.requestRender()}render(){this.renderNode?.requestRender()}}return r}var Hi=F(Va(),1),Se;async function Od(t,e){let r=Array.isArray(t)?null:t;return await wd(r,e),Array.isArray(t)?(0,Hi.loadModules)(t,e).then(n=>({...Se,modules:n})):Se}async function wd(t,e){if(Se)return Se;if(t){let o=t.layers.Layer,a=t.core.Accessor,c=t.views["2d"].layers.BaseLayerViewGL2D,l=t.views["3d"].webgl.RenderNode;return ka(o,a,c,l)}let[r,n,i,s]=await(0,Hi.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/webgl/RenderNode"],e);return ka(r,n,i,s)}function ka(t,e,r,n){let i=_n(e),s=Yn(r),o=gn(i,t,s),a=Wi(i,n);return Se={DeckLayer:o,DeckRenderer:a},Se}return Ya(Qe);})();
|
|
29
|
+
`,bindings:{deckglTexture:n},parameters:{depthWriteEnabled:!1,depthCompare:"always",blendColorSrcFactor:"one",blendColorDstFactor:"one-minus-src-alpha",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha",blendColorOperation:"add",blendAlphaOperation:"add"},geometry:new Br.Geometry({topology:"triangle-strip",attributes:{pos:{size:2,value:new Int8Array([-1,-1,1,-1,-1,1,-1,1,1,1,1,-1])}}}),vertexCount:6,disableWarnings:!0}),s=r.createFramebuffer({id:"deckfbo",width:1,height:1,colorAttachments:[n],depthStencilAttachment:"depth16unorm"});return t.setProps({_framebuffer:s,_customRender:o=>{if(o==="arcgis"){let a=r.gl;a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),t._drawLayers(o)}else this.redraw()}}),{deck:t,texture:n,fbo:s,model:i}}function Pe(e,t){let{model:r,deck:n,fbo:i}=e,s=r.device;if(s instanceof Me){let o=s.getParametersWebGL(36006),{width:a,height:c,views:l,viewState:h,...u}=t,f=window.devicePixelRatio,d=Math.round(a*f),p=Math.round(c*f);i.resize({width:d,height:p});let g=i.colorAttachments[0].texture??i.colorAttachments[0];g!==e.texture&&(e.texture=g,r.setBindings({deckglTexture:g}));let m={width:a,height:c,viewState:h||u};l&&(m.views=l),n.setProps(m),n.redraw("arcgis");let{gl:b}=s;o?(b.bindFramebuffer(36160,o),b.drawBuffers([36064])):b.drawBuffers([1029]),b.enable(3042),b.blendFuncSeparate(1,771,1,771),b.blendEquationSeparate(32774,32774);let _={handle:o,width:d,height:p,colorAttachments:[null]},y=s.beginRenderPass({framebuffer:_,parameters:{viewport:[0,0,d,p]},clearColor:!1,clearDepth:!1});try{r.draw(y)}finally{y.end()}}}function Ht(e){e.deck.finalize(),e.model.destroy(),e.fbo.destroy(),e.texture.destroy()}function On(e){return e.createSubclass({properties:{cancelInitialization:null,resources:null},async attach(){let t=this.context,r=!1;this.cancelInitialization=()=>r=!0;let n=await Fr.call(this,t);if(r){Ht(n);return}this.resources=n,this.layer.deck.on("change",i=>n.deck.setProps(i)),n.deck.setProps(this.layer.deck.toJSON())},redraw(){this.requestRender()},detach(){this.cancelInitialization?.(),this.resources&&(Ht(this.resources),this.resources=null)},render(t){if(!this.resources)return;let[r,n]=this.view.state.size,i=t.state;Pe(this.resources,{width:r,height:n,latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(i.scale),bearing:-i.rotation,pitch:0})}})}var $c=/^(?:\d+\.?\d*|\.\d+)$/;function $(e){switch(typeof e){case"number":if(!Number.isFinite(e))throw new Error(`Could not parse position string ${e}`);return{type:"literal",value:e};case"string":try{let t=jc(e);return new Vn(t).parseExpression()}catch(t){let r=t instanceof Error?t.message:String(t);throw new Error(`Could not parse position string ${e}: ${r}`)}default:throw new Error(`Could not parse position string ${e}`)}}function Nn(e,t){switch(e.type){case"literal":return e.value;case"percentage":return Math.round(e.value*t);case"binary":let r=Nn(e.left,t),n=Nn(e.right,t);return e.operator==="+"?r+n:r-n;default:throw new Error("Unknown layout expression type")}}function j(e,t){return Nn(e,t)}function jc(e){let t=[],r=0;for(;r<e.length;){let n=e[r];if(/\s/.test(n)){r++;continue}if(n==="+"||n==="-"||n==="("||n===")"||n==="%"){t.push({type:"symbol",value:n}),r++;continue}if(yo(n)||n==="."){let i=r,s=n===".";for(r++;r<e.length;){let a=e[r];if(yo(a)){r++;continue}if(a==="."&&!s){s=!0,r++;continue}break}let o=e.slice(i,r);if(!$c.test(o))throw new Error("Invalid number token");t.push({type:"number",value:parseFloat(o)});continue}if(wo(n)){let i=r;for(;r<e.length&&wo(e[r]);)r++;let s=e.slice(i,r).toLowerCase();t.push({type:"word",value:s});continue}throw new Error("Invalid token in position string")}return t}var Vn=class{constructor(t){this.index=0;this.tokens=t}parseExpression(){let t=this.parseBinaryExpression();if(this.index<this.tokens.length)throw new Error("Unexpected token at end of expression");return t}parseBinaryExpression(){let t=this.parseFactor(),r=this.peek();for(;qc(r);){this.index++;let n=this.parseFactor();t={type:"binary",operator:r.value,left:t,right:n},r=this.peek()}return t}parseFactor(){let t=this.peek();if(!t)throw new Error("Unexpected end of expression");if(t.type==="symbol"&&t.value==="+")return this.index++,this.parseFactor();if(t.type==="symbol"&&t.value==="-"){this.index++;let r=this.parseFactor();return{type:"binary",operator:"-",left:{type:"literal",value:0},right:r}}if(t.type==="symbol"&&t.value==="("){this.index++;let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(t.type==="word"&&t.value==="calc"){if(this.index++,!this.consumeSymbol("("))throw new Error("Missing opening parenthesis after calc");let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(t.type==="number"){this.index++;let r=t.value,n=this.peek();return n&&n.type==="symbol"&&n.value==="%"?(this.index++,{type:"percentage",value:r/100}):n&&n.type==="word"&&n.value==="px"?(this.index++,{type:"literal",value:r}):{type:"literal",value:r}}throw new Error("Unexpected token in expression")}consumeSymbol(t){let r=this.peek();return r&&r.type==="symbol"&&r.value===t?(this.index++,!0):!1}peek(){return this.tokens[this.index]||null}};function yo(e){return e>="0"&&e<="9"}function wo(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function qc(e){return!!(e&&e.type==="symbol"&&(e.value==="+"||e.value==="-"))}function Bt(e,t,r){if(e===t)return!0;if(!r||!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Bt(e[n],t[n],r-1))return!1;return!0}if(Array.isArray(t))return!1;if(typeof e=="object"&&typeof t=="object"){let n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let s of n)if(!t.hasOwnProperty(s)||!Bt(e[s],t[s],r-1))return!1;return!0}return!1}function Eo(e,t){let r={...e};for(let n in t)n!=="id"&&(Array.isArray(r[n])&&Array.isArray(t[n])?r[n]=Xc(r[n],t[n]):r[n]=t[n]);return r}function Xc(e,t){e=e.slice();for(let r=0;r<t.length;r++){let n=t[r];Number.isFinite(n)&&(e[r]=n)}return e}var Ce=class{constructor(t){let{id:r,x:n=0,y:i=0,width:s="100%",height:o="100%",padding:a=null}=t;this.id=r||this.constructor.displayName||"view",this.props={...t,id:this.id},this._x=$(n),this._y=$(i),this._width=$(s),this._height=$(o),this._padding=a&&{left:$(a.left||0),right:$(a.right||0),top:$(a.top||0),bottom:$(a.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(t){return this===t?!0:this.constructor===t.constructor&&Bt(this.props,t.props,2)}clone(t){let r=this.constructor;return new r({...this.props,...t})}makeViewport({width:t,height:r,viewState:n}){n=this.filterViewState(n);let i=this.getDimensions({width:t,height:r});if(!i.height||!i.width)return null;let s=this.getViewportType(n);return new s({...n,...this.props,...i})}getViewStateId(){let{viewState:t}=this.props;return typeof t=="string"?t:t?.id||this.id}filterViewState(t){return this.props.viewState&&typeof this.props.viewState=="object"?this.props.viewState.id?Eo(t,this.props.viewState):this.props.viewState:t}getDimensions({width:t,height:r}){let n={x:j(this._x,t),y:j(this._y,r),width:j(this._width,t),height:j(this._height,r)};return this._padding&&(n.padding={left:j(this._padding.left,t),top:j(this._padding.top,r),right:j(this._padding.right,t),bottom:j(this._padding.bottom,r)}),n}get controller(){let t=this.props.controller;return t?t===!0?{type:this.ControllerType}:typeof t=="function"?{type:t}:{type:this.ControllerType,...t}:null}};ve();function Qt(e,t){if(!e)throw new Error(t||"Assertion failed")}function Gn(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return Qt(Number.isFinite(t)&&t>=0),t}function To(e){let{logLevel:t,message:r}=e;e.logLevel=Gn(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let i=typeof e.message;return Qt(i==="string"||i==="object"),Object.assign(e,{args:n},e.opts)}var Ft=()=>{},Or=class{constructor({level:t=0}={}){this.userData={},this._onceCache=new Set,this._level=t}set level(t){this.setLevel(t)}get level(){return this.getLevel()}setLevel(t){return this._level=t,this}getLevel(){return this._level}warn(t,...r){return this._log("warn",0,t,r,{once:!0})}error(t,...r){return this._log("error",0,t,r)}log(t,r,...n){return this._log("log",t,r,n)}info(t,r,...n){return this._log("info",t,r,n)}once(t,r,...n){return this._log("once",t,r,n,{once:!0})}_log(t,r,n,i,s={}){let o=To({logLevel:r,message:n,args:this._buildArgs(r,n,i),opts:s});return this._createLogFunction(t,o,s)}_buildArgs(t,r,n){return[t,r,...n]}_createLogFunction(t,r,n){if(!this._shouldLog(r.logLevel))return Ft;let i=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&i!==void 0){if(this._onceCache.has(i))return Ft;this._onceCache.add(i)}return this._emit(t,r)}_shouldLog(t){return this.getLevel()>=Gn(t)}_getOnceTag(t){if(t!==void 0)try{return typeof t=="string"?t:String(t)}catch{return}}};function Zc(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var Nr=class{constructor(t,r,n="sessionStorage"){this.storage=Zc(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function _o(e){let t;return e<10?t=`${e.toFixed(2)}ms`:e<100?t=`${e.toFixed(1)}ms`:e<1e3?t=`${e.toFixed(0)}ms`:t=`${(e/1e3).toFixed(2)}s`,t}function vo(e,t=8){let r=Math.max(t-e.length,0);return`${" ".repeat(r)}${e}`}ve();var Vr;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Vr||(Vr={}));var Hc=10;function So(e){return typeof e!="string"?e:(e=e.toUpperCase(),Vr[e]||Vr.WHITE)}function Mo(e,t,r){return!Tt&&typeof e=="string"&&(t&&(e=`\x1B[${So(t)}m${e}\x1B[39m`),r&&(e=`\x1B[${So(r)+Hc}m${e}\x1B[49m`)),e}function Po(e,t=["constructor"]){let r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),i=e;for(let s of n){let o=i[s];typeof o=="function"&&(t.find(a=>s===a)||(i[s]=o.bind(e)))}}ve();function Kt(){let e;if(Tt()&&Pr.performance)e=Pr?.performance?.now?.();else if("hrtime"in Cr){let t=Cr?.hrtime?.();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var Jt={debug:Tt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},zn={enabled:!0,level:0},_t=class extends Or{constructor({id:t}={id:""}){super({level:0}),this.VERSION=In,this._startTs=Kt(),this._deltaTs=Kt(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new Nr(`__probe-${this.id}__`,{[this.id]:zn}),this.timeStamp(`${this.id} started`),Po(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((Kt()-this._startTs).toPrecision(10))}getDelta(){return Number((Kt()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(t=!0){return this._updateConfiguration({enabled:t}),this}setLevel(t){return this._updateConfiguration({level:t}),this}get(t){return this._getConfiguration()[t]}set(t,r){this._updateConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){if(!t)throw new Error(r||"Assertion failed")}warn(t,...r){return this._log("warn",0,t,r,{method:Jt.warn,once:!0})}error(t,...r){return this._log("error",0,t,r,{method:Jt.error})}deprecated(t,r){return this.warn(`\`${t}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(t,r){return this.error(`\`${t}\` has been removed. Use \`${r}\` instead`)}probe(t,r,...n){return this._log("log",t,r,n,{method:Jt.log,time:!0,once:!0})}log(t,r,...n){return this._log("log",t,r,n,{method:Jt.debug})}info(t,r,...n){return this._log("info",t,r,n,{method:console.info})}once(t,r,...n){return this._log("once",t,r,n,{method:Jt.debug||Jt.info,once:!0})}table(t,r,n){return r?this._log("table",t,r,n&&[n]||[],{method:console.table||Ft,tag:Kc(r)}):Ft}time(t,r){return this._log("time",t,r,[],{method:console.time?console.time:console.info})}timeEnd(t,r){return this._log("time",t,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(t,r){return this._log("time",t,r,[],{method:console.timeStamp||Ft})}group(t,r,n={collapsed:!1}){let i=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",t,r,[],{method:i})}groupCollapsed(t,r,n={}){return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._log("groupEnd",t,"",[],{method:console.groupEnd||Ft})}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&super._shouldLog(t)}_emit(t,r){let n=r.method;Qt(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Kt();let i=Qc(this.id,r.message,r);return n.bind(console,i,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(zn),this._storage.config[this.id]}_updateConfiguration(t){let r=this._storage.config[this.id]||{...zn};this._storage.setConfiguration({[this.id]:{...r,...t}})}};_t.VERSION=In;function Qc(e,t,r){if(typeof t=="string"){let n=r.time?vo(_o(r.total)):"";t=r.time?`${e}: ${n} ${t}`:`${e}: ${t}`,t=Mo(t,r.color,r.background)}return t}function Kc(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}globalThis.probe={};var Gp=new _t({id:"@probe.gl/log"});var Jc=new _t({id:"deck"}),te=Jc;var jp=1/Math.PI*180,qp=1/180*Math.PI,tl={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...tl}};var G=globalThis.mathgl.config;function Wn(e,{precision:t=G.precision}={}){return e=el(e),`${parseFloat(e.toPrecision(t))}`}function vt(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Y(e,t,r){return nl(e,n=>Math.max(t,Math.min(r,n)))}function Le(e,t,r){return vt(e)?e.map((n,i)=>Le(n,t[i],r)):r*t+(1-r)*e}function St(e,t,r){let n=G.EPSILON;r&&(G.EPSILON=r);try{if(e===t)return!0;if(vt(e)&&vt(t)){if(e.length!==t.length)return!1;for(let i=0;i<e.length;++i)if(!St(e[i],t[i]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=G.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{G.EPSILON=n}}function el(e){return Math.round(e/G.EPSILON)*G.EPSILON}function rl(e){return e.clone?e.clone():new Array(e.length)}function nl(e,t,r){if(vt(e)){let n=e;r=r||rl(n);for(let i=0;i<r.length&&i<n.length;++i){let s=typeof e=="number"?e:e[i];r[i]=t(s,i,r)}return r}return t(e)}var ee=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(t,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=t[n+r];return this.check()}toArray(t=[],r=0){for(let n=0;n<this.ELEMENTS;++n)t[r+n]=this[n];return t}toObject(t){return t}from(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}to(t){return t===this?this:vt(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(G)}formatString(t){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+Wn(this[n],t);return`${t.printTypes?this.constructor.name:""}[${r}]`}equals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!St(this[r],t[r]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==t[r])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,r,n){if(n===void 0)return this.lerp(this,t,r);for(let i=0;i<this.ELEMENTS;++i){let s=t[i],o=typeof r=="number"?r:r[i];this[i]=s+n*(o-s)}return this.check()}min(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(t[r],this[r]);return this.check()}max(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(t[r],this[r]);return this.check()}clamp(t,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t[n]),r[n]);return this.check()}add(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(t){if(typeof t=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;else for(let r=0;r<this.ELEMENTS&&r<t.length;++r)this[r]*=t[r];return this.check()}multiplyByScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;return this.check()}check(){if(G.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let t=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)t=t&&Number.isFinite(this[r]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=t;return this.check()}addScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t),r);return this.check()}get elements(){return this}};function il(e,t){if(e.length!==t)return!1;for(let r=0;r<e.length;++r)if(!Number.isFinite(e[r]))return!1;return!0}function z(e){if(!Number.isFinite(e))throw new Error(`Invalid number ${JSON.stringify(e)}`);return e}function Gr(e,t,r=""){if(G.debug&&!il(e,t))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return e}function Un(e,t){if(!e)throw new Error(`math.gl assertion ${t}`)}var zr=class extends ee{get x(){return this[0]}set x(t){this[0]=z(t)}get y(){return this[1]}set y(t){this[1]=z(t)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let t=0;for(let r=0;r<this.ELEMENTS;++r)t+=this[r]*this[r];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let r=0;for(let n=0;n<this.ELEMENTS;++n){let i=this[n]-t[n];r+=i*i}return z(r)}dot(t){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*t[n];return z(r)}normalize(){let t=this.magnitude();if(t!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=t;return this.check()}multiply(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return Un(t>=0&&t<this.ELEMENTS,"index is out of range"),z(this[t])}setComponent(t,r){return Un(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=r,this.check()}addVectors(t,r){return this.copy(t).add(r)}subVectors(t,r){return this.copy(t).subtract(r)}multiplyVectors(t,r){return this.copy(t).multiply(r)}addScaledVector(t,r){return this.add(new this.constructor(t).multiplyScalar(r))}};var at={};me(at,{add:()=>ll,angle:()=>Cl,ceil:()=>hl,clone:()=>sl,copy:()=>al,create:()=>Co,cross:()=>El,dist:()=>Ol,distance:()=>ko,div:()=>Fl,divide:()=>Ro,dot:()=>wl,equals:()=>kl,exactEquals:()=>Rl,floor:()=>ul,forEach:()=>Gl,fromValues:()=>ol,inverse:()=>xl,len:()=>Dl,length:()=>Io,lerp:()=>Tl,max:()=>dl,min:()=>fl,mul:()=>Bl,multiply:()=>Ao,negate:()=>bl,normalize:()=>yl,random:()=>_l,rotate:()=>Pl,round:()=>ml,scale:()=>pl,scaleAndAdd:()=>gl,set:()=>cl,sqrDist:()=>Nl,sqrLen:()=>Vl,squaredDistance:()=>Do,squaredLength:()=>Bo,str:()=>Al,sub:()=>Il,subtract:()=>Lo,transformMat2:()=>vl,transformMat2d:()=>Sl,transformMat3:()=>Ml,transformMat4:()=>Yn,zero:()=>Ll});var O=typeof Float32Array<"u"?Float32Array:Array,xt=Math.random;function K(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var ig=Math.PI/180;function Co(){let e=new O(2);return O!=Float32Array&&(e[0]=0,e[1]=0),e}function sl(e){let t=new O(2);return t[0]=e[0],t[1]=e[1],t}function ol(e,t){let r=new O(2);return r[0]=e,r[1]=t,r}function al(e,t){return e[0]=t[0],e[1]=t[1],e}function cl(e,t,r){return e[0]=t,e[1]=r,e}function ll(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e}function Lo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e}function Ao(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e}function Ro(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e}function hl(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function ul(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function fl(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e}function dl(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e}function ml(e,t){return e[0]=K(t[0]),e[1]=K(t[1]),e}function pl(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e}function gl(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e}function ko(e,t){let r=t[0]-e[0],n=t[1]-e[1];return Math.sqrt(r*r+n*n)}function Do(e,t){let r=t[0]-e[0],n=t[1]-e[1];return r*r+n*n}function Io(e){let t=e[0],r=e[1];return Math.sqrt(t*t+r*r)}function Bo(e){let t=e[0],r=e[1];return t*t+r*r}function bl(e,t){return e[0]=-t[0],e[1]=-t[1],e}function xl(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function yl(e,t){let r=t[0],n=t[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e}function wl(e,t){return e[0]*t[0]+e[1]*t[1]}function El(e,t,r){let n=t[0]*r[1]-t[1]*r[0];return e[0]=e[1]=0,e[2]=n,e}function Tl(e,t,r,n){let i=t[0],s=t[1];return e[0]=i+n*(r[0]-i),e[1]=s+n*(r[1]-s),e}function _l(e,t){t=t===void 0?1:t;let r=xt()*2*Math.PI;return e[0]=Math.cos(r)*t,e[1]=Math.sin(r)*t,e}function vl(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e}function Sl(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i+r[4],e[1]=r[1]*n+r[3]*i+r[5],e}function Ml(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[3]*i+r[6],e[1]=r[1]*n+r[4]*i+r[7],e}function Yn(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[4]*i+r[12],e[1]=r[1]*n+r[5]*i+r[13],e}function Pl(e,t,r,n){let i=t[0]-r[0],s=t[1]-r[1],o=Math.sin(n),a=Math.cos(n);return e[0]=i*a-s*o+r[0],e[1]=i*o+s*a+r[1],e}function Cl(e,t){let r=e[0],n=e[1],i=t[0],s=t[1],o=Math.sqrt((r*r+n*n)*(i*i+s*s)),a=o&&(r*i+n*s)/o;return Math.acos(Math.min(Math.max(a,-1),1))}function Ll(e){return e[0]=0,e[1]=0,e}function Al(e){return`vec2(${e[0]}, ${e[1]})`}function Rl(e,t){return e[0]===t[0]&&e[1]===t[1]}function kl(e,t){let r=e[0],n=e[1],i=t[0],s=t[1];return Math.abs(r-i)<=1e-6*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-s)<=1e-6*Math.max(1,Math.abs(n),Math.abs(s))}var Dl=Io,Il=Lo,Bl=Ao,Fl=Ro,Ol=ko,Nl=Do,Vl=Bo,Gl=(function(){let e=Co();return function(t,r,n,i,s,o){let a,c;for(r||(r=2),n||(n=0),i?c=Math.min(i*r+n,t.length):c=t.length,a=n;a<c;a+=r)e[0]=t[a],e[1]=t[a+1],s(e,e,o),t[a]=e[0],t[a+1]=e[1];return t}})();function Fo(e,t,r){let n=t[0],i=t[1],s=r[3]*n+r[7]*i||1;return e[0]=(r[0]*n+r[4]*i)/s,e[1]=(r[1]*n+r[5]*i)/s,e}function Ur(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[3]*n+r[7]*i+r[11]*s||1;return e[0]=(r[0]*n+r[4]*i+r[8]*s)/o,e[1]=(r[1]*n+r[5]*i+r[9]*s)/o,e[2]=(r[2]*n+r[6]*i+r[10]*s)/o,e}function Oo(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e[2]=t[2],e}var ct={};me(ct,{add:()=>$l,angle:()=>Kn,bezier:()=>sh,ceil:()=>jl,clone:()=>zl,copy:()=>Ul,create:()=>No,cross:()=>jn,dist:()=>mh,distance:()=>Uo,div:()=>dh,divide:()=>Wo,dot:()=>$n,equals:()=>hh,exactEquals:()=>lh,floor:()=>ql,forEach:()=>xh,fromValues:()=>Wl,hermite:()=>ih,inverse:()=>th,len:()=>gh,length:()=>Vo,lerp:()=>rh,max:()=>Zl,min:()=>Xl,mul:()=>fh,multiply:()=>zo,negate:()=>Jl,normalize:()=>eh,random:()=>oh,rotateX:()=>Zn,rotateY:()=>Hn,rotateZ:()=>Qn,round:()=>Hl,scale:()=>Ql,scaleAndAdd:()=>Kl,set:()=>Yl,slerp:()=>nh,sqrDist:()=>ph,sqrLen:()=>bh,squaredDistance:()=>Yo,squaredLength:()=>$o,str:()=>ch,sub:()=>uh,subtract:()=>Go,transformMat3:()=>qn,transformMat4:()=>Ae,transformQuat:()=>Xn,zero:()=>ah});function No(){let e=new O(3);return O!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function zl(e){let t=new O(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Vo(e){let t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function Wl(e,t,r){let n=new O(3);return n[0]=e,n[1]=t,n[2]=r,n}function Ul(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Yl(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function $l(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Go(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function zo(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Wo(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function jl(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ql(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function Xl(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function Zl(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function Hl(e,t){return e[0]=K(t[0]),e[1]=K(t[1]),e[2]=K(t[2]),e}function Ql(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function Kl(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function Uo(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(r*r+n*n+i*i)}function Yo(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return r*r+n*n+i*i}function $o(e){let t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function Jl(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function th(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function eh(e,t){let r=t[0],n=t[1],i=t[2],s=r*r+n*n+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function $n(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function jn(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[0],a=r[1],c=r[2];return e[0]=i*c-s*a,e[1]=s*o-n*c,e[2]=n*a-i*o,e}function rh(e,t,r,n){let i=t[0],s=t[1],o=t[2];return e[0]=i+n*(r[0]-i),e[1]=s+n*(r[1]-s),e[2]=o+n*(r[2]-o),e}function nh(e,t,r,n){let i=Math.acos(Math.min(Math.max($n(t,r),-1),1)),s=Math.sin(i),o=Math.sin((1-n)*i)/s,a=Math.sin(n*i)/s;return e[0]=o*t[0]+a*r[0],e[1]=o*t[1]+a*r[1],e[2]=o*t[2]+a*r[2],e}function ih(e,t,r,n,i,s){let o=s*s,a=o*(2*s-3)+1,c=o*(s-2)+s,l=o*(s-1),h=o*(3-2*s);return e[0]=t[0]*a+r[0]*c+n[0]*l+i[0]*h,e[1]=t[1]*a+r[1]*c+n[1]*l+i[1]*h,e[2]=t[2]*a+r[2]*c+n[2]*l+i[2]*h,e}function sh(e,t,r,n,i,s){let o=1-s,a=o*o,c=s*s,l=a*o,h=3*s*a,u=3*c*o,f=c*s;return e[0]=t[0]*l+r[0]*h+n[0]*u+i[0]*f,e[1]=t[1]*l+r[1]*h+n[1]*u+i[1]*f,e[2]=t[2]*l+r[2]*h+n[2]*u+i[2]*f,e}function oh(e,t){t=t===void 0?1:t;let r=xt()*2*Math.PI,n=xt()*2-1,i=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*i,e[1]=Math.sin(r)*i,e[2]=n*t,e}function Ae(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[3]*n+r[7]*i+r[11]*s+r[15];return o=o||1,e[0]=(r[0]*n+r[4]*i+r[8]*s+r[12])/o,e[1]=(r[1]*n+r[5]*i+r[9]*s+r[13])/o,e[2]=(r[2]*n+r[6]*i+r[10]*s+r[14])/o,e}function qn(e,t,r){let n=t[0],i=t[1],s=t[2];return e[0]=n*r[0]+i*r[3]+s*r[6],e[1]=n*r[1]+i*r[4]+s*r[7],e[2]=n*r[2]+i*r[5]+s*r[8],e}function Xn(e,t,r){let n=r[0],i=r[1],s=r[2],o=r[3],a=t[0],c=t[1],l=t[2],h=i*l-s*c,u=s*a-n*l,f=n*c-i*a,d=i*f-s*u,p=s*h-n*f,g=n*u-i*h,m=o*2;return h*=m,u*=m,f*=m,d*=2,p*=2,g*=2,e[0]=a+h+d,e[1]=c+u+p,e[2]=l+f+g,e}function Zn(e,t,r,n){let i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[0],s[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),s[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function Hn(e,t,r,n){let i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),s[1]=i[1],s[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function Qn(e,t,r,n){let i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),s[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),s[2]=i[2],e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function Kn(e,t){let r=e[0],n=e[1],i=e[2],s=t[0],o=t[1],a=t[2],c=Math.sqrt((r*r+n*n+i*i)*(s*s+o*o+a*a)),l=c&&$n(e,t)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function ah(e){return e[0]=0,e[1]=0,e[2]=0,e}function ch(e){return`vec3(${e[0]}, ${e[1]}, ${e[2]})`}function lh(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function hh(e,t){let r=e[0],n=e[1],i=e[2],s=t[0],o=t[1],a=t[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=1e-6*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-a)<=1e-6*Math.max(1,Math.abs(i),Math.abs(a))}var uh=Go,fh=zo,dh=Wo,mh=Uo,ph=Yo,gh=Vo,bh=$o,xh=(function(){let e=No();return function(t,r,n,i,s,o){let a,c;for(r||(r=3),n||(n=0),i?c=Math.min(i*r+n,t.length):c=t.length,a=n;a<c;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],s(e,e,o),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}})();var Jn=[0,0,0],Yr,Mt=class e extends zr{static get ZERO(){return Yr||(Yr=new e(0,0,0),Object.freeze(Yr)),Yr}constructor(t=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&vt(t)?this.copy(t):(G.debug&&(z(t),z(r),z(n)),this[0]=t,this[1]=r,this[2]=n)}set(t,r,n){return this[0]=t,this[1]=r,this[2]=n,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this.check()}fromObject(t){return G.debug&&(z(t.x),z(t.y),z(t.z)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this.check()}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t}get ELEMENTS(){return 3}get z(){return this[2]}set z(t){this[2]=z(t)}angle(t){return Kn(this,t)}cross(t){return jn(this,this,t),this.check()}rotateX({radians:t,origin:r=Jn}){return Zn(this,this,r,t),this.check()}rotateY({radians:t,origin:r=Jn}){return Hn(this,this,r,t),this.check()}rotateZ({radians:t,origin:r=Jn}){return Qn(this,this,r,t),this.check()}transform(t){return this.transformAsPoint(t)}transformAsPoint(t){return Ae(this,this,t),this.check()}transformAsVector(t){return Ur(this,this,t),this.check()}transformByMatrix3(t){return qn(this,this,t),this.check()}transformByMatrix2(t){return Oo(this,this,t),this.check()}transformByQuaternion(t){return Xn(this,this,t),this.check()}};var $r=class extends ee{toString(){let t="[";if(G.printRowMajor){t+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)t+=` ${this[n*this.RANK+r]}`}else{t+="column-major:";for(let r=0;r<this.ELEMENTS;++r)t+=` ${this[r]}`}return t+="]",t}getElementIndex(t,r){return r*this.RANK+t}getElement(t,r){return this[r*this.RANK+t]}setElement(t,r,n){return this[r*this.RANK+t]=z(n),this}getColumn(t,r=new Array(this.RANK).fill(-0)){let n=t*this.RANK;for(let i=0;i<this.RANK;++i)r[i]=this[n+i];return r}setColumn(t,r){let n=t*this.RANK;for(let i=0;i<this.RANK;++i)this[n+i]=r[i];return this}};var W={};me(W,{add:()=>Uh,adjoint:()=>vh,clone:()=>wh,copy:()=>Eh,create:()=>yh,decompose:()=>Ih,determinant:()=>ri,equals:()=>qh,exactEquals:()=>jh,frob:()=>Wh,fromQuat:()=>li,fromQuat2:()=>Rh,fromRotation:()=>Ph,fromRotationTranslation:()=>qo,fromRotationTranslationScale:()=>Bh,fromRotationTranslationScaleOrigin:()=>Fh,fromScaling:()=>Mh,fromTranslation:()=>Sh,fromValues:()=>Th,fromXRotation:()=>Ch,fromYRotation:()=>Lh,fromZRotation:()=>Ah,frustum:()=>hi,getRotation:()=>Dh,getScaling:()=>Xo,getTranslation:()=>kh,identity:()=>jo,invert:()=>ei,lookAt:()=>di,mul:()=>Xh,multiply:()=>Re,multiplyScalar:()=>Yh,multiplyScalarAndAdd:()=>$h,ortho:()=>fi,orthoNO:()=>Ho,orthoZO:()=>Vh,perspective:()=>ui,perspectiveFromFieldOfView:()=>Nh,perspectiveNO:()=>Zo,perspectiveZO:()=>Oh,rotate:()=>si,rotateX:()=>oi,rotateY:()=>ai,rotateZ:()=>ci,scale:()=>ii,set:()=>_h,str:()=>zh,sub:()=>Zh,subtract:()=>Qo,targetTo:()=>Gh,translate:()=>ni,transpose:()=>ti});function yh(){let e=new O(16);return O!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function wh(e){let t=new O(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Eh(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Th(e,t,r,n,i,s,o,a,c,l,h,u,f,d,p,g){let m=new O(16);return m[0]=e,m[1]=t,m[2]=r,m[3]=n,m[4]=i,m[5]=s,m[6]=o,m[7]=a,m[8]=c,m[9]=l,m[10]=h,m[11]=u,m[12]=f,m[13]=d,m[14]=p,m[15]=g,m}function _h(e,t,r,n,i,s,o,a,c,l,h,u,f,d,p,g,m){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e[4]=s,e[5]=o,e[6]=a,e[7]=c,e[8]=l,e[9]=h,e[10]=u,e[11]=f,e[12]=d,e[13]=p,e[14]=g,e[15]=m,e}function jo(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ti(e,t){if(e===t){let r=t[1],n=t[2],i=t[3],s=t[6],o=t[7],a=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=s,e[11]=t[14],e[12]=i,e[13]=o,e[14]=a}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function ei(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],u=t[9],f=t[10],d=t[11],p=t[12],g=t[13],m=t[14],b=t[15],_=r*a-n*o,y=r*c-i*o,E=r*l-s*o,v=n*c-i*a,w=n*l-s*a,x=i*l-s*c,T=h*g-u*p,M=h*m-f*p,S=h*b-d*p,C=u*m-f*g,L=u*b-d*g,R=f*b-d*m,A=_*R-y*L+E*C+v*S-w*M+x*T;return A?(A=1/A,e[0]=(a*R-c*L+l*C)*A,e[1]=(i*L-n*R-s*C)*A,e[2]=(g*x-m*w+b*v)*A,e[3]=(f*w-u*x-d*v)*A,e[4]=(c*S-o*R-l*M)*A,e[5]=(r*R-i*S+s*M)*A,e[6]=(m*E-p*x-b*y)*A,e[7]=(h*x-f*E+d*y)*A,e[8]=(o*L-a*S+l*T)*A,e[9]=(n*S-r*L-s*T)*A,e[10]=(p*w-g*E+b*_)*A,e[11]=(u*E-h*w-d*_)*A,e[12]=(a*M-o*C-c*T)*A,e[13]=(r*C-n*M+i*T)*A,e[14]=(g*y-p*v-m*_)*A,e[15]=(h*v-u*y+f*_)*A,e):null}function vh(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],u=t[9],f=t[10],d=t[11],p=t[12],g=t[13],m=t[14],b=t[15],_=r*a-n*o,y=r*c-i*o,E=r*l-s*o,v=n*c-i*a,w=n*l-s*a,x=i*l-s*c,T=h*g-u*p,M=h*m-f*p,S=h*b-d*p,C=u*m-f*g,L=u*b-d*g,R=f*b-d*m;return e[0]=a*R-c*L+l*C,e[1]=i*L-n*R-s*C,e[2]=g*x-m*w+b*v,e[3]=f*w-u*x-d*v,e[4]=c*S-o*R-l*M,e[5]=r*R-i*S+s*M,e[6]=m*E-p*x-b*y,e[7]=h*x-f*E+d*y,e[8]=o*L-a*S+l*T,e[9]=n*S-r*L-s*T,e[10]=p*w-g*E+b*_,e[11]=u*E-h*w-d*_,e[12]=a*M-o*C-c*T,e[13]=r*C-n*M+i*T,e[14]=g*y-p*v-m*_,e[15]=h*v-u*y+f*_,e}function ri(e){let t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],a=e[6],c=e[7],l=e[8],h=e[9],u=e[10],f=e[11],d=e[12],p=e[13],g=e[14],m=e[15],b=t*o-r*s,_=t*a-n*s,y=r*a-n*o,E=l*p-h*d,v=l*g-u*d,w=h*g-u*p,x=t*w-r*v+n*E,T=s*w-o*v+a*E,M=l*y-h*_+u*b,S=d*y-p*_+g*b;return c*x-i*T+m*M-f*S}function Re(e,t,r){let n=t[0],i=t[1],s=t[2],o=t[3],a=t[4],c=t[5],l=t[6],h=t[7],u=t[8],f=t[9],d=t[10],p=t[11],g=t[12],m=t[13],b=t[14],_=t[15],y=r[0],E=r[1],v=r[2],w=r[3];return e[0]=y*n+E*a+v*u+w*g,e[1]=y*i+E*c+v*f+w*m,e[2]=y*s+E*l+v*d+w*b,e[3]=y*o+E*h+v*p+w*_,y=r[4],E=r[5],v=r[6],w=r[7],e[4]=y*n+E*a+v*u+w*g,e[5]=y*i+E*c+v*f+w*m,e[6]=y*s+E*l+v*d+w*b,e[7]=y*o+E*h+v*p+w*_,y=r[8],E=r[9],v=r[10],w=r[11],e[8]=y*n+E*a+v*u+w*g,e[9]=y*i+E*c+v*f+w*m,e[10]=y*s+E*l+v*d+w*b,e[11]=y*o+E*h+v*p+w*_,y=r[12],E=r[13],v=r[14],w=r[15],e[12]=y*n+E*a+v*u+w*g,e[13]=y*i+E*c+v*f+w*m,e[14]=y*s+E*l+v*d+w*b,e[15]=y*o+E*h+v*p+w*_,e}function ni(e,t,r){let n=r[0],i=r[1],s=r[2],o,a,c,l,h,u,f,d,p,g,m,b;return t===e?(e[12]=t[0]*n+t[4]*i+t[8]*s+t[12],e[13]=t[1]*n+t[5]*i+t[9]*s+t[13],e[14]=t[2]*n+t[6]*i+t[10]*s+t[14],e[15]=t[3]*n+t[7]*i+t[11]*s+t[15]):(o=t[0],a=t[1],c=t[2],l=t[3],h=t[4],u=t[5],f=t[6],d=t[7],p=t[8],g=t[9],m=t[10],b=t[11],e[0]=o,e[1]=a,e[2]=c,e[3]=l,e[4]=h,e[5]=u,e[6]=f,e[7]=d,e[8]=p,e[9]=g,e[10]=m,e[11]=b,e[12]=o*n+h*i+p*s+t[12],e[13]=a*n+u*i+g*s+t[13],e[14]=c*n+f*i+m*s+t[14],e[15]=l*n+d*i+b*s+t[15]),e}function ii(e,t,r){let n=r[0],i=r[1],s=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*s,e[9]=t[9]*s,e[10]=t[10]*s,e[11]=t[11]*s,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function si(e,t,r,n){let i=n[0],s=n[1],o=n[2],a=Math.sqrt(i*i+s*s+o*o),c,l,h,u,f,d,p,g,m,b,_,y,E,v,w,x,T,M,S,C,L,R,A,B;return a<1e-6?null:(a=1/a,i*=a,s*=a,o*=a,l=Math.sin(r),c=Math.cos(r),h=1-c,u=t[0],f=t[1],d=t[2],p=t[3],g=t[4],m=t[5],b=t[6],_=t[7],y=t[8],E=t[9],v=t[10],w=t[11],x=i*i*h+c,T=s*i*h+o*l,M=o*i*h-s*l,S=i*s*h-o*l,C=s*s*h+c,L=o*s*h+i*l,R=i*o*h+s*l,A=s*o*h-i*l,B=o*o*h+c,e[0]=u*x+g*T+y*M,e[1]=f*x+m*T+E*M,e[2]=d*x+b*T+v*M,e[3]=p*x+_*T+w*M,e[4]=u*S+g*C+y*L,e[5]=f*S+m*C+E*L,e[6]=d*S+b*C+v*L,e[7]=p*S+_*C+w*L,e[8]=u*R+g*A+y*B,e[9]=f*R+m*A+E*B,e[10]=d*R+b*A+v*B,e[11]=p*R+_*A+w*B,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function oi(e,t,r){let n=Math.sin(r),i=Math.cos(r),s=t[4],o=t[5],a=t[6],c=t[7],l=t[8],h=t[9],u=t[10],f=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=s*i+l*n,e[5]=o*i+h*n,e[6]=a*i+u*n,e[7]=c*i+f*n,e[8]=l*i-s*n,e[9]=h*i-o*n,e[10]=u*i-a*n,e[11]=f*i-c*n,e}function ai(e,t,r){let n=Math.sin(r),i=Math.cos(r),s=t[0],o=t[1],a=t[2],c=t[3],l=t[8],h=t[9],u=t[10],f=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=s*i-l*n,e[1]=o*i-h*n,e[2]=a*i-u*n,e[3]=c*i-f*n,e[8]=s*n+l*i,e[9]=o*n+h*i,e[10]=a*n+u*i,e[11]=c*n+f*i,e}function ci(e,t,r){let n=Math.sin(r),i=Math.cos(r),s=t[0],o=t[1],a=t[2],c=t[3],l=t[4],h=t[5],u=t[6],f=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=s*i+l*n,e[1]=o*i+h*n,e[2]=a*i+u*n,e[3]=c*i+f*n,e[4]=l*i-s*n,e[5]=h*i-o*n,e[6]=u*i-a*n,e[7]=f*i-c*n,e}function Sh(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function Mh(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ph(e,t,r){let n=r[0],i=r[1],s=r[2],o=Math.sqrt(n*n+i*i+s*s),a,c,l;return o<1e-6?null:(o=1/o,n*=o,i*=o,s*=o,c=Math.sin(t),a=Math.cos(t),l=1-a,e[0]=n*n*l+a,e[1]=i*n*l+s*c,e[2]=s*n*l-i*c,e[3]=0,e[4]=n*i*l-s*c,e[5]=i*i*l+a,e[6]=s*i*l+n*c,e[7]=0,e[8]=n*s*l+i*c,e[9]=i*s*l-n*c,e[10]=s*s*l+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function Ch(e,t){let r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Lh(e,t){let r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ah(e,t){let r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function qo(e,t,r){let n=t[0],i=t[1],s=t[2],o=t[3],a=n+n,c=i+i,l=s+s,h=n*a,u=n*c,f=n*l,d=i*c,p=i*l,g=s*l,m=o*a,b=o*c,_=o*l;return e[0]=1-(d+g),e[1]=u+_,e[2]=f-b,e[3]=0,e[4]=u-_,e[5]=1-(h+g),e[6]=p+m,e[7]=0,e[8]=f+b,e[9]=p-m,e[10]=1-(h+d),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function Rh(e,t){let r=new O(3),n=-t[0],i=-t[1],s=-t[2],o=t[3],a=t[4],c=t[5],l=t[6],h=t[7],u=n*n+i*i+s*s+o*o;return u>0?(r[0]=(a*o+h*n+c*s-l*i)*2/u,r[1]=(c*o+h*i+l*n-a*s)*2/u,r[2]=(l*o+h*s+a*i-c*n)*2/u):(r[0]=(a*o+h*n+c*s-l*i)*2,r[1]=(c*o+h*i+l*n-a*s)*2,r[2]=(l*o+h*s+a*i-c*n)*2),qo(e,t,r),e}function kh(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Xo(e,t){let r=t[0],n=t[1],i=t[2],s=t[4],o=t[5],a=t[6],c=t[8],l=t[9],h=t[10];return e[0]=Math.sqrt(r*r+n*n+i*i),e[1]=Math.sqrt(s*s+o*o+a*a),e[2]=Math.sqrt(c*c+l*l+h*h),e}function Dh(e,t){let r=new O(3);Xo(r,t);let n=1/r[0],i=1/r[1],s=1/r[2],o=t[0]*n,a=t[1]*i,c=t[2]*s,l=t[4]*n,h=t[5]*i,u=t[6]*s,f=t[8]*n,d=t[9]*i,p=t[10]*s,g=o+h+p,m=0;return g>0?(m=Math.sqrt(g+1)*2,e[3]=.25*m,e[0]=(u-d)/m,e[1]=(f-c)/m,e[2]=(a-l)/m):o>h&&o>p?(m=Math.sqrt(1+o-h-p)*2,e[3]=(u-d)/m,e[0]=.25*m,e[1]=(a+l)/m,e[2]=(f+c)/m):h>p?(m=Math.sqrt(1+h-o-p)*2,e[3]=(f-c)/m,e[0]=(a+l)/m,e[1]=.25*m,e[2]=(u+d)/m):(m=Math.sqrt(1+p-o-h)*2,e[3]=(a-l)/m,e[0]=(f+c)/m,e[1]=(u+d)/m,e[2]=.25*m),e}function Ih(e,t,r,n){t[0]=n[12],t[1]=n[13],t[2]=n[14];let i=n[0],s=n[1],o=n[2],a=n[4],c=n[5],l=n[6],h=n[8],u=n[9],f=n[10];r[0]=Math.sqrt(i*i+s*s+o*o),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(h*h+u*u+f*f);let d=1/r[0],p=1/r[1],g=1/r[2],m=i*d,b=s*p,_=o*g,y=a*d,E=c*p,v=l*g,w=h*d,x=u*p,T=f*g,M=m+E+T,S=0;return M>0?(S=Math.sqrt(M+1)*2,e[3]=.25*S,e[0]=(v-x)/S,e[1]=(w-_)/S,e[2]=(b-y)/S):m>E&&m>T?(S=Math.sqrt(1+m-E-T)*2,e[3]=(v-x)/S,e[0]=.25*S,e[1]=(b+y)/S,e[2]=(w+_)/S):E>T?(S=Math.sqrt(1+E-m-T)*2,e[3]=(w-_)/S,e[0]=(b+y)/S,e[1]=.25*S,e[2]=(v+x)/S):(S=Math.sqrt(1+T-m-E)*2,e[3]=(b-y)/S,e[0]=(w+_)/S,e[1]=(v+x)/S,e[2]=.25*S),e}function Bh(e,t,r,n){let i=t[0],s=t[1],o=t[2],a=t[3],c=i+i,l=s+s,h=o+o,u=i*c,f=i*l,d=i*h,p=s*l,g=s*h,m=o*h,b=a*c,_=a*l,y=a*h,E=n[0],v=n[1],w=n[2];return e[0]=(1-(p+m))*E,e[1]=(f+y)*E,e[2]=(d-_)*E,e[3]=0,e[4]=(f-y)*v,e[5]=(1-(u+m))*v,e[6]=(g+b)*v,e[7]=0,e[8]=(d+_)*w,e[9]=(g-b)*w,e[10]=(1-(u+p))*w,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function Fh(e,t,r,n,i){let s=t[0],o=t[1],a=t[2],c=t[3],l=s+s,h=o+o,u=a+a,f=s*l,d=s*h,p=s*u,g=o*h,m=o*u,b=a*u,_=c*l,y=c*h,E=c*u,v=n[0],w=n[1],x=n[2],T=i[0],M=i[1],S=i[2],C=(1-(g+b))*v,L=(d+E)*v,R=(p-y)*v,A=(d-E)*w,B=(1-(f+b))*w,ft=(m+_)*w,Q=(p+y)*x,je=(m-_)*x,Bi=(1-(f+g))*x;return e[0]=C,e[1]=L,e[2]=R,e[3]=0,e[4]=A,e[5]=B,e[6]=ft,e[7]=0,e[8]=Q,e[9]=je,e[10]=Bi,e[11]=0,e[12]=r[0]+T-(C*T+A*M+Q*S),e[13]=r[1]+M-(L*T+B*M+je*S),e[14]=r[2]+S-(R*T+ft*M+Bi*S),e[15]=1,e}function li(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=r+r,a=n+n,c=i+i,l=r*o,h=n*o,u=n*a,f=i*o,d=i*a,p=i*c,g=s*o,m=s*a,b=s*c;return e[0]=1-u-p,e[1]=h+b,e[2]=f-m,e[3]=0,e[4]=h-b,e[5]=1-l-p,e[6]=d+g,e[7]=0,e[8]=f+m,e[9]=d-g,e[10]=1-l-u,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function hi(e,t,r,n,i,s,o){let a=1/(r-t),c=1/(i-n),l=1/(s-o);return e[0]=s*2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s*2*c,e[6]=0,e[7]=0,e[8]=(r+t)*a,e[9]=(i+n)*c,e[10]=(o+s)*l,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*s*2*l,e[15]=0,e}function Zo(e,t,r,n,i){let s=1/Math.tan(t/2);if(e[0]=s/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0){let o=1/(n-i);e[10]=(i+n)*o,e[14]=2*i*n*o}else e[10]=-1,e[14]=-2*n;return e}var ui=Zo;function Oh(e,t,r,n,i){let s=1/Math.tan(t/2);if(e[0]=s/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0){let o=1/(n-i);e[10]=i*o,e[14]=i*n*o}else e[10]=-1,e[14]=-n;return e}function Nh(e,t,r,n){let i=Math.tan(t.upDegrees*Math.PI/180),s=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),a=Math.tan(t.rightDegrees*Math.PI/180),c=2/(o+a),l=2/(i+s);return e[0]=c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=l,e[6]=0,e[7]=0,e[8]=-((o-a)*c*.5),e[9]=(i-s)*l*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}function Ho(e,t,r,n,i,s,o){let a=1/(t-r),c=1/(n-i),l=1/(s-o);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*l,e[11]=0,e[12]=(t+r)*a,e[13]=(i+n)*c,e[14]=(o+s)*l,e[15]=1,e}var fi=Ho;function Vh(e,t,r,n,i,s,o){let a=1/(t-r),c=1/(n-i),l=1/(s-o);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=l,e[11]=0,e[12]=(t+r)*a,e[13]=(i+n)*c,e[14]=s*l,e[15]=1,e}function di(e,t,r,n){let i,s,o,a,c,l,h,u,f,d,p=t[0],g=t[1],m=t[2],b=n[0],_=n[1],y=n[2],E=r[0],v=r[1],w=r[2];return Math.abs(p-E)<1e-6&&Math.abs(g-v)<1e-6&&Math.abs(m-w)<1e-6?jo(e):(u=p-E,f=g-v,d=m-w,i=1/Math.sqrt(u*u+f*f+d*d),u*=i,f*=i,d*=i,s=_*d-y*f,o=y*u-b*d,a=b*f-_*u,i=Math.sqrt(s*s+o*o+a*a),i?(i=1/i,s*=i,o*=i,a*=i):(s=0,o=0,a=0),c=f*a-d*o,l=d*s-u*a,h=u*o-f*s,i=Math.sqrt(c*c+l*l+h*h),i?(i=1/i,c*=i,l*=i,h*=i):(c=0,l=0,h=0),e[0]=s,e[1]=c,e[2]=u,e[3]=0,e[4]=o,e[5]=l,e[6]=f,e[7]=0,e[8]=a,e[9]=h,e[10]=d,e[11]=0,e[12]=-(s*p+o*g+a*m),e[13]=-(c*p+l*g+h*m),e[14]=-(u*p+f*g+d*m),e[15]=1,e)}function Gh(e,t,r,n){let i=t[0],s=t[1],o=t[2],a=n[0],c=n[1],l=n[2],h=i-r[0],u=s-r[1],f=o-r[2],d=h*h+u*u+f*f;d>0&&(d=1/Math.sqrt(d),h*=d,u*=d,f*=d);let p=c*f-l*u,g=l*h-a*f,m=a*u-c*h;return d=p*p+g*g+m*m,d>0&&(d=1/Math.sqrt(d),p*=d,g*=d,m*=d),e[0]=p,e[1]=g,e[2]=m,e[3]=0,e[4]=u*m-f*g,e[5]=f*p-h*m,e[6]=h*g-u*p,e[7]=0,e[8]=h,e[9]=u,e[10]=f,e[11]=0,e[12]=i,e[13]=s,e[14]=o,e[15]=1,e}function zh(e){return`mat4(${e[0]}, ${e[1]}, ${e[2]}, ${e[3]}, ${e[4]}, ${e[5]}, ${e[6]}, ${e[7]}, ${e[8]}, ${e[9]}, ${e[10]}, ${e[11]}, ${e[12]}, ${e[13]}, ${e[14]}, ${e[15]})`}function Wh(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]+e[3]*e[3]+e[4]*e[4]+e[5]*e[5]+e[6]*e[6]+e[7]*e[7]+e[8]*e[8]+e[9]*e[9]+e[10]*e[10]+e[11]*e[11]+e[12]*e[12]+e[13]*e[13]+e[14]*e[14]+e[15]*e[15])}function Uh(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e}function Qo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function Yh(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e}function $h(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e}function jh(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function qh(e,t){let r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],u=e[9],f=e[10],d=e[11],p=e[12],g=e[13],m=e[14],b=e[15],_=t[0],y=t[1],E=t[2],v=t[3],w=t[4],x=t[5],T=t[6],M=t[7],S=t[8],C=t[9],L=t[10],R=t[11],A=t[12],B=t[13],ft=t[14],Q=t[15];return Math.abs(r-_)<=1e-6*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(n-y)<=1e-6*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(i-E)<=1e-6*Math.max(1,Math.abs(i),Math.abs(E))&&Math.abs(s-v)<=1e-6*Math.max(1,Math.abs(s),Math.abs(v))&&Math.abs(o-w)<=1e-6*Math.max(1,Math.abs(o),Math.abs(w))&&Math.abs(a-x)<=1e-6*Math.max(1,Math.abs(a),Math.abs(x))&&Math.abs(c-T)<=1e-6*Math.max(1,Math.abs(c),Math.abs(T))&&Math.abs(l-M)<=1e-6*Math.max(1,Math.abs(l),Math.abs(M))&&Math.abs(h-S)<=1e-6*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(u-C)<=1e-6*Math.max(1,Math.abs(u),Math.abs(C))&&Math.abs(f-L)<=1e-6*Math.max(1,Math.abs(f),Math.abs(L))&&Math.abs(d-R)<=1e-6*Math.max(1,Math.abs(d),Math.abs(R))&&Math.abs(p-A)<=1e-6*Math.max(1,Math.abs(p),Math.abs(A))&&Math.abs(g-B)<=1e-6*Math.max(1,Math.abs(g),Math.abs(B))&&Math.abs(m-ft)<=1e-6*Math.max(1,Math.abs(m),Math.abs(ft))&&Math.abs(b-Q)<=1e-6*Math.max(1,Math.abs(b),Math.abs(Q))}var Xh=Re,Zh=Qo;var Rt={};me(Rt,{add:()=>tu,ceil:()=>eu,clone:()=>Hh,copy:()=>Kh,create:()=>Ko,cross:()=>fu,dist:()=>_u,distance:()=>ra,div:()=>Tu,divide:()=>ea,dot:()=>uu,equals:()=>yu,exactEquals:()=>xu,floor:()=>ru,forEach:()=>Pu,fromValues:()=>Qh,inverse:()=>lu,len:()=>Su,length:()=>ia,lerp:()=>du,max:()=>iu,min:()=>nu,mul:()=>Eu,multiply:()=>ta,negate:()=>cu,normalize:()=>hu,random:()=>mu,round:()=>su,scale:()=>ou,scaleAndAdd:()=>au,set:()=>Jh,sqrDist:()=>vu,sqrLen:()=>Mu,squaredDistance:()=>na,squaredLength:()=>sa,str:()=>bu,sub:()=>wu,subtract:()=>Jo,transformMat4:()=>mi,transformQuat:()=>pu,zero:()=>gu});function Ko(){let e=new O(4);return O!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Hh(e){let t=new O(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Qh(e,t,r,n){let i=new O(4);return i[0]=e,i[1]=t,i[2]=r,i[3]=n,i}function Kh(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Jh(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function tu(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function Jo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function ta(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e[3]=t[3]*r[3],e}function ea(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e[3]=t[3]/r[3],e}function eu(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e[3]=Math.ceil(t[3]),e}function ru(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e[3]=Math.floor(t[3]),e}function nu(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e[3]=Math.min(t[3],r[3]),e}function iu(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e[3]=Math.max(t[3],r[3]),e}function su(e,t){return e[0]=K(t[0]),e[1]=K(t[1]),e[2]=K(t[2]),e[3]=K(t[3]),e}function ou(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function au(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}function ra(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],s=t[3]-e[3];return Math.sqrt(r*r+n*n+i*i+s*s)}function na(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],s=t[3]-e[3];return r*r+n*n+i*i+s*s}function ia(e){let t=e[0],r=e[1],n=e[2],i=e[3];return Math.sqrt(t*t+r*r+n*n+i*i)}function sa(e){let t=e[0],r=e[1],n=e[2],i=e[3];return t*t+r*r+n*n+i*i}function cu(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e}function lu(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e}function hu(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=r*r+n*n+i*i+s*s;return o>0&&(o=1/Math.sqrt(o)),e[0]=r*o,e[1]=n*o,e[2]=i*o,e[3]=s*o,e}function uu(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function fu(e,t,r,n){let i=r[0]*n[1]-r[1]*n[0],s=r[0]*n[2]-r[2]*n[0],o=r[0]*n[3]-r[3]*n[0],a=r[1]*n[2]-r[2]*n[1],c=r[1]*n[3]-r[3]*n[1],l=r[2]*n[3]-r[3]*n[2],h=t[0],u=t[1],f=t[2],d=t[3];return e[0]=u*l-f*c+d*a,e[1]=-(h*l)+f*o-d*s,e[2]=h*c-u*o+d*i,e[3]=-(h*a)+u*s-f*i,e}function du(e,t,r,n){let i=t[0],s=t[1],o=t[2],a=t[3];return e[0]=i+n*(r[0]-i),e[1]=s+n*(r[1]-s),e[2]=o+n*(r[2]-o),e[3]=a+n*(r[3]-a),e}function mu(e,t){t=t===void 0?1:t;let r,n,i,s,o,a;do r=xt()*2-1,n=xt()*2-1,o=r*r+n*n;while(o>=1);do i=xt()*2-1,s=xt()*2-1,a=i*i+s*s;while(a>=1);let c=Math.sqrt((1-o)/a);return e[0]=t*r,e[1]=t*n,e[2]=t*i*c,e[3]=t*s*c,e}function mi(e,t,r){let n=t[0],i=t[1],s=t[2],o=t[3];return e[0]=r[0]*n+r[4]*i+r[8]*s+r[12]*o,e[1]=r[1]*n+r[5]*i+r[9]*s+r[13]*o,e[2]=r[2]*n+r[6]*i+r[10]*s+r[14]*o,e[3]=r[3]*n+r[7]*i+r[11]*s+r[15]*o,e}function pu(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[0],a=r[1],c=r[2],l=r[3],h=l*n+a*s-c*i,u=l*i+c*n-o*s,f=l*s+o*i-a*n,d=-o*n-a*i-c*s;return e[0]=h*l+d*-o+u*-c-f*-a,e[1]=u*l+d*-a+f*-o-h*-c,e[2]=f*l+d*-c+h*-a-u*-o,e[3]=t[3],e}function gu(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function bu(e){return`vec4(${e[0]}, ${e[1]}, ${e[2]}, ${e[3]})`}function xu(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function yu(e,t){let r=e[0],n=e[1],i=e[2],s=e[3],o=t[0],a=t[1],c=t[2],l=t[3];return Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-c)<=1e-6*Math.max(1,Math.abs(i),Math.abs(c))&&Math.abs(s-l)<=1e-6*Math.max(1,Math.abs(s),Math.abs(l))}var wu=Jo,Eu=ta,Tu=ea,_u=ra,vu=na,Su=ia,Mu=sa,Pu=(function(){let e=Ko();return function(t,r,n,i,s,o){let a,c;for(r||(r=4),n||(n=0),i?c=Math.min(i*r+n,t.length):c=t.length,a=n;a<c;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],e[3]=t[a+3],s(e,e,o),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2],t[a+3]=e[3];return t}})();var bi;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL0ROW3=3]="COL0ROW3",e[e.COL1ROW0=4]="COL1ROW0",e[e.COL1ROW1=5]="COL1ROW1",e[e.COL1ROW2=6]="COL1ROW2",e[e.COL1ROW3=7]="COL1ROW3",e[e.COL2ROW0=8]="COL2ROW0",e[e.COL2ROW1=9]="COL2ROW1",e[e.COL2ROW2=10]="COL2ROW2",e[e.COL2ROW3=11]="COL2ROW3",e[e.COL3ROW0=12]="COL3ROW0",e[e.COL3ROW1=13]="COL3ROW1",e[e.COL3ROW2=14]="COL3ROW2",e[e.COL3ROW3=15]="COL3ROW3"})(bi||(bi={}));var Cu=45*Math.PI/180,Lu=1,pi=.1,gi=500,Au=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),q=class extends $r{static get IDENTITY(){return ku()}static get ZERO(){return Ru()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return bi}constructor(t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}set(t,r,n,i,s,o,a,c,l,h,u,f,d,p,g,m){return this[0]=t,this[1]=r,this[2]=n,this[3]=i,this[4]=s,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this[9]=h,this[10]=u,this[11]=f,this[12]=d,this[13]=p,this[14]=g,this[15]=m,this.check()}setRowMajor(t,r,n,i,s,o,a,c,l,h,u,f,d,p,g,m){return this[0]=t,this[1]=s,this[2]=l,this[3]=d,this[4]=r,this[5]=o,this[6]=h,this[7]=p,this[8]=n,this[9]=a,this[10]=u,this[11]=g,this[12]=i,this[13]=c,this[14]=f,this[15]=m,this.check()}toRowMajor(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}identity(){return this.copy(Au)}fromObject(t){return this.check()}fromQuaternion(t){return li(this,t),this.check()}frustum(t){let{left:r,right:n,bottom:i,top:s,near:o=pi,far:a=gi}=t;return a===1/0?Du(this,r,n,i,s,o):hi(this,r,n,i,s,o,a),this.check()}lookAt(t){let{eye:r,center:n=[0,0,0],up:i=[0,1,0]}=t;return di(this,r,n,i),this.check()}ortho(t){let{left:r,right:n,bottom:i,top:s,near:o=pi,far:a=gi}=t;return fi(this,r,n,i,s,o,a),this.check()}orthographic(t){let{fovy:r=Cu,aspect:n=Lu,focalDistance:i=1,near:s=pi,far:o=gi}=t;oa(r);let a=r/2,c=i*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:o})}perspective(t){let{fovy:r=45*Math.PI/180,aspect:n=1,near:i=.1,far:s=500}=t;return oa(r),ui(this,r,n,i,s),this.check()}determinant(){return ri(this)}getScale(t=[-0,-0,-0]){return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}getTranslation(t=[-0,-0,-0]){return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}getRotation(t,r){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return t[0]=this[0]*i,t[1]=this[1]*s,t[2]=this[2]*o,t[3]=0,t[4]=this[4]*i,t[5]=this[5]*s,t[6]=this[6]*o,t[7]=0,t[8]=this[8]*i,t[9]=this[9]*s,t[10]=this[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,r){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return t[0]=this[0]*i,t[1]=this[1]*s,t[2]=this[2]*o,t[3]=this[4]*i,t[4]=this[5]*s,t[5]=this[6]*o,t[6]=this[8]*i,t[7]=this[9]*s,t[8]=this[10]*o,t}transpose(){return ti(this,this),this.check()}invert(){return ei(this,this),this.check()}multiplyLeft(t){return Re(this,t,this),this.check()}multiplyRight(t){return Re(this,this,t),this.check()}rotateX(t){return oi(this,this,t),this.check()}rotateY(t){return ai(this,this,t),this.check()}rotateZ(t){return ci(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,r){return si(this,this,t,r),this.check()}scale(t){return ii(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return ni(this,this,t),this.check()}transform(t,r){return t.length===4?(r=mi(r||[-0,-0,-0,-0],t,this),Gr(r,4),r):this.transformAsPoint(t,r)}transformAsPoint(t,r){let{length:n}=t,i;switch(n){case 2:i=Yn(r||[-0,-0],t,this);break;case 3:i=Ae(r||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return Gr(i,t.length),i}transformAsVector(t,r){let n;switch(t.length){case 2:n=Fo(r||[-0,-0],t,this);break;case 3:n=Ur(r||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return Gr(n,t.length),n}transformPoint(t,r){return this.transformAsPoint(t,r)}transformVector(t,r){return this.transformAsPoint(t,r)}transformDirection(t,r){return this.transformAsVector(t,r)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,r,n){return this.identity().translate([t,r,n])}},jr,qr;function Ru(){return jr||(jr=new q([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(jr)),jr}function ku(){return qr||(qr=new q,Object.freeze(qr)),qr}function oa(e){if(e>Math.PI*2)throw Error("expected radians")}function Du(e,t,r,n,i,s){let o=2*s/(r-t),a=2*s/(i-n),c=(r+t)/(r-t),l=(i+n)/(i-n),h=-1,u=-1,f=-2*s;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=c,e[9]=l,e[10]=h,e[11]=u,e[12]=0,e[13]=0,e[14]=f,e[15]=0,e}function ne(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function xi(e,t){let r=e%t;return r<0?t+r:r}function ca(e){return[e[12],e[13],e[14]]}function la(e){return{left:re(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:re(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:re(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:re(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:re(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:re(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}var aa=new Mt;function re(e,t,r,n){aa.set(e,t,r);let i=aa.len();return{distance:n/i,normal:new Mt(-e/i,-t/i,-r/i)}}function yi(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function kt(e,t){let r=Rt.transformMat4([],t,e);return Rt.scale(r,r,1/r[3]),r}function ke(e,t,r){return e<t?t:e>r?r:e}function Iu(e){return Math.log(e)*Math.LOG2E}var De=Math.log2||Iu;function lt(e,t){if(!e)throw new Error(t||"@math.gl/web-mercator: assertion failed.")}var ht=Math.PI,ha=ht/4,J=ht/180,wi=180/ht,ie=512,Xr=4003e4,ut=85.051129,ua=1.5;function Ei(e){return De(e)}function tt(e){let[t,r]=e;lt(Number.isFinite(t)),lt(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=t*J,i=r*J,s=ie*(n+ht)/(2*ht),o=ie*(ht+Math.log(Math.tan(ha+i*.5)))/(2*ht);return[s,o]}function Z(e){let[t,r]=e,n=t/ie*(2*ht)-ht,i=2*(Math.atan(Math.exp(r/ie*(2*ht)-ht))-ha);return[n*wi,i*wi]}function Ti(e){let{latitude:t}=e;lt(Number.isFinite(t));let r=Math.cos(t*J);return Ei(Xr*r)-9}function Ie(e){let t=Math.cos(e*J);return ie/Xr/t}function se(e){let{latitude:t,longitude:r,highPrecision:n=!1}=e;lt(Number.isFinite(t)&&Number.isFinite(r));let i=ie,s=Math.cos(t*J),o=i/360,a=o/s,c=i/Xr/s,l={unitsPerMeter:[c,c,c],metersPerUnit:[1/c,1/c,1/c],unitsPerDegree:[o,a,c],degreesPerUnit:[1/o,1/a,1/c]};if(n){let h=J*Math.tan(t*J)/s,u=o*h/2,f=i/Xr*h,d=f/a*c;l.unitsPerDegree2=[0,u,f],l.unitsPerMeter2=[d,0,d]}return l}function _i(e,t){let[r,n,i]=e,[s,o,a]=t,{unitsPerMeter:c,unitsPerMeter2:l}=se({longitude:r,latitude:n,highPrecision:!0}),h=tt(e);h[0]+=s*(c[0]+l[0]*o),h[1]+=o*(c[1]+l[1]*o);let u=Z(h),f=(i||0)+(a||0);return Number.isFinite(i)||Number.isFinite(a)?[u[0],u[1],f]:u}function Zr(e){let{height:t,pitch:r,bearing:n,altitude:i,scale:s,center:o}=e,a=yi();W.translate(a,a,[0,0,-i]),W.rotateX(a,a,-r*J),W.rotateZ(a,a,n*J);let c=s/t;return W.scale(a,a,[c,c,c]),o&&W.translate(a,a,ct.negate([],o)),a}function vi(e){let{width:t,height:r,altitude:n,pitch:i=0,offset:s,center:o,scale:a,nearZMultiplier:c=1,farZMultiplier:l=1}=e,{fovy:h=Pt(ua)}=e;n!==void 0&&(h=Pt(n));let u=h*J,f=i*J,d=Ot(h),p=d;o&&(p+=o[2]*a/Math.cos(f)/r);let g=u*(.5+(s?s[1]:0)/r),m=Math.sin(g)*p/Math.sin(ke(Math.PI/2-f-g,.01,Math.PI-.01)),b=Math.sin(f)*m+p,_=p*10,y=Math.min(b*l,_);return{fov:u,aspect:t/r,focalDistance:d,near:c,far:y}}function Pt(e){return 2*Math.atan(.5/e)*wi}function Ot(e){return .5/Math.tan(.5*e*J)}function Hr(e,t){let[r,n,i=0]=e;return lt(Number.isFinite(r)&&Number.isFinite(n)&&Number.isFinite(i)),kt(t,[r,n,i,1])}function oe(e,t,r=0){let[n,i,s]=e;if(lt(Number.isFinite(n)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(s))return kt(t,[n,i,s,1]);let o=kt(t,[n,i,0,1]),a=kt(t,[n,i,1,1]),c=o[2],l=a[2],h=c===l?0:((r||0)-c)/(l-c);return at.lerp([],o,a,h)}function Qr(e){let{width:t,height:r,bounds:n,minExtent:i=0,maxZoom:s=24,offset:o=[0,0]}=e,[[a,c],[l,h]]=n,u=Bu(e.padding),f=tt([a,ke(h,-ut,ut)]),d=tt([l,ke(c,-ut,ut)]),p=[Math.max(Math.abs(d[0]-f[0]),i),Math.max(Math.abs(d[1]-f[1]),i)],g=[t-u.left-u.right-Math.abs(o[0])*2,r-u.top-u.bottom-Math.abs(o[1])*2];lt(g[0]>0&&g[1]>0);let m=g[0]/p[0],b=g[1]/p[1],_=(u.right-u.left)/2/m,y=(u.top-u.bottom)/2/b,E=[(d[0]+f[0])/2+_,(d[1]+f[1])/2+y],v=Z(E),w=Math.min(s,De(Math.abs(Math.min(m,b))));return lt(Number.isFinite(w)),{longitude:v[0],latitude:v[1],zoom:w}}function Bu(e=0){return typeof e=="number"?{top:e,bottom:e,left:e,right:e}:(lt(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}var fa=Math.PI/180;function Kr(e,t=0){let{width:r,height:n,unproject:i}=e,s={targetZ:t},o=i([0,n],s),a=i([r,n],s),c,l,h=e.fovy?.5*e.fovy*fa:Math.atan(.5/e.altitude),u=(90-e.pitch)*fa;return h>u-.01?(c=da(e,0,t),l=da(e,r,t)):(c=i([0,0],s),l=i([r,0],s)),[o,a,l,c]}function da(e,t,r){let{pixelUnprojectionMatrix:n}=e,i=kt(n,[t,0,1,1]),s=kt(n,[t,e.height,1,1]),a=(r*e.distanceScales.unitsPerMeter[2]-i[2])/(s[2]-i[2]),c=at.lerp([],i,s,a),l=Z(c);return l.push(r),l}var V;(function(e){e[e.Start=1]="Start",e[e.Move=2]="Move",e[e.End=4]="End",e[e.Cancel=8]="Cancel"})(V||(V={}));var Nt;(function(e){e[e.None=0]="None",e[e.Left=1]="Left",e[e.Right=2]="Right",e[e.Up=4]="Up",e[e.Down=8]="Down",e[e.Horizontal=3]="Horizontal",e[e.Vertical=12]="Vertical",e[e.All=15]="All"})(Nt||(Nt={}));var H;(function(e){e[e.Possible=1]="Possible",e[e.Began=2]="Began",e[e.Changed=4]="Changed",e[e.Ended=8]="Ended",e[e.Recognized=8]="Recognized",e[e.Cancelled=16]="Cancelled",e[e.Failed=32]="Failed"})(H||(H={}));var X0={pointerdown:V.Start,pointermove:V.Move,pointerup:V.End,pointercancel:V.Cancel,pointerout:V.Cancel};var Ta=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"";var Ex=Ta.indexOf("firefox")!==-1;var _a={DEFAULT:"default",LNGLAT:"lnglat",METER_OFFSETS:"meter-offsets",LNGLAT_OFFSETS:"lnglat-offsets",CARTESIAN:"cartesian"};Object.defineProperty(_a,"IDENTITY",{get:()=>(te.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),_a.CARTESIAN)});var ae={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0};var Ku=Math.PI/180,Ju=ne(),va=[0,0,0],tf={unitsPerMeter:[1,1,1],metersPerUnit:[1,1,1]};function ef({width:e,height:t,orthographic:r,fovyRadians:n,focalDistance:i,padding:s,near:o,far:a}){let c=e/t,l=r?new q().orthographic({fovy:n,aspect:c,focalDistance:i,near:o,far:a}):new q().perspective({fovy:n,aspect:c,near:o,far:a});if(s){let{left:h=0,right:u=0,top:f=0,bottom:d=0}=s,p=Y((h+e-u)/2,0,e)-e/2,g=Y((f+t-d)/2,0,t)-t/2;l[8]-=p*2/e,l[9]+=g*2/t}return l}var Jr=class Jr{constructor(t={}){this._frustumPlanes={};this.id=t.id||this.constructor.displayName||"viewport",this.x=t.x||0,this.y=t.y||0,this.width=t.width||1,this.height=t.height||1,this.zoom=t.zoom||0,this.padding=t.padding,this.distanceScales=t.distanceScales||tf,this.focalDistance=t.focalDistance||1,this.position=t.position||va,this.modelMatrix=t.modelMatrix||null;let{longitude:r,latitude:n}=t;this.isGeospatial=Number.isFinite(n)&&Number.isFinite(r),this._initProps(t),this._initMatrices(t),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}get subViewports(){return null}get metersPerPixel(){return this.distanceScales.metersPerUnit[2]/this.scale}get projectionMode(){return this.isGeospatial?this.zoom<12?ae.WEB_MERCATOR:ae.WEB_MERCATOR_AUTO_OFFSET:ae.IDENTITY}equals(t){return t instanceof Jr?this===t?!0:t.width===this.width&&t.height===this.height&&t.scale===this.scale&&St(t.projectionMatrix,this.projectionMatrix)&&St(t.viewMatrix,this.viewMatrix):!1}project(t,{topLeft:r=!0}={}){let n=this.projectPosition(t),i=Hr(n,this.pixelProjectionMatrix),[s,o]=i,a=r?o:this.height-o;return t.length===2?[s,a]:[s,a,i[2]]}unproject(t,{topLeft:r=!0,targetZ:n}={}){let[i,s,o]=t,a=r?s:this.height-s,c=n&&n*this.distanceScales.unitsPerMeter[2],l=oe([i,a,o],this.pixelUnprojectionMatrix,c),[h,u,f]=this.unprojectPosition(l);return Number.isFinite(o)?[h,u,f]:Number.isFinite(n)?[h,u,n]:[h,u]}projectPosition(t){let[r,n]=this.projectFlat(t),i=(t[2]||0)*this.distanceScales.unitsPerMeter[2];return[r,n,i]}unprojectPosition(t){let[r,n]=this.unprojectFlat(t),i=(t[2]||0)*this.distanceScales.metersPerUnit[2];return[r,n,i]}projectFlat(t){if(this.isGeospatial){let r=tt(t);return r[1]=Y(r[1],-318,830),r}return t}unprojectFlat(t){return this.isGeospatial?Z(t):t}getBounds(t={}){let r={targetZ:t.z||0},n=this.unproject([0,0],r),i=this.unproject([this.width,0],r),s=this.unproject([0,this.height],r),o=this.unproject([this.width,this.height],r);return[Math.min(n[0],i[0],s[0],o[0]),Math.min(n[1],i[1],s[1],o[1]),Math.max(n[0],i[0],s[0],o[0]),Math.max(n[1],i[1],s[1],o[1])]}getDistanceScales(t){return t&&this.isGeospatial?se({longitude:t[0],latitude:t[1],highPrecision:!0}):this.distanceScales}containsPixel({x:t,y:r,width:n=1,height:i=1}){return t<this.x+this.width&&this.x<t+n&&r<this.y+this.height&&this.y<r+i}getFrustumPlanes(){return this._frustumPlanes.near?this._frustumPlanes:(Object.assign(this._frustumPlanes,la(this.viewProjectionMatrix)),this._frustumPlanes)}panByPosition(t,r,n){return null}_initProps(t){let r=t.longitude,n=t.latitude;this.isGeospatial&&(Number.isFinite(t.zoom)||(this.zoom=Ti({latitude:n})+Math.log2(this.focalDistance)),this.distanceScales=t.distanceScales||se({latitude:n,longitude:r}));let i=Math.pow(2,this.zoom);this.scale=i;let{position:s,modelMatrix:o}=t,a=va;if(s&&(a=o?new q(o).transformAsVector(s,[]):s),this.isGeospatial){let c=this.projectPosition([r,n,0]);this.center=new Mt(a).scale(this.distanceScales.unitsPerMeter).add(c)}else this.center=this.projectPosition(a)}_initMatrices(t){let{viewMatrix:r=Ju,projectionMatrix:n=null,orthographic:i=!1,fovyRadians:s,fovy:o=75,near:a=.1,far:c=1e3,padding:l=null,focalDistance:h=1}=t;this.viewMatrixUncentered=r,this.viewMatrix=new q().multiplyRight(r).translate(new Mt(this.center).negate()),this.projectionMatrix=n||ef({width:this.width,height:this.height,orthographic:i,fovyRadians:s||o*Ku,focalDistance:h,padding:l,near:a,far:c});let u=ne();W.multiply(u,u,this.projectionMatrix),W.multiply(u,u,this.viewMatrix),this.viewProjectionMatrix=u,this.viewMatrixInverse=W.invert([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=ca(this.viewMatrixInverse);let f=ne(),d=ne();W.scale(f,f,[this.width/2,-this.height/2,1]),W.translate(f,f,[1,-1,0]),W.multiply(d,f,this.viewProjectionMatrix),this.pixelProjectionMatrix=d,this.pixelUnprojectionMatrix=W.invert(ne(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||te.warn("Pixel project matrix not invertible")()}};Jr.displayName="Viewport";var Vt=Jr;var Fe=class Fe extends Vt{constructor(t={}){let{latitude:r=0,longitude:n=0,zoom:i=0,pitch:s=0,bearing:o=0,nearZMultiplier:a=.1,farZMultiplier:c=1.01,nearZ:l,farZ:h,orthographic:u=!1,projectionMatrix:f,repeat:d=!1,worldOffset:p=0,position:g,padding:m,legacyMeterSizes:b=!1}=t,{width:_,height:y,altitude:E=1.5}=t,v=Math.pow(2,i);_=_||1,y=y||1;let w,x=null;if(f)E=f[5]/2,w=Pt(E);else{t.fovy?(w=t.fovy,E=Ot(w)):w=Pt(E);let M;if(m){let{top:S=0,bottom:C=0}=m;M=[0,Y((S+y-C)/2,0,y)-y/2]}x=vi({width:_,height:y,scale:v,center:g&&[0,0,g[2]*Ie(r)],offset:M,pitch:s,fovy:w,nearZMultiplier:a,farZMultiplier:c}),Number.isFinite(l)&&(x.near=l),Number.isFinite(h)&&(x.far=h)}let T=Zr({height:y,pitch:s,bearing:o,scale:v,altitude:E});p&&(T=new q().translate([512*p,0,0]).multiplyLeft(T)),super({...t,width:_,height:y,viewMatrix:T,longitude:n,latitude:r,zoom:i,...x,fovy:w,focalDistance:E}),this.latitude=r,this.longitude=n,this.zoom=i,this.pitch=s,this.bearing=o,this.altitude=E,this.fovy=w,this.orthographic=u,this._subViewports=d?[]:null,this._pseudoMeters=b,Object.freeze(this)}get subViewports(){if(this._subViewports&&!this._subViewports.length){let t=this.getBounds(),r=Math.floor((t[0]+180)/360),n=Math.ceil((t[2]-180)/360);for(let i=r;i<=n;i++){let s=i?new Fe({...this,worldOffset:i}):this;this._subViewports.push(s)}}return this._subViewports}projectPosition(t){if(this._pseudoMeters)return super.projectPosition(t);let[r,n]=this.projectFlat(t),i=(t[2]||0)*Ie(t[1]);return[r,n,i]}unprojectPosition(t){if(this._pseudoMeters)return super.unprojectPosition(t);let[r,n]=this.unprojectFlat(t),i=(t[2]||0)/Ie(n);return[r,n,i]}addMetersToLngLat(t,r){return _i(t,r)}panByPosition(t,r,n){let i=oe(r,this.pixelUnprojectionMatrix),s=this.projectFlat(t),o=at.add([],s,at.negate([],i)),a=at.add([],this.center,o),[c,l]=this.unprojectFlat(a);return{longitude:c,latitude:l}}panByPosition3D(t,r){let n=t[2]||0,i=at.sub([],t,this.unproject(r,{targetZ:n}));return{longitude:this.longitude+i[0],latitude:this.latitude+i[1]}}getBounds(t={}){let r=Kr(this,t.z||0);return[Math.min(r[0][0],r[1][0],r[2][0],r[3][0]),Math.min(r[0][1],r[1][1],r[2][1],r[3][1]),Math.max(r[0][0],r[1][0],r[2][0],r[3][0]),Math.max(r[0][1],r[1][1],r[2][1],r[3][1])]}fitBounds(t,r={}){let{width:n,height:i}=this,{longitude:s,latitude:o,zoom:a}=Qr({width:n,height:i,bounds:t,...r});return new Fe({width:n,height:i,longitude:s,latitude:o,zoom:a})}};Fe.displayName="WebMercatorViewport";var Oe=Fe;var Ne=class{constructor(t){this._inProgress=!1;this._handle=null;this.time=0;this.settings={duration:0};this._timeline=t}get inProgress(){return this._inProgress}start(t){this.cancel(),this.settings=t,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:t,settings:r}=this;this._handle=t.addChannel({delay:t.getTime(),duration:r.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var Sa=()=>{},Ma={mode:"preserve"},rf={mode:"hard"},Ci={BREAK:1,SNAP_TO_END:2,IGNORE:3},nf=e=>e,sf=Ci.BREAK,Ve=class{constructor(t){this._onTransitionUpdate=t=>{let{time:r,settings:{interpolator:n,startProps:i,endProps:s,duration:o,easing:a}}=t,c=a(r/o),l=n.interpolateProps(i,s,c);this.propsInTransition=this.getControllerState({...this.props,...l},Ma).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})};this.getControllerState=t.getControllerState,this.propsInTransition=null,this.transition=new Ne(t.timeline),this.onViewStateChange=t.onViewStateChange||Sa,this.onStateChange=t.onStateChange||Sa}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(t){let r=!1,n=this.props;if(this.props=t,!n||this._shouldIgnoreViewportChange(n,t))return!1;if(this._isTransitionEnabled(t)){let i=n;if(this.transition.inProgress){let{interruption:s,endProps:o}=this.transition.settings;i={...n,...s===Ci.SNAP_TO_END?o:this.propsInTransition||n}}this._triggerTransition(i,t),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(t){let{transitionDuration:r,transitionInterpolator:n}=t;return(r>0||r==="auto")&&!!n}_isUpdateDueToCurrentTransition(t){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(t,this.propsInTransition):!1}_shouldIgnoreViewportChange(t,r){return this.transition.inProgress?this.transition.settings.interruption===Ci.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(t,r):!0}_triggerTransition(t,r){let n=this.getControllerState(t,Ma),i=this.getControllerState(r,rf).shortestPathFrom(n),s=r.transitionInterpolator,o=s.getDuration?s.getDuration(t,r):r.transitionDuration;if(o===0)return;let a=s.initializeProps(t,i);this.propsInTransition={};let c={duration:o,easing:r.transitionEasing||nf,interpolator:s,interruption:r.transitionInterruption||sf,startProps:a.start,endProps:a.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(c),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(t){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),t?.(r)}}};function Gt(e,t){if(!e)throw new Error(t||"deck.gl: assertion failed.")}var Ge=class{constructor(t){let{compare:r,extract:n,required:i}=t;this._propsToCompare=r,this._propsToExtract=n||r,this._requiredProps=i}arePropsEqual(t,r){for(let n of this._propsToCompare)if(!(n in t)||!(n in r)||!St(t[n],r[n]))return!1;return!0}initializeProps(t,r){let n={},i={};for(let s of this._propsToExtract)(s in t||s in r)&&(n[s]=t[s],i[s]=r[s]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(t,r){return r.transitionDuration}_checkRequiredProps(t){this._requiredProps&&this._requiredProps.forEach(r=>{let n=t[r];Gt(Number.isFinite(n)||Array.isArray(n),`${r} is required for transition`)})}};var ce=Math.PI/180,Pa=180/Math.PI,en=6370972,le=256;function of(){let e=le/en,t=Math.PI/180*le;return{unitsPerMeter:[e,e,e],unitsPerMeter2:[0,0,0],metersPerUnit:[1/e,1/e,1/e],unitsPerDegree:[t,t,e],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/t,1/t,1/e]}}var he=class extends Vt{constructor(t={}){let{longitude:r=0,bearing:n=0,pitch:i=0,zoom:s=0,nearZMultiplier:o=.5,farZMultiplier:a=1,resolution:c=10}=t,{latitude:l=0,height:h,altitude:u=1.5,fovy:f}=t;l=Math.max(Math.min(l,90),-90),h=h||1,f?u=Ot(f):f=Pt(u);let d=Math.max(Math.min(l,ut),-ut),p=Math.pow(2,s-tn(d)),g=i*ce,m=t.nearZ??o,b=t.farZ??(u+le*2*p/h/Math.max(Math.cos(g),.1))*a,_=new q().lookAt({eye:[0,-u,0],up:[0,0,1]}).rotateX(-g).rotateY(-n*ce).rotateX(l*ce).rotateZ(-r*ce).scale(p/h);super({...t,height:h,viewMatrix:_,longitude:r,latitude:l,zoom:s,distanceScales:of(),fovy:f,focalDistance:u,near:m,far:b}),this.scale=p,this.latitude=l,this.longitude=r,this.bearing=n,this.pitch=i,this.fovy=f,this.resolution=c}get projectionMode(){return ae.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(t={}){let r={targetZ:t.z||0},n=this.unproject([0,this.height/2],r),i=this.unproject([this.width/2,0],r),s=this.unproject([this.width,this.height/2],r),o=this.unproject([this.width/2,this.height],r);return s[0]<this.longitude&&(s[0]+=360),n[0]>this.longitude&&(n[0]-=360),[Math.min(n[0],s[0],i[0],o[0]),Math.min(n[1],s[1],i[1],o[1]),Math.max(n[0],s[0],i[0],o[0]),Math.max(n[1],s[1],i[1],o[1])]}unproject(t,{topLeft:r=!0,targetZ:n}={}){let[i,s,o]=t,a=r?s:this.height-s,{pixelUnprojectionMatrix:c}=this,l;if(Number.isFinite(o))l=Li(c,[i,a,o,1]);else{let d=Li(c,[i,a,-1,1]),p=Li(c,[i,a,1,1]),g=((n||0)/en+1)*le,m=ct.sqrLen(ct.sub([],d,p)),b=ct.sqrLen(d),_=ct.sqrLen(p),E=4*((4*b*_-(m-b-_)**2)/16)/m,v=Math.sqrt(b-E),w=Math.sqrt(Math.max(0,g*g-E)),x=(v-w)/Math.sqrt(m);l=ct.lerp([],d,p,x)}let[h,u,f]=this.unprojectPosition(l);return Number.isFinite(o)?[h,u,f]:Number.isFinite(n)?[h,u,n]:[h,u]}projectPosition(t){let[r,n,i=0]=t,s=r*ce,o=n*ce,a=Math.cos(o),c=(i/en+1)*le;return[Math.sin(s)*a*c,-Math.cos(s)*a*c,Math.sin(o)*c]}unprojectPosition(t){let[r,n,i]=t,s=ct.len(t),o=Math.asin(i/s),c=Math.atan2(r,-n)*Pa,l=o*Pa,h=(s/le-1)*en;return[c,l,h]}projectFlat(t){return t}unprojectFlat(t){return t}panByPosition([t,r,n],i,s){let a=.25/Math.pow(2,this.zoom-tn(this.latitude)),c=t+a*(s[0]-i[0]),l=r-a*(s[1]-i[1]);l=Math.max(Math.min(l,90),-90);let h={longitude:c,latitude:l,zoom:n-tn(r)};return h.zoom+=tn(h.latitude),h}};he.displayName="GlobeViewport";function tn(e,t){t&&(e=Math.max(Math.min(e,ut),-ut));let r=Math.PI*Math.cos(e*Math.PI/180);return Math.log2(r)}function Li(e,t){let r=Rt.transformMat4([],t,e);return Rt.scale(r,r,1/r[3]),r}var af=["longitude","latitude","zoom","bearing","pitch"],cf=["longitude","latitude","zoom"],zt=class extends Ge{constructor(t={}){let r=Array.isArray(t)?t:t.transitionProps,n=Array.isArray(t)?{}:t;n.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:af,required:cf},super(n.transitionProps),this.opts=n}initializeProps(t,r){let n=super.initializeProps(t,r),{makeViewport:i,around:s}=this.opts;if(i&&s)if(i(t)instanceof he)te.warn("around not supported in GlobeView")();else{let a=i(t),c=i(r),l=a.unproject(s);n.start.around=s,Object.assign(n.end,{around:c.project(l),aroundPosition:l,width:r.width,height:r.height})}return n}interpolateProps(t,r,n){let i={};for(let s of this._propsToExtract)i[s]=Le(t[s]||0,r[s]||0,n);if(r.aroundPosition&&this.opts.makeViewport){let s=this.opts.makeViewport({...r,...i});Object.assign(i,s.panByPosition(r.aroundPosition,Le(t.around,r.around,n)))}return i}};var yt={transitionDuration:0},lf=300,hf=300,Ai=e=>1-(1-e)*(1-e),uf=e=>e===1?1:1-Math.pow(2,-10*e),Wt={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],MULTI_PAN:["multipanstart","multipanmove","multipanend"],DOUBLE_CLICK:["dblclick"],DOUBLE_CLICK_DRAG:["dblclickdragstart","dblclickdragmove","dblclickdragend","dblclickdragcancel"],KEYBOARD:["keydown"]},Ut={},ze=class{constructor(t){this.state={};this._events={};this._interactionState={isDragging:!1};this._customEvents=[];this._eventStartBlocked=null;this._panMove=!1;this._multiPanMode=null;this._multiPanStartCenter=null;this._doubleClickDragAnchor=null;this._suppressDoubleClickUntil=0;this.invertPan=!1;this.dragMode="rotate";this.inertia=0;this.scrollZoom=!0;this.dragPan=!0;this.dragRotate=!0;this.doubleClickZoom=!0;this.doubleClickDragZoom=!0;this.touchZoom=!0;this.touchRotate=!1;this.multiTouchDrag=null;this.trackpadGesture=!1;this.keyboard=!0;this.transitionManager=new Ve({...t,getControllerState:(r,n)=>new this.ControllerState({...r,constraintContext:n,makeViewport:t.makeViewport}),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=t.eventManager,this.onViewStateChange=t.onViewStateChange||(()=>{}),this.onStateChange=t.onStateChange||(()=>{}),this.makeViewport=t.makeViewport,this.pickPosition=t.pickPosition}set events(t){this.toggleEvents(this._customEvents,!1),this.toggleEvents(t,!0),this._customEvents=t,this.props&&this.setProps(this.props)}finalize(){for(let t in this._events)this._events[t]&&this.eventManager?.off(t,this.handleEvent);this.transitionManager.finalize()}handleEvent(t){this._controllerState=void 0;let r=this._eventStartBlocked;switch(t.type){case"panstart":return r?!1:this._onPanStart(t);case"panmove":return this._onPan(t);case"panend":return this._onPanEnd(t);case"pinchstart":return r||!this._isTrackpadGestureAllowed(t)?!1:this._onPinchStart(t);case"pinchmove":return this._isTrackpadGestureAllowed(t)?this._onPinch(t):!1;case"pinchend":return this._isTrackpadGestureAllowed(t)?this._onPinchEnd(t):!1;case"multipanstart":return r?!1:this._onMultiPanStart(t);case"multipanmove":return this._onMultiPan(t);case"multipanend":return this._onMultiPanEnd(t);case"dblclick":return this._onDoubleClick(t);case"dblclickdragstart":return r?!1:this._onDoubleClickDragStart(t);case"dblclickdragmove":return this._onDoubleClickDrag(t);case"dblclickdragend":case"dblclickdragcancel":return this._onDoubleClickDragEnd(t);case"wheel":return this._onWheel(t);case"keydown":return this._onKeyDown(t);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(t){let{x:r,y:n}=this.props,{offsetCenter:i}=t;return[i.x-r,i.y-n]}isPointInBounds(t,r){let{width:n,height:i}=this.props;if(r&&r.handled)return!1;let s=t[0]>=0&&t[0]<=n&&t[1]>=0&&t[1]<=i;return s&&r&&r.stopPropagation(),s}isFunctionKeyPressed(t){let{srcEvent:r}=t;return!!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(t){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},t);this._eventStartBlocked=r}setProps(t){t.maxBoundsPadding===void 0&&(t.maxBoundsPadding=null),t.dragMode&&(this.dragMode=t.dragMode);let r=this.props;this.props=t,"transitionInterpolator"in t||(t.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(t);let{inertia:n}=t;this.inertia=Number.isFinite(n)?n:n===!0?lf:0;let{scrollZoom:i=!0,dragPan:s=!0,dragRotate:o=!0,doubleClickZoom:a=!0,doubleClickDragZoom:c=!1,touchZoom:l=!0,touchRotate:h=!1,multiTouchDrag:u=h?"rotate":null,trackpadGesture:f=!1,keyboard:d=!0}=t,p=!!this.onViewStateChange;if(this.toggleEvents(Wt.WHEEL,p&&i),this.toggleEvents(Wt.PAN,p),this.toggleEvents(Wt.PINCH,p&&(l||u==="rotate")),this.toggleEvents(Wt.MULTI_PAN,p&&!!u),this.toggleEvents(Wt.DOUBLE_CLICK,p&&a),this.toggleEvents(Wt.DOUBLE_CLICK_DRAG,p&&c),this.toggleEvents(Wt.KEYBOARD,p&&d),this.scrollZoom=i,this.dragPan=s,this.dragRotate=o,this.doubleClickZoom=a,this.doubleClickDragZoom=c,this.touchZoom=l,this.touchRotate=u==="rotate",this.multiTouchDrag=u,this.trackpadGesture=f,this.keyboard=d,(!r||r.height!==t.height||r.width!==t.width||r.maxBounds!==t.maxBounds||r.maxBoundsPadding!==t.maxBoundsPadding)&&t.maxBounds){let m=new this.ControllerState({...t,makeViewport:this.makeViewport}),b=m.getViewportProps();Object.keys(b).some(y=>!Bt(b[y],t[y],1))&&this.updateViewport(m)}}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(t,r){this.eventManager&&t.forEach(n=>{this._events[n]!==r&&(this._events[n]=r,r?this.eventManager.on(n,this.handleEvent):this.eventManager.off(n,this.handleEvent))})}updateViewport(t,r=null,n={}){let i={...t.getViewportProps(),...r},s=this.controllerState!==t;if(this.state=t.getState(),this._setInteractionState(n),s){let o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:o,viewId:this.props.id})}}_onTransition(t){this.onViewStateChange({...t,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(t){Object.assign(this._interactionState,t),this.onStateChange(this._interactionState)}_getConstraintContext(t,r){return this.props.rubberBand?{mode:r==="update"?"elastic":r==="end"?"rebound":"hard"}:{mode:"hard"}}_getReboundTransition(t,r){if(t.mode!=="rebound")return null;let n=r.getViewportProps();return Object.keys(n).some(s=>!Bt(this.props[s],n[s],1))?{...this._getTransitionProps(),transitionDuration:hf,transitionEasing:uf}:null}_onPanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let n=this.isFunctionKeyPressed(t)||t.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(n=!n);let i=n?"pan":"rotate",s=this._getConstraintContext(i,"start"),o=n?this.controllerState.panStart({pos:r},s):this.controllerState.rotateStart({pos:r},s);return this._panMove=n,this.updateViewport(o,yt,{isDragging:!0}),!0}_onPan(t){return this.isDragging()?this._panMove?this._onPanMove(t):this._onPanRotate(t):!1}_onPanEnd(t){return this.isDragging()?this._panMove?this._onPanMoveEnd(t):this._onPanRotateEnd(t):!1}_onPanMove(t){if(!this.dragPan)return!1;let r=this.getCenter(t),n=this.controllerState.pan({pos:r},this._getConstraintContext("pan","update"));return this.updateViewport(n,yt,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(t){let{inertia:r}=this;if(this.dragPan&&r&&t.velocity){let n=this.getCenter(t),i=[n[0]+t.velocityX*r/2,n[1]+t.velocityY*r/2],s=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:Ai},{isDragging:!1,isPanning:!0})}else{let n=this.controllerState,i=this._getConstraintContext("pan","end"),s=n.panEnd(i),o=this._getReboundTransition(i,s);this.updateViewport(s,o,{isDragging:!1,isPanning:!!o})}return!0}_onPanRotate(t){if(!this.dragRotate)return!1;let r=this.getCenter(t),n=this.controllerState.rotate({pos:r},this._getConstraintContext("rotate","update"));return this.updateViewport(n,yt,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(t){let{inertia:r}=this;if(this.dragRotate&&r&&t.velocity){let n=this.getCenter(t),i=[n[0]+t.velocityX*r/2,n[1]+t.velocityY*r/2],s=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:Ai},{isDragging:!1,isRotating:!0})}else{let n=this.controllerState,i=this._getConstraintContext("rotate","end"),s=n.rotateEnd(i),o=this._getReboundTransition(i,s);this.updateViewport(s,o,{isDragging:!1,isRotating:!!o})}return!0}_onWheel(t){if(!this.scrollZoom||this.trackpadGesture&&t.device!=="mouse")return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;t.srcEvent.preventDefault();let{speed:n=.01,smooth:i=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:s}=t,o=2/(1+Math.exp(-Math.abs(s*n)));s<0&&o!==0&&(o=1/o);let a=i?{...this._getTransitionProps({around:r}),transitionDuration:250}:yt,c=this.controllerState.zoom({pos:r,scale:o});return this.updateViewport(c,a,{isZooming:!0,isPanning:!0}),i||this._setInteractionState({isZooming:!1,isPanning:!1}),!0}_onMultiPanStart(t){let{multiTouchDrag:r}=this;if(!r||!this._isMultiPanEventAllowed(t,r))return!1;let n=t.offsetCenter;if(!this.isPointInBounds(this.getCenter(t),t))return!1;let i=t.pointerType==="trackpad",s={x:n.x-(i?0:t.deltaX),y:n.y-(i?0:t.deltaY)},o={...t,offsetCenter:s},a=this.getCenter(o),c=r==="pan"?this.controllerState.panStart({pos:a},this._getConstraintContext("pan","start")):this.controllerState.rotateStart({pos:a},this._getConstraintContext("rotate","start"));return this._multiPanMode=r,this._multiPanStartCenter=s,this.updateViewport(c,yt,{isDragging:!0}),!0}_onMultiPan(t){let{mode:r,event:n}=this._getMultiPanEvent(t);return!r||!n||!this.isDragging()?!1:r==="pan"?this._onPanMove(n):this._onPanRotate(n)}_onMultiPanEnd(t){let{mode:r,event:n}=this._getMultiPanEvent(t);if(!r||!n||!this.isDragging())return this._resetMultiPan(),!1;let i=r==="pan"?this._onPanMoveEnd(n):this._onPanRotateEnd(n);return this._resetMultiPan(),i}_isTrackpadGestureAllowed(t){return t.pointerType!=="trackpad"||this.trackpadGesture}_isMultiPanEventAllowed(t,r){return t.pointerType==="trackpad"?this.trackpadGesture&&(r==="pan"?this.dragPan:this.dragRotate):t.pointerType==="touch"&&(r==="pan"?this.dragPan:this.dragRotate)}_getMultiPanEvent(t){let r=this._multiPanMode,n=this._multiPanStartCenter;return!r||!n?{mode:null,event:null}:{mode:r,event:{...t,offsetCenter:{x:n.x+t.deltaX,y:n.y+t.deltaY}}}}_resetMultiPan(){this._multiPanMode=null,this._multiPanStartCenter=null}_onPinchStart(t){this._doubleClickDragAnchor=null;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let n=this.controllerState.zoomStart({pos:r},this._getConstraintContext("zoom","start")).rotateStart({pos:r},this._getConstraintContext("rotate","start"));return Ut._startPinchRotation=t.rotation,Ut._lastPinchEvent=t,this.updateViewport(n,yt,{isDragging:!0}),!0}_onPinch(t){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:n}=t,i=this.getCenter(t);r=r.zoom({pos:i,scale:n},this._getConstraintContext("zoom","update"))}if(this.touchRotate){let{rotation:n}=t;r=r.rotate({deltaAngleX:Ut._startPinchRotation-n},this._getConstraintContext("rotate","update"))}return this.updateViewport(r,yt,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),Ut._lastPinchEvent=t,!0}_onPinchEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:n}=Ut;if(this.touchZoom&&r&&n&&t.scale!==n.scale){let i=this.getCenter(t),s=this.controllerState.rotateEnd(),o=Math.log2(t.scale),a=(o-Math.log2(n.scale))/(t.deltaTime-n.deltaTime),c=Math.pow(2,o+a*r/2);s=s.zoom({pos:i,scale:c}).zoomEnd(),this.updateViewport(s,{...this._getTransitionProps({around:i}),transitionDuration:r,transitionEasing:Ai},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let i=this.controllerState,s=this._getConstraintContext("zoom","end"),o=this._getConstraintContext("rotate","end"),a=i.zoomEnd(s).rotateEnd(o),c=this._getReboundTransition(this.touchZoom?s:o,a);this.updateViewport(a,c,{isDragging:!1,isPanning:!!c&&this.touchZoom,isZooming:!!c&&this.touchZoom,isRotating:!!c&&this.touchRotate})}return Ut._startPinchRotation=null,Ut._lastPinchEvent=null,!0}_onDoubleClick(t){if(!this.doubleClickZoom||Date.now()<this._suppressDoubleClickUntil)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let n=this.isFunctionKeyPressed(t),i=this.controllerState.zoom({pos:r,scale:n?.5:2});return this.updateViewport(i,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onDoubleClickDragStart(t){if(!this.doubleClickDragZoom)return this._doubleClickDragAnchor=null,!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return this._doubleClickDragAnchor=null,!1;this._doubleClickDragAnchor=r;let n=this.controllerState.zoomStart({pos:r},this._getConstraintContext("zoom","start"));return t.scale!==1&&(n=n.zoom({pos:r,scale:t.scale},this._getConstraintContext("zoom","update"))),this.updateViewport(n,yt,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDrag(t){let r=this._doubleClickDragAnchor;if(!r)return!1;let n=this.controllerState.zoom({pos:r,scale:t.scale},this._getConstraintContext("zoom","update"));return this.updateViewport(n,yt,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDragEnd(t){if(!this._doubleClickDragAnchor)return!1;this._doubleClickDragAnchor=null;let n=this.controllerState,i=this._getConstraintContext("zoom","end"),s=n.zoomEnd(i),o=this._getReboundTransition(i,s);return this.updateViewport(s,o,{isDragging:!1,isPanning:!!o,isZooming:!!o}),this._suppressDoubleClickUntil=Date.now()+100,this.blockEvents(100),!0}_onKeyDown(t){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(t),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:s,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:a}=this,c,l={};switch(t.srcEvent.code){case"Minus":c=r?a.zoomOut(n).zoomOut(n):a.zoomOut(n),l.isZooming=!0;break;case"Equal":c=r?a.zoomIn(n).zoomIn(n):a.zoomIn(n),l.isZooming=!0;break;case"ArrowLeft":r?(c=a.rotateLeft(s),l.isRotating=!0):(c=a.moveLeft(i),l.isPanning=!0);break;case"ArrowRight":r?(c=a.rotateRight(s),l.isRotating=!0):(c=a.moveRight(i),l.isPanning=!0);break;case"ArrowUp":r?(c=a.rotateUp(o),l.isRotating=!0):(c=a.moveUp(i),l.isPanning=!0);break;case"ArrowDown":r?(c=a.rotateDown(o),l.isRotating=!0):(c=a.moveDown(i),l.isPanning=!0);break;default:return!1}return this.updateViewport(c,this._getTransitionProps(),l),!0}_getTransitionProps(t){let{transition:r}=this;return!r||!r.transitionInterpolator?yt:t?{...r,transitionInterpolator:new zt({...t,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var ue=Symbol("constraintAround"),We=class{constructor(t,r,n,i){this.makeViewport=n,this._viewportProps=this.applyConstraints(t,i),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};function rn(e,t,r){let n=e-t;return n&&Number.isFinite(n)?t+n*r/(r+Math.abs(n)):t}function Ri(e,t,r){let n=j($(r?.left??0),e),i=j($(r?.right??0),e),s=j($(r?.top??0),t),o=j($(r?.bottom??0),t);return{x:n,y:s,width:e-n-i,height:t-s-o}}function Ca(e,t,r){let[n,i]=e.project(t);return n=Number.isFinite(n)?n:e.width/2,i=Number.isFinite(i)?i:e.height/2,{left:n-r.x,right:r.x+r.width-n,top:i-r.y,bottom:r.y+r.height-i}}var La=5,ff=1.2,Aa=512,Ra=[[-1/0,-90],[1/0,90]],df=1;function Ue([e,t]){if(Math.abs(t)>90&&(t=Math.sign(t)*90),Number.isFinite(e)){let[n,i]=tt([e,t]);return[n,Y(i,0,Aa)]}let[,r]=tt([0,t]);return[e,Y(r,0,Aa)]}var ki=class extends We{constructor(t){let{width:r,height:n,latitude:i,longitude:s,zoom:o,bearing:a=0,pitch:c=0,altitude:l=1.5,position:h=[0,0,0],maxZoom:u=20,minZoom:f=0,maxPitch:d=60,minPitch:p=0,startPanLngLat:g,startZoomLngLat:m,startRotatePos:b,startRotateLngLat:_,startBearing:y,startPitch:E,startZoom:v,normalize:w=!0,rubberBand:x=!1}=t,{[ue]:T}=t;Gt(Number.isFinite(s)),Gt(Number.isFinite(i)),Gt(Number.isFinite(o));let M=t.maxBounds||(w?Ra:null),S=t.maxBoundsPadding||null;super({width:r,height:n,latitude:i,longitude:s,zoom:o,bearing:a,pitch:c,altitude:l,maxZoom:u,minZoom:f,maxPitch:d,minPitch:p,normalize:w,position:h,maxBounds:M,maxBoundsPadding:S,rubberBand:x,[ue]:T},{startPanLngLat:g,startZoomLngLat:m,startRotatePos:b,startRotateLngLat:_,startBearing:y,startPitch:E,startZoom:v},t.makeViewport,t.constraintContext),this.getAltitude=t.getAltitude}panStart({pos:t},r){return this._getUpdatedState({startPanLngLat:this._unproject(t)},r)}pan({pos:t,startPos:r},n){let i=this.getState().startPanLngLat||this._unproject(r);if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,t);return this._getUpdatedState(o,n)}panEnd(t){return this._getUpdatedState({startPanLngLat:null},t)}rotateStart({pos:t}){let r=this.getAltitude?.(t);return this._getUpdatedState({startRotatePos:t,startRotateLngLat:r!==void 0?this._unproject3D(t,r):void 0,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:t,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startRotateLngLat:s,startBearing:o,startPitch:a}=this.getState();if(!i||o===void 0||a===void 0)return this;let c;if(t?c=this._getNewRotation(t,i,a,o):c={bearing:o+r,pitch:a+n},s){let l=this.makeViewport({...this.getViewportProps(),...c}),h="panByPosition3D"in l?"panByPosition3D":"panByPosition";return this._getUpdatedState({...c,...l[h](s,i)})}return this._getUpdatedState(c)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startRotateLngLat:null,startBearing:null,startPitch:null})}zoomStart({pos:t},r){return this._getUpdatedState({startZoomLngLat:this._unproject(t),startZoom:this.getViewportProps().zoom},r)}zoom({pos:t,startPos:r,scale:n},i){let{startZoom:s,startZoomLngLat:o}=this.getState();return o||(s=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(t)),o?this._getUpdatedState({zoom:s+Math.log2(n),[ue]:{position:o,screenPosition:t}},i):this}zoomEnd(t){return this._getUpdatedState({startZoomLngLat:null,startZoom:null},t)}zoomIn(t=2,r){return this._zoomFromCenter(t,r)}zoomOut(t=2,r){return this._zoomFromCenter(1/t,r)}moveLeft(t=100,r){return this._panFromCenter([t,0],r)}moveRight(t=100,r){return this._panFromCenter([-t,0],r)}moveUp(t=100,r){return this._panFromCenter([0,t],r)}moveDown(t=100,r){return this._panFromCenter([0,-t],r)}rotateLeft(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-t})}rotateRight(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+t})}rotateUp(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+t})}rotateDown(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-t})}shortestPathFrom(t){let r=t.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:s}=n;return Math.abs(i-r.bearing)>180&&(n.bearing=i<0?i+360:i-360),Math.abs(s-r.longitude)>180&&(n.longitude=s<0?s+360:s-360),n}applyConstraints(t,r){let n=t,i=n[ue];delete n[ue];let{maxPitch:s,minPitch:o,pitch:a,bearing:c,normalize:l,maxBounds:h,rubberBand:u}=t;l&&(c<-180||c>180)&&(t.bearing=xi(c+180,360)-180),t.pitch=Y(a,o,s);let f=this._constrainZoom(t.zoom,t),d=u&&r?.mode==="elastic";if(t.zoom=r?.mode==="preserve"?t.zoom:d?rn(t.zoom,f,df):f,i){let p=this.makeViewport(t);Object.assign(t,p.panByPosition(i.position,i.screenPosition))}if(l&&(t.longitude<-180||t.longitude>180)&&(t.longitude=xi(t.longitude+180,360)-180),h){let p=Ri(t.width,t.height,t.maxBoundsPadding),g=this.makeViewport({...t,bearing:0,pitch:0}),m=Ca(g,[t.longitude,t.latitude],p),b=Ue(h[0]),_=Ue(h[1]),y=2**t.zoom,E=[b[0]+m.left/y,b[1]+m.bottom/y],v=[_[0]-m.right/y,_[1]-m.top/y],w=Ue([t.longitude,t.latitude]),x=[Y(w[0],E[0],v[0]),Y(w[1],E[1],v[1])],T=w.slice();if(p.width>=0&&(T[0]=r?.mode==="preserve"?w[0]:d?rn(w[0],x[0],p.width/2/y):x[0]),p.height>=0&&(T[1]=r?.mode==="preserve"?w[1]:d?rn(w[1],x[1],p.height/2/y):x[1]),T[0]!==w[0]||T[1]!==w[1]){let[M,S]=Z(T);T[0]!==w[0]&&(t.longitude=M),T[1]!==w[1]&&(t.latitude=S)}}return t}_constrainZoom(t,r){r||=this.getViewportProps();let{maxZoom:n,maxBounds:i}=r,s=i!==null&&r.width>0&&r.height>0,{minZoom:o}=r;if(s){let a=Ri(r.width,r.height,r.maxBoundsPadding),c=Ue(i[0]),l=Ue(i[1]),h=l[0]-c[0],u=l[1]-c[1];a.width>0&&Number.isFinite(h)&&h>0&&(o=Math.max(o,Math.log2(a.width/h))),a.height>0&&Number.isFinite(u)&&u>0&&(o=Math.max(o,Math.log2(a.height/u))),o>n&&(o=n)}return Y(t,o,n)}_zoomFromCenter(t,r){let{width:n,height:i}=this.getViewportProps();return this.zoom({pos:[n/2,i/2],scale:t},r)}_panFromCenter(t,r){let{width:n,height:i}=this.getViewportProps();return this.pan({startPos:[n/2,i/2],pos:[n/2+t[0],i/2+t[1]]},r)}_getUpdatedState(t,r){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...t,constraintContext:r})}_unproject(t){let r=this.makeViewport(this.getViewportProps());return t&&r.unproject(t)}_unproject3D(t,r){return this.makeViewport(this.getViewportProps()).unproject(t,{targetZ:r})}_getNewRotation(t,r,n,i){let s=t[0]-r[0],o=t[1]-r[1],a=t[1],c=r[1],{width:l,height:h}=this.getViewportProps(),u=s/l,f=0;o>0?Math.abs(h-c)>La&&(f=o/(c-h)*ff):o<0&&c>La&&(f=1-a/c),f=Y(f,-1,1);let{minPitch:d,maxPitch:p}=this.getViewportProps(),g=i+180*u,m=n;return f>0?m=n+f*(p-n):f<0&&(m=n-f*(d-n)),{pitch:m,bearing:g}}},Ye=class extends ze{constructor(){super(...arguments);this.ControllerState=ki;this.transition={transitionDuration:300,transitionInterpolator:new zt({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})};this.dragMode="pan";this.rotationPivot="center";this._getAltitude=r=>{if(this.rotationPivot==="2d")return 0;if(this.rotationPivot==="3d"&&this.pickPosition){let{x:n,y:i}=this.props,s=this.pickPosition(n+r[0],i+r[1]);if(s&&s.coordinate&&s.coordinate.length>=3)return s.coordinate[2]}}}setProps(r){"rotationPivot"in r&&(this.rotationPivot=r.rotationPivot||"center"),r.getAltitude=this._getAltitude,r.position=r.position||[0,0,0],r.maxBounds=r.maxBounds||(r.normalize===!1?null:Ra),super.setProps(r)}updateViewport(r,n=null,i={}){let s=r.getState();i.isDragging&&s.startRotateLngLat?i={...i,rotationPivotPosition:s.startRotateLngLat}:i.isDragging===!1&&(i={...i,rotationPivotPosition:void 0}),super.updateViewport(r,n,i)}};var fe=class extends Ce{constructor(t={}){super(t)}getViewportType(){return Oe}get ControllerType(){return Ye}};fe.displayName="MapView";var mf=5916575505e-1,pf=78271.484,nn=111320,gf=55*Math.PI/180,bf=65,xf=80;function yf(e,t){let r=(e.latitude+t.latitude)/2*Math.PI/180,n=(e.latitude-t.latitude)*nn,i=(e.longitude-t.longitude)*nn*Math.cos(r);return Math.sqrt(n*n+i*i)}function wf(e,t,r,n,i){let s=e.toMap({x:n/2,y:i/2}),o=e.toMap({x:n/2+1,y:i/2});if(s&&o){let a=yf(s,o);if(a>0){let c=r*Math.PI/180;return Math.log2(pf*Math.cos(c)/a)}}return Math.log2(mf/e.scale)-1}function Ef(e,t,r){let n=Math.max(0,Math.min(1,(r-e)/(t-e)));return n*n*(3-2*n)}function Tf(e,t){let r=e/t;return .5/(Math.tan(gf/2)/Math.sqrt(1+r*r))}function _f(e,t,r,n){let i=Tf(r,n),s=Ef(bf,xf,e);return t*(1-s)+i*s}function vf(e,t,r,n,i,s){return{views:new fe({id:"arcgis-scene"}),viewState:{"arcgis-scene":{id:"arcgis-scene",longitude:t,latitude:r,zoom:n,pitch:e.camera.tilt,bearing:e.camera.heading,altitude:s,position:[0,0,0],resolution:i}}}}function Di(e,t){class r{constructor(i,s){if(this.resources=null,this.cancelInitialization=null,this.renderNode=null,i&&typeof i=="object"&&"view"in i){let{view:l,...h}=i;this.view=l,this.deck=new e(h)}else this.view=i,this.deck=new e(s);let o=!1,a=this,c=t.createSubclass({consumes:{required:["composite-color"]},produces:"composite-color",initialize(){},render(l){let h=this,u=l.find(B=>B.name==="composite-color");if(!a.resources&&!o){let B=h.gl;if(B){o=!0;let ft=!1;a.cancelInitialization=()=>{ft=!0},Fr.call(a,B).then(Q=>{if(o=!1,ft){Ht(Q);return}a.deck.on("change",je=>Q.deck.setProps(je)),Q.deck.setProps(a.deck.toJSON()),a.resources=Q,h.requestRender()}).catch(Q=>{o=!1,console.error("DeckRenderer: failed to initialize resources",Q)})}return u}if(!a.resources)return u;let f=h.bindRenderTarget(),d=h.gl,p=window.devicePixelRatio||1,g=d.drawingBufferWidth/p,m=d.drawingBufferHeight/p,b=a.view.camera.position,_=a.view.toMap({x:g/2,y:m/2}),y=_?_.latitude:a.view.center.latitude,E=_?_.longitude:a.view.center.longitude,v=(y+b.latitude)/2*Math.PI/180,w=(b.latitude-y)*nn,x=(b.longitude-E)*nn*Math.cos(v),T=Math.sqrt(w*w+x*x),M=Math.sqrt(T*T+b.z*b.z),S=wf(a.view,E,y,g,m),C=m*a.view.resolution,L=M/C,R=_f(a.view.camera.tilt,L,g,m),A=vf(a.view,E,y,S,a.view.resolution,R);try{A?Pe(a.resources,{width:g,height:m,latitude:y,longitude:E,altitude:R,zoom:S,bearing:a.view.camera.heading,pitch:a.view.camera.tilt,...A}):Pe(a.resources,{width:g,height:m,latitude:y,longitude:E,altitude:R,zoom:S,bearing:a.view.camera.heading,pitch:a.view.camera.tilt})}catch(B){console.error("DeckRenderer: render error",B)}return f}});this.renderNode=new c({view:this.view})}async setup(i){}dispose(){this.cancelInitialization?.(),this.resources&&(Ht(this.resources),this.resources=null),this.renderNode=null}redraw(){this.renderNode?.requestRender()}render(){this.renderNode?.requestRender()}}return r}var Ii=D(Da(),1),de;async function Sf(e,t){let r=Array.isArray(e)?null:e;return await Mf(r,t),Array.isArray(e)?(0,Ii.loadModules)(e,t).then(n=>({...de,modules:n})):de}async function Mf(e,t){if(de)return de;if(e){let o=e.layers.Layer,a=e.core.Accessor,c=e.views["2d"].layers.BaseLayerViewGL2D,l=e.views["3d"].webgl.RenderNode;return Ia(o,a,c,l)}let[r,n,i,s]=await(0,Ii.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/webgl/RenderNode"],t);return Ia(r,n,i,s)}function Ia(e,t,r,n){let i=on(t),s=On(r),o=an(i,e,s),a=Di(i,n);return de={DeckLayer:o,DeckRenderer:a},de}return Ga($e);})();
|
|
29
30
|
return __exports__;
|
|
30
31
|
});
|