@mateuszjs/magic-render 0.0.1-next.5 → 0.1.0-next.2
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/README.md +4 -0
- package/lib/index.mjs +1 -1
- package/lib/types/WebGPU/canvasSizeObserver.d.ts.map +1 -0
- package/lib/types/WebGPU/getDevice.d.ts.map +1 -0
- package/lib/types/WebGPU/getTexture/createCheckedImageData.d.ts.map +1 -0
- package/lib/types/WebGPU/getTexture/generateMimapsArray.d.ts.map +1 -0
- package/lib/types/WebGPU/getTexture/index.d.ts.map +1 -0
- package/lib/types/WebGPU/m3.d.ts.map +1 -0
- package/lib/types/WebGPU/pick.d.ts +20 -0
- package/lib/types/WebGPU/pick.d.ts.map +1 -0
- package/lib/types/WebGPU/pointer.d.ts +6 -0
- package/lib/types/WebGPU/pointer.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/blur/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/draw3dModel/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/draw3dModelLight/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/draw3dModelTexture/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/drawBezier/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/drawTexture/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/drawTriangle/getProgram.d.ts +2 -0
- package/lib/types/WebGPU/programs/drawTriangle/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/initPrograms.d.ts +20 -0
- package/lib/types/WebGPU/programs/initPrograms.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/pickTexture/getProgram.d.ts +2 -0
- package/lib/types/WebGPU/programs/pickTexture/getProgram.d.ts.map +1 -0
- package/lib/types/WebGPU/programs/pickTriangle/getProgram.d.ts +2 -0
- package/lib/types/WebGPU/programs/pickTriangle/getProgram.d.ts.map +1 -0
- package/lib/types/__test__/index.test.d.ts.map +1 -0
- package/lib/types/consts.d.ts.map +1 -0
- package/lib/types/getCanvasMatrix.d.ts.map +1 -0
- package/lib/types/getCanvasRenderDescriptor.d.ts.map +1 -0
- package/lib/types/getDepthTexture.d.ts.map +1 -0
- package/lib/types/getRenderDescriptor.d.ts.map +1 -0
- package/lib/types/index.d.ts +13 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/models/Video/MiniatureVideo.d.ts.map +1 -0
- package/lib/types/run.d.ts +5 -0
- package/lib/types/run.d.ts.map +1 -0
- package/lib/types/types.d.ts.map +1 -0
- package/lib/types/utils/atNormIndex.d.ts.map +1 -0
- package/lib/types/utils/captureCanvasStream.d.ts.map +1 -0
- package/lib/types/utils/captureCanvasStreamWasm.d.ts.map +1 -0
- package/lib/types/utils/clamp.d.ts.map +1 -0
- package/lib/types/utils/distancePointToLine.d.ts.map +1 -0
- package/lib/types/utils/fitCurve.d.ts.map +1 -0
- package/lib/types/utils/getAngle.d.ts.map +1 -0
- package/lib/types/utils/getAngleDiff.d.ts.map +1 -0
- package/lib/types/utils/getBezierPos.d.ts.map +1 -0
- package/lib/types/utils/getBezierTan.d.ts.map +1 -0
- package/lib/types/utils/getCurveLength.d.ts.map +1 -0
- package/lib/types/utils/getDefaultPoints.d.ts +2 -0
- package/lib/types/utils/getDefaultPoints.d.ts.map +1 -0
- package/lib/types/utils/getDistance.d.ts.map +1 -0
- package/lib/types/utils/mat4.d.ts.map +1 -0
- package/lib/types/utils/normalizeVec2.d.ts.map +1 -0
- package/lib/types/utils/resizeArray.d.ts.map +1 -0
- package/lib/types/utils/vec3.d.ts.map +1 -0
- package/package.json +7 -7
- package/lib/types/crate/glue_code.d.ts +0 -2
- package/lib/types/crate/glue_code.d.ts.map +0 -1
- package/lib/types/crate/pkg/index_bg.d.ts +0 -44
- package/lib/types/crate/pkg/index_bg.d.ts.map +0 -1
- package/lib/types/src/WebGPU/canvasSizeObserver.d.ts.map +0 -1
- package/lib/types/src/WebGPU/getDevice.d.ts.map +0 -1
- package/lib/types/src/WebGPU/getTexture/createCheckedImageData.d.ts.map +0 -1
- package/lib/types/src/WebGPU/getTexture/generateMimapsArray.d.ts.map +0 -1
- package/lib/types/src/WebGPU/getTexture/index.d.ts.map +0 -1
- package/lib/types/src/WebGPU/m3.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/blur/getProgram.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/draw3dModel/getProgram.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/draw3dModelLight/getProgram.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/draw3dModelTexture/getProgram.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/drawBezier/getProgram.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/drawTexture/getProgram.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/drawTriangle/getProgram.d.ts +0 -2
- package/lib/types/src/WebGPU/programs/drawTriangle/getProgram.d.ts.map +0 -1
- package/lib/types/src/WebGPU/programs/initPrograms.d.ts +0 -16
- package/lib/types/src/WebGPU/programs/initPrograms.d.ts.map +0 -1
- package/lib/types/src/__test__/index.test.d.ts.map +0 -1
- package/lib/types/src/components/Preview/index.d.ts +0 -1
- package/lib/types/src/components/Preview/index.d.ts.map +0 -1
- package/lib/types/src/consts.d.ts.map +0 -1
- package/lib/types/src/getCanvasMatrix.d.ts.map +0 -1
- package/lib/types/src/getCanvasRenderDescriptor.d.ts.map +0 -1
- package/lib/types/src/getDepthTexture.d.ts.map +0 -1
- package/lib/types/src/getRenderDescriptor.d.ts.map +0 -1
- package/lib/types/src/index.d.ts +0 -8
- package/lib/types/src/index.d.ts.map +0 -1
- package/lib/types/src/models/Video/MiniatureVideo.d.ts.map +0 -1
- package/lib/types/src/run.d.ts +0 -5
- package/lib/types/src/run.d.ts.map +0 -1
- package/lib/types/src/types.d.ts.map +0 -1
- package/lib/types/src/utils/atNormIndex.d.ts.map +0 -1
- package/lib/types/src/utils/captureCanvasStream.d.ts.map +0 -1
- package/lib/types/src/utils/captureCanvasStreamWasm.d.ts.map +0 -1
- package/lib/types/src/utils/clamp.d.ts.map +0 -1
- package/lib/types/src/utils/distancePointToLine.d.ts.map +0 -1
- package/lib/types/src/utils/fitCurve.d.ts.map +0 -1
- package/lib/types/src/utils/getAngle.d.ts.map +0 -1
- package/lib/types/src/utils/getAngleDiff.d.ts.map +0 -1
- package/lib/types/src/utils/getBezierPos.d.ts.map +0 -1
- package/lib/types/src/utils/getBezierTan.d.ts.map +0 -1
- package/lib/types/src/utils/getCurveLength.d.ts.map +0 -1
- package/lib/types/src/utils/getDistance.d.ts.map +0 -1
- package/lib/types/src/utils/mat4.d.ts.map +0 -1
- package/lib/types/src/utils/normalizeVec2.d.ts.map +0 -1
- package/lib/types/src/utils/resizeArray.d.ts.map +0 -1
- package/lib/types/src/utils/vec3.d.ts.map +0 -1
- /package/lib/types/{src/WebGPU → WebGPU}/canvasSizeObserver.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/getDevice.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/getTexture/createCheckedImageData.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/getTexture/generateMimapsArray.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/getTexture/index.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/m3.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/programs/blur/getProgram.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/programs/draw3dModel/getProgram.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/programs/draw3dModelLight/getProgram.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/programs/draw3dModelTexture/getProgram.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/programs/drawBezier/getProgram.d.ts +0 -0
- /package/lib/types/{src/WebGPU → WebGPU}/programs/drawTexture/getProgram.d.ts +0 -0
- /package/lib/types/{src/__test__ → __test__}/index.test.d.ts +0 -0
- /package/lib/types/{src/consts.d.ts → consts.d.ts} +0 -0
- /package/lib/types/{src/getCanvasMatrix.d.ts → getCanvasMatrix.d.ts} +0 -0
- /package/lib/types/{src/getCanvasRenderDescriptor.d.ts → getCanvasRenderDescriptor.d.ts} +0 -0
- /package/lib/types/{src/getDepthTexture.d.ts → getDepthTexture.d.ts} +0 -0
- /package/lib/types/{src/getRenderDescriptor.d.ts → getRenderDescriptor.d.ts} +0 -0
- /package/lib/types/{src/models → models}/Video/MiniatureVideo.d.ts +0 -0
- /package/lib/types/{src/types.d.ts → types.d.ts} +0 -0
- /package/lib/types/{src/utils → utils}/atNormIndex.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/captureCanvasStream.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/captureCanvasStreamWasm.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/clamp.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/distancePointToLine.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/fitCurve.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/getAngle.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/getAngleDiff.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/getBezierPos.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/getBezierTan.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/getCurveLength.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/getDistance.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/mat4.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/normalizeVec2.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/resizeArray.d.ts +0 -0
- /package/lib/types/{src/utils → utils}/vec3.d.ts +0 -0
package/lib/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var A={d:(B,I)=>{for(var g in I)A.o(I,g)&&!A.o(B,g)&&Object.defineProperty(B,g,{enumerable:!0,get:I[g]})},o:(A,B)=>Object.prototype.hasOwnProperty.call(A,B),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},B={};A.d(B,{A:()=>QA});var I={};function g(A,B,I,g){A.width=Math.max(1,Math.min(B,g.limits.maxTextureDimension2D)),A.height=Math.max(1,Math.min(I,g.limits.maxTextureDimension2D))}A.r(I),A.d(I,{State:()=>Z,__wbg_error_53abcd6a461f73d8:()=>$,__wbg_new_034f913e7636e987:()=>O,__wbg_new_e69b5f66fda8f13c:()=>V,__wbg_set_20cbc34131e76824:()=>j,__wbg_set_425e70f7c64ac962:()=>P,__wbg_set_wasm:()=>L,__wbg_stringify_eead5648c09faaf8:()=>v,__wbindgen_init_externref_table:()=>AA,__wbindgen_is_undefined:()=>T,__wbindgen_number_new:()=>X,__wbindgen_string_get:()=>z,__wbindgen_string_new:()=>W,__wbindgen_throw:()=>_});var Q=function(A,B,I,g){return new(I||(I=Promise))((function(Q,E){function C(A){try{o(g.next(A))}catch(A){E(A)}}function i(A){try{o(g.throw(A))}catch(A){E(A)}}function o(A){var B;A.done?Q(A.value):(B=A.value,B instanceof I?B:new I((function(A){A(B)}))).then(C,i)}o((g=g.apply(A,B||[])).next())}))};const E={fromMat4:(A,B=new Float32Array(12))=>(B[0]=A[0],B[1]=A[1],B[2]=A[2],B[4]=A[4],B[5]=A[5],B[6]=A[6],B[8]=A[8],B[9]=A[9],B[10]=A[10],B),projection:(A,B,I=new Float32Array(12))=>(I[0]=2/A,I[1]=0,I[2]=0,I[4]=0,I[5]=-2/B,I[6]=0,I[8]=-1,I[9]=1,I[10]=1,I),identity:(A=new Float32Array(12))=>(A[0]=1,A[1]=0,A[2]=0,A[4]=0,A[5]=1,A[6]=0,A[8]=0,A[9]=0,A[10]=1,A),multiply(A,B,I=new Float32Array(12)){I=I||new Float32Array(12);const g=A[0],Q=A[1],E=A[2],C=A[4],i=A[5],o=A[6],e=A[8],D=A[9],t=A[10],w=B[0],a=B[1],n=B[2],r=B[4],s=B[5],F=B[6],c=B[8],G=B[9],h=B[10];return I[0]=w*g+a*C+n*e,I[1]=w*Q+a*i+n*D,I[2]=w*E+a*o+n*t,I[4]=r*g+s*C+F*e,I[5]=r*Q+s*i+F*D,I[6]=r*E+s*o+F*t,I[8]=c*g+G*C+h*e,I[9]=c*Q+G*i+h*D,I[10]=c*E+G*o+h*t,I},translation:([A,B],I=new Float32Array(12))=>(I[0]=1,I[1]=0,I[2]=0,I[4]=0,I[5]=1,I[6]=0,I[8]=A,I[9]=B,I[10]=1,I),rotation(A,B=new Float32Array(12)){const I=Math.cos(A),g=Math.sin(A);return B[0]=I,B[1]=g,B[2]=0,B[4]=-g,B[5]=I,B[6]=0,B[8]=0,B[9]=0,B[10]=1,B},scaling:([A,B],I=new Float32Array(12))=>(I[0]=A,I[1]=0,I[2]=0,I[4]=0,I[5]=B,I[6]=0,I[8]=0,I[9]=0,I[10]=1,I),translate:(A,B,I=new Float32Array(12))=>E.multiply(A,E.translation(B),I),rotate:(A,B,I=new Float32Array(12))=>E.multiply(A,E.rotation(B),I),scale:(A,B,I=new Float32Array(12))=>E.multiply(A,E.scaling(B),I)},C=E,i="struct Uniforms {\n color: vec4f,\n matrix: mat3x3f,\n};\n\nstruct Vertex {\n @location(0) position: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n\n let clipSpace = (uni.matrix * vec3f(vert.position, 1)).xy;\n vsOut.position = vec4f(clipSpace, 0.0, 1.0);\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return uni.color;\n}\n",o="struct Uniforms {\n matrix: mat4x4f,\n zoom: f32,\n};\n\nstruct Vertex {\n @location(0) t: f32,\n @location(1) dir: f32,\n @location(2) segmentIndex: u32,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@group(0) @binding(1) var<storage> points: array<vec2f>;\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n \n let p1 = points[vert.segmentIndex * 4 + 0];\n let p2 = points[vert.segmentIndex * 4 + 1];\n let p3 = points[vert.segmentIndex * 4 + 2];\n let p4 = points[vert.segmentIndex * 4 + 3];\n\n let t2 = vert.t * vert.t;\n let one_minus_t = 1.0 - vert.t;\n let one_minus_t2 = one_minus_t * one_minus_t;\n let pos = p1 * one_minus_t2 * one_minus_t + p2 * 3.0 * vert.t * one_minus_t2 + p3 * 3.0 * t2 * one_minus_t + p4 * t2 * vert.t;\n\n let angle = one_minus_t2 * (p2 - p1) + 2.0 * vert.t * one_minus_t * (p3 - p2) + t2 * (p4 - p3);\n let angleNorm = normalize(angle) * 5 / u.zoom;\n let transPos = vec2(pos.x - angleNorm.y * vert.dir, pos.y + angleNorm.x * vert.dir);\n let clipSpace = (u.matrix * vec4f(transPos, 1, 1));\n vsOut.position = clipSpace;\n vsOut.color = vec4f(f32(vert.segmentIndex) % 3, (f32(vert.segmentIndex) + 1) % 3, (f32(vert.segmentIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",e="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) texcoord: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.texcoord = vert.texcoord;\n return vsOut;\n}\n\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, vsOut.texcoord);\n}\n",D="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",t="struct Uniforms {\n normalMatrix: mat3x3f,\n worldViewProjection: mat4x4f,\n lightColor: vec4f,\n lightDirection: vec3f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) normal: vec3f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n @location(1) normal: vec3f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.worldViewProjection * vert.position;\n vsOut.normal = uni.normalMatrix * vert.normal;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n // Because vsOut.normal is an inter-stage variable \n // it's interpolated so it will not be a unit vector.\n // Normalizing it will make it a unit vector again\n let normal = normalize(vsOut.normal);\n \n // Compute the light by taking the dot product\n // of the normal to the light's reverse direction\n let light = dot(normal, -uni.lightDirection);\n \n // Lets multiply just the color portion (not the alpha)\n // by the light\n let color = vec3f(0.23) + uni.lightColor.rgb * light;\n // let color = vsOut.color.rgb * 0.5 + uni.lightColor.rgb * light;\n return vec4f(color, vsOut.color.a);\n}\n",w="struct Params {\n filterDim : i32,\n blockDim : u32,\n}\n\n@group(0) @binding(0) var samp : sampler;\n@group(0) @binding(1) var<uniform> params : Params;\n@group(1) @binding(1) var inputTex : texture_2d<f32>;\n@group(1) @binding(2) var outputTex : texture_storage_2d<rgba8unorm, write>;\n\nstruct Flip {\n value : u32,\n}\n@group(1) @binding(3) var<uniform> flip : Flip;\n\n// This shader blurs the input texture in one direction, depending on whether\n// |flip.value| is 0 or 1.\n// It does so by running (128 / 4) threads per workgroup to load 128\n// texels into 4 rows of shared memory. Each thread loads a\n// 4 x 4 block of texels to take advantage of the texture sampling\n// hardware.\n// Then, each thread computes the blur result by averaging the adjacent texel values\n// in shared memory.\n// Because we're operating on a subset of the texture, we cannot compute all of the\n// results since not all of the neighbors are available in shared memory.\n// Specifically, with 128 x 128 tiles, we can only compute and write out\n// square blocks of size 128 - (filterSize - 1). We compute the number of blocks\n// needed in Javascript and dispatch that amount.\n\n// 128/4 = 32 -> number of threads per working group\n// does it in 4x4 block of texels(takes advantage of texture sampling hardware)\n// with this beign said, we don't have all the neighbours, only this block\n// That's why we can only compute & write out blocks of size 128 - (filterSize - 1)\nvar<workgroup> tile : array<array<vec3<f32>, 128>, 4>;\n\n@compute @workgroup_size(32, 1, 1)\nfn main(\n @builtin(workgroup_id) WorkGroupID : vec3<u32>,\n @builtin(local_invocation_id) LocalInvocationID : vec3<u32>\n) {\n let filterOffset = (params.filterDim - 1) / 2;\n let dims = vec2<i32>(textureDimensions(inputTex, 0));\n let baseIndex = vec2<i32>(WorkGroupID.xy * vec2(params.blockDim, 4) + // it's just the index of the first texel in a group\n LocalInvocationID.xy * vec2(4, 1)) // <0, 128>\n - vec2(filterOffset, 0);\n // baseIndex = xy of first texel of group\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var loadIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n loadIndex = loadIndex.yx;\n }\n\n tile[r][4 * LocalInvocationID.x + u32(c)] = textureSampleLevel(\n inputTex,\n samp,\n (vec2<f32>(loadIndex) + vec2<f32>(0.25, 0.25)) / vec2<f32>(dims),\n 0.0\n ).rgb;\n }\n }\n\n workgroupBarrier();\n // helps coordinate access to read-write memory\n // so all threads(32) will wait to hit this barrer, and then start form here together\n\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var writeIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n writeIndex = writeIndex.yx;\n }\n\n let center = i32(4 * LocalInvocationID.x) + c;\n if (center >= filterOffset &&\n center < 128 - filterOffset &&\n all(writeIndex < dims)) {\n var acc = vec3(0.0, 0.0, 0.0);\n for (var f = 0; f < params.filterDim; f++) {\n var i = center + f - filterOffset;\n acc = acc + (1.0 / f32(params.filterDim)) * tile[r][i];\n }\n textureStore(outputTex, writeIndex, vec4(acc, 1.0));\n }\n }\n }\n}\n",a=128,n=[4,4],r="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n let texel = textureSample(ourTexture, ourSampler, in.texCoord);\n return texel;\n}\n",s=6;let F,c,G,h,y,N,M,U;const R={cross(A,B,I=new Float32Array(3)){const g=A[1]*B[2]-A[2]*B[1],Q=A[2]*B[0]-A[0]*B[2],E=A[0]*B[1]-A[1]*B[0];return I[0]=g,I[1]=Q,I[2]=E,I},subtract:(A,B,I=new Float32Array(3))=>(I[0]=A[0]-B[0],I[1]=A[1]-B[1],I[2]=A[2]-B[2],I),normalize(A,B=new Float32Array(3)){const I=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return I>1e-5?(B[0]=A[0]/I,B[1]=A[1]/I,B[2]=A[2]/I):(B[0]=0,B[1]=0,B[2]=0),B}},k={projection:(A,B,I,g)=>k.ortho(0,A,B,0,I,-I,g),perspective(A,B,I,g,Q=new Float32Array(16)){const E=Math.tan(.5*Math.PI-.5*A),C=1/(I-g);return Q[0]=E/B,Q[1]=0,Q[2]=0,Q[3]=0,Q[4]=0,Q[5]=E,Q[6]=0,Q[7]=0,Q[8]=0,Q[9]=0,Q[10]=g*C,Q[11]=-1,Q[12]=0,Q[13]=0,Q[14]=I*g*C,Q[15]=0,Q},ortho:(A,B,I,g,Q,E,C=new Float32Array(16))=>(C[0]=2/(B-A),C[1]=0,C[2]=0,C[3]=0,C[4]=0,C[5]=2/(g-I),C[6]=0,C[7]=0,C[8]=0,C[9]=0,C[10]=1/(Q-E),C[11]=0,C[12]=(B+A)/(A-B),C[13]=(g+I)/(I-g),C[14]=Q/(Q-E),C[15]=1,C),identity:(A=new Float32Array(16))=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),multiply(A,B,I=new Float32Array(16)){const g=B[0],Q=B[1],E=B[2],C=B[3],i=B[4],o=B[5],e=B[6],D=B[7],t=B[8],w=B[9],a=B[10],n=B[11],r=B[12],s=B[13],F=B[14],c=B[15],G=A[0],h=A[1],y=A[2],N=A[3],M=A[4],U=A[5],R=A[6],k=A[7],S=A[8],Y=A[9],J=A[10],u=A[11],L=A[12],f=A[13],d=A[14],l=A[15];return I[0]=g*G+Q*M+E*S+C*L,I[1]=g*h+Q*U+E*Y+C*f,I[2]=g*y+Q*R+E*J+C*d,I[3]=g*N+Q*k+E*u+C*l,I[4]=i*G+o*M+e*S+D*L,I[5]=i*h+o*U+e*Y+D*f,I[6]=i*y+o*R+e*J+D*d,I[7]=i*N+o*k+e*u+D*l,I[8]=t*G+w*M+a*S+n*L,I[9]=t*h+w*U+a*Y+n*f,I[10]=t*y+w*R+a*J+n*d,I[11]=t*N+w*k+a*u+n*l,I[12]=r*G+s*M+F*S+c*L,I[13]=r*h+s*U+F*Y+c*f,I[14]=r*y+s*R+F*J+c*d,I[15]=r*N+s*k+F*u+c*l,I},cameraAim(A,B,I,g=new Float32Array(16)){const Q=R.normalize(R.subtract(A,B)),E=R.normalize(R.cross(I,Q)),C=R.normalize(R.cross(Q,E));return g[0]=E[0],g[1]=E[1],g[2]=E[2],g[3]=0,g[4]=C[0],g[5]=C[1],g[6]=C[2],g[7]=0,g[8]=Q[0],g[9]=Q[1],g[10]=Q[2],g[11]=0,g[12]=A[0],g[13]=A[1],g[14]=A[2],g[15]=1,g},inverse(A,B=new Float32Array(16)){const I=A[0],g=A[1],Q=A[2],E=A[3],C=A[4],i=A[5],o=A[6],e=A[7],D=A[8],t=A[9],w=A[10],a=A[11],n=A[12],r=A[13],s=A[14],F=A[15],c=w*F,G=s*a,h=o*F,y=s*e,N=o*a,M=w*e,U=Q*F,R=s*E,k=Q*a,S=w*E,Y=Q*e,J=o*E,u=D*r,L=n*t,f=C*r,d=n*i,l=C*t,K=D*i,H=I*r,p=n*g,q=I*t,x=D*g,b=I*i,m=C*g,Z=c*i+y*t+N*r-(G*i+h*t+M*r),T=G*g+U*t+S*r-(c*g+R*t+k*r),v=h*g+R*i+Y*r-(y*g+U*i+J*r),W=M*g+k*i+J*t-(N*g+S*i+Y*t),V=1/(I*Z+C*T+D*v+n*W);return B[0]=V*Z,B[1]=V*T,B[2]=V*v,B[3]=V*W,B[4]=V*(G*C+h*D+M*n-(c*C+y*D+N*n)),B[5]=V*(c*I+R*D+k*n-(G*I+U*D+S*n)),B[6]=V*(y*I+U*C+J*n-(h*I+R*C+Y*n)),B[7]=V*(N*I+S*C+Y*D-(M*I+k*C+J*D)),B[8]=V*(u*e+d*a+l*F-(L*e+f*a+K*F)),B[9]=V*(L*E+H*a+x*F-(u*E+p*a+q*F)),B[10]=V*(f*E+p*e+b*F-(d*E+H*e+m*F)),B[11]=V*(K*E+q*e+m*a-(l*E+x*e+b*a)),B[12]=V*(f*w+K*s+L*o-(l*s+u*o+d*w)),B[13]=V*(q*s+u*Q+p*w-(H*w+x*s+L*Q)),B[14]=V*(H*o+m*s+d*Q-(b*s+f*Q+p*o)),B[15]=V*(b*w+l*Q+x*o-(q*o+m*w+K*Q)),B},transpose:(A,B=new Float32Array(16))=>(B[0]=A[0],B[1]=A[4],B[2]=A[8],B[3]=A[12],B[4]=A[1],B[5]=A[5],B[6]=A[9],B[7]=A[13],B[8]=A[2],B[9]=A[6],B[10]=A[10],B[11]=A[14],B[12]=A[3],B[13]=A[7],B[14]=A[11],B[15]=A[15],B),aim(A,B,I,g=new Float32Array(16)){const Q=R.normalize(R.subtract(B,A)),E=R.normalize(R.cross(I,Q)),C=R.normalize(R.cross(Q,E));return g[0]=E[0],g[1]=E[1],g[2]=E[2],g[3]=0,g[4]=C[0],g[5]=C[1],g[6]=C[2],g[7]=0,g[8]=Q[0],g[9]=Q[1],g[10]=Q[2],g[11]=0,g[12]=A[0],g[13]=A[1],g[14]=A[2],g[15]=1,g},lookAt:(A,B,I,g)=>k.inverse(k.cameraAim(A,B,I,g),g),translation:([A,B,I],g=new Float32Array(16))=>(g[0]=1,g[1]=0,g[2]=0,g[3]=0,g[4]=0,g[5]=1,g[6]=0,g[7]=0,g[8]=0,g[9]=0,g[10]=1,g[11]=0,g[12]=A,g[13]=B,g[14]=I,g[15]=1,g),rotationX(A,B=new Float32Array(16)){const I=Math.cos(A),g=Math.sin(A);return B[0]=1,B[1]=0,B[2]=0,B[3]=0,B[4]=0,B[5]=I,B[6]=g,B[7]=0,B[8]=0,B[9]=-g,B[10]=I,B[11]=0,B[12]=0,B[13]=0,B[14]=0,B[15]=1,B},rotationY(A,B=new Float32Array(16)){const I=Math.cos(A),g=Math.sin(A);return B[0]=I,B[1]=0,B[2]=-g,B[3]=0,B[4]=0,B[5]=1,B[6]=0,B[7]=0,B[8]=g,B[9]=0,B[10]=I,B[11]=0,B[12]=0,B[13]=0,B[14]=0,B[15]=1,B},rotationZ(A,B=new Float32Array(16)){const I=Math.cos(A),g=Math.sin(A);return B[0]=I,B[1]=g,B[2]=0,B[3]=0,B[4]=-g,B[5]=I,B[6]=0,B[7]=0,B[8]=0,B[9]=0,B[10]=1,B[11]=0,B[12]=0,B[13]=0,B[14]=0,B[15]=1,B},scaling:([A,B,I],g=new Float32Array(16))=>(g[0]=A,g[1]=0,g[2]=0,g[3]=0,g[4]=0,g[5]=B,g[6]=0,g[7]=0,g[8]=0,g[9]=0,g[10]=I,g[11]=0,g[12]=0,g[13]=0,g[14]=0,g[15]=1,g),translate:(A,B,I)=>k.multiply(A,k.translation(B),I),rotateX:(A,B,I)=>k.multiply(A,k.rotationX(B),I),rotateY:(A,B,I)=>k.multiply(A,k.rotationY(B),I),rotateZ:(A,B,I)=>k.multiply(A,k.rotationZ(B),I),scale:(A,B,I)=>k.multiply(A,k.scaling(B),I)},S=k;new Float32Array;const Y=(...A)=>{const B=Math.max(...A);return 1+Math.log2(B)|0};function J(A,B,I){return Math.min(I,Math.max(B,A))}let u;function L(A){u=A}let f=new("undefined"==typeof TextDecoder?(0,module.require)("util").TextDecoder:TextDecoder)("utf-8",{ignoreBOM:!0,fatal:!0});f.decode();let d=null;function l(){return null!==d&&0!==d.byteLength||(d=new Uint8Array(u.memory.buffer)),d}function K(A,B){return A>>>=0,f.decode(l().subarray(A,A+B))}let H=0,p=new("undefined"==typeof TextEncoder?(0,module.require)("util").TextEncoder:TextEncoder)("utf-8");const q="function"==typeof p.encodeInto?function(A,B){return p.encodeInto(A,B)}:function(A,B){const I=p.encode(A);return B.set(I),{read:A.length,written:I.length}};let x=null;function b(){return(null===x||!0===x.buffer.detached||void 0===x.buffer.detached&&x.buffer!==u.memory.buffer)&&(x=new DataView(u.memory.buffer)),x}const m="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>u.__wbg_state_free(A>>>0,1)));class Z{static __wrap(A){A>>>=0;const B=Object.create(Z.prototype);return B.__wbg_ptr=A,m.register(B,B.__wbg_ptr,B),B}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,m.unregister(this),A}free(){const A=this.__destroy_into_raw();u.__wbg_state_free(A,0)}static new(A,B){const I=u.state_new(A,B);return Z.__wrap(I)}add_texture(A,B){u.state_add_texture(this.__wbg_ptr,A,B)}get_shader_input(A){return u.state_get_shader_input(this.__wbg_ptr,A)}update_points(A,B){u.state_update_points(this.__wbg_ptr,A,B)}}function T(A){return void 0===A}function v(){return function(A,B){try{return A.apply(this,B)}catch(A){const B=function(A){const B=u.__externref_table_alloc();return u.__wbindgen_export_2.set(B,A),B}(A);u.__wbindgen_exn_store(B)}}((function(A){return JSON.stringify(A)}),arguments)}function W(A,B){return K(A,B)}function V(){return new Object}function X(A){return A}function j(A,B,I){A[B]=I}function O(){return new Array}function P(A,B,I){A[B>>>0]=I}function z(A,B){const I="string"==typeof B?B:void 0;var g=null==I?0:function(A,B,I){if(void 0===I){const I=p.encode(A),g=B(I.length,1)>>>0;return l().subarray(g,g+I.length).set(I),H=I.length,g}let g=A.length,Q=B(g,1)>>>0;const E=l();let C=0;for(;C<g;C++){const B=A.charCodeAt(C);if(B>127)break;E[Q+C]=B}if(C!==g){0!==C&&(A=A.slice(C)),Q=I(Q,g,g=C+3*A.length,1)>>>0;const B=l().subarray(Q+C,Q+g);C+=q(A,B).written,Q=I(Q,g,C,1)>>>0}return H=C,Q}(I,u.__wbindgen_malloc,u.__wbindgen_realloc),Q=H;b().setInt32(A+4,Q,!0),b().setInt32(A+0,g,!0)}function _(A,B){throw new Error(K(A,B))}const $="function"==typeof console.error?console.error:()=>{throw new Error("console.error is not defined")};function AA(){const A=u.__wbindgen_export_2,B=A.grow(4);A.set(0,void 0),A.set(B+0,void 0),A.set(B+1,null),A.set(B+2,!0),A.set(B+3,!1)}const BA="data:application/wasm;base64,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IgdBAEgNASACQQFzIQIgAyAFRw0ACwsgAkEBcQvMAgICfAJ/IwBBEGsiByQAIAO6IQUgAAJ/AkACQAJAAkAgBCAEQR91IghzIAhrIghBtQJPBEADQCAFRAAAAAAAAAAAYQ0FIARBAE4NAiAFRKDI64XzzOF/oyEFIARBtAJqIgQgBEEfdSIIcyAIayIIQbUCTw0ACwsgCEEDdEGQjcEAaisDACEGIARBAE4NASAFIAajIQUMAwsgB0EIaiABKAIMIAEoAhAgASgCFBAgQZypwQAtAAAaIAcoAgwhAiAHKAIIIQQMAQsgBSAGoiIFmUQAAAAAAADwf2INASAHIAEoAgwgASgCECABKAIUECBBnKnBAC0AABogBygCBCECIAcoAgAhBAtBFBAMIgEEQCABIAQ2AgwgAUEONgIAIAAgATYCBCABIAI2AhBBAQwCCwALIAAgBSAFmiACGzkDCEEACzYCACAHQRBqJAALxAIBA38jAEEQayICJAACQCABQYABTwRAIAJBADYCDAJ/IAFBgBBPBEAgAUGAgARPBEAgAkEMakEDciEEIAIgAUESdkHwAXI6AAwgAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANQQQMAgsgAkEMakECciEEIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAELIAJBDGpBAXIhBCACIAFBBnZBwAFyOgAMQQILIQMgBCABQT9xQYABcjoAACADIAAoAgAgACgCCCIBa0sEQCAAIAEgAxA9IAAoAgghAQsgACgCBCABaiACQQxqIAMQGhogACABIANqNgIIDAELIAAoAggiAyAAKAIARgRAIABB2IrAABBACyAAIANBAWo2AgggACgCBCADaiABOgAACyACQRBqJABBAAusAwEFfyMAQRBrIgQkACAAAn8CQAJAIAEoAgQiAiABKAIIIgNPBEAgAiADa0EDTQRAIAEgAjYCCCAEQQhqIAEoAgAgAiACECBBnKnBAC0AABogBCgCDCECIAQoAgghA0EUEAwiAUUNAiABIAM2AgwgAUEENgIADAMLIAEgA0EEaiIFNgIIIAMgASgCACIGaiIBLQABQQF0QZCFwQBqLwEAIAEtAABBAXRBkInBAGovAQBywUEIdCABLQACQQF0QZCJwQBqLgEAciABLQADQQF0QZCFwQBqLgEAciIBQQBIBEAgBCAGIAIgBRAgQZypwQAtAAAaIAQoAgQhAiAEKAIAIQNBFBAMIgFFDQIgASADNgIMIAFBDDYCAAwDCyAAIAE7AQJBAAwDCyMAQTBrIgAkACAAIAI2AgQgACADNgIAIABBAjYCDCAAQdycwAA2AgggAEICNwIUIAAgAEEEaq1CgICAgDCENwMoIAAgAK1CgICAgDCENwMgIAAgAEEgajYCECAAQQhqQfCDwQAQXAALAAsgACABNgIEIAEgAjYCEEEBCzsBACAEQRBqJAALugIBBH9BHyECIABCADcCECABQf///wdNBEAgAUEGIAFBCHZnIgNrdkEBcSADQQF0a0E+aiECCyAAIAI2AhwgAkECdEGspcEAaiEEQQEgAnQiA0HIqMEAKAIAcUUEQCAEIAA2AgAgACAENgIYIAAgADYCDCAAIAA2AghByKjBAEHIqMEAKAIAIANyNgIADwsCQAJAIAEgBCgCACIDKAIEQXhxRgRAIAMhAgwBCyABQRkgAkEBdmtBACACQR9HG3QhBQNAIAMgBUEddkEEcWpBEGoiBCgCACICRQ0CIAVBAXQhBSACIQMgAigCBEF4cSABRw0ACwsgAigCCCIBIAA2AgwgAiAANgIIIABBADYCGCAAIAI2AgwgACABNgIIDwsgBCAANgIAIAAgAzYCGCAAIAA2AgwgACAANgIIC4sCAQF/IwBBEGsiAiQAIAAoAgAhAAJ/IAEoAgAgASgCCHIEQCACQQA2AgwgASACQQxqAn8gAEGAAU8EQCAAQYAQTwRAIABBgIAETwRAIAIgAEE/cUGAAXI6AA8gAiAAQRJ2QfABcjoADCACIABBBnZBP3FBgAFyOgAOIAIgAEEMdkE/cUGAAXI6AA1BBAwDCyACIABBP3FBgAFyOgAOIAIgAEEMdkHgAXI6AAwgAiAAQQZ2QT9xQYABcjoADUEDDAILIAIgAEE/cUGAAXI6AA0gAiAAQQZ2QcABcjoADEECDAELIAIgADoADEEBCxAPDAELIAEoAhwgACABKAIgKAIQEQAACyACQRBqJAALxwIBBH8jAEEQayIDJAAgACgCDCEEAkACQAJAAkAgACgCFCIBIAAoAhAiAkkEQANAAkAgASAEai0AAEEJaw4yAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAMECyAAIAFBAWoiATYCFCABIAJHDQALIAIhAQsgA0EIaiAEIAIgAUEBaiIAIAIgACACSRsQIEGcqcEALQAAGiADKAIMIQIgAygCCCEAQRQQDCIBRQ0DIAEgADYCDCABQQM2AgAgASACNgIQDAILIAAgAUEBajYCFEEAIQEMAQsgAyAEIAIgAUEBaiIAIAIgACACSRsQIEGcqcEALQAAGiADKAIEIQIgAygCACEAQRQQDCIBRQ0BIAEgADYCDCABQQY2AgAgASACNgIQCyADQRBqJAAgAQ8LAAvxAQEBfyMAQRBrIgYkAAJAAkACQCABBEAgBkEEaiABIAMgBCAFIAIoAhARCQAgBigCCCEBAkAgBigCBCIDIAYoAgwiAk0NACADQQJ0IQMgAkUEQCABQQRrKAIAIgRBeHEiBUEEQQggBEEDcSIEGyADakkNAyAEQQAgBSADQSdqSxsNBCABEBNBBCEBDAELIAEgA0EEIAJBAnQiAxAWIgFFDQQLIAAgAjYCBCAAIAE2AgAgBkEQaiQADwtBxKbAAEEyEIEBAAtBoaPBAEEuQdCjwQAQVwALQeCjwQBBLkGQpMEAEFcAC0EEIANBtKbAABB6AAvOAgIGfwF+AkACQCAAKAIIIgEgACgCBCICRg0AIAEgAk8NASAAKAIAIgQgAWotAAAiA0EiRiADQdwARnIgA0EfTXINACAEIAFBAWoiBWohA0EAIAIgBWtBeHEiBmshAgNAIAMhASACRQRAIAAgBSAGajYCCAJAIAAoAggiASAAKAIEIgJPDQAgACgCACEEA0AgASAEai0AACIDQSJGIANB3ABGciADQSBJcg0BIAAgAUEBaiIBNgIIIAEgAkcNAAsLDwsgAkEIaiECIAFBCGohAyABKQAAIgdCf4UgB0LcuPHixYuXrtwAhUKBgoSIkKDAgAF9IAdCosSIkaLEiJEihUKBgoSIkKDAgAF9IAdCoMCAgYKEiJAgfYSEg0KAgYKEiJCgwIB/gyIHUA0ACyAAIAEgBGsgB3qnQQN2ajYCCAsPCyABIAJBkIPBABBOAAvhAQECfyMAQRBrIgUkACAAAn8CQEEAIAQgAxtFBEAgASgCFCIEIAEoAhAiA08NASABKAIMIQYDQCAEIAZqLQAAQTBrQf8BcUEKTw0CIAEgBEEBaiIENgIUIAMgBEcNAAsMAQsgBUEIaiABKAIMIAEoAhAgASgCFBAgQZypwQAtAAAaIAUoAgwhAiAFKAIIIQNBFBAMIgEEQCABIAM2AgwgAUEONgIAIAAgATYCBCABIAI2AhBBAQwCCwALIABEAAAAAAAAAABEAAAAAAAAAIAgAhs5AwhBAAs2AgAgBUEQaiQAC8gBAQV/IwBBIGsiAiQAIAAoAgAiBUEBaiIDIAVBAXQiBiADIAZLGyIDQf////8DSwRAQQBBACABEHoACwJAQQQgAyADQQRNGyIDQQJ0IgZB/P///wdNBH8gAiAFBH8gAiAFQQJ0NgIcIAIgACgCBDYCFEEEBSAECzYCGCACQQhqQQQgBiACQRRqEEQgAigCCEEBRw0BIAIoAhAhBCACKAIMBSAECyAEIAEQegALIAIoAgwhASAAIAM2AgAgACABNgIEIAJBIGokAAu4AQECfyMAQSBrIgMkAAJAAn9BACABIAEgAmoiAksNABpBAEEIIAIgACgCACIBQQF0IgQgAiAESxsiAiACQQhNGyIEQQBIDQAaQQAhAiADIAEEfyADIAE2AhwgAyAAKAIENgIUQQEFIAILNgIYIANBCGogBCADQRRqEFQgAygCCEEBRw0BIAMoAhAhACADKAIMCyAAQYyJwAAQegALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAu4AQECfyMAQSBrIgMkAAJAAn9BACABIAEgAmoiAksNABpBAEEIIAIgACgCACIBQQF0IgQgAiAESxsiAiACQQhNGyIEQQBIDQAaQQAhAiADIAEEfyADIAE2AhwgAyAAKAIENgIUQQEFIAILNgIYIANBCGogBCADQRRqEFQgAygCCEEBRw0BIAMoAhAhACADKAIMCyAAQeiiwQAQegALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAvvGQIZfwF+IwBBEGsiDiQAIAAoAgwhAwJAAkACQAJAAkACQCAAKAIEDgIAAQILIAMNAUEAIQBBASEDQQEhAgwDCyADRQ0BCyAOQQRqIAAQLQwCCyAAKAIAIgMoAgQiAEEATgR/IAMoAgAhAiAARQRAQQAhAEEBIQMMAgtBnKnBAC0AABogABAMIgMNAUEBBUEACyAAQbD/wAAQegALIAMgAiAAEBohAyAOIAA2AgwgDiADNgIIIA4gADYCBAsCfyMAQdAAayILJAAgDkEEaiISKAIIIQUgEigCBCEJQQEhAkEBIQBBASEHAkACQAJAAkACQAJAAkACQAJAAkADQCABIAZqIgRBCEsNASAAIQMCQCACQYCAwQBqLQAAIgIgBEGAgMEAai0AACIESQRAIAAgAWpBAWoiACAGayEHQQAhAQwBCyACIARHBEBBASEHIANBAWohAEEAIQEgAyEGDAELQQAgAUEBaiIAIAAgB0YiAhshASAAQQAgAhsgA2ohAAsgACABaiICQQlJDQALQQEhAkEAIQNBASEAQQAhAUEBIQQDQCABIANqIgpBCEsNAiAAIQgCQCACQYCAwQBqLQAAIgIgCkGAgMEAai0AACIKSwRAIAAgAWpBAWoiACADayEEQQAhAQwBCyACIApHBEBBASEEIAhBAWohAEEAIQEgCCEDDAELQQAgAUEBaiIAIAAgBEYiAhshASAAQQAgAhsgCGohAAsgACABaiICQQlJDQALIAYgAyADIAZJIgAbIghBCk8NAiAHIAQgABsiACAIaiIDIABJDQMgA0EJSw0EIABBgIDBAGohA0EAIQZBgIDBACEKAkAgCCIERQ0AA0AgCi0AACIHIAMtAAAiAUYEQCAKQQFqIQogA0EBaiEDIARBAWsiBA0BDAILCyAHIAFrIQYLIAYiEA0HQQEhBkEAIQFBASECQQAhBwNAIAIiBCABaiIKQQhNBEAgAkF/cyABayIDQXdJDQtBCCABIAdqayICQQlPDQcCQCADQYmAwQBqLQAAIgMgAkGAgMEAai0AACICSQRAIApBAWoiAiAHayEGQQAhAQwBCyACIANHBEAgBEEBaiECQQAhAUEBIQYgBCEHDAELQQAgAUEBaiIDIAMgBkYiAhshASADQQAgAhsgBGohAgsgACAGRw0BCwtBASEGQQAhAUEBIQJBACEEA0AgAiIKIAFqIhNBCE0EQCACQX9zIAFrIgNBd0kNC0EIIAEgBGprIgJBCU8NCAJAIANBiYDBAGotAAAiAyACQYCAwQBqLQAAIgJLBEAgE0EBaiICIARrIQZBACEBDAELIAIgA0cEQCAKQQFqIQJBACEBQQEhBiAKIQQMAQtBACABQQFqIgMgAyAGRiICGyEBIANBACACGyAKaiECCyAAIAZHDQELC0EJIQZBCSAEIAcgBCAHSxtrIQMgAEUEQEEAIQBBACEHDAkLIABBA3EhBEEAIQcCQCAAQQRJBEBBACECDAELIABBfHEhAkEAIQEDQEIBIAFBgIDBAGoxAACGIBqEQgEgAUGBgMEAajEAAIaEQgEgAUGCgMEAajEAAIaEQgEgAUGDgMEAajEAAIaEIRogAiABQQRqIgFHDQALCyAERQ0IIAJBgIDBAGohAQNAQgEgATEAAIYgGoQhGiABQQFqIQEgBEEBayIEDQALDAgLIARBCUHMjcAAEE4ACyAKQQlBzI3AABBOAAsgCEEJQayNwAAQfAALIAAgA0G8jcAAEH0ACyADQQlBvI3AABB8AAsgAkEJQeyNwAAQTgALIAJBCUHsjcAAEE4AC0EJIAhrIgAgCCAAIAhLG0EBaiEAQX8hB0KAgICAsMSUCCEaIAghA0F/IQYLIAtBCTYCTCALQYCAwQA2AkggCyAFNgJEIAsgCTYCQCALIAY2AjggCyAHNgI0IAsgBTYCMCALIAA2AiggCyADNgIkIAsgCDYCICALIBo3AxhBASEEIAtBATYCECALQQA2AiwgC0EEaiERIBBBAEchDwJAIAUgC0EYaiINKAIYIghBCWsiA0sEQEEAIA0oAgwiDGshFSAMQYCAwQBqIRNBCSAMIAxBCU0bIhYgDGshFyANKAIgIQogDSgCECEQIA0pAwAhGgNAAkACQCAaIAMgCWoxAACIQgGDUARAIA0gAzYCGEEJIQAgAyEIIA8NAgwBCyAMIAogDCAKIAxJGyAPGyIAQQFrQQlJIQECQAJAAkACQANAIABFBEAgFUEJIAogDxsiACAMIAAgDEsbaiEUIAMgDGohACAXIQcgEyEBA0AgFEUEQCANIAM2AhggD0UEQCANQQk2AiALIBEgCDYCCCARIAM2AgQgEUEBNgIADAwLIAdFDQMgACAFTw0EIBRBAWshFCAHQQFrIQcgACAJaiEYIAEtAAAgAUEBaiEBIABBAWohACAYLQAARg0ACyAIIBBrIQggECEAIA9FDQYMBwsgAEEBayEAIAFFDQQgACADaiIHIAVPDQMgAEGAgMEAai0AACAHIAlqLQAARg0ACyAAIAhqIAxrIQhBCSEAIA9FDQQMBQsgFkEJQaT+wAAQTgALIAUgAyAMaiIAIAAgBUkbIAVBtP7AABBOAAsgByAFQdT+wAAQTgALIABBCUHE/sAAEE4ACyANIAA2AiAgACEKCyAIQQlrIgMgBUkNAAsLIA1BADYCGCARQQA2AgALAkAgCygCBEUNACALKAIIIgdBCWoiBiEBAkACQAJAAkADQAJAIAFFDQAgASAFTwRAIAEgBUYNAQwGCyABIAlqLAAAQb9/TA0FCwJAAkAgASAFRgR/IAUFIAEgCWotAABBMGtB/wFxQQpJDQEgAQshAgJAIAFFDQAgAiAFTwRAIAIgBUYNAQwHCyACIAlqLAAAQb9/TA0GCyAFIAJrQQhJDQcgAiAJaiIKKQAAQqDGvePWrpu3IFINByACQQhqIgghAANAAkAgAEUNACAAIAVPBEAgACAFRg0BDAcLIAAgCWosAABBv39MDQYLIAAgBUYEQCAFIQMMAwsgACAJai0AAEEwa0H/AXFBCk8EQCAAIQMgACAFTw0DDAUFIABBAWohAAwBCwALAAsgAUEBaiEBDAELCwJAIAIgBkkNAAJAIAZFDQAgBSAGTQRAIAUgBkcNAgwBCyAGIAlqLAAAQb9/TA0BCwJAIAFFDQAgAiAFTwRAIAIgBUcNAgwBCyAKLAAAQb9/TA0BCyAGIAlqIQECQAJAAkACQAJAAkAgAiAGayICDgIHAAELIAEtAABBK2sOAwoBCgELIAEtAABBK0YEQCACQQFrIQQgAUEBaiEBIAJBCkkNAQwCCyACIQQgAkEJTw0BC0EAIQIDQCABLQAAQTBrIgZBCUsNAyABQQFqIQEgBiACQQpsaiECIARBAWsiBA0ACwwBC0EAIQIDQCAERQ0BIAEtAABBMGsiBkEJSw0CIAKtQgp+IhpCIIinDQIgAUEBaiEBIARBAWshBCAGIBqnIgpqIgIgCk8NAAsMAQsCQAJAAkACQAJAAkAgAyAISQ0AAkAgCEUNACAFIAhNBEAgBSAIRw0CDAELIAggCWosAABBv39MDQELIABBACADIAVHGw0AIAggCWohASADIAhrIgAOAggBAgsgCSAFIAggA0GAgsEAEHcAC0EBIQQgAS0AAEEraw4DCgEKAQsgAS0AAEErRgRAIABBAWshBCABQQFqIQEgAEEKSQ0BDAILIAAiBEEJTw0BC0EAIQYDQCABLQAAQTBrIgBBCUsNAyABQQFqIQEgACAGQQpsaiEGIARBAWsiBA0ACwwBC0EAIQYDQCAERQ0BIAEtAABBMGsiAEEJSw0CIAatQgp+IhpCIIinDQIgAUEBaiEBIARBAWshBCAAIBqnIgNqIgYgA08NAAsMAQtBACEEIAUgB0kNBgJAIAdFIAUgB01yRQRAIAcgCWosAABBv39MDQELIBIgBzYCCCAHIQUMBwtBwP/AAEEwQfD/wAAQVwALQQEhBAwFCyAJIAUgBiACQfCBwQAQdwALQQEhBAwDCyAJIAUgACAFQeCBwQAQdwALIAkgBSACIAVB0IHBABB3AAsgCSAFIAEgBUHAgcEAEHcACwJAAkACQAJAAkAgEigCACIAIAVNDQAgBUUEQCAJQQRrKAIAIgNBeHEiB0EEQQggA0EDcSIDGyAAakkNAyADQQAgByAAQSdqSxsNBCAJEBNBASEJDAELIAkgAEEBIAUQFiIJRQ0BC0GcqcEALQAAGkEUEAwiAA0DCwALQaGjwQBBLkHQo8EAEFcAC0Hgo8EAQS5BkKTBABBXAAsgACAFNgIIIAAgCTYCBCAAQQA2AgAgAEEAIAYgBBs2AhAgAEEAIAIgBBs2AgwgC0HQAGokACAADAELIANBCWpBCUHcjcAAEE4ACyAOQRBqJAALqQEBBH8jAEEgayICJABBCCAAKAIAIgRBAWoiAyAEQQF0IgUgAyAFSxsiAyADQQhNGyIDQQBIBEBBAEEAIAEQegALQQAhBSACIAQEfyACIAQ2AhwgAiAAKAIENgIUQQEFIAULNgIYIAJBCGogAyACQRRqEFQgAigCCEEBRgRAIAIoAgwgAigCECABEHoACyACKAIMIQEgACADNgIAIAAgATYCBCACQSBqJAALrgEBAn8gASgCDCECAkACQAJAAkACQCABKAIEDgIAAQILIAINAUEAIQFBASEDQQEhAgwDCyACRQ0BCyAAIAEQLQ8LQQAhAiABKAIAIgMoAgQiAUEATgR/IAMoAgAhAiABRQRAQQAhAUEBIQMMAgtBnKnBAC0AABogARAMIgMNAUEBBSACCyABQbD/wAAQegALIAMgAiABEBohAiAAIAE2AgggACACNgIEIAAgATYCAAuEAgEEfyMAQRBrIgMkAAJAAkACQCAAKAIMBEAgACEBDAELIANBCGogAEEIaigCADYCACADIAApAgA3AwAjAEEQayICJAAgAkEIaiABKAIMIAEoAhAgASgCFBAgQZypwQAtAAAaIAIoAgwhBCACKAIIIQVBFBAMIgFFBEAACyABIAU2AgwgASADKQIANwIAIAEgBDYCECABQQhqIANBCGooAgA2AgAgAkEQaiQAIABBBGsoAgAiAkF4cSIEQRhBHCACQQNxIgIbSQ0BIAJBACAEQTxPGw0CIAAQEwsgA0EQaiQAIAEPC0Gho8EAQS5B0KPBABBXAAtB4KPBAEEuQZCkwQAQVwALswEBBH9BhKnBAEIANwIAQYCpwQAoAgAhAkGAqcEAQQQ2AgBB/KjBACgCACEBQfiowQAoAgAhAEH4qMEAQgE3AgBBjKnBAEEANgIAAkACQCAARSABRXJFBEAgAkEEaygCACIAQXhxIgMgAUECdCIBQQRBCCAAQQNxIgAbakkNASAAQQAgAyABQSdqSxsNAiACEBMLDwtBoaPBAEEuQdCjwQAQVwALQeCjwQBBLkGQpMEAEFcAC40BAQF/An8CQCADKAIEBEAgAygCCCIERQRAIAEgAkUNAxpBnKnBAC0AABogAUEJSQ0CIAEgAhArDAMLIAMoAgAgBCABIAIQFgwCCyABIAJFDQEaQZypwQAtAAAaIAFBCUkNACABIAIQKwwBCyACEAwLIQMgACACNgIIIAAgAyABIAMbNgIEIAAgA0U2AgALhwEBAX8jAEFAaiIDJAAgAyACNgIEIAMgATYCACADQThqIABBCGopAwA3AwAgA0ECNgIMIANBpIDBADYCCCADQgI3AhQgAyADrUKAgICAIIQ3AyggAyADQTBqrUKAgICAwACENwMgIAMgACkDADcDMCADIANBIGo2AhAgA0EIahA/IANBQGskAAuSAQEEfyMAQRBrIgIkAEEBIQQCQCABKAIcIgNBJyABKAIgIgUoAhAiAREAAA0AIAJBBGogACgCAEGBAhARAkAgAi0ABEGAAUYEQCADIAIoAgggAREAAEUNAQwCCyADIAItAA4iACACQQRqaiACLQAPIABrIAUoAgwRAQANAQsgA0EnIAERAAAhBAsgAkEQaiQAIAQLeQEBfyMAQUBqIgIkACACQbCFwAA2AhQgAiABNgIQIAIgADYCDCACQQI2AhwgAkGwgMAANgIYIAJCAjcCJCACIAJBEGqtQoCAgIAghDcDOCACIAJBDGqtQoCAgIAwhDcDMCACIAJBMGo2AiAgAkEYahA/IAJBQGskAAtiAQR+IAAgAkL/////D4MiAyABQv////8PgyIEfiIFIAQgAkIgiCICfiIEIAMgAUIgiCIGfnwiAUIghnwiAzcDACAAIAMgBVStIAIgBn4gASAEVK1CIIYgAUIgiIR8fDcDCAugAQEEfwJAIABBhAFPBEAgANBvJgFB+KjBACgCAEUEQBBDCyAAQYypwQAoAgAiAUkNASAAIAFrIgBBhKnBACgCACICTw0BQfyowQAoAgAhA0GAqcEAKAIAIgQgAEECdGpBiKnBACgCADYCAEGMqcEAIAE2AgBBiKnBACAANgIAQYSpwQAgAjYCAEGAqcEAIAQ2AgBB/KjBACADNgIACw8LAAt1AQR/AkACQCABKAIUIgUgASgCECIGTw0AIAEoAgwhBwNAIAUgB2otAAAiCEEwa0H/AXFBCU0EQCABIAVBAWoiBTYCFCAFIAZHDQEMAgsLIAhBIHJB5QBGDQELIAAgASACIAMgBBAzDwsgACABIAIgAyAEECMLbAEDfwJAAkAgACgCACICBEAgACgCBCIAQQRrKAIAIgFBeHEiA0EEQQggAUEDcSIBGyACakkNASABQQAgAyACQSdqSxsNAiAAEBMLDwtBoaPBAEEuQdCjwQAQVwALQeCjwQBBLkGQpMEAEFcAC3wDAX8BfgF8IwBBEGsiAyQAAkACQAJAAkAgACgCAEEBaw4CAQIACyAAKwMIIQUgA0EDOgAAIAMgBTkDCAwCCyAAKQMIIQQgA0EBOgAAIAMgBDcDCAwBCyAAKQMIIQQgA0ECOgAAIAMgBDcDCAsgAyABIAIQRSADQRBqJAALewEBfyMAQRBrIgMkAEGopcEAQailwQAoAgAiBEEBajYCAAJAIARBAEgNAAJAQfSowQAtAABFBEBB8KjBAEHwqMEAKAIAQQFqNgIAQaSlwQAoAgBBAE4NAQwCCyADQQhqIAAgARECAAALQfSowQBBADoAACACRQ0AAAsAC2gCAX8BfiMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQYSMwAA2AgggA0ICNwIUIANCgICAgDAiBCADrYQ3AyggAyAEIANBBGqthDcDICADIANBIGo2AhAgA0EIaiACEFwAC2IBAn8CQAJAIAAEQCABQQRrKAIAIgJBeHEiA0EEQQggAkEDcSICGyAAakkNASACQQAgAyAAQSdqSxsNAiABEBMLDwtBoaPBAEEuQdCjwQAQVwALQeCjwQBBLkGQpMEAEFcAC10BAX8jAEEwayIBJAAgAUEBNgIMIAEgADYCCCABQQI2AhQgAUGQgMAANgIQIAFCATcCHCABIAFBCGqtQoCAgIAQhDcDKCABIAFBKGo2AhggAUEQahA/IAFBMGokAAtdAQF/IwBBMGsiASQAIAFBATYCDCABIAA2AgggAUECNgIUIAFB1IDAADYCECABQgE3AhwgASABQQhqrUKAgICAEIQ3AyggASABQShqNgIYIAFBEGoQPyABQTBqJAALVgEBfgJAIANBwABxRQRAIANFDQEgAkEAIANrQT9xrYYgASADQT9xrSIEiIQhASACIASIIQIMAQsgAiADQT9xrYghAUIAIQILIAAgATcDACAAIAI3AwgLXgEDfyMAQRBrIgIkACACQQhqIAElARAIIAIoAggiBARAIAIoAgwhAyAAIAQ2AgQgACADNgIIIAAgAzYCACABQYQBTwRAIAEQSQsgAkEQaiQADwtBmKXAAEExEIEBAAtYAQF/An8gAigCBARAAkAgAigCCCIDRQRADAELIAIoAgAgA0EBIAEQFgwCCwtBnKnBAC0AABogARAMCyECIAAgATYCCCAAIAJBASACGzYCBCAAIAJFNgIAC0gAAkAgAWlBAUdBgICAgHggAWsgAElyDQAgAARAQZypwQAtAAAaAn8gAUEJTwRAIAEgABArDAELIAAQDAsiAUUNAQsgAQ8LAAtBAQF/IAIgACgCACAAKAIIIgNrSwRAIAAgAyACED0gACgCCCEDCyAAKAIEIANqIAEgAhAaGiAAIAIgA2o2AghBAAtBAQF/IwBBIGsiAyQAIANBADYCECADQQE2AgQgA0IENwIIIAMgATYCHCADIAA2AhggAyADQRhqNgIAIAMgAhBcAAs4AAJAIAJBgIDEAEYNACAAIAIgASgCEBEAAEUNAEEBDwsgA0UEQEEADwsgACADIAQgASgCDBEBAAs2AQF/IwBBIGsiASQAIAFBADYCGCABQQE2AgwgAUHoiMAANgIIIAFCBDcCECABQQhqIAAQXAALLQACQCADaUEBR0GAgICAeCADayABSXJFBEAgACABIAMgAhAWIgANAQsACyAACzYBAX9BnKnBAC0AABpBGBAMIgJFBEAACyACQgQ3AhAgAkIANwIIIAJCgYCAgBA3AgAgAkEIagvqAQICfwF+IwBBEGsiAiQAIAJBATsBDCACIAE2AgggAiAANgIEIwBBEGsiASQAIAJBBGoiACkCACEEIAEgADYCDCABIAQ3AgQjAEEQayIAJAAgAUEEaiIBKAIAIgIoAgwhAwJAAkACQAJAIAIoAgQOAgABAgsgAw0BQQEhAkEAIQMMAgsgAw0AIAIoAgAiAigCBCEDIAIoAgAhAgwBCyAAQYCAgIB4NgIAIAAgATYCDCAAQRsgASgCCCIALQAIIAAtAAkQTQALIAAgAzYCBCAAIAI2AgAgAEEcIAEoAggiAC0ACCAALQAJEE0ACx8BAn4gACkDACICIAJCP4ciA4UgA30gAkIAWSABECwLJQAgAEUEQEHEpsAAQTIQgQEACyAAIAIgAyAEIAUgASgCEBELAAsjACAARQRAQcSmwABBMhCBAQALIAAgAiADIAQgASgCEBEKAAsjACAARQRAQcSmwABBMhCBAQALIAAgAiADIAQgASgCEBEHAAsjACAARQRAQcSmwABBMhCBAQALIAAgAiADIAQgASgCEBEgAAsjACAARQRAQcSmwABBMhCBAQALIAAgAiADIAQgASgCEBEiAAsjACAARQRAQcSmwABBMhCBAQALIAAgAiADIAQgASgCEBEkAAsiACAALQAARQRAIAFBxYzAAEEFEA8PCyABQcqMwABBBBAPCyEAIABFBEBBxKbAAEEyEIEBAAsgACACIAMgASgCEBEDAAssAEGQqcEAKAIARQRAQZCpwQBBATYCAAtBmKnBACAANgIAQZSpwQBBATYCAAsfACAARQRAQcSmwABBMhCBAQALIAAgAiABKAIQEQAACxoBAW8gACUBIAElASABEEkgAiUBIAIQSRAFCxwAIAEoAhwgACgCACAAKAIEIAEoAiAoAgwRAQALFgEBbyAAJQEQASEBECUiACABJgEgAAsWAQFvIAAgARACIQIQJSIAIAImASAACxkAIAEoAhxB/ILAAEEMIAEoAiAoAgwRAQALGQAgASgCHEHP/cAAQQMgASgCICgCDBEBAAsZACABKAIcQeSFwABBCiABKAIgKAIMEQEACxkAIAEoAhxBpIjAAEESIAEoAiAoAgwRAQALGQAgASgCHEG2iMAAQQUgASgCICgCDBEBAAsZACABKAIcQfqKwABBDiABKAIgKAIMEQEACxYCAW8BfyAAEAQhARAlIgIgASYBIAILqyMCEX8BfRAlIhAgASYBIAIhEyMAQYABayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACINBEAgAEEIayIRIBEoAgBBAWoiADYCACAARQ0FIA0oAgANASANQX82AgACfyAQEIgBQQFGBEBBnKnBAC0AABpBBBAMIgJFDQQgAkHu6rHjBjYAACADQQQ2AjQgAyACNgIwIANBBDYCLEEEDAELIBAQaiEAAkBBkKnBACgCAEUEQEGUqcEAQgA3AgBBkKnBAEEBNgIADAELQZSpwQAoAgBBlKnBAEIANwIAQQFGDQULIANBLGogABBTIAMoAjAhAiADKAI0CyEAIANBADYCTCADIAA2AkggAyACNgJEIANBgAE6AFAgA0EANgJAIANCgICAgBA3AjggAyACIAAgAAR/A0AgAiAEai0AACIFQQlrIghBF0tBASAIdEGTgIAEcUVyDQYgACAEQQFqIgRHDQALIAMgADYCTCAAQQFqBUEBCyICIAAgACACSxsQIEGcqcEALQAAGiADKAIEIQAgAygCACECQRQQDCIERQ0FIAQgAjYCDCAEQQU2AgAgBCAANgIQDAgLEIABAAsQggEAC0EBQQRBsP/AABB6AAtB5IDAAEExEIEBAAsgBUHbAEcNASADQf8AOgBQIAMgBEEBajYCTCADQQE6AFggAyADQThqNgJUIANBADYCZCADQoCAgIDAADcCXEEEIRICfwJAAkACQAJAAkADQCADQfAAaiADQdQAahAcAkAgAy0AcEUEQCADLQBxBEAgAygCVCIGKAIMIQggBigCFCIEIAYoAhAiAkkEQANAIAQgCGotAAAiAEEJayIFQRdLQQEgBXRBk4CABHFFcg0EIAYgBEEBaiIENgIUIAIgBEcNAAsgAiEECyADQRBqIAggAiAEQQFqIgAgAiAAIAJJGxAgQZypwQAtAAAaIAMoAhQhACADKAIQIQJBFBAMIgVFDQogBSACNgIMIAVBBTYCACAFIAA2AhAMCAsgAygCYCEFIAMoAlwMCAsgAygCdCEFDAYLAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJ/An8CQAJAAkACQAJAAkACQCAAQdsARwRAIABB+wBGDQEgBiADQf8AakHkhMAAEBAhBAwgCyAGIAYtABhBAWsiBToAGCAEQQFqIQAg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AEEANgIACwgAIAAlARAACwgAIAAlARAKCwukpAEfAEGAgMAAC8EEbWlzc2luZyBmaWVsZCBgAAAAEAAPAAAAREAQAAEAAABpbnZhbGlkIGxlbmd0aCAAIAAQAA8AAAAXQBAACwAAAGR1cGxpY2F0ZSBmaWVsZCBgAAAAQAAQABEAAABEQBAAAQAAAGNhbGxlZCBgUmVzdWx0Ojp1bndyYXBfdGhyb3coKWAgb24gYW4gYEVycmAgdmFsdWVhdHRlbXB0ZWQgdG8gdGFrZSBvd25lcnNoaXAgb2YgUnVzdCB2YWx1ZSB3aGlsZSBpdCB3YXMgYm9ycm93ZWRzcmMvbGliLnJzAADUABAACgAAADgAAAAXAAAAYWRkX3RleHR1cmUgcmVjZWl2ZWQgbm90IGNvcGF0aWJsZSBkYXRhIGZyb20gSlMuIEZhaWxlZCBhdCBjb252ZXJzaW9uIHRvIFJ1c3QgdHlwZXMu8AAQAFQAAADUABAACgAAADUAAAANAAAA1AAQAAoAAABZAAAAGAAAANQAEAAKAAAAUQAAAA0AAABzdHJ1Y3QgUG9pbnR0ZXh0dXJlX2lkdmVydGV4X2RhdGEvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZV9qc29uLTEuMC4xMzQvc3JjL2RlLnJzaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZQCdARAAXgAAAJoEAAAiAAAAnQEQAF4AAACQBAAAJgBBzITAAAsFAQAAAB0AQdyEwAALBQEAAAAeAEHshMAACwUBAAAAHwBB/ITAAAvJBAEAAAAgAAAAc3RydWN0IFZlcnRleFBvaW50IHdpdGggNCBlbGVtZW50cwAAhAIQACIAAAAAAAAACAAAAAQAAAAhAAAAc3RydWN0IFBvaW50IHdpdGggMiBlbGVtZW50c8ACEAAcAAAAYSBzZXF1ZW5jZS9ob21lL3J1bm5lci8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3NlcmRlLTEuMC4yMTYvc3JjL2RlL2ltcGxzLnJzAAAA7gIQAF8AAACYBAAAHAAAAHNyYy90ZXh0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NWNmZWNiL2xpYnJhcnkvYWxsb2Mvc3JjL3NsaWNlLnJzAABkPxAASgAAAKIAAAAZAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5pc19jaGFyX2JvdW5kYXJ5KG5ld19sZW4p0FAQAEsAAADABQAADQAAACBhdCBsaW5lIGludmFsaWQgdHlwZTogLCBleHBlY3RlZCAAAAlAEAAOAAAAF0AQAAsAAABmbG9hdGluZyBwb2ludCBgYAAAADRAEAAQAAAAREAQAAEAAABudWxsL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTM0L3NyYy9lcnJvci5ycwAAAFxAEABhAAAA9wEAACEAAABcQBAAYQAAAPsBAAAMAAAAXEAQAGEAAAACAgAAIQAAAFxAEABhAAAACwIAACoAAABcQBAAYQAAAA8CAAAsAAAAL2hvbWUvcnVubmVyLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvc2VyZGVfanNvbi0xLjAuMTM0L3NyYy9yZWFkLnJzEEEQAGAAAACgAQAARQAAABBBEABgAAAApQEAAD0AAAAQQRAAYAAAAK0BAAAaAAAAEEEQAGAAAAD6AQAAEwAAABBBEABgAAAA/wEAADMAAAAQQRAAYAAAAAMCAAA+AAAAEEEQAGAAAAAJAgAAOgAAABBBEABgAAAAVgIAABMAAAAQQRAAYAAAAGgCAAAZAAAAEEEQAGAAAABsAwAAGQAAABBBEABgAAAAbQMAABoAAAAQQRAAYAAAAG4DAAAZAAAAEEEQAGAAAABvAwAAGQAAABBBEABgAAAAcAMAABkAAAAQQRAAYAAAAHEDAAAZAAAAEEEQAGAAAAByAwAAGQAAABBBEABgAAAAcwMAABkAAAAQQRAAYAAAAM4DAAARAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAABAAIAAwAEAAUABgAHAAgACQD//////////////////woACwAMAA0ADgAPAP////////////////////////////////////////////////////////////////////8KAAsADAANAA4ADwD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AABAAIAAwAEAAUABgAHAAgACQAP//////////////////oACwAMAA0ADgAPAA/////////////////////////////////////////////////////////////////////6AAsADAANAA4ADwAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAAAA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OTg0NmY4OTNiMDlhMWJlMWZjODU2MGUzM2ZjM2M4MTVjZmVjYi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjLnJzABtREABMAAAAKgIAABEAAAAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi43L3NyYy9kbG1hbGxvYy5yc2Fzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAeFEQACkAAACoBAAACQAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplIDw9IHNpemUgKyBtYXhfb3ZlcmhlYWQAAHhREAApAAAArgQAAA0AAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0AHsJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjg2LjAgKDA1Zjk4NDZmOCAyMDI1LTAzLTMxKQZ3YWxydXMGMC4yMi4wDHdhc20tYmluZGdlbhIwLjIuOTUgKDNhOGRhN2NiOCkASQ90YXJnZXRfZmVhdHVyZXMEKw9tdXRhYmxlLWdsb2JhbHMrCHNpZ24tZXh0Kw9yZWZlcmVuY2UtdHlwZXMrCm11bHRpdmFsdWU=".split("base64,")[1],IA=Uint8Array.from(atob(BA),(A=>A.charCodeAt(0)));WebAssembly.instantiate(IA,{"./index_bg.js":I}).then((A=>{L(A.instance.exports),A.instance.exports.__wbindgen_start()}));var gA=function(A,B,I,g){return new(I||(I=Promise))((function(Q,E){function C(A){try{o(g.next(A))}catch(A){E(A)}}function i(A){try{o(g.throw(A))}catch(A){E(A)}}function o(A){var B;A.done?Q(A.value):(B=A.value,B instanceof I?B:new I((function(A){A(B)}))).then(C,i)}o((g=g.apply(A,B||[])).next())}))};function QA(A){return gA(this,void 0,void 0,(function*(){const B=yield function(){return Q(this,void 0,void 0,(function*(){if(!navigator.gpu)throw Error("this browser does not support WebGPU");const A=yield navigator.gpu.requestAdapter();if(!A)throw Error("this browser supports webgpu but it appears disabled");const B=yield A.requestDevice();return B.lost.then((A=>{console.error(`WebGPU device was lost: ${A.message}`),A.reason})),B}))}(),I=Z.new(300,300),E=A.getContext("webgpu");if(!E)throw Error("WebGPU from canvas needs to be always provided");const R=navigator.gpu.getPreferredCanvasFormat();E.configure({device:B,format:R}),function(A,B){new ResizeObserver((A=>{for(const I of A)g(I.target,0|I.contentBoxSize[0].inlineSize,0|I.contentBoxSize[0].blockSize,B)})).observe(A),g(A,A.clientWidth,A.clientHeight,B)}(A,B),function(A,B){F=function(A,B){const I=A.createShaderModule({label:"triangle shader module",code:i}),g=A.createRenderPipeline({label:"triangle pipline",layout:"auto",vertex:{module:I,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:I,entryPoint:"fs",targets:[{format:B}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(B,I,Q){const E=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),o=i.subarray(0,4),e=i.subarray(4,16);o.set([Math.random(),Math.random(),Math.random(),1]);const D=new Float32Array([500,100,800,400,200,400]),t=new Uint32Array([0,1,2]),w=A.createBuffer({label:"vertex buffer vertices",size:D.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(w,0,D);const a=A.createBuffer({label:"index buffer",size:t.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(a,0,t);const n=A.createBindGroup({label:"bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:E}}]});B.setPipeline(g),B.setVertexBuffer(0,w),B.setIndexBuffer(a,"uint32"),e.set(I),C.translate(e,[Q,0],e),A.queue.writeBuffer(E,0,i),B.setBindGroup(0,n),B.drawIndexed(3)}}(A,B),c=function(A,B){const I=A.createShaderModule({label:"bezier shader module",code:o}),g=A.createRenderPipeline({label:"bezier pipline",layout:"auto",primitive:{topology:"triangle-strip"},vertex:{module:I,entryPoint:"vs",buffers:[{arrayStride:4,attributes:[{shaderLocation:0,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:2,offset:0,format:"uint32"}]}]},fragment:{module:I,entryPoint:"fs",targets:[{format:B}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(B,I,Q,E,C,i,o){const e=4*Q.length,D=A.createBuffer({label:"storage points",size:e,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t=A.createBuffer({label:"uniforms",size:80,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),w=new Float32Array(20),a=w.subarray(0,16),n=w.subarray(16,17),r=A.createBindGroup({label:"bezier bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:t}},{binding:1,resource:{buffer:D}}]}),s=A.createBuffer({label:"bezier vertex buffer vertices",size:E.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(s,0,E);const F=A.createBuffer({label:"bezier vertex buffer vertices",size:C.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(F,0,C);const c=A.createBuffer({label:"bezier vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(c,0,i),B.setPipeline(g),B.setVertexBuffer(0,s),B.setVertexBuffer(1,F),B.setVertexBuffer(2,c),a.set(I),n.set(new Float32Array([o])),A.queue.writeBuffer(t,0,w),A.queue.writeBuffer(D,0,Q),B.setBindGroup(0,r),B.draw(E.length)}}(A,B),h=function(A,B){const I=A.createShaderModule({label:"3d model texture shader module",code:e}),g=A.createRenderPipeline({label:"3d model texture pipline",layout:"auto",vertex:{module:I,entryPoint:"vs",buffers:[{arrayStride:20,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"}]}]},fragment:{module:I,entryPoint:"fs",targets:[{format:B}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(B,I,Q,E,C){const i=A.createSampler({magFilter:"linear",minFilter:"linear"}),o=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),e=new Float32Array(16),D=e.subarray(0,16),t=C.length,w=A.createBuffer({label:"3d model texture vertex buffer vertices",size:E.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(w,0,E);const a=A.createBuffer({label:"3d model texture index buffer",size:C.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(a,0,C);const n=A.createBindGroup({label:"3d model texture bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:o}},{binding:1,resource:i},{binding:2,resource:Q.createView()}]});B.setPipeline(g),B.setVertexBuffer(0,w),B.setIndexBuffer(a,"uint32"),D.set(I),A.queue.writeBuffer(o,0,e),B.setBindGroup(0,n),B.drawIndexed(t)}}(A,B),G=function(A,B){const I=A.createShaderModule({label:"3d model shader module",code:D}),g=A.createRenderPipeline({label:"3d model pipline",layout:"auto",vertex:{module:I,entryPoint:"vs",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]}]},fragment:{module:I,entryPoint:"fs",targets:[{format:B}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(B,I,Q,E){const C=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),o=i.subarray(0,16),e=E.length,D=A.createBuffer({label:"vertex buffer vertices",size:Q.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(D,0,Q);const t=A.createBuffer({label:"index buffer",size:E.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(t,0,E);const w=A.createBindGroup({label:"bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:C}}]});B.setPipeline(g),B.setVertexBuffer(0,D),B.setIndexBuffer(t,"uint32"),o.set(I),A.queue.writeBuffer(C,0,i),B.setBindGroup(0,w),B.drawIndexed(e)}}(A,B),y=function(A,B){const I=A.createShaderModule({label:"3d model light shader module",code:t}),g=A.createRenderPipeline({label:"3d model light pipline",layout:"auto",vertex:{module:I,entryPoint:"vs",buffers:[{arrayStride:24,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x3"}]}]},fragment:{module:I,entryPoint:"fs",targets:[{format:B}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(B,I,Q,E){const{worldViewProjection:C,normalMatrix:i,lightColor:o,lightDirection:e}=I,D=A.createBuffer({label:"uniforms",size:144,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),t=new Float32Array(36),w=t.subarray(0,12),a=t.subarray(12,28),n=t.subarray(28,32),r=t.subarray(32,35),s=A.createBindGroup({label:"bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:D}}]}),F=E.length,c=A.createBuffer({label:"vertex buffer vertices",size:Q.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(c,0,Q);const G=A.createBuffer({label:"index buffer",size:E.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(G,0,E),B.setPipeline(g),B.setVertexBuffer(0,c),B.setIndexBuffer(G,"uint32"),w.set(i),a.set(C),n.set(o),r.set(e),A.queue.writeBuffer(D,0,t),B.setBindGroup(0,s),B.drawIndexed(F)}}(A,B),N=function(A){const B=A.createShaderModule({label:"blur shader module",code:w}),I=A.createComputePipeline({layout:"auto",compute:{module:B,entryPoint:"main"}});return function(B,g){const Q=[0,1].map((()=>A.createTexture({size:{width:B.width,height:B.height},format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING}))),E=(()=>{const B=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(B.getMappedRange())[0]=0,B.unmap(),B})(),C=(()=>{const B=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(B.getMappedRange())[0]=1,B.unmap(),B})(),i=A.createBuffer({size:8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM}),o=A.createSampler({magFilter:"linear",minFilter:"linear"}),e=A.createBindGroup({layout:I.getBindGroupLayout(0),entries:[{binding:0,resource:o},{binding:1,resource:{buffer:i}}]}),D=A.createBindGroup({layout:I.getBindGroupLayout(1),entries:[{binding:1,resource:B.createView()},{binding:2,resource:Q[0].createView()},{binding:3,resource:{buffer:E}}]}),t=A.createBindGroup({layout:I.getBindGroupLayout(1),entries:[{binding:1,resource:Q[0].createView()},{binding:2,resource:Q[1].createView()},{binding:3,resource:{buffer:C}}]}),w=A.createBindGroup({layout:I.getBindGroupLayout(1),entries:[{binding:1,resource:Q[1].createView()},{binding:2,resource:Q[0].createView()},{binding:3,resource:{buffer:E}}]}),r=a-14;A.queue.writeBuffer(i,0,new Uint32Array([15,r]));const s=g.beginComputePass();s.setPipeline(I),s.setBindGroup(0,e),s.setBindGroup(1,D),s.dispatchWorkgroups(Math.ceil(B.width/r),Math.ceil(B.height/n[1])),s.setBindGroup(1,t),s.dispatchWorkgroups(Math.ceil(B.height/r),Math.ceil(B.width/n[1]));for(let A=0;A<1;++A)s.setBindGroup(1,w),s.dispatchWorkgroups(Math.ceil(B.width/r),Math.ceil(B.height/n[1])),s.setBindGroup(1,t),s.dispatchWorkgroups(Math.ceil(B.height/r),Math.ceil(B.width/n[1]));return s.end(),Q[1]}}(A),M=function(A,B){const I=A.createShaderModule({label:"texture module",code:r}),g=A.createSampler({minFilter:"linear",magFilter:"linear"}),Q=A.createRenderPipeline({label:"texture pipeline",layout:"auto",vertex:{module:I,entryPoint:"vs",buffers:[{arrayStride:4*s,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"}]}]},fragment:{module:I,entryPoint:"fs",targets:[{format:B}]}}),E=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),C=new Float32Array(16),i=C.subarray(0,16);return function(B,I,o,e){const D=Math.round(o.length/s),t=A.createBuffer({label:"vertex buffer vertices",size:o.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(t,0,o);const w=A.createBindGroup({layout:Q.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:E}},{binding:1,resource:g},{binding:2,resource:e.createView()}]});B.setPipeline(Q),B.setVertexBuffer(0,t),i.set(I),A.queue.writeBuffer(E,0,C),B.setBindGroup(0,w),B.draw(D)}}(A,B)}(B,R);const k=[];return function(A,B,I,g,Q,E){const C=function(A){return S.ortho(0,A.clientWidth,A.clientHeight,0,1,-1)}(B);requestAnimationFrame((function B(Q){const i=g.createCommandEncoder(),o=function(A,B){const I=A.getCurrentTexture();return function(A,B,I){U&&U.width===B&&U.height===I||(null==U||U.destroy(),U=A.createTexture({size:[B,I],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}))}(B,I.width,I.height),{label:"our render to canvas renderPass",colorAttachments:[{view:I.createView(),clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"}]}}(I,g),e=i.beginRenderPass(o);let D=!1,t=0;for(;!D;){const{texture_id:B,vertex_data:I}=A.get_shader_input(t);t++,D=0===I.length,D||M(e,C,new Float32Array(I),E[B])}e.end();const w=i.finish();g.queue.submit([w]),requestAnimationFrame(B)}))}(I,A,E,B,0,k),{addImage:g=>{const Q=k.length;k.push(function(A,B,I={}){const g=A.createTexture({format:"rgba8unorm",mipLevelCount:I.mips?Y(B.width,B.height):1,size:[B.width,B.height],usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return function(A,B,I,{flipY:g,depthOrArrayLayers:Q}={}){A.queue.copyExternalImageToTexture({source:I,flipY:g},{texture:B},{width:I.width,height:I.height,depthOrArrayLayers:Q})}(A,g,B,I),g}(B,g)),console.log("env",g.width,A.width);const E=function(A,B){if(B.height-A.height<B.width-A.width)return J(A.height,.2*B.height,.8*B.height)/A.height;return J(A.width,.2*B.width,.8*B.width)/A.width}(g,A),C=g.width*E,i=g.height*E,o=.5*(A.width-C),e=.5*(A.height-i);I.add_texture([{x:o,y:e,u:0,v:0},{x:o+C,y:e,u:1,v:0},{x:o+C,y:e+i,u:1,v:1},{x:o,y:e+i,u:0,v:1}],Q)},updatePoints:(A,B)=>{I.update_points(A,B)},destroy:()=>{E.unconfigure(),B.destroy()}}}))}var EA=B.A;export{EA as default};
|
|
1
|
+
var A,e,t,g,I={214:(A,e,t)=>{function g(A,e,t,g){A.width=Math.max(1,Math.min(e,g.limits.maxTextureDimension2D)),A.height=Math.max(1,Math.min(t,g.limits.maxTextureDimension2D))}function I(A,e,t){new ResizeObserver((A=>{for(const I of A)g(I.target,0|I.contentBoxSize[0].inlineSize,0|I.contentBoxSize[0].blockSize,e),t()})).observe(A),g(A,A.clientWidth,A.clientHeight,e)}t.d(e,{A:()=>I})},1911:(A,e,t)=>{t.d(e,{A:()=>I});var g=function(A,e,t,g){return new(t||(t=Promise))((function(I,i){function Q(A){try{B(g.next(A))}catch(A){i(A)}}function C(A){try{B(g.throw(A))}catch(A){i(A)}}function B(A){var e;A.done?I(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(Q,C)}B((g=g.apply(A,e||[])).next())}))};function I(){return g(this,void 0,void 0,(function*(){if(!navigator.gpu)throw Error("this browser does not support WebGPU");const A=yield navigator.gpu.requestAdapter();if(!A)throw Error("this browser supports webgpu but it appears disabled");const e=yield A.requestDevice();return e.lost.then((A=>{console.error(`WebGPU device was lost: ${A.message}`),A.reason})),e}))}},1549:(A,e,t)=>{t.d(e,{Be:()=>I});const g=(...A)=>{const e=Math.max(...A);return 1+Math.log2(e)|0};function I(A,e,t={}){const I=A.createTexture({format:"rgba8unorm",mipLevelCount:t.mips?g(e.width,e.height):1,size:[e.width,e.height],usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return function(A,e,t,{flipY:g,depthOrArrayLayers:I}={}){A.queue.copyExternalImageToTexture({source:t,flipY:g},{texture:e},{width:t.width,height:t.height,depthOrArrayLayers:I})}(A,I,e,t),I}},2872:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A:()=>r});var I=t(2842),i=t(9200),Q=t(3979),C=A([i,Q]);[i,Q]=C.then?(await C)():C;const B=1;class r{constructor(A){this.device=A,this.isPreviousPickDone=!0,this.pickBuffer=A.createBuffer({size:4*B,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pickTexture=A.createTexture({size:[1,1],format:"r32uint",usage:GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT}),this.pickDepthTexture=A.createTexture({size:[1,1],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT})}startPicking(A){const e={label:"our render to canvas renderPass",colorAttachments:[{view:this.pickTexture.createView(),loadOp:"clear",clearValue:[0,0,0,1],storeOp:"store"}]},t=A.beginRenderPass(e);return t.setViewport(0,0,1,1,0,1),t.setScissorRect(0,0,1,1),{pass:t,end:()=>{t.end(),this.isPreviousPickDone&&A.copyTextureToBuffer({texture:this.pickTexture,origin:{x:0,y:0}},{buffer:this.pickBuffer},{width:B})}}}createMatrix(A,e){const{clientWidth:t,clientHeight:g}=A,Q=-(i.W.x/t*2-1),C=i.W.y/g*2-1;return[I.A.scaling([t,g,0]),I.A.translation([Q,C,0]),e].reduce(((A,e)=>I.A.multiply(A,e)),I.A.translation([-1,1,0]))}asyncPick(){return A=this,e=void 0,g=function*(){if(!this.isPreviousPickDone)return;this.isPreviousPickDone=!1,yield this.pickBuffer.mapAsync(GPUMapMode.READ,0,4*B);const[A]=new Uint32Array(this.pickBuffer.getMappedRange(0,4*B));(0,Q.OI)(A),this.pickBuffer.unmap(),this.isPreviousPickDone=!0},new((t=void 0)||(t=Promise))((function(I,i){function Q(A){try{B(g.next(A))}catch(A){i(A)}}function C(A){try{B(g.throw(A))}catch(A){i(A)}}function B(A){var e;A.done?I(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(Q,C)}B((g=g.apply(A,e||[])).next())}));var A,e,t,g}}g()}catch(A){g(A)}}))},9200:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A:()=>C,W:()=>Q});var I=t(3979),i=A([I]);I=(i.then?(await i)():i)[0];const Q={x:0,y:0};function C(A){Q.x=0,Q.y=0,A.addEventListener("mouseleave",(()=>{})),A.addEventListener("mousemove",(e=>{!function(e){const t=A.getBoundingClientRect();Q.x=e.clientX-t.left,Q.y=e.clientY-t.top}(e),(0,I.wU)(Q.x,A.height-Q.y)})),A.addEventListener("mousedown",(()=>{(0,I.Dk)(Q.x,A.height-Q.y)})),A.addEventListener("mouseup",(()=>{(0,I._R)()})),A.addEventListener("wheel",(A=>{console.log(A.deltaY)}))}g()}catch(B){g(B)}}))},7076:(A,e,t)=>{t.d(e,{Ay:()=>F,_J:()=>p,D4:()=>f,Fh:()=>S,Q3:()=>U});const g="struct Vertex {\n @location(0) position: vec4f,\n @location(1) color: vec4f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n out.position = u.worldViewProjection * vert.position;\n out.color = vert.color;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n return in.color;\n}\n",I=8,i="struct Uniforms {\n matrix: mat4x4f,\n zoom: f32,\n};\n\nstruct Vertex {\n @location(0) t: f32,\n @location(1) dir: f32,\n @location(2) segmentIndex: u32,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@group(0) @binding(1) var<storage> points: array<vec2f>;\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n \n let p1 = points[vert.segmentIndex * 4 + 0];\n let p2 = points[vert.segmentIndex * 4 + 1];\n let p3 = points[vert.segmentIndex * 4 + 2];\n let p4 = points[vert.segmentIndex * 4 + 3];\n\n let t2 = vert.t * vert.t;\n let one_minus_t = 1.0 - vert.t;\n let one_minus_t2 = one_minus_t * one_minus_t;\n let pos = p1 * one_minus_t2 * one_minus_t + p2 * 3.0 * vert.t * one_minus_t2 + p3 * 3.0 * t2 * one_minus_t + p4 * t2 * vert.t;\n\n let angle = one_minus_t2 * (p2 - p1) + 2.0 * vert.t * one_minus_t * (p3 - p2) + t2 * (p4 - p3);\n let angleNorm = normalize(angle) * 5 / u.zoom;\n let transPos = vec2(pos.x - angleNorm.y * vert.dir, pos.y + angleNorm.x * vert.dir);\n let clipSpace = (u.matrix * vec4f(transPos, 1, 1));\n vsOut.position = clipSpace;\n vsOut.color = vec4f(f32(vert.segmentIndex) % 3, (f32(vert.segmentIndex) + 1) % 3, (f32(vert.segmentIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",Q="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) texcoord: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.texcoord = vert.texcoord;\n return vsOut;\n}\n\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, vsOut.texcoord);\n}\n",C="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",B="struct Uniforms {\n normalMatrix: mat3x3f,\n worldViewProjection: mat4x4f,\n lightColor: vec4f,\n lightDirection: vec3f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) normal: vec3f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n @location(1) normal: vec3f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.worldViewProjection * vert.position;\n vsOut.normal = uni.normalMatrix * vert.normal;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n // Because vsOut.normal is an inter-stage variable \n // it's interpolated so it will not be a unit vector.\n // Normalizing it will make it a unit vector again\n let normal = normalize(vsOut.normal);\n \n // Compute the light by taking the dot product\n // of the normal to the light's reverse direction\n let light = dot(normal, -uni.lightDirection);\n \n // Lets multiply just the color portion (not the alpha)\n // by the light\n let color = vec3f(0.23) + uni.lightColor.rgb * light;\n // let color = vsOut.color.rgb * 0.5 + uni.lightColor.rgb * light;\n return vec4f(color, vsOut.color.a);\n}\n",r="struct Params {\n filterDim : i32,\n blockDim : u32,\n}\n\n@group(0) @binding(0) var samp : sampler;\n@group(0) @binding(1) var<uniform> params : Params;\n@group(1) @binding(1) var inputTex : texture_2d<f32>;\n@group(1) @binding(2) var outputTex : texture_storage_2d<rgba8unorm, write>;\n\nstruct Flip {\n value : u32,\n}\n@group(1) @binding(3) var<uniform> flip : Flip;\n\n// This shader blurs the input texture in one direction, depending on whether\n// |flip.value| is 0 or 1.\n// It does so by running (128 / 4) threads per workgroup to load 128\n// texels into 4 rows of shared memory. Each thread loads a\n// 4 x 4 block of texels to take advantage of the texture sampling\n// hardware.\n// Then, each thread computes the blur result by averaging the adjacent texel values\n// in shared memory.\n// Because we're operating on a subset of the texture, we cannot compute all of the\n// results since not all of the neighbors are available in shared memory.\n// Specifically, with 128 x 128 tiles, we can only compute and write out\n// square blocks of size 128 - (filterSize - 1). We compute the number of blocks\n// needed in Javascript and dispatch that amount.\n\n// 128/4 = 32 -> number of threads per working group\n// does it in 4x4 block of texels(takes advantage of texture sampling hardware)\n// with this beign said, we don't have all the neighbours, only this block\n// That's why we can only compute & write out blocks of size 128 - (filterSize - 1)\nvar<workgroup> tile : array<array<vec3<f32>, 128>, 4>;\n\n@compute @workgroup_size(32, 1, 1)\nfn main(\n @builtin(workgroup_id) WorkGroupID : vec3<u32>,\n @builtin(local_invocation_id) LocalInvocationID : vec3<u32>\n) {\n let filterOffset = (params.filterDim - 1) / 2;\n let dims = vec2<i32>(textureDimensions(inputTex, 0));\n let baseIndex = vec2<i32>(WorkGroupID.xy * vec2(params.blockDim, 4) + // it's just the index of the first texel in a group\n LocalInvocationID.xy * vec2(4, 1)) // <0, 128>\n - vec2(filterOffset, 0);\n // baseIndex = xy of first texel of group\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var loadIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n loadIndex = loadIndex.yx;\n }\n\n tile[r][4 * LocalInvocationID.x + u32(c)] = textureSampleLevel(\n inputTex,\n samp,\n (vec2<f32>(loadIndex) + vec2<f32>(0.25, 0.25)) / vec2<f32>(dims),\n 0.0\n ).rgb;\n }\n }\n\n workgroupBarrier();\n // helps coordinate access to read-write memory\n // so all threads(32) will wait to hit this barrer, and then start form here together\n\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var writeIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n writeIndex = writeIndex.yx;\n }\n\n let center = i32(4 * LocalInvocationID.x) + c;\n if (center >= filterOffset &&\n center < 128 - filterOffset &&\n all(writeIndex < dims)) {\n var acc = vec3(0.0, 0.0, 0.0);\n for (var f = 0; f < params.filterDim; f++) {\n var i = center + f - filterOffset;\n acc = acc + (1.0 / f32(params.filterDim)) * tile[r][i];\n }\n textureStore(outputTex, writeIndex, vec4(acc, 1.0));\n }\n }\n }\n}\n",n=128,o=[4,4],s="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, in.texCoord);\n}\n",a=6,E="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n @location(2) id: f32,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n @location(1) @interpolate(flat) id: f32\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n out.id = vert.id;\n\n return out;\n}\n\n\n@fragment fn fs(in: VertexOutput) -> @location(0) u32 {\n let alpha = textureSample(ourTexture, ourSampler, in.texCoord).a;\n\n if (alpha < 0.1) {\n discard; // r32uint doesn't support blending so only skipping pixels lefts\n }\n\n return u32(in.id);\n}\n",c=7,u="struct Vertex {\n @location(0) position: vec4f,\n @location(1) id: f32,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) @interpolate(flat) id: f32\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n out.position = u.worldViewProjection * vert.position;\n out.id = vert.id;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) u32 {\n return u32(in.id);\n}\n\n",l=5;let f,w,h,D,y,d,p,S,U;function F(A,e){f=function(A,e){const t=A.createShaderModule({label:"draw triangle module",code:g}),i=A.createRenderPipeline({label:"draw triangle pipeline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:4*I,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x4"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]}}),Q=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),C=new Float32Array(16),B=C.subarray(0,16);return function(e,t,g){const r=g.length/I|0,n=A.createBuffer({label:"vertex buffer vertices",size:g.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(n,0,g);const o=A.createBindGroup({layout:i.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:Q}}]});e.setPipeline(i),e.setVertexBuffer(0,n),B.set(t),A.queue.writeBuffer(Q,0,C),e.setBindGroup(0,o),e.draw(r)}}(A,e),w=function(A,e){const t=A.createShaderModule({label:"bezier shader module",code:i}),g=A.createRenderPipeline({label:"bezier pipline",layout:"auto",primitive:{topology:"triangle-strip"},vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:4,attributes:[{shaderLocation:0,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:2,offset:0,format:"uint32"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(e,t,I,i,Q,C,B){const r=4*I.length,n=A.createBuffer({label:"storage points",size:r,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),o=A.createBuffer({label:"uniforms",size:80,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),s=new Float32Array(20),a=s.subarray(0,16),E=s.subarray(16,17),c=A.createBindGroup({label:"bezier bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:o}},{binding:1,resource:{buffer:n}}]}),u=A.createBuffer({label:"bezier vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(u,0,i);const l=A.createBuffer({label:"bezier vertex buffer vertices",size:Q.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(l,0,Q);const f=A.createBuffer({label:"bezier vertex buffer vertices",size:C.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(f,0,C),e.setPipeline(g),e.setVertexBuffer(0,u),e.setVertexBuffer(1,l),e.setVertexBuffer(2,f),a.set(t),E.set(new Float32Array([B])),A.queue.writeBuffer(o,0,s),A.queue.writeBuffer(n,0,I),e.setBindGroup(0,c),e.draw(i.length)}}(A,e),D=function(A,e){const t=A.createShaderModule({label:"3d model texture shader module",code:Q}),g=A.createRenderPipeline({label:"3d model texture pipline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:20,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(e,t,I,i,Q){const C=A.createSampler({magFilter:"linear",minFilter:"linear"}),B=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),r=new Float32Array(16),n=r.subarray(0,16),o=Q.length,s=A.createBuffer({label:"3d model texture vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(s,0,i);const a=A.createBuffer({label:"3d model texture index buffer",size:Q.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(a,0,Q);const E=A.createBindGroup({label:"3d model texture bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:B}},{binding:1,resource:C},{binding:2,resource:I.createView()}]});e.setPipeline(g),e.setVertexBuffer(0,s),e.setIndexBuffer(a,"uint32"),n.set(t),A.queue.writeBuffer(B,0,r),e.setBindGroup(0,E),e.drawIndexed(o)}}(A,e),h=function(A,e){const t=A.createShaderModule({label:"3d model shader module",code:C}),g=A.createRenderPipeline({label:"3d model pipline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(e,t,I,i){const Q=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),C=new Float32Array(16),B=C.subarray(0,16),r=i.length,n=A.createBuffer({label:"vertex buffer vertices",size:I.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(n,0,I);const o=A.createBuffer({label:"index buffer",size:i.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(o,0,i);const s=A.createBindGroup({label:"bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:Q}}]});e.setPipeline(g),e.setVertexBuffer(0,n),e.setIndexBuffer(o,"uint32"),B.set(t),A.queue.writeBuffer(Q,0,C),e.setBindGroup(0,s),e.drawIndexed(r)}}(A,e),y=function(A,e){const t=A.createShaderModule({label:"3d model light shader module",code:B}),g=A.createRenderPipeline({label:"3d model light pipline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:24,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x3"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(e,t,I,i){const{worldViewProjection:Q,normalMatrix:C,lightColor:B,lightDirection:r}=t,n=A.createBuffer({label:"uniforms",size:144,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),o=new Float32Array(36),s=o.subarray(0,12),a=o.subarray(12,28),E=o.subarray(28,32),c=o.subarray(32,35),u=A.createBindGroup({label:"bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:n}}]}),l=i.length,f=A.createBuffer({label:"vertex buffer vertices",size:I.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(f,0,I);const w=A.createBuffer({label:"index buffer",size:i.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(w,0,i),e.setPipeline(g),e.setVertexBuffer(0,f),e.setIndexBuffer(w,"uint32"),s.set(C),a.set(Q),E.set(B),c.set(r),A.queue.writeBuffer(n,0,o),e.setBindGroup(0,u),e.drawIndexed(l)}}(A,e),d=function(A){const e=A.createShaderModule({label:"blur shader module",code:r}),t=A.createComputePipeline({layout:"auto",compute:{module:e,entryPoint:"main"}});return function(e,g){const I=[0,1].map((()=>A.createTexture({size:{width:e.width,height:e.height},format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING}))),i=(()=>{const e=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(e.getMappedRange())[0]=0,e.unmap(),e})(),Q=(()=>{const e=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(e.getMappedRange())[0]=1,e.unmap(),e})(),C=A.createBuffer({size:8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM}),B=A.createSampler({magFilter:"linear",minFilter:"linear"}),r=A.createBindGroup({layout:t.getBindGroupLayout(0),entries:[{binding:0,resource:B},{binding:1,resource:{buffer:C}}]}),s=A.createBindGroup({layout:t.getBindGroupLayout(1),entries:[{binding:1,resource:e.createView()},{binding:2,resource:I[0].createView()},{binding:3,resource:{buffer:i}}]}),a=A.createBindGroup({layout:t.getBindGroupLayout(1),entries:[{binding:1,resource:I[0].createView()},{binding:2,resource:I[1].createView()},{binding:3,resource:{buffer:Q}}]}),E=A.createBindGroup({layout:t.getBindGroupLayout(1),entries:[{binding:1,resource:I[1].createView()},{binding:2,resource:I[0].createView()},{binding:3,resource:{buffer:i}}]}),c=n-14;A.queue.writeBuffer(C,0,new Uint32Array([15,c]));const u=g.beginComputePass();u.setPipeline(t),u.setBindGroup(0,r),u.setBindGroup(1,s),u.dispatchWorkgroups(Math.ceil(e.width/c),Math.ceil(e.height/o[1])),u.setBindGroup(1,a),u.dispatchWorkgroups(Math.ceil(e.height/c),Math.ceil(e.width/o[1]));for(let A=0;A<1;++A)u.setBindGroup(1,E),u.dispatchWorkgroups(Math.ceil(e.width/c),Math.ceil(e.height/o[1])),u.setBindGroup(1,a),u.dispatchWorkgroups(Math.ceil(e.height/c),Math.ceil(e.width/o[1]));return u.end(),I[1]}}(A),p=function(A,e){const t=A.createShaderModule({label:"texture module",code:s}),g=A.createSampler({minFilter:"linear",magFilter:"linear"}),I=A.createRenderPipeline({label:"texture pipeline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:4*a,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]}}),i=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),Q=new Float32Array(16),C=Q.subarray(0,16);return function(e,t,B,r){const n=B.length/a|0,o=A.createBuffer({label:"vertex buffer vertices",size:B.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(o,0,B);const s=A.createBindGroup({layout:I.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:i}},{binding:1,resource:g},{binding:2,resource:r.createView()}]});e.setPipeline(I),e.setVertexBuffer(0,o),C.set(t),A.queue.writeBuffer(i,0,Q),e.setBindGroup(0,s),e.draw(n)}}(A,e),S=function(A){const e=A.createShaderModule({label:"pick texture module",code:E}),t=A.createSampler({minFilter:"linear",magFilter:"linear"}),g=A.createRenderPipeline({label:"pick texture pipeline",layout:"auto",vertex:{module:e,entryPoint:"vs",buffers:[{arrayStride:4*c,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"},{shaderLocation:2,offset:24,format:"float32"}]}]},fragment:{module:e,entryPoint:"fs",targets:[{format:"r32uint"}]}}),I=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),Q=i.subarray(0,16);return function(e,C,B,r){const n=B.length/c|0,o=A.createBuffer({label:"pic texture vertex buffer vertices",size:B.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(o,0,B);const s=A.createBindGroup({layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:I}},{binding:1,resource:t},{binding:2,resource:r.createView()}]});e.setPipeline(g),e.setVertexBuffer(0,o),Q.set(C),A.queue.writeBuffer(I,0,i),e.setBindGroup(0,s),e.draw(n)}}(A),U=function(A){const e=A.createShaderModule({label:"pick triangle module",code:u}),t=A.createRenderPipeline({label:"pick triangle pipeline",layout:"auto",vertex:{module:e,entryPoint:"vs",buffers:[{arrayStride:4*l,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32"}]}]},fragment:{module:e,entryPoint:"fs",targets:[{format:"r32uint"}]}}),g=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),I=new Float32Array(16),i=I.subarray(0,16);return function(e,Q,C){const B=C.length/l|0,r=A.createBuffer({label:"pick triangle vertex buffer vertices",size:C.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(r,0,C);const n=A.createBindGroup({layout:t.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:g}}]});e.setPipeline(t),e.setVertexBuffer(0,r),i.set(Q),A.queue.writeBuffer(g,0,I),e.setBindGroup(0,n),e.draw(B)}}(A)}},4461:(A,e,t)=>{t.d(e,{A:()=>I});var g=t(2842);function I(A){return g.A.ortho(0,A.clientWidth,0,A.clientHeight,1,-1)}},4304:(A,e,t)=>{let g;function I(A,e){const t=A.getCurrentTexture();return function(A,e,t){g&&g.width===e&&g.height===t||(null==g||g.destroy(),g=A.createTexture({size:[e,t],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}))}(e,t.width,t.height),{label:"our render to canvas renderPass",colorAttachments:[{view:t.createView(),clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"}]}}t.d(e,{A:()=>I})},8156:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A:()=>E});var I=t(214),i=t(1911),Q=t(7076),C=t(2633),B=t(1549),r=t(3979),n=t(9200),o=t(4559),s=A([C,r,n]);[C,r,n]=s.then?(await s)():s;var a=function(A,e,t,g){return new(t||(t=Promise))((function(I,i){function Q(A){try{B(g.next(A))}catch(A){i(A)}}function C(A){try{B(g.throw(A))}catch(A){i(A)}}function B(A){var e;A.done?I(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(Q,C)}B((g=g.apply(A,e||[])).next())}))};function E(A,e,t){return a(this,void 0,void 0,(function*(){const g=yield(0,i.A)();(0,r.vH)(A.clientWidth,A.clientHeight);const s=A.getContext("webgpu");if(!s)throw Error("WebGPU from canvas needs to be always provided");const a=navigator.gpu.getPreferredCanvasFormat();s.configure({device:g,format:a}),(0,I.A)(A,g,(()=>{})),(0,Q.Ay)(g,a),(0,n.A)(A);const E=[];function c(e,t,I){if(e<r.xQ)throw Error(`ID should be unique and not smaller than ${r.xQ}.`);const i=E.length;E.push({url:t.src,texture:(0,B.Be)(g,t,{flipY:!0})}),(0,r.S2)(e,I||(0,o.A)(t,A),i)}return(0,C.Ay)(A,s,g,a,E),(0,r.qN)((A=>{const e=[...A].map((A=>({id:A.id,points:[...A.points].map((A=>({x:A.x,y:A.y,u:A.u,v:A.v}))),url:E[A.texture_id].url})));t(e)})),e.forEach((A=>{const e=new Image;e.src=A.url,e.onload=()=>{c(A.id,e,A.points)}})),{addImage:c,destroy:()=>{s.unconfigure(),g.destroy()}}}))}g()}catch(c){g(c)}}))},2633:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{Ay:()=>n});var I=t(4304),i=t(7076),Q=t(4461),C=t(2872),B=t(3979),r=A([C,B]);function n(A,e,t,g,r){const n=(0,Q.A)(A);let o;const s=new C.A(t);let a,E;(0,B.cn)({draw_texture:(A,e)=>(0,i._J)(o,n,A.typedArray,r[e].texture),draw_triangle:A=>(0,i.D4)(o,n,A.typedArray),pick_texture:(A,e)=>(0,i.Fh)(E,a,A.typedArray,r[e].texture),pick_triangle:A=>(0,i.Q3)(E,a,A.typedArray)}),requestAnimationFrame((function g(i){const Q=t.createCommandEncoder(),C=(0,I.A)(e,t);o=Q.beginRenderPass(C),(0,B.Gp)(),o.end(),a=s.createMatrix(A,n);const r=s.startPicking(Q);E=r.pass,(0,B.A4)(),r.end();const c=Q.finish();t.queue.submit([c]),s.asyncPick(),requestAnimationFrame(g)}))}[C,B]=r.then?(await r)():r,new Float32Array,g()}catch(o){g(o)}}))},4559:(A,e,t)=>{function g(A,e,t){return Math.min(t,Math.max(e,A))}function I(A,e){const t=function(A,e){if(e.height-A.height<e.width-A.width)return g(A.height,.2*e.height,.8*e.height)/A.height;return g(A.width,.2*e.width,.8*e.width)/A.width}(A,e),I=A.width*t,i=A.height*t,Q=.5*(e.width-I),C=.5*(e.height-i);return[{x:Q,y:C+i,u:0,v:1},{x:Q+I,y:C+i,u:1,v:1},{x:Q+I,y:C,u:1,v:0},{x:Q,y:C,u:0,v:0}]}t.d(e,{A:()=>I})},2842:(A,e,t)=>{t.d(e,{A:()=>i});const g={cross(A,e,t=new Float32Array(3)){const g=A[1]*e[2]-A[2]*e[1],I=A[2]*e[0]-A[0]*e[2],i=A[0]*e[1]-A[1]*e[0];return t[0]=g,t[1]=I,t[2]=i,t},subtract:(A,e,t=new Float32Array(3))=>(t[0]=A[0]-e[0],t[1]=A[1]-e[1],t[2]=A[2]-e[2],t),normalize(A,e=new Float32Array(3)){const t=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return t>1e-5?(e[0]=A[0]/t,e[1]=A[1]/t,e[2]=A[2]/t):(e[0]=0,e[1]=0,e[2]=0),e}},I={projection:(A,e,t,g)=>I.ortho(0,A,e,0,t,-t,g),perspective(A,e,t,g,I=new Float32Array(16)){const i=Math.tan(.5*Math.PI-.5*A),Q=1/(t-g);return I[0]=i/e,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=i,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[10]=g*Q,I[11]=-1,I[12]=0,I[13]=0,I[14]=t*g*Q,I[15]=0,I},ortho:(A,e,t,g,I,i,Q=new Float32Array(16))=>(Q[0]=2/(e-A),Q[1]=0,Q[2]=0,Q[3]=0,Q[4]=0,Q[5]=2/(g-t),Q[6]=0,Q[7]=0,Q[8]=0,Q[9]=0,Q[10]=1/(I-i),Q[11]=0,Q[12]=(e+A)/(A-e),Q[13]=(g+t)/(t-g),Q[14]=I/(I-i),Q[15]=1,Q),identity:(A=new Float32Array(16))=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),multiply(A,e,t=new Float32Array(16)){const g=e[0],I=e[1],i=e[2],Q=e[3],C=e[4],B=e[5],r=e[6],n=e[7],o=e[8],s=e[9],a=e[10],E=e[11],c=e[12],u=e[13],l=e[14],f=e[15],w=A[0],h=A[1],D=A[2],y=A[3],d=A[4],p=A[5],S=A[6],U=A[7],F=A[8],m=A[9],b=A[10],N=A[11],k=A[12],G=A[13],M=A[14],v=A[15];return t[0]=g*w+I*d+i*F+Q*k,t[1]=g*h+I*p+i*m+Q*G,t[2]=g*D+I*S+i*b+Q*M,t[3]=g*y+I*U+i*N+Q*v,t[4]=C*w+B*d+r*F+n*k,t[5]=C*h+B*p+r*m+n*G,t[6]=C*D+B*S+r*b+n*M,t[7]=C*y+B*U+r*N+n*v,t[8]=o*w+s*d+a*F+E*k,t[9]=o*h+s*p+a*m+E*G,t[10]=o*D+s*S+a*b+E*M,t[11]=o*y+s*U+a*N+E*v,t[12]=c*w+u*d+l*F+f*k,t[13]=c*h+u*p+l*m+f*G,t[14]=c*D+u*S+l*b+f*M,t[15]=c*y+u*U+l*N+f*v,t},cameraAim(A,e,t,I=new Float32Array(16)){const i=g.normalize(g.subtract(A,e)),Q=g.normalize(g.cross(t,i)),C=g.normalize(g.cross(i,Q));return I[0]=Q[0],I[1]=Q[1],I[2]=Q[2],I[3]=0,I[4]=C[0],I[5]=C[1],I[6]=C[2],I[7]=0,I[8]=i[0],I[9]=i[1],I[10]=i[2],I[11]=0,I[12]=A[0],I[13]=A[1],I[14]=A[2],I[15]=1,I},inverse(A,e=new Float32Array(16)){const t=A[0],g=A[1],I=A[2],i=A[3],Q=A[4],C=A[5],B=A[6],r=A[7],n=A[8],o=A[9],s=A[10],a=A[11],E=A[12],c=A[13],u=A[14],l=A[15],f=s*l,w=u*a,h=B*l,D=u*r,y=B*a,d=s*r,p=I*l,S=u*i,U=I*a,F=s*i,m=I*r,b=B*i,N=n*c,k=E*o,G=Q*c,M=E*C,v=Q*o,K=n*C,J=t*c,L=E*g,R=t*o,x=n*g,q=t*C,Y=Q*g,O=f*C+D*o+y*c-(w*C+h*o+d*c),H=w*g+p*o+F*c-(f*g+S*o+U*c),T=h*g+S*C+m*c-(D*g+p*C+b*c),V=d*g+U*C+b*o-(y*g+F*C+m*o),z=1/(t*O+Q*H+n*T+E*V);return e[0]=z*O,e[1]=z*H,e[2]=z*T,e[3]=z*V,e[4]=z*(w*Q+h*n+d*E-(f*Q+D*n+y*E)),e[5]=z*(f*t+S*n+U*E-(w*t+p*n+F*E)),e[6]=z*(D*t+p*Q+b*E-(h*t+S*Q+m*E)),e[7]=z*(y*t+F*Q+m*n-(d*t+U*Q+b*n)),e[8]=z*(N*r+M*a+v*l-(k*r+G*a+K*l)),e[9]=z*(k*i+J*a+x*l-(N*i+L*a+R*l)),e[10]=z*(G*i+L*r+q*l-(M*i+J*r+Y*l)),e[11]=z*(K*i+R*r+Y*a-(v*i+x*r+q*a)),e[12]=z*(G*s+K*u+k*B-(v*u+N*B+M*s)),e[13]=z*(R*u+N*I+L*s-(J*s+x*u+k*I)),e[14]=z*(J*B+Y*u+M*I-(q*u+G*I+L*B)),e[15]=z*(q*s+v*I+x*B-(R*B+Y*s+K*I)),e},transpose:(A,e=new Float32Array(16))=>(e[0]=A[0],e[1]=A[4],e[2]=A[8],e[3]=A[12],e[4]=A[1],e[5]=A[5],e[6]=A[9],e[7]=A[13],e[8]=A[2],e[9]=A[6],e[10]=A[10],e[11]=A[14],e[12]=A[3],e[13]=A[7],e[14]=A[11],e[15]=A[15],e),aim(A,e,t,I=new Float32Array(16)){const i=g.normalize(g.subtract(e,A)),Q=g.normalize(g.cross(t,i)),C=g.normalize(g.cross(i,Q));return I[0]=Q[0],I[1]=Q[1],I[2]=Q[2],I[3]=0,I[4]=C[0],I[5]=C[1],I[6]=C[2],I[7]=0,I[8]=i[0],I[9]=i[1],I[10]=i[2],I[11]=0,I[12]=A[0],I[13]=A[1],I[14]=A[2],I[15]=1,I},lookAt:(A,e,t,g)=>I.inverse(I.cameraAim(A,e,t,g),g),translation:([A,e,t],g=new Float32Array(16))=>(g[0]=1,g[1]=0,g[2]=0,g[3]=0,g[4]=0,g[5]=1,g[6]=0,g[7]=0,g[8]=0,g[9]=0,g[10]=1,g[11]=0,g[12]=A,g[13]=e,g[14]=t,g[15]=1,g),rotationX(A,e=new Float32Array(16)){const t=Math.cos(A),g=Math.sin(A);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t,e[6]=g,e[7]=0,e[8]=0,e[9]=-g,e[10]=t,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},rotationY(A,e=new Float32Array(16)){const t=Math.cos(A),g=Math.sin(A);return e[0]=t,e[1]=0,e[2]=-g,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=g,e[9]=0,e[10]=t,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},rotationZ(A,e=new Float32Array(16)){const t=Math.cos(A),g=Math.sin(A);return e[0]=t,e[1]=g,e[2]=0,e[3]=0,e[4]=-g,e[5]=t,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},scaling:([A,e,t],g=new Float32Array(16))=>(g[0]=A,g[1]=0,g[2]=0,g[3]=0,g[4]=0,g[5]=e,g[6]=0,g[7]=0,g[8]=0,g[9]=0,g[10]=t,g[11]=0,g[12]=0,g[13]=0,g[14]=0,g[15]=1,g),translate:(A,e,t)=>I.multiply(A,I.translation(e),t),rotateX:(A,e,t)=>I.multiply(A,I.rotationX(e),t),rotateY:(A,e,t)=>I.multiply(A,I.rotationY(e),t),rotateZ:(A,e,t)=>I.multiply(A,I.rotationZ(e),t),scale:(A,e,t)=>I.multiply(A,I.scaling(e),t)},i=I},3979:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A4:()=>Ue,Dk:()=>ye,Gp:()=>Se,OI:()=>De,S2:()=>we,_R:()=>de,cn:()=>ce,qN:()=>ue,vH:()=>fe,wU:()=>pe,xQ:()=>le});var I=t(4773);t(1285),t(4828),t(6973),t(2427),t(1669),t(6929),t(4936),t(8738),t(1432),t(1454),t(6402),t(9098),t(9494),t(7431),t(7591),t(6717),t(2164),t(6135),t(3793),t(8305),t(3456),t(8539),t(7679),t(2244),t(3509),t(9433),t(7382),t(1425),t(8773),t(3086),t(8771),t(8991),t(8502),t(9025),t(5558),t(4358),t(2436),t(7409),t(9268),t(5239);const A={constructor:null,type:0,flags:0,signature:void 0,name:void 0,byteSize:0,align:0,instance:{members:[],template:null},static:{members:[],template:null}},i={type:0,flags:0},Q={},C={},B={},r={},n={},o={},s={},a={},E={},c={},u={},l={},f={},w={},h={},D={},y={},d={},p={},S={},U={},F={},m={},b={},N={},k={},G={},M={},v={},K={},J={},L={},R={},x={},q={},Y={},O={},H={},T={},V={},z={},P={},j={},Z={},W={},X={},_={},$={},AA={},eA={},tA={},gA={},IA={},iA={},QA={},CA={},BA={},rA={},nA={},oA={},sA={},aA={},EA={},cA={},uA={},lA={},fA={},wA={},hA={},DA={},yA={},dA={},pA={},SA={},UA={},FA={},mA={},bA={},NA={},kA={},GA={},MA={},vA={},KA={},JA={},LA={},RA={},xA={},qA={},YA={},OA={},HA={},TA={},VA={},zA={},PA={},jA={},ZA={},WA={},XA={},_A={},$A={},Ae=A=>new Uint8Array(A),ee=Ae(0),te=Ae(16),ge=Ae(8),Ie=Ae(16),ie=Ae(72),Qe=Ae([232,3,0,0]),Ce=Object.assign;Ce(gA,{memory:{array:ee},handle:23}),Ce(IA,{memory:{array:ee},handle:24}),Ce(iA,{memory:{array:ee},handle:25}),Ce(QA,{memory:{array:ee},handle:26}),Ce(CA,{memory:{array:te},handle:262996,slots:{0:BA,1:nA,2:sA,3:aA}}),Ce(BA,{structure:a,memory:{array:te,offset:0,length:4},slots:{0:rA}}),Ce(rA,{structure:s,memory:{array:ee}}),Ce(nA,{structure:u,memory:{array:te,offset:4,length:4},slots:{0:oA}}),Ce(oA,{structure:c,memory:{array:ee}}),Ce(sA,{structure:a,memory:{array:te,offset:8,length:4},slots:{0:rA}}),Ce(aA,{structure:u,memory:{array:te,offset:12,length:4},slots:{0:oA}}),Ce(EA,{memory:{array:ee},handle:13}),Ce(cA,{memory:{array:ge}}),Ce(uA,{memory:{array:ee},handle:50}),Ce(lA,{memory:{array:ee},handle:51}),Ce(fA,{memory:{array:Ie}}),Ce(wA,{slots:{0:hA,1:DA,2:yA}}),Ce(hA,{structure:d,memory:{array:ee},handle:47}),Ce(DA,{structure:S,memory:{array:ee},handle:48}),Ce(yA,{structure:S,memory:{array:ee},handle:49}),Ce(dA,{memory:{array:ee},handle:84}),Ce(pA,{memory:{array:ee},handle:85}),Ce(SA,{memory:{array:ee},handle:86}),Ce(UA,{memory:{array:ie}}),Ce(FA,{slots:{0:mA,1:bA,2:NA,3:kA}}),Ce(mA,{structure:b,memory:{array:ee},handle:27}),Ce(bA,{structure:G,memory:{array:ee},handle:28}),Ce(NA,{structure:G,memory:{array:ee},handle:29}),Ce(kA,{structure:K,memory:{array:ee},handle:30}),Ce(GA,{memory:{array:ee},handle:14}),Ce(MA,{memory:{array:ee},handle:15}),Ce(vA,{memory:{array:ee},handle:16}),Ce(KA,{memory:{array:ee},handle:17}),Ce(JA,{memory:{array:ee},handle:18}),Ce(LA,{memory:{array:ee},handle:19}),Ce(RA,{memory:{array:ee},handle:20}),Ce(xA,{memory:{array:ee},handle:21}),Ce(qA,{memory:{array:ee},handle:22}),Ce(YA,{slots:{0:OA,1:HA,2:TA,3:VA,4:zA,5:PA,6:jA,7:ZA,8:WA,9:XA,10:_A,11:$A}}),Ce(OA,{structure:h,memory:{array:ee},handle:2}),Ce(HA,{structure:H,memory:{array:ee},handle:3}),Ce(TA,{structure:n,memory:{array:Qe},const:!0}),Ce(VA,{structure:V,memory:{array:ee},handle:4}),Ce(zA,{structure:P,memory:{array:ee},handle:5}),Ce(PA,{structure:Z,memory:{array:ee},handle:6}),Ce(jA,{structure:X,memory:{array:ee},handle:7}),Ce(ZA,{structure:$,memory:{array:ee},handle:8}),Ce(WA,{structure:eA,memory:{array:ee},handle:9}),Ce(XA,{structure:$,memory:{array:ee},handle:10}),Ce(_A,{structure:eA,memory:{array:ee},handle:11}),Ce($A,{structure:eA,memory:{array:ee},handle:12}),Ce(Q,{...A,flags:1,signature:0xa310b7d01f11b8can,name:"void",align:1,instance:{members:[{...i,bitOffset:0,bitSize:0,byteSize:0,structure:Q}]}}),Ce(C,{...A,flags:1,signature:0x61e77abe97c52d51n,name:"f32",byteSize:4,align:4,instance:{members:[{...i,type:4,bitOffset:0,bitSize:32,byteSize:4,structure:C}]}}),Ce(B,{...A,type:9,flags:64,signature:0x9212e6749825a514n,name:"[_]f32",byteSize:4,align:4,instance:{members:[{...i,type:4,bitSize:32,byteSize:4,structure:C}]}}),Ce(r,{...A,type:8,flags:188,signature:0xfc4e3831fa228a2en,name:"[]const f32",byteSize:8,align:4,instance:{members:[{...i,type:5,bitSize:64,byteSize:8,slot:0,structure:B}]}}),Ce(n,{...A,flags:1,signature:0x68598db431a811a3n,name:"u32",byteSize:4,align:4,instance:{members:[{...i,type:3,bitOffset:0,bitSize:32,byteSize:4,structure:n}]}}),Ce(o,{...A,type:12,flags:14,signature:0x09675e7a1ffd5485n,name:"Arg(fn ([]const f32, u32) void)",length:2,byteSize:12,align:4,instance:{members:[{...i,flags:1,bitOffset:96,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:1,name:"0",structure:r},{...i,type:3,flags:1,bitOffset:64,bitSize:32,byteSize:4,slot:2,name:"1",structure:n}]}}),Ce(s,{...A,type:14,signature:0xe1a5d27f9960e020n,name:"fn ([]const f32, u32) void",length:2,instance:{members:[{...i,type:5,bitSize:96,byteSize:12,structure:o}],template:gA},static:{members:[],template:IA}}),Ce(a,{...A,type:8,flags:204,signature:0x4d3813c518971895n,name:"*const fn ([]const f32, u32) void",byteSize:4,align:4,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,slot:0,structure:s}]}}),Ce(E,{...A,type:12,flags:14,signature:0x0292a02ab8f8020cn,name:"Arg(fn ([]const f32) void)",length:1,byteSize:8,align:4,instance:{members:[{...i,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:1,name:"0",structure:r}]}}),Ce(c,{...A,type:14,signature:0x47389ea7e1d3d337n,name:"fn ([]const f32) void",length:1,instance:{members:[{...i,type:5,bitSize:64,byteSize:8,structure:E}],template:iA},static:{members:[],template:QA}}),Ce(u,{...A,type:8,flags:204,signature:0x4224bff88f0203f5n,name:"*const fn ([]const f32) void",byteSize:4,align:4,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,slot:0,structure:c}]}}),Ce(l,{...A,type:2,flags:14,signature:0xa163853d6eea84ffn,name:"WebGpuPrograms",byteSize:16,align:4,instance:{members:[{...i,type:5,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"draw_texture",structure:a},{...i,type:5,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:1,name:"draw_triangle",structure:u},{...i,type:5,flags:1,bitOffset:64,bitSize:32,byteSize:4,slot:2,name:"pick_texture",structure:a},{...i,type:5,flags:1,bitOffset:96,bitSize:32,byteSize:4,slot:3,name:"pick_triangle",structure:u}],template:CA}}),Ce(f,{...A,type:8,flags:204,signature:0xf88af90d134a19c1n,name:"*const WebGpuPrograms",byteSize:4,align:4,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,slot:0,structure:l}]}}),Ce(w,{...A,type:12,flags:14,signature:0xa86f8c1238de4df5n,name:"Arg(fn (*const WebGpuPrograms) void)",length:1,byteSize:4,align:4,instance:{members:[{...i,flags:1,bitOffset:32,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:5,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:f}]}}),Ce(h,{...A,type:14,signature:0xc28f54a51c95c6f5n,name:"fn (*const WebGpuPrograms) void",length:1,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,structure:w}],template:EA}}),Ce(D,{...A,type:2,signature:0x3c18d236acd7668dn,name:"Point",byteSize:8,align:4,instance:{members:[{...i,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"x",structure:C},{...i,type:4,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:1,name:"y",structure:C}],template:cA}}),Ce(y,{...A,type:12,flags:10,signature:0xd1d7035b6147a5d4n,name:"Arg(fn (PointUV, PointUV) Point)",length:2,byteSize:40,align:4,instance:{members:[{...i,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:0,name:"retval",structure:D},{...i,type:5,flags:1,bitOffset:64,bitSize:128,byteSize:16,slot:1,name:"0",structure:U},{...i,type:5,flags:1,bitOffset:192,bitSize:128,byteSize:16,slot:2,name:"1",structure:U}]}}),Ce(d,{...A,type:14,signature:0xbb0f8218864060e9n,name:"fn (PointUV, PointUV) Point",length:2,instance:{members:[{...i,type:5,bitSize:320,byteSize:40,structure:y}],template:uA}}),Ce(p,{...A,type:12,flags:10,signature:0x0fa3968ee7482ac2n,name:"Arg(fn (PointUV, PointUV) f32)",length:2,byteSize:36,align:4,instance:{members:[{...i,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"retval",structure:C},{...i,type:5,flags:1,bitOffset:32,bitSize:128,byteSize:16,slot:1,name:"0",structure:U},{...i,type:5,flags:1,bitOffset:160,bitSize:128,byteSize:16,slot:2,name:"1",structure:U}]}}),Ce(S,{...A,type:14,signature:0x3170ee9a1e36ef3an,name:"fn (PointUV, PointUV) f32",length:2,instance:{members:[{...i,type:5,bitSize:288,byteSize:36,structure:p}],template:lA}}),Ce(U,{...A,type:2,signature:0x9d77c3c6a1a73d02n,name:"PointUV",byteSize:16,align:4,instance:{members:[{...i,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"x",structure:C},{...i,type:4,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:1,name:"y",structure:C},{...i,type:4,flags:1,bitOffset:64,bitSize:32,byteSize:4,slot:2,name:"u",structure:C},{...i,type:4,flags:1,bitOffset:96,bitSize:32,byteSize:4,slot:3,name:"v",structure:C}],template:fA},static:{members:[{...i,type:5,flags:18,slot:0,name:"mid",structure:d},{...i,type:5,flags:18,slot:1,name:"angle_to",structure:S},{...i,type:5,flags:18,slot:2,name:"distance",structure:S}],template:wA}}),Ce(F,{...A,type:1,flags:10,signature:0x4aba6e79b2a51d1dn,name:"[4]PointUV",length:4,byteSize:64,align:4,instance:{members:[{...i,type:5,bitSize:128,byteSize:16,structure:U}]}}),Ce(m,{...A,type:12,flags:10,signature:0x57c9581a899ad624n,name:"Arg(fn (u32, [4]PointUV, u32) Texture)",length:3,byteSize:144,align:4,instance:{members:[{...i,type:5,flags:1,bitOffset:0,bitSize:576,byteSize:72,slot:0,name:"retval",structure:J},{...i,type:3,flags:1,bitOffset:576,bitSize:32,byteSize:4,slot:1,name:"0",structure:n},{...i,type:5,flags:1,bitOffset:608,bitSize:512,byteSize:64,slot:2,name:"1",structure:F},{...i,type:3,flags:1,bitOffset:1120,bitSize:32,byteSize:4,slot:3,name:"2",structure:n}]}}),Ce(b,{...A,type:14,signature:0xfad4a70470a34855n,name:"fn (u32, [4]PointUV, u32) Texture",length:3,instance:{members:[{...i,type:5,bitSize:1152,byteSize:144,structure:m}],template:dA}}),Ce(N,{...A,type:8,flags:60,signature:0xc4413fb7ad8d9c6fn,name:"[]f32",byteSize:8,align:4,instance:{members:[{...i,type:5,bitSize:64,byteSize:8,slot:0,structure:B}]}}),Ce(k,{...A,type:12,flags:14,signature:0xfa8b72f4438c1513n,name:"Arg(fn (Texture) []f32)",length:1,byteSize:80,align:4,instance:{members:[{...i,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:0,name:"retval",structure:N},{...i,type:5,flags:1,bitOffset:64,bitSize:576,byteSize:72,slot:1,name:"0",structure:J}]}}),Ce(G,{...A,type:14,signature:0xf3cba25ba45ffed9n,name:"fn (Texture) []f32",length:1,instance:{members:[{...i,type:5,bitSize:640,byteSize:80,structure:k}],template:pA}}),Ce(M,{...A,type:8,flags:76,signature:0x908da3a79ec3b9ccn,name:"*Texture",byteSize:4,align:4,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,slot:0,structure:J}]}}),Ce(v,{...A,type:12,flags:14,signature:0xc431fdde546cb219n,name:"Arg(fn (*Texture, [4]PointUV) void)",length:2,byteSize:68,align:4,instance:{members:[{...i,flags:1,bitOffset:544,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:5,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:M},{...i,type:5,flags:1,bitOffset:32,bitSize:512,byteSize:64,slot:2,name:"1",structure:F}]}}),Ce(K,{...A,type:14,signature:0xe6f25a5a02bbfac5n,name:"fn (*Texture, [4]PointUV) void",length:2,instance:{members:[{...i,type:5,bitSize:544,byteSize:68,structure:v}],template:SA}}),Ce(J,{...A,type:2,flags:10,signature:0x7896fe275d634ffan,name:"Texture",byteSize:72,align:4,instance:{members:[{...i,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"id",structure:n},{...i,type:5,flags:1,bitOffset:32,bitSize:512,byteSize:64,slot:1,name:"points",structure:F},{...i,type:3,flags:1,bitOffset:544,bitSize:32,byteSize:4,slot:2,name:"texture_id",structure:n}],template:UA},static:{members:[{...i,type:5,flags:2,slot:0,name:"new",structure:b},{...i,type:5,flags:18,slot:1,name:"get_vertex_data",structure:G},{...i,type:5,flags:18,slot:2,name:"get_vertex_pick_data",structure:G},{...i,type:5,flags:18,slot:3,name:"update_coords",structure:K}],template:FA}}),Ce(L,{...A,type:9,flags:10,signature:0xf0f83db4f08bf602n,name:"[_]Texture",byteSize:72,align:4,instance:{members:[{...i,type:5,bitSize:576,byteSize:72,structure:J}]}}),Ce(R,{...A,type:8,flags:60,signature:0x9a7e03a6fec19ce6n,name:"[]Texture",byteSize:8,align:4,instance:{members:[{...i,type:5,bitSize:64,byteSize:8,slot:0,structure:L}]}}),Ce(x,{...A,type:12,flags:14,signature:0xd04d0539c6157010n,name:"Arg(fn ([]Texture) void)",length:1,byteSize:8,align:4,instance:{members:[{...i,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:1,name:"0",structure:R}]}}),Ce(q,{...A,type:14,signature:0x762837649a7e4ec8n,name:"fn ([]Texture) void",length:1,instance:{members:[{...i,type:5,bitSize:64,byteSize:8,structure:x}],template:GA},static:{members:[],template:MA}}),Ce(Y,{...A,type:8,flags:204,signature:0xe33b943c94b3254dn,name:"*const fn ([]Texture) void",byteSize:4,align:4,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,slot:0,structure:q}]}}),Ce(O,{...A,type:12,flags:14,signature:0x30561d34be1b5dbdn,name:"Arg(fn (*const fn ([]Texture) void) void)",length:1,byteSize:4,align:4,instance:{members:[{...i,flags:1,bitOffset:32,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:5,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:Y}]}}),Ce(H,{...A,type:14,signature:0x526fdea9d60a7026n,name:"fn (*const fn ([]Texture) void) void",length:1,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,structure:O}],template:vA}}),Ce(T,{...A,type:12,signature:0x3f075bf644453a95n,name:"Arg(fn (u32, u32) void)",length:2,byteSize:8,align:4,instance:{members:[{...i,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:n},{...i,type:3,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:2,name:"1",structure:n}]}}),Ce(V,{...A,type:14,signature:0x4c7e047aa4ecbc8an,name:"fn (u32, u32) void",length:2,instance:{members:[{...i,type:5,bitSize:64,byteSize:8,structure:T}],template:KA}}),Ce(z,{...A,type:12,flags:10,signature:0x9d8f5b87c05655fbn,name:"Arg(fn (u32, [4]PointUV, u32) void)",length:3,byteSize:72,align:4,instance:{members:[{...i,flags:1,bitOffset:576,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:n},{...i,type:5,flags:1,bitOffset:32,bitSize:512,byteSize:64,slot:2,name:"1",structure:F},{...i,type:3,flags:1,bitOffset:544,bitSize:32,byteSize:4,slot:3,name:"2",structure:n}]}}),Ce(P,{...A,type:14,signature:0x92d326bf03506c95n,name:"fn (u32, [4]PointUV, u32) void",length:3,instance:{members:[{...i,type:5,bitSize:576,byteSize:72,structure:z}],template:JA}}),Ce(j,{...A,type:12,flags:10,signature:0xebd988516fdd5651n,name:"Arg(fn (u32, [4]PointUV) void)",length:2,byteSize:68,align:4,instance:{members:[{...i,flags:1,bitOffset:544,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:n},{...i,type:5,flags:1,bitOffset:32,bitSize:512,byteSize:64,slot:2,name:"1",structure:F}]}}),Ce(Z,{...A,type:14,signature:0xb6b0d32aa9cdf62cn,name:"fn (u32, [4]PointUV) void",length:2,instance:{members:[{...i,type:5,bitSize:544,byteSize:68,structure:j}],template:LA}}),Ce(W,{...A,type:12,signature:0x6364608841bf263en,name:"Arg(fn (u32) void)",length:1,byteSize:4,align:4,instance:{members:[{...i,flags:1,bitOffset:32,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:n}]}}),Ce(X,{...A,type:14,signature:0x956e45a1c96ff5e6n,name:"fn (u32) void",length:1,instance:{members:[{...i,type:5,bitSize:32,byteSize:4,structure:W}],template:RA}}),Ce(_,{...A,type:12,signature:0xb1afac27f34003f4n,name:"Arg(fn (f32, f32) void)",length:2,byteSize:8,align:4,instance:{members:[{...i,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q},{...i,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:C},{...i,type:4,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:2,name:"1",structure:C}]}}),Ce($,{...A,type:14,signature:0x63bac1760494db20n,name:"fn (f32, f32) void",length:2,instance:{members:[{...i,type:5,bitSize:64,byteSize:8,structure:_}],template:xA}}),Ce(AA,{...A,type:12,signature:0xfa22378c989ae19dn,name:"Arg(fn () void)",length:0,align:1,instance:{members:[{...i,flags:1,bitOffset:0,bitSize:0,byteSize:0,slot:0,name:"retval",structure:Q}]}}),Ce(eA,{...A,type:14,signature:0xe3c3b022a28cd076n,name:"fn () void",length:0,instance:{members:[{...i,type:5,bitSize:0,byteSize:0,structure:AA}],template:qA}}),Ce(tA,{...A,type:2,flags:4096,signature:0x239ab4f327f6ac1bn,name:"index",align:1,static:{members:[{...i,type:5,flags:2,slot:0,name:"connectWebGPUPrograms",structure:h},{...i,type:5,flags:2,slot:1,name:"connectOnAssetUpdateCallback",structure:H},{...i,type:5,flags:2,slot:2,name:"ASSET_ID_TRESHOLD",structure:n},{...i,type:5,flags:2,slot:3,name:"init_state",structure:V},{...i,type:5,flags:2,slot:4,name:"add_texture",structure:P},{...i,type:5,flags:2,slot:5,name:"update_points",structure:Z},{...i,type:5,flags:2,slot:6,name:"on_update_pick",structure:X},{...i,type:5,flags:2,slot:7,name:"on_pointer_down",structure:$},{...i,type:5,flags:2,slot:8,name:"on_pointer_up",structure:eA},{...i,type:5,flags:2,slot:9,name:"on_pointer_move",structure:$},{...i,type:5,flags:2,slot:10,name:"canvas_render",structure:eA},{...i,type:5,flags:2,slot:11,name:"picks_render",structure:eA}],template:YA}});const Be=[Q,C,B,r,n,o,s,a,E,c,u,l,f,w,h,D,y,d,p,S,U,F,m,b,N,k,G,M,v,K,J,L,R,x,q,Y,O,H,T,V,z,P,j,Z,W,X,_,$,AA,eA,tA],re=tA,ne={runtimeSafety:!1,littleEndian:!0,libc:!1},oe=(0,I.M)();oe.recreateStructures(Be,ne);const se=(async()=>{const A=atob("AGFzbQEAAAABmgEYYAR/f39/AX9gAn9/AGADf39/AGAFf39/f38AYAZ/f39/f38Bf2ABfwBgAn19AGAAAGACf38BfWAEf39/fwBgAn9/AX9gAX8Bf2AAAX9gBH9/fn8AYAN/f38Bf2ACfX0BfWABfQF9YAV/f399fwBgBX9/f39/AX9gBX9+fn5+AGACfH8BfGACfX8Bf2ADfHx8AXxgA3x8fwF8AskDFgNlbnYGbWVtb3J5AgAFA2VudhlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAXAAXwNlbnYJX3JlYWRTbG90AAoDZW52Cl93cml0ZVNsb3QAAgNlbnYQX2RlZmluZVN0cnVjdHVyZQALA2VudglfY2FzdFZpZXcAAANlbnYPX2NyZWF0ZVRlbXBsYXRlAAsDZW52D19hdHRhY2hUZW1wbGF0ZQACA2Vudg1fZW5kU3RydWN0dXJlAAUDZW52EF9iZWdpbkRlZmluaXRpb24ADANlbnYOX2NhcHR1cmVTdHJpbmcACgNlbnYNX2luc2VydFN0cmluZwACA2Vudg5faW5zZXJ0SW50ZWdlcgAJA2VudhFfaW5zZXJ0QmlnSW50ZWdlcgANA2Vudg9fYmVnaW5TdHJ1Y3R1cmUACwNlbnYNX2luc2VydE9iamVjdAACA2Vudg1fYXR0YWNoTWVtYmVyAAIDZW52DF9jYXB0dXJlVmlldwAOA2Vudg1faGFuZGxlSnNDYWxsAAADZW52DV9kaXNwbGF5UGFuaWMAAQNlbnYQX2FsbG9jYXRlSnNUaHVuawAKA2VudgxfZnJlZUpzVGh1bmsACgOaAZgBBwwKAQUOBQUFBQUBBQIFAQUFBQYFBwYHBwIIDxAICQEBAQsBDgIRBQUFCgUKCQoKBQoKCgUKCgUFBQUKCQoJAQEBAQEBAQEBAQEBAQEBAQoKAgICAgICAgICAgICAgICAgIBAQEBAQEBAQEBAQEBAQEBAQUJAgUFBQEKCgoBBwoABAQDAg4SCgoHDAAEBAMTFBAVEhYXDxAGCAF/AUGAgBALB7gBCg9nZXRGYWN0b3J5VGh1bmsAFQppbml0aWFsaXplAJIBFWFsbG9jYXRlU2NyYXRjaE1lbW9yeQCTARFmcmVlU2NyYXRjaE1lbW9yeQCYAQhydW5UaHVuawCZARBydW5WYXJpYWRpY1Ro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AiICDQBB7IQQIQIMAQsgASACNgL4AiABQQA7AfwCIAFB+AJqIQILIAIvAQQiAg0BIAQQBgsgASAENgJ8IAFCADcCdCABQsiAgIAQNwJsIAFCwISAgBA3AmQgAUIANwJcIAFCBTcCVCABQgA3AkwgAyABQcwAakEAEBkiAkH//wNxDQACQEESQQBBABAPIgINACAAQQw7AQQMBAsgAhAEIgINAUEVIQILIAAgAjsBBAwCCyADIAJBABAFAkACQCADEAIiAg0AQeyEECECDAELIAEgAjYC+AIgAUEAOwH8AiABQfgCaiECCwJAIAIvAQQiAkUNACAAIAI7AQQMAgsgAxAGIAEgAzYCQCABQQA7AUQgAUHAAGohAgsgACACKQMANwIACyABQbADaiQAC9MJAwJ/AX4JfyMAQZABayIDJAAgA0HIAGpBOGogAUE4aikCADcDACADQcgAakEwaiABQTBqKQIANwMAIANByABqQShqIAFBKGopAgA3AwAgA0HIAGpBIGogAUEgaikCADcDACADQcgAakEYaiABQRhqKQIANwMAIANByABqQRBqIAFBEGopAgA3AwAgA0HIAGpBCGogAUEIaikCADcDACADIAEpAgA3A0gCQAJAAkACQEEAKAL4nxANAEEBIQECQEEAKALwnxAiBEUNACAEQXxqKAIArULQAH4iBSAFQuQAgn1C5AB8QtAAgKchAQtCAUEgIAFna61C//8Dg4anEDZB//8DcQ0BCyADQRhqIACtQoGAgIAQfiIFQtvR0IWa2t+BZ4VCACAFQqya4tOj0vD6H4VCABCjASADQQhqIANBGGpBCGopAwBC29HQhZra34FnhUIAIAMpAxhCq8j1xcesh7ugf4VCABCjASADQQhqQQhqKQMAIAMpAwiFIQUCQAJAQQAoAvCfECIGDQAgBachBEEAIQdBfyEIDAELIAZBfGooAgAiB0F/aiIIIAWncSEECyAFQjmIpyEJAkACQCAGIARqIgotAAAiAUUNACAHRQ0AIAdBf2ohCyAGQXhqIQwgBkF8aiENA0AgCyEOAkACQAJAIAHAQX9KDQAgCSABQf8AcUcNACAMKAIAIARBAnRqIgsoAgAgAEYNAQwCCyAHIA0oAgBHDQEgBCAHIAFB/wFxQQFGGyEHDAELIANBAToAjAEgBkF0aigCACAEQcgAbGohASAD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EBkiBEH//wNxDQACQEEWQQBBABAPIgMNACAAQQw7AQQMBAsgAxAEIgMNAUEVIQQLIAAgBDsBBAwCCyACIANBABAFAkACQCACEAIiAw0AQeyEECEDDAELIAEgAzYCyAEgAUEAOwHMASABQcgBaiEDCwJAIAMvAQQiA0UNACAAIAM7AQQMAgsgAhAGIAEgAjYCSCABQQA7AUwgAUHIAGohAgsgACACKQMANwIACyABQYACaiQAC7gCAwR/AX4GfyMAQRBrIgAkAAJAQQAtAJSgEEEDcUEBRw0AQQBBACgChKAQNgKIoBALQQBBAToAlKAQAkACQEEAKAL0nxAiAa1CyAB+pyICDQBBfCEDDAELQQApA5iJECIEpyACQQJBACAEQiCIpygCABEAACEDCwJAQQAoAvCfECIFRQ0AQQAoAvSfEEUNACAFQXxqIgYoAgAiB0UNACAFQXRqIQhBACECQQAhCQNAIAJByABsIQoCQANAIAUgAmosAABBAEgNASAKQcgAaiEKIAcgAkEBaiICRw0ADAMLCyADIAlByABsaiAIKAIAIApqQcgA/AoAACAJQQFqIQkgBigCACIHQX9qIAJHIQogAkEBaiECIAoNAAsLAkAgAUUNACADIAFBACgCtKAQEQEACyAAQRBqJAALuREHAn8CfQF/AX4IfxJ9AnwjAEHAAGsiAiQAQQAhAwJAAkACQEEALQCUoBBBA3EOAwACAQALQQAqApCgECEEQQAgATgCkKAQQQAqAoygECEFQQAgADgCjKAQIAJBEGpBACgCiKAQIgatQoGAgIAQfiIHQtvR0IWa2t+BZ4VCACAHQqya4tOj0vD6H4VCABCjASACIAJBEGpBCGopAwBC29HQhZra34FnhUIAIAIpAxBCq8j1xcesh7ugf4VCABCjASACQQhqKQMAIAIpAwCFIQdBfyEIAkBBACgC8J8QIglFDQAgCUF8aigCAEF/aiEICyABIASTIQQgACAFkyEFIAdCOYinIQogCSAIIAencSILai0AACEDIAlBeGooAgAhDANAAkAgA8BBf0oNACAKIANB/wBxRw0AIAwgC0ECdGooAgAgBkcNACAJQXRqKAIAIAtByABsaiIDIAQgAyoCOJI4AjggAyAFIAMqAjSSOAI0IAMgBCADKgIokjgCKCADIAUgAyoCJJI4AiQgAyAEIAMqAhiSOAIYIAMgBSADKgIUkjgCFCADIAQgAyoCCJI4AgggAyAFIAMqAgSSOAIEDAMLIAkgC0EBaiAIcSILai0AACEDDAALCwJAQQAoAvSfEEUNAEEAKALwnxAhBiACQTBqQQAoAoigECINrUKBgICAEH4iB0Lb0dCFmtrfgWeFQgAgB0KsmuLTo9Lw+h+FQgAQowEgAkEgaiACQTBqQQhqKQMAQtvR0IWa2t+BZ4VCACACKQMwQqvI9cXHrIe7oH+FQgAQowEgAkEgakEIaikDACACKQMghSEHQQAhAwJAAkAgBg0AQX8hDEEAIQsMAQsgBkF8aigCACILQX9qIQwLIAYgDCAHp3EiCGotAAAiCUUNACALRQ0AIAdCOYinIQ4gC0F/aiEKIAZBeGohDwNAIAohCwJAIAnAQX9KDQAgDiAJQf8AcUcNACAPKAIAIAhBAnRqKAIAIA1HDQAgBkF0aigCACAIQcgAbGohAwwCCyAGIAhBAWogDHEiCGotAAAiCUUNASALQX9qIQogCw0ACwtBACgChKAQIQsgAyoCGCADKgIIkyADKgIUIAMqAgSTEC8iEBCrASEEQwAAAAAhEUMAAAAAIQVDAAAAACESQwAAAAAhE0MAAAAAIRQCQCAQEKUBIhUgFZQgBCAElJIgBEMAAAAAlCIWIBVDAAAAAJQiF5NDAAAAAJSSIhiLQ703hjVdDQBDAACAPyAYlSIFIBcgFpOMlCERIARDAAAAgJQgF5MgBZQhEyAFIASMlCESIAQgBZQhFCAVIAWUIQULIBEgEiADKgIUIheUIAUgAyoCGCIWlJKSIRkgEyAFIBeUIBQgFpSSkiEXIBEgEiADKgIEIhqUIAUgAyoCCCIblJKSIRwgEyAFIBqUIBQgG5SSkiEdIBEgEiADKgI0IhiUIAUgA0E4aiIJKgIAIh6UkpIhFiATIAUgGJQgFCAelJKSIR8gESASIAMqAiQiIJQgBSADQShqIggqAgAiIZSSkiEYIBMgBSAglCAUICGUkpIhHiATIAUgAJQgFCABlJKSIhMhFCARIAUgAZQgEiAAlJKSIgUhEQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAtBf2oOCQwAAQIDBQcICgwLIB8hFCATIR4gEyEXDAMLIAUhFiAfIRQgBSEYDAQLIAUhFiATIRQgBSEYDAYLIB8hFAsgBSERIB0hEwwHCyAfIRQLIBMhHiAZIQUgEyEXDAQLIAUhFiAfIRQgBSEYIBkhBQwDCyATIRQLIBkhBSAcIREMAgsgASAbICGSQwAAAD+UIgWTIAAgGiAgkkMAAAA/lCIEkxAvQ9sPyT+SIRUgAyoCCCAFkyADKgIEIASTEC8gEJMhEkMAAIB/IQBDAACAfyEBAkAgAyoCBCAEkyIRi0MAAIB/Ww0AQwAAgH8hASADKgIIIAWTIhOLQwAAgH9bDQBDAADAfyEBIBEgEVwNACATIBNcDQAgEbsiIiAiIBO7IiMgI6IQqAGftiEBCyADIAUgFSASkiIREKsBIAGUkjgCCCADIAQgERClASABlJI4AgQgAyoCGCAFkyADKgIUIASTEC8gEJMhEQJAIAMqAhQgBJMiAYtDAACAf1sNACADKgIYIAWTIhKLQwAAgH9bDQBDAADAfyEAIAEgAVwNACASIBJcDQAgAbsiIiAiIBK7IiMgI6IQqAGftiEACyADIAUgFSARkiIBEKsBIACUkjgCGCADIAQgARClASAAlJI4AhQgA0EoaiILKgIAIAWTIAMqAiQgBJMQLyAQkyESQwAAgH8hAEMAAIB/IQECQCADKgIkIASTIhGLQwAAgH9bDQBDAACAfyEBIAsqAgAgBZMiE4tDAACAf1sNAEMAAMB/IQEgESARXA0AIBMgE1wNACARuyIiICIgE7siIyAjohCoAZ+2IQELIAsgBSAVIBKSIhEQqwEgAZSSOAIAIAMgBCAREKUBIAGUkjgCJCADQThqIgsqAgAgBZMgAyoCNCAEkxAvIBCTIRECQCADKgI0IASTIgGLQwAAgH9bDQAgCyoCACAFkyISi0MAAIB/Ww0AQwAAwH8hACABIAFcDQAgEiASXA0AIAG7IiIgIiASuyIjICOiEKgBn7YhAAsgCyAFIBUgEZIiFRCrASAAlJI4AgAgAyAEIBUQpQEgAJSSOAI0DAILIBwhESAdIRMLIAkgFSAWlCAEIBSUkkMAAAAAkjgCACADIBUgFJQgBCAWlJNDAAAAAJI4AjQgCCAVIBiUIAQgHpSSQwAAAACSOAIAIAMgFSAelCAEIBiUk0MAAAAAkjgCJCADIBUgBZQgBCAXlJJDAAAAAJI4AhggAyAVIBeUIAQgBZSTQwAAAACSOAIUIAMgFSARlCAEIBOUkkMAAAAAkjgCCCADIBUgE5QgBCARlJNDAAAAAJI4AgQLIAJBwABqJAAL0hMFAn8Bfgh/Cn0BfiMAQZAuayIAJAACQEEAKALwnxAiAUUNAEEAKQOYiRAiAkIgiKchAyACpyEEQQAhBQNAQQAoAvSfEEUNASAFIAFBfGooAgAiBkYNASAFQcgAbCEHAkADQCABIAVqLAAAQQBIDQEgB0HIAGohByAGIAVBAWoiBUcNAAwDCwsgAUF0aigCACEGIARBkAFBAkEAIAMoAgARAAAhASAGIAdqIgdBBGoiBikCACECIAFBEGogB0EMaiIIKQIANwIAIAEgAjcCACABQQhqQoCAgICAgIDAPzcCACAHQRRqKQIAIQIgAUEoaiAHQRxqKQIANwIAIAEgAjcCGCABQSBqQoCAgICAgIDAPzcCACAHQSRqIgkpAgAhAiABQcAAaiAHQSxqIgopAgA3AgAgASACNwIwIAFBOGpCgICAgICAgMA/NwIAIAkpAgAhAiABQdgAaiAKKQIANwIAIAEgAjcCSCABQdAAakKAgICAgICAwD83AgAgB0E0aikCACECIAFB8ABqIAdBPGopAgA3AgAgASACNwJgIAFB6ABqQoCAgICAgIDAPzcCACAGKQIAIQIgAUGIAWogCCkCADcCACABIAI3AnggAUGAAWpCgICAgICAgMA/NwIAIAFBJCAHQcQAaigCAEEAKAKwoBAoAgARAgAgBUEBaiEFQQAoAvCfECIBDQALCyAAQqrVqtUKNwIQIABBADYCGCAAQQApA5iJEDcCHAJAQQAoAoSgECIFQQAoAoigEEYNACAAQSRqIAUQNyAALQBsRQ0AIABB8ABqIABBJGpByAD8CgAAIABB8AFqIABB4ABqKQIANwMAIABBuAFqQTBqIABB2ABqKQIANwMAIABB4AFqIABB0ABqKQIANwMAIABB2AFqIABByABqKQIANwMAIABBuAFqQRhqIABBwABqKQIANwMAIABBuAFqQRBqIABBJGpBFGopAgA3AwAgAEG4AWpBCGogAEEwaikCADcDACAAIAApAig3A7gBIABB8ABqQQhqIQQgAEHwAGpBBGohCEEAIQUDQCAEIABB8ABqIAVqIgdBGGogBUEwRiIBGyIGKgIAIABBuAFqIAVqIgNBBGoqAgAiC5MgCCAHQRRqIAEbIgcqAgAgAyoCACIMkxAvIQ0gAEKAgICAgICAwD83ArQDIABCgICA/AM3AqwDIABCgICAgICAgMA/NwKkAyAAQoCAgICAgIDAPzcClAMgAEKAgID8AzcCjAMgAEKAgICAgICAwD83AoQDIABCgICAgICAgMA/NwL0AiAAQoCAgPwDNwLsAiAAQoCAgICAgIDAPzcC5AIgAEKAgICAgICAwD83AtQCIABCgICA/AM3AswCIABCgICAgICAgMA/NwLEAiAAQoCAgICAgIDAPzcCtAIgAEKAgID8AzcCrAIgAEKAgICAgICAwD83AqQCIABCgICAgICAgMA/NwKUAiAAQoCAgPwDNwKMAiAAQoCAgICAgIDAPzcChAIgDRCrASEOIAYqAgAhDyAAIA1D2w/JP5IiEBCrAUMAAKBAlCIRIA8gDkMAAKBAlCIOkiIPkiISOAKgAyANEKUBIRMgByoCACEUIAAgEBClAUMAAKBAlCINIBQgE0MAAKBAlCIQkiITkiIUOAKcAyAAIAsgDpMiCyARkyIOOAKAAyAAIAwgEJMiDCANkyIQOAL8AiAAIA8gEZM4AuACIAAgEyANkzgC3AIgACASOALAAiAAIBQ4ArwCIAAgCyARkjgCoAIgACAMIA2SOAKcAiAAIA44AoACIAAgEDgC/AEgAEEQaiAAQfwBakEwEDgaIAVBEGoiBUHAAEcNAAsLIABBvANqQQAoAoigEBA3AkAgAC0AhARFDQAgAEGIBGogAEG8A2pByAD8CgAAIABBiAVqIABB+ANqKQIANwMAIABB0ARqQTBqIABB8ANqKQIANwMAIABB+ARqIABB6ANqKQIANwMAIABB8ARqIABB4ANqKQIANwMAIABB0ARqQRhqIABB2ANqKQIANwMAIABB0ARqQRBqIABBvANqQRRqKQIANwMAIABB0ARqQQhqIABByANqKQIANwMAIAAgACkCwAM3A9AEIABBiARqQQhqIQQgAEGIBGpBBGohCEEAIQUDQCAEIABBiARqIAVqIgdBGGogBUEwRiIBGyIGKgIAIABB0ARqIAVqIgNBBGoqAgAiC5MgCCAHQRRqIAEbIgcqAgAgAyoCACIMkxAvIQ0gAEKAgICAgICAwD83AsgGIABCgICAgICAgMA/NwLABiAAQoCAgICAgIDAPzcCuAYgAEKAgICAgICAwD83AqgGIABCgICAgICAgMA/NwKgBiAAQoCAgICAgIDAPzcCmAYgAEKAgICAgICAwD83AogGIABCgICAgICAgMA/NwKABiAAQoCAgICAgIDAPzcC+AUgAEKAgICAgICAwD83AugFIABCgICAgICAgMA/NwLgBSAAQoCAgICAgIDAPzcC2AUgAEKAgICAgICAwD83AsgFIABCgICAgICAgMA/NwLABSAAQoCAgICAgIDAPzcCuAUgAEKAgICAgICAwD83AqgFIABCgICAgICAgMA/NwKgBSAAQoCAgICAgIDAPzcCmAUgDRCrASEOIAYqAgAhDyAAIA1D2w/JP5IiEBCrAUMAAKBAlCIRIA8gDkMAAKBAlCIOkiIPkiISOAK0BiANEKUBIRMgByoCACEUIAAgEBClAUMAAKBAlCINIBQgE0MAAKBAlCIQkiITkiIUOAKwBiAAIAsgDpMiCyARkyIOOAKUBiAAIAwgEJMiDCANkyIQOAKQBiAAIA8gEZM4AvQFIAAgEyANkzgC8AUgACASOALUBSAAIBQ4AtAFIAAgCyARkjgCtAUgACAMIA2SOAKwBSAAIA44ApQFIAAgEDgCkAUgAEEQaiAAQZAFakEwEDgaIAVBEGoiBUHAAEcNAAtBACgChKAQIQZB5H4hBSAAQdAGaiEHIABB2C1qIQMDQCADIAVBnIYQaigCADYCACAAIAVBlIYQaikCADcD0C0gAEHwLWogAEGIBGogAEHQLWoQOSAAIAApA/AtIgI3A+AtIAAgACkD+C0iFTcD6C0gByAAQeAtaiAAQegtakMAAPBBQwAAIEEgACgC0C0iAUEJRhsiDUMAACBBkkGUhhAQOiAAIBU3A4guIAAgAjcDgC4gB0HAE2ogAEGALmogAEGILmogDUGUhhBBpIYQIAEgBkYbEDogB0HAAWohByAFQQxqIgUNAAsgAEEQaiAAQdAGakHgCRA4GgsCQCAAKAIUIgVFDQAgACgCECAFQQAoArCgECgCBBEBAAsgAEGQLmokAAuqBgIFfwt9IwBB4A1rIgAkAAJAQQAoAvCfECIBRQ0AQQAhAgNAQQAoAvSfEEUNASACIAFBfGooAgAiA0YNASACQcgAbCEEAkADQCABIAJqLAAAQQBIDQEgBEHIAGohBCADIAJBAWoiAkcNAAwDCwsgAEEIaiABQXRqKAIAIARqIgQQNCAAKAIIIAAoAgwgBEHEAGooAgBBACgCsKAQKAIIEQIAIAJBAWohAkEAKALwnxAiAQ0ACwtBACEBIABBFGpBACgCiKAQEDcCQCAALQBcRQ0AIABB4ABqIABBFGpByAD8CgAAQfiEECEEA0AgAEHADWpBCGogBEEIaigCADYCACAAIAQpAgA3A8ANIABB0A1qIABB4ABqIABBwA1qEDkgACgCwA0hAyAAKgLcDSIFIAAqAtQNIgaTIAAqAtgNIgcgACoC0A0iCJMQLyEJIABBqAFqIAFqIgJB9ABqIAOzIgo4AgAgAkHsAGpCgICAgICAgMA/NwIAIAJB4ABqIAo4AgAgAkHYAGpCgICAgICAgMA/NwIAIAJBzABqIAo4AgAgAkHEAGpCgICAgICAgMA/NwIAIAJBOGogCjgCACACQTBqQoCAgICAgIDAPzcCACACQSRqIAo4AgAgAkEcakKAgICAgICAwD83AgAgAkEQaiAKOAIAIAJBCGpCgICAgICAgMA/NwIAIAkQqwEhCyACQegAakMAAKBBQwAAIEEgA0EJRhsiCiAJQ9sPyT+SIgwQqwGUIg0gBSAKIAuUIguSIgWSIg44AgAgCRClASEPIAJB5ABqIAogDBClAZQiCSAHIAogD5QiCpIiB5IiDDgCACACQdQAaiAGIAuTIgYgDZMiCzgCACACQdAAaiAIIAqTIgogCZMiCDgCACACQcAAaiAFIA2TOAIAIAJBPGogByAJkzgCACACQSxqIA44AgAgAkEoaiAMOAIAIAJBGGogBiANkjgCACACQRRqIAogCZI4AgAgAkEEaiALOAIAIAIgCDgCACAEQQxqIQQgAUH4AGoiAUGYDEcNAAsgAEGoAWpBhgNBACgCsKAQKAIMEQEACyAAQeANaiQACy4AIAAgASoCBCACKgIEkkMAAAA/lDgCBCAAIAEqAgAgAioCAJJDAAAAP5Q4AgALGgAgASoCBCAAKgIEkyABKgIAIAAqAgCTEC8L3AICBH8BfQJAAkAgASABXA0AIAAgAFsNAQsgACABkg8LAkAgAbwiAkGAgID8A0cNACAAEDAPCyACQR52QQJxIgMgALwiBEEfdnIhBQJAAkACQAJAAkACQAJAAkAgBEH/////B3EiBA0AQ9sPSUAhBiAFDgQCAgcBAgsgAkH/////B3EiAkUNAiACQYCAgPwHRw0DIARBgICA/AdHDQQgBUECdEGwiRBqKgIADwtD2w9JwA8LIAAPC0PbD8k/IACYDwsCQAJAIARBgICA/AdGDQAgAkGAgIDoAGogBE8NAQtD2w/JPyAAmA8LAkAgA0UNAEMAAAAAIQYgBEGAgIDoAGogAkkNAgsgACABlYsQMCEGDAELIAVBAnRBwIkQaioCACEGDAELAkACQAJAIAUOBAMAAQIDCyAGjA8LQ9sPSUAgBkMuvbszkpMPCyAGQy69uzOSQ9sPScCSDwsgBgueAwQBfwF9An8DfSMAQRBrIgEkAAJAAkAgAIsiArwiA0GAgIDkBEkNACAAQ9oPyT8gAJggACAAXBshAAwBCwJAAkACQAJAIANBgICA9wNJDQAgA0GAgOD8A08NAiADQYCAwPkDTw0BIAIgApJDAACAv5IgAkMAAABAkpUhAkEAIQQMAwtBACEEIAAhAiADQYCAgMwDTw0CIANB////A0sNAyABIAAgAJQ4AgwgAUEMaiEDDAMLIAJDAACAv5IgAkMAAIA/kpUhAkEBIQQMAQsCQCADQYCA8IAESQ0AQwAAgL8gApUhAkEDIQQMAQsgAkMAAMC/kiACQwAAwD+UQwAAgD+SlSECQQIhBAsgAiAClCIFIAWUIgYgBkNHEtq9lEOYyky+kpQhByAFIAYgBkMlrHw9lEMN9RE+kpRDqaqqPpKUIQYCQCADQYCAgPcDSQ0AIARBAnQiA0G0hhBqKgIAIAIgByAGkpQgA0HEhhBqKgIAkyACk5MiAowgAiAAvEEASBshAAwBCyACIAIgByAGkpSTIQALIAFBEGokACAAC2kCA30CfEMAAIB/IQICQCAAKgIAIAEqAgCTIgOLQwAAgH9bDQAgACoCBCABKgIEkyIEi0MAAIB/Ww0AQwAAwH8hAiADIANcDQAgBCAEXA0AIAO7IgUgBSAEuyIGIAaiEKgBn7YhAgsgAguKAQAgACABNgIAIAAgAzYCRCAAIAIpAgA3AgQgAEEMaiACQQhqKQIANwIAIABBFGogAkEQaikCADcCACAAQRxqIAJBGGopAgA3AgAgAEEkaiACQSBqKQIANwIAIABBLGogAkEoaikCADcCACAAQTRqIAJBMGopAgA3AgAgAEE8aiACQThqKQIANwIAC9oCAwF/AX4BfyMAQRBrIgIkAEEAKQOYiRAiA6dBkAFBAkEAIANCIIinKAIAEQAAIQQgASkCBCEDIARBEGogASkCDDcCACAEIAM3AgAgBEEIakKAgICAgICAwD83AgAgASkCFCEDIARBKGogASkCHDcCACAEIAM3AhggBEEgakKAgICAgICAwD83AgAgASkCJCEDIARBwABqIAEpAiw3AgAgBCADNwIwIARBOGpCgICAgICAgMA/NwIAIAEpAiQhAyAEQdgAaiABKQIsNwIAIAQgAzcCSCAEQdAAakKAgICAgICAwD83AgAgASkCNCEDIARB8ABqIAEpAjw3AgAgBCADNwJgIARB6ABqQoCAgICAgIDAPzcCACABKQIEIQMgBEGIAWogASkCDDcCACAEIAM3AnggBEGAAWpCgICAgICAgMA/NwIAIABBJDYCBCAAIAQ2AgAgAkEQaiQAC7QDAwF/AX4BfyMAQRBrIgIkAEEAKQOYiRAiA6dBqAFBAkEAIANCIIinKAIAEQAAIQQgASkCBCEDIARBEGogASkCDDcCACAEIAM3AgAgBEEIakKAgICAgICAwD83AgAgBEEYaiABKAIAszgCACABKQIUIQMgBEEsaiABKQIcNwIAIAQgAzcCHCAEQSRqQoCAgICAgIDAPzcCACAEQTRqIAEoAgCzOAIAIAEpAiQhAyAEQcgAaiABKQIsNwIAIAQgAzcCOCAEQcAAakKAgICAgICAwD83AgAgBEHQAGogASgCALM4AgAgASkCJCEDIARB5ABqIAEpAiw3AgAgBCADNwJUIARB3ABqQoCAgICAgIDAPzcCACAEQewAaiABKAIAszgCACABKQI0IQMgBEGAAWogASkCPDcCACAEIAM3AnAgBEH4AGpCgICAgICAgMA/NwIAIARBiAFqIAEoAgCzOAIAIAEpAgQhAyAEQZwBaiABKQIMNwIAIAQgAzcCjAEgBEGUAWpCgICAgICAgMA/NwIAIARBpAFqIAEoAgCzOAIAIABBKjYCBCAAIAQ2AgAgAkEQaiQAC2oAIAAgASkCADcCBCAAQQxqIAFBCGopAgA3AgAgAEEcaiABQRhqKQIANwIAIAAgASkCEDcCFCAAIAEpAiA3AiQgAEEsaiABQShqKQIANwIAIAAgASkCMDcCNCAAQTxqIAFBOGopAgA3AgAL2AUDBn8Bfgh/IwBB8ABrIgEkAEEgIQICQEEADQBBfCEDAkAgAEEIIABBCEsbIgBBD2oiBCAAQQJ0aiIFIABByABsakF8cSIGRQ0AQQApAvyfECIHpyAGQQJBACAHQiCIpygCABEAACIDRQ0BCyADIAA2AgggAyADIARBfHFqNgIEIAMgAyAFQXxxajYCAEEAIQIgA0EMaiIFQQAgAPwLACAArULQAH5C5ACApyEIQQAoAvCfECEJAkACQAJAQQAoAvSfEA0AQQAhCgwBCwJAAkAgCUUNACAJQXxqKAIAIgtFDQAgCUF0aigCACEMIAlBeGooAgAhDUEAIQZBACEKDAELQQAgCDYC+J8QQQAgBTYC8J8QQQBBADYC9J8QDAILAkADQCANIAZBAnRqKAIAIQ4gCSAGaiwAACEAIAFBJGogDCAGQcgAbGpByAD8CgAAAkAgAEF/Sg0AIAFBEGogDq1CgYCAgBB+IgdC29HQhZra34FnhUIAIAdCrJri06PS8PofhUIAEKMBIAEgAUEQakEIaikDAELb0dCFmtrfgWeFQgAgASkDEEKryPXFx6yHu6B/hUIAEKMBAkAgBSADKAIIQX9qIg8gAUEIaikDACABKQMAhSIHp3EiAGoiBCwAAEF/Sg0AA0AgBSAAQQFqIA9xIgBqIgQsAABBAEgNAAsLIAQgB0I5iKdBgAFyOgAAIAMoAgQgAEECdGogDjYCACADKAIAIABByABsaiABQSRqQcgA/AoAACAIQX9qIQggCkEBaiIKQQAoAvSfEEYNAgsgBkEBaiIGIAtHDQALC0EAKALwnxAhCQtBACAINgL4nxBBACAKNgL0nxBBACAFNgLwnxAgCUUNAQsCQCAJQXxqKAIAQc0AbEEPakF8cSIADQBBACECDAELQQAhAkEAKQL8nxAiB6cgCUF0aiAAQQJBACAHQiCIpygCDBEDAAsgAUHwAGokACACC7cDAwN/AX4GfyMAQfAAayICJABBACEDAkACQEEAKAL0nxBFDQBBACgC8J8QIQQgAkEQaiABrUKBgICAEH4iBULb0dCFmtrfgWeFQgAgBUKsmuLTo9Lw+h+FQgAQowEgAiACQRBqQQhqKQMAQtvR0IWa2t+BZ4VCACACKQMQQqvI9cXHrIe7oH+FQgAQowEgAkEIaikDACACKQMAhSEFAkACQCAEDQBBfyEGDAELIARBfGooAgAiA0F/aiEGCyAEIAYgBadxIgdqLQAAIghFDQAgA0UNACAFQjmIpyEJIANBf2ohCiAEQXhqIQsDQCAKIQMCQCAIwEF/Sg0AIAkgCEH/AHFHDQAgCygCACAHQQJ0aigCACABRw0AIAJBKGogBEF0aigCACAHQcgAbGpByAD8CgAAQQEhAwwDCyAEIAdBAWogBnEiB2otAAAiCEUNASADQX9qIQogAw0ACwtBACEDIAJBKGpBAEHIAPwLACACQSZqQQA6AAAgAkEAOwEkCyAAIAJBKGpByAD8CgAAIAAgAzoASCAAIAIvASQ7AEkgAEHLAGogAkEmai0AADoAACACQfAAaiQAC/wDAwZ/AX4BfyMAQRBrIgMkACADIAAoAgQiBCACaiIFIARJIgY6AAQgAyAGOgADAkACQAJAAkAgBSAESQ0AAkACQAJAIAAoAggiByAFTw0AIAchBANAQX8gBEEBdiAEakEQaiIGIAYgBEkbIgQgBUkNAAsgACgCACEIIAdFDQEgACkCDCEJIAMgBEH/////A0s6AAggBEGAgICABE8NAUEAIQYCQCAJpyAIIAdBAnRBAiAEQQJ0IgVBACAJQiCIpygCCBEEACIKDQBBACEFDAMLIApBqtWq1XogBRshBiAEQf////8DcUEAIAUbIQUMAgsgACgCACEGDAQLQQAhBkEAIQULAkAgBkUNACAAIAY2AgAgACAFNgIIDAMLIAApAgwhCSADIARB/////wNLOgAMIARBgICAgARPDQACQCAEQQJ0IgYNAEF8IQYMAgsgCacgBkECQQAgCUIgiKcoAgARAAAiBg0BC0EgIQQMAgsCQCAAKAIEIgVFDQAgBiAAKAIAIAVBAnT8CgAACwJAIAdBAnQiBUUNACAAKQIMIgmnIAhBqtWq1XogBxsgBUECQQAgCUIgiKcoAgwRAwALIAAgBDYCCCAAIAY2AgALIAAgACgCBCIEIAJqNgIEIAYgBEECdGogASACQQJ0/AoAAEEAIQQLIANBEGokACAEC9AFBgJ/AX0BfwZ9AnwCfSMAQdAAayIDJAAgA0EIaiABQcgA/AoAAAJAAkAgAigCACIEQQVPDQAgAUEEaiIBIAIoAghBBHRqIgQqAgQhBSADQQhqIAIoAgRBBHRqIgZBCGoqAgAhB0MAAIB/IQgCQCAGQQRqKgIAIgkgBCoCACIKkyILi0MAAIB/Ww0AIAcgBZMiDItDAACAf1sNAEMAAMB/IQggCyALXA0AIAwgDFwNACALuyINIA0gDLsiDiAOohCoAZ+2Q83MzD2UIQgLIAUgB5MgCiAJkxAvIgsQqwEgCEMAAPBBEKoBIgmUIAEgAigCBEEEdGoiASoCBCIFkiEHIAsQpQEhCyABKgIAIgggCSALlJIhCwwBCwJAIARBCEsNACADQQhqIAIoAgRBBHRqIgRBCGoqAgAiCyABIAIoAghBBHRqIgFBCGoqAgAiCpJDAAAAP5QhBSAEQQRqKgIAIgcgAUEEaioCACIIkkMAAAA/lCEJQwAAgH8hDAJAIAcgCJMiD4tDAACAf1sNACALIAqTIhCLQwAAgH9bDQBDAADAfyEMIA8gD1wNACAQIBBcDQAgD7siDSANIBC7Ig4gDqIQqAGftkMpXI89lCEMCyAFIAogC5MgCCAHkxAvIggQqwEgDEMAAPBBEKoBIguUIgqTIQcgCSALIAgQpQGUIgiTIQsgBSAKkiEFIAkgCJIhCAwBCyABKgIoIgUgASoCOJJDAAAAP5QiByABKgIIIAWSQwAAAD+UkyABKgIkIgUgASoCNJJDAAAAP5QiCyABKgIEIAWSQwAAAD+UkxAvIghD2w9JP5IiCRCrASEKIAcgCBCrAUMAAHBClJIiBSAKQ83MzD2UkiEHIAkQpQEhCSALIAgQpQFDAABwQpSSIgggCUPNzMw9lJIhCwsgACAHOAIMIAAgCzgCCCAAIAU4AgQgACAIOAIAIANB0ABqJAAL5gQBCn0gAioCBCABKgIEkyACKgIAIAEqAgCTEC8hBSACKgIAIQYgAioCBCEHIAEqAgAhCCABKgIEIQkgAEKAgICAgICAwD83AgggBUPbD8k/kiIKEKsBIQsgACAJIANDAAAAP5QiAyAFEKsBlCIMkyINIAMgC5QiCZMiCzgCBCAKEKUBIQogACAIIAMgBRClAZQiDpMiCCADIAqUIgWTIgM4AgAgACAEKgIAOAIQIAAgBCoCBDgCFCAAIAQqAgg4AhggBCoCDCEKIABCgICAgICAgMA/NwIoIAAgDSAJkjgCJCAAIAggBZI4AiAgACAKOAIcIAAgBCoCADgCMCAAIAQqAgQ4AjQgACAEKgIIOAI4IAQqAgwhCCAAQoCAgICAgIDAPzcCSCAAIAkgDCAHkiIHkiIKOAJEIAAgBSAOIAaSIgaSIgw4AkAgACAIOAI8IAAgBCoCADgCUCAAIAQqAgQ4AlQgACAEKgIIOAJYIAQqAgwhCCAAQoCAgICAgIDAPzcCaCAAIAcgCZM4AmQgACAGIAWTOAJgIAAgCDgCXCAAIAQqAgA4AnAgACAEKgIEOAJ0IAAgBCoCCDgCeCAEKgIMIQUgAEKAgICAgICAwD83AogBIAAgCzgChAEgACADOAKAASAAIAU4AnwgACAEKgIAOAKQASAAIAQqAgQ4ApQBIAAgBCoCCDgCmAEgBCoCDCEFIABCgICAgICAgMA/NwKoASAAIAo4AqQBIAAgDDgCoAEgACAFOAKcASAAIAQqAgA4ArABIAAgBCoCBDgCtAEgACAEKgIIOAK4ASAAIAQqAgw4ArwBC5ADAQN/IwBBkAFrIgEkAAJAAkACQEEAQRAQACICRQ0AIAEgAjYCCCABQQA7AQwgAUEIaiECDAELIAFCgICAgBA3AyAgAUIANwMYIAFBgYAENgI4IAFCgICAgBA3AzAgAUIANwMoIAFCyvHG+IH6rYijfzcDECABQcAAaiABQRBqEBcCQCABLwFEIgJFDQAgACACOwEEDAILQQBBECABKAJAIgIQASABQdAAahA7AkACQCABLwFUIgMNACABQeAAakIANwMAIAFCADcDWCABIAEoAlA2AogBIAFCADcDgAEgAUKAgICAEDcDeCABQoCAgIAQNwNwIAFCgICAgBA3A2ggAiABQdgAakEAEBkiA0H//wNxRQ0BCyAAIAM7AQQMAgsCQAJAIAIQAiIDDQBB7IQQIQMMAQsgASADNgJYIAFBADsBXCABQdgAaiEDCwJAIAMvAQQiA0UNACAAIAM7AQQMAgsgAhAGIAEgAjYCSCABQQA7AUwgAUHIAGohAgsgACACKQMANwIACyABQZABaiQAC/4JAQV/IwBB4ANrIgEkAAJAAkACQEEAQSIQACICRQ0AIAEgAjYCACABQQA7AQQgASECDAELIAFCiICAgMAZNwMYIAFCADcDECABQYSABDYCMCABQoSAgIAQNwMoIAFCADcDICABQpWx3MTR+ISczQA3AwggAUE4aiABQQhqEBcCQCABLwE8IgJFDQAgACACOwEEDAILQQBBIiABKAI4IgIQAQJAAkACQEEAQSMQACIDDQAgAUIONwOQASABQgA3A4gBIAFBgIAENgKoASABQoCAgIAQNwOgASABQoKAgIAQNwOYASABQqDAg8v5z/TSYTcDgAEgAUG0AWogAUGAAWoQFyABLwG4ASIEDQFBAEEjIAEoArQBIgMQAQJAQQBBKxAAIgUNACABQoyAgIDgATcDgAIgAUIANwP4ASABQYSABDYCmAIgAUKMgICAEDcDkAIgAUKCgICAEDcDiAIgAUKFqfX/oc/Xswk3A/ABIAFBoAJqIAFB8AFqEBcgAS8BpAIiBA0CQQBBKyABKAKgAiIFEAEgAUGoAmoQOyABLwGsAiIEDQIgASABKAKoAjYC4AIgAUKAgICAEDcC2AIgAUKAgICAEDcC0AIgAUKAgICAEDcCyAIgAULggICAEDcCwAIgAUEBNgK8AiABQgY3ArQCIAFB0IEQNgKwAiAFIAFBsAJqQQAQGSIEQf//A3ENAiABQeQCahBOIAEvAegCIgQNAiABIAEoAuQCNgKcAyABQoGAgIAQNwKUAyABQoiAgIAQNwKMAyABQsCAgIAQNwKEAyABQoCAgIAQNwL8AiABQQE2AvgCIAFCgYCAgNAANwLwAiABQeCEEDYC7AIgBSABQewCakEAEBkiBEH//wNxDQIgAUGgA2oQHSABLwGkAyIEDQIgASABKAKgAzYC2AMgAUKCgICAEDcC0AMgAUKEgICAEDcCyAMgAUKggICAEDcCwAMgAULAgICAEDcCuAMgAUEBNgK0AyABQoGAgIAwNwKsAyABQd6EEDYCqAMgBSABQagDakEAEBkiBEH//wNxDQICQAJAIAUQAiIEDQBB7IQQIQQMAQsgASAENgKoAyABQQA7AawDIAFBqANqIQQLIAQvAQQiBA0CIAUQBgsgASAFNgLsASABQgA3AuQBIAFCjICAgBA3AtwBIAFC4ICAgBA3AtQBIAFCADcCzAEgAUIFNwLEASABQgA3ArwBIAMgAUG8AWpBABAZIgRB//8DcQ0BQQwhBEEXQQBBABAPIgVFDQECQCAFEAQiBQ0AIABBFTsBBAwFCyADIAVBABAFQRhBAEEAEA8iBUUNAUEVIQQgBRAEIgVFDQEgAyAFQQEQBQJAAkAgAxACIgQNAEHshBAhBAwBCyABIAQ2AqgDIAFBADsBrAMgAUGoA2ohBAsgBC8BBCIEDQEgAxAGCyABIAM2AnwgAUKAgICAEDcCdCABQoSAgIAQNwJsIAFCoICAgBA3AmQgAUIANwJcIAFCBTcCVCABQgA3AkwgAiABQcwAakEAEBkiBEH//wNxRQ0BCyAAIAQ7AQQMAgsCQAJAIAIQAiIEDQBB7IQQIQQMAQsgASAENgKoAyABQQA7AawDIAFBqANqIQQLAkAgBC8BBCIERQ0AIAAgBDsBBAwCCyACEAYgASACNgJAIAFBADsBRCABQcAAaiECCyAAIAIpAwA3AgALIAFB4ANqJAALgwkBBX8jAEGwA2siASQAAkACQAJAQQBBLBAAIgJFDQAgASACNgIIIAFBADsBDCABQQhqIQIMAQsgAUKIgICAwBk3AyAgAUIANwMYIAFBhIAENgI4IAFChICAgBA3AzAgAUIANwMoIAFC9YeI+Ij/r5LCADcDECABQcAAaiABQRBqEBcCQCABLwFEIgJFDQAgACACOwEEDAILQQBBLCABKAJAIgIQAQJAAkACQEEAQS0QACIDDQAgAUIONwOYASABQgA3A5ABIAFBgIAENgKwASABQoCAgIAQNwOoASABQoGAgIAQNwOgASABQremz47+1KecxwA3A4gBIAFBvAFqIAFBiAFqEBcgAS8BwAEiBA0BQQBBLSABKAK8ASIDEAECQEEAQS4QACIFDQAgAUKMgICA4AE3A4gCIAFCADcDgAIgAUGEgAQ2AqACIAFCiICAgBA3A5gCIAFCgYCAgBA3A5ACIAFCjITgx6uFqMkCNwP4ASABQawCaiABQfgBahAXIAEvAbACIgQNAkEAQS4gASgCrAIiBRABIAFBtAJqEDsgAS8BuAIiBA0CIAEgASgCtAI2AuwCIAFCgICAgBA3AuQCIAFCgICAgBA3AtwCIAFCgICAgBA3AtQCIAFCwICAgBA3AswCIAFBATYCyAIgAUIGNwLAAiABQdCBEDYCvAIgBSABQbwCakEAEBkiBEH//wNxDQIgAUHwAmoQTiABLwH0AiIEDQIgASABKALwAjYCqAMgAUKBgICAEDcCoAMgAUKIgICAEDcCmAMgAULAgICAEDcCkAMgAUKAgICAEDcCiAMgAUEBNgKEAyABQoGAgIDQADcC/AIgAUHghBA2AvgCIAUgAUH4AmpBABAZIgRB//8DcQ0CAkACQCAFEAIiBA0AQeyEECEEDAELIAEgBDYC+AIgAUEAOwH8AiABQfgCaiEECyAELwEEIgQNAiAFEAYLIAEgBTYC9AEgAUIANwLsASABQoiAgIAQNwLkASABQsCAgIAQNwLcASABQgA3AtQBIAFCBTcCzAEgAUIANwLEASADIAFBxAFqQQAQGSIEQf//A3ENAUEMIQRBGUEAQQAQDyIFRQ0BAkAgBRAEIgUNACAAQRU7AQQMBQsgAyAFQQAQBUEaQQBBABAPIgVFDQFBFSEEIAUQBCIFRQ0BIAMgBUEBEAUCQAJAIAMQAiIEDQBB7IQQIQQMAQsgASAENgL4AiABQQA7AfwCIAFB+AJqIQQLIAQvAQQiBA0BIAMQBgsgASADNgKEASABQoCAgIAQNwJ8IAFChICAgBA3AnQgAUKggICAEDcCbCABQgA3AmQgAUIFNwJcIAFCADcCVCACIAFB1ABqQQAQGSIEQf//A3FFDQELIAAgBDsBBAwCCwJAAkAgAhACIgQNAEHshBAhBAwBCyABIAQ2AvgCIAFBADsB/AIgAUH4AmohBAsCQCAELwEEIgRFDQAgACAEOwEEDAILIAIQBiABIAI2AkggAUEAOwFMIAFByABqIQILIAAgAikDADcCAAsgAUGwA2okAAsOACABKAIAIAARBQBBAAu2CwEEfyMAQdACayIBJAACQAJAAkBBAEE1EAAiAkUNACABIAI2AgggAUEAOwEMIAFBCGohAgwBCyABQQo2AiQgAUKHgICAIDcCHCABQeSCEDYCGCABQYSABDYCOCABQsiAgIAQNwMwIAFCADcDKCABQvqfjev1xL/L+AA3AxAgAUHAAGogAUEQahAXAkAgAS8BRCICRQ0AIAAgAjsBBAwCC0EAQTUgASgCQCIDEAEgAUGIAmoQHQJAAkAgAS8BjAIiAg0AIAEgASgCiAI2AsgBIAFCgICAgBA3AsABIAFChICAgBA3ArgBIAFCoICAgBA3ArABIAFCgICAgBA3AqgBIAFBATYCpAEgAUKCgICAMDcCnAEgAUG7gxA2ApgBIAMgAUGYAWpBABAZIgJB//8DcQ0AIAFByAJqEEQgAS8BzAIiAg0AIAEgASgCyAI2AoQCIAFCgYCAgBA3AvwBIAFCwICAgBA3AvQBIAFCgISAgBA3AuwBIAFCoICAgBA3AuQBIAFBATYC4AEgAUKGgICA0AA3AtgBIAFBwoAQNgLUASADIAFB1AFqQQAQGSICQf//A3ENACABQdwAahAdIAEvAWAiAg0AIAEgASgCXDYCwAIgAUKCgICAEDcCuAIgAUKEgICAEDcCsAIgAUKggICAEDcCqAIgAUKghICAEDcCoAIgAUEBNgKcAiABQoqAgIAwNwKUAiABQbODEDYCkAIgAyABQZACakEAEBkiAkH//wNxDQACQEHMiBBByABBARAPIgINACAAQQw7AQQMBAsgAhAEIgINAUEVIQILIAAgAjsBBAwCCyADIAJBABAFAkACQCADEAIiAg0AQeyEECECDAELIAEgAjYCkAIgAUEAOwGUAiABQZACaiECCwJAIAIvAQQiAkUNACAAIAI7AQQMAgsgAUHUAGoQigECQAJAIAEvAVgiAg0AIAFB9ABqQgA3AgAgAUH8AGpCADcCACABQgA3AmwgAUECNgJoIAFCg4CAgNAANwJgIAFBmIAQNgJcIAEgASgCVDYCjAEgAUKAgICAEDcChAEgAyABQdwAakEBEBkiAkH//wNxDQAgAUHIAmoQigEgAS8BzAIiAg0AAkBBG0EAQQAgASgCyAIQAyICRQ0AAkBBABAEIgQNACAAQRU7AQQMBQsgBEEAIAIQASABQZABahCLASABLwGUASICDQEgAUGwAWpCADcCACABQbgBakIANwIAIAFCADcCqAEgAUESNgKkASABQo+AgIDQADcCnAEgAUGXhBA2ApgBIAEgASgCkAE2AsgBIAFCgYCAgBA3AsABIAMgAUGYAWpBARAZIgJB//8DcQ0BIAFByAJqEIsBIAEvAcwCIgINAUEcQQBBACABKALIAhADIgJFDQAgBEEBIAIQASABQcwBahCLASABLwHQASICDQEgAUHsAWpCADcCACABQfQBakIANwIAIAFCADcC5AEgAUESNgLgASABQpSAgIDQADcC2AEgAUGnhBA2AtQBIAEgASgCzAE2AoQCIAFCgoCAgBA3AvwBIAMgAUHUAWpBARAZIgJB//8DcQ0BIAFByAJqEIsBIAEvAcwCIgINAUEdQQBBACABKALIAhADIgJFDQAgBEECIAIQASABQYgCahCMASABLwGMAiICDQEgAUGoAmpCADcCACABQbACakIANwIAIAFCADcCoAIgAUESNgKcAiABQo2AgIDQADcClAIgAUH6gBA2ApACIAEgASgCiAI2AsACIAFCg4CAgBA3ArgCIAMgAUGQAmpBARAZIgJB//8DcQ0BIAFByAJqEIwBIAEvAcwCIgINAUEeQQBBACABKALIAhADIgINAgtBDSECCyAAIAI7AQQMAgsgBEEDIAIQASADIARBARAFIAMQBiABIAM2AkggAUEAOwFMIAFByABqIQILIAAgAikDADcCAAsgAUHQAmokAAsTACABKAIAIAEoAgQgABEBAEEAC4sGAQJ/IwBBEGsiBCQAAkACQAJAIAINAAJAQQAoArigEA0AQbigECECQQAhBQwCCwJAQQAoArygEA0AQbygECECQQEhBQwCCwJAQQAoAsCgEA0AQcCgECECQQIhBQwCCwJAQQAoAsSgEA0AQcSgECECQQMhBQwCCwJAQQAoAsigEA0AQcigECECQQQhBQwCCwJAQQAoAsygEA0AQcygECECQQUhBQwCCwJAQQAoAtCgEA0AQdCgECECQQYhBQwCCwJAQQAoAtSgEA0AQdSgECECQQchBQwCCwJAQQAoAtigEA0AQdigECECQQghBQwCCwJAQQAoAtygEA0AQdygECECQQkhBQwCCwJAQQAoAuCgEA0AQeCgECECQQohBQwCCwJAQQAoAuSgEA0AQeSgECECQQshBQwCCwJAQQAoAuigEA0AQeigECECQQwhBQwCCwJAQQAoAuygEA0AQeygECECQQ0hBQwCCwJAQQAoAvCgEA0AQfCgECECQQ4hBQwCCwJAQQAoAvSgEEUNAEG0iBAhAwwDC0H0oBAhAkEPIQUMAQtBACECAkAgA0EfRg0AAkAgA0EgRw0AQQEhAgwBCwJAIANBIUcNAEECIQIMAQsCQCADQSJHDQBBAyECDAELAkAgA0EjRw0AQQQhAgwBCwJAIANBJEcNAEEFIQIMAQsCQCADQSVHDQBBBiECDAELAkAgA0EmRw0AQQchAgwBCwJAIANBJ0cNAEEIIQIMAQsCQCADQShHDQBBCSECDAELAkAgA0EpRw0AQQohAgwBCwJAIANBKkcNAEELIQIMAQsCQCADQStHDQBBDCECDAELAkAgA0EsRw0AQQ0hAgwBCwJAIANBLUcNAEEOIQIMAQsCQCADQS5GDQBBvIgQIQMMAwtBDyECCyACQQJ0QbigEGoiAygCACECIANBADYCACAEQQA7AQwgBCACNgIIIARBCGohAwwBCyACIAM2AgAgBEEAOwEEIAQgBUECdEH0hhBqKAIANgIAIAQhAwsgACADKQIANwIAIARBEGokAAsOACABKAIAIAARBQBBAAsTACABKAIAIAEo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Qf//A3ENACABQYACahBIIAEvAYQCIgINACABIAEoAoACNgK4AiABQoOAgIAQNwKwAiABQoSAgIAQNwKoAiABQqCAgIAQNwKgAiABQuCAgIAQNwKYAiABQQE2ApQCIAFCgYCAgMAANwKMAiABQZyAEDYCiAIgAyABQYgCakEAEBkiAkH//wNxDQACQEHkhhBBEEEBEA8iAg0AIABBDDsBBAwECyACEAQiAg0BQRUhAgsgACACOwEEDAILIAMgAkEAEAUCQAJAIAMQAiICDQBB7IQQIQIMAQsgASACNgKIAiABQQA7AYwCIAFBiAJqIQILAkAgAi8BBCICRQ0AIAAgAjsBBAwCCyABQYgBahBMAkACQCABLwGMASICDQAgAUGoAWpCADcCACABQbABakIANwIAIAFCADcCoAEgAUESNgKcASABQoOAgIDQADcClAEgAUGvgxA2ApABIAEgASgCiAE2AsABIAFCgICAgBA3ArgBIAMgAUGQAWpBARAZIgJB//8DcQ0AIAFB1ABqEEwgAS8BWCICDQACQEEvQQBBACABKAJUEAMiAkUNAAJAQQAQBCIEDQAgAEEVOwEEDAULIARBACACEAEgAUHEAWoQTSABLwHIASICDQEgAUHkAWpCADcCACABQewBakIANwIAIAFCADcC3AEgAUESNgLYASABQoiAgIDQADcC0AEgAUGxgRA2AswBIAEgASgCxAE2AvwBIAFCgYCAgBA3AvQBIAMgAUHMAWpBARAZIgJB//8DcQ0BIAFB1ABqEE0gAS8BWCICDQFBMEEAQQAgASgCVBADIgJFDQAgBEEBIAIQASABQYACahBNIAEvAYQCIgINASABQaACakIANwIAIAFBqAJqQgA3AgAgAUIANwKYAiABQRI2ApQCIAFCiICAgNAANwKMAiABQaaDEDYCiAIgASABKAKAAjYCuAIgAUKCgICAEDcCsAIgAyABQYgCakEBEBkiAkH//wNxDQEgAUHUAGoQTSABLwFYIgINAUExQQBBACABKAJUEAMiAg0CC0ENIQILIAAgAjsBBAwCCyAEQQIgAhABIAMgBEEBEAUgAxAGIAEgAzYCQCABQQA7AUQgAUHAAGohAgsgACACKQMANwIACyABQcACaiQAC6wLAQV/IwBBoARrIgEkAAJAAkACQEEAQTkQACICRQ0AIAEgAjYCACAB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EGokAAsTACABKAIAIAEoAgQgABEBAEEAC5sGAQJ/IwBBEGsiBCQAAkACQAJAIAINAAJAQQAoArihEA0AQbihECECQQAhBQwCCwJAQQAoAryhEA0AQbyhECECQQEhBQwCCwJAQQAoAsChEA0AQcChECECQQIhBQwCCwJAQQAoAsShEA0AQcShECECQQMhBQwCCwJAQQAoAsihEA0AQcihECECQQQhBQwCCwJAQQAoAsyhEA0AQcyhECECQQUhBQwCCwJAQQAoAtChEA0AQdChECECQQYhBQwCCwJAQQAoAtShEA0AQdShECECQQchBQwCCwJAQQAoAtihEA0AQdihECECQQghBQwCCwJAQQAoAtyhEA0AQdyhECECQQkhBQwCCwJAQQAoAuChEA0AQeChECECQQohBQwCCwJAQQAoAuShEA0AQeShECECQQshBQwCCwJAQQAoAuihEA0AQeihECECQQwhBQwCCwJAQQAoAuyhEA0AQeyhECECQQ0hBQwCCwJAQQAoAvChEA0AQfChECECQQ4hBQwCCwJAQQAoAvShEEUNAEG0iBAhAwwDC0H0oRAhAkEPIQUMAQtBACECAkAgA0HEAEYNAAJAIANBxQBHDQBBASECDAELAkAgA0HGAEcNAEECIQIMAQsCQCADQccARw0AQQMhAgwBCwJAIANByABHDQBBBCECDAELAkAgA0HJAEcNAEEFIQIMAQsCQCADQcoARw0AQQYhAgwBCwJAIANBywBHDQBBByECDAELAkAgA0HMAEcNAEEIIQIMAQsCQCADQc0ARw0AQQkhAgwBCwJAIANBzgBHDQBBCiECDAELAkAgA0HPAEcNAEELIQIMAQsCQCADQdAARw0AQQwhAgwBCwJAIANB0QBHDQBBDSECDAELAkAgA0HSAEcNAEEOIQIMAQsCQCADQdMARg0AQbyIECEDDAMLQQ8hAgsgAkECdEG4oRBqIgMoAgAhAiADQQA2AgAgBEEAOwEMIAQgAjYCCCAEQQhqIQMMAQsgAiADNgIAIARBADsBBCAEIAVBAnRB9IcQaigCADYCACAEIQMLIAAgAykCADcCACAEQRBqJAALDwAgACABQQAoArigEBBlCw8AIAAgAUEAKAK8oBAQZQsPACAAIAFBACgCwKAQEGULDwAgACABQQAoAsSgEBBlCw8AIAAgAUEAKALIoBAQZQsPACAAIAFBACgCzKAQEGULDwAgACABQQAoAtCgEBBlCw8AIAAgAUEAKALUoBAQZQsPACAAIAFBACgC2KAQEGULDwAgACABQQAoAtygEBBlCw8AIAAgAUEAKALgoBAQZQsPACAAIAFBACgC5KAQEGULDwAgACABQQAoAuigEBBlCw8AIAAgAUEAKALsoBAQZQsPACAAIAFBACgC8KAQEGULDwAgACABQQAoAvSgEBBlC2sBAX8jAEEwayICJAAgAkEQaiABQRBqKQIANwMAIAJBIGogAUEgaikCADcDACACIAEpAgg3AwggAiABKQIYNwMYIAJBKGogAkEIaiACQQhqQRBqIAARAgAgASACKQMoNwIAIAJBMGokAEEAC1sBAX8jAEEgayICJAAgAkEIaiABQQxqKQIANwMAIAJBGGogAUEcaikCADcDACACIAEpAgQ3AwAgAiABKQIUNwMQIAEgAiACQRBqIAARCAA4AgAgAkEgaiQAQQALhwEBAX8jAEEQayIDJAAgAyABNgIEIAMgADYCAEEAIQECQEEALQD4oRANACADQX82AgggAyADQQhqNgIMIANBCGohAQsCQAJAAkACQCACIANBCCABEBBBf2oOAwIAAQMLQfSDEEEiEIYBAAtB2YMQQRoQhgEAC0G+gxBBGhCGAQALIANBEGokAAsSACAAIAEgAkEAKAL4oBAQiAELEgAgACABIAJBACgC/KAQEIgBCxIAIAAgASACQQAoAoChEBCIAQsSACAAIAEgAkEAKAKEoRAQiAELEgAgACABIAJBACgCiKEQEIgBCxIAIAAgASACQQAoAoyhEBCIAQsSACAAIAEgAkEAKAKQoRAQiAELEgAgACABIAJBACgClKEQEIgBCxIAIAAgASACQQAoApihEBCIAQsSACAAIAEgAkEAKAKcoRAQiAELEgAgACABIAJBACgCoKEQEIgBCxIAIAAgASACQQAoAqShEBCIAQsSACAAIAEgAkEAKAKooRAQiAELEgAgACABIAJBACgCrKEQEIgBCxIAIAAgASACQQAoArChEBCIAQsSACAAIAEgAkEAKAK0oRAQiAELEAAgACABQQAoArihEBCJAQsQACAAIAFBACgCvKEQEIkBCxAAIAAgAUEAKALAoRAQiQELEAAgACABQQAoAsShEBCJAQsQACAAIAFBACgCyKEQEIkBCxAAIAAgAUEAKALMoRAQiQELEAAgACABQQAoAtChEBCJAQsQACAAIAFBACgC1KEQEIkBCxAAIAAgAUEAKALYoRAQiQELEAAgACABQQAoAtyhEBCJAQsQACAAIAFBACgC4KEQEIkBCxAAIAAgAUEAKALkoRAQiQELEAAgACABQQAoAuihEBCJAQsQACAAIAFBACgC7KEQEIkBCxAAIAAgAUEAKALwoRAQiQELEAAgACABQQAoAvShEBCJAQsKACAAIAEQjQEAC4kDAQN/IwBBkAFrIgEkAAJAAkACQEEAQSYQACICRQ0AIAEgAjYCCCABQQA7AQwgAUEIaiECDAELIAFCiYCAgIAINwMgIAFCADcDGCABQYSABDYCOCABQoSAgIAQNwMwIAFCADcDKCABQpTKlsHJzrmJkn83AxAgAUHAAGogAUEQahAXAkAgAS8BRCICRQ0AIAAgAjsBBAwCC0EAQSYgASgCQCICEAEgAUHQAGoQSAJAAkAgAS8BVCIDDQAgASABKAJQNgKIASABQgA3AoABIAFChICAgBA3AnggAUKggICAEDcCcCABQgA3AmggAUIENwJgIAFCADcCWCACIAFB2ABqQQAQGSIDQf//A3FFDQELIAAgAzsBBAwCCwJAAkAgAhACIgMNAEHshBAhAwwBCyABIAM2AlggAUEAOwFcIAFB2ABqIQMLAkAgAy8BBCIDRQ0AIAAgAzsBBAwCCyACEAYgASACNgJIIAFBADsBTCABQcgAaiECCyAAIAIpAwA3AgALIAFBkAFqJAALkQEBAX8jAEEgayIEJAAgBCACNgIUIAQgATYCECAEIAA2AgxBACECAkBBAC0A+KEQDQAgBEF/NgIYIAQgBEEYajYCHCAEQRhqIQILAkACQAJAAkAgAyAEQQxqQQwgAhAQQX9qDgMCAAEDC0H0gxBBIhCGAQALQdmDEEEaEIYBAAtBvoMQQRoQhgEACyAEQSBqJAALhwEBAX8jAEEQayIDJAAgAyABNgIEIAMgADYCAEEAIQECQEEALQD4oRANACADQX82AgggAyADQQhqNgIMIANBCGohAQsCQAJAAkACQCACIANBCCABEBBBf2oOAwIAAQMLQfSDEEEiEIYBAAtB2YMQQRoQhgEAC0G+gxBBGhCGAQALIANBEGokAAvbCAEEfyMAQbADayIBJAACQAJAAkBBAEHAABAAIgJFDQAgASACNgIAIAFBADsBBCABIQIMAQsgAUIONwMYIAFCADcDECABQYCABDYCMCABQoCAgIAQNwMoIAFCg4CAgBA3AyAgAULVkI2Fx+Cp6no3AwggAUE4aiABQQhqEBcCQCABLwE8IgJFDQAgACACOwEEDAILQQBBwAAgASgCOCIDEAECQAJAAkBBAEHBABAAIgQNACABQoyAgICgATcDkAEgAUIANwOIASABQYSABDYCqAEgAUKQgYCAEDcDoAEgAUKDgICAEDcDmAEgAUKkrOvMqIPW5NcANwOAASABQbQBaiABQYABahAXIAEvAbgBIgINAUEAQcEAIAEoArQBIgQQASABQbwBahA/IAEvAcABIgINASABIAEoArwBNgL0ASABQoCAgIAQNwLsASABQsiAgIAQNwLkASABQsCEgIAQNwLcASABQoCAgIAQNwLUASABQQE2AtABIAFChoCAgNAANwLIASABQdCBEDYCxAEgBCABQcQBakEAEBkiAkH//wNxDQEgAUH4AWoQHSABLwH8ASICDQEgASABKAL4ATYCsAIgAUKBgICAEDcCqAIgAUKEgICAEDcCoAIgAUKggICAEDcCmAIgAULAhICAEDcCkAIgAUEBNgKMAiABQoGAgIAwNwKEAiABQeCEEDYCgAIgBCABQYACakEAEBkiAkH//wNxDQEgAUG0AmoQRCABLwG4AiICDQEgASABKAK0AjYC7AIgAUKCgICAEDcC5AIgAULAgICAEDcC3AIgAUKAhICAEDcC1AIgAULghICAEDcCzAIgAUEBNgLIAiABQoGAgIDQADcCwAIgAUHehBA2ArwCIAQgAUG8AmpBABAZIgJB//8DcQ0BIAFB8AJqEB0gAS8B9AIiAg0BIAEgASgC8AI2AqgDIAFCg4CAgBA3AqADIAFChICAgBA3ApgDIAFCoICAgBA3ApADIAFC4IiAgBA3AogDIAFBATYChAMgAUKBgICAMDcC/AIgAUHchBA2AvgCIAQgAUH4AmpBABAZIgJB//8DcQ0BAkACQCAEEAIiAg0AQeyEECECDAELIAEgAjYC+AIgAUEAOwH8AiABQfgCaiECCyACLwEEIgINASAEEAYLIAEgBDYCfCABQgA3AnQgAUKQgYCAEDcCbCABQoCJgIAQNwJkIAFCADcCXCABQgU3AlQg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A4ADIAFCzPOO9vn06MaQfzcD6AIgAUGYA2ogAUHoAmoQFyABLwGcAyICDQJBAEHIACABKAKYAyIFEAEgAUGgA2oQPyABLwGkAyICDQIgASABKAKgAzYC2AMgAUKAgICAEDcC0AMgAUKEgICAEDcCyAMgAUKggICAEDcCwAMgAUIANwK4AyABQgU3ArADIAFCADcCqAMgBSABQagDakEAEBkiAkH//wNxDQICQAJAIAUQAiICDQBB7IQQIQIMAQsgASACNgKoAyABQQA7AawDIAFBqANqIQILIAIvAQQiAg0CIAUQBgsgASAFNgKoAiABQoGAgIAQNwKgAiABQoSAgIAQNwKYAiABQqCAgIAQNwKQAiABQoCAgIAQNwKIAiABQQE2AoQCIAFCgYCAgNAANwL8ASABQeCEEDYC+AEgBCABQfgBakEAEBkiAkH//wNxDQEgAUGsAmoQRCABLwGwAiICDQEgASABKAKsAjYC5AIgAUKCgICAEDcC3AIgAULAgICAEDcC1AIgAUKAhICAEDcCzAIgAUKggICAEDcCxAIgAUEBNgLAAiABQoGAgIDQADcCuAIgAUHehBA2ArQCIAQgAUG0AmpBABAZIgJB//8DcQ0BAkACQCAEEAIiAg0AQeyEECECDAELIAEgAjYCqAMgAUEAOwGsAyABQagDaiECCyACLwEEIgINASAEEAYLIAEgBDYCfCABQgA3AnQgAULEgICAEDcCbCABQqCEgIAQNwJkIAFCADcCXCABQgU3AlQgAUIANwJMIAMgAUHMAGpBABAZIgJB//8DcQ0AAkBB1gBBAEEAEA8iAg0AIABBDDsBBAwECyACEAQiAg0BQRUhAgsgACACOwEEDAILIAMgAkEAEAUCQAJAIAMQAiICDQBB7IQQIQIMAQsgASACNgKoAyABQQA7AawDIAFBqANqIQILAkAgAi8BBCICRQ0AIAAgAjsBBAwCCyADEAYgASADNgJAIAFBADsBRCABQcAAaiECCyAAIAIpAwA3AgALIAFB4ANqJAALCgAgACABEJEBAAvVAQEDfyMAQZABayICJAAgAkEMaiABQdQAaikCADcCACACQRRqIAFB3ABqKQIANwIAIAJBHGogAUHkAGopAgA3AgAgAkEkaiABQewAaikCADcCACACQSxqIAFB9ABqKQIANwIAIAJBNGogAUH8AGopAgA3AgAgAkE8aiABQYQBaikCADcCACACIAEoAkgiAzYCACACIAEpAkw3AgQgAiABKAKMASIENgJEIAJByABqIAMgAkEEaiAEIAARCQAgASACQcgAakHIAPwKAAAgAkGQAWokAEEACz8BAX8jAEHQAGsiAiQAIAJBCGogAUEIakHIAPwKAAAgAiACQQhqIAARAQAgASACKQMANwIAIAJB0ABqJABBAAu/AQECfyMAQdAAayICJAAgAkEMakEMaiABQQxqKQIANwIAIAJBDGpBFGogAUEUaikCADcCACACQQxqQRxqIAFBHGopAgA3AgAgAkEMakEkaiABQSRqKQIANwIAIAJBDGpBLGogAUEsaikCADcCACACQQxqQTRqIAFBNGopAgA3AgAgAkEMakE8aiABQTxqKQIANwIAIAIgASgCACIDNgIMIAIgASkCBDcCECADIAJBEGogABEBACACQdAAaiQAQQALCQAgACABEBEACwsAQQBBAToA+KEQC7sBAwF/AX4BfyMAQRBrIgIkAAJAQQAtAIiiEA0AQQApA5iJECIDp0GAgARBAEEAIANCIIinKAIAEQAAIQRBAEEBOgCkohBBAEGAgAQ2AqCiEEEAIAQ2ApyiEEEAIAM3A5CiEEEAQQE6AIiiEEEAQaCJEDYChKIQQQBBkKIQNgKAohBBAEEANgKYohALQQApA4CiECIDpyAAIAFBASABQQFLG2hBACADQiCIpygCABEAACEBIAJBEGokACABC7YBAQd/IwBBEGsiBCQAIAQgAkEfcSIFOgALIAAoAgwhBiAAKAIIIQcCQAJAAkACQCAFDQBBACEFDAELIARBASACdCIIIAYgB2oiBWpBf2oiCSAFSSIKOgAMIAoNASAJQQAgCGtxIAVrIQULIAUgB2oiBSABaiIHIAAoAhBLDQAgACAHNgIIIAZFDQAgBiAFaiEADAELIAAoAgAgASACIAMgACgCBCgCABEAACEACyAEQRBqJAAgAAuPAQECfwJAAkACQCAAQQxqKAIAIgYgAUsNACAAQRBqKAIAIgcgBmogAU0NAAJAIAEgAmogBiAAKAIIIgFqRg0AIAQgAk0PCyABIAQgAmtqIQYgBCACTQ0CQQAhASAGIAdNDQIMAQsgACgCACABIAIgAyAEIAUgACgCBCgCBBEEACEBCyABDwsgACAGNgIIQQEL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IARBf2pnIgMNAUEAIQMMAgtCAUEgIANBg4AEakEQdkF/amdrrUL//wODhqdCAUEgIARBg4AEakEQdkF/amdrrUL//wODhqdGIQMMAQsgAkIBQSAgA2utQv//A4OGp0YhAwsgBkEQaiQAIAML1AEBAn8jAEEQayIGJAAgBiADQR9xOgAPQX8gBEEEaiIHIAcgBEkbIgRBASADdCIDIAQgA0sbIQQCQAJAAkBCAUEgIAJBBGoiAiADIAIgA0sbIgNBf2pna61C//8Dg4anIgJoQX1qQQxLDQAgBEF/amciA0UNASACQgFBICADa61C//8Dg4anRw0BDAILQgFBICADQYOABGpBEHZBf2pna61C//8Dg4anQgFBICAEQYOABGpBEHZBf2pna61C//8Dg4anRg0BC0EAIQELIAZBEGokACABC7YBAQJ/IwBBEGsiBSQAIAUgA0EfcToADwJAAkBCAUEgIAJBBGoiAkEBIAN0IgMgAiADSxsiA0F/amdrrUL//wODhqciAmhBfWoiBkENTw0AIAZBAnRBqKIQaiEDIAEgAmpBfGohAgwBC0IBQSAgA0GDgARqQRB2QX9qZ2utQv//A4OGpyICaEECdEGQoxBqIQMgASACQRB0akF8aiECCyACIAMoAgA2AgAgAyABNgIAIAVBEGokAAt1AQF+IAAgBCABfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IANC/////w+DIAIgAX58IgFCIIh8NwMIIAAgAUIghiAFQv////8Pg4Q3AwAL1AICA34CfwJAAkACQCAAIABiDQAgAL0iAkL///////////8Ag0KAgICAgICA+P8AWg0AIAJCgICAgICAgICAf4MhA0ELIAJCAYYiBHmnayAEQjWIpyAEQoCAgICAgIAQVBshBQJAIAFBAEgNAEH+DyAFayABSA0CAkAgBSABaiIGQQFODQAgAiABQT9xrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAatQjSGhCADhL8PCyABrUI0hiACfL8PC0EAIAFrIQZBACAFayABSA0CAkBBTCAFayABTA0AIAO/DwsgBUEASq1CNIYgAkL/////////B4OEIAZBASAFIAFqayIBIAYgAUgb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/////////wCDQv/////////3/wBWDQAgAb0iBEL///////////8Ag0KAgICAgICA+P8AVA0BCyAAIAGiIAKgIQIMAQsgAr0iBUL///////////8Ag0L/////////9/8AVg0AAkACQCAARAAAAAAAAAAAYQ0AIAFEAAAAAAAAAABiDQELIAAgAaIgAqAPCwJAIAJEAAAAAAAAAABiDQAgACABog8LQQAhBgJAAkAgA0I0iKciB0H/D3EiCEH/D0cNAEEAIQcMAQsCQAJAIAgNACADQv////////8Hg1BFDQFBACEHDAILIANC/////////4eAf4NCgICAgICAgPA/hCEDIAdB/w9xQYJ4aiEHDAELIANCgICAgICAgICAf4NCACADIANCDIZ5pyIIQQFqrYZC/////////weDIAhBP3FBMksbhEKAgICAgICA8D+EIQNBgnggCGshBwsCQCAEQjSIpyIJQf8PcSIIQf8PRg0AAkAgCA0AIARC/////////weDUA0BIARCgICAgICAgICAf4NCACAEIARCDIZ5pyIGQQFqrYZC/////////weDIAZBP3FBMksbhEKAgICAgICA8D+EIQRBgnggBmshBgwBCyAEQv////////+HgH+DQoCAgICAgIDwP4QhBCAJQf8PcUGCeGohBgtBACEIAkAgBUI0iKciCkH/D3EiCUH/D0YNAAJAIAkNACAFQv////////8Hg1ANASAFQoCAgICAgICAgH+DQgAgBSAFQgyGeaciCEEBaq2GQv////////8HgyAIQT9xQTJLG4RCgICAgICAgPA/hCEFQYJ4IAhrIQgMAQsgBUL/////////h4B/g0KAgICAgICA8D+EIQUgCkH/D3FBgnhqIQgLIAO/IQIgBL8hAAJAAkAgBiAHaiIGIAhrIghB6wBODQAgBb9BACAIaxCkASELDAELIAVCgICAgICAgICAf4NCgICAgICAgAiEvyELCyACIAJEAAAAAgAAoEGiIgEgAiABoaAiAaEiDCAAIABEAAAAAgAAoEGiIgIgACACoaAiAqEiAKIgDCACoiABIACioCIAIAEgAqIiAiACIACgIgChoKAhAQJAIAAgC6AiAkQAAAAAAAAAAGINACACIAEgBhCkAaAPCwJAIAEgASALIAIgAKEiDKEgACACIAyhoaAiC6AiACALoSIM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"),e=new Uint8Array(A.length);for(let t=0;t<A.length;t++)e[t]=A.charCodeAt(t);return await new Promise((A=>setTimeout(A,0))),e.buffer})();oe.loadModule(se,{memoryInitial:5,tableInitial:95,multithreaded:!1}),oe.linkVariables(!1);const{constructor:ae}=re,Ee=oe.getSpecialExports(),{connectWebGPUPrograms:ce,connectOnAssetUpdateCallback:ue,ASSET_ID_TRESHOLD:le,init_state:fe,add_texture:we,update_points:he,on_update_pick:De,on_pointer_down:ye,on_pointer_up:de,on_pointer_move:pe,canvas_render:Se,picks_render:Ue}=ae;await Ee.init(),g()}catch(A){g(A)}}),1)},1285:(A,e,t)=>{var g=t(1388),I=t(6560),i=(t(4540),t(8e3));(0,I.co)({init(){this.accessorCache=new Map},getAccessor(A,e){const{type:t,bitSize:I,bitOffset:Q,byteSize:C}=e,B=[],r=void 0===C&&(7&I||7&Q);r&&B.push("Unaligned");let n=g.hQ[t];I>32&&(t===g.Z9.Int||t===g.Z9.Uint)&&(n=I<=64?`Big${n}`:`Jumbo${n}`),B.push(n,`${t===g.Z9.Bool&&C?8*C:I}`),r&&B.push(`@${Q}`);const o=A+B.join("");let s=DataView.prototype[o];if(s)return s;if(s=this.accessorCache.get(o),s)return s;for(;B.length>0;){const t=`getAccessor${B.join("")}`;if(s=this[t]?.(A,e))break;B.pop()}if(!s)throw new Error(`No accessor available: ${o}`);return(0,i.n8)(s,"name",(0,i.vQ)(o)),this.accessorCache.set(o,s),s}})},5239:(A,e,t)=>{var g=t(1388);(0,t(6560).co)({getAccessorInt(A,e){const{bitSize:t,byteSize:I}=e;if(I){const e=this.getAccessor(A,{type:g.Z9.Uint,bitSize:8*I,byteSize:I}),i=2**(t-1),Q=i-1;return"get"===A?function(A,t){const g=e.call(this,A,t);return(g&Q)-(g&i)}:function(A,t,g){const I=t<0?i|t&Q:t&Q;e.call(this,A,I,g)}}}})},1388:(A,e,t)=>{t.d(e,{AD:()=>Q,EK:()=>I,F7:()=>u,Q9:()=>c,UT:()=>r,Z9:()=>s,e2:()=>o,ev:()=>g,hQ:()=>a,pK:()=>E,sU:()=>B,tv:()=>n,uE:()=>C,yi:()=>i});const g={Primitive:0,Array:1,Struct:2,Union:3,ErrorUnion:4,ErrorSet:5,Enum:6,Optional:7,Pointer:8,Slice:9,Vector:10,Opaque:11,ArgStruct:12,VariadicStruct:13,Function:14},I=Object.keys(g),i={HasValue:1,HasObject:2,HasPointer:4,HasSlot:8},Q={IsSize:16},C={HasSentinel:16,IsString:32,IsTypedArray:64,IsClampedArray:128},B={IsExtern:16,IsPacked:32,IsIterator:64,IsTuple:128,IsAllocator:256,IsPromise:512,IsGenerator:1024,IsAbortSignal:2048,IsOptional:4096},r={HasLength:16,IsMultiple:32,IsSingle:64,IsConst:128,IsNullable:256},n={HasSentinel:16,IsString:32,IsTypedArray:64,IsClampedArray:128,IsOpaque:256},o={HasOptions:16,IsThrowing:32,IsAsync:64},s={Void:0,Bool:1,Int:2,Uint:3,Float:4,Object:5,Type:6,Literal:7,Null:8,Undefined:9,Unsupported:10},a=Object.keys(s),E={IsRequired:1,IsReadOnly:2,IsPartOfSet:4,IsSelector:8,IsMethod:16,IsSentinel:32,IsBackingInt:64},c={OK:0,Failure:1,Deadlock:2,Disabled:3},u={IsInactive:1,IsImmutable:2,IgnoreUncreated:4,IgnoreInactive:8,IgnoreArguments:16,IgnoreRetval:32}},6560:(A,e,t)=>{t.d(e,{NP:()=>Q,co:()=>i});var g=t(8e3);const I={name:"",mixins:[],constructor:null};function i(A){return I.constructor||I.mixins.push(A),A}function Q(){return I.constructor||(I.constructor=function(A,e){const t=[],I=function(){for(const A of t)A.call(this)},{prototype:i}=I;(0,g.n8)(I,"name",(0,g.vQ)(A));for(const A of e)for(let[e,I]of Object.entries(A))if("init"===e)t.push(I);else{if("function"==typeof I);else{let A=i[e];if(void 0!==A)if(A?.constructor===Object)I=Object.assign({...A},I);else if(A!==I)throw new Error(`Duplicate property: ${e}`)}(0,g.n8)(i,e,(0,g.vQ)(I))}return I}(I.name,I.mixins),I.name="",I.mixins=[]),I.constructor}},4762:(A,e,t)=>{t.d(e,{BC:()=>Q,BY:()=>p,G9:()=>D,Jc:()=>K,L2:()=>s,O0:()=>C,Pd:()=>d,QB:()=>U,Qm:()=>h,SB:()=>c,UQ:()=>b,Uv:()=>y,V0:()=>x,Vp:()=>N,Y8:()=>a,Zb:()=>n,_L:()=>E,_l:()=>m,ci:()=>B,ck:()=>G,d_:()=>J,is:()=>o,nz:()=>l,qG:()=>f,qx:()=>R,t7:()=>r,v2:()=>M,vp:()=>v,x1:()=>F,xH:()=>u,xp:()=>S,zy:()=>w});var g=t(1388),I=t(4540),i=t(8e3);Error;class Q extends SyntaxError{constructor(A){super(`Cannot convert ${A} to an Int`)}}class C extends TypeError{constructor(){super("Unsupported")}}class B extends TypeError{constructor(A){const{name:e}=A;super(`An initializer must be provided to the constructor of ${e}, even when the intended value is undefined`)}}class r extends TypeError{constructor(A,e,t=null){const{name:I,type:i,byteSize:Q}=A,C=e.byteLength,B=1!==Q?"s":"";let r;r=i!==g.ev.Slice||t?`${I} has ${i===g.ev.Slice?t.length*Q:Q} byte${B}, received ${C}`:`${I} has elements that are ${Q} byte${B} in length, received ${C}`,super(r)}}class n extends TypeError{constructor(A){const{type:e,byteSize:t,typedArray:I}=A,i=1!==t?"s":"",Q=["ArrayBuffer","DataView"].map(Y);let C;I&&Q.push(Y(I.name)),C=e===g.ev.Slice?`Expecting ${H(Q)} that can accommodate items ${t} byte${i} in length`:`Expecting ${H(Q)} that is ${t} byte${i} in length`,super(C)}}TypeError,TypeError,TypeError,TypeError,TypeError,TypeError,TypeError;class o extends TypeError{constructor(A,e,t){const{name:g}=A,I=[];if(Array.isArray(e))for(const A of e)I.push(Y(A));else I.push(Y(e));const i=q(t);super(`${g} expects ${H(I)} as argument, received ${i}`)}}class s extends o{constructor(A,e,t=!1){const{instance:{members:[Q]},type:C,constructor:B}=A,r=[],n=(0,i.BF)(Q);if(n){let A;switch(Q.structure?.type){case g.ev.Enum:A="enum item";break;case g.ev.ErrorSet:A="error";break;default:A=n}r.push(`array of ${A}s`)}else r.push("array of objects");B[I.pM]&&r.push(B[I.pM].name),C===g.ev.Slice&&t&&r.push("length"),super(A,r.join(" or "),e)}}class a extends TypeError{constructor(A,e,t){const{name:g,length:I,instance:{members:[i]}}=A,{structure:{constructor:Q}}=i,{length:C,constructor:B}=t,r=e?.length??I,n=1!==r?"s":"";let o;o=B===Q?"only a single one":B.child===Q?`a slice/array that has ${C}`:`${C} initializer${C>1?"s":""}`,super(`${g} has ${r} element${n}, received ${o}`)}}class E extends TypeError{constructor(A,e){super(A<0?"Length of slice cannot be negative":`Length of slice can be ${e} or less, received ${A}`)}}class c extends TypeError{constructor(A,e){const{name:t}=A;super(`Missing initializers for ${t}: ${e.join(", ")}`)}}class u extends TypeError{constructor(A,e){const{name:t,instance:{members:g}}=A;let I;I=g.find((A=>A.name===e))?`Comptime value cannot be changed: ${e}`:`${t} does not have a property with that name: ${e}`,super(I)}}class l extends Error{constructor(A,e,t=!1){super();const g=g=>{e-=g;const I=1!=(A-=g)?"s":"",i=t?"at least ":"";this.message=`Expecting ${i}${A} argument${I}, received ${e}`,this.stack=L(this.stack,"new Arg(")};g(0),(0,i.n8)(this,I.q6,{value:g,enumerable:!1})}}class f extends Error{constructor(){super("Undefined argument")}}class w extends TypeError{constructor(){super("Non-slice pointers can only be created with the help of the new operator")}}class h extends TypeError{constructor(){super("Casting to function is not allowed")}}class D extends TypeError{constructor(A,e){const{name:t}=A,{constructor:{name:g}}=e;super(`Conversion of ${g} to ${t} requires an explicit cast`)}}TypeError,TypeError;class y extends TypeError{constructor(A,e){super(`Unable to simultaneously align memory to ${e}-byte and ${A}-byte boundary`)}}TypeError;class d extends TypeError{constructor(A,e){const t=q(e);super(`Expected ${Y(A)}, received ${t}`)}}TypeError;class p extends TypeError{constructor(){super("Null pointer")}}class S extends TypeError{constructor(A){super(`Object has been freed already: ${A.constructor.name}`)}}class U extends TypeError{constructor(A,e){const{name:t}=A;let g;if(null!=e){const A=e instanceof Object&&e.constructor!==Object?`${e.constructor.name} object`:typeof e;g=`${O(A)} ${A}`}else g=e+"";super(`${t} cannot point to ${g}`)}}class F extends TypeError{constructor(){super("Pointers in Zig memory cannot point to garbage-collected object")}}TypeError;class m extends RangeError{constructor(A,e){const{name:t}=A;super(`Index exceeds the size of ${t??"array"}: ${e}`)}}class b extends TypeError{constructor(A){const{name:e}=A;super((void 0!==e?`Property ${e}`:"Element")+" can only be undefined")}}class N extends TypeError{constructor(A){const{name:e,structure:{name:t}}=A;super(`Unable to create ${t} as it is not situated on a byte boundary: ${e}`)}}class k extends TypeError{constructor(){super("Unable to modify read-only object")}}class G extends TypeError{constructor(A){const{name:e}=A;super(`${e} cannot point to a read-only object`)}}TypeError,TypeError,TypeError;class M extends TypeError{constructor(){super("Unexpected async generator")}}class v extends Error{constructor(A,e=0){if(A instanceof Error)return super(A.message),A.stack=L(this.stack,e),A;super(A??"Error encountered in Zig code")}}class K extends v{constructor(A){super("Program exited"),this.code=A}}function J(A,e){const t=t=>{e-=t,A.message=`args[${e}]: ${A.message}`,A.stack=L(A.stack,"new Arg(")};return t(0),(0,i.n8)(A,I.q6,{value:t,enumerable:!1}),A}function L(A,e){if("string"==typeof A){const t=A.split("\n"),g=t.findIndex((A=>A.includes(e)));-1!==g&&(t.splice(1,g),A=t.join("\n"))}return A}function R(A,e,t){return t instanceof RangeError&&!(t instanceof m)&&(t=new m(A,e)),t}function x(){throw new k}function q(A){const e=typeof A;let t;return t="object"===e?A?Object.prototype.toString.call(A):"null":e,Y(t)}function Y(A){return`${O(A)} ${A}`}function O(A){return/^\W*[aeiou]/i.test(A)?"an":"a"}function H(A,e="or"){const t=` ${e} `;return A.length>2?A.slice(0,-1).join(", ")+t+A[A.length-1]:A.join(t)}},4358:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4540);(0,I.co)({init(){this.variables=[]},getSpecialExports(){const A=A=>{if(void 0===A)throw new Error("Not a Zig type");return A};return{init:(...A)=>this.initialize?.(...A),abandon:()=>this.abandonModule?.(),connect:A=>this.consoleObject=A,sizeOf:e=>A(e?.[i.SK]),alignOf:e=>A(e?.[i.Ec]),typeOf:e=>Q[A(e?.[i.ZE])]}},recreateStructures(A,e){Object.assign(this,e);const t=(A,e)=>{for(const[t,g]of Object.entries(e))A[t]=I(g);return A},g=A=>A.length?A.buffer:new ArrayBuffer(0),I=A=>{const{memory:e,structure:I,actual:Q}=A;if(e){if(Q)return Q;{const{array:Q,offset:C,length:B}=e,r=this.obtainView(g(Q),C,B),{handle:n,const:o}=A,s=I?.constructor,a=A.actual=s.call(i.M0,r);return o&&this.makeReadOnly(a),A.slots&&t(a[i._f],A.slots),n&&this.variables.push({handle:n,object:a}),a}}return I};this.resetGlobalErrorSet?.();const Q=new Map;for(const e of A){for(const A of[e.instance,e.static])if(A.template){const{slots:e,memory:t,handle:I}=A.template,C=A.template={};if(t){const{array:A,offset:e,length:Q}=t;C[i.Qy]=this.obtainView(g(A),e,Q),I&&this.variables.push({handle:I,object:C})}if(e){const A=C[i._f]={};Q.set(A,e)}}this.defineStructure(e)}for(const[A,e]of Q)t(A,e);for(const e of A)this.finalizeStructure(e)}});const Q=g.EK.map((A=>A.replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase()))},4828:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540);(0,I.co)({init(){this.jsFunctionThunkMap=new Map,this.jsFunctionCallerMap=new Map,this.jsFunctionControllerMap=new Map,this.jsFunctionIdMap=new WeakMap,this.jsFunctionNextId=1},getFunctionId(A){let e=this.jsFunctionIdMap.get(A);return void 0===e&&(e=this.jsFunctionNextId++,this.jsFunctionIdMap.set(A,e)),e},getFunctionThunk(A,e){const t=this.getFunctionId(A);let g=this.jsFunctionThunkMap.get(t);if(void 0===g){const A=this.getViewAddress(e[Q.Qy]),I=this.createJsThunk(A,t);if(!I)throw new Error("Unable to create function thunk");g=this.obtainZigView(I,0),this.jsFunctionThunkMap.set(t,g),this.jsFunctionControllerMap.set(t,e)}return g},createInboundCaller(A,e){const t=this.getFunctionId(A);return this.jsFunctionCallerMap.set(t,((t,I)=>{let C=g.Q9.OK,B=!1;try{const r=e(t);if(Q.g9 in r){r[Q.g9]("reset");const A=this.startContext();this.updatePointerTargets(A,r,!0),this.updateShadowTargets(A),this.endContext()}const n=function(A){try{if(!(e[Q.du]&&A instanceof Error))throw A;r[Q.zg](A)}catch(e){C=g.Q9.Failure,console.error(A)}},o=function(A){try{r[Q.zg](A)}catch(A){C=g.Q9.Failure,console.error(A)}};try{const e=A(...r),t=r.hasOwnProperty(Q.zg);if("Promise"===e?.[Symbol.toStringTag])if(I||t){const A=e.then(o,n);I&&A.then((()=>this.finalizeAsyncCall(I,C))),B=!0,C=g.Q9.OK}else C=g.Q9.Deadlock;else if(e?.[Symbol.asyncIterator]){if(!r.hasOwnProperty(Q.wg))throw new i.v2;this.pipeContents(e,r),C=g.Q9.OK}else null==e&&t||o(e)}catch(A){n(A)}}catch(A){console.error(A),C=g.Q9.Failure}return I&&!B&&this.finalizeAsyncCall(I,C),C})),function(...e){return A(...e)}},defineArgIterator(A){const e=this,t=A.filter((({structure:A})=>A.type===g.ev.Struct&&A.flags&g.sU.IsAllocator)).length;return{value(){let I,i=0,C=0,B=0;const r=[];for(const[n,{structure:o,type:s}]of A.entries())try{let A,a,E=this[n];s===g.Z9.Object&&E?.[Q.Qy]?.[Q.Dr]&&(E=new E.constructor(E)),o.type===g.ev.Struct&&(o.flags&g.sU.IsAllocator?(A=1===t?"allocator":"allocator"+ ++i,a=this[Q.Gz]=E):o.flags&g.sU.IsPromise?(A="callback",1==++C&&(a=e.createPromiseCallback(this,E))):o.flags&g.sU.IsGenerator?(A="callback",1==++C&&(a=e.createGeneratorCallback(this,E))):o.flags&g.sU.IsAbortSignal&&(A="signal",1==++B&&(a=e.createInboundSignal(E)))),void 0!==A?void 0!==a&&(I||={},I[A]=a):r.push(E)}catch(A){r.push(A)}return I&&r.push(I),r[Symbol.iterator]()}}},handleJsCall(A,e,t,I=0){const i=this.obtainZigView(e,t,!1),Q=this.jsFunctionCallerMap.get(A);return Q?Q(i,I):g.Q9.Failure},releaseFunction(A){const e=this.jsFunctionThunkMap.get(A),t=this.jsFunctionControllerMap.get(A);if(e&&t){const g=this.getViewAddress(t[Q.Qy]),I=this.getViewAddress(e);this.destroyJsThunk(g,I),this.releaseZigView(e),A&&(this.jsFunctionThunkMap.delete(A),this.jsFunctionCallerMap.delete(A),this.jsFunctionControllerMap.delete(A))}},exports:{handleJsCall:{argType:"iiii",returnType:"i"},releaseFunction:{argType:"i"}},imports:{createJsThunk:{argType:"ii",returnType:"i"},destroyJsThunk:{argType:"ii",returnType:"i"},finalizeAsyncCall:{argType:"ii"}}})},6973:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540);(0,I.co)({createOutboundCaller(A,e){const t=this,g=function(...I){if(!t.runThunk)return t.initPromise.then((()=>g(...I)));const C=new e(I,this?.[Q.Gz]);try{return t.invokeThunk(A,g,C)}catch(A){if(A instanceof i.Jc&&0===A.code)return;throw A}};return g},copyArguments(A,e,t,I,C){let B=0,r=0,n=0;const o=A[Q.Bl];for(const{type:Q,structure:s}of t){let t,a,E,c;if(s.type===g.ev.Struct&&(s.flags&g.sU.IsAllocator?t=(1==++n?I?.allocator??I?.allocator1:I?.[`allocator${n}`])??this.createDefaultAllocator(A,s):s.flags&g.sU.IsPromise?(a||=this.createPromise(A,I?.callback),t=a):s.flags&g.sU.IsGenerator?(E||=this.createGenerator(A,I?.callback),t=E):s.flags&g.sU.IsAbortSignal&&(c||=this.createSignal(s,I?.signal),t=c)),void 0===t&&(t=e[r++],void 0===t&&Q!==g.Z9.Void))throw new i.qG;try{o[B++].call(A,t,C)}catch(A){throw(0,i.d_)(A,B-1)}}},invokeThunk(A,e,t){const g=this.startContext(),I=t[Q.iw],C=this.getViewAddress(A[Q.Qy]),B=this.getViewAddress(e[Q.Qy]),r=Q.vm in t,n=Q.g9 in t;n&&this.updatePointerAddresses(g,t);const o=this.getShadowAddress(g,t,null,!1),s=I?this.getShadowAddress(g,I):0;this.updateShadows(g);const a=()=>{this.updateShadowTargets(g),n&&this.updatePointerTargets(g,t),this.libc&&this.flushStdout?.(),this.flushConsole?.(),this.endContext()};if(r&&(t[Q.vm]=a),!(I?this.runVariadicThunk(C,B,o,s,I.length):this.runThunk(C,B,o)))throw a(),new i.vp;if(t[Q.sF]?.(this.findShadowView(t[Q.Qy])),r){let A=null;try{A=t.retval}catch(e){A=new i.vp(e,1)}return null!=A&&t[Q.zg](A),t[Q.eR]??t[Q._d]}a();try{return t.retval}catch(A){throw new i.vp(A,1)}},imports:{runThunk:{argType:"iii",returnType:"b"},runVariadicThunk:{argType:"iiiii",returnType:"b"}}})},2427:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4540),Q=t(8e3);(0,I.co)({init(){const A={type:g.Z9.Int,bitSize:8,byteSize:1},e={type:g.Z9.Int,bitSize:16,byteSize:2},t={type:g.Z9.Int,bitSize:32,byteSize:4},I=this.getAccessor("get",A),i=this.getAccessor("set",A),C=this.getAccessor("get",e),B=this.getAccessor("set",e),r=this.getAccessor("get",t),n=this.getAccessor("set",t);this.copiers={0:Q.Ie,1:function(A,e){i.call(A,0,I.call(e,0))},2:function(A,e){B.call(A,0,C.call(e,0,!0),!0)},4:function(A,e){n.call(A,0,r.call(e,0,!0),!0)},8:function(A,e){n.call(A,0,r.call(e,0,!0),!0),n.call(A,4,r.call(e,4,!0),!0)},16:function(A,e){n.call(A,0,r.call(e,0,!0),!0),n.call(A,4,r.call(e,4,!0),!0),n.call(A,8,r.call(e,8,!0),!0),n.call(A,12,r.call(e,12,!0),!0)},any:function(A,e){let t=0,g=A.byteLength;for(;t+4<=g;)n.call(A,t,r.call(e,t,!0),!0),t+=4;for(;t+1<=g;)i.call(A,t,I.call(e,t)),t++}},this.resetters={0:Q.Ie,1:function(A,e){i.call(A,e,0)},2:function(A,e){B.call(A,e,0,!0)},4:function(A,e){n.call(A,e,0,!0)},8:function(A,e){n.call(A,e+0,0,!0),n.call(A,e+4,0,!0)},16:function(A,e){n.call(A,e+0,0,!0),n.call(A,e+4,0,!0),n.call(A,e+8,0,!0),n.call(A,e+12,0,!0)},any:function(A,e,t){let g=e;for(;g+4<=t;)n.call(A,g,0,!0),g+=4;for(;g+1<=t;)i.call(A,g,0),g++}}},defineCopier(A,e){const t=this.getCopyFunction(A,e);return{value(A){this[i.zN]?.(),A[i.zN]?.();const e=A[i.Qy],g=this[i.Qy];t(g,e)}}},defineResetter(A,e){const t=this.getResetFunction(e);return{value(){this[i.zN]?.();const g=this[i.Qy];t(g,A,e)}}},getCopyFunction(A,e=!1){return(e?void 0:this.copiers[A])??this.copiers.any},getResetFunction(A){return this.resetters[A]??this.resetters.any},...{defineRetvalCopier({byteSize:A,bitOffset:e}){if(A>0){const t=this,g=e>>3,I=this.getCopyFunction(A);return{value(e){const Q=this[i.Qy],{address:C}=e[i.Dr],B=new DataView(t.memory.buffer,C+g,A),r=new DataView(Q.buffer,Q.byteOffset+g,A);I(r,B)}}}},copyExternBytes(A,e,t){const{memory:g}=this,I=new DataView(g.buffer,e,t);this.getCopyFunction(t)(A,I)}}})},1669:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762);(0,I.co)({addIntConversion:A=>function(e,t){const I=A.call(this,e,t),{flags:Q,bitSize:C}=t;if("set"===e)return C>32?function(A,e,t){I.call(this,A,BigInt(e),t)}:function(A,e,t){const g=Number(e);if(!isFinite(g))throw new i.BC(e);I.call(this,A,g,t)};{const{flags:A}=t.structure;if(A&g.AD.IsSize&&C>32){const A=BigInt(Number.MAX_SAFE_INTEGER),e=BigInt(Number.MIN_SAFE_INTEGER);return function(t,g){const i=I.call(this,t,g);return e<=i&&i<=A?Number(i):i}}}return I}})},6929:(A,e,t)=>{var g=t(6560),I=t(4762),i=t(4540),Q=t(8e3);function C(A,e){return(0,Q.ZG)(A,e,(A=>A.address))}(0,g.co)({init(){this.isMemoryMapping=!0,this.memoryList=[],this.contextCount=0},startContext(){return++this.contextCount,{shadowList:[]}},endContext(){if(0==--this.contextCount){for(const{shadowDV:A}of this.memoryList)A&&this.freeShadowMemory(A);this.memoryList.splice(0)}},getShadowAddress(A,e,t,g){const C=e[i.Qy];if(t){if(void 0===t.address){const{start:e,end:r,targets:n}=t;let o,s=0;for(const A of n){const e=A[i.Qy],t=e.byteOffset,g=A.constructor[i.Ec]??e[i.Ec];(void 0===s||g>s)&&(s=g,o=t)}const a=r-e,E=this.allocateShadowMemory(a+s,1),c=this.getViewAddress(E),u=(0,Q.hJ)((0,Q.Au)(c,o-e),s),l=(0,Q.Au)(u,e-o);for(const A of n){const t=A[i.Qy],g=t.byteOffset;if(g!==o){const C=A.constructor[i.Ec]??t[i.Ec];if((0,Q.on)((0,Q.Au)(l,g-e),C))throw new I.Uv(C,s)}}const f=E.byteOffset+Number(l-c),w=new DataView(E.buffer,f,a);w[i.Dr]={address:l,len:a,align:1,unalignedAddress:c,type:B.Scratch};const h=new DataView(C.buffer,Number(e),a),D=this.registerMemory(l,a,1,g,h,w);A.shadowList.push(D),t.address=l}return(0,Q.Au)(t.address,C.byteOffset-t.start)}{const t=e.constructor[i.Ec]??C[i.Ec],I=C.byteLength,Q=this.allocateShadowMemory(I,t),B=this.getViewAddress(Q),r=this.registerMemory(B,I,1,g,C,Q);return A.shadowList.push(r),B}},updateShadows(A){const e=this.getCopyFunction();for(let{targetDV:t,shadowDV:g}of A.shadowList)g=this.restoreView(g),e(g,t)},updateShadowTargets(A){const e=this.getCopyFunction();for(let{targetDV:t,shadowDV:g,writable:I}of A.shadowList)I&&(g=this.restoreView(g),e(t,g))},registerMemory(A,e,t,g,I,i){const Q=C(this.memoryList,A);let B=this.memoryList[Q-1];return B?.address===A&&B.len===e?B.writable||=g:(B={address:A,len:e,align:t,writable:g,targetDV:I,shadowDV:i},this.memoryList.splice(Q,0,B)),B},unregisterMemory(A,e){const t=C(this.memoryList,A),g=this.memoryList[t-1];if(g?.address===A&&g.len===e)return this.memoryList.splice(t-1,1),g},findMemory(A,e,t,g){let I=t*(g??0);const B=C(this.memoryList,e),r=this.memoryList[B-1];let n;if(r?.address===e&&r.len===I)n=r.targetDV;else if(r?.address<=e&&(0,Q.Au)(e,I)<=(0,Q.Au)(r.address,r.len)){const A=Number(e-r.address),t=void 0===g,{targetDV:Q}=r;t&&(I=Q.byteLength-A),n=this.obtainView(Q.buffer,Q.byteOffset+A,I),t&&(n[i.Ec]=r.align)}if(n){let{targetDV:e,shadowDV:t}=r;t&&A&&!A.shadowList.includes(r)&&(t=this.restoreView(t),this.getCopyFunction()(e,t))}else n=this.obtainZigView(e,I);return n},findShadowView(A){for(const{shadowDV:e,targetDV:t}of this.memoryList)if(t===A)return e},releaseZigView(A){const e=A[i.Dr],t=e?.address;t&&t!==Q.Y$&&(e.address=Q.Y$)},getViewAddress(A){const e=A[i.Dr];if(e)return e.address;{const e=this.getBufferAddress(A.buffer);return(0,Q.Au)(e,A.byteOffset)}},...{imports:{allocateScratchMemory:{argType:"ii",returnType:"i"},freeScratchMemory:{argType:"iii"}},exports:{getViewAddress:{argType:"v",returnType:"i"}},usizeMaxBuffer:new ArrayBuffer(0),allocateShadowMemory(A,e){const t=A?this.allocateScratchMemory(A,e):0;if(!t&&A)throw new Error("Out of memory");const g=this.obtainZigView(t,A),I=g?.[i.Dr];return I&&(I.align=e),g},freeShadowMemory(A){const{address:e,unalignedAddress:t,len:g,align:I}=A[i.Dr];g&&this.freeScratchMemory(t??e,g,I),this.releaseZigView(A)},obtainZigView(A,e,t=!0){if((0,Q.cv)(A)&&(A=e>0?0:Q.Fy),!A&&e)return null;let{buffer:g}=this.memory;return A===Q.Fy&&(g=this.usizeMaxBuffer,A=Q.$k,e=0),t?this.obtainView(g,A,e):new DataView(g,A,e)},getTargetAddress(A,e,t,g){const I=e[i.Qy];return I[i.Dr]?this.getViewAddress(I):0===I.byteLength?0:this.getShadowAddress(A,e,t,g)},getBufferAddress:A=>0}});const B={Normal:0,Scratch:1}},4936:(A,e,t)=>{var g=t(6560),I=t(8e3);(0,g.co)({init(){this.abandoned=!1,this.nextValueIndex=1,this.valueMap=new Map,this.valueIndices=new Map,this.options=null,this.executable=null,this.memory=null,this.table=null,this.initialTableLength=0,this.exportedFunctions=null},releaseFunctions(){const A=()=>{throw new Error("Module was abandoned")};for(const e of Object.keys(this.imports))this[e]&&(this[e]=A)},abandonModule(){this.abandoned||(this.releaseFunctions(),this.unlinkVariables?.(),this.abandoned=!0)},...{imports:{initialize:{argType:""}},exports:{displayPanic:{argType:"ii"}},async initialize(A){this.setCustomWASI?.(A),await this.initPromise},getObjectIndex(A){if(null!=A){let e=this.valueIndices.get(A);return void 0===e&&(e=this.nextValueIndex++,this.valueIndices.set(A,e),this.valueMap.set(e,A)),e}return 0},fromWebAssembly(A,e){switch(A){case"v":case"s":return this.valueMap.get(e);case"i":return e;case"b":return!!e}},toWebAssembly(A,e){switch(A){case"v":case"s":return this.getObjectIndex(e);case"i":return e;case"b":return e?1:0}},exportFunction(A,e="",t="",g){return A?(...g)=>{g=g.map(((A,t)=>this.fromWebAssembly(e.charAt(t),A)));const I=A.apply(this,g);return this.toWebAssembly(t,I)}:()=>{}},importFunction(A,e="",t=""){return(...g)=>{g=g.map(((A,t)=>this.toWebAssembly(e.charAt(t),A)));const I=A.apply(this,g);return this.fromWebAssembly(t,I)}},exportFunctions(){const A={};for(const[e,{argType:t,returnType:g,alias:I}]of Object.entries(this.exports)){const i=this[I??e];i&&(A[`_${e}`]=this.exportFunction(i,t,g,e))}return A},importFunctions(A){for(const[e,{argType:t,returnType:g}]of Object.entries(this.imports)){const i=A[e];i&&(0,I.n8)(this,e,{value:this.importFunction(i,t,g)})}},async instantiateWebAssembly(A,e){const{memoryInitial:t,memoryMax:g,tableInitial:i,multithreaded:Q}=this.options=e,C=await A,B="Response"===C[Symbol.toStringTag]?"Streaming":"",r=WebAssembly,n=r["compile"+B],o=this.executable=await n(C),s=this.exportFunctions(),a={},E={},c={},u=this.exportedModules={env:a,wasi:E,wasi_snapshot_preview1:c};for(const{module:A,name:e,kind:t}of r.Module.imports(o))"function"===t&&("env"===A?a[e]=s[e]??I.Ie:"wasi_snapshot_preview1"===A?c[e]=this.getWASIHandler(e):"wasi"===A&&(E[e]=this.getThreadHandler?.(e)??I.Ie));return this.memory=a.memory=new r.Memory({initial:t,maximum:g,shared:Q}),this.table=a.__indirect_function_table=new r.Table({initial:i,element:"anyfunc",shared:Q}),this.initialTableLength=i,new r.Instance(o,u)},loadModule(A,e){return this.initPromise=(async()=>{const t=await this.instantiateWebAssembly(A,e),{exports:g}=t;if(this.importFunctions(g),this.customWASI){const A={...g,memory:this.memory},e=new Proxy(t,{get:(e,t)=>"exports"===t?A:e[t]});this.customWASI.initialize?.(e)}this.initialize()})()},displayPanic(A,e){const t=new Uint8Array(this.memory.buffer,A,e),g=(0,I.g7)(t);console.error(`Zig panic: ${g}`)}}})},9268:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4540);(0,I.co)({linkVariables(A){if(!this.memory)return void(this.initPromise=this.initPromise.then((()=>this.linkVariables(A))));const e=this.getCopyFunction();for(const{object:t,handle:I}of this.variables){const Q=t[i.Qy],C=I,B=t[i.Qy]=this.obtainZigView(C,Q.byteLength);A&&e(B,Q),t.constructor[i.fV]?.save?.(B,t);const r=A=>{const e=A[i._f];if(e){const A=B.byteOffset;for(const t of Object.values(e))if(t){const e=t[i.Qy];if(e.buffer===Q.buffer){const g=A+e.byteOffset-Q.byteOffset;t[i.Qy]=this.obtainView(B.buffer,g,e.byteLength),t.constructor[i.fV]?.save?.(B,t),r(t)}}}};r(t),t[i.g9]?.((function(){this[i.q6]()}),g.F7.IgnoreInactive)}},unlinkVariables(){const A=this.getCopyFunction();for(const{object:e}of this.variables){const t=this.restoreView(e[i.Qy]),g=t[i.Dr];g&&A(e[i.Qy]=this.allocateMemory(g.len),t)}},imports:{recreateAddress:{argType:"i",returnType:"i"}}})},7409:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4540),Q=t(8e3);(0,I.co)({updatePointerAddresses(A,e){const t=new Map,I=new Map,C=[],B=function(A){const e=this[i.C7];if(void 0===t.get(e)){const A=e[i._f][0];if(A){const g={target:A,writable:!e.constructor.const},r=A[i.Qy];if(r[i.Dr])t.set(e,null);else{t.set(e,A);const n=I.get(r.buffer);if(n){const A=Array.isArray(n)?n:[n],e=(0,Q.ZG)(A,r.byteOffset,(A=>A.target[i.Qy].byteOffset));A.splice(e,0,g),Array.isArray(n)||(I.set(r.buffer,A),C.push(A))}else I.set(r.buffer,g);A[i.g9]?.(B,0)}}}},r=g.F7.IgnoreRetval|g.F7.IgnoreInactive;e[i.g9](B,r);const n=this.findTargetClusters(C),o=new Map;for(const A of n)for(const e of A.targets)o.set(e,A);for(const[e,g]of t)if(g){const t=o.get(g),I=t?.writable??!e.constructor.const;e[i.BD]=this.getTargetAddress(A,g,t,I),i.pi in e&&(e[i.pi]=g.length)}},updatePointerTargets(A,e,t=!1){const I=new Map,Q=function(e){const t=this[i.C7];if(!I.get(t)){I.set(t,!0);const C=t[i._f][0],B=C&&e&g.F7.IsImmutable?C:t[i.q6](A,!0,!(e&g.F7.IsInactive)),r=t.constructor.const?g.F7.IsImmutable:0;r&g.F7.IsImmutable||C&&!C[i.Qy][i.Dr]&&C[i.g9]?.(Q,r),B!==C&&B&&!B[i.Qy][i.Dr]&&B?.[i.g9]?.(Q,r)}},C=t?g.F7.IgnoreRetval:0;e[i.g9](Q,C)},findTargetClusters(A){const e=[];for(const t of A){let A=null,g=0,I=0,Q=null;for(const{target:C,writable:B}of t){const t=C[i.Qy],{byteOffset:r,byteLength:n}=t,o=r+n;let s=!0;A&&(I>r?(Q?Q.writable||=B:(Q={targets:[A],start:g,end:I,address:void 0,misaligned:void 0,writable:B},e.push(Q)),Q.targets.push(C),o>I?Q.end=o:s=!1):Q=null),s&&(A=C,g=r,I=o)}}return e}})},2436:(A,e,t)=>{var g=t(6560),I=t(8e3);(0,g.co)({...{exports:{allocateJsThunk:{argType:"ii",returnType:"i"},freeJsThunk:{argType:"ii",returnType:"i"}},init(){this.thunkSources=[],this.thunkMap=new Map},addJsThunkSource(){const{memoryInitial:A,memoryMax:e,tableInitial:t,multithreaded:g}=this.options,i=WebAssembly,Q={},C={},B={env:Q,wasi:{},wasi_snapshot_preview1:C};for(const{module:A,name:e,kind:t}of i.Module.imports(this.executable))"function"===t&&("env"===A?Q[e]=I.Ie:"wasi_snapshot_preview1"===A&&(C[e]=I.Ie));Q.memory=new i.Memory({initial:A,maximum:e,shared:g});const r=Q.__indirect_function_table=new i.Table({initial:t,element:"anyfunc"}),{exports:n}=new i.Instance(this.executable,B),{createJsThunk:o,destroyJsThunk:s}=n,a={thunkCount:0,createJsThunk:o,destroyJsThunk:s,table:r};return this.thunkSources.unshift(a),a},allocateJsThunk(A,e){let t,g=0;for(t of this.thunkSources){g=t.createJsThunk(A,e);break}g||(t=this.addJsThunkSource(),g=t.createJsThunk(A,e));const I=t.table.get(g);let i=0;for(let A=this.table.length-1;A>=this.initialTableLength;A--)if(!this.table.get(A)){i=A;break}return i||(i=this.table.length,this.table.grow(8)),this.table.set(i,I),t.thunkCount++,this.thunkMap.set(I,{source:t,sourceAddress:g}),i},freeJsThunk(A,e){let t=0;const g=this.table.get(e);this.table.set(e,null);const I=this.thunkMap.get(g);if(I){const{source:e,sourceAddress:i}=I;if(t=e.destroyJsThunk(A,i),0==--e.thunkCount){const A=this.thunkSources.indexOf(e);-1!==A&&this.thunkSources.splice(A,1)}this.thunkMap.delete(g)}return t}}})},8738:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);function B(A,e){const{byteSize:t,type:I}=e;if(!(I===g.ev.Slice?A.byteLength%t==0:A.byteLength===t))throw new i.t7(e,A)}function r(A){throw new i.Zb(A)}(0,I.co)({init(){this.viewMap=new WeakMap},extractView(A,e,t=r){const{type:I,byteSize:n,constructor:o}=A;let s;const a=e?.[Symbol.toStringTag];if(a&&("DataView"===a?s=this.registerView(e):"ArrayBuffer"===a?s=this.obtainView(e,0,e.byteLength):(a&&a===o[Q.pM]?.name||"Uint8ClampedArray"===a&&o[Q.pM]===Uint8Array)&&(s=this.obtainView(e.buffer,e.byteOffset,e.byteLength))),!s){const t=e?.[Q.Qy];if(t){const{constructor:Q,instance:{members:[B]}}=A;if((0,C.pU)(e,Q))return t;if(function(A){return A===g.ev.Array||A===g.ev.Vector||A===g.ev.Slice}(I)){const{byteSize:Q,structure:{constructor:r}}=B,o=(0,C.be)(e,r);if(void 0!==o){if(I===g.ev.Slice||o*Q===n)return t;throw new i.Y8(A,null,e)}}}}return s?void 0!==n&&B(s,A):t?.(A,e),s},assignView(A,e,t,I,C){const{byteSize:r,type:n}=t,o=r??1;if(A[Q.Qy]){const I=n===g.ev.Slice?o*A.length:o;if(e.byteLength!==I)throw new i.t7(t,e,A);const C={[Q.Qy]:e};A.constructor[Q.fd]?.validateData?.(C,A.length),A[Q.sF](C)}else{void 0!==r&&B(e,t);const g=e.byteLength/o,i={[Q.Qy]:e};A.constructor[Q.fd]?.validateData?.(i,g),C&&(I=!0),A[Q.IW](I?null:e,g,C),I&&A[Q.sF](i)}},findViewAt(A,e,t){let g,I=this.viewMap.get(A);if(I)if(I instanceof DataView)if(I.byteOffset===e&&I.byteLength===t)g=I,I=null;else{const e=I,t=`${e.byteOffset}:${e.byteLength}`;I=new Map([[t,e]]),this.viewMap.set(A,I)}else g=I.get(`${e}:${t}`);return g?.[Q.Dr]?.address===C.Y$&&(g=null),{existing:g,entry:I}},obtainView(A,e,t){const{existing:g,entry:I}=this.findViewAt(A,e,t);let i;return g||(i=new DataView(A,e,t),I?I.set(`${e}:${t}`,i):this.viewMap.set(A,i),A!==this.memory?.buffer&&A!==this.usizeMaxBuffer||(i[Q.Dr]={address:e,len:t}),i)},registerView(A){if(!A[Q.Dr]){const{buffer:e,byteOffset:t,byteLength:g}=A,{existing:I,entry:i}=this.findViewAt(e,t,g);if(I)return I;i?i.set(`${t}:${g}`,A):this.viewMap.set(e,A)}return A},allocateMemory(A,e=0,t=null){return t?.alloc?.(A,e)??this.allocateJSMemory(A,e)},...{allocateJSMemory(A,e){return this.obtainView(new ArrayBuffer(A),0,A)},restoreView(A){const e=A?.[Q.Dr];return e?.len>0&&0===A.buffer.byteLength&&(A=this.obtainZigView(e.address,e.len),e.align&&(A[Q.Dr].align=e.align)),A},defineRestorer(){const A=this;return{value(){const e=this[Q.Qy],t=A.restoreView(e);if(e!==t){const A=this[Q.KK]??this;return A[Q.Qy]=t,A.constructor[Q.fV]?.save?.(t,A[Q.rG]??A),!0}return!1}}}}})},1432:(A,e,t)=>{var g=t(6560),I=t(4762),i=t(4540);(0,g.co)({makeReadOnly(A){B(A)}});const Q=Object.getOwnPropertyDescriptors,C=Object.defineProperty;function B(A){const e=A[i.C7];if(e)r(e,["length"]);else{const e=A[i.sO];e?(r(e),function(A){C(A,"set",{value:I.V0});const e=A.get;C(A,"get",{value:function(A){const t=e.call(this,A);return null===t?.[i.KK]&&B(t),t}})}(e)):r(A)}}function r(A,e=[]){const t=Q(A.constructor.prototype);for(const[g,i]of Object.entries(t))i.set&&!e.includes(g)&&(i.set=I.V0,C(A,g,i));C(A,i.KK,{value:A})}},4773:(A,e,t)=>{t.d(e,{M:()=>I});var g=t(6560);function I(){return new((0,g.NP)())}},1454:(A,e,t)=>{var g=t(6560),I=t(4540),i=t(8e3);function Q(){const A=this[I.sO]??this,e=this.length;let t=0;return{next(){let g,I;if(t<e){const e=t++;g=A.get(e),I=!1}else I=!0;return{value:g,done:I}}}}function C(A){const e=(0,i.L9)(A),t=this[I.sO]??this,g=this.length;let Q=0;return{next(){let A,I;if(Q<g){const g=Q++;A=[g,e((()=>t.get(g)))],I=!1}else I=!0;return{value:A,done:I}}}}function B(A){return{[Symbol.iterator]:C.bind(this,A),length:this.length}}(0,g.co)({defineArrayEntries:()=>(0,i.vQ)(B),defineArrayIterator:()=>(0,i.vQ)(Q)})},6402:(A,e,t)=>{var g=t(6560),I=t(4540),i=t(8e3);function Q(A){return{[Symbol.iterator]:B.bind(this,A),length:this[I.n5].length}}function C(A){return Q.call(this,A)[Symbol.iterator]()}function B(A){const e=(0,i.L9)(A),t=this,g=this[I.n5];let Q=0;return{next(){let A,I;if(Q<g.length){const i=g[Q++];A=[i,e((()=>t[i]))],I=!1}else I=!0;return{value:A,done:I}}}}(0,g.co)({defineStructEntries:()=>(0,i.vQ)(Q),defineStructIterator:()=>(0,i.vQ)(C)})},9098:(A,e,t)=>{t.d(e,{E:()=>I});var g=t(1388);function I(A,{get:e,set:t}){return void 0!==A?{get:function(){return e.call(this,A)},set:t?function(e,g){return t.call(this,A,e,g)}:void 0}:{get:e,set:t}}(0,t(6560).co)({defineMember(A,e=!0){if(!A)return{};const{type:t,structure:I}=A,i=this[`defineMember${g.hQ[t]}`].call(this,A);if(e&&I){const{type:e}=I,t=this[`transformDescriptor${g.EK[e]}`];if(t)return t.call(this,i,A)}return i}})},9494:(A,e,t)=>{var g=t(6560),I=t(4762),i=t(8e3);(0,g.co)({defineBase64(A){const e=this;return(0,i.NV)({get(){return(0,i.WG)(this.dataView)},set(t,g){if("string"!=typeof t)throw new I.Pd("string",t);const Q=(0,i.y4)(t);e.assignView(this,Q,A,!1,g)}})}})},7431:(A,e,t)=>{var g=t(6560),I=t(4762),i=t(4540),Q=t(8e3);(0,g.co)({defineDataView(A){const e=this;return(0,Q.NV)({get(){return this[i.zN]?.(),this[i.Qy]},set(t,g){if("DataView"!==t?.[Symbol.toStringTag])throw new I.Pd("DataView",t);e.assignView(this,t,A,!0,g)}})}})},7591:(A,e,t)=>{(0,t(6560).co)({defineMemberFloat(A){return this.defineMemberUsing(A,this.getAccessor)}})},6717:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(9098);function B(A){return(this[Q._f][A]??this[Q.tZ](A)).$}function r(A){return this[Q._f][A]??this[Q.tZ](A)}function n(A,e,t){(this[Q._f][A]??this[Q.tZ](A))[Q.Zv](e,t)}(0,I.co)({defineMemberObject:A=>(0,C.E)(A.slot,{get:A.structure.flags&g.yi.HasValue?B:r,set:A.flags&g.pK.IsReadOnly?i.V0:n})})},2164:(A,e,t)=>{var g=t(6560),I=t(4762),i=t(4540);(0,g.co)({...{defineMemberUsing(A,e){const{littleEndian:t}=this,{bitOffset:g,byteSize:Q}=A,C=e.call(this,"get",A),B=e.call(this,"set",A);if(void 0!==g){const A=g>>3;return{get:function(){try{return C.call(this[i.Qy],A,t)}catch(e){if(e instanceof TypeError&&this[i.zN]?.())return C.call(this[i.Qy],A,t);throw e}},set:function(e){try{return B.call(this[i.Qy],A,e,t)}catch(g){if(g instanceof TypeError&&this[i.zN]?.())return B.call(this[i.Qy],A,e,t);throw g}}}}return{get:function(e){try{return C.call(this[i.Qy],e*Q,t)}catch(g){if(g instanceof TypeError&&this[i.zN]?.())return C.call(this[i.Qy],e*Q,t);throw(0,I.qx)(A,e,g)}},set:function(e,g){try{return B.call(this[i.Qy],e*Q,g,t)}catch(C){if(C instanceof TypeError&&this[i.zN]?.())return B.call(this[i.Qy],e*Q,g,t);throw(0,I.qx)(A,e,C)}}}}}})},6135:(A,e,t)=>{var g=t(6560),I=t(3456);(0,g.co)({defineToJSON:()=>({value(){return(0,I.F)(this,!0)}})})},3793:(A,e,t)=>{var g=t(6560),I=t(4762),i=t(8e3);(0,g.co)({defineTypedArray(A){const e=this,t=this.getTypedArray(A);return(0,i.NV)({get(){const A=this.dataView,e=A.byteLength/t.BYTES_PER_ELEMENT;return new t(A.buffer,A.byteOffset,e)},set(g,i){if(g?.[Symbol.toStringTag]!==t.name)throw new I.Pd(t.name,g);const Q=new DataView(g.buffer,g.byteOffset,g.byteLength);e.assignView(this,Q,A,!0,i)}})}})},8305:(A,e,t)=>{(0,t(6560).co)({defineMemberUint(A){let e=this.getAccessor;return this.runtimeSafety&&(e=this.addRuntimeCheck(e)),e=this.addIntConversion(e),this.defineMemberUsing(A,e)}})},3456:(A,e,t)=>{t.d(e,{F:()=>r});var g=t(1388),I=t(6560),i=t(4540),Q=t(8e3);(0,I.co)({defineValueOf:()=>({value(){return r(this,!1)}})});const C=BigInt(Number.MAX_SAFE_INTEGER),B=BigInt(Number.MIN_SAFE_INTEGER);function r(A,e){const t={error:e?"return":"throw"},I=(0,Q.L9)(t),r=new Map,n=function(A){const Q="function"==typeof A?g.ev.Struct:A?.constructor?.[i.ZE];if(void 0===Q){if(e){if("bigint"==typeof A&&B<=A&&A<=C)return Number(A);if(A instanceof Error)return{error:A.message}}return A}let o=r.get(A);if(void 0===o){let e;switch(Q){case g.ev.Struct:e=A[i.lf](t),o=A.constructor[i.Wg]&g.sU.IsTuple?[]:{};break;case g.ev.Union:e=A[i.lf](t),o={};break;case g.ev.Array:case g.ev.Vector:case g.ev.Slice:e=A[i.lf](),o=[];break;case g.ev.Pointer:try{o=A["*"]}catch(A){o=Symbol.for("inaccessible")}break;case g.ev.Enum:o=I((()=>String(A)));break;case g.ev.Opaque:o={};break;default:o=I((()=>A.$))}if(o=n(o),r.set(A,o),e)for(const[A,t]of e)o[A]=n(t)}return o};return n(A)}},8539:(A,e,t)=>{var g=t(6560),I=t(4762);(0,g.co)({defineMemberVoid(A,e){const{bitOffset:t}=A;return{get(){},set:void 0!==t?function(e){if(void 0!==e)throw new I.UQ(A)}:function(e,t){if(void 0!==t)throw new I.UQ(A);if(e<0||e>=this.length)throw new I._l(A,e)}}}})},7679:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);(0,I.co)({defineStructure(A){const{type:e,byteSize:t}=A,I=this[`define${g.EK[e]}`],i=[],B={},r={dataView:this.defineDataView(A),base64:this.defineBase64(A),toJSON:this.defineToJSON(),valueOf:this.defineValueOf(),[Q.KK]:{value:null},[Q.Bl]:(0,C.vQ)(B),[Q.Rk]:(0,C.vQ)(i),[Q.sF]:this.defineCopier(t),[Q.zN]:this.defineRestorer()},n=A.constructor=I.call(this,A,r);for(const[A,e]of Object.entries(r)){const t=e?.set;t&&!B[A]&&"$"!==A&&(B[A]=t,i.push(A))}return(0,C.ny)(n.prototype,r),n},finalizeStructure(A){const{name:e,type:t,constructor:I,align:i,byteSize:B,flags:r,signature:n,static:{members:o,template:s}}=A,a=[],E={name:(0,C.vQ)(e),toJSON:this.defineToJSON(),valueOf:this.defineValueOf(),[Q.J2]:(0,C.vQ)(n),[Q.M0]:(0,C.vQ)(this),[Q.Ec]:(0,C.vQ)(i),[Q.SK]:(0,C.vQ)(B),[Q.ZE]:(0,C.vQ)(t),[Q.Wg]:(0,C.vQ)(r),[Q.n5]:(0,C.vQ)(a),[Q.pM]:(0,C.vQ)(this.getTypedArray(A)),[Symbol.iterator]:this.defineStructIterator(),[Q.lf]:this.defineStructEntries(),[Q.n5]:(0,C.vQ)(a)},c={[Symbol.toStringTag]:(0,C.vQ)(e)};for(const A of o){const{name:e,slot:t}=A;if(A.structure.type===g.ev.Function){const I=s[Q._f][t];E[e]=(0,C.vQ)(I),I.name||(0,C.n8)(I,"name",(0,C.vQ)(e));const[i,B]=/^(get|set)\s+([\s\S]+)/.exec(e)?.slice(1)??[],r="get"===i?0:1;if(i&&I.length===r&&(E[B]||={},E[B][i]=I),A.flags&g.pK.IsMethod){const A=function(...A){try{return I(this,...A)}catch(A){throw A[Q.q6]?.(1),A}};(0,C.ny)(A,{name:(0,C.vQ)(e),length:(0,C.vQ)(I.length-1)}),c[e]=(0,C.vQ)(A),i&&A.length===r&&((c[B]||={})[i]=A)}}else E[e]=this.defineMember(A),a.push(e)}E[Q._f]=a.length>0&&(0,C.vQ)(s[Q._f]);const u=this[`finalize${g.EK[t]}`];!1!==u?.call(this,A,E,c)&&((0,C.ny)(I.prototype,c),(0,C.ny)(I,E))},createConstructor(A,e={}){const{type:t,byteSize:I,align:B,flags:r,instance:{members:n,template:o}}=A,{onCastError:s}=e;let a;if(o?.[Q._f]){const A=n.filter((A=>A.flags&g.pK.IsReadOnly));A.length>0&&(a=A.map((A=>A.slot)))}const E=new C.UF,c=this,u=function(e,C={}){const{allocator:n}=C,l=this instanceof u;let f,w;if(l){if(0===arguments.length)throw new i.ci(A);if(f=this,r&g.yi.HasSlot&&(f[Q._f]={}),Q.IW in f)f[Q.Zv](e,n),w=f[Q.Qy];else{const A=t!==g.ev.Pointer?n:null;f[Q.Qy]=w=c.allocateMemory(I,B,A)}}else{if(Q.mL in u&&(f=u[Q.mL].call(this,e,C),!1!==f))return f;if(w=c.extractView(A,e,s),f=E.find(w))return f;f=Object.create(u.prototype),Q.IW in f?c.assignView(f,w,A,!1,!1):f[Q.Qy]=w,r&g.yi.HasSlot&&(f[Q._f]={})}if(a)for(const A of a)f[Q._f][A]=o[Q._f][A];return f[Q.f$]?.(),l&&(Q.IW in f||f[Q.Zv](e,n)),Q.vm in f&&(f=f[Q.vm]()),E.save(w,f)};return(0,C.n8)(u,Q.fV,(0,C.vQ)(E)),o?.[Q.Qy]&&(0,C.n8)(o,Q.zN,this.defineRestorer()),u},createApplier(A){const{instance:{template:e}}=A;return function(t,g){const I=Object.keys(t),C=this[Q.Rk],B=this[Q.Bl];for(const e of I)if(!(e in B))throw new i.xH(A,e);let r=0,n=0,o=0,s=0;for(const A of C){const e=B[A];e.special?A in t&&s++:(r++,A in t?n++:e.required&&o++)}if(0!==o&&0===s){const e=C.filter((A=>B[A].required&&!(A in t)));throw new i.SB(A,e)}if(s+n>I.length)for(const A of C)A in t&&(I.includes(A)||I.push(A));n<r&&0===s&&e&&e[Q.Qy]&&this[Q.sF](e);for(const A of I)B[A].call(this,t[A],g);return I.length}},getTypedArray(A){const{type:e,instance:t}=A;if(void 0!==e&&t){const[A]=t.members;switch(e){case g.ev.Enum:case g.ev.ErrorSet:case g.ev.Primitive:{const{byteSize:e,type:t}=A,I=t===g.Z9.Float?"Float":t===g.Z9.Int?"Int":"Uint",i=e>4&&t!==g.Z9.Float?"Big":"";return globalThis[i+I+8*e+"Array"]}case g.ev.Array:case g.ev.Slice:case g.ev.Vector:return this.getTypedArray(A.structure)}}}})},2244:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);(0,I.co)({defineArgStruct(A,e){const{flags:t,byteSize:I,align:B,length:r,instance:{members:n}}=A,o=this,s=n.slice(1),a=function(A,e){const C=this instanceof a;let n,E;if(C?(n=this,E=o.allocateMemory(I,B)):(n=Object.create(a.prototype),E=A),n[Q.Qy]=E,t&g.yi.HasSlot&&(n[Q._f]={}),!C)return n;{let I;if(t&g.e2.HasOptions&&A.length===r+1&&(I=A.pop()),A.length!==r)throw new i.nz(r,A.length);t&g.e2.IsAsync&&(n[Q.vm]=null),o.copyArguments(n,A,s,I,e)}};for(const A of n)e[A.name]=this.defineMember(A);const E=e.retval.set;return e.length=(0,C.vQ)(s.length),e[Q.tZ]=t&g.yi.HasObject&&this.defineVivificatorStruct(A),e[Q.g9]=t&g.yi.HasPointer&&this.defineVisitorArgStruct(n),e[Q.zg]=(0,C.vQ)((function(A){E.call(this,A,this[Q.Gz])})),e[Symbol.iterator]=this.defineArgIterator?.(s),e[Q.sF]=this.defineRetvalCopier(n[0]),a},finalizeArgStruct(A,e){const{flags:t}=A;e[Q.du]=(0,C.vQ)(!!(t&g.e2.IsThrowing))}})},9433:(A,e,t)=>{var g=t(6560),I=t(4540),i=t(8e3);(0,g.co)({defineFinalizerArray:({get:A,set:e})=>({value(){const t=new Proxy(this,Q);return(0,i.ny)(this,{[I.rG]:{value:t},get:{value:A.bind(this)},set:e&&{value:e.bind(this)}}),t}}),defineVivificatorArray(A){const{instance:{members:[e]}}=A,{byteSize:t,structure:g}=e,i=this;return{value:function(A){const{constructor:e}=g;this[I.zN]?.();const Q=this[I.Qy],C=Q.byteOffset+t*A,B=i.obtainView(Q.buffer,C,t);return this[I._f][A]=e.call(I.f7,B)}}}});const Q={get(A,e){const t="symbol"==typeof e?0:0|e;return 0!==t||t==e?A.get(t):e===I.sO?A:A[e]},set(A,e,t){const g="symbol"==typeof e?0:0|e;return 0!==g||g==e?A.set(g,t):A[e]=t,!0},deleteProperty(A,e){const t="symbol"==typeof e?0:0|e;return 0===t&&t!=e&&(delete A[e],!0)},has(A,e){const t="symbol"==typeof e?0:0|e;return 0!==t||t==e?t>=0&&t<A.length:A[e]},ownKeys(A){const e=[];for(let t=0,g=A.length;t<g;t++)e.push(`${t}`);return e.push("length",I.rG),e},getOwnPropertyDescriptor(A,e){const t="symbol"==typeof e?0:0|e;return 0===t&&t!=e?Object.getOwnPropertyDescriptor(A,e):t>=0&&t<A.length?{value:A.get(t),enumerable:!0,writable:!0,configurable:!0}:void 0}}},3509:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);(0,I.co)({defineArray(A,e){const{length:t,instance:{members:[I]},flags:B}=A,r=this.createApplier(A),n=this.defineMember(I),{set:o}=n,s=this.createConstructor(A),a=function(e,I){if((0,C.pU)(e,s))this[Q.sF](e),B&g.yi.HasPointer&&this[Q.g9]("copy",g.F7.Vivificate,e);else if("string"==typeof e&&B&g.uE.IsString&&(e={string:e}),e?.[Symbol.iterator]){if((e=(0,C.FU)(e)).length!==t)throw new i.Y8(A,this,e);let g=0;for(const A of e)o.call(this,g++,A,I)}else if(e&&"object"==typeof e){if(0===r.call(this,e))throw new i.L2(A,e)}else if(void 0!==e)throw new i.L2(A,e)};return e.$={get:C.V_,set:a},e.length=(0,C.vQ)(t),e.entries=e[Q.lf]=this.defineArrayEntries(),B&g.uE.IsTypedArray&&(e.typedArray=this.defineTypedArray(A),B&g.uE.IsString&&(e.string=this.defineString(A)),B&g.uE.IsClampedArray&&(e.clampedArray=this.defineClampedArray(A))),e[Symbol.iterator]=this.defineArrayIterator(),e[Q.Zv]=(0,C.vQ)(a),e[Q.vm]=this.defineFinalizerArray(n),e[Q.tZ]=B&g.yi.HasObject&&this.defineVivificatorArray(A),e[Q.g9]=B&g.yi.HasPointer&&this.defineVisitorArray(),s},finalizeArray(A,e){const{flags:t,instance:{members:[I]}}=A;e.child=(0,C.vQ)(I.structure.constructor),e[Q.fd]=t&g.uE.HasSentinel&&this.defineSentinel(A)}})},7382:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);(0,I.co)({defineFunction(A,e){const{instance:{members:[t],template:I},static:{template:B}}=A,r=new C.UF,{structure:{constructor:n}}=t,o=this,s=function(e){const t=this instanceof s;let a,E;if(t){if(0===arguments.length)throw new i.ci(A);if("function"!=typeof e)throw new i.Pd("function",e);if(n[Q.ZE]===g.ev.VariadicStruct||!B)throw new i.O0;a=o.getFunctionThunk(e,B)}else{if(this!==Q.M0)throw new i.Qm;a=e}if(E=r.find(a))return E;const c=n.prototype.length,u=t?o.createInboundCaller(e,n):o.createOutboundCaller(I,n);return(0,C.ny)(u,{length:(0,C.vQ)(c),name:(0,C.vQ)(t?e.name:"")}),Object.setPrototypeOf(u,s.prototype),u[Q.Qy]=a,r.save(a,u),u};return Object.setPrototypeOf(s.prototype,Function.prototype),e.valueOf=e.toJSON=(0,C.vQ)(C.Ng),s},finalizeFunction(A,e,t){t[Symbol.toStringTag]=void 0}})},1425:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);function B(A,e){return(0,C.xN)(A?.constructor?.child,e)&&A["*"]}function r(A,e,t){if(t&g.UT.IsMultiple){if(A?.constructor?.child?.child===e.child&&A["*"])return!0;if(t&g.UT.IsSingle&&B(A,e.child))return!0}return!1}(0,I.co)({definePointer(A,e){const{flags:t,byteSize:I,instance:{members:[n]}}=A,{structure:a}=n,{type:E,flags:c,byteSize:u=1}=a,l=t&g.UT.HasLength?I/2:I,{get:f,set:w}=this.defineMember({type:g.Z9.Uint,bitOffset:0,bitSize:8*l,byteSize:l,structure:{byteSize:l}}),{get:h,set:D}=t&g.UT.HasLength?this.defineMember({type:g.Z9.Uint,bitOffset:8*l,bitSize:8*l,byteSize:l,structure:{flags:g.AD.IsSize,byteSize:l}}):{},y=function(A,e=!0,I=!0){if(e||this[Q.Qy][Q.Dr]){if(!I)return this[Q._f][0]=void 0;{const e=k.child,I=f.call(this),i=t&g.UT.HasLength?h.call(this):E===g.ev.Slice&&c&g.tv.HasSentinel?b.findSentinel(I,e[Q.fd].bytes)+1:1;if(I!==this[Q.c6]||i!==this[Q.uL]){const C=b.findMemory(A,I,i,e[Q.SK]),B=C?e.call(Q.M0,C):null;return this[Q._f][0]=B,this[Q.c6]=I,this[Q.uL]=i,t&g.UT.HasLength&&(this[Q.E2]=null),B}}}return this[Q._f][0]},d=function(A){w.call(this,A),this[Q.c6]=A},p=c&g.tv.HasSentinel?1:0,S=t&g.UT.HasLength||c&g.tv.HasSentinel?function(A){D?.call?.(this,A-p),this[Q.uL]=A}:null,U=function(){const A=this[Q.C7]??this,e=!A[Q._f][0],I=y.call(A,null,e);if(!I){if(t&g.UT.IsNullable)return null;throw new i.BY}return t&g.UT.IsConst?o(I):I},F=c&g.yi.HasValue?function(){return U.call(this).$}:U,m=t&g.UT.IsConst?i.V0:function(A){return U.call(this).$=A},b=this,N=function(e,I){const n=a.constructor;if(B(e,n)){if(!(t&g.UT.IsConst)&&e.constructor.const)throw new i.G9(A,e);e=e[Q._f][0]}else if(t&g.UT.IsMultiple)r(e,n,t)&&(e=n(e[Q._f][0][Q.Qy]));else if(E===g.ev.Slice&&c&g.tv.IsOpaque&&e)if(e.constructor[Q.ZE]===g.ev.Pointer)e=e[Q.Qn]?.[Q.Qy];else if(e[Q.Qy])e=e[Q.Qy];else if(e?.buffer instanceof ArrayBuffer&&!(e instanceof Uint8Array||e instanceof DataView)){const{byteOffset:A,byteLength:t}=e;void 0!==A&&void 0!==t&&(e=new DataView(e.buffer,A,t))}if(e instanceof n){e[Q.zN]?.();const I=e[Q.KK];if(I){if(!(t&g.UT.IsConst))throw new i.ck(A);e=I}}else if((0,C.pU)(e,n))e=n.call(Q.M0,e[Q.Qy]);else if(t&g.UT.IsSingle&&t&g.UT.IsMultiple&&e instanceof n.child)e=n(e[Q.Qy]);else if(function(A,e){const t=A?.[Symbol.toStringTag];if(t){const g=e[Q.pM];if(g)switch(t){case g.name:case"DataView":return!0;case"ArrayBuffer":return g===Uint8Array||g===Int8Array;case"Uint8ClampedArray":return g===Uint8Array}if(e.child&&void 0!==(0,C.be)(A,e.child))return!0}return!1}(e,n))e=n(b.extractView(a,e));else if(null==e||e[Q.Qy]){if(!(void 0===e||t&g.UT.IsNullable&&null===e))throw new i.QB(A,e)}else{if(t&g.UT.IsSingle&&t&g.UT.IsMultiple&&"object"==typeof e&&!e[Symbol.iterator]){let A=!0;const t=n.prototype[Q.Bl];for(const g of Object.keys(e)){const e=t[g];if(e?.special){A=!1;break}}A&&(e=[e])}if(Q.pM in n&&e?.buffer&&e[Symbol.iterator])throw new i.QB(A,e);e=new n(e,{allocator:I})}const o=e?.[Q.Qy]?.[Q.Dr];if(o?.address===C.Y$)throw new i.xp(e);this[Q.Qn]=e},k=this.createConstructor(A);return e["*"]={get:F,set:m},e.$={get:C.V_,set:N},e.length={get:function(){const A=U.call(this);return A?A.length:0},set:function(A){A|=0;const e=U.call(this);if(!e){if(0!==A)throw new i._L(A,0);return}if(e.length===A)return;e[Q.zN]?.();const I=e[Q.Qy],C=I[Q.Dr];let B;if(C||(t&g.UT.HasLength?(this[Q.E2]||=e.length,B=this[Q.E2]):B=(I.buffer.byteLength-I.byteOffset)/u|0),A<0||A>B)throw new i._L(A,B);const r=A*u,n=C?b.obtainZigView(C.address,r):b.obtainView(I.buffer,I.byteOffset,r),o=a.constructor;this[Q._f][0]=o.call(Q.M0,n),S?.call?.(this,A)}},e.slice=E===g.ev.Slice&&{value(A,e){const t=this[Q.Qn].slice(A,e);return new k(t)}},e.subarray=E===g.ev.Slice&&{value(A,e,t){const g=this[Q.Qn].subarray(A,e,t);return new k(g)}},e[Symbol.toPrimitive]=E===g.ev.Primitive&&{value(A){return this[Q.Qn][Symbol.toPrimitive](A)}},e[Q.Zv]=(0,C.vQ)(N),e[Q.vm]={value(){const A=E!==g.ev.Pointer?s:{};let e;E===g.ev.Function?(e=function(){},e[Q.Qy]=this[Q.Qy],e[Q._f]=this[Q._f],Object.setPrototypeOf(e,k.prototype)):e=this;const t=new Proxy(e,A);return Object.defineProperty(e,Q.rG,{value:t}),t}},e[Q.Qn]={get:U,set:function(A){if(void 0===A)return;const e=this[Q.C7]??this;if(A){const t=A[Q.Qy][Q.Dr];if(t){const{address:e,js:g}=t;d.call(this,e),S?.call?.(this,A.length),g&&(A[Q.Qy][Q.Dr]=void 0)}else if(e[Q.Qy][Q.Dr])throw new i.x1}else e[Q.Qy][Q.Dr]&&(d.call(this,0),S?.call?.(this,0));e[Q._f][0]=A??null,t&g.UT.HasLength&&(e[Q.E2]=null)}},e[Q.q6]=(0,C.vQ)(y),e[Q.BD]={set:d},e[Q.pi]={set:S},e[Q.g9]=this.defineVisitor(),e[Q.c6]=(0,C.vQ)(0),e[Q.uL]=(0,C.vQ)(0),e[Q.E2]=t&g.UT.HasLength&&(0,C.vQ)(null),e.dataView=e.base64=void 0,k},finalizePointer(A,e){const{flags:t,constructor:I,instance:{members:[n]}}=A,{structure:o}=n,{type:s,constructor:a}=o;e.child=a?(0,C.vQ)(a):{get:()=>o.constructor},e.const=(0,C.vQ)(!!(t&g.UT.IsConst)),e[Q.mL]={value(e,C){if(this===Q.M0||this===Q.f7||e instanceof I)return!1;if(B(e,a))return new I(a(e["*"]),C);if(r(e,a,t))return new I(e);if(s===g.ev.Slice)return new I(a(e),C);throw new i.zy(A)}}}});const n=new WeakMap;function o(A){let e=n.get(A);if(!e){const t=A[Q.C7];e=t?new Proxy(t,a):new Proxy(A,E),n.set(A,e)}return e}const s={get:(A,e)=>e===Q.C7?A:e in A?A[e]:A[Q.Qn][e],set:(A,e,t)=>(e in A?A[e]=t:A[Q.Qn][e]=t,!0),deleteProperty:(A,e)=>(e in A?delete A[e]:delete A[Q.Qn][e],!0),has:(A,e)=>e in A||e in A[Q.Qn],apply:(A,e,t)=>A["*"].apply(e,t)},a={...s,set:(A,e,t)=>(e in A?(0,i.V0)():A[Q.Qn][e]=t,!0)},E={get(A,e){if(e===Q.KK)return A;{const t=A[e];return t?.[Q.Qy]?o(t):t}},set(A,e,t){(0,i.V0)()}}},8773:(A,e,t)=>{var g=t(6560),I=t(4762),i=t(4540),Q=t(8e3);(0,g.co)({definePrimitive(A,e){const{instance:{members:[t]}}=A,g=this.createApplier(A),{get:C,set:B}=this.defineMember(t),r=function(e){if((0,Q.pU)(e,n))this[i.sF](e);else if(e&&"object"==typeof e){if(0===g.call(this,e)){const g=(0,Q.BF)(t);throw new I.is(A,g,e)}}else void 0!==e&&B.call(this,e)},n=this.createConstructor(A);return e.$={get:C,set:r},e[i.Zv]=(0,Q.vQ)(r),e[Symbol.toPrimitive]=(0,Q.vQ)(C),n},finalizePrimitive(A,e){const{instance:{members:[t]}}=A;e[i.Qt]=(0,Q.vQ)(t.bitSize),e[i.uT]=(0,Q.vQ)(t.type)}})},3086:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);function B(){return this[Q.pi]}function r(A,e){return(A|=0)<0?(A=e+A)<0&&(A=0):A>e&&(A=e),A}(0,I.co)({defineSlice(A,e){const{align:t,flags:I,byteSize:n,name:o,instance:{members:[s]}}=A,{byteSize:a,structure:E}=s,c=this,u=function(A,e,g){A||(A=c.allocateMemory(e*a,t,g)),this[Q.Qy]=A,this[Q.pi]=e},l=function(e,t){if(t!==this[Q.pi])throw new i.Y8(A,this,e)},f=this.defineMember(s),{set:w}=f,h=this.createApplier(A),D=function(e,t){if((0,C.pU)(e,d))this[Q.Qy]?l.call(this,e,e.length):u.call(this,null,e.length,t),this[Q.sF](e),I&g.yi.HasPointer&&this[Q.g9]("copy",g.F7.Vivificate,e);else if("string"==typeof e&&I&g.tv.IsString)D.call(this,{string:e},t);else if(e?.[Symbol.iterator]){e=(0,C.FU)(e),this[Q.Qy]?l.call(this,e,e.length):u.call(this,null,e.length,t);let A=0;for(const g of e)d[Q.fd]?.validateValue(g,A,e.length),w.call(this,A++,g,t)}else if("number"==typeof e){if(!(!this[Q.Qy]&&e>=0&&isFinite(e)))throw new i.L2(A,e,!this[Q.Qy]);u.call(this,null,e,t)}else if(e&&"object"==typeof e){if(0===h.call(this,e,t))throw new i.L2(A,e)}else if(void 0!==e)throw new i.L2(A,e)},y=function(A,e){const t=this[Q.pi],g=this[Q.Qy];A=void 0===A?0:r(A,t),e=void 0===e?t:r(e,t);const I=A*a,i=e*a-I;return c.obtainView(g.buffer,g.byteOffset+I,i)},d=this.createConstructor(A);return e.$={get:C.V_,set:D},e.length={get:B},I&g.tv.IsTypedArray&&(e.typedArray=this.defineTypedArray(A),I&g.tv.IsString&&(e.string=this.defineString(A)),I&g.tv.IsClampedArray&&(e.clampedArray=this.defineClampedArray(A))),e.entries=e[Q.lf]=this.defineArrayEntries(),e.subarray={value(A,e){const t=y.call(this,A,e);return d(t)}},e.slice={value(A,e,g={}){const{zig:I=!1}=g,i=y.call(this,A,e),C=c.allocateMemory(i.byteLength,t,I),B=d(C);return B[Q.sF]({[Q.Qy]:i}),B}},e[Symbol.iterator]=this.defineArrayIterator(),e[Q.IW]=(0,C.vQ)(u),e[Q.sF]=this.defineCopier(n,!0),e[Q.Zv]=(0,C.vQ)(D),e[Q.vm]=this.defineFinalizerArray(f),e[Q.tZ]=I&g.yi.HasObject&&this.defineVivificatorArray(A),e[Q.g9]=I&g.yi.HasPointer&&this.defineVisitorArray(),d},finalizeSlice(A,e){const{flags:t,instance:{members:[I]}}=A;e.child=(0,C.vQ)(I.structure.constructor),e[Q.fd]=t&g.tv.HasSentinel&&this.defineSentinel(A)}})},8991:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540);(0,I.co)({defineVivificatorStruct(A){const{instance:{members:e}}=A,t={};for(const A of e.filter((A=>A.type===g.Z9.Object)))t[A.slot]=A;const I=this;return{value(A){const e=t[A],{bitOffset:g,byteSize:C,structure:{constructor:B}}=e;this[Q.zN]?.();const r=this[Q.Qy],n=r.byteOffset+(g>>3);let o=C;if(void 0===o){if(7&g)throw new i.Vp(e);o=e.bitSize>>3}const s=I.obtainView(r.buffer,n,o);return this[Q._f][A]=B.call(Q.f7,s)}}}})},8771:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(4762),Q=t(4540),C=t(8e3);(0,I.co)({defineStruct(A,e){const{flags:t,length:I,instance:{members:B}}=A,r=B.find((A=>A.flags&g.pK.IsBackingInt)),n=r&&this.defineMember(r),o=this.createApplier(A),s=function(e,I){if((0,C.pU)(e,a))this[Q.sF](e),t&g.yi.HasPointer&&this[Q.g9]("copy",0,e);else if(e&&"object"==typeof e)o.call(this,e,I);else if("number"!=typeof e&&"bigint"!=typeof e||!n){if(void 0!==e)throw new i.is(A,"object",e)}else n.set.call(this,e)},a=this.createConstructor(A),E=e[Q.Bl].value,c=e[Q.Rk].value,u=[];for(const A of B.filter((A=>!!A.name))){const{name:t,flags:I}=A,{set:i}=e[t]=this.defineMember(A);i&&(I&g.pK.IsRequired&&(i.required=!0),E[t]=i,c.push(t)),u.push(t)}return e.$={get:C.Ng,set:s},e.length=(0,C.vQ)(I),e.entries=t&g.sU.IsTuple&&this.defineVectorEntries(),e[Symbol.toPrimitive]=n&&{value(A){return"string"===A?Object.prototype.toString.call(this):n.get.call(this)}},e[Symbol.iterator]=t&g.sU.IsIterator?this.defineZigIterator():t&g.sU.IsTuple?this.defineVectorIterator():this.defineStructIterator(),e[Q.Zv]=(0,C.vQ)(s),e[Q.tZ]=t&g.yi.HasObject&&this.defineVivificatorStruct(A),e[Q.g9]=t&g.yi.HasPointer&&this.defineVisitorStruct(B),e[Q.lf]=t&g.sU.IsTuple?this.defineVectorEntries():this.defineStructEntries(),e[Q.n5]=(0,C.vQ)(u),t&g.sU.IsAllocator&&(e.alloc=this.defineAlloc(),e.free=this.defineFree(),e.dupe=this.defineDupe()),a}})},4540:(A,e,t)=>{t.d(e,{BD:()=>h,Bl:()=>M,C7:()=>a,Dr:()=>r,E2:()=>f,Ec:()=>m,Gz:()=>R,IW:()=>V,J2:()=>x,KK:()=>b,M0:()=>N,Qn:()=>u,Qt:()=>F,Qy:()=>Q,Rk:()=>w,SK:()=>U,Wg:()=>o,ZE:()=>n,Zv:()=>z,_d:()=>L,_f:()=>C,c6:()=>y,du:()=>K,eR:()=>J,f$:()=>P,f7:()=>B,fV:()=>S,fd:()=>E,g9:()=>H,iw:()=>k,lf:()=>l,mL:()=>Z,n5:()=>s,pM:()=>v,pi:()=>D,q6:()=>q,rG:()=>p,sF:()=>T,sO:()=>c,tZ:()=>O,uL:()=>d,uT:()=>G,vm:()=>j,wg:()=>X,zN:()=>Y,zg:()=>W});const g=globalThis[Symbol.for("ZIGAR")]||={};function I(A){return g[A]||=Symbol(A)}function i(A){return I(A)}const Q=i("memory"),C=i("slots"),B=i("parent"),r=i("zig"),n=(i("name"),i("type")),o=i("flags"),s=(i("class"),i("tag"),i("props")),a=i("pointer"),E=i("sentinel"),c=i("array"),u=(i("items"),i("target")),l=i("entries"),f=i("max length"),w=i("keys"),h=i("address"),D=i("length"),y=i("last address"),d=i("last length"),p=i("proxy"),S=i("cache"),U=i("size"),F=i("bit size"),m=i("align"),b=i("const target"),N=i("environment"),k=i("attributes"),G=i("primitive"),M=(i("getters"),i("setters")),v=i("typed array"),K=i("throwing"),J=i("promise"),L=i("generator"),R=i("allocator"),x=(i("fallback"),i("signature")),q=i("update"),Y=i("restore"),O=(i("reset"),i("vivificate")),H=i("visit"),T=i("copy"),V=i("shape"),z=i("initialize"),P=i("restrict"),j=i("finalize"),Z=i("cast"),W=i("return"),X=i("yield")},8e3:(A,e,t)=>{t.d(e,{$k:()=>l,Au:()=>D,BF:()=>r,FU:()=>y,Fy:()=>f,Ie:()=>b,L9:()=>B,NV:()=>U,Ng:()=>F,UF:()=>N,V_:()=>m,WG:()=>o,Y$:()=>w,ZG:()=>E,be:()=>d,cv:()=>h,g7:()=>n,hJ:()=>u,n8:()=>i,ny:()=>Q,on:()=>c,pU:()=>S,vQ:()=>C,xN:()=>p,y4:()=>s});var g=t(1388),I=t(4540);function i(A,e,t){if(t){const{set:g,get:I,value:i,enumerable:Q,configurable:C=!0,writable:B=!0}=t;Object.defineProperty(A,e,I||g?{get:I,set:g,configurable:C,enumerable:Q}:{value:i,configurable:C,enumerable:Q,writable:B})}return A}function Q(A,e){for(const[t,g]of Object.entries(e))i(A,t,g);for(const t of Object.getOwnPropertySymbols(e))i(A,t,e[t]);return A}function C(A){return void 0!==A?{value:A}:void 0}function B(A){return"return"===A?.error?A=>{try{return A()}catch(A){return A}}:A=>A()}function r({type:A,bitSize:e}){switch(A){case g.Z9.Bool:return"boolean";case g.Z9.Int:case g.Z9.Uint:if(e>32)return"bigint";case g.Z9.Float:return"number"}}function n(A,e="utf-8"){const t=a[e]||=new TextDecoder(e);let g;if(Array.isArray(A))if(1===A.length)g=A[0];else{let e=0;for(const t of A)e+=t.length;const{constructor:t}=A[0];g=new t(e);let I=0;for(const e of A)g.set(e,I),I+=e.length}else g=A;return"SharedArrayBuffer"===g.buffer[Symbol.toStringTag]&&(g=new g.constructor(g)),t.decode(g)}function o(A){const e=new Uint8Array(A.buffer,A.byteOffset,A.byteLength),t=String.fromCharCode.apply(null,e);return btoa(t)}function s(A){const e=atob(A),t=new Uint8Array(e.length);for(let A=0;A<t.byteLength;A++)t[A]=e.charCodeAt(A);return new DataView(t.buffer)}const a={};function E(A,e,t){let g=0,I=A.length;if(0===I)return 0;for(;g<I;){const i=Math.floor((g+I)/2);t(A[i])<=e?g=i+1:I=i}return I}const c=function(A,e){return!!e&&!!(A&e-1)},u=function(A,e){return A+(e-1)&~(e-1)},l=0,f=4294967295,w=-1,h=function(A){return 2863311530===A||-1431655766===A},D=function(A,e){return A+e};function y(A){if("number"==typeof A.length)return A;const e=A[Symbol.iterator](),t=e.next(),g=t.value?.length;if("number"==typeof g&&"length"===Object.keys(t.value).join())return Object.assign(function*(){let A;for(;!(A=e.next()).done;)yield A.value}(),{length:g});{const A=[];let g=t;for(;!g.done;)A.push(g.value),g=e.next();return A}}function d(A,e){const{constructor:t}=A;return t===e?1:t.child===e?A.length:void 0}function p(A,e){return A===e||A?.[I.J2]===e[I.J2]&&A?.[I.M0]!==e?.[I.M0]}function S(A,e){return A instanceof e||p(A?.constructor,e)}function U({get:A,set:e}){return A.special=e.special=!0,{get:A,set:e}}function F(){return this}function m(){return this[I.rG]}function b(){}class N{map=new WeakMap;find(A){return this.map.get(A)}save(A,e){return this.map.set(A,e),e}}},8502:(A,e,t)=>{t.d(e,{k:()=>C});var g=t(1388),I=t(6560),i=t(4762),Q=t(4540);function C(A,e,t,I){let i,C=this[Q._f][A];if(!C){if(t&g.F7.IgnoreUncreated)return;C=this[Q.tZ](A)}I&&(i=I[Q._f][A],!i)||C[Q.g9](e,t,i)}(0,I.co)({defineVisitor:()=>({value(A,e,t){let g;g="string"==typeof A?B[A]:A,g.call(this,e,t)}})});const B={copy(A,e){const t=e[Q._f][0];if(this[Q.Qy][Q.Dr]&&t&&!t[Q.Qy][Q.Dr])throw new i.x1;this[Q._f][0]=t},clear(A){A&g.F7.IsInactive&&(this[Q._f][0]=void 0)},reset(){this[Q._f][0]=void 0,this[Q.c6]=void 0}}},9025:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(8502);(0,I.co)({defineVisitorArgStruct(A){const e=[];let t;for(const[I,{slot:i,structure:Q}]of A.entries())Q.flags&g.yi.HasPointer&&(0===I?t=i:e.push(i));return{value(A,I,Q){if(!(I&g.F7.IgnoreArguments)&&e.length>0)for(const t of e)i.k.call(this,t,A,I|g.F7.IsImmutable,Q);I&g.F7.IgnoreRetval||void 0===t||i.k.call(this,t,A,I,Q)}}}})},5558:(A,e,t)=>{var g=t(1388),I=t(6560),i=t(8502);(0,I.co)({defineVisitorStruct(A){const e=A.filter((A=>A.structure?.flags&g.yi.HasPointer)).map((A=>A.slot));return{value(A,t,g){for(const I of e)i.k.call(this,I,A,t,g)}}}})}},i={};function Q(A){var e=i[A];if(void 0!==e)return e.exports;var t=i[A]={exports:{}};return I[A](t,t.exports,Q),t.exports}A="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",e="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",t="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",g=A=>{A&&A.d<1&&(A.d=1,A.forEach((A=>A.r--)),A.forEach((A=>A.r--?A.r++:A())))},Q.a=(I,i,Q)=>{var C;Q&&((C=[]).d=-1);var B,r,n,o=new Set,s=I.exports,a=new Promise(((A,e)=>{n=e,r=A}));a[e]=s,a[A]=A=>(C&&A(C),o.forEach(A),a.catch((A=>{}))),I.exports=a,i((I=>{var i;B=(I=>I.map((I=>{if(null!==I&&"object"==typeof I){if(I[A])return I;if(I.then){var i=[];i.d=0,I.then((A=>{Q[e]=A,g(i)}),(A=>{Q[t]=A,g(i)}));var Q={};return Q[A]=A=>A(i),Q}}var C={};return C[A]=A=>{},C[e]=I,C})))(I);var Q=()=>B.map((A=>{if(A[t])throw A[t];return A[e]})),r=new Promise((e=>{(i=()=>e(Q)).r=0;var t=A=>A!==C&&!o.has(A)&&(o.add(A),A&&!A.d&&(i.r++,A.push(i)));B.map((e=>e[A](t)))}));return i.r?r:Q()}),(A=>(A?n(a[t]=A):r(s),g(C)))),C&&C.d<0&&(C.d=0)},Q.d=(A,e)=>{for(var t in e)Q.o(e,t)&&!Q.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},Q.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var C=Q(8156),B=(C=await C).A;export{B as default};
|