{"version":3,"file":"index.umd.cjs","sources":["../src/core/renderer.ts","../src/renderers/shaders/projected_line_vert.glsl","../src/renderers/shaders/projected_line_frag.glsl","../src/renderers/shaders/mesh_vert.glsl","../src/renderers/shaders/scalar_image_frag.glsl","../src/renderers/shaders/points_vert.glsl","../src/renderers/shaders/points_frag.glsl","../src/renderers/shaders/wireframe_vert.glsl","../src/renderers/shaders/wireframe_frag.glsl","../src/renderers/shaders/volume_vert.glsl","../src/renderers/shaders/volume_frag.glsl","../src/renderers/shaders/label_image_frag.glsl","../src/renderers/shaders/depth_frag.glsl","../src/renderers/shaders/points_depth_frag.glsl","../src/renderers/shaders/index.ts","../src/utilities/logger.ts","../src/renderers/webgl_shader_program.ts","../src/renderers/webgl_shader_programs.ts","../src/utilities/id_generator.ts","../src/core/node.ts","../node_modules/gl-matrix/esm/common.js","../node_modules/gl-matrix/esm/mat3.js","../node_modules/gl-matrix/esm/mat4.js","../node_modules/gl-matrix/esm/vec3.js","../node_modules/gl-matrix/esm/vec4.js","../node_modules/gl-matrix/esm/quat.js","../node_modules/gl-matrix/esm/vec2.js","../src/math/box3.ts","../src/core/geometry.ts","../src/renderers/webgl_buffers.ts","../src/objects/textures/texture.ts","../src/renderers/webgl_textures.ts","../src/math/box2.ts","../src/renderers/webgl_state.ts","../src/renderers/webgl_depth_target.ts","../src/renderers/webgl_renderer.ts","../src/data/chunk_queue.ts","../src/data/chunk_memory.ts","../src/utilities/almost_equal.ts","../src/math/axes.ts","../src/data/chunk.ts","../src/utilities/clamp.ts","../src/data/chunk_store_view.ts","../src/data/chunk_store.ts","../src/objects/textures/texture_3d.ts","../src/data/chunk_manager.ts","../src/utilities/vendored/stats.js","../src/utilities/stats.ts","../src/core/event_dispatcher.ts","../src/math/ray.ts","../src/core/viewport.ts","../src/utilities/pixel_size_observer.ts","../src/idetik.ts","../node_modules/@zarrita/storage/dist/src/util.js","../node_modules/@zarrita/storage/dist/src/fetch.js","../node_modules/zarrita/dist/src/errors.js","../node_modules/zarrita/dist/src/codecs/_shared.js","../node_modules/zarrita/dist/src/codecs/bitround.js","../node_modules/zarrita/dist/src/typedarray.js","../node_modules/zarrita/dist/src/util.js","../node_modules/zarrita/dist/src/codecs/bytes.js","../node_modules/zarrita/dist/src/codecs/json-scalar.js","../node_modules/zarrita/dist/src/codecs/cast_value.js","../node_modules/zarrita/dist/src/codecs/crc32c.js","../node_modules/zarrita/dist/src/codecs/delta.js","../node_modules/zarrita/dist/src/codecs/gzip.js","../node_modules/zarrita/dist/src/codecs/json2.js","../node_modules/zarrita/dist/src/codecs/scale_offset.js","../node_modules/zarrita/dist/src/codecs/shuffle.js","../node_modules/zarrita/dist/src/codecs/transpose.js","../node_modules/zarrita/dist/src/codecs/vlen-utf8.js","../node_modules/zarrita/dist/src/codecs/zlib.js","../node_modules/zarrita/dist/src/codecs.js","../node_modules/zarrita/dist/src/codecs/sharding.js","../node_modules/zarrita/dist/src/hierarchy.js","../node_modules/zarrita/dist/src/extension/extend.js","../node_modules/zarrita/dist/src/extension/extend-array.js","../node_modules/zarrita/dist/src/open.js","../src/data/zarr/web_file_system_store.ts","../src/data/zarr/open.ts","../src/data/ome_zarr/chunk_processing.ts","../src/data/ome_zarr/worker_pool.ts","../src/data/ome_zarr/image_loader.ts","../node_modules/zod/v3/helpers/util.js","../node_modules/zod/v3/ZodError.js","../node_modules/zod/v3/locales/en.js","../node_modules/zod/v3/errors.js","../node_modules/zod/v3/helpers/parseUtil.js","../node_modules/zod/v3/helpers/errorUtil.js","../node_modules/zod/v3/types.js","../src/data/ome_zarr/0.4/image.ts","../src/data/ome_zarr/0.4/plate.ts","../src/data/ome_zarr/0.4/well.ts","../src/data/ome_zarr/0.5/image.ts","../src/data/ome_zarr/0.5/plate.ts","../src/data/ome_zarr/0.5/well.ts","../src/data/ome_zarr/metadata_loaders.ts","../src/data/ome_zarr/image_source.ts","../src/core/layer.ts","../src/objects/geometry/projected_line_geometry.ts","../src/core/wireframe_geometry.ts","../src/math/transforms.ts","../src/math/color.ts","../src/core/renderable_object.ts","../src/objects/renderable/projected_line_renderable.ts","../src/layers/axes_layer.ts","../src/core/image_source_policy.ts","../src/core/channel.ts","../src/objects/geometry/plane_geometry.ts","../src/objects/renderable/image_renderable.ts","../src/math/plane.ts","../src/layers/point_picking.ts","../src/utilities/renderable_pool.ts","../src/layers/image_layer.ts","../src/objects/geometry/box_geometry.ts","../src/objects/renderable/volume_renderable.ts","../src/layers/volume_layer.ts","../src/objects/textures/texture_2d.ts","../src/objects/renderable/label_image_renderable.ts","../src/layers/label_layer.ts","../src/objects/textures/texture_2d_array.ts","../src/objects/renderable/points_renderable.ts","../src/math/frustum.ts","../src/objects/cameras/camera.ts","../src/math/spherical.ts","../src/objects/cameras/orbit_controls.ts","../src/objects/cameras/orthographic_camera.ts","../src/objects/cameras/controls.ts","../src/objects/cameras/perspective_camera.ts","../node_modules/numcodecs/dist/chunk-INHXZS53.js","../node_modules/numcodecs/dist/blosc.js","../node_modules/numcodecs/dist/lz4.js","../node_modules/numcodecs/dist/zstd.js"],"sourcesContent":["import { Camera } from \"../objects/cameras/camera\";\nimport { Layer } from \"./layer\";\nimport { RenderableObject } from \"./renderable_object\";\nimport { Viewport } from \"./viewport\";\nimport { Texture } from \"../objects/textures/texture\";\n\nexport abstract class Renderer {\n  private readonly canvas_: HTMLCanvasElement | null;\n  private width_ = 0;\n  private height_ = 0;\n\n  protected renderedObjects_ = 0;\n  protected abstract resize(width: number, height: number): void;\n  protected abstract renderObject(\n    layer: Layer,\n    object: RenderableObject,\n    camera: Camera\n  ): void;\n  protected abstract clear(): void;\n\n  constructor(canvas: HTMLCanvasElement) {\n    this.canvas_ = canvas;\n    this.updateRendererSize();\n  }\n\n  public beginFrame(): void {}\n\n  public abstract render(viewport: Viewport): void;\n\n  public updateSize(): void {\n    this.updateRendererSize();\n    this.resize(this.width_, this.height_);\n  }\n\n  private updateRendererSize() {\n    this.width_ = this.canvas.clientWidth * window.devicePixelRatio;\n    this.height_ = this.canvas.clientHeight * window.devicePixelRatio;\n\n    if (this.canvas.width !== this.width_) this.canvas.width = this.width_;\n    if (this.canvas.height !== this.height_) this.canvas.height = this.height_;\n  }\n\n  protected get canvas() {\n    return this.canvas_!;\n  }\n\n  public get width() {\n    return this.width_;\n  }\n\n  public get height() {\n    return this.height_;\n  }\n\n  public get renderedObjects() {\n    return this.renderedObjects_;\n  }\n\n  public abstract get gpuTextureBytes(): number;\n\n  public abstract get gpuTextureCount(): number;\n\n  public abstract uploadTexture(texture: Texture): void;\n\n  public abstract disposeTexture(texture: Texture): void;\n}\n","#version 300 es\n\nlayout (location = 0) in vec3 a_position;\nlayout (location = 3) in vec3 a_prevPosition;\nlayout (location = 4) in vec3 a_nextPosition;\nlayout (location = 5) in float a_direction;\n\nuniform mat4 u_projection;\nuniform mat4 u_modelView;\nuniform vec2 u_resolution;\nuniform float u_lineWidth;\n\n// adapted from https://github.com/mattdesl/webgl-lines\nvoid main() {\n    mat4 projModelView = u_projection * u_modelView;\n\n    vec4 prevPos = projModelView * vec4(a_prevPosition, 1.0);\n    vec4 currPos = projModelView * vec4(a_position, 1.0);\n    vec4 nextPos = projModelView * vec4(a_nextPosition, 1.0);\n\n    vec2 aspectVec = vec2(u_resolution.x / u_resolution.y, 1.0);\n    vec2 prevScreen = (prevPos.xy / prevPos.w) * aspectVec;\n    vec2 currScreen = (currPos.xy / currPos.w) * aspectVec;\n    vec2 nextScreen = (nextPos.xy / nextPos.w) * aspectVec;\n\n    // a_direction is + or -; which way to project the vertex away from the path\n    float d = sign(a_direction);\n\n    // `normal` points perpendicular to the path in screen space\n    vec2 normal;\n    // `miterLength` extends the offset along the normal (with a limit)\n    // this make a nicer corner and keeps the line thickness more uniform;\n    float miterLength = 1.0;\n    if (prevPos == currPos) {\n        // first point on the path\n        vec2 dir = normalize(nextScreen - currScreen);\n        normal = vec2(-dir.y, dir.x);\n    } else if (nextPos == currPos) {\n        // last point on the path\n        vec2 dir = normalize(currScreen - prevScreen);\n        normal = vec2(-dir.y, dir.x);\n    } else {\n        // middle point on the path: add miter along the bisector\n        vec2 prevDir = normalize(currScreen - prevScreen);\n        vec2 nextDir = normalize(nextScreen - currScreen);\n        vec2 tangent = normalize(prevDir + nextDir);\n        normal = vec2(-tangent.y, tangent.x);\n        vec2 perpPrev = vec2(-prevDir.y, prevDir.x);\n        miterLength = 1.0 / max(dot(normal, perpPrev), 0.1);\n    }\n\n    // `normal * u_lineWidth / u_resolution` means u_lineWidth is in pixels\n    vec4 offset = vec4(\n        (normal * u_lineWidth / u_resolution) * miterLength * d,\n        0.0,\n        0.0\n    );\n    gl_Position = currPos + offset * currPos.w;\n\n    // draw as GL_POINTS for debugging\n    gl_PointSize = 5.0;\n}\n","#version 300 es\n\nprecision mediump float;\n\nlayout (location = 0) out vec4 fragColor;\n\nuniform vec3 u_lineColor;\nuniform float u_opacity;\n\nvoid main() {\n    fragColor = vec4(u_lineColor, u_opacity);\n}\n","#version 300 es\n\nlayout (location = 0) in vec3 a_position;\nlayout (location = 1) in vec3 a_normal;\n\nuniform mat4 u_projection;\nuniform mat4 u_modelView;\nuniform mat4 u_model;\nuniform mat4 u_worldToTexCoord;\n\nout vec3 v_texCoords;\n\nvoid main() {\n    v_texCoords = (u_worldToTexCoord * u_model * vec4(a_position, 1.0)).xyz;\n    gl_Position = u_projection * u_modelView * vec4(a_position, 1.0);\n}\n","#version 300 es\n#pragma inject_defines\n\nprecision highp float;\n\nlayout (location = 0) out vec4 fragColor;\n\n#if defined TEXTURE_DATA_TYPE_INT\nuniform mediump isampler3D u_imageSampler;\n#elif defined TEXTURE_DATA_TYPE_UINT\nuniform mediump usampler3D u_imageSampler;\n#else\nuniform mediump sampler3D u_imageSampler;\n#endif\n\nuniform vec3 u_color;\nuniform float u_valueOffset;\nuniform float u_valueScale;\nuniform float u_opacity;\n\nin vec3 v_texCoords;\n\nvoid main() {\n    float texel = float(texture(u_imageSampler, v_texCoords).r);\n    float value = (texel + u_valueOffset) * u_valueScale;\n    fragColor = vec4(value * u_color, u_opacity);\n}","#version 300 es\n\nprecision mediump float;\n\nlayout (location = 0) in vec3 a_position;\nlayout (location = 6) in vec4 a_color;\nlayout (location = 7) in float a_size;\nlayout (location = 8) in float a_marker;\n\nuniform mat4 u_projection;\nuniform mat4 u_modelView;\n\nout vec4 v_color;\nflat out uint v_marker;\n\n\nvoid main() {\n    gl_Position = u_projection * u_modelView * vec4(a_position, 1.0);\n    gl_PointSize = a_size;\n    v_color = a_color;\n    v_marker = uint(a_marker);\n}\n\n","#version 300 es\n\nprecision mediump float;\n\nlayout (location = 0) out vec4 fragColor;\n\nuniform mediump sampler2DArray u_markerAtlas;\n\nin vec4 v_color;\nflat in uint v_marker;\n\nuniform float u_opacity;\n\n\nvoid main() {\n    float alpha = texture(u_markerAtlas, vec3(gl_PointCoord, v_marker)).r;\n    float alpha_threshold = 1e-2;\n    if (alpha < alpha_threshold) {\n        discard;\n    }\n    fragColor = vec4(v_color.rgb, u_opacity * alpha * v_color.a);\n}\n\n","#version 300 es\n\nlayout (location = 0) in vec3 a_position;\nlayout (location = 1) in vec3 a_normal;\n\nuniform mat4 u_projection;\nuniform mat4 u_modelView;\n\nvoid main() {\n    gl_Position = u_projection * u_modelView * vec4(a_position, 1.0);\n}","#version 300 es\n\nprecision mediump float;\n\nlayout (location = 0) out vec4 fragColor;\n\nuniform float u_opacity;\nuniform vec3 u_wireframeColor;\n\nvoid main() {\n    fragColor = vec4(u_wireframeColor, u_opacity);\n}","#version 300 es\n\nprecision highp float;\n\nlayout (location = 0) in vec3 a_position;\n\nuniform mat4 u_projection;\nuniform mat4 u_modelView;\nout highp vec3 v_positionModel;\nout highp vec4 v_clipPosition;\n\nvoid main() {\n    v_positionModel = a_position;\n    gl_Position = u_projection * u_modelView * vec4(a_position, 1.0);\n    v_clipPosition = gl_Position;\n}\n","#version 300 es\n#pragma inject_defines\nprecision highp float;\n\nlayout (location = 0) out vec4 fragColor;\n\n// This shader could be optimised by creating four separate shader variants\n#if defined TEXTURE_DATA_TYPE_INT\nprecision mediump isampler3D;\nuniform isampler3D u_channel0Sampler;\nuniform isampler3D u_channel1Sampler;\nuniform isampler3D u_channel2Sampler;\nuniform isampler3D u_channel3Sampler;\n#elif defined TEXTURE_DATA_TYPE_UINT\nprecision mediump usampler3D;\nuniform usampler3D u_channel0Sampler;\nuniform usampler3D u_channel1Sampler;\nuniform usampler3D u_channel2Sampler;\nuniform usampler3D u_channel3Sampler;\n#else\nprecision mediump sampler3D;\nuniform sampler3D u_channel0Sampler;\nuniform sampler3D u_channel1Sampler;\nuniform sampler3D u_channel2Sampler;\nuniform sampler3D u_channel3Sampler;\n#endif\n\nuniform highp vec3 u_cameraPositionModel;\nuniform vec3 u_voxelScale;\nin highp vec3 v_positionModel;\nin highp vec4 v_clipPosition;\n\n// The bounding box in model space is normalized to -0.5 to 0.5\nvec3 boundingboxMin = vec3(-0.50);\nvec3 boundingboxMax = vec3(0.50);\n\n// Volume rendering parameters\nuniform bool u_debugShowDegenerateRays;\nuniform float u_relativeStepSize;\nuniform float u_opacityMultiplier;\nuniform float u_earlyTerminationAlpha;\n\n// Multi-channel support (max 4 channels, could support more with arrays if needed)\nuniform vec4 u_visible;\nuniform vec4 u_valueOffset;\nuniform vec4 u_valueScale;\nuniform vec4 u_channelOpacity;\nuniform vec3 u_color[4];\n\n// Optionally terminate rays at some predetermined scene depth\nuniform bool u_hasSceneDepth;\nuniform highp sampler2D u_sceneDepth;\nuniform mat4 u_mvpInverse;\n\nfloat distanceAlongRayAtWindowDepth(float windowDepth, vec3 rayOrigin, vec3 rayDir) {\n    vec3 ndc = vec3(v_clipPosition.xy / v_clipPosition.w, windowDepth * 2.0 - 1.0);\n    vec4 positionModel = u_mvpInverse * vec4(ndc, 1.0);\n    return dot(positionModel.xyz / positionModel.w - rayOrigin, rayDir);\n}\n\nvec2 findBoxIntersectionsAlongRay(vec3 rayOrigin, vec3 rayDir, vec3 boxMin, vec3 boxMax) {\n    vec3 reciprocalRayDir = 1.0 / rayDir;\n    vec3 t0 = (boxMin - rayOrigin) * reciprocalRayDir;\n    vec3 t1 = (boxMax - rayOrigin) * reciprocalRayDir;\n\n    vec3 tMin = min(t0, t1);\n    vec3 tMax = max(t0, t1);\n\n    float tEnter = max(max(tMin.x, tMin.y), tMin.z);\n    float tExit = min(min(tMax.x, tMax.y), tMax.z);\n    tEnter = max(0.0, tEnter);\n    tExit = max(tEnter, tExit);\n\n    return vec2(tEnter, tExit);\n}\n\n// Returns channels in .xyzw (missing channels are 0)\nvec4 sampleChannels(vec3 uvw) {\n  vec4 c = vec4(0.0);\n\n  if (bool(u_visible.x)) c.x = float(texture(u_channel0Sampler, uvw).r);\n  if (bool(u_visible.y)) c.y = float(texture(u_channel1Sampler, uvw).r);\n  if (bool(u_visible.z)) c.z = float(texture(u_channel2Sampler, uvw).r);\n  if (bool(u_visible.w)) c.w = float(texture(u_channel3Sampler, uvw).r);\n\n  return (c + u_valueOffset) * u_valueScale;\n}\n\nvec3 getTextureSize() {\n    if (bool(u_visible.x)) return vec3(textureSize(u_channel0Sampler, 0));\n    else if (bool(u_visible.y)) return vec3(textureSize(u_channel1Sampler, 0));\n    else if (bool(u_visible.z)) return vec3(textureSize(u_channel2Sampler, 0));\n    else if (bool(u_visible.w)) return vec3(textureSize(u_channel3Sampler, 0));\n    return vec3(1.0); // Ideally at least one channel should be visible\n}\n\nvoid main() {\n    // Step 1 - calculate where the ray enters and exits the volume\n\n    // The ray in model space goes from the camera to the point on the back face\n    vec3 RayDirModel = normalize(v_positionModel - u_cameraPositionModel);\n\n    vec2 rayIntersections = findBoxIntersectionsAlongRay(u_cameraPositionModel, RayDirModel, boundingboxMin, boundingboxMax);\n    float tEnter = rayIntersections.x;\n    float tExit = rayIntersections.y;\n\n    if (u_debugShowDegenerateRays && (tExit == tEnter)) {\n        fragColor = vec4(1.0, 0.0, 0.0, 1.0);\n        return;\n    }\n\n    if (u_hasSceneDepth) {\n        float sceneWindowDepth = texelFetch(u_sceneDepth, ivec2(gl_FragCoord.xy), 0).r;\n        if (sceneWindowDepth < 1.0) {\n            float tScene = distanceAlongRayAtWindowDepth(sceneWindowDepth, u_cameraPositionModel, RayDirModel);\n            if (tScene < tEnter) discard;\n            tExit = min(tExit, tScene);\n        }\n    }\n\n    vec3 entryPoint = u_cameraPositionModel + RayDirModel * tEnter;\n    entryPoint = clamp(entryPoint + 0.5, 0.0, 1.0);\n    vec3 exitPoint = u_cameraPositionModel + RayDirModel * tExit;\n    exitPoint = clamp(exitPoint + 0.5, 0.0, 1.0);\n\n    // Step 2 - calculate the number of samples based on the length of the ray\n    vec3 rayWithinModel = exitPoint - entryPoint;\n\n    // Get texture dimensions and convert ray to voxel space\n    vec3 textureSize = getTextureSize();\n    vec3 rayInVoxels = rayWithinModel * textureSize;\n    float rayLengthInVoxels = length(rayInVoxels);\n    int numSamples = max(int(ceil(rayLengthInVoxels / u_relativeStepSize)), 1);\n    vec3 stepIncrement = rayWithinModel / float(numSamples);\n\n    // Calculate actual world-space step size for opacity correction.\n    // This accounts for anisotropic voxels so brightness stays constant regardless\n    // of viewing angle. For anisotropic voxels (e.g., 1x1x3 microns), rays along\n    // different axes traverse different amounts of material per step.\n    vec3 stepInWorldSpace = stepIncrement * textureSize * u_voxelScale;\n    float worldSpaceStepSize = length(stepInWorldSpace);\n    float intensityScale = u_opacityMultiplier * worldSpaceStepSize;\n\n    // Step 3 - perform the ray marching and compositing in front to back order\n    vec3 position = entryPoint;\n    vec4 accumulatedColor = vec4(0.0);\n\n    vec3 sampleColor = vec3(0.0);\n    float sampleAlpha, blendedSampleAlpha;\n    for (int i = 0; i < numSamples && accumulatedColor.a < u_earlyTerminationAlpha; i++) {\n\n        vec4 sampleValues = sampleChannels(position);\n        // Combine color per channel\n        for (int ch = 0; ch < 4; ch++) {\n            if (!bool(u_visible[ch]) || sampleValues[ch] == 0.0) continue;\n            sampleColor = u_color[ch];\n            sampleAlpha = clamp(sampleValues[ch] * intensityScale * u_channelOpacity[ch], 0.0, 1.0);\n            blendedSampleAlpha = (1.0 - accumulatedColor.a) * sampleAlpha;\n\n            // Front-to-back compositing\n            accumulatedColor.a += blendedSampleAlpha;\n            accumulatedColor.rgb += sampleColor * blendedSampleAlpha;\n        }\n\n        position += stepIncrement;\n    }\n\n    fragColor = accumulatedColor;\n}\n","#version 300 es\n#pragma inject_defines\n\nprecision highp float;\nprecision highp int;\n\nlayout (location = 0) out vec4 fragColor;\n\n#if defined TEXTURE_DATA_TYPE_INT\nuniform highp isampler3D u_imageSampler;\n#define DATA_TYPE int\n#else\nuniform highp usampler3D u_imageSampler;\n#define DATA_TYPE uint\n#endif\nuniform mediump sampler2D u_colorCycleSampler;\nuniform highp usampler2D u_colorLookupTableSampler;\n\nuniform float u_opacity;\nuniform float u_outlineSelected; // Note: Using float instead of bool due to framework uniform handling\nuniform float u_selectedValue;\n\nin vec3 v_texCoords;\n\nvec4 unpackRgba(uint packed) {\n    uint r = (packed >> 24u) & 0xFFu;\n    uint g = (packed >> 16u) & 0xFFu;\n    uint b = (packed >> 8u) & 0xFFu;\n    uint a = packed & 0xFFu;\n    return vec4(float(r), float(g), float(b), float(a)) / 255.0;\n}\n\nbool isEdgePixel(DATA_TYPE centerValue, vec3 texCoords, vec3 stepX, vec3 stepY) {\n    // Check 8-connected neighbors\n    for (int dx = -1; dx <= 1; dx++) {\n        for (int dy = -1; dy <= 1; dy++) {\n            if (dx == 0 && dy == 0) continue; // Skip center pixel\n\n            vec3 neighborCoords =\n                texCoords + float(dx) * stepX + float(dy) * stepY;\n\n            // Skip if out of bounds\n            if (neighborCoords.x < 0.0 || neighborCoords.x > 1.0 ||\n                neighborCoords.y < 0.0 || neighborCoords.y > 1.0) {\n                continue;\n            }\n\n            DATA_TYPE neighborValue = textureLod(u_imageSampler, neighborCoords, 0.0).r;\n            if (neighborValue != centerValue) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nvoid main() {\n    DATA_TYPE texel = texture(u_imageSampler, v_texCoords).r;\n\n    vec3 stepX = dFdx(v_texCoords);\n    vec3 stepY = dFdy(v_texCoords);\n\n    // Check if this pixel is the selected value\n    bool isSelectedValue = u_outlineSelected > 0.5 && u_selectedValue >= 0.0 && float(texel) == u_selectedValue;\n\n    // Check if we should outline this selected segment\n    if (isSelectedValue) {\n        if (isEdgePixel(texel, v_texCoords, stepX, stepY)) {\n            // Draw outline in bright white with layer opacity\n            fragColor = vec4(1.0, 1.0, 1.0, u_opacity);\n            return;\n        }\n    }\n\n    uint mapLength = uint(textureSize(u_colorLookupTableSampler, 0).x);\n    for (uint i = 0u; i < mapLength; ++i) {\n        uint key = texelFetch(u_colorLookupTableSampler, ivec2(i, 0), 0).r;\n        // int(key) round-trips negative labels via two's complement.\n        if (texel == DATA_TYPE(key)) {\n            uint value = texelFetch(u_colorLookupTableSampler, ivec2(i, 1), 0).r;\n            vec4 color = unpackRgba(value);\n\n            // If this is the selected segment and outlining is enabled, make it slightly transparent\n            float alpha = isSelectedValue ? u_opacity * color.a * 0.9 : u_opacity * color.a;\n\n            fragColor = vec4(color.rgb, alpha);\n            return;\n        }\n    }\n\n    uint cycleLength = uint(textureSize(u_colorCycleSampler, 0).x);\n    uint index = uint(texel - DATA_TYPE(1)) % cycleLength;\n    vec4 color = texelFetch(u_colorCycleSampler, ivec2(index, 0), 0);\n\n    // If this is the selected segment and outlining is enabled, make it slightly transparent\n    float alpha = isSelectedValue ? u_opacity * color.a * 0.9 : u_opacity * color.a;\n\n    fragColor = vec4(color.rgb, alpha);\n}","#version 300 es\n\nvoid main() {}\n","#version 300 es\n\nprecision mediump float;\n\nuniform mediump sampler2DArray u_markerAtlas;\n\nflat in uint v_marker;\n\nvoid main() {\n    if (texture(u_markerAtlas, vec3(gl_PointCoord, v_marker)).r < 1e-2) {\n        discard;\n    }\n}\n","import projectedLineVertexShader from \"./projected_line_vert.glsl\";\nimport projectedLineFragmentShader from \"./projected_line_frag.glsl\";\nimport meshVertexShader from \"./mesh_vert.glsl\";\nimport scalarImageFragmentShader from \"./scalar_image_frag.glsl\";\nimport pointsVertexShader from \"./points_vert.glsl\";\nimport pointsFragmentShader from \"./points_frag.glsl\";\nimport wireframeVertexShader from \"./wireframe_vert.glsl\";\nimport wireframeFragmentShader from \"./wireframe_frag.glsl\";\nimport volumeVertexShader from \"./volume_vert.glsl\";\nimport volumeFragmentShader from \"./volume_frag.glsl\";\nimport labelImage from \"./label_image_frag.glsl\";\nimport depthFragmentShader from \"./depth_frag.glsl\";\nimport pointsDepthFragmentShader from \"./points_depth_frag.glsl\";\n\nexport type Shader =\n  | \"floatScalarImage\"\n  | \"floatVolume\"\n  | \"intLabelImage\"\n  | \"intScalarImage\"\n  | \"intVolume\"\n  | \"labelImage\"\n  | \"points\"\n  | \"projectedLine\"\n  | \"uintScalarImage\"\n  | \"uintVolume\"\n  | \"wireframe\"\n  | \"meshDepth\"\n  | \"pointsDepth\"\n  | \"projectedLineDepth\";\n\ntype ShaderCode = {\n  vertex: string;\n  vertexDefines?: ReadonlyMap<string, string>;\n  fragment: string;\n  fragmentDefines?: ReadonlyMap<string, string>;\n};\n\nexport const shaderCode: Record<Shader, ShaderCode> = {\n  projectedLine: {\n    vertex: projectedLineVertexShader,\n    fragment: projectedLineFragmentShader,\n  },\n  points: {\n    vertex: pointsVertexShader,\n    fragment: pointsFragmentShader,\n  },\n  wireframe: {\n    vertex: wireframeVertexShader,\n    fragment: wireframeFragmentShader,\n  },\n  floatScalarImage: {\n    vertex: meshVertexShader,\n    fragment: scalarImageFragmentShader,\n  },\n  intScalarImage: {\n    vertex: meshVertexShader,\n    fragment: scalarImageFragmentShader,\n    fragmentDefines: new Map([[\"TEXTURE_DATA_TYPE_INT\", \"1\"]]),\n  },\n  uintScalarImage: {\n    vertex: meshVertexShader,\n    fragment: scalarImageFragmentShader,\n    fragmentDefines: new Map([[\"TEXTURE_DATA_TYPE_UINT\", \"1\"]]),\n  },\n  labelImage: {\n    vertex: meshVertexShader,\n    fragment: labelImage,\n  },\n  intLabelImage: {\n    vertex: meshVertexShader,\n    fragment: labelImage,\n    fragmentDefines: new Map([[\"TEXTURE_DATA_TYPE_INT\", \"1\"]]),\n  },\n  floatVolume: {\n    vertex: volumeVertexShader,\n    fragment: volumeFragmentShader,\n  },\n  intVolume: {\n    vertex: volumeVertexShader,\n    fragment: volumeFragmentShader,\n    fragmentDefines: new Map([[\"TEXTURE_DATA_TYPE_INT\", \"1\"]]),\n  },\n  uintVolume: {\n    vertex: volumeVertexShader,\n    fragment: volumeFragmentShader,\n    fragmentDefines: new Map([[\"TEXTURE_DATA_TYPE_UINT\", \"1\"]]),\n  },\n  meshDepth: {\n    vertex: meshVertexShader,\n    fragment: depthFragmentShader,\n  },\n  pointsDepth: {\n    vertex: pointsVertexShader,\n    fragment: pointsDepthFragmentShader,\n  },\n  projectedLineDepth: {\n    vertex: projectedLineVertexShader,\n    fragment: depthFragmentShader,\n  },\n};\n","type LogLevel = \"info\" | \"warn\" | \"error\" | \"debug\";\n\nconst Levels = {\n  debug: 10,\n  info: 20,\n  warn: 30,\n  error: 40,\n} satisfies Record<LogLevel, number>;\n\nconst Colors = {\n  debug: \"\\x1b[90m\", // gray\n  info: \"\\x1b[36m\", // cyan\n  warn: \"\\x1b[33m\", // yellow\n  error: \"\\x1b[31m\", // red\n} satisfies Record<LogLevel, string>;\n\n// Add new module names here as needed to represent different parts of the application\ntype Module =\n  | \"Channel\"\n  | \"Chunk\"\n  | \"ChunkManager\"\n  | \"ChunkManagerSource\"\n  | \"ChunkQueue\"\n  | \"ChunkStore\"\n  | \"ChunkStoreView\"\n  | \"EventDispatcher\"\n  | \"Idetik\"\n  | \"Layer\"\n  | \"OrbitControls\"\n  | \"PixelSizeObserver\"\n  | \"PointPicking\"\n  | \"RenderablePool\"\n  | \"Viewport\"\n  | \"VolumeLayer\"\n  | \"VolumeRenderable\"\n  | \"WebGLRenderer\"\n  | \"WebGLShaderProgram\"\n  | \"WebGLTexture\"\n  | \"WireframeGeometry\"\n  | \"ZarrWorker\";\n\nexport function getMode(): \"production\" | \"development\" | \"test\" {\n  const nodeEnv =\n    typeof process !== \"undefined\" && typeof process.env?.NODE_ENV === \"string\"\n      ? process.env.NODE_ENV\n      : undefined;\n\n  if (\n    nodeEnv === \"production\" ||\n    nodeEnv === \"development\" ||\n    nodeEnv === \"test\"\n  ) {\n    return nodeEnv;\n  }\n\n  if (typeof window !== \"undefined\") {\n    const { NODE_ENV } = window as { NODE_ENV?: unknown };\n\n    if (\n      NODE_ENV === \"production\" ||\n      NODE_ENV === \"development\" ||\n      NODE_ENV === \"test\"\n    ) {\n      return NODE_ENV;\n    }\n  }\n\n  return \"development\";\n}\nexport class Logger {\n  private static logLevel_: LogLevel =\n    getMode() === \"production\" ? \"warn\" : \"debug\";\n\n  public static setLogLevel(level: LogLevel) {\n    Logger.logLevel_ = level;\n  }\n\n  public static debug(\n    moduleName: Module,\n    message: string,\n    ...params: unknown[]\n  ) {\n    Logger.log(\"debug\", moduleName, message, ...params);\n  }\n\n  public static info(\n    moduleName: Module,\n    message: string,\n    ...params: unknown[]\n  ) {\n    Logger.log(\"info\", moduleName, message, ...params);\n  }\n\n  public static warn(\n    moduleName: Module,\n    message: string,\n    ...params: unknown[]\n  ) {\n    Logger.log(\"warn\", moduleName, message, ...params);\n  }\n\n  public static error(\n    moduleName: Module,\n    message: string,\n    ...params: unknown[]\n  ) {\n    Logger.log(\"error\", moduleName, message, ...params);\n  }\n\n  private static log(\n    level: LogLevel,\n    moduleName: Module,\n    message: string,\n    ...args: unknown[]\n  ) {\n    if (Levels[level] < Levels[Logger.logLevel_]) return;\n\n    const timestamp = new Date().toISOString();\n    const color = Colors[level];\n    const tag = `[${timestamp}][${level.toUpperCase()}][${moduleName}]`;\n    const output = [`${color}${tag}`, message, ...args];\n\n    switch (level) {\n      case \"debug\":\n        console.debug(...output); // eslint-disable-line no-console\n        break;\n      case \"info\":\n        console.info(...output); // eslint-disable-line no-console\n        break;\n      case \"warn\":\n        console.warn(...output); // eslint-disable-line no-console\n        break;\n      case \"error\":\n        console.error(...output); // eslint-disable-line no-console\n        break;\n    }\n  }\n}\n","import { Logger } from \"../utilities/logger\";\nimport { mat4, vec2, vec3 } from \"gl-matrix\";\n\nexport class WebGLShaderProgram {\n  private readonly gl_: WebGL2RenderingContext;\n  private readonly program_: WebGLProgram;\n  private readonly uniformInfo_: Map<\n    string,\n    [WebGLUniformLocation, WebGLActiveInfo]\n  > = new Map();\n\n  constructor(\n    gl: WebGL2RenderingContext,\n    vertexShaderSource: string,\n    fragmentShaderSource: string\n  ) {\n    this.gl_ = gl;\n\n    const program = gl.createProgram();\n    if (!program) {\n      throw new Error(`Failed to create WebGL shader program`);\n    }\n    this.program_ = program;\n\n    const shaders = [];\n    try {\n      shaders.push(this.addShader(vertexShaderSource, gl.VERTEX_SHADER));\n      shaders.push(this.addShader(fragmentShaderSource, gl.FRAGMENT_SHADER));\n      this.link();\n      this.preprocessUniformLocations();\n    } catch (error) {\n      gl.deleteProgram(program);\n      throw error;\n    } finally {\n      shaders.forEach((shader) => this.gl_.deleteShader(shader));\n    }\n  }\n\n  public setUniform(name: string, value: unknown) {\n    const [location, info] = this.uniformInfo_.get(name) ?? [];\n    if (!location || !info) {\n      throw new Error(`Uniform \"${name}\" not found in shader program`);\n    }\n    const type = info.type as SupportedUniformType;\n    switch (type) {\n      // There is no dedicated uniform1b in WebGL, but passing through\n      // as a float or signed integer works, so fallthrough to float\n      // for simplicity.\n      case this.gl_.BOOL:\n      case this.gl_.FLOAT:\n        if (typeof value === \"number\") {\n          this.gl_.uniform1f(location, value);\n        } else {\n          this.gl_.uniform1fv(location, value as Float32Array | number[]);\n        }\n        break;\n      case this.gl_.INT:\n        if (typeof value === \"number\") {\n          this.gl_.uniform1i(location, value);\n        } else {\n          this.gl_.uniform1iv(location, value as Int32Array | number[]);\n        }\n        break;\n      case this.gl_.FLOAT_VEC2:\n        this.gl_.uniform2fv(location, value as vec2);\n        break;\n      case this.gl_.FLOAT_VEC3:\n        this.gl_.uniform3fv(location, value as vec3);\n        break;\n      case this.gl_.FLOAT_VEC4:\n        this.gl_.uniform4fv(location, value as Float32Array | number[]);\n        break;\n      case this.gl_.FLOAT_MAT4:\n        this.gl_.uniformMatrix4fv(location, false, value as mat4);\n        break;\n      case this.gl_.UNSIGNED_INT:\n        this.gl_.uniform1ui(location, value as number);\n        break;\n      // For samplers, the value is the texture index.\n      case this.gl_.SAMPLER_2D:\n      case this.gl_.SAMPLER_CUBE:\n      case this.gl_.SAMPLER_3D:\n      case this.gl_.SAMPLER_2D_ARRAY:\n      case this.gl_.SAMPLER_2D_SHADOW:\n      case this.gl_.SAMPLER_CUBE_SHADOW:\n      case this.gl_.SAMPLER_2D_ARRAY_SHADOW:\n      case this.gl_.INT_SAMPLER_2D:\n      case this.gl_.INT_SAMPLER_3D:\n      case this.gl_.INT_SAMPLER_CUBE:\n      case this.gl_.INT_SAMPLER_2D_ARRAY:\n      case this.gl_.UNSIGNED_INT_SAMPLER_2D:\n      case this.gl_.UNSIGNED_INT_SAMPLER_3D:\n      case this.gl_.UNSIGNED_INT_SAMPLER_CUBE:\n      case this.gl_.UNSIGNED_INT_SAMPLER_2D_ARRAY:\n        this.gl_.uniform1i(location, value as number);\n        break;\n      default: {\n        const exhaustiveCheck: never = type;\n        throw new Error(`Unhandled uniform type: ${exhaustiveCheck}`);\n      }\n    }\n  }\n\n  private preprocessUniformLocations() {\n    const numUniforms = this.gl_.getProgramParameter(\n      this.program_,\n      this.gl_.ACTIVE_UNIFORMS\n    );\n    for (let i = 0; i < numUniforms; i++) {\n      const info = this.gl_.getActiveUniform(this.program_, i);\n      if (info) {\n        if (!SUPPORTED_UNIFORM_TYPES.has(info.type)) {\n          throw new Error(\n            `Unsupported uniform type \"${info.type}\" (GLenum) found in shader program for uniform \"${info.name}\"`\n          );\n        }\n\n        const location = this.gl_.getUniformLocation(this.program_, info.name);\n        if (location) {\n          this.uniformInfo_.set(info.name, [location, info]);\n          Logger.debug(\n            \"WebGLShaderProgram\",\n            \"Uniform found:\",\n            info.name,\n            info.type,\n            info.size\n          );\n        }\n      }\n    }\n  }\n\n  private addShader(source: string, type: number) {\n    const shader = this.gl_.createShader(type);\n    if (!shader) {\n      throw new Error(`Failed to create a new shader of type ${type}`);\n    }\n\n    this.gl_.shaderSource(shader, source);\n    this.gl_.compileShader(shader);\n    if (!this.gl_.getShaderParameter(shader, this.gl_.COMPILE_STATUS)) {\n      const message = this.gl_.getShaderInfoLog(shader);\n      this.gl_.deleteShader(shader);\n      throw new Error(`Error compiling shader: ${message}`);\n    }\n\n    this.gl_.attachShader(this.program_, shader);\n    return shader;\n  }\n\n  private link() {\n    this.gl_.linkProgram(this.program_);\n    if (!this.getParameter(this.gl_.LINK_STATUS)) {\n      const message = this.gl_.getProgramInfoLog(this.program_);\n      throw new Error(`Error linking program: ${message}`);\n    }\n  }\n\n  public use() {\n    this.gl_.useProgram(this.program_);\n  }\n\n  private getParameter(parameter: number) {\n    return this.gl_.getProgramParameter(this.program_, parameter);\n  }\n\n  public get uniformNames(): string[] {\n    return Array.from(this.uniformInfo_.keys());\n  }\n}\n\n// using an array and converting to a set allows us to also create a type here\nconst SUPPORTED_UNIFORM_TYPES_ =\n  typeof window !== \"undefined\" // Don't error in SSR contexts.\n    ? [\n        WebGL2RenderingContext.BOOL,\n        WebGL2RenderingContext.FLOAT,\n        WebGL2RenderingContext.INT,\n        WebGL2RenderingContext.FLOAT_VEC2,\n        WebGL2RenderingContext.FLOAT_VEC3,\n        WebGL2RenderingContext.FLOAT_VEC4,\n        WebGL2RenderingContext.FLOAT_MAT4,\n        WebGL2RenderingContext.SAMPLER_2D,\n        WebGL2RenderingContext.SAMPLER_CUBE,\n        WebGL2RenderingContext.SAMPLER_3D,\n        WebGL2RenderingContext.SAMPLER_2D_ARRAY,\n        WebGL2RenderingContext.SAMPLER_2D_SHADOW,\n        WebGL2RenderingContext.SAMPLER_CUBE_SHADOW,\n        WebGL2RenderingContext.SAMPLER_2D_ARRAY_SHADOW,\n        WebGL2RenderingContext.INT,\n        WebGL2RenderingContext.INT_SAMPLER_2D,\n        WebGL2RenderingContext.INT_SAMPLER_3D,\n        WebGL2RenderingContext.INT_SAMPLER_CUBE,\n        WebGL2RenderingContext.INT_SAMPLER_2D_ARRAY,\n        WebGL2RenderingContext.UNSIGNED_INT,\n        WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_2D,\n        WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_3D,\n        WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_CUBE,\n        WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_2D_ARRAY,\n      ]\n    : [];\ntype SupportedUniformType = (typeof SUPPORTED_UNIFORM_TYPES_)[GLenum];\nconst SUPPORTED_UNIFORM_TYPES: ReadonlySet<GLenum> = new Set<GLenum>(\n  SUPPORTED_UNIFORM_TYPES_\n);\n","import { Shader, shaderCode } from \"./shaders\";\nimport { WebGLShaderProgram } from \"./webgl_shader_program\";\n\nconst pragmaInjectDefines = \"#pragma inject_defines\";\n\nexport class WebGLShaderPrograms {\n  private gl_: WebGL2RenderingContext;\n  private programs_: Map<Shader, WebGLShaderProgram> = new Map();\n\n  constructor(gl: WebGL2RenderingContext) {\n    this.gl_ = gl;\n  }\n\n  public use(shader: Shader): WebGLShaderProgram {\n    let program = this.programs_.get(shader);\n    if (program === undefined) {\n      const code = shaderCode[shader];\n      const vertexShaderSource = replaceSourceDefines(\n        code.vertex,\n        code.vertexDefines\n      );\n      const fragmentShaderSource = replaceSourceDefines(\n        code.fragment,\n        code.fragmentDefines\n      );\n      program = new WebGLShaderProgram(\n        this.gl_,\n        vertexShaderSource,\n        fragmentShaderSource\n      );\n      program.use();\n      const error = this.gl_.getError();\n      if (error !== this.gl_.NO_ERROR) {\n        throw new Error(`Error using WebGL program: ${error}`);\n      }\n      this.programs_.set(shader, program);\n    } else {\n      program.use();\n    }\n    return program;\n  }\n}\n\nfunction replaceSourceDefines(\n  source: string,\n  defines?: ReadonlyMap<string, string>\n): string {\n  if (defines === undefined || defines.size == 0) return source;\n  if (!source.includes(pragmaInjectDefines)) {\n    throw new Error(\n      `Shader source does not contain \"${pragmaInjectDefines}\" directive`\n    );\n  }\n  const definesSource = Array.from(defines.entries())\n    .map(([key, value]) => `#define ${key} ${value}`)\n    .join(\"\\n\");\n  // Offset the line number so that the original source file line\n  // numbers are interpretable. The +1 accounts for the #pragma directive\n  // to be replaced.\n  const lineNumberOffset = 1 - defines.size;\n  const nextLineNumber = `#line __LINE__ + ${lineNumberOffset}`;\n  const sourceToInject = `${definesSource}\\n${nextLineNumber}`;\n  return source.replace(pragmaInjectDefines, sourceToInject);\n}\n","const counters: Record<string, number> = {};\n\nexport function generateID(prefix?: string): string {\n  const key = prefix ?? \"\";\n  counters[key] = (counters[key] ?? 0) + 1;\n  return prefix ? `${prefix}-${counters[key]}` : String(counters[key]);\n}\n","import { generateID } from \"../utilities/id_generator\";\n\nexport abstract class Node {\n  public readonly id = generateID();\n\n  public abstract get type(): string;\n}\n","/**\n * Common utilities\n * @module glMatrix\n */\n\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== \"undefined\" ? Float32Array : Array;\nexport var RANDOM = Math.random;\nexport var ANGLE_ORDER = \"zyx\";\n\n/**\n * Symmetric round\n * see https://www.npmjs.com/package/round-half-up-symmetric#user-content-detailed-background\n *\n * @param {Number} a value to round\n */\nexport function round(a) {\n  if (a >= 0) return Math.round(a);\n  return a % 0.5 === 0 ? Math.floor(a) : Math.round(a);\n}\n\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\nexport function setMatrixArrayType(type) {\n  ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\nvar radian = 180 / Math.PI;\n\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\nexport function toRadian(a) {\n  return a * degree;\n}\n\n/**\n * Convert Radian To Degree\n *\n * @param {Number} a Angle in Radians\n */\nexport function toDegree(a) {\n  return a * radian;\n}\n\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a          The first number to test.\n * @param {Number} b          The second number to test.\n * @param {Number} tolerance  Absolute or relative tolerance (default glMatrix.EPSILON)\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\nexport function equals(a, b) {\n  var tolerance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EPSILON;\n  return Math.abs(a - b) <= tolerance * Math.max(1, Math.abs(a), Math.abs(b));\n}","import * as glMatrix from \"./common.js\";\n\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\nexport function create() {\n  var out = new glMatrix.ARRAY_TYPE(9);\n  if (glMatrix.ARRAY_TYPE != Float32Array) {\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[5] = 0;\n    out[6] = 0;\n    out[7] = 0;\n  }\n  out[0] = 1;\n  out[4] = 1;\n  out[8] = 1;\n  return out;\n}\n\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a   the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[4];\n  out[4] = a[5];\n  out[5] = a[6];\n  out[6] = a[8];\n  out[7] = a[9];\n  out[8] = a[10];\n  return out;\n}\n\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\nexport function clone(a) {\n  var out = new glMatrix.ARRAY_TYPE(9);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  return out;\n}\n\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  return out;\n}\n\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n  var out = new glMatrix.ARRAY_TYPE(9);\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m10;\n  out[4] = m11;\n  out[5] = m12;\n  out[6] = m20;\n  out[7] = m21;\n  out[8] = m22;\n  return out;\n}\n\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m10;\n  out[4] = m11;\n  out[5] = m12;\n  out[6] = m20;\n  out[7] = m21;\n  out[8] = m22;\n  return out;\n}\n\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 1;\n  out[5] = 0;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 1;\n  return out;\n}\n\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n  // If we are transposing ourselves we can skip a few steps but have to cache some values\n  if (out === a) {\n    var a01 = a[1],\n      a02 = a[2],\n      a12 = a[5];\n    out[1] = a[3];\n    out[2] = a[6];\n    out[3] = a01;\n    out[5] = a[7];\n    out[6] = a02;\n    out[7] = a12;\n  } else {\n    out[0] = a[0];\n    out[1] = a[3];\n    out[2] = a[6];\n    out[3] = a[1];\n    out[4] = a[4];\n    out[5] = a[7];\n    out[6] = a[2];\n    out[7] = a[5];\n    out[8] = a[8];\n  }\n  return out;\n}\n\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3 | null} out, or null if source matrix is not invertible\n */\nexport function invert(out, a) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2];\n  var a10 = a[3],\n    a11 = a[4],\n    a12 = a[5];\n  var a20 = a[6],\n    a21 = a[7],\n    a22 = a[8];\n  var b01 = a22 * a11 - a12 * a21;\n  var b11 = -a22 * a10 + a12 * a20;\n  var b21 = a21 * a10 - a11 * a20;\n\n  // Calculate the determinant\n  var det = a00 * b01 + a01 * b11 + a02 * b21;\n  if (!det) {\n    return null;\n  }\n  det = 1.0 / det;\n  out[0] = b01 * det;\n  out[1] = (-a22 * a01 + a02 * a21) * det;\n  out[2] = (a12 * a01 - a02 * a11) * det;\n  out[3] = b11 * det;\n  out[4] = (a22 * a00 - a02 * a20) * det;\n  out[5] = (-a12 * a00 + a02 * a10) * det;\n  out[6] = b21 * det;\n  out[7] = (-a21 * a00 + a01 * a20) * det;\n  out[8] = (a11 * a00 - a01 * a10) * det;\n  return out;\n}\n\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function adjoint(out, a) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2];\n  var a10 = a[3],\n    a11 = a[4],\n    a12 = a[5];\n  var a20 = a[6],\n    a21 = a[7],\n    a22 = a[8];\n  out[0] = a11 * a22 - a12 * a21;\n  out[1] = a02 * a21 - a01 * a22;\n  out[2] = a01 * a12 - a02 * a11;\n  out[3] = a12 * a20 - a10 * a22;\n  out[4] = a00 * a22 - a02 * a20;\n  out[5] = a02 * a10 - a00 * a12;\n  out[6] = a10 * a21 - a11 * a20;\n  out[7] = a01 * a20 - a00 * a21;\n  out[8] = a00 * a11 - a01 * a10;\n  return out;\n}\n\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2];\n  var a10 = a[3],\n    a11 = a[4],\n    a12 = a[5];\n  var a20 = a[6],\n    a21 = a[7],\n    a22 = a[8];\n  return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2];\n  var a10 = a[3],\n    a11 = a[4],\n    a12 = a[5];\n  var a20 = a[6],\n    a21 = a[7],\n    a22 = a[8];\n  var b00 = b[0],\n    b01 = b[1],\n    b02 = b[2];\n  var b10 = b[3],\n    b11 = b[4],\n    b12 = b[5];\n  var b20 = b[6],\n    b21 = b[7],\n    b22 = b[8];\n  out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n  out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n  out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n  out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n  out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n  out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n  out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n  out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n  out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n  return out;\n}\n\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2],\n    a10 = a[3],\n    a11 = a[4],\n    a12 = a[5],\n    a20 = a[6],\n    a21 = a[7],\n    a22 = a[8],\n    x = v[0],\n    y = v[1];\n  out[0] = a00;\n  out[1] = a01;\n  out[2] = a02;\n  out[3] = a10;\n  out[4] = a11;\n  out[5] = a12;\n  out[6] = x * a00 + y * a10 + a20;\n  out[7] = x * a01 + y * a11 + a21;\n  out[8] = x * a02 + y * a12 + a22;\n  return out;\n}\n\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2],\n    a10 = a[3],\n    a11 = a[4],\n    a12 = a[5],\n    a20 = a[6],\n    a21 = a[7],\n    a22 = a[8],\n    s = Math.sin(rad),\n    c = Math.cos(rad);\n  out[0] = c * a00 + s * a10;\n  out[1] = c * a01 + s * a11;\n  out[2] = c * a02 + s * a12;\n  out[3] = c * a10 - s * a00;\n  out[4] = c * a11 - s * a01;\n  out[5] = c * a12 - s * a02;\n  out[6] = a20;\n  out[7] = a21;\n  out[8] = a22;\n  return out;\n}\n\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n  var x = v[0],\n    y = v[1];\n  out[0] = x * a[0];\n  out[1] = x * a[1];\n  out[2] = x * a[2];\n  out[3] = y * a[3];\n  out[4] = y * a[4];\n  out[5] = y * a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  return out;\n}\n\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n *     mat3.identity(dest);\n *     mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\nexport function fromTranslation(out, v) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 1;\n  out[5] = 0;\n  out[6] = v[0];\n  out[7] = v[1];\n  out[8] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n *     mat3.identity(dest);\n *     mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function fromRotation(out, rad) {\n  var s = Math.sin(rad),\n    c = Math.cos(rad);\n  out[0] = c;\n  out[1] = s;\n  out[2] = 0;\n  out[3] = -s;\n  out[4] = c;\n  out[5] = 0;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n *     mat3.identity(dest);\n *     mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\nexport function fromScaling(out, v) {\n  out[0] = v[0];\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = v[1];\n  out[5] = 0;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 1;\n  return out;\n}\n\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\nexport function fromMat2d(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = 0;\n  out[3] = a[2];\n  out[4] = a[3];\n  out[5] = 0;\n  out[6] = a[4];\n  out[7] = a[5];\n  out[8] = 1;\n  return out;\n}\n\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n  var x = q[0],\n    y = q[1],\n    z = q[2],\n    w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var yx = y * x2;\n  var yy = y * y2;\n  var zx = z * x2;\n  var zy = z * y2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  out[0] = 1 - yy - zz;\n  out[3] = yx - wz;\n  out[6] = zx + wy;\n  out[1] = yx + wz;\n  out[4] = 1 - xx - zz;\n  out[7] = zy - wx;\n  out[2] = zx - wy;\n  out[5] = zy + wx;\n  out[8] = 1 - xx - yy;\n  return out;\n}\n\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2],\n    a03 = a[3];\n  var a10 = a[4],\n    a11 = a[5],\n    a12 = a[6],\n    a13 = a[7];\n  var a20 = a[8],\n    a21 = a[9],\n    a22 = a[10],\n    a23 = a[11];\n  var a30 = a[12],\n    a31 = a[13],\n    a32 = a[14],\n    a33 = a[15];\n  var b00 = a00 * a11 - a01 * a10;\n  var b01 = a00 * a12 - a02 * a10;\n  var b02 = a00 * a13 - a03 * a10;\n  var b03 = a01 * a12 - a02 * a11;\n  var b04 = a01 * a13 - a03 * a11;\n  var b05 = a02 * a13 - a03 * a12;\n  var b06 = a20 * a31 - a21 * a30;\n  var b07 = a20 * a32 - a22 * a30;\n  var b08 = a20 * a33 - a23 * a30;\n  var b09 = a21 * a32 - a22 * a31;\n  var b10 = a21 * a33 - a23 * a31;\n  var b11 = a22 * a33 - a23 * a32;\n\n  // Calculate the determinant\n  var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n  if (!det) {\n    return null;\n  }\n  det = 1.0 / det;\n  out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n  out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n  out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n  out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n  out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n  out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n  out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n  out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n  out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n  return out;\n}\n\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n  out[0] = 2 / width;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = -2 / height;\n  out[5] = 0;\n  out[6] = -1;\n  out[7] = 1;\n  out[8] = 1;\n  return out;\n}\n\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n  return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\nexport function frob(a) {\n  return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3] + a[4] * a[4] + a[5] * a[5] + a[6] * a[6] + a[7] * a[7] + a[8] * a[8]);\n}\n\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  out[3] = a[3] + b[3];\n  out[4] = a[4] + b[4];\n  out[5] = a[5] + b[5];\n  out[6] = a[6] + b[6];\n  out[7] = a[7] + b[7];\n  out[8] = a[8] + b[8];\n  return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  out[3] = a[3] - b[3];\n  out[4] = a[4] - b[4];\n  out[5] = a[5] - b[5];\n  out[6] = a[6] - b[6];\n  out[7] = a[7] - b[7];\n  out[8] = a[8] - b[8];\n  return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\nexport function multiplyScalar(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  out[3] = a[3] * b;\n  out[4] = a[4] * b;\n  out[5] = a[5] * b;\n  out[6] = a[6] * b;\n  out[7] = a[7] * b;\n  out[8] = a[8] * b;\n  return out;\n}\n\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  out[3] = a[3] + b[3] * scale;\n  out[4] = a[4] + b[4] * scale;\n  out[5] = a[5] + b[5] * scale;\n  out[6] = a[6] + b[6] * scale;\n  out[7] = a[7] + b[7] * scale;\n  out[8] = a[8] + b[8] * scale;\n  return out;\n}\n\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n  var a0 = a[0],\n    a1 = a[1],\n    a2 = a[2],\n    a3 = a[3],\n    a4 = a[4],\n    a5 = a[5],\n    a6 = a[6],\n    a7 = a[7],\n    a8 = a[8];\n  var b0 = b[0],\n    b1 = b[1],\n    b2 = b[2],\n    b3 = b[3],\n    b4 = b[4],\n    b5 = b[5],\n    b6 = b[6],\n    b7 = b[7],\n    b8 = b[8];\n  return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\nexport var mul = multiply;\n\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\nexport function create() {\n  var out = new glMatrix.ARRAY_TYPE(16);\n  if (glMatrix.ARRAY_TYPE != Float32Array) {\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[11] = 0;\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 0;\n  }\n  out[0] = 1;\n  out[5] = 1;\n  out[10] = 1;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\nexport function clone(a) {\n  var out = new glMatrix.ARRAY_TYPE(16);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  out[9] = a[9];\n  out[10] = a[10];\n  out[11] = a[11];\n  out[12] = a[12];\n  out[13] = a[13];\n  out[14] = a[14];\n  out[15] = a[15];\n  return out;\n}\n\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\nexport function copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4];\n  out[5] = a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  out[9] = a[9];\n  out[10] = a[10];\n  out[11] = a[11];\n  out[12] = a[12];\n  out[13] = a[13];\n  out[14] = a[14];\n  out[15] = a[15];\n  return out;\n}\n\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n  var out = new glMatrix.ARRAY_TYPE(16);\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m03;\n  out[4] = m10;\n  out[5] = m11;\n  out[6] = m12;\n  out[7] = m13;\n  out[8] = m20;\n  out[9] = m21;\n  out[10] = m22;\n  out[11] = m23;\n  out[12] = m30;\n  out[13] = m31;\n  out[14] = m32;\n  out[15] = m33;\n  return out;\n}\n\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n  out[0] = m00;\n  out[1] = m01;\n  out[2] = m02;\n  out[3] = m03;\n  out[4] = m10;\n  out[5] = m11;\n  out[6] = m12;\n  out[7] = m13;\n  out[8] = m20;\n  out[9] = m21;\n  out[10] = m22;\n  out[11] = m23;\n  out[12] = m30;\n  out[13] = m31;\n  out[14] = m32;\n  out[15] = m33;\n  return out;\n}\n\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\nexport function identity(out) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = 1;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 1;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\nexport function transpose(out, a) {\n  // If we are transposing ourselves we can skip a few steps but have to cache some values\n  if (out === a) {\n    var a01 = a[1],\n      a02 = a[2],\n      a03 = a[3];\n    var a12 = a[6],\n      a13 = a[7];\n    var a23 = a[11];\n    out[1] = a[4];\n    out[2] = a[8];\n    out[3] = a[12];\n    out[4] = a01;\n    out[6] = a[9];\n    out[7] = a[13];\n    out[8] = a02;\n    out[9] = a12;\n    out[11] = a[14];\n    out[12] = a03;\n    out[13] = a13;\n    out[14] = a23;\n  } else {\n    out[0] = a[0];\n    out[1] = a[4];\n    out[2] = a[8];\n    out[3] = a[12];\n    out[4] = a[1];\n    out[5] = a[5];\n    out[6] = a[9];\n    out[7] = a[13];\n    out[8] = a[2];\n    out[9] = a[6];\n    out[10] = a[10];\n    out[11] = a[14];\n    out[12] = a[3];\n    out[13] = a[7];\n    out[14] = a[11];\n    out[15] = a[15];\n  }\n  return out;\n}\n\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4 | null} out, or null if source matrix is not invertible\n */\nexport function invert(out, a) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2],\n    a03 = a[3];\n  var a10 = a[4],\n    a11 = a[5],\n    a12 = a[6],\n    a13 = a[7];\n  var a20 = a[8],\n    a21 = a[9],\n    a22 = a[10],\n    a23 = a[11];\n  var a30 = a[12],\n    a31 = a[13],\n    a32 = a[14],\n    a33 = a[15];\n  var b00 = a00 * a11 - a01 * a10;\n  var b01 = a00 * a12 - a02 * a10;\n  var b02 = a00 * a13 - a03 * a10;\n  var b03 = a01 * a12 - a02 * a11;\n  var b04 = a01 * a13 - a03 * a11;\n  var b05 = a02 * a13 - a03 * a12;\n  var b06 = a20 * a31 - a21 * a30;\n  var b07 = a20 * a32 - a22 * a30;\n  var b08 = a20 * a33 - a23 * a30;\n  var b09 = a21 * a32 - a22 * a31;\n  var b10 = a21 * a33 - a23 * a31;\n  var b11 = a22 * a33 - a23 * a32;\n\n  // Calculate the determinant\n  var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n  if (!det) {\n    return null;\n  }\n  det = 1.0 / det;\n  out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n  out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n  out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n  out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n  out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n  out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n  out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n  out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n  out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n  out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n  out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n  out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n  out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n  out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n  out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n  out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n  return out;\n}\n\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\nexport function adjoint(out, a) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2],\n    a03 = a[3];\n  var a10 = a[4],\n    a11 = a[5],\n    a12 = a[6],\n    a13 = a[7];\n  var a20 = a[8],\n    a21 = a[9],\n    a22 = a[10],\n    a23 = a[11];\n  var a30 = a[12],\n    a31 = a[13],\n    a32 = a[14],\n    a33 = a[15];\n  var b00 = a00 * a11 - a01 * a10;\n  var b01 = a00 * a12 - a02 * a10;\n  var b02 = a00 * a13 - a03 * a10;\n  var b03 = a01 * a12 - a02 * a11;\n  var b04 = a01 * a13 - a03 * a11;\n  var b05 = a02 * a13 - a03 * a12;\n  var b06 = a20 * a31 - a21 * a30;\n  var b07 = a20 * a32 - a22 * a30;\n  var b08 = a20 * a33 - a23 * a30;\n  var b09 = a21 * a32 - a22 * a31;\n  var b10 = a21 * a33 - a23 * a31;\n  var b11 = a22 * a33 - a23 * a32;\n  out[0] = a11 * b11 - a12 * b10 + a13 * b09;\n  out[1] = a02 * b10 - a01 * b11 - a03 * b09;\n  out[2] = a31 * b05 - a32 * b04 + a33 * b03;\n  out[3] = a22 * b04 - a21 * b05 - a23 * b03;\n  out[4] = a12 * b08 - a10 * b11 - a13 * b07;\n  out[5] = a00 * b11 - a02 * b08 + a03 * b07;\n  out[6] = a32 * b02 - a30 * b05 - a33 * b01;\n  out[7] = a20 * b05 - a22 * b02 + a23 * b01;\n  out[8] = a10 * b10 - a11 * b08 + a13 * b06;\n  out[9] = a01 * b08 - a00 * b10 - a03 * b06;\n  out[10] = a30 * b04 - a31 * b02 + a33 * b00;\n  out[11] = a21 * b02 - a20 * b04 - a23 * b00;\n  out[12] = a11 * b07 - a10 * b09 - a12 * b06;\n  out[13] = a00 * b09 - a01 * b07 + a02 * b06;\n  out[14] = a31 * b01 - a30 * b03 - a32 * b00;\n  out[15] = a20 * b03 - a21 * b01 + a22 * b00;\n  return out;\n}\n\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2],\n    a03 = a[3];\n  var a10 = a[4],\n    a11 = a[5],\n    a12 = a[6],\n    a13 = a[7];\n  var a20 = a[8],\n    a21 = a[9],\n    a22 = a[10],\n    a23 = a[11];\n  var a30 = a[12],\n    a31 = a[13],\n    a32 = a[14],\n    a33 = a[15];\n  var b0 = a00 * a11 - a01 * a10;\n  var b1 = a00 * a12 - a02 * a10;\n  var b2 = a01 * a12 - a02 * a11;\n  var b3 = a20 * a31 - a21 * a30;\n  var b4 = a20 * a32 - a22 * a30;\n  var b5 = a21 * a32 - a22 * a31;\n  var b6 = a00 * b5 - a01 * b4 + a02 * b3;\n  var b7 = a10 * b5 - a11 * b4 + a12 * b3;\n  var b8 = a20 * b2 - a21 * b1 + a22 * b0;\n  var b9 = a30 * b2 - a31 * b1 + a32 * b0;\n\n  // Calculate the determinant\n  return a13 * b6 - a03 * b7 + a33 * b8 - a23 * b9;\n}\n\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\nexport function multiply(out, a, b) {\n  var a00 = a[0],\n    a01 = a[1],\n    a02 = a[2],\n    a03 = a[3];\n  var a10 = a[4],\n    a11 = a[5],\n    a12 = a[6],\n    a13 = a[7];\n  var a20 = a[8],\n    a21 = a[9],\n    a22 = a[10],\n    a23 = a[11];\n  var a30 = a[12],\n    a31 = a[13],\n    a32 = a[14],\n    a33 = a[15];\n\n  // Cache only the current line of the second matrix\n  var b0 = b[0],\n    b1 = b[1],\n    b2 = b[2],\n    b3 = b[3];\n  out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  b0 = b[4];\n  b1 = b[5];\n  b2 = b[6];\n  b3 = b[7];\n  out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  b0 = b[8];\n  b1 = b[9];\n  b2 = b[10];\n  b3 = b[11];\n  out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  b0 = b[12];\n  b1 = b[13];\n  b2 = b[14];\n  b3 = b[15];\n  out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n  out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n  out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n  out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n  return out;\n}\n\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\nexport function translate(out, a, v) {\n  var x = v[0],\n    y = v[1],\n    z = v[2];\n  var a00, a01, a02, a03;\n  var a10, a11, a12, a13;\n  var a20, a21, a22, a23;\n  if (a === out) {\n    out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n    out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n    out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n    out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n  } else {\n    a00 = a[0];\n    a01 = a[1];\n    a02 = a[2];\n    a03 = a[3];\n    a10 = a[4];\n    a11 = a[5];\n    a12 = a[6];\n    a13 = a[7];\n    a20 = a[8];\n    a21 = a[9];\n    a22 = a[10];\n    a23 = a[11];\n    out[0] = a00;\n    out[1] = a01;\n    out[2] = a02;\n    out[3] = a03;\n    out[4] = a10;\n    out[5] = a11;\n    out[6] = a12;\n    out[7] = a13;\n    out[8] = a20;\n    out[9] = a21;\n    out[10] = a22;\n    out[11] = a23;\n    out[12] = a00 * x + a10 * y + a20 * z + a[12];\n    out[13] = a01 * x + a11 * y + a21 * z + a[13];\n    out[14] = a02 * x + a12 * y + a22 * z + a[14];\n    out[15] = a03 * x + a13 * y + a23 * z + a[15];\n  }\n  return out;\n}\n\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\nexport function scale(out, a, v) {\n  var x = v[0],\n    y = v[1],\n    z = v[2];\n  out[0] = a[0] * x;\n  out[1] = a[1] * x;\n  out[2] = a[2] * x;\n  out[3] = a[3] * x;\n  out[4] = a[4] * y;\n  out[5] = a[5] * y;\n  out[6] = a[6] * y;\n  out[7] = a[7] * y;\n  out[8] = a[8] * z;\n  out[9] = a[9] * z;\n  out[10] = a[10] * z;\n  out[11] = a[11] * z;\n  out[12] = a[12];\n  out[13] = a[13];\n  out[14] = a[14];\n  out[15] = a[15];\n  return out;\n}\n\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\nexport function rotate(out, a, rad, axis) {\n  var x = axis[0],\n    y = axis[1],\n    z = axis[2];\n  var len = Math.sqrt(x * x + y * y + z * z);\n  var s, c, t;\n  var a00, a01, a02, a03;\n  var a10, a11, a12, a13;\n  var a20, a21, a22, a23;\n  var b00, b01, b02;\n  var b10, b11, b12;\n  var b20, b21, b22;\n  if (len < glMatrix.EPSILON) {\n    return null;\n  }\n  len = 1 / len;\n  x *= len;\n  y *= len;\n  z *= len;\n  s = Math.sin(rad);\n  c = Math.cos(rad);\n  t = 1 - c;\n  a00 = a[0];\n  a01 = a[1];\n  a02 = a[2];\n  a03 = a[3];\n  a10 = a[4];\n  a11 = a[5];\n  a12 = a[6];\n  a13 = a[7];\n  a20 = a[8];\n  a21 = a[9];\n  a22 = a[10];\n  a23 = a[11];\n\n  // Construct the elements of the rotation matrix\n  b00 = x * x * t + c;\n  b01 = y * x * t + z * s;\n  b02 = z * x * t - y * s;\n  b10 = x * y * t - z * s;\n  b11 = y * y * t + c;\n  b12 = z * y * t + x * s;\n  b20 = x * z * t + y * s;\n  b21 = y * z * t - x * s;\n  b22 = z * z * t + c;\n\n  // Perform rotation-specific matrix multiplication\n  out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n  out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n  out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n  out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n  out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n  out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n  out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n  out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n  out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n  out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n  out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n  out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged last row\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  }\n  return out;\n}\n\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nexport function rotateX(out, a, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n  var a10 = a[4];\n  var a11 = a[5];\n  var a12 = a[6];\n  var a13 = a[7];\n  var a20 = a[8];\n  var a21 = a[9];\n  var a22 = a[10];\n  var a23 = a[11];\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged rows\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  }\n\n  // Perform axis-specific matrix multiplication\n  out[4] = a10 * c + a20 * s;\n  out[5] = a11 * c + a21 * s;\n  out[6] = a12 * c + a22 * s;\n  out[7] = a13 * c + a23 * s;\n  out[8] = a20 * c - a10 * s;\n  out[9] = a21 * c - a11 * s;\n  out[10] = a22 * c - a12 * s;\n  out[11] = a23 * c - a13 * s;\n  return out;\n}\n\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nexport function rotateY(out, a, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n  var a00 = a[0];\n  var a01 = a[1];\n  var a02 = a[2];\n  var a03 = a[3];\n  var a20 = a[8];\n  var a21 = a[9];\n  var a22 = a[10];\n  var a23 = a[11];\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged rows\n    out[4] = a[4];\n    out[5] = a[5];\n    out[6] = a[6];\n    out[7] = a[7];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  }\n\n  // Perform axis-specific matrix multiplication\n  out[0] = a00 * c - a20 * s;\n  out[1] = a01 * c - a21 * s;\n  out[2] = a02 * c - a22 * s;\n  out[3] = a03 * c - a23 * s;\n  out[8] = a00 * s + a20 * c;\n  out[9] = a01 * s + a21 * c;\n  out[10] = a02 * s + a22 * c;\n  out[11] = a03 * s + a23 * c;\n  return out;\n}\n\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nexport function rotateZ(out, a, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n  var a00 = a[0];\n  var a01 = a[1];\n  var a02 = a[2];\n  var a03 = a[3];\n  var a10 = a[4];\n  var a11 = a[5];\n  var a12 = a[6];\n  var a13 = a[7];\n  if (a !== out) {\n    // If the source and destination differ, copy the unchanged last row\n    out[8] = a[8];\n    out[9] = a[9];\n    out[10] = a[10];\n    out[11] = a[11];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n  }\n\n  // Perform axis-specific matrix multiplication\n  out[0] = a00 * c + a10 * s;\n  out[1] = a01 * c + a11 * s;\n  out[2] = a02 * c + a12 * s;\n  out[3] = a03 * c + a13 * s;\n  out[4] = a10 * c - a00 * s;\n  out[5] = a11 * c - a01 * s;\n  out[6] = a12 * c - a02 * s;\n  out[7] = a13 * c - a03 * s;\n  return out;\n}\n\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\nexport function fromTranslation(out, v) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = 1;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 1;\n  out[11] = 0;\n  out[12] = v[0];\n  out[13] = v[1];\n  out[14] = v[2];\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\nexport function fromScaling(out, v) {\n  out[0] = v[0];\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = v[1];\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = v[2];\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\nexport function fromRotation(out, rad, axis) {\n  var x = axis[0],\n    y = axis[1],\n    z = axis[2];\n  var len = Math.sqrt(x * x + y * y + z * z);\n  var s, c, t;\n  if (len < glMatrix.EPSILON) {\n    return null;\n  }\n  len = 1 / len;\n  x *= len;\n  y *= len;\n  z *= len;\n  s = Math.sin(rad);\n  c = Math.cos(rad);\n  t = 1 - c;\n\n  // Perform rotation-specific matrix multiplication\n  out[0] = x * x * t + c;\n  out[1] = y * x * t + z * s;\n  out[2] = z * x * t - y * s;\n  out[3] = 0;\n  out[4] = x * y * t - z * s;\n  out[5] = y * y * t + c;\n  out[6] = z * y * t + x * s;\n  out[7] = 0;\n  out[8] = x * z * t + y * s;\n  out[9] = y * z * t - x * s;\n  out[10] = z * z * t + c;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nexport function fromXRotation(out, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n\n  // Perform axis-specific matrix multiplication\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = c;\n  out[6] = s;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = -s;\n  out[10] = c;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nexport function fromYRotation(out, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n\n  // Perform axis-specific matrix multiplication\n  out[0] = c;\n  out[1] = 0;\n  out[2] = -s;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = 1;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = s;\n  out[9] = 0;\n  out[10] = c;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nexport function fromZRotation(out, rad) {\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n\n  // Perform axis-specific matrix multiplication\n  out[0] = c;\n  out[1] = s;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = -s;\n  out[5] = c;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 1;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, dest, vec);\n *     let quatMat = mat4.create();\n *     mat4.fromQuat(quatMat, quat);\n *     mat4.multiply(dest, dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\nexport function fromRotationTranslation(out, q, v) {\n  // Quaternion math\n  var x = q[0],\n    y = q[1],\n    z = q[2],\n    w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var xy = x * y2;\n  var xz = x * z2;\n  var yy = y * y2;\n  var yz = y * z2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  out[0] = 1 - (yy + zz);\n  out[1] = xy + wz;\n  out[2] = xz - wy;\n  out[3] = 0;\n  out[4] = xy - wz;\n  out[5] = 1 - (xx + zz);\n  out[6] = yz + wx;\n  out[7] = 0;\n  out[8] = xz + wy;\n  out[9] = yz - wx;\n  out[10] = 1 - (xx + yy);\n  out[11] = 0;\n  out[12] = v[0];\n  out[13] = v[1];\n  out[14] = v[2];\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\nexport function fromQuat2(out, a) {\n  var translation = new glMatrix.ARRAY_TYPE(3);\n  var bx = -a[0],\n    by = -a[1],\n    bz = -a[2],\n    bw = a[3],\n    ax = a[4],\n    ay = a[5],\n    az = a[6],\n    aw = a[7];\n  var magnitude = bx * bx + by * by + bz * bz + bw * bw;\n  //Only scale if it makes sense\n  if (magnitude > 0) {\n    translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n    translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n    translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n  } else {\n    translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n    translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n    translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n  }\n  fromRotationTranslation(out, a, translation);\n  return out;\n}\n\n/**\n * Returns the translation vector component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslation,\n *  the returned vector will be the same as the translation vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive translation component\n * @param  {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\nexport function getTranslation(out, mat) {\n  out[0] = mat[12];\n  out[1] = mat[13];\n  out[2] = mat[14];\n  return out;\n}\n\n/**\n * Returns the scaling factor component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslationScale\n *  with a normalized Quaternion parameter, the returned vector will be\n *  the same as the scaling vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive scaling factor component\n * @param  {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\nexport function getScaling(out, mat) {\n  var m11 = mat[0];\n  var m12 = mat[1];\n  var m13 = mat[2];\n  var m21 = mat[4];\n  var m22 = mat[5];\n  var m23 = mat[6];\n  var m31 = mat[8];\n  var m32 = mat[9];\n  var m33 = mat[10];\n  out[0] = Math.sqrt(m11 * m11 + m12 * m12 + m13 * m13);\n  out[1] = Math.sqrt(m21 * m21 + m22 * m22 + m23 * m23);\n  out[2] = Math.sqrt(m31 * m31 + m32 * m32 + m33 * m33);\n  return out;\n}\n\n/**\n * Returns a quaternion representing the rotational component\n *  of a transformation matrix. If a matrix is built with\n *  fromRotationTranslation, the returned quaternion will be the\n *  same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\nexport function getRotation(out, mat) {\n  var scaling = new glMatrix.ARRAY_TYPE(3);\n  getScaling(scaling, mat);\n  var is1 = 1 / scaling[0];\n  var is2 = 1 / scaling[1];\n  var is3 = 1 / scaling[2];\n  var sm11 = mat[0] * is1;\n  var sm12 = mat[1] * is2;\n  var sm13 = mat[2] * is3;\n  var sm21 = mat[4] * is1;\n  var sm22 = mat[5] * is2;\n  var sm23 = mat[6] * is3;\n  var sm31 = mat[8] * is1;\n  var sm32 = mat[9] * is2;\n  var sm33 = mat[10] * is3;\n  var trace = sm11 + sm22 + sm33;\n  var S = 0;\n  if (trace > 0) {\n    S = Math.sqrt(trace + 1.0) * 2;\n    out[3] = 0.25 * S;\n    out[0] = (sm23 - sm32) / S;\n    out[1] = (sm31 - sm13) / S;\n    out[2] = (sm12 - sm21) / S;\n  } else if (sm11 > sm22 && sm11 > sm33) {\n    S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n    out[3] = (sm23 - sm32) / S;\n    out[0] = 0.25 * S;\n    out[1] = (sm12 + sm21) / S;\n    out[2] = (sm31 + sm13) / S;\n  } else if (sm22 > sm33) {\n    S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n    out[3] = (sm31 - sm13) / S;\n    out[0] = (sm12 + sm21) / S;\n    out[1] = 0.25 * S;\n    out[2] = (sm23 + sm32) / S;\n  } else {\n    S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n    out[3] = (sm12 - sm21) / S;\n    out[0] = (sm31 + sm13) / S;\n    out[1] = (sm23 + sm32) / S;\n    out[2] = 0.25 * S;\n  }\n  return out;\n}\n\n/**\n * Decomposes a transformation matrix into its rotation, translation\n * and scale components. Returns only the rotation component\n * @param  {quat} out_r Quaternion to receive the rotation component\n * @param  {vec3} out_t Vector to receive the translation vector\n * @param  {vec3} out_s Vector to receive the scaling factor\n * @param  {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @returns {quat} out_r\n */\nexport function decompose(out_r, out_t, out_s, mat) {\n  out_t[0] = mat[12];\n  out_t[1] = mat[13];\n  out_t[2] = mat[14];\n  var m11 = mat[0];\n  var m12 = mat[1];\n  var m13 = mat[2];\n  var m21 = mat[4];\n  var m22 = mat[5];\n  var m23 = mat[6];\n  var m31 = mat[8];\n  var m32 = mat[9];\n  var m33 = mat[10];\n  out_s[0] = Math.sqrt(m11 * m11 + m12 * m12 + m13 * m13);\n  out_s[1] = Math.sqrt(m21 * m21 + m22 * m22 + m23 * m23);\n  out_s[2] = Math.sqrt(m31 * m31 + m32 * m32 + m33 * m33);\n  var is1 = 1 / out_s[0];\n  var is2 = 1 / out_s[1];\n  var is3 = 1 / out_s[2];\n  var sm11 = m11 * is1;\n  var sm12 = m12 * is2;\n  var sm13 = m13 * is3;\n  var sm21 = m21 * is1;\n  var sm22 = m22 * is2;\n  var sm23 = m23 * is3;\n  var sm31 = m31 * is1;\n  var sm32 = m32 * is2;\n  var sm33 = m33 * is3;\n  var trace = sm11 + sm22 + sm33;\n  var S = 0;\n  if (trace > 0) {\n    S = Math.sqrt(trace + 1.0) * 2;\n    out_r[3] = 0.25 * S;\n    out_r[0] = (sm23 - sm32) / S;\n    out_r[1] = (sm31 - sm13) / S;\n    out_r[2] = (sm12 - sm21) / S;\n  } else if (sm11 > sm22 && sm11 > sm33) {\n    S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n    out_r[3] = (sm23 - sm32) / S;\n    out_r[0] = 0.25 * S;\n    out_r[1] = (sm12 + sm21) / S;\n    out_r[2] = (sm31 + sm13) / S;\n  } else if (sm22 > sm33) {\n    S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n    out_r[3] = (sm31 - sm13) / S;\n    out_r[0] = (sm12 + sm21) / S;\n    out_r[1] = 0.25 * S;\n    out_r[2] = (sm23 + sm32) / S;\n  } else {\n    S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n    out_r[3] = (sm12 - sm21) / S;\n    out_r[0] = (sm31 + sm13) / S;\n    out_r[1] = (sm23 + sm32) / S;\n    out_r[2] = 0.25 * S;\n  }\n  return out_r;\n}\n\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, dest, vec);\n *     let quatMat = mat4.create();\n *     mat4.fromQuat(quatMat, quat);\n *     mat4.multiply(dest, dest, quatMat);\n *     mat4.scale(dest, dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\nexport function fromRotationTranslationScale(out, q, v, s) {\n  // Quaternion math\n  var x = q[0],\n    y = q[1],\n    z = q[2],\n    w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var xy = x * y2;\n  var xz = x * z2;\n  var yy = y * y2;\n  var yz = y * z2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  var sx = s[0];\n  var sy = s[1];\n  var sz = s[2];\n  out[0] = (1 - (yy + zz)) * sx;\n  out[1] = (xy + wz) * sx;\n  out[2] = (xz - wy) * sx;\n  out[3] = 0;\n  out[4] = (xy - wz) * sy;\n  out[5] = (1 - (xx + zz)) * sy;\n  out[6] = (yz + wx) * sy;\n  out[7] = 0;\n  out[8] = (xz + wy) * sz;\n  out[9] = (yz - wx) * sz;\n  out[10] = (1 - (xx + yy)) * sz;\n  out[11] = 0;\n  out[12] = v[0];\n  out[13] = v[1];\n  out[14] = v[2];\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, dest, vec);\n *     mat4.translate(dest, dest, origin);\n *     let quatMat = mat4.create();\n *     mat4.fromQuat(quatMat, quat);\n *     mat4.multiply(dest, dest, quatMat);\n *     mat4.scale(dest, dest, scale)\n *     mat4.translate(dest, dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n  // Quaternion math\n  var x = q[0],\n    y = q[1],\n    z = q[2],\n    w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var xy = x * y2;\n  var xz = x * z2;\n  var yy = y * y2;\n  var yz = y * z2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  var sx = s[0];\n  var sy = s[1];\n  var sz = s[2];\n  var ox = o[0];\n  var oy = o[1];\n  var oz = o[2];\n  var out0 = (1 - (yy + zz)) * sx;\n  var out1 = (xy + wz) * sx;\n  var out2 = (xz - wy) * sx;\n  var out4 = (xy - wz) * sy;\n  var out5 = (1 - (xx + zz)) * sy;\n  var out6 = (yz + wx) * sy;\n  var out8 = (xz + wy) * sz;\n  var out9 = (yz - wx) * sz;\n  var out10 = (1 - (xx + yy)) * sz;\n  out[0] = out0;\n  out[1] = out1;\n  out[2] = out2;\n  out[3] = 0;\n  out[4] = out4;\n  out[5] = out5;\n  out[6] = out6;\n  out[7] = 0;\n  out[8] = out8;\n  out[9] = out9;\n  out[10] = out10;\n  out[11] = 0;\n  out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n  out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n  out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\nexport function fromQuat(out, q) {\n  var x = q[0],\n    y = q[1],\n    z = q[2],\n    w = q[3];\n  var x2 = x + x;\n  var y2 = y + y;\n  var z2 = z + z;\n  var xx = x * x2;\n  var yx = y * x2;\n  var yy = y * y2;\n  var zx = z * x2;\n  var zy = z * y2;\n  var zz = z * z2;\n  var wx = w * x2;\n  var wy = w * y2;\n  var wz = w * z2;\n  out[0] = 1 - yy - zz;\n  out[1] = yx + wz;\n  out[2] = zx - wy;\n  out[3] = 0;\n  out[4] = yx - wz;\n  out[5] = 1 - xx - zz;\n  out[6] = zy + wx;\n  out[7] = 0;\n  out[8] = zx + wy;\n  out[9] = zy - wx;\n  out[10] = 1 - xx - yy;\n  out[11] = 0;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = 0;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function frustum(out, left, right, bottom, top, near, far) {\n  var rl = 1 / (right - left);\n  var tb = 1 / (top - bottom);\n  var nf = 1 / (near - far);\n  out[0] = near * 2 * rl;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = near * 2 * tb;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = (right + left) * rl;\n  out[9] = (top + bottom) * tb;\n  out[10] = (far + near) * nf;\n  out[11] = -1;\n  out[12] = 0;\n  out[13] = 0;\n  out[14] = far * near * 2 * nf;\n  out[15] = 0;\n  return out;\n}\n\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n  var f = 1.0 / Math.tan(fovy / 2);\n  out[0] = f / aspect;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = f;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[11] = -1;\n  out[12] = 0;\n  out[13] = 0;\n  out[15] = 0;\n  if (far != null && far !== Infinity) {\n    var nf = 1 / (near - far);\n    out[10] = (far + near) * nf;\n    out[14] = 2 * far * near * nf;\n  } else {\n    out[10] = -1;\n    out[14] = -2 * near;\n  }\n  return out;\n}\n\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\nexport var perspective = perspectiveNO;\n\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n  var f = 1.0 / Math.tan(fovy / 2);\n  out[0] = f / aspect;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = f;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[11] = -1;\n  out[12] = 0;\n  out[13] = 0;\n  out[15] = 0;\n  if (far != null && far !== Infinity) {\n    var nf = 1 / (near - far);\n    out[10] = far * nf;\n    out[14] = far * near * nf;\n  } else {\n    out[10] = -1;\n    out[14] = -near;\n  }\n  return out;\n}\n\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n  var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n  var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n  var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n  var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n  var xScale = 2.0 / (leftTan + rightTan);\n  var yScale = 2.0 / (upTan + downTan);\n  out[0] = xScale;\n  out[1] = 0.0;\n  out[2] = 0.0;\n  out[3] = 0.0;\n  out[4] = 0.0;\n  out[5] = yScale;\n  out[6] = 0.0;\n  out[7] = 0.0;\n  out[8] = -((leftTan - rightTan) * xScale * 0.5);\n  out[9] = (upTan - downTan) * yScale * 0.5;\n  out[10] = far / (near - far);\n  out[11] = -1.0;\n  out[12] = 0.0;\n  out[13] = 0.0;\n  out[14] = far * near / (near - far);\n  out[15] = 0.0;\n  return out;\n}\n\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n  var lr = 1 / (left - right);\n  var bt = 1 / (bottom - top);\n  var nf = 1 / (near - far);\n  out[0] = -2 * lr;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = -2 * bt;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = 2 * nf;\n  out[11] = 0;\n  out[12] = (left + right) * lr;\n  out[13] = (top + bottom) * bt;\n  out[14] = (far + near) * nf;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\nexport var ortho = orthoNO;\n\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n  var lr = 1 / (left - right);\n  var bt = 1 / (bottom - top);\n  var nf = 1 / (near - far);\n  out[0] = -2 * lr;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 0;\n  out[4] = 0;\n  out[5] = -2 * bt;\n  out[6] = 0;\n  out[7] = 0;\n  out[8] = 0;\n  out[9] = 0;\n  out[10] = nf;\n  out[11] = 0;\n  out[12] = (left + right) * lr;\n  out[13] = (top + bottom) * bt;\n  out[14] = near * nf;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\nexport function lookAt(out, eye, center, up) {\n  var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n  var eyex = eye[0];\n  var eyey = eye[1];\n  var eyez = eye[2];\n  var upx = up[0];\n  var upy = up[1];\n  var upz = up[2];\n  var centerx = center[0];\n  var centery = center[1];\n  var centerz = center[2];\n  if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n    return identity(out);\n  }\n  z0 = eyex - centerx;\n  z1 = eyey - centery;\n  z2 = eyez - centerz;\n  len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);\n  z0 *= len;\n  z1 *= len;\n  z2 *= len;\n  x0 = upy * z2 - upz * z1;\n  x1 = upz * z0 - upx * z2;\n  x2 = upx * z1 - upy * z0;\n  len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);\n  if (!len) {\n    x0 = 0;\n    x1 = 0;\n    x2 = 0;\n  } else {\n    len = 1 / len;\n    x0 *= len;\n    x1 *= len;\n    x2 *= len;\n  }\n  y0 = z1 * x2 - z2 * x1;\n  y1 = z2 * x0 - z0 * x2;\n  y2 = z0 * x1 - z1 * x0;\n  len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);\n  if (!len) {\n    y0 = 0;\n    y1 = 0;\n    y2 = 0;\n  } else {\n    len = 1 / len;\n    y0 *= len;\n    y1 *= len;\n    y2 *= len;\n  }\n  out[0] = x0;\n  out[1] = y0;\n  out[2] = z0;\n  out[3] = 0;\n  out[4] = x1;\n  out[5] = y1;\n  out[6] = z1;\n  out[7] = 0;\n  out[8] = x2;\n  out[9] = y2;\n  out[10] = z2;\n  out[11] = 0;\n  out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n  out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n  out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} target Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\nexport function targetTo(out, eye, target, up) {\n  var eyex = eye[0],\n    eyey = eye[1],\n    eyez = eye[2],\n    upx = up[0],\n    upy = up[1],\n    upz = up[2];\n  var z0 = eyex - target[0],\n    z1 = eyey - target[1],\n    z2 = eyez - target[2];\n  var len = z0 * z0 + z1 * z1 + z2 * z2;\n  if (len > 0) {\n    len = 1 / Math.sqrt(len);\n    z0 *= len;\n    z1 *= len;\n    z2 *= len;\n  }\n  var x0 = upy * z2 - upz * z1,\n    x1 = upz * z0 - upx * z2,\n    x2 = upx * z1 - upy * z0;\n  len = x0 * x0 + x1 * x1 + x2 * x2;\n  if (len > 0) {\n    len = 1 / Math.sqrt(len);\n    x0 *= len;\n    x1 *= len;\n    x2 *= len;\n  }\n  out[0] = x0;\n  out[1] = x1;\n  out[2] = x2;\n  out[3] = 0;\n  out[4] = z1 * x2 - z2 * x1;\n  out[5] = z2 * x0 - z0 * x2;\n  out[6] = z0 * x1 - z1 * x0;\n  out[7] = 0;\n  out[8] = z0;\n  out[9] = z1;\n  out[10] = z2;\n  out[11] = 0;\n  out[12] = eyex;\n  out[13] = eyey;\n  out[14] = eyez;\n  out[15] = 1;\n  return out;\n}\n\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n  return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\nexport function frob(a) {\n  return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3] + a[4] * a[4] + a[5] * a[5] + a[6] * a[6] + a[7] * a[7] + a[8] * a[8] + a[9] * a[9] + a[10] * a[10] + a[11] * a[11] + a[12] * a[12] + a[13] * a[13] + a[14] * a[14] + a[15] * a[15]);\n}\n\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\nexport function add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  out[3] = a[3] + b[3];\n  out[4] = a[4] + b[4];\n  out[5] = a[5] + b[5];\n  out[6] = a[6] + b[6];\n  out[7] = a[7] + b[7];\n  out[8] = a[8] + b[8];\n  out[9] = a[9] + b[9];\n  out[10] = a[10] + b[10];\n  out[11] = a[11] + b[11];\n  out[12] = a[12] + b[12];\n  out[13] = a[13] + b[13];\n  out[14] = a[14] + b[14];\n  out[15] = a[15] + b[15];\n  return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\nexport function subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  out[3] = a[3] - b[3];\n  out[4] = a[4] - b[4];\n  out[5] = a[5] - b[5];\n  out[6] = a[6] - b[6];\n  out[7] = a[7] - b[7];\n  out[8] = a[8] - b[8];\n  out[9] = a[9] - b[9];\n  out[10] = a[10] - b[10];\n  out[11] = a[11] - b[11];\n  out[12] = a[12] - b[12];\n  out[13] = a[13] - b[13];\n  out[14] = a[14] - b[14];\n  out[15] = a[15] - b[15];\n  return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\nexport function multiplyScalar(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  out[3] = a[3] * b;\n  out[4] = a[4] * b;\n  out[5] = a[5] * b;\n  out[6] = a[6] * b;\n  out[7] = a[7] * b;\n  out[8] = a[8] * b;\n  out[9] = a[9] * b;\n  out[10] = a[10] * b;\n  out[11] = a[11] * b;\n  out[12] = a[12] * b;\n  out[13] = a[13] * b;\n  out[14] = a[14] * b;\n  out[15] = a[15] * b;\n  return out;\n}\n\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  out[3] = a[3] + b[3] * scale;\n  out[4] = a[4] + b[4] * scale;\n  out[5] = a[5] + b[5] * scale;\n  out[6] = a[6] + b[6] * scale;\n  out[7] = a[7] + b[7] * scale;\n  out[8] = a[8] + b[8] * scale;\n  out[9] = a[9] + b[9] * scale;\n  out[10] = a[10] + b[10] * scale;\n  out[11] = a[11] + b[11] * scale;\n  out[12] = a[12] + b[12] * scale;\n  out[13] = a[13] + b[13] * scale;\n  out[14] = a[14] + b[14] * scale;\n  out[15] = a[15] + b[15] * scale;\n  return out;\n}\n\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n  var a0 = a[0],\n    a1 = a[1],\n    a2 = a[2],\n    a3 = a[3];\n  var a4 = a[4],\n    a5 = a[5],\n    a6 = a[6],\n    a7 = a[7];\n  var a8 = a[8],\n    a9 = a[9],\n    a10 = a[10],\n    a11 = a[11];\n  var a12 = a[12],\n    a13 = a[13],\n    a14 = a[14],\n    a15 = a[15];\n  var b0 = b[0],\n    b1 = b[1],\n    b2 = b[2],\n    b3 = b[3];\n  var b4 = b[4],\n    b5 = b[5],\n    b6 = b[6],\n    b7 = b[7];\n  var b8 = b[8],\n    b9 = b[9],\n    b10 = b[10],\n    b11 = b[11];\n  var b12 = b[12],\n    b13 = b[13],\n    b14 = b[14],\n    b15 = b[15];\n  return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\nexport var mul = multiply;\n\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\nexport function create() {\n  var out = new glMatrix.ARRAY_TYPE(3);\n  if (glMatrix.ARRAY_TYPE != Float32Array) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n  }\n  return out;\n}\n\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\nexport function clone(a) {\n  var out = new glMatrix.ARRAY_TYPE(3);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  return out;\n}\n\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  return Math.sqrt(x * x + y * y + z * z);\n}\n\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\nexport function fromValues(x, y, z) {\n  var out = new glMatrix.ARRAY_TYPE(3);\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  return out;\n}\n\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\nexport function copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  return out;\n}\n\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\nexport function set(out, x, y, z) {\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  return out;\n}\n\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  return out;\n}\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  return out;\n}\n\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function multiply(out, a, b) {\n  out[0] = a[0] * b[0];\n  out[1] = a[1] * b[1];\n  out[2] = a[2] * b[2];\n  return out;\n}\n\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function divide(out, a, b) {\n  out[0] = a[0] / b[0];\n  out[1] = a[1] / b[1];\n  out[2] = a[2] / b[2];\n  return out;\n}\n\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\nexport function ceil(out, a) {\n  out[0] = Math.ceil(a[0]);\n  out[1] = Math.ceil(a[1]);\n  out[2] = Math.ceil(a[2]);\n  return out;\n}\n\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\nexport function floor(out, a) {\n  out[0] = Math.floor(a[0]);\n  out[1] = Math.floor(a[1]);\n  out[2] = Math.floor(a[2]);\n  return out;\n}\n\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function min(out, a, b) {\n  out[0] = Math.min(a[0], b[0]);\n  out[1] = Math.min(a[1], b[1]);\n  out[2] = Math.min(a[2], b[2]);\n  return out;\n}\n\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function max(out, a, b) {\n  out[0] = Math.max(a[0], b[0]);\n  out[1] = Math.max(a[1], b[1]);\n  out[2] = Math.max(a[2], b[2]);\n  return out;\n}\n\n/**\n * symmetric round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\nexport function round(out, a) {\n  out[0] = glMatrix.round(a[0]);\n  out[1] = glMatrix.round(a[1]);\n  out[2] = glMatrix.round(a[2]);\n  return out;\n}\n\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\nexport function scale(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  return out;\n}\n\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\nexport function scaleAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  return out;\n}\n\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  return Math.sqrt(x * x + y * y + z * z);\n}\n\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  return x * x + y * y + z * z;\n}\n\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  return x * x + y * y + z * z;\n}\n\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\nexport function negate(out, a) {\n  out[0] = -a[0];\n  out[1] = -a[1];\n  out[2] = -a[2];\n  return out;\n}\n\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\nexport function inverse(out, a) {\n  out[0] = 1.0 / a[0];\n  out[1] = 1.0 / a[1];\n  out[2] = 1.0 / a[2];\n  return out;\n}\n\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\nexport function normalize(out, a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var len = x * x + y * y + z * z;\n  if (len > 0) {\n    //TODO: evaluate use of glm_invsqrt here?\n    len = 1 / Math.sqrt(len);\n  }\n  out[0] = a[0] * len;\n  out[1] = a[1] * len;\n  out[2] = a[2] * len;\n  return out;\n}\n\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\nexport function cross(out, a, b) {\n  var ax = a[0],\n    ay = a[1],\n    az = a[2];\n  var bx = b[0],\n    by = b[1],\n    bz = b[2];\n  out[0] = ay * bz - az * by;\n  out[1] = az * bx - ax * bz;\n  out[2] = ax * by - ay * bx;\n  return out;\n}\n\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function lerp(out, a, b, t) {\n  var ax = a[0];\n  var ay = a[1];\n  var az = a[2];\n  out[0] = ax + t * (b[0] - ax);\n  out[1] = ay + t * (b[1] - ay);\n  out[2] = az + t * (b[2] - az);\n  return out;\n}\n\n/**\n * Performs a spherical linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function slerp(out, a, b, t) {\n  var angle = Math.acos(Math.min(Math.max(dot(a, b), -1), 1));\n  var sinTotal = Math.sin(angle);\n  var ratioA = Math.sin((1 - t) * angle) / sinTotal;\n  var ratioB = Math.sin(t * angle) / sinTotal;\n  out[0] = ratioA * a[0] + ratioB * b[0];\n  out[1] = ratioA * a[1] + ratioB * b[1];\n  out[2] = ratioA * a[2] + ratioB * b[2];\n  return out;\n}\n\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function hermite(out, a, b, c, d, t) {\n  var factorTimes2 = t * t;\n  var factor1 = factorTimes2 * (2 * t - 3) + 1;\n  var factor2 = factorTimes2 * (t - 2) + t;\n  var factor3 = factorTimes2 * (t - 1);\n  var factor4 = factorTimes2 * (3 - 2 * t);\n  out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n  out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n  out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n  return out;\n}\n\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\nexport function bezier(out, a, b, c, d, t) {\n  var inverseFactor = 1 - t;\n  var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n  var factorTimes2 = t * t;\n  var factor1 = inverseFactorTimesTwo * inverseFactor;\n  var factor2 = 3 * t * inverseFactorTimesTwo;\n  var factor3 = 3 * factorTimes2 * inverseFactor;\n  var factor4 = factorTimes2 * t;\n  out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n  out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n  out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n  return out;\n}\n\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned\n * @returns {vec3} out\n */\nexport function random(out, scale) {\n  scale = scale === undefined ? 1.0 : scale;\n  var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n  var z = glMatrix.RANDOM() * 2.0 - 1.0;\n  var zScale = Math.sqrt(1.0 - z * z) * scale;\n  out[0] = Math.cos(r) * zScale;\n  out[1] = Math.sin(r) * zScale;\n  out[2] = z * scale;\n  return out;\n}\n\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat4(out, a, m) {\n  var x = a[0],\n    y = a[1],\n    z = a[2];\n  var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n  w = w || 1.0;\n  out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n  out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n  out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n  return out;\n}\n\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat3(out, a, m) {\n  var x = a[0],\n    y = a[1],\n    z = a[2];\n  out[0] = x * m[0] + y * m[3] + z * m[6];\n  out[1] = x * m[1] + y * m[4] + z * m[7];\n  out[2] = x * m[2] + y * m[5] + z * m[8];\n  return out;\n}\n\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q normalized quaternion to transform with\n * @returns {vec3} out\n */\nexport function transformQuat(out, a, q) {\n  // Fast Vector Rotation using Quaternions by Robert Eisele\n  // https://raw.org/proof/vector-rotation-using-quaternions/\n\n  var qx = q[0],\n    qy = q[1],\n    qz = q[2],\n    qw = q[3];\n  var vx = a[0],\n    vy = a[1],\n    vz = a[2];\n\n  // t = q x v\n  var tx = qy * vz - qz * vy;\n  var ty = qz * vx - qx * vz;\n  var tz = qx * vy - qy * vx;\n\n  // t = 2t\n  tx = tx + tx;\n  ty = ty + ty;\n  tz = tz + tz;\n\n  // v + w t + q x t\n  out[0] = vx + qw * tx + qy * tz - qz * ty;\n  out[1] = vy + qw * ty + qz * tx - qx * tz;\n  out[2] = vz + qw * tz + qx * ty - qy * tx;\n  return out;\n}\n\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\nexport function rotateX(out, a, b, rad) {\n  var p = [],\n    r = [];\n  //Translate point to the origin\n  p[0] = a[0] - b[0];\n  p[1] = a[1] - b[1];\n  p[2] = a[2] - b[2];\n\n  //perform rotation\n  r[0] = p[0];\n  r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n  r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad);\n\n  //translate to correct position\n  out[0] = r[0] + b[0];\n  out[1] = r[1] + b[1];\n  out[2] = r[2] + b[2];\n  return out;\n}\n\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\nexport function rotateY(out, a, b, rad) {\n  var p = [],\n    r = [];\n  //Translate point to the origin\n  p[0] = a[0] - b[0];\n  p[1] = a[1] - b[1];\n  p[2] = a[2] - b[2];\n\n  //perform rotation\n  r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n  r[1] = p[1];\n  r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad);\n\n  //translate to correct position\n  out[0] = r[0] + b[0];\n  out[1] = r[1] + b[1];\n  out[2] = r[2] + b[2];\n  return out;\n}\n\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\nexport function rotateZ(out, a, b, rad) {\n  var p = [],\n    r = [];\n  //Translate point to the origin\n  p[0] = a[0] - b[0];\n  p[1] = a[1] - b[1];\n  p[2] = a[2] - b[2];\n\n  //perform rotation\n  r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n  r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n  r[2] = p[2];\n\n  //translate to correct position\n  out[0] = r[0] + b[0];\n  out[1] = r[1] + b[1];\n  out[2] = r[2] + b[2];\n  return out;\n}\n\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\nexport function angle(a, b) {\n  var ax = a[0],\n    ay = a[1],\n    az = a[2],\n    bx = b[0],\n    by = b[1],\n    bz = b[2],\n    mag = Math.sqrt((ax * ax + ay * ay + az * az) * (bx * bx + by * by + bz * bz)),\n    cosine = mag && dot(a, b) / mag;\n  return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\nexport function zero(out) {\n  out[0] = 0.0;\n  out[1] = 0.0;\n  out[2] = 0.0;\n  return out;\n}\n\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\nexport function str(a) {\n  return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function equals(a, b) {\n  var a0 = a[0],\n    a1 = a[1],\n    a2 = a[2];\n  var b0 = b[0],\n    b1 = b[1],\n    b2 = b[2];\n  return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\nexport var sub = subtract;\n\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\nexport var mul = multiply;\n\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\nexport var div = divide;\n\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\nexport var dist = distance;\n\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\nexport var sqrDist = squaredDistance;\n\n/**\n * Alias for {@link vec3.length}\n * @function\n */\nexport var len = length;\n\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\nexport var sqrLen = squaredLength;\n\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\nexport var forEach = function () {\n  var vec = create();\n  return function (a, stride, offset, count, fn, arg) {\n    var i, l;\n    if (!stride) {\n      stride = 3;\n    }\n    if (!offset) {\n      offset = 0;\n    }\n    if (count) {\n      l = Math.min(count * stride + offset, a.length);\n    } else {\n      l = a.length;\n    }\n    for (i = offset; i < l; i += stride) {\n      vec[0] = a[i];\n      vec[1] = a[i + 1];\n      vec[2] = a[i + 2];\n      fn(vec, vec, arg);\n      a[i] = vec[0];\n      a[i + 1] = vec[1];\n      a[i + 2] = vec[2];\n    }\n    return a;\n  };\n}();","import * as glMatrix from \"./common.js\";\n\n/**\n * 4 Dimensional Vector\n * @module vec4\n */\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\nexport function create() {\n  var out = new glMatrix.ARRAY_TYPE(4);\n  if (glMatrix.ARRAY_TYPE != Float32Array) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n  }\n  return out;\n}\n\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {ReadonlyVec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\nexport function clone(a) {\n  var out = new glMatrix.ARRAY_TYPE(4);\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  return out;\n}\n\n/**\n * Creates a new vec4 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} a new 4D vector\n */\nexport function fromValues(x, y, z, w) {\n  var out = new glMatrix.ARRAY_TYPE(4);\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  out[3] = w;\n  return out;\n}\n\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the source vector\n * @returns {vec4} out\n */\nexport function copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  return out;\n}\n\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\nexport function set(out, x, y, z, w) {\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  out[3] = w;\n  return out;\n}\n\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  out[2] = a[2] + b[2];\n  out[3] = a[3] + b[3];\n  return out;\n}\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  out[2] = a[2] - b[2];\n  out[3] = a[3] - b[3];\n  return out;\n}\n\n/**\n * Multiplies two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function multiply(out, a, b) {\n  out[0] = a[0] * b[0];\n  out[1] = a[1] * b[1];\n  out[2] = a[2] * b[2];\n  out[3] = a[3] * b[3];\n  return out;\n}\n\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function divide(out, a, b) {\n  out[0] = a[0] / b[0];\n  out[1] = a[1] / b[1];\n  out[2] = a[2] / b[2];\n  out[3] = a[3] / b[3];\n  return out;\n}\n\n/**\n * Math.ceil the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to ceil\n * @returns {vec4} out\n */\nexport function ceil(out, a) {\n  out[0] = Math.ceil(a[0]);\n  out[1] = Math.ceil(a[1]);\n  out[2] = Math.ceil(a[2]);\n  out[3] = Math.ceil(a[3]);\n  return out;\n}\n\n/**\n * Math.floor the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to floor\n * @returns {vec4} out\n */\nexport function floor(out, a) {\n  out[0] = Math.floor(a[0]);\n  out[1] = Math.floor(a[1]);\n  out[2] = Math.floor(a[2]);\n  out[3] = Math.floor(a[3]);\n  return out;\n}\n\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function min(out, a, b) {\n  out[0] = Math.min(a[0], b[0]);\n  out[1] = Math.min(a[1], b[1]);\n  out[2] = Math.min(a[2], b[2]);\n  out[3] = Math.min(a[3], b[3]);\n  return out;\n}\n\n/**\n * Returns the maximum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function max(out, a, b) {\n  out[0] = Math.max(a[0], b[0]);\n  out[1] = Math.max(a[1], b[1]);\n  out[2] = Math.max(a[2], b[2]);\n  out[3] = Math.max(a[3], b[3]);\n  return out;\n}\n\n/**\n * symmetric round the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to round\n * @returns {vec4} out\n */\nexport function round(out, a) {\n  out[0] = glMatrix.round(a[0]);\n  out[1] = glMatrix.round(a[1]);\n  out[2] = glMatrix.round(a[2]);\n  out[3] = glMatrix.round(a[3]);\n  return out;\n}\n\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\nexport function scale(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  out[2] = a[2] * b;\n  out[3] = a[3] * b;\n  return out;\n}\n\n/**\n * Adds two vec4's after scaling the second operand by a scalar value\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec4} out\n */\nexport function scaleAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  out[2] = a[2] + b[2] * scale;\n  out[3] = a[3] + b[3] * scale;\n  return out;\n}\n\n/**\n * Calculates the euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  var w = b[3] - a[3];\n  return Math.sqrt(x * x + y * y + z * z + w * w);\n}\n\n/**\n * Calculates the squared euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n  var x = b[0] - a[0];\n  var y = b[1] - a[1];\n  var z = b[2] - a[2];\n  var w = b[3] - a[3];\n  return x * x + y * y + z * z + w * w;\n}\n\n/**\n * Calculates the length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var w = a[3];\n  return Math.sqrt(x * x + y * y + z * z + w * w);\n}\n\n/**\n * Calculates the squared length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var w = a[3];\n  return x * x + y * y + z * z + w * w;\n}\n\n/**\n * Negates the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to negate\n * @returns {vec4} out\n */\nexport function negate(out, a) {\n  out[0] = -a[0];\n  out[1] = -a[1];\n  out[2] = -a[2];\n  out[3] = -a[3];\n  return out;\n}\n\n/**\n * Returns the inverse of the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to invert\n * @returns {vec4} out\n */\nexport function inverse(out, a) {\n  out[0] = 1.0 / a[0];\n  out[1] = 1.0 / a[1];\n  out[2] = 1.0 / a[2];\n  out[3] = 1.0 / a[3];\n  return out;\n}\n\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to normalize\n * @returns {vec4} out\n */\nexport function normalize(out, a) {\n  var x = a[0];\n  var y = a[1];\n  var z = a[2];\n  var w = a[3];\n  var len = x * x + y * y + z * z + w * w;\n  if (len > 0) {\n    len = 1 / Math.sqrt(len);\n  }\n  out[0] = x * len;\n  out[1] = y * len;\n  out[2] = z * len;\n  out[3] = w * len;\n  return out;\n}\n\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n\n/**\n * Returns the cross-product of three vectors in a 4-dimensional space\n *\n * @param {ReadonlyVec4} out the receiving vector\n * @param {ReadonlyVec4} u the first vector\n * @param {ReadonlyVec4} v the second vector\n * @param {ReadonlyVec4} w the third vector\n * @returns {vec4} result\n */\nexport function cross(out, u, v, w) {\n  var A = v[0] * w[1] - v[1] * w[0],\n    B = v[0] * w[2] - v[2] * w[0],\n    C = v[0] * w[3] - v[3] * w[0],\n    D = v[1] * w[2] - v[2] * w[1],\n    E = v[1] * w[3] - v[3] * w[1],\n    F = v[2] * w[3] - v[3] * w[2];\n  var G = u[0];\n  var H = u[1];\n  var I = u[2];\n  var J = u[3];\n  out[0] = H * F - I * E + J * D;\n  out[1] = -(G * F) + I * C - J * B;\n  out[2] = G * E - H * C + J * A;\n  out[3] = -(G * D) + H * B - I * A;\n  return out;\n}\n\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec4} out\n */\nexport function lerp(out, a, b, t) {\n  var ax = a[0];\n  var ay = a[1];\n  var az = a[2];\n  var aw = a[3];\n  out[0] = ax + t * (b[0] - ax);\n  out[1] = ay + t * (b[1] - ay);\n  out[2] = az + t * (b[2] - az);\n  out[3] = aw + t * (b[3] - aw);\n  return out;\n}\n\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec4} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned\n * @returns {vec4} out\n */\nexport function random(out, scale) {\n  scale = scale === undefined ? 1.0 : scale;\n\n  // Marsaglia, George. Choosing a Point from the Surface of a\n  // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n  // http://projecteuclid.org/euclid.aoms/1177692644;\n  var v1, v2, v3, v4;\n  var s1, s2;\n  var rand;\n  rand = glMatrix.RANDOM();\n  v1 = rand * 2 - 1;\n  v2 = (4 * glMatrix.RANDOM() - 2) * Math.sqrt(rand * -rand + rand);\n  s1 = v1 * v1 + v2 * v2;\n  rand = glMatrix.RANDOM();\n  v3 = rand * 2 - 1;\n  v4 = (4 * glMatrix.RANDOM() - 2) * Math.sqrt(rand * -rand + rand);\n  s2 = v3 * v3 + v4 * v4;\n  var d = Math.sqrt((1 - s1) / s2);\n  out[0] = scale * v1;\n  out[1] = scale * v2;\n  out[2] = scale * v3 * d;\n  out[3] = scale * v4 * d;\n  return out;\n}\n\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec4} out\n */\nexport function transformMat4(out, a, m) {\n  var x = a[0],\n    y = a[1],\n    z = a[2],\n    w = a[3];\n  out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n  out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n  out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n  out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n  return out;\n}\n\n/**\n * Transforms the vec4 with a quat\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyQuat} q normalized quaternion to transform with\n * @returns {vec4} out\n */\nexport function transformQuat(out, a, q) {\n  // Fast Vector Rotation using Quaternions by Robert Eisele\n  // https://raw.org/proof/vector-rotation-using-quaternions/\n\n  var qx = q[0],\n    qy = q[1],\n    qz = q[2],\n    qw = q[3];\n  var vx = a[0],\n    vy = a[1],\n    vz = a[2];\n\n  // t = q x v\n  var tx = qy * vz - qz * vy;\n  var ty = qz * vx - qx * vz;\n  var tz = qx * vy - qy * vx;\n\n  // t = 2t\n  tx = tx + tx;\n  ty = ty + ty;\n  tz = tz + tz;\n\n  // v + w t + q x t\n  out[0] = vx + qw * tx + qy * tz - qz * ty;\n  out[1] = vy + qw * ty + qz * tx - qx * tz;\n  out[2] = vz + qw * tz + qx * ty - qy * tx;\n  out[3] = a[3];\n  return out;\n}\n\n/**\n * Set the components of a vec4 to zero\n *\n * @param {vec4} out the receiving vector\n * @returns {vec4} out\n */\nexport function zero(out) {\n  out[0] = 0.0;\n  out[1] = 0.0;\n  out[2] = 0.0;\n  out[3] = 0.0;\n  return out;\n}\n\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec4} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\nexport function str(a) {\n  return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function equals(a, b) {\n  var a0 = a[0],\n    a1 = a[1],\n    a2 = a[2],\n    a3 = a[3];\n  var b0 = b[0],\n    b1 = b[1],\n    b2 = b[2],\n    b3 = b[3];\n  return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n\n/**\n * Alias for {@link vec4.subtract}\n * @function\n */\nexport var sub = subtract;\n\n/**\n * Alias for {@link vec4.multiply}\n * @function\n */\nexport var mul = multiply;\n\n/**\n * Alias for {@link vec4.divide}\n * @function\n */\nexport var div = divide;\n\n/**\n * Alias for {@link vec4.distance}\n * @function\n */\nexport var dist = distance;\n\n/**\n * Alias for {@link vec4.squaredDistance}\n * @function\n */\nexport var sqrDist = squaredDistance;\n\n/**\n * Alias for {@link vec4.length}\n * @function\n */\nexport var len = length;\n\n/**\n * Alias for {@link vec4.squaredLength}\n * @function\n */\nexport var sqrLen = squaredLength;\n\n/**\n * Perform some operation over an array of vec4s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\nexport var forEach = function () {\n  var vec = create();\n  return function (a, stride, offset, count, fn, arg) {\n    var i, l;\n    if (!stride) {\n      stride = 4;\n    }\n    if (!offset) {\n      offset = 0;\n    }\n    if (count) {\n      l = Math.min(count * stride + offset, a.length);\n    } else {\n      l = a.length;\n    }\n    for (i = offset; i < l; i += stride) {\n      vec[0] = a[i];\n      vec[1] = a[i + 1];\n      vec[2] = a[i + 2];\n      vec[3] = a[i + 3];\n      fn(vec, vec, arg);\n      a[i] = vec[0];\n      a[i + 1] = vec[1];\n      a[i + 2] = vec[2];\n      a[i + 3] = vec[3];\n    }\n    return a;\n  };\n}();","import * as glMatrix from \"./common.js\";\nimport * as mat3 from \"./mat3.js\";\nimport * as vec3 from \"./vec3.js\";\nimport * as vec4 from \"./vec4.js\";\n\n/**\n * Quaternion in the format XYZW\n * @module quat\n */\n\n/**\n * Creates a new identity quat\n *\n * @returns {quat} a new quaternion\n */\nexport function create() {\n  var out = new glMatrix.ARRAY_TYPE(4);\n  if (glMatrix.ARRAY_TYPE != Float32Array) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n  }\n  out[3] = 1;\n  return out;\n}\n\n/**\n * Set a quat to the identity quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\nexport function identity(out) {\n  out[0] = 0;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 1;\n  return out;\n}\n\n/**\n * Sets a quat from the given angle and rotation axis,\n * then returns it.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyVec3} axis the axis around which to rotate\n * @param {Number} rad the angle in radians\n * @returns {quat} out\n **/\nexport function setAxisAngle(out, axis, rad) {\n  rad = rad * 0.5;\n  var s = Math.sin(rad);\n  out[0] = s * axis[0];\n  out[1] = s * axis[1];\n  out[2] = s * axis[2];\n  out[3] = Math.cos(rad);\n  return out;\n}\n\n/**\n * Gets the rotation axis and angle for a given\n *  quaternion. If a quaternion is created with\n *  setAxisAngle, this method will return the same\n *  values as providied in the original parameter list\n *  OR functionally equivalent values.\n * Example: The quaternion formed by axis [0, 0, 1] and\n *  angle -90 is the same as the quaternion formed by\n *  [0, 0, 1] and 270. This method favors the latter.\n * @param  {vec3} out_axis  Vector receiving the axis of rotation\n * @param  {ReadonlyQuat} q     Quaternion to be decomposed\n * @return {Number}     Angle, in radians, of the rotation\n */\nexport function getAxisAngle(out_axis, q) {\n  var rad = Math.acos(q[3]) * 2.0;\n  var s = Math.sin(rad / 2.0);\n  if (s > glMatrix.EPSILON) {\n    out_axis[0] = q[0] / s;\n    out_axis[1] = q[1] / s;\n    out_axis[2] = q[2] / s;\n  } else {\n    // If s is zero, return any axis (no rotation - axis does not matter)\n    out_axis[0] = 1;\n    out_axis[1] = 0;\n    out_axis[2] = 0;\n  }\n  return rad;\n}\n\n/**\n * Gets the angular distance between two unit quaternions\n *\n * @param  {ReadonlyQuat} a     Origin unit quaternion\n * @param  {ReadonlyQuat} b     Destination unit quaternion\n * @return {Number}     Angle, in radians, between the two quaternions\n */\nexport function getAngle(a, b) {\n  var dotproduct = dot(a, b);\n  return Math.acos(2 * dotproduct * dotproduct - 1);\n}\n\n/**\n * Multiplies two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n */\nexport function multiply(out, a, b) {\n  var ax = a[0],\n    ay = a[1],\n    az = a[2],\n    aw = a[3];\n  var bx = b[0],\n    by = b[1],\n    bz = b[2],\n    bw = b[3];\n  out[0] = ax * bw + aw * bx + ay * bz - az * by;\n  out[1] = ay * bw + aw * by + az * bx - ax * bz;\n  out[2] = az * bw + aw * bz + ax * by - ay * bx;\n  out[3] = aw * bw - ax * bx - ay * by - az * bz;\n  return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the X axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateX(out, a, rad) {\n  rad *= 0.5;\n  var ax = a[0],\n    ay = a[1],\n    az = a[2],\n    aw = a[3];\n  var bx = Math.sin(rad),\n    bw = Math.cos(rad);\n  out[0] = ax * bw + aw * bx;\n  out[1] = ay * bw + az * bx;\n  out[2] = az * bw - ay * bx;\n  out[3] = aw * bw - ax * bx;\n  return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the Y axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateY(out, a, rad) {\n  rad *= 0.5;\n  var ax = a[0],\n    ay = a[1],\n    az = a[2],\n    aw = a[3];\n  var by = Math.sin(rad),\n    bw = Math.cos(rad);\n  out[0] = ax * bw - az * by;\n  out[1] = ay * bw + aw * by;\n  out[2] = az * bw + ax * by;\n  out[3] = aw * bw - ay * by;\n  return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the Z axis\n *\n * @param {quat} out quat receiving operation result\n * @param {ReadonlyQuat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateZ(out, a, rad) {\n  rad *= 0.5;\n  var ax = a[0],\n    ay = a[1],\n    az = a[2],\n    aw = a[3];\n  var bz = Math.sin(rad),\n    bw = Math.cos(rad);\n  out[0] = ax * bw + ay * bz;\n  out[1] = ay * bw - ax * bz;\n  out[2] = az * bw + aw * bz;\n  out[3] = aw * bw - az * bz;\n  return out;\n}\n\n/**\n * Calculates the W component of a quat from the X, Y, and Z components.\n * Assumes that quaternion is 1 unit in length.\n * Any existing W component will be ignored.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate W component of\n * @returns {quat} out\n */\nexport function calculateW(out, a) {\n  var x = a[0],\n    y = a[1],\n    z = a[2];\n  out[0] = x;\n  out[1] = y;\n  out[2] = z;\n  out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\n  return out;\n}\n\n/**\n * Calculate the exponential of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\nexport function exp(out, a) {\n  var x = a[0],\n    y = a[1],\n    z = a[2],\n    w = a[3];\n  var r = Math.sqrt(x * x + y * y + z * z);\n  var et = Math.exp(w);\n  var s = r > 0 ? et * Math.sin(r) / r : 0;\n  out[0] = x * s;\n  out[1] = y * s;\n  out[2] = z * s;\n  out[3] = et * Math.cos(r);\n  return out;\n}\n\n/**\n * Calculate the natural logarithm of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @returns {quat} out\n */\nexport function ln(out, a) {\n  var x = a[0],\n    y = a[1],\n    z = a[2],\n    w = a[3];\n  var r = Math.sqrt(x * x + y * y + z * z);\n  var t = r > 0 ? Math.atan2(r, w) / r : 0;\n  out[0] = x * t;\n  out[1] = y * t;\n  out[2] = z * t;\n  out[3] = 0.5 * Math.log(x * x + y * y + z * z + w * w);\n  return out;\n}\n\n/**\n * Calculate the scalar power of a unit quaternion.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate the exponential of\n * @param {Number} b amount to scale the quaternion by\n * @returns {quat} out\n */\nexport function pow(out, a, b) {\n  ln(out, a);\n  scale(out, out, b);\n  exp(out, out);\n  return out;\n}\n\n/**\n * Performs a spherical linear interpolation between two quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\nexport function slerp(out, a, b, t) {\n  // benchmarks:\n  //    http://jsperf.com/quaternion-slerp-implementations\n  var ax = a[0],\n    ay = a[1],\n    az = a[2],\n    aw = a[3];\n  var bx = b[0],\n    by = b[1],\n    bz = b[2],\n    bw = b[3];\n  var omega, cosom, sinom, scale0, scale1;\n\n  // calc cosine\n  cosom = ax * bx + ay * by + az * bz + aw * bw;\n  // adjust signs (if necessary)\n  if (cosom < 0.0) {\n    cosom = -cosom;\n    bx = -bx;\n    by = -by;\n    bz = -bz;\n    bw = -bw;\n  }\n  // calculate coefficients\n  if (1.0 - cosom > glMatrix.EPSILON) {\n    // standard case (slerp)\n    omega = Math.acos(cosom);\n    sinom = Math.sin(omega);\n    scale0 = Math.sin((1.0 - t) * omega) / sinom;\n    scale1 = Math.sin(t * omega) / sinom;\n  } else {\n    // \"from\" and \"to\" quaternions are very close\n    //  ... so we can do a linear interpolation\n    scale0 = 1.0 - t;\n    scale1 = t;\n  }\n  // calculate final values\n  out[0] = scale0 * ax + scale1 * bx;\n  out[1] = scale0 * ay + scale1 * by;\n  out[2] = scale0 * az + scale1 * bz;\n  out[3] = scale0 * aw + scale1 * bw;\n  return out;\n}\n\n/**\n * Generates a random unit quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\nexport function random(out) {\n  // Implementation of http://planning.cs.uiuc.edu/node198.html\n  // TODO: Calling random 3 times is probably not the fastest solution\n  var u1 = glMatrix.RANDOM();\n  var u2 = glMatrix.RANDOM();\n  var u3 = glMatrix.RANDOM();\n  var sqrt1MinusU1 = Math.sqrt(1 - u1);\n  var sqrtU1 = Math.sqrt(u1);\n  out[0] = sqrt1MinusU1 * Math.sin(2.0 * Math.PI * u2);\n  out[1] = sqrt1MinusU1 * Math.cos(2.0 * Math.PI * u2);\n  out[2] = sqrtU1 * Math.sin(2.0 * Math.PI * u3);\n  out[3] = sqrtU1 * Math.cos(2.0 * Math.PI * u3);\n  return out;\n}\n\n/**\n * Calculates the inverse of a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate inverse of\n * @returns {quat} out\n */\nexport function invert(out, a) {\n  var a0 = a[0],\n    a1 = a[1],\n    a2 = a[2],\n    a3 = a[3];\n  var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n  var invDot = dot ? 1.0 / dot : 0;\n\n  // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n  out[0] = -a0 * invDot;\n  out[1] = -a1 * invDot;\n  out[2] = -a2 * invDot;\n  out[3] = a3 * invDot;\n  return out;\n}\n\n/**\n * Calculates the conjugate of a quat\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quat to calculate conjugate of\n * @returns {quat} out\n */\nexport function conjugate(out, a) {\n  out[0] = -a[0];\n  out[1] = -a[1];\n  out[2] = -a[2];\n  out[3] = a[3];\n  return out;\n}\n\n/**\n * Creates a quaternion from the given 3x3 rotation matrix.\n *\n * NOTE: The resultant quaternion is not normalized, so you should be sure\n * to renormalize the quaternion yourself where necessary.\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyMat3} m rotation matrix\n * @returns {quat} out\n * @function\n */\nexport function fromMat3(out, m) {\n  // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n  // article \"Quaternion Calculus and Fast Animation\".\n  var fTrace = m[0] + m[4] + m[8];\n  var fRoot;\n  if (fTrace > 0.0) {\n    // |w| > 1/2, may as well choose w > 1/2\n    fRoot = Math.sqrt(fTrace + 1.0); // 2w\n    out[3] = 0.5 * fRoot;\n    fRoot = 0.5 / fRoot; // 1/(4w)\n    out[0] = (m[5] - m[7]) * fRoot;\n    out[1] = (m[6] - m[2]) * fRoot;\n    out[2] = (m[1] - m[3]) * fRoot;\n  } else {\n    // |w| <= 1/2\n    var i = 0;\n    if (m[4] > m[0]) i = 1;\n    if (m[8] > m[i * 3 + i]) i = 2;\n    var j = (i + 1) % 3;\n    var k = (i + 2) % 3;\n    fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n    out[i] = 0.5 * fRoot;\n    fRoot = 0.5 / fRoot;\n    out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n    out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n    out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n  }\n  return out;\n}\n\n/**\n * Creates a quaternion from the given euler angle x, y, z using the provided intrinsic order for the conversion.\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x Angle to rotate around X axis in degrees.\n * @param {Number} y Angle to rotate around Y axis in degrees.\n * @param {Number} z Angle to rotate around Z axis in degrees.\n * @param {'xyz'|'xzy'|'yxz'|'yzx'|'zxy'|'zyx'} order Intrinsic order for conversion, default is zyx.\n * @returns {quat} out\n * @function\n */\nexport function fromEuler(out, x, y, z) {\n  var order = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : glMatrix.ANGLE_ORDER;\n  var halfToRad = Math.PI / 360;\n  x *= halfToRad;\n  z *= halfToRad;\n  y *= halfToRad;\n  var sx = Math.sin(x);\n  var cx = Math.cos(x);\n  var sy = Math.sin(y);\n  var cy = Math.cos(y);\n  var sz = Math.sin(z);\n  var cz = Math.cos(z);\n  switch (order) {\n    case \"xyz\":\n      out[0] = sx * cy * cz + cx * sy * sz;\n      out[1] = cx * sy * cz - sx * cy * sz;\n      out[2] = cx * cy * sz + sx * sy * cz;\n      out[3] = cx * cy * cz - sx * sy * sz;\n      break;\n    case \"xzy\":\n      out[0] = sx * cy * cz - cx * sy * sz;\n      out[1] = cx * sy * cz - sx * cy * sz;\n      out[2] = cx * cy * sz + sx * sy * cz;\n      out[3] = cx * cy * cz + sx * sy * sz;\n      break;\n    case \"yxz\":\n      out[0] = sx * cy * cz + cx * sy * sz;\n      out[1] = cx * sy * cz - sx * cy * sz;\n      out[2] = cx * cy * sz - sx * sy * cz;\n      out[3] = cx * cy * cz + sx * sy * sz;\n      break;\n    case \"yzx\":\n      out[0] = sx * cy * cz + cx * sy * sz;\n      out[1] = cx * sy * cz + sx * cy * sz;\n      out[2] = cx * cy * sz - sx * sy * cz;\n      out[3] = cx * cy * cz - sx * sy * sz;\n      break;\n    case \"zxy\":\n      out[0] = sx * cy * cz - cx * sy * sz;\n      out[1] = cx * sy * cz + sx * cy * sz;\n      out[2] = cx * cy * sz + sx * sy * cz;\n      out[3] = cx * cy * cz - sx * sy * sz;\n      break;\n    case \"zyx\":\n      out[0] = sx * cy * cz - cx * sy * sz;\n      out[1] = cx * sy * cz + sx * cy * sz;\n      out[2] = cx * cy * sz - sx * sy * cz;\n      out[3] = cx * cy * cz + sx * sy * sz;\n      break;\n    default:\n      throw new Error('Unknown angle order ' + order);\n  }\n  return out;\n}\n\n/**\n * Returns a string representation of a quaternion\n *\n * @param {ReadonlyQuat} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\nexport function str(a) {\n  return \"quat(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n\n/**\n * Creates a new quat initialized with values from an existing quaternion\n *\n * @param {ReadonlyQuat} a quaternion to clone\n * @returns {quat} a new quaternion\n * @function\n */\nexport var clone = vec4.clone;\n\n/**\n * Creates a new quat initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} a new quaternion\n * @function\n */\nexport var fromValues = vec4.fromValues;\n\n/**\n * Copy the values from one quat to another\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the source quaternion\n * @returns {quat} out\n * @function\n */\nexport var copy = vec4.copy;\n\n/**\n * Set the components of a quat to the given values\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} out\n * @function\n */\nexport var set = vec4.set;\n\n/**\n * Adds two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {quat} out\n * @function\n */\nexport var add = vec4.add;\n\n/**\n * Alias for {@link quat.multiply}\n * @function\n */\nexport var mul = multiply;\n\n/**\n * Scales a quat by a scalar number\n *\n * @param {quat} out the receiving vector\n * @param {ReadonlyQuat} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {quat} out\n * @function\n */\nexport var scale = vec4.scale;\n\n/**\n * Calculates the dot product of two quat's\n *\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @returns {Number} dot product of a and b\n * @function\n */\nexport var dot = vec4.dot;\n\n/**\n * Performs a linear interpolation between two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n * @function\n */\nexport var lerp = vec4.lerp;\n\n/**\n * Calculates the length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport var length = vec4.length;\n\n/**\n * Alias for {@link quat.length}\n * @function\n */\nexport var len = length;\n\n/**\n * Calculates the squared length of a quat\n *\n * @param {ReadonlyQuat} a vector to calculate squared length of\n * @returns {Number} squared length of a\n * @function\n */\nexport var squaredLength = vec4.squaredLength;\n\n/**\n * Alias for {@link quat.squaredLength}\n * @function\n */\nexport var sqrLen = squaredLength;\n\n/**\n * Normalize a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a quaternion to normalize\n * @returns {quat} out\n * @function\n */\nexport var normalize = vec4.normalize;\n\n/**\n * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyQuat} a The first quaternion.\n * @param {ReadonlyQuat} b The second quaternion.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport var exactEquals = vec4.exactEquals;\n\n/**\n * Returns whether or not the quaternions point approximately to the same direction.\n *\n * Both quaternions are assumed to be unit length.\n *\n * @param {ReadonlyQuat} a The first unit quaternion.\n * @param {ReadonlyQuat} b The second unit quaternion.\n * @returns {Boolean} True if the quaternions are equal, false otherwise.\n */\nexport function equals(a, b) {\n  return Math.abs(vec4.dot(a, b)) >= 1 - glMatrix.EPSILON;\n}\n\n/**\n * Sets a quaternion to represent the shortest rotation from one\n * vector to another.\n *\n * Both vectors are assumed to be unit length.\n *\n * @param {quat} out the receiving quaternion.\n * @param {ReadonlyVec3} a the initial vector\n * @param {ReadonlyVec3} b the destination vector\n * @returns {quat} out\n */\nexport var rotationTo = function () {\n  var tmpvec3 = vec3.create();\n  var xUnitVec3 = vec3.fromValues(1, 0, 0);\n  var yUnitVec3 = vec3.fromValues(0, 1, 0);\n  return function (out, a, b) {\n    var dot = vec3.dot(a, b);\n    if (dot < -0.999999) {\n      vec3.cross(tmpvec3, xUnitVec3, a);\n      if (vec3.len(tmpvec3) < 0.000001) vec3.cross(tmpvec3, yUnitVec3, a);\n      vec3.normalize(tmpvec3, tmpvec3);\n      setAxisAngle(out, tmpvec3, Math.PI);\n      return out;\n    } else if (dot > 0.999999) {\n      out[0] = 0;\n      out[1] = 0;\n      out[2] = 0;\n      out[3] = 1;\n      return out;\n    } else {\n      vec3.cross(tmpvec3, a, b);\n      out[0] = tmpvec3[0];\n      out[1] = tmpvec3[1];\n      out[2] = tmpvec3[2];\n      out[3] = 1 + dot;\n      return normalize(out, out);\n    }\n  };\n}();\n\n/**\n * Performs a spherical linear interpolation with two control points\n *\n * @param {quat} out the receiving quaternion\n * @param {ReadonlyQuat} a the first operand\n * @param {ReadonlyQuat} b the second operand\n * @param {ReadonlyQuat} c the third operand\n * @param {ReadonlyQuat} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {quat} out\n */\nexport var sqlerp = function () {\n  var temp1 = create();\n  var temp2 = create();\n  return function (out, a, b, c, d, t) {\n    slerp(temp1, a, d, t);\n    slerp(temp2, b, c, t);\n    slerp(out, temp1, temp2, 2 * t * (1 - t));\n    return out;\n  };\n}();\n\n/**\n * Sets the specified quaternion with values corresponding to the given\n * axes. Each axis is a vec3 and is expected to be unit length and\n * perpendicular to all other specified axes.\n *\n * @param {ReadonlyVec3} view  the vector representing the viewing direction\n * @param {ReadonlyVec3} right the vector representing the local \"right\" direction\n * @param {ReadonlyVec3} up    the vector representing the local \"up\" direction\n * @returns {quat} out\n */\nexport var setAxes = function () {\n  var matr = mat3.create();\n  return function (out, view, right, up) {\n    matr[0] = right[0];\n    matr[3] = right[1];\n    matr[6] = right[2];\n    matr[1] = up[0];\n    matr[4] = up[1];\n    matr[7] = up[2];\n    matr[2] = -view[0];\n    matr[5] = -view[1];\n    matr[8] = -view[2];\n    return normalize(out, fromMat3(out, matr));\n  };\n}();","import * as glMatrix from \"./common.js\";\n\n/**\n * 2 Dimensional Vector\n * @module vec2\n */\n\n/**\n * Creates a new, empty vec2\n *\n * @returns {vec2} a new 2D vector\n */\nexport function create() {\n  var out = new glMatrix.ARRAY_TYPE(2);\n  if (glMatrix.ARRAY_TYPE != Float32Array) {\n    out[0] = 0;\n    out[1] = 0;\n  }\n  return out;\n}\n\n/**\n * Creates a new vec2 initialized with values from an existing vector\n *\n * @param {ReadonlyVec2} a vector to clone\n * @returns {vec2} a new 2D vector\n */\nexport function clone(a) {\n  var out = new glMatrix.ARRAY_TYPE(2);\n  out[0] = a[0];\n  out[1] = a[1];\n  return out;\n}\n\n/**\n * Creates a new vec2 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {vec2} a new 2D vector\n */\nexport function fromValues(x, y) {\n  var out = new glMatrix.ARRAY_TYPE(2);\n  out[0] = x;\n  out[1] = y;\n  return out;\n}\n\n/**\n * Copy the values from one vec2 to another\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the source vector\n * @returns {vec2} out\n */\nexport function copy(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  return out;\n}\n\n/**\n * Set the components of a vec2 to the given values\n *\n * @param {vec2} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {vec2} out\n */\nexport function set(out, x, y) {\n  out[0] = x;\n  out[1] = y;\n  return out;\n}\n\n/**\n * Adds two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\nexport function add(out, a, b) {\n  out[0] = a[0] + b[0];\n  out[1] = a[1] + b[1];\n  return out;\n}\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\nexport function subtract(out, a, b) {\n  out[0] = a[0] - b[0];\n  out[1] = a[1] - b[1];\n  return out;\n}\n\n/**\n * Multiplies two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\nexport function multiply(out, a, b) {\n  out[0] = a[0] * b[0];\n  out[1] = a[1] * b[1];\n  return out;\n}\n\n/**\n * Divides two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\nexport function divide(out, a, b) {\n  out[0] = a[0] / b[0];\n  out[1] = a[1] / b[1];\n  return out;\n}\n\n/**\n * Math.ceil the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to ceil\n * @returns {vec2} out\n */\nexport function ceil(out, a) {\n  out[0] = Math.ceil(a[0]);\n  out[1] = Math.ceil(a[1]);\n  return out;\n}\n\n/**\n * Math.floor the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to floor\n * @returns {vec2} out\n */\nexport function floor(out, a) {\n  out[0] = Math.floor(a[0]);\n  out[1] = Math.floor(a[1]);\n  return out;\n}\n\n/**\n * Returns the minimum of two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\nexport function min(out, a, b) {\n  out[0] = Math.min(a[0], b[0]);\n  out[1] = Math.min(a[1], b[1]);\n  return out;\n}\n\n/**\n * Returns the maximum of two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\nexport function max(out, a, b) {\n  out[0] = Math.max(a[0], b[0]);\n  out[1] = Math.max(a[1], b[1]);\n  return out;\n}\n\n/**\n * symmetric round the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to round\n * @returns {vec2} out\n */\nexport function round(out, a) {\n  out[0] = glMatrix.round(a[0]);\n  out[1] = glMatrix.round(a[1]);\n  return out;\n}\n\n/**\n * Scales a vec2 by a scalar number\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec2} out\n */\nexport function scale(out, a, b) {\n  out[0] = a[0] * b;\n  out[1] = a[1] * b;\n  return out;\n}\n\n/**\n * Adds two vec2's after scaling the second operand by a scalar value\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec2} out\n */\nexport function scaleAndAdd(out, a, b, scale) {\n  out[0] = a[0] + b[0] * scale;\n  out[1] = a[1] + b[1] * scale;\n  return out;\n}\n\n/**\n * Calculates the euclidian distance between two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n  var x = b[0] - a[0],\n    y = b[1] - a[1];\n  return Math.sqrt(x * x + y * y);\n}\n\n/**\n * Calculates the squared euclidian distance between two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n  var x = b[0] - a[0],\n    y = b[1] - a[1];\n  return x * x + y * y;\n}\n\n/**\n * Calculates the length of a vec2\n *\n * @param {ReadonlyVec2} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n  var x = a[0],\n    y = a[1];\n  return Math.sqrt(x * x + y * y);\n}\n\n/**\n * Calculates the squared length of a vec2\n *\n * @param {ReadonlyVec2} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n  var x = a[0],\n    y = a[1];\n  return x * x + y * y;\n}\n\n/**\n * Negates the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to negate\n * @returns {vec2} out\n */\nexport function negate(out, a) {\n  out[0] = -a[0];\n  out[1] = -a[1];\n  return out;\n}\n\n/**\n * Returns the inverse of the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to invert\n * @returns {vec2} out\n */\nexport function inverse(out, a) {\n  out[0] = 1.0 / a[0];\n  out[1] = 1.0 / a[1];\n  return out;\n}\n\n/**\n * Normalize a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to normalize\n * @returns {vec2} out\n */\nexport function normalize(out, a) {\n  var x = a[0],\n    y = a[1];\n  var len = x * x + y * y;\n  if (len > 0) {\n    //TODO: evaluate use of glm_invsqrt here?\n    len = 1 / Math.sqrt(len);\n  }\n  out[0] = a[0] * len;\n  out[1] = a[1] * len;\n  return out;\n}\n\n/**\n * Calculates the dot product of two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n  return a[0] * b[0] + a[1] * b[1];\n}\n\n/**\n * Computes the cross product of two vec2's\n * Note that the cross product must by definition produce a 3D vector\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec3} out\n */\nexport function cross(out, a, b) {\n  var z = a[0] * b[1] - a[1] * b[0];\n  out[0] = out[1] = 0;\n  out[2] = z;\n  return out;\n}\n\n/**\n * Performs a linear interpolation between two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec2} out\n */\nexport function lerp(out, a, b, t) {\n  var ax = a[0],\n    ay = a[1];\n  out[0] = ax + t * (b[0] - ax);\n  out[1] = ay + t * (b[1] - ay);\n  return out;\n}\n\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec2} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned\n * @returns {vec2} out\n */\nexport function random(out, scale) {\n  scale = scale === undefined ? 1.0 : scale;\n  var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n  out[0] = Math.cos(r) * scale;\n  out[1] = Math.sin(r) * scale;\n  return out;\n}\n\n/**\n * Transforms the vec2 with a mat2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat2} m matrix to transform with\n * @returns {vec2} out\n */\nexport function transformMat2(out, a, m) {\n  var x = a[0],\n    y = a[1];\n  out[0] = m[0] * x + m[2] * y;\n  out[1] = m[1] * x + m[3] * y;\n  return out;\n}\n\n/**\n * Transforms the vec2 with a mat2d\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat2d} m matrix to transform with\n * @returns {vec2} out\n */\nexport function transformMat2d(out, a, m) {\n  var x = a[0],\n    y = a[1];\n  out[0] = m[0] * x + m[2] * y + m[4];\n  out[1] = m[1] * x + m[3] * y + m[5];\n  return out;\n}\n\n/**\n * Transforms the vec2 with a mat3\n * 3rd vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat3} m matrix to transform with\n * @returns {vec2} out\n */\nexport function transformMat3(out, a, m) {\n  var x = a[0],\n    y = a[1];\n  out[0] = m[0] * x + m[3] * y + m[6];\n  out[1] = m[1] * x + m[4] * y + m[7];\n  return out;\n}\n\n/**\n * Transforms the vec2 with a mat4\n * 3rd vector component is implicitly '0'\n * 4th vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec2} out\n */\nexport function transformMat4(out, a, m) {\n  var x = a[0];\n  var y = a[1];\n  out[0] = m[0] * x + m[4] * y + m[12];\n  out[1] = m[1] * x + m[5] * y + m[13];\n  return out;\n}\n\n/**\n * Rotate a 2D vector\n * @param {vec2} out The receiving vec2\n * @param {ReadonlyVec2} a The vec2 point to rotate\n * @param {ReadonlyVec2} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec2} out\n */\nexport function rotate(out, a, b, rad) {\n  //Translate point to the origin\n  var p0 = a[0] - b[0],\n    p1 = a[1] - b[1],\n    sinC = Math.sin(rad),\n    cosC = Math.cos(rad);\n\n  //perform rotation and translate to correct position\n  out[0] = p0 * cosC - p1 * sinC + b[0];\n  out[1] = p0 * sinC + p1 * cosC + b[1];\n  return out;\n}\n\n/**\n * Get the smallest angle between two 2D vectors\n * @param {ReadonlyVec2} a The first operand\n * @param {ReadonlyVec2} b The second operand\n * @returns {Number} The angle in radians\n */\nexport function angle(a, b) {\n  var ax = a[0],\n    ay = a[1],\n    bx = b[0],\n    by = b[1];\n  return Math.abs(Math.atan2(ay * bx - ax * by, ax * bx + ay * by));\n}\n\n/**\n * Get the signed angle in the interval [-pi,pi] between two 2D vectors (positive if `a` is to the right of `b`)\n * \n * @param {ReadonlyVec2} a The first vector\n * @param {ReadonlyVec2} b The second vector\n * @returns {number} The signed angle in radians\n */\nexport function signedAngle(a, b) {\n  var ax = a[0],\n    ay = a[1],\n    bx = b[0],\n    by = b[1];\n  return Math.atan2(ax * by - ay * bx, ax * bx + ay * by);\n}\n\n/**\n * Set the components of a vec2 to zero\n *\n * @param {vec2} out the receiving vector\n * @returns {vec2} out\n */\nexport function zero(out) {\n  out[0] = 0.0;\n  out[1] = 0.0;\n  return out;\n}\n\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec2} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\nexport function str(a) {\n  return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\n\n/**\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec2} a The first vector.\n * @param {ReadonlyVec2} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n  return a[0] === b[0] && a[1] === b[1];\n}\n\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec2} a The first vector.\n * @param {ReadonlyVec2} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function equals(a, b) {\n  var a0 = a[0],\n    a1 = a[1];\n  var b0 = b[0],\n    b1 = b[1];\n  return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\n\n/**\n * Alias for {@link vec2.length}\n * @function\n */\nexport var len = length;\n\n/**\n * Alias for {@link vec2.subtract}\n * @function\n */\nexport var sub = subtract;\n\n/**\n * Alias for {@link vec2.multiply}\n * @function\n */\nexport var mul = multiply;\n\n/**\n * Alias for {@link vec2.divide}\n * @function\n */\nexport var div = divide;\n\n/**\n * Alias for {@link vec2.distance}\n * @function\n */\nexport var dist = distance;\n\n/**\n * Alias for {@link vec2.squaredDistance}\n * @function\n */\nexport var sqrDist = squaredDistance;\n\n/**\n * Alias for {@link vec2.squaredLength}\n * @function\n */\nexport var sqrLen = squaredLength;\n\n/**\n * Perform some operation over an array of vec2s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\nexport var forEach = function () {\n  var vec = create();\n  return function (a, stride, offset, count, fn, arg) {\n    var i, l;\n    if (!stride) {\n      stride = 2;\n    }\n    if (!offset) {\n      offset = 0;\n    }\n    if (count) {\n      l = Math.min(count * stride + offset, a.length);\n    } else {\n      l = a.length;\n    }\n    for (i = offset; i < l; i += stride) {\n      vec[0] = a[i];\n      vec[1] = a[i + 1];\n      fn(vec, vec, arg);\n      a[i] = vec[0];\n      a[i + 1] = vec[1];\n    }\n    return a;\n  };\n}();","import { mat4, vec3 } from \"gl-matrix\";\n\n/**\n * Axis-aligned bounding box defined by minimum and maximum corners.\n *\n * Box3 represents a 3D region bounded by two corners: `min` and `max`. It\n * is used for spatial queries, culling tests, intersection checks, and\n * computing bounding volumes. A default-constructed box is empty and\n * intersection treats boxes as half-open intervals.\n *\n * @group Math\n */\nexport class Box3 {\n  /** Minimum corner of the box. */\n  public min: vec3;\n  /** Maximum corner of the box. */\n  public max: vec3;\n\n  /**\n   * Creates a box from optional corner points. The corners are cloned.\n   * When a corner is omitted the box starts empty.\n   *\n   * @param min - The minimum corner.\n   * @param max - The maximum corner.\n   */\n  constructor(min?: vec3, max?: vec3) {\n    this.min = min\n      ? vec3.clone(min)\n      : vec3.fromValues(+Infinity, +Infinity, +Infinity);\n    this.max = max\n      ? vec3.clone(max)\n      : vec3.fromValues(-Infinity, -Infinity, -Infinity);\n  }\n\n  /** Returns a deep copy of the box. */\n  public clone() {\n    return new Box3(this.min, this.max);\n  }\n\n  /** Returns `true` when the box encloses no volume. */\n  public isEmpty(): boolean {\n    return (\n      this.max[0] <= this.min[0] ||\n      this.max[1] <= this.min[1] ||\n      this.max[2] <= this.min[2]\n    );\n  }\n\n  /**\n   * Tests whether two boxes overlap. Boxes are treated as half-open\n   * intervals so touching faces do not count as overlap.\n   *\n   * @param a - The first box.\n   * @param b - The second box.\n   */\n  public static intersects(a: Box3, b: Box3): boolean {\n    if (a.max[0] <= b.min[0] || a.min[0] >= b.max[0]) return false;\n    if (a.max[1] <= b.min[1] || a.min[1] >= b.max[1]) return false;\n    if (a.max[2] <= b.min[2] || a.min[2] >= b.max[2]) return false;\n    return true;\n  }\n\n  /**\n   * Grows the box in place to contain the given point.\n   *\n   * @param p - The point to include.\n   */\n  public expandWithPoint(p: vec3) {\n    if (p[0] < this.min[0]) this.min[0] = p[0];\n    if (p[1] < this.min[1]) this.min[1] = p[1];\n    if (p[2] < this.min[2]) this.min[2] = p[2];\n    if (p[0] > this.max[0]) this.max[0] = p[0];\n    if (p[1] > this.max[1]) this.max[1] = p[1];\n    if (p[2] > this.max[2]) this.max[2] = p[2];\n  }\n\n  /**\n   * Transforms the box in place by the given matrix. The result is the\n   * axis-aligned box of the eight transformed corners so the box can grow\n   * under rotation.\n   *\n   * @param matrix - The transform to apply.\n   */\n  public applyTransform(matrix: mat4) {\n    const { min, max } = this;\n    const corners: vec3[] = [\n      vec3.fromValues(min[0], min[1], min[2]),\n      vec3.fromValues(min[0], min[1], max[2]),\n      vec3.fromValues(min[0], max[1], min[2]),\n      vec3.fromValues(min[0], max[1], max[2]),\n      vec3.fromValues(max[0], min[1], min[2]),\n      vec3.fromValues(max[0], min[1], max[2]),\n      vec3.fromValues(max[0], max[1], min[2]),\n      vec3.fromValues(max[0], max[1], max[2]),\n    ];\n\n    // \"Empty\" box before expanding\n    this.min = vec3.fromValues(+Infinity, +Infinity, +Infinity);\n    this.max = vec3.fromValues(-Infinity, -Infinity, -Infinity);\n\n    const tmp = vec3.create();\n    for (const c of corners) {\n      vec3.transformMat4(tmp, c, matrix);\n      this.expandWithPoint(tmp);\n    }\n  }\n}\n","import { Node } from \"./node\";\nimport { Box3 } from \"../math/box3\";\nimport { vec3 } from \"gl-matrix\";\n\nexport type Primitive = \"triangles\" | \"points\" | \"lines\";\n\ntype GeometryAttributeType =\n  | \"position\"\n  | \"normal\"\n  | \"uv\"\n  | \"next_position\"\n  | \"previous_position\"\n  | \"direction\"\n  | \"color\"\n  | \"size\"\n  | \"marker\";\n\nexport const GeometryAttributeIndex: Record<GeometryAttributeType, number> = {\n  position: 0,\n  normal: 1,\n  uv: 2,\n  next_position: 3,\n  previous_position: 4,\n  direction: 5,\n  color: 6,\n  size: 7,\n  marker: 8,\n};\n\ntype GeometryAttribute = {\n  type: GeometryAttributeType;\n  itemSize: number;\n  offset: number;\n};\n\nexport class Geometry extends Node {\n  private boundingBox_: Box3 | null = null;\n  protected primitive_: Primitive;\n  protected attributes_: GeometryAttribute[];\n  protected vertexData_: Float32Array;\n  protected indexData_: Uint32Array;\n\n  constructor(\n    vertexData: number[] = [],\n    indexData: number[] = [],\n    primitive: Primitive = \"triangles\"\n  ) {\n    super();\n    this.vertexData_ = new Float32Array(vertexData);\n    this.indexData_ = new Uint32Array(indexData);\n    this.primitive_ = primitive;\n    this.attributes_ = [];\n  }\n\n  public addAttribute(attr: GeometryAttribute) {\n    this.attributes_.push(attr);\n    this.boundingBox_ = null;\n  }\n\n  public get vertexCount() {\n    return this.vertexData_.byteLength / this.strideBytes;\n  }\n\n  public get stride() {\n    return this.attributes_.reduce((acc, curr) => {\n      return acc + curr.itemSize;\n    }, 0);\n  }\n\n  public get strideBytes() {\n    return this.stride * Float32Array.BYTES_PER_ELEMENT;\n  }\n\n  public get primitive() {\n    return this.primitive_;\n  }\n\n  public get vertexData() {\n    return this.vertexData_;\n  }\n\n  public get indexData() {\n    return this.indexData_;\n  }\n\n  public get attributes() {\n    return this.attributes_;\n  }\n\n  public get boundingBox() {\n    if (this.boundingBox_ === null) {\n      const attr = this.getAttribute(\"position\");\n      if (!attr || this.vertexCount === 0) {\n        throw new Error(\"Failed to generate bounding box\");\n      }\n\n      const offset = (attr.offset ?? 0) / Float32Array.BYTES_PER_ELEMENT;\n      const box = new Box3();\n      const point = vec3.create();\n      for (let i = 0; i < this.vertexData_.length; i += this.stride) {\n        point[0] = this.vertexData_[i + offset + 0];\n        point[1] = this.vertexData_[i + offset + 1];\n        point[2] = this.vertexData_[i + offset + 2];\n        box.expandWithPoint(point);\n      }\n\n      this.boundingBox_ = box;\n    }\n    return this.boundingBox_;\n  }\n\n  public get type() {\n    return \"Geometry\";\n  }\n\n  private getAttribute(type: GeometryAttributeType) {\n    return this.attributes_.find((a) => a.type === type);\n  }\n}\n","import { Geometry, GeometryAttributeIndex } from \"../core/geometry\";\n\ntype BufferHandles = {\n  vao: WebGLVertexArrayObject;\n  vbo: WebGLBuffer;\n  ebo?: WebGLBuffer;\n};\n\nexport class WebGLBuffers {\n  private readonly gl_: WebGL2RenderingContext;\n  private readonly buffers_: Map<Geometry, BufferHandles> = new Map();\n  private currentGeometry_: Geometry | null = null;\n\n  constructor(gl: WebGL2RenderingContext) {\n    this.gl_ = gl;\n  }\n\n  public bindGeometry(geometry: Geometry) {\n    if (this.alreadyActive(geometry)) return;\n\n    if (!this.buffers_.has(geometry)) {\n      this.generateBuffers(geometry);\n    }\n\n    const buffers = this.buffers_.get(geometry);\n    if (!buffers) {\n      throw new Error(\"Failed to retrieve buffer handles for object\");\n    }\n\n    this.gl_.bindVertexArray(buffers.vao);\n    this.currentGeometry_ = geometry;\n  }\n\n  public disposeObject(geometry: Geometry) {\n    const buffers = this.buffers_.get(geometry);\n    if (!buffers) return;\n\n    this.gl_.deleteVertexArray(buffers.vao);\n    this.gl_.deleteBuffer(buffers.vbo);\n\n    if (buffers.ebo) this.gl_.deleteBuffer(buffers.ebo);\n\n    this.buffers_.delete(geometry);\n    if (this.currentGeometry_ === geometry) {\n      this.currentGeometry_ = null;\n    }\n  }\n\n  public disposeAll() {\n    for (const geometry of this.buffers_.keys()) {\n      this.disposeObject(geometry);\n    }\n  }\n\n  private alreadyActive(geometry: Geometry) {\n    return this.currentGeometry_ === geometry;\n  }\n\n  private generateBuffers(geometry: Geometry) {\n    const vao = this.gl_.createVertexArray();\n    if (!vao) {\n      throw new Error(\"Failed to create vertex array object (VAO)\");\n    }\n\n    this.gl_.bindVertexArray(vao);\n\n    const { vertexData } = geometry;\n    const vboType = this.gl_.ARRAY_BUFFER;\n    const vbo = this.gl_.createBuffer();\n    if (!vbo) throw new Error(\"Failed to create vertex buffer (VBO)\");\n\n    this.gl_.bindBuffer(vboType, vbo);\n    this.gl_.bufferData(vboType, vertexData, this.gl_.STATIC_DRAW);\n\n    const { attributes, strideBytes } = geometry;\n    attributes.forEach((attr) => {\n      const idx = GeometryAttributeIndex[attr.type];\n      this.gl_.vertexAttribPointer(\n        idx,\n        attr.itemSize,\n        this.gl_.FLOAT,\n        false,\n        strideBytes,\n        attr.offset\n      );\n      this.gl_.enableVertexAttribArray(idx);\n    });\n\n    const buffers: BufferHandles = { vao, vbo };\n\n    const { indexData } = geometry;\n    if (indexData.length) {\n      const eboType = this.gl_.ELEMENT_ARRAY_BUFFER;\n      const ebo = this.gl_.createBuffer();\n      if (!ebo) throw new Error(\"Failed to create index buffer (EBO)\");\n\n      this.gl_.bindBuffer(eboType, ebo);\n      this.gl_.bufferData(eboType, indexData, this.gl_.STATIC_DRAW);\n      buffers.ebo = ebo;\n    }\n\n    this.buffers_.set(geometry, buffers);\n    this.gl_.bindVertexArray(null);\n  }\n}\n","import { Node } from \"../../core/node\";\n\nexport type TextureFilter = \"nearest\" | \"linear\";\n\nexport type TextureWrapMode = \"repeat\" | \"clamp_to_edge\";\n\nexport type TextureDataFormat = \"scalar\" | \"rgb\" | \"rgba\";\n\nexport type TextureDataType =\n  | \"byte\"\n  | \"short\"\n  | \"int\"\n  | \"unsigned_byte\"\n  | \"unsigned_short\"\n  | \"unsigned_int\"\n  | \"float\";\n\nexport type TextureUnpackRowAlignment = 1 | 2 | 4 | 8;\n\nexport type DataTextureTypedArray =\n  | Int8Array\n  | Int16Array\n  | Int32Array\n  | Uint8Array\n  | Uint16Array\n  | Uint32Array\n  | Float32Array;\n\nexport function isTextureUnpackRowAlignment(\n  value: number\n): value is TextureUnpackRowAlignment {\n  return value === 1 || value === 2 || value === 4 || value === 8;\n}\n\nexport function bufferToDataType(\n  buffer: DataTextureTypedArray\n): TextureDataType {\n  if (buffer instanceof Int8Array) {\n    return \"byte\";\n  } else if (buffer instanceof Int16Array) {\n    return \"short\";\n  } else if (buffer instanceof Int32Array) {\n    return \"int\";\n  } else if (buffer instanceof Uint8Array) {\n    return \"unsigned_byte\";\n  } else if (buffer instanceof Uint16Array) {\n    return \"unsigned_short\";\n  } else if (buffer instanceof Uint32Array) {\n    return \"unsigned_int\";\n  } else if (buffer instanceof Float32Array) {\n    return \"float\";\n  }\n  throw new Error(\"Unsupported buffer type.\");\n}\n\nexport function textureChannelCount(texture: Texture) {\n  switch (texture.dataFormat) {\n    case \"scalar\":\n      return 1;\n    case \"rgb\":\n      return 3;\n    case \"rgba\":\n      return 4;\n  }\n}\n\nexport function textureBytesPerChannel(texture: Texture) {\n  switch (texture.dataType) {\n    case \"byte\":\n    case \"unsigned_byte\":\n      return 1;\n    case \"short\":\n    case \"unsigned_short\":\n      return 2;\n    case \"int\":\n    case \"unsigned_int\":\n    case \"float\":\n      return 4;\n  }\n}\n\nexport function textureStorageBytes(texture: Texture): number {\n  const bytesPerTexel =\n    textureChannelCount(texture) * textureBytesPerChannel(texture);\n\n  const levels = Math.max(1, texture.mipmapLevels);\n\n  let width = Math.max(1, texture.width);\n  let height = Math.max(1, texture.height);\n  let depth = Math.max(1, texture.depth);\n  let total = 0;\n\n  for (let i = 0; i < levels; ++i) {\n    total += bytesPerTexel * depth * width * height;\n    width = Math.max(1, width >> 1);\n    height = Math.max(1, height >> 1);\n    if (texture.type === \"Texture3D\") {\n      depth = Math.max(1, depth >> 1);\n    }\n  }\n\n  return total;\n}\n\nexport function textureDefaultValueRange(texture: Texture): [number, number] {\n  if (texture.dataFormat === \"rgb\" || texture.dataFormat === \"rgba\") {\n    return [0, 1];\n  }\n  switch (texture.dataType) {\n    case \"byte\":\n      return [-128, 127];\n    case \"short\":\n      return [-32768, 32767];\n    case \"int\":\n      return [-2147483648, 2147483647];\n    case \"unsigned_byte\":\n      return [0, 255];\n    case \"unsigned_short\":\n      return [0, 65535];\n    case \"unsigned_int\":\n      return [0, 4294967295];\n    case \"float\":\n      return [0, 1];\n  }\n}\n\nexport abstract class Texture extends Node {\n  public dataFormat: TextureDataFormat = \"rgba\";\n  public dataType: TextureDataType = \"unsigned_byte\";\n  public maxFilter: TextureFilter = \"nearest\";\n  public minFilter: TextureFilter = \"nearest\";\n  public mipmapLevels = 1;\n  public unpackAlignment: TextureUnpackRowAlignment = 4;\n  public wrapR: TextureWrapMode = \"clamp_to_edge\";\n  public wrapS: TextureWrapMode = \"clamp_to_edge\";\n  public wrapT: TextureWrapMode = \"clamp_to_edge\";\n  public needsUpdate = true;\n\n  // Reads a single texel back from GPU memory at (x, y, z). Injected by the\n  // renderer when the texture is uploaded (and cleared on disposal).\n  public readTexel?: (x: number, y: number, z: number) => Promise<number>;\n\n  protected data_: DataTextureTypedArray | null = null;\n\n  public get data(): DataTextureTypedArray | null {\n    return this.data_;\n  }\n\n  public set data(data: DataTextureTypedArray) {\n    this.data_ = data;\n    this.needsUpdate = true;\n  }\n\n  public releaseCpuData(): void {\n    this.data_ = null;\n  }\n\n  public abstract get width(): number;\n  public abstract get height(): number;\n\n  public get depth(): number {\n    return 1;\n  }\n\n  public get type() {\n    return \"Texture\";\n  }\n}\n","import { Logger } from \"../utilities/logger\";\nimport {\n  textureStorageBytes,\n  type Texture,\n  type TextureFilter,\n  type TextureWrapMode,\n  type TextureDataType,\n  type TextureDataFormat,\n} from \"../objects/textures/texture\";\n\nimport { Texture2D } from \"../objects/textures/texture_2d\";\nimport { Texture2DArray } from \"../objects/textures/texture_2d_array\";\nimport { Texture3D } from \"../objects/textures/texture_3d\";\n\ntype TextureFormatInfo = {\n  internalFormat: number;\n  format: number;\n  type: number;\n};\n\nexport class WebGLTextures {\n  private readonly gl_: WebGL2RenderingContext;\n  private readonly textures_: Map<Texture, WebGLTexture> = new Map();\n  private currentTexture_: Texture | null = null;\n  private readonly maxTextureUnits_: number;\n  private nextPersistentUnit_: number;\n  private gpuTextureBytes_ = 0;\n  private textureCount_ = 0;\n  private readFramebuffer_: WebGLFramebuffer | null = null;\n\n  constructor(gl: WebGL2RenderingContext) {\n    this.gl_ = gl;\n    this.maxTextureUnits_ = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n    this.nextPersistentUnit_ = this.maxTextureUnits_ - 1;\n  }\n\n  public get gpuTextureBytes() {\n    return this.gpuTextureBytes_;\n  }\n\n  public get textureCount() {\n    return this.textureCount_;\n  }\n\n  public reservePersistentUnit(): number {\n    if (this.nextPersistentUnit_ < 0) {\n      throw new Error(\n        `No texture units left to reserve (${this.maxTextureUnits_} total)`\n      );\n    }\n    return this.nextPersistentUnit_--;\n  }\n\n  public bindTexture(texture: Texture, index: number) {\n    if (this.alreadyActive(texture)) return;\n\n    if (index < 0 || index > this.nextPersistentUnit_) {\n      throw new Error(\n        `Texture index ${index} must be in [0, ${this.nextPersistentUnit_}]; ` +\n          `units above that are reserved`\n      );\n    }\n\n    const textureId = this.textures_.get(texture);\n    if (textureId && !texture.needsUpdate) {\n      this.gl_.activeTexture(this.gl_.TEXTURE0 + index);\n      this.gl_.bindTexture(this.getTextureType(texture), textureId);\n    } else {\n      this.uploadTexture(texture, index);\n    }\n\n    this.currentTexture_ = texture;\n  }\n\n  public readTexel(texture: Texture, x: number, y: number, z: number): number {\n    const gl = this.gl_;\n    const textureId = this.textures_.get(texture);\n    if (!textureId) {\n      throw new Error(\"readTexel called on a texture that is not resident\");\n    }\n\n    this.readFramebuffer_ ??= gl.createFramebuffer();\n    gl.bindFramebuffer(gl.READ_FRAMEBUFFER, this.readFramebuffer_);\n    gl.framebufferTextureLayer(\n      gl.READ_FRAMEBUFFER,\n      gl.COLOR_ATTACHMENT0,\n      textureId,\n      0,\n      z\n    );\n\n    const { format, type, out } = this.readbackParams(texture.dataType);\n    gl.readPixels(x, y, 1, 1, format, type, out);\n    gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\n\n    return out[0];\n  }\n\n  private readbackParams(dataType: TextureDataType): {\n    format: number;\n    type: number;\n    out: Int32Array | Uint32Array | Float32Array;\n  } {\n    const gl = this.gl_;\n    switch (dataType) {\n      case \"byte\":\n      case \"short\":\n      case \"int\":\n        return {\n          format: gl.RGBA_INTEGER,\n          type: gl.INT,\n          out: new Int32Array(4),\n        };\n      case \"unsigned_byte\":\n      case \"unsigned_short\":\n      case \"unsigned_int\":\n        return {\n          format: gl.RGBA_INTEGER,\n          type: gl.UNSIGNED_INT,\n          out: new Uint32Array(4),\n        };\n      case \"float\":\n        return { format: gl.RGBA, type: gl.FLOAT, out: new Float32Array(4) };\n    }\n  }\n\n  public uploadTexture(texture: Texture, index = 0) {\n    if (this.textures_.has(texture) && !texture.needsUpdate) return;\n\n    if (texture.data === null) {\n      throw new Error(\"Cannot upload a texture that has no CPU data\");\n    }\n\n    const textureType = this.getTextureType(texture);\n    const info = this.getDataFormatInfo(texture.dataFormat, texture.dataType);\n\n    this.gl_.activeTexture(this.gl_.TEXTURE0 + index);\n\n    if (!this.textures_.has(texture)) {\n      this.generateTexture(texture, info, textureType);\n    }\n\n    const textureId = this.textures_.get(texture);\n    if (!textureId) {\n      throw new Error(\"Failed to retrieve texture ID\");\n    }\n\n    this.gl_.bindTexture(textureType, textureId);\n    this.configureTextureParameters(texture, textureType);\n    this.uploadTextureData(texture, info, textureType);\n    this.currentTexture_ = null;\n\n    texture.needsUpdate = false;\n  }\n\n  public dispose(texture: Texture) {\n    const id = this.textures_.get(texture);\n    if (id) {\n      this.gl_.deleteTexture(id);\n      this.textures_.delete(texture);\n      texture.readTexel = undefined;\n      if (this.currentTexture_ === texture) {\n        this.currentTexture_ = null;\n      }\n\n      const bytes = textureStorageBytes(texture);\n      this.gpuTextureBytes_ = Math.max(0, this.gpuTextureBytes_ - bytes);\n      this.textureCount_ = Math.max(0, this.textureCount_ - 1);\n    }\n  }\n\n  public disposeAll() {\n    for (const texture of Array.from(this.textures_.keys())) {\n      this.dispose(texture);\n    }\n    this.gpuTextureBytes_ = 0;\n    this.textureCount_ = 0;\n  }\n\n  private alreadyActive(texture: Texture) {\n    return this.currentTexture_ === texture && !texture.needsUpdate;\n  }\n\n  private generateTexture(\n    texture: Texture,\n    info: TextureFormatInfo,\n    type: number\n  ) {\n    const textureId = this.gl_.createTexture();\n    if (!textureId) throw new Error(\"Failed to create texture\");\n\n    this.gl_.bindTexture(type, textureId);\n\n    if (this.isTexture2D(texture)) {\n      this.gl_.texStorage2D(\n        type,\n        texture.mipmapLevels,\n        info.internalFormat,\n        texture.width,\n        texture.height\n      );\n    } else if (this.isTextureStorage3D(texture)) {\n      this.gl_.texStorage3D(\n        type,\n        texture.mipmapLevels,\n        info.internalFormat,\n        texture.width,\n        texture.height,\n        texture.depth\n      );\n    } else {\n      throw new Error(`Unknown texture type ${texture.type}`);\n    }\n\n    this.gpuTextureBytes_ += textureStorageBytes(texture);\n    this.textureCount_ += 1;\n    this.textures_.set(texture, textureId);\n    this.gl_.bindTexture(type, null);\n\n    texture.readTexel = (x, y, z) =>\n      Promise.resolve(this.readTexel(texture, x, y, z));\n  }\n\n  private configureTextureParameters(texture: Texture, type: number) {\n    const gl = this.gl_;\n    const minFilter = this.getFilter(texture.minFilter, texture);\n    const maxFilter = this.getFilter(texture.maxFilter, texture);\n\n    gl.pixelStorei(gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n    gl.texParameteri(type, gl.TEXTURE_MIN_FILTER, minFilter);\n    gl.texParameteri(type, gl.TEXTURE_MAG_FILTER, maxFilter);\n    gl.texParameteri(type, gl.TEXTURE_WRAP_S, this.getWrapMode(texture.wrapS));\n    gl.texParameteri(type, gl.TEXTURE_WRAP_T, this.getWrapMode(texture.wrapT));\n    gl.texParameteri(type, gl.TEXTURE_WRAP_R, this.getWrapMode(texture.wrapR));\n  }\n\n  private uploadTextureData(\n    texture: Texture,\n    info: TextureFormatInfo,\n    type: number\n  ) {\n    // Only base level (0) is updated; mipmaps are not supported.\n    const mipmapLevel = 0;\n\n    // Zero offsets because entire dataset is overwritten.\n    const offset = { x: 0, y: 0, z: 0 };\n\n    if (this.isTexture2D(texture)) {\n      this.gl_.texSubImage2D(\n        type,\n        mipmapLevel,\n        offset.x,\n        offset.y,\n        texture.width,\n        texture.height,\n        info.format,\n        info.type,\n        // This function has multiple overloads. We are temporarily casting it to\n        // ArrayBufferView to ensure the correct overload is called. Once we\n        // consolidate Texture2D and DataTexture2D, we can remove this cast.\n        // https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2D#syntax\n        texture.data as ArrayBufferView\n      );\n    } else if (this.isTextureStorage3D(texture)) {\n      this.gl_.texSubImage3D(\n        type,\n        mipmapLevel,\n        offset.x,\n        offset.y,\n        offset.z,\n        texture.width,\n        texture.height,\n        texture.depth,\n        info.format,\n        info.type,\n        texture.data as ArrayBufferView\n      );\n    } else {\n      throw new Error(\n        \"Attempting to upload data for an unsupported texture type\"\n      );\n    }\n  }\n\n  private getFilter(filter: TextureFilter, texture: Texture) {\n    const { dataFormat, dataType } = texture;\n    if (\n      dataFormat === \"scalar\" &&\n      dataType !== \"float\" &&\n      filter !== \"nearest\"\n    ) {\n      Logger.warn(\n        \"WebGLTexture\",\n        \"Integer values are not filterable. Using gl.NEAREST instead.\"\n      );\n      return this.gl_.NEAREST;\n    }\n    // prettier-ignore\n    switch (filter) {\n      case \"nearest\": return this.gl_.NEAREST;\n      case \"linear\": return this.gl_.LINEAR;\n      default: throw new Error(`Unsupported texture filter: ${filter}`);\n    }\n  }\n\n  private getTextureType(texture: Texture) {\n    if (this.isTexture2D(texture)) return this.gl_.TEXTURE_2D;\n    if (this.isTexture2DArray(texture)) return this.gl_.TEXTURE_2D_ARRAY;\n    if (this.isTexture3D(texture)) return this.gl_.TEXTURE_3D;\n    throw new Error(`Unknown texture type ${texture.type}`);\n  }\n\n  private getWrapMode(mode: TextureWrapMode) {\n    // prettier-ignore\n    switch (mode) {\n      case \"repeat\": return this.gl_.REPEAT;\n      case \"clamp_to_edge\": return this.gl_.CLAMP_TO_EDGE;\n      default: throw new Error(`Unsupported wrap mode: ${mode}`);\n    }\n  }\n\n  private getDataFormatInfo(\n    format: TextureDataFormat,\n    type: TextureDataType\n  ): TextureFormatInfo {\n    if (format === \"rgba\" && type === \"unsigned_byte\") {\n      return {\n        internalFormat: this.gl_.RGBA8,\n        format: this.gl_.RGBA,\n        type: this.gl_.UNSIGNED_BYTE,\n      };\n    }\n    if (format === \"rgb\" && type === \"unsigned_byte\") {\n      return {\n        internalFormat: this.gl_.RGB8,\n        format: this.gl_.RGB,\n        type: this.gl_.UNSIGNED_BYTE,\n      };\n    }\n    if (format === \"scalar\") {\n      switch (type) {\n        case \"byte\":\n          return {\n            internalFormat: this.gl_.R8I,\n            format: this.gl_.RED_INTEGER,\n            type: this.gl_.BYTE,\n          };\n        case \"short\":\n          return {\n            internalFormat: this.gl_.R16I,\n            format: this.gl_.RED_INTEGER,\n            type: this.gl_.SHORT,\n          };\n        case \"int\":\n          return {\n            internalFormat: this.gl_.R32I,\n            format: this.gl_.RED_INTEGER,\n            type: this.gl_.INT,\n          };\n        case \"unsigned_byte\":\n          return {\n            internalFormat: this.gl_.R8UI,\n            format: this.gl_.RED_INTEGER,\n            type: this.gl_.UNSIGNED_BYTE,\n          };\n        case \"unsigned_short\":\n          return {\n            internalFormat: this.gl_.R16UI,\n            format: this.gl_.RED_INTEGER,\n            type: this.gl_.UNSIGNED_SHORT,\n          };\n        case \"unsigned_int\":\n          return {\n            internalFormat: this.gl_.R32UI,\n            format: this.gl_.RED_INTEGER,\n            type: this.gl_.UNSIGNED_INT,\n          };\n        case \"float\":\n          return {\n            internalFormat: this.gl_.R32F,\n            format: this.gl_.RED,\n            type: this.gl_.FLOAT,\n          };\n        default:\n          throw new Error(`Unsupported scalar type: ${type}`);\n      }\n    }\n    throw new Error(`Unsupported format/type: ${format}/${type}`);\n  }\n\n  private isTextureStorage3D(\n    texture: Texture\n  ): texture is Texture2DArray | Texture3D {\n    return this.isTexture2DArray(texture) || this.isTexture3D(texture);\n  }\n\n  private isTexture2D(texture: Texture): texture is Texture2D {\n    return texture.type === \"Texture2D\";\n  }\n\n  private isTexture2DArray(texture: Texture): texture is Texture2DArray {\n    return texture.type === \"Texture2DArray\";\n  }\n\n  private isTexture3D(texture: Texture): texture is Texture3D {\n    return texture.type === \"Texture3D\";\n  }\n}\n","import { vec2 } from \"gl-matrix\";\n\n/**\n * Axis-aligned bounding box defined by minimum and maximum corners.\n *\n * Box2 represents a 2D region bounded by two corners: `min` and `max`. It\n * is used for view rectangles, viewport regions, and intersection checks.\n * A default-constructed box is empty and intersection treats boxes\n * as half-open intervals.\n *\n * @group Math\n */\nexport class Box2 {\n  /** Minimum corner of the box. */\n  public min: vec2;\n  /** Maximum corner of the box. */\n  public max: vec2;\n\n  /**\n   * Creates a box from optional corner points. The corners are cloned.\n   * When a corner is omitted the box starts empty.\n   *\n   * @param min - The minimum corner.\n   * @param max - The maximum corner.\n   */\n  constructor(min?: vec2, max?: vec2) {\n    this.min = min ? vec2.clone(min) : vec2.fromValues(+Infinity, +Infinity);\n    this.max = max ? vec2.clone(max) : vec2.fromValues(-Infinity, -Infinity);\n  }\n\n  /** Returns a deep copy of the box. */\n  public clone() {\n    return new Box2(this.min, this.max);\n  }\n\n  /** Returns `true` when the box encloses no area. */\n  public isEmpty(): boolean {\n    return this.max[0] <= this.min[0] || this.max[1] <= this.min[1];\n  }\n\n  /**\n   * Tests whether two boxes overlap. Boxes are treated as half-open\n   * intervals so touching edges do not count as overlap.\n   *\n   * @param a - The first box.\n   * @param b - The second box.\n   */\n  public static intersects(a: Box2, b: Box2): boolean {\n    if (a.max[0] <= b.min[0] || a.min[0] >= b.max[0]) return false;\n    if (a.max[1] <= b.min[1] || a.min[1] >= b.max[1]) return false;\n    return true;\n  }\n\n  /**\n   * Tests whether two boxes have exactly equal corners.\n   *\n   * @param a - The first box.\n   * @param b - The second box.\n   */\n  public static equals(a: Box2, b: Box2): boolean {\n    return vec2.exactEquals(a.min, b.min) && vec2.exactEquals(a.max, b.max);\n  }\n\n  /** Returns a copy with both corners floored componentwise. */\n  public floor(): Box2 {\n    return new Box2(\n      vec2.fromValues(Math.floor(this.min[0]), Math.floor(this.min[1])),\n      vec2.fromValues(Math.floor(this.max[0]), Math.floor(this.max[1]))\n    );\n  }\n\n  /** Converts the box to an `x, y, width, height` rectangle. */\n  public toRect(): { x: number; y: number; width: number; height: number } {\n    const x = this.min[0];\n    const y = this.min[1];\n    const width = this.max[0] - this.min[0];\n    const height = this.max[1] - this.min[1];\n    return { x, y, width, height };\n  }\n}\n","import { Box2 } from \"../math/box2\";\n\nexport type BlendingMode =\n  | \"none\"\n  | \"normal\"\n  | \"additive\"\n  | \"multiply\"\n  | \"subtractive\"\n  | \"premultipliedOver\";\n\nexport type CullingMode = \"none\" | \"front\" | \"back\" | \"both\";\n\nexport class WebGLState {\n  private readonly gl_: WebGL2RenderingContext;\n\n  private enabledCapabilities_ = new Map<GLenum, boolean>();\n  private depthMaskEnabled_: boolean | null = null;\n  private colorMaskEnabled_: boolean | null = null;\n  private depthFunc_: GLenum | null = null;\n  private blendSrcFactor_: GLenum | null = null;\n  private blendDstFactor_: GLenum | null = null;\n  private currentBlendingMode_: BlendingMode | null = null;\n  private currentViewport_: Box2 | null = null;\n  private currentScissor_: Box2 | null = null;\n  private currentCullingMode_: CullingMode | null = null;\n  private stencilFunc_: GLenum | null = null;\n  private stencilRef_: number | null = null;\n  private stencilFuncMask_: number | null = null;\n  private polygonOffsetSet_ = false;\n\n  constructor(gl: WebGL2RenderingContext) {\n    this.gl_ = gl;\n    // Idetik flips Y in the projection matrix which mirrors geometry\n    // and flips winding order. As such, we need to treat clockwise\n    // triangles as front-facing.\n    this.gl_.frontFace(this.gl_.CW);\n    this.gl_.stencilMask(0xff);\n    this.gl_.stencilOp(this.gl_.KEEP, this.gl_.KEEP, this.gl_.REPLACE);\n  }\n\n  private enable(cap: GLenum) {\n    if (!this.enabledCapabilities_.get(cap)) {\n      this.gl_.enable(cap);\n      this.enabledCapabilities_.set(cap, true);\n    }\n  }\n\n  private disable(cap: GLenum) {\n    if (this.enabledCapabilities_.get(cap)) {\n      this.gl_.disable(cap);\n      this.enabledCapabilities_.set(cap, false);\n    }\n  }\n\n  private setBlendFunc(src: GLenum, dst: GLenum) {\n    if (this.blendSrcFactor_ !== src || this.blendDstFactor_ !== dst) {\n      this.gl_.blendFunc(src, dst);\n      this.blendSrcFactor_ = src;\n      this.blendDstFactor_ = dst;\n    }\n  }\n\n  public setDepthTesting(enabled: boolean) {\n    if (enabled) {\n      this.enable(this.gl_.DEPTH_TEST);\n    } else {\n      this.disable(this.gl_.DEPTH_TEST);\n    }\n  }\n\n  public setBlending(enabled: boolean) {\n    if (enabled) {\n      this.enable(this.gl_.BLEND);\n    } else {\n      this.disable(this.gl_.BLEND);\n    }\n  }\n\n  public setDepthMask(flag: boolean) {\n    if (this.depthMaskEnabled_ !== flag) {\n      this.gl_.depthMask(flag);\n      this.depthMaskEnabled_ = flag;\n    }\n  }\n\n  public get stencilTestEnabled(): boolean {\n    return this.enabledCapabilities_.get(this.gl_.STENCIL_TEST) ?? false;\n  }\n\n  public get blendingMode(): BlendingMode | null {\n    return this.currentBlendingMode_;\n  }\n\n  public setColorMask(enabled: boolean) {\n    if (this.colorMaskEnabled_ !== enabled) {\n      this.gl_.colorMask(enabled, enabled, enabled, enabled);\n      this.colorMaskEnabled_ = enabled;\n    }\n  }\n\n  public setPolygonOffset(enabled: boolean) {\n    if (!enabled) {\n      this.disable(this.gl_.POLYGON_OFFSET_FILL);\n      return;\n    }\n    this.enable(this.gl_.POLYGON_OFFSET_FILL);\n    if (!this.polygonOffsetSet_) {\n      this.gl_.polygonOffset(1, 1);\n      this.polygonOffsetSet_ = true;\n    }\n  }\n\n  public setDepthFunc(func: GLenum) {\n    if (this.depthFunc_ !== func) {\n      this.gl_.depthFunc(func);\n      this.depthFunc_ = func;\n    }\n  }\n\n  public setBlendingMode(mode: BlendingMode) {\n    if (this.currentBlendingMode_ === mode) return;\n\n    if (mode === \"none\") {\n      this.setBlending(false);\n    } else {\n      this.setBlending(true);\n      switch (mode) {\n        case \"additive\":\n          this.setBlendFunc(this.gl_.SRC_ALPHA, this.gl_.ONE);\n          break;\n        case \"multiply\":\n          this.setBlendFunc(this.gl_.DST_COLOR, this.gl_.ZERO);\n          break;\n        case \"subtractive\":\n          this.setBlendFunc(this.gl_.ZERO, this.gl_.ONE_MINUS_SRC_COLOR);\n          break;\n        case \"premultipliedOver\":\n          this.setBlendFunc(this.gl_.ONE, this.gl_.ONE_MINUS_SRC_ALPHA);\n          break;\n        case \"normal\":\n        default:\n          this.setBlendFunc(this.gl_.SRC_ALPHA, this.gl_.ONE_MINUS_SRC_ALPHA);\n          break;\n      }\n    }\n    this.currentBlendingMode_ = mode;\n  }\n\n  public setViewport(box: Box2) {\n    const clampedBox = box.floor();\n\n    if (\n      this.currentViewport_ &&\n      Box2.equals(clampedBox, this.currentViewport_)\n    ) {\n      return;\n    }\n    const { x, y, width, height } = clampedBox.toRect();\n    this.gl_.viewport(x, y, width, height);\n    this.currentViewport_ = clampedBox;\n  }\n\n  public setScissorTest(enabled: boolean) {\n    if (enabled) {\n      this.enable(this.gl_.SCISSOR_TEST);\n    } else {\n      this.disable(this.gl_.SCISSOR_TEST);\n      this.currentScissor_ = null;\n    }\n  }\n\n  public setScissor(box: Box2) {\n    const clampedBox = box.floor();\n\n    if (this.currentScissor_ && Box2.equals(clampedBox, this.currentScissor_)) {\n      return;\n    }\n    const { x, y, width, height } = clampedBox.toRect();\n    this.gl_.scissor(x, y, width, height);\n    this.currentScissor_ = clampedBox;\n  }\n\n  public setCullFace(enabled: boolean) {\n    if (enabled) {\n      this.enable(this.gl_.CULL_FACE);\n    } else {\n      this.disable(this.gl_.CULL_FACE);\n    }\n  }\n\n  public setCullFaceMode(mode: CullingMode) {\n    if (this.currentCullingMode_ === mode) return;\n\n    if (mode === \"none\") {\n      this.setCullFace(false);\n    } else {\n      this.setCullFace(true);\n      switch (mode) {\n        case \"front\":\n          this.gl_.cullFace(this.gl_.FRONT);\n          break;\n        case \"back\":\n          this.gl_.cullFace(this.gl_.BACK);\n          break;\n        case \"both\":\n          this.gl_.cullFace(this.gl_.FRONT_AND_BACK);\n          break;\n      }\n    }\n\n    this.currentCullingMode_ = mode;\n  }\n\n  public setStencilTest(enabled: boolean) {\n    if (enabled) {\n      this.enable(this.gl_.STENCIL_TEST);\n    } else {\n      this.disable(this.gl_.STENCIL_TEST);\n    }\n  }\n\n  public setStencilFunc(func: GLenum, ref: number, mask: number) {\n    if (\n      this.stencilFunc_ !== func ||\n      this.stencilRef_ !== ref ||\n      this.stencilFuncMask_ !== mask\n    ) {\n      this.gl_.stencilFunc(func, ref, mask);\n      this.stencilFunc_ = func;\n      this.stencilRef_ = ref;\n      this.stencilFuncMask_ = mask;\n    }\n  }\n}\n","export class WebGLDepthTarget {\n  public readonly textureUnit: number;\n\n  private readonly gl_: WebGL2RenderingContext;\n\n  private framebuffer_: WebGLFramebuffer | null = null;\n  private texture_: WebGLTexture | null = null;\n  private width_ = 0;\n  private height_ = 0;\n\n  constructor(gl: WebGL2RenderingContext, textureUnit: number) {\n    this.gl_ = gl;\n    this.textureUnit = textureUnit;\n  }\n\n  public bind(width: number, height: number) {\n    if (!this.hasValidTarget(width, height)) {\n      this.createRenderTarget(width, height);\n    }\n    this.gl_.bindFramebuffer(this.gl_.FRAMEBUFFER, this.framebuffer_);\n  }\n\n  public unbind() {\n    this.gl_.bindFramebuffer(this.gl_.FRAMEBUFFER, null);\n  }\n\n  public dispose() {\n    if (this.texture_) this.gl_.deleteTexture(this.texture_);\n    if (this.framebuffer_) this.gl_.deleteFramebuffer(this.framebuffer_);\n    this.texture_ = null;\n    this.framebuffer_ = null;\n    this.width_ = 0;\n    this.height_ = 0;\n  }\n\n  private hasValidTarget(width: number, height: number) {\n    return (\n      this.texture_ !== null && this.width_ === width && this.height_ === height\n    );\n  }\n\n  private createRenderTarget(width: number, height: number) {\n    const gl = this.gl_;\n    if (this.texture_) gl.deleteTexture(this.texture_);\n    this.framebuffer_ ??= gl.createFramebuffer();\n    if (!this.framebuffer_) {\n      throw new Error(\"Failed to create scene depth framebuffer\");\n    }\n\n    const texture = this.createDepthTexture(width, height);\n\n    gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer_);\n    gl.framebufferTexture2D(\n      gl.FRAMEBUFFER,\n      gl.DEPTH_ATTACHMENT,\n      gl.TEXTURE_2D,\n      texture,\n      0\n    );\n    gl.drawBuffers([gl.NONE]);\n    gl.readBuffer(gl.NONE);\n    gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n    this.texture_ = texture;\n    this.width_ = width;\n    this.height_ = height;\n  }\n\n  private createDepthTexture(width: number, height: number) {\n    const gl = this.gl_;\n    const texture = gl.createTexture();\n    if (!texture) throw new Error(\"Failed to create scene depth texture\");\n\n    gl.activeTexture(gl.TEXTURE0 + this.textureUnit);\n    gl.bindTexture(gl.TEXTURE_2D, texture);\n    gl.texImage2D(\n      gl.TEXTURE_2D,\n      0,\n      gl.DEPTH_COMPONENT24,\n      width,\n      height,\n      0,\n      gl.DEPTH_COMPONENT,\n      gl.UNSIGNED_INT,\n      null\n    );\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n    return texture;\n  }\n}\n","import { Renderer } from \"../core/renderer\";\nimport { WebGLShaderProgram } from \"./webgl_shader_program\";\nimport { WebGLShaderPrograms } from \"./webgl_shader_programs\";\nimport { Logger } from \"../utilities/logger\";\n\nimport { WebGLBuffers } from \"./webgl_buffers\";\nimport { WebGLTextures } from \"./webgl_textures\";\n\nimport { Layer } from \"../core/layer\";\nimport { WebGLState } from \"./webgl_state\";\nimport { WebGLDepthTarget } from \"./webgl_depth_target\";\nimport { RenderableObject } from \"../core/renderable_object\";\nimport { Geometry, Primitive } from \"../core/geometry\";\nimport { Box2 } from \"../math/box2\";\nimport { Viewport } from \"../core/viewport\";\nimport { Camera } from \"../objects/cameras/camera\";\nimport { Texture } from \"../objects/textures/texture\";\n\nimport { mat4, vec2, vec3, vec4 } from \"gl-matrix\";\nimport { Frustum } from \"../math/frustum\";\n\n// Idetik defines screen-space with +Y pointing downward.\n// With the default camera, the basis vectors are:\n// (1, 0, 0) → right\n// (0, 1, 0) → down\n// (0, 0, 1) → out of the screen\n//\n// To match this convention, we flip Y in the projection matrix.\n// This is a mirror transform, which also flips triangle winding.\nconst axisDirection = mat4.fromScaling(mat4.create(), [1, -1, 1]);\n\nexport class WebGLRenderer extends Renderer {\n  private readonly gl_: WebGL2RenderingContext;\n  private readonly bindings_: WebGLBuffers;\n  private readonly depthTarget_: WebGLDepthTarget;\n  private readonly programs_: WebGLShaderPrograms;\n  private readonly state_: WebGLState;\n  private readonly textures_: WebGLTextures;\n\n  private renderedObjectsPerFrame_ = 0;\n  private stencilRef_ = 0;\n  private currentViewportSize_: [number, number] = [0, 0];\n  private currentViewportHasSceneDepth_ = false;\n\n  constructor(canvas: HTMLCanvasElement) {\n    super(canvas);\n\n    const gl = this.canvas.getContext(\"webgl2\", {\n      depth: true,\n      antialias: true,\n      stencil: true,\n    });\n    if (!gl) {\n      throw new Error(`Failed to initialize WebGL2 context`);\n    }\n    this.gl_ = gl;\n    Logger.info(\n      \"WebGLRenderer\",\n      `WebGL version ${gl.getParameter(gl.VERSION)}`\n    );\n\n    // Required to attach R32F textures to a framebuffer for picking readback.\n    gl.getExtension(\"EXT_color_buffer_float\");\n\n    this.programs_ = new WebGLShaderPrograms(gl);\n    this.bindings_ = new WebGLBuffers(gl);\n    this.textures_ = new WebGLTextures(gl);\n    this.state_ = new WebGLState(gl);\n    this.depthTarget_ = new WebGLDepthTarget(\n      gl,\n      this.textures_.reservePersistentUnit()\n    );\n    this.resize(this.canvas.width, this.canvas.height);\n  }\n\n  public get gpuTextureBytes() {\n    return this.textures_.gpuTextureBytes;\n  }\n\n  public get gpuTextureCount() {\n    return this.textures_.textureCount;\n  }\n\n  public render(viewport: Viewport) {\n    this.renderedObjects_ = 0;\n    this.renderedObjectsPerFrame_ = 0;\n    this.stencilRef_ = 0;\n\n    for (const layer of viewport.layers) {\n      layer.update(viewport);\n    }\n\n    if (getComputedStyle(viewport.element).visibility === \"hidden\") return;\n\n    const viewportBox = viewport.getBoxRelativeTo(this.canvas);\n    const surfaceBox = new Box2(\n      vec2.fromValues(0, 0),\n      vec2.fromValues(this.width, this.height)\n    );\n\n    const viewportEquals = Box2.equals(viewportBox.floor(), surfaceBox.floor());\n    const viewportIntersects = Box2.intersects(viewportBox, surfaceBox);\n\n    if (viewportEquals) {\n      this.state_.setScissorTest(false);\n    } else if (viewportIntersects) {\n      this.state_.setScissorTest(true);\n      this.state_.setScissor(viewportBox);\n    } else {\n      Logger.warn(\n        \"WebGLRenderer\",\n        `Viewport ${viewport.id} is entirely outside canvas bounds, skipping render`\n      );\n      return;\n    }\n\n    this.state_.setViewport(viewportBox);\n    this.resetState();\n    this.clear();\n\n    const viewportRect = viewportBox.toRect();\n    this.currentViewportSize_ = [viewportRect.width, viewportRect.height];\n\n    const frustum = viewport.camera.frustum;\n\n    const occludingLayers: Layer[] = [];\n    const nonOccludingLayers: Layer[] = [];\n    for (const layer of viewport.layers) {\n      if (layer.state !== \"ready\") continue;\n      (layer.occludes ? occludingLayers : nonOccludingLayers).push(layer);\n    }\n\n    this.currentViewportHasSceneDepth_ =\n      occludingLayers.length > 0 &&\n      nonOccludingLayers.some((l) => l.requiresSceneDepth);\n\n    this.primeDepthBuffer(occludingLayers, viewport.camera, frustum);\n\n    if (this.currentViewportHasSceneDepth_) {\n      this.renderDepthTexture(occludingLayers, viewport.camera, frustum);\n    }\n\n    this.state_.setDepthMask(false);\n    for (const layer of [...occludingLayers, ...nonOccludingLayers]) {\n      this.renderLayer(layer, viewport.camera, frustum);\n    }\n    this.resetState();\n\n    this.renderedObjects_ = this.renderedObjectsPerFrame_;\n  }\n\n  private primeDepthBuffer(layers: Layer[], camera: Camera, frustum: Frustum) {\n    this.state_.setColorMask(false);\n    this.state_.setDepthFunc(this.gl_.LESS);\n    // nudge the depth away from the camera, so that the color passes\n    // at the same depth are not rejected\n    this.state_.setPolygonOffset(true);\n\n    this.drawDepthOnly(layers, camera, frustum);\n\n    this.resetState();\n  }\n\n  private renderDepthTexture(\n    layers: Layer[],\n    camera: Camera,\n    frustum: Frustum\n  ) {\n    this.depthTarget_.bind(this.width, this.height);\n    this.state_.setDepthMask(true);\n    this.state_.setDepthFunc(this.gl_.LESS);\n    this.gl_.clear(this.gl_.DEPTH_BUFFER_BIT);\n\n    this.drawDepthOnly(layers, camera, frustum);\n\n    this.depthTarget_.unbind();\n    this.resetState();\n  }\n\n  private drawDepthOnly(layers: Layer[], camera: Camera, frustum: Frustum) {\n    for (const layer of layers) {\n      for (const members of layer.coverageGroups.values()) {\n        for (const object of members) {\n          if (!object.depthProgramName || !object.depthTest) continue;\n          if (!frustum.intersectsWithBox3(object.boundingBox)) continue;\n          this.state_.setCullFaceMode(object.cullFaceMode);\n          this.bindings_.bindGeometry(object.geometry);\n          object.textures.forEach((texture, index) => {\n            this.textures_.bindTexture(texture, index);\n          });\n          const program = this.programs_.use(object.depthProgramName);\n          this.drawGeometry(object.geometry, object, layer, program, camera);\n        }\n      }\n    }\n  }\n\n  private setCoverageStencil(coverageGroup: number | null) {\n    this.state_.setStencilTest(coverageGroup !== null);\n    if (coverageGroup === null) return;\n\n    this.stencilRef_ += 1;\n    if (this.stencilRef_ > 0xff) {\n      Logger.warn(\n        \"WebGLRenderer\",\n        \"Exceeded 255 stencil coverage groups in one frame; dedup may be incorrect\"\n      );\n    }\n    this.state_.setStencilFunc(this.gl_.NOTEQUAL, this.stencilRef_, 0xff);\n  }\n\n  private renderLayer(layer: Layer, camera: Camera, frustum: Frustum) {\n    this.state_.setBlendingMode(layer.blendMode);\n\n    for (const [coverageGroup, members] of layer.coverageGroups) {\n      this.setCoverageStencil(coverageGroup);\n\n      for (const object of members) {\n        if (frustum.intersectsWithBox3(object.boundingBox)) {\n          this.renderObject(layer, object, camera);\n          this.renderedObjectsPerFrame_ += 1;\n        }\n      }\n    }\n  }\n\n  protected renderObject(\n    layer: Layer,\n    object: RenderableObject,\n    camera: Camera\n  ) {\n    object.popStaleTextures().forEach((texture) => {\n      this.textures_.dispose(texture);\n    });\n\n    if (!object.programName) return;\n    this.state_.setCullFaceMode(object.cullFaceMode);\n    this.state_.setDepthTesting(object.depthTest);\n    this.bindings_.bindGeometry(object.geometry);\n    object.textures.forEach((texture, index) => {\n      this.textures_.bindTexture(texture, index);\n    });\n\n    const program = this.programs_.use(object.programName);\n    this.drawGeometry(object.geometry, object, layer, program, camera);\n\n    if (object.wireframeEnabled) {\n      const stencilTestEnabled = this.state_.stencilTestEnabled;\n      const blendingMode = this.state_.blendingMode;\n      this.state_.setStencilTest(false);\n      this.state_.setBlendingMode(\"none\");\n\n      this.bindings_.bindGeometry(object.wireframeGeometry);\n      const wireframeProgram = this.programs_.use(\"wireframe\");\n      wireframeProgram.setUniform(\n        \"u_wireframeColor\",\n        object.wireframeColor.rgb\n      );\n      this.drawGeometry(\n        object.wireframeGeometry,\n        object,\n        layer,\n        wireframeProgram,\n        camera\n      );\n\n      if (blendingMode !== null) this.state_.setBlendingMode(blendingMode);\n      this.state_.setStencilTest(stencilTestEnabled);\n    }\n  }\n\n  private drawGeometry(\n    geometry: Geometry,\n    object: RenderableObject,\n    layer: Layer,\n    program: WebGLShaderProgram,\n    camera: Camera\n  ) {\n    const modelView = mat4.multiply(\n      mat4.create(),\n      camera.viewMatrix,\n      object.transform.matrix\n    );\n    const projection = mat4.multiply(\n      mat4.create(),\n      axisDirection,\n      camera.projectionMatrix\n    );\n\n    // per-viewport size in pixels — shaders that compute screen-space offsets\n    // need the actual rendered region, not the full-canvas dimensions\n    const resolution = this.currentViewportSize_;\n\n    const objectUniforms = object.getUniforms();\n    const layerUniforms = layer.getUniforms();\n    const allUniforms = {\n      ...layerUniforms,\n      ...objectUniforms,\n    };\n\n    for (const uniformName of program.uniformNames) {\n      switch (uniformName) {\n        case \"u_modelView\":\n          program.setUniform(uniformName, modelView);\n          break;\n        case \"u_model\":\n          program.setUniform(uniformName, object.transform.matrix);\n          break;\n        case \"u_projection\":\n          program.setUniform(uniformName, projection);\n          break;\n        case \"u_resolution\":\n          program.setUniform(uniformName, resolution);\n          break;\n        case \"u_hasSceneDepth\":\n          program.setUniform(\n            uniformName,\n            Number(\n              layer.requiresSceneDepth && this.currentViewportHasSceneDepth_\n            )\n          );\n          break;\n        case \"u_sceneDepth\":\n          program.setUniform(uniformName, this.depthTarget_.textureUnit);\n          break;\n        case \"u_mvpInverse\": {\n          const mvp = mat4.multiply(mat4.create(), projection, modelView);\n          const mvpInverse = mat4.invert(mat4.create(), mvp)!;\n          program.setUniform(uniformName, mvpInverse);\n          break;\n        }\n        case \"u_opacity\":\n          program.setUniform(\n            uniformName,\n            layer.opacity *\n              ((objectUniforms.Opacity as number | undefined) ?? 1)\n          );\n          break;\n        case \"u_cameraPositionModel\": {\n          const inverseModelView = mat4.invert(mat4.create(), modelView)!;\n          const cameraPositionView = vec4.fromValues(0, 0, 0, 1);\n          const cameraPositionModel = vec4.transformMat4(\n            vec4.create(),\n            cameraPositionView,\n            inverseModelView\n          );\n          program.setUniform(\n            uniformName,\n            vec3.fromValues(\n              cameraPositionModel[0],\n              cameraPositionModel[1],\n              cameraPositionModel[2]\n            )\n          );\n          break;\n        }\n        default:\n          if (uniformName in allUniforms) {\n            program.setUniform(uniformName, allUniforms[uniformName]);\n          }\n      }\n    }\n\n    const primitive = this.glGetPrimitive(geometry.primitive);\n    const index = geometry.indexData;\n    if (index.length) {\n      this.gl_.drawElements(primitive, index.length, this.gl_.UNSIGNED_INT, 0);\n    } else {\n      this.gl_.drawArrays(primitive, 0, geometry.vertexCount);\n    }\n  }\n\n  public override uploadTexture(texture: Texture) {\n    this.textures_.uploadTexture(texture);\n  }\n\n  public override disposeTexture(texture: Texture) {\n    this.textures_.dispose(texture);\n  }\n\n  private glGetPrimitive(type: Primitive) {\n    switch (type) {\n      case \"points\":\n        return this.gl_.POINTS;\n      case \"triangles\":\n        return this.gl_.TRIANGLES;\n      case \"lines\":\n        return this.gl_.LINES;\n      default: {\n        const exhaustiveCheck: never = type;\n        throw new Error(`Unknown Primitive type: ${exhaustiveCheck}`);\n      }\n    }\n  }\n\n  protected resize(width: number, height: number) {\n    const newViewport = new Box2(\n      vec2.fromValues(0, 0),\n      vec2.fromValues(width, height)\n    );\n    this.state_.setViewport(newViewport);\n  }\n\n  protected clear() {\n    this.gl_.clearColor(0, 0, 0, 0);\n    this.gl_.clearStencil(0);\n    this.gl_.clear(\n      this.gl_.COLOR_BUFFER_BIT |\n        this.gl_.DEPTH_BUFFER_BIT |\n        this.gl_.STENCIL_BUFFER_BIT\n    );\n  }\n\n  private resetState() {\n    this.state_.setColorMask(true);\n    this.state_.setDepthMask(true);\n    this.state_.setDepthTesting(true);\n    this.state_.setDepthFunc(this.gl_.LEQUAL);\n    this.state_.setPolygonOffset(false);\n    this.state_.setStencilTest(false);\n    this.state_.setBlendingMode(\"none\");\n  }\n}\n","import { Chunk } from \"./chunk\";\nimport { Logger } from \"../utilities/logger\";\n\ntype LoaderFn = (signal: AbortSignal) => Promise<void>;\n\ntype PendingItem = { chunk: Chunk; fn: LoaderFn };\n\nexport function comparePriority(a: Chunk, b: Chunk) {\n  const priorityA = a.priority ?? Number.MAX_SAFE_INTEGER;\n  const priorityB = b.priority ?? Number.MAX_SAFE_INTEGER;\n\n  if (priorityA === priorityB) {\n    return (\n      (a.orderKey ?? Number.MAX_SAFE_INTEGER) -\n      (b.orderKey ?? Number.MAX_SAFE_INTEGER)\n    );\n  }\n\n  return priorityA - priorityB;\n}\n\nexport class ChunkQueue {\n  private readonly maxConcurrent_: number;\n  private readonly pending_: PendingItem[] = [];\n  private readonly running_ = new Map<\n    Chunk,\n    { controller: AbortController; promise: Promise<void> }\n  >();\n\n  constructor(maxConcurrent: number) {\n    this.maxConcurrent_ = Math.max(1, maxConcurrent);\n  }\n\n  public enqueue(chunk: Chunk, fn: LoaderFn) {\n    if (this.running_.has(chunk)) return;\n    if (this.pending_.some((p) => p.chunk === chunk)) return;\n\n    this.pending_.push({ chunk, fn });\n  }\n\n  public flush() {\n    this.pump();\n  }\n\n  public cancel(chunk: Chunk) {\n    const idx = this.pending_.findIndex((p) => p.chunk === chunk);\n    if (idx >= 0) {\n      this.pending_.splice(idx, 1);\n      Logger.debug(\"ChunkQueue\", \"Cancelled pending request\");\n      return;\n    }\n\n    const running = this.running_.get(chunk);\n    if (running) {\n      running.controller.abort();\n      Logger.debug(\"ChunkQueue\", \"Cancelled fetch request\");\n    }\n  }\n\n  public get pendingCount() {\n    return this.pending_.length;\n  }\n\n  public get runningCount() {\n    return this.running_.size;\n  }\n\n  private pump() {\n    if (\n      this.running_.size >= this.maxConcurrent_ ||\n      this.pending_.length === 0\n    ) {\n      return;\n    }\n\n    this.pending_.sort((a, b) => comparePriority(a.chunk, b.chunk));\n\n    while (\n      this.running_.size < this.maxConcurrent_ &&\n      this.pending_.length > 0\n    ) {\n      this.start(this.pending_.shift()!);\n    }\n  }\n\n  private start(item: PendingItem) {\n    const { chunk, fn } = item;\n    chunk.state = \"loading\";\n\n    const controller = new AbortController();\n    const promise = Promise.resolve()\n      .then(() => fn(controller.signal))\n      .then(\n        () => {\n          if (chunk.state === \"loading\") chunk.state = \"loaded\";\n        },\n        (err) => {\n          if (chunk.state === \"loading\") chunk.state = \"unloaded\";\n          if (err.name !== \"AbortError\") {\n            Logger.error(\"ChunkQueue\", String(err));\n          }\n        }\n      )\n      .finally(() => {\n        this.running_.delete(chunk);\n        this.pump();\n      });\n\n    this.running_.set(chunk, { controller, promise });\n  }\n}\n","import { Chunk, ChunkData } from \"./chunk\";\n\n// Running totals for CPU-resident chunk voxel data. All mutations of\n// `chunk.data` must route through setChunkData/clearChunkData so these stay\n// accurate. Module-level (not per-store) because chunk loaders are created\n// per-source and have no back-reference to their store; this means the totals\n// are summed across all Idetik instances in the page, which is fine for the\n// single-instance debug/instrumentation use case.\n\nlet cpuChunkBytes = 0;\nlet cpuChunkCount = 0;\n\nexport function setChunkData(chunk: Chunk, data: ChunkData): void {\n  if (chunk.data) {\n    cpuChunkBytes -= chunk.data.byteLength;\n    cpuChunkCount -= 1;\n  }\n  chunk.data = data;\n  cpuChunkBytes += data.byteLength;\n  cpuChunkCount += 1;\n}\n\nexport function clearChunkData(chunk: Chunk): void {\n  if (chunk.data) {\n    cpuChunkBytes -= chunk.data.byteLength;\n    cpuChunkCount -= 1;\n  }\n  chunk.data = undefined;\n  chunk.texture?.releaseCpuData();\n}\n\nexport function chunkMemoryStats() {\n  return { cpuChunkBytes, cpuChunkCount };\n}\n","export function almostEqual(a: number, b: number, epsilon = 1e-6): boolean {\n  return Math.abs(a - b) <= epsilon;\n}\n","import { mat3, quat, vec3 } from \"gl-matrix\";\n\nexport type SpatialAxis = \"x\" | \"y\" | \"z\";\n\nexport type SliceAxes = {\n  u: SpatialAxis;\n  v: SpatialAxis;\n  w: SpatialAxis;\n};\n\nexport const AxisComponent: Record<SpatialAxis, 0 | 1 | 2> = {\n  x: 0,\n  y: 1,\n  z: 2,\n};\n\n/**\n * The plane a 2D slice lies on, named by its in-plane axes.\n */\nexport type SliceOrientation = \"XY\" | \"XZ\" | \"YZ\";\n\nexport function sliceAxesFor(orientation: SliceOrientation): SliceAxes {\n  switch (orientation) {\n    case \"XY\":\n      return { u: \"x\", v: \"y\", w: \"z\" };\n    case \"XZ\":\n      return { u: \"x\", v: \"z\", w: \"y\" };\n    case \"YZ\":\n      return { u: \"y\", v: \"z\", w: \"x\" };\n  }\n}\n\nexport function orientationRotation(axes: SliceAxes): quat {\n  const u = vec3.create();\n  const v = vec3.create();\n\n  u[AxisComponent[axes.u]] = 1;\n  v[AxisComponent[axes.v]] = 1;\n\n  const forward = vec3.cross(vec3.create(), u, v);\n\n  // prettier-ignore\n  const basis = mat3.fromValues(\n    u[0], u[1], u[2],\n    v[0], v[1], v[2],\n    forward[0], forward[1], forward[2]\n  );\n\n  const rotation = quat.fromMat3(quat.create(), basis);\n\n  return quat.normalize(rotation, rotation);\n}\n","import {\n  type Texture,\n  TextureUnpackRowAlignment,\n} from \"../objects/textures/texture\";\nimport { Logger } from \"../utilities/logger\";\nimport { mat4, vec3 } from \"gl-matrix\";\nimport { AxisComponent, SliceAxes } from \"../math/axes\";\n\nconst chunkDataTypes = [\n  Int8Array,\n  Int16Array,\n  Int32Array,\n  Uint8Array,\n  Uint16Array,\n  Uint32Array,\n  Float32Array,\n] as const;\nexport type ChunkDataConstructor = (typeof chunkDataTypes)[number];\nexport type ChunkData = InstanceType<ChunkDataConstructor>;\n\nexport function isChunkData(value: unknown): value is ChunkData {\n  if (chunkDataTypes.some((ChunkData) => value instanceof ChunkData)) {\n    return true;\n  }\n  const supportedDataTypeNames = chunkDataTypes.map((dtype) => dtype.name);\n  Logger.debug(\n    \"Chunk\",\n    `Unsupported chunk data type: ${value}. Supported data types: ${supportedDataTypeNames}`\n  );\n  return false;\n}\n\nexport type ChunkViewState = {\n  visible: boolean;\n  prefetch: boolean;\n  priority: number | null;\n  orderKey: number | null;\n};\n\nexport type Chunk = {\n  data?: ChunkData;\n  texture?: Texture;\n  releasedAt?: DOMHighResTimeStamp;\n  state: \"unloaded\" | \"queued\" | \"loading\" | \"loaded\";\n  lod: number;\n  shape: {\n    x: number;\n    y: number;\n    z: number;\n    c: number;\n  };\n  rowAlignmentBytes: TextureUnpackRowAlignment;\n  chunkIndex: {\n    x: number;\n    y: number;\n    z: number;\n    c: number;\n    t: number;\n  };\n  scale: {\n    x: number;\n    y: number;\n    z: number;\n  };\n  offset: {\n    x: number;\n    y: number;\n    z: number;\n  };\n} & ChunkViewState;\n\n// Maps Idetik spatial dimensions (x, y, z) and non-spatial dimensions (c, t)\n// dimensions to a chunk source's dimensions.\n/**\n * Per-axis dimension metadata for a multiscale image source.\n *\n * Maps the spatial axes `x`, `y`, `z` and the non-spatial axes `c` and\n * `t` onto the source's stored dimensions.\n */\nexport type SourceDimensionMap = {\n  /** The `x` spatial dimension. */\n  x: SourceDimension;\n  /** The `y` spatial dimension. */\n  y: SourceDimension;\n  /** The `z` spatial dimension if present. */\n  z?: SourceDimension;\n  /** The channel dimension if present. */\n  c?: SourceDimension;\n  /** The time dimension if present. */\n  t?: SourceDimension;\n  /** Number of levels of detail in the pyramid. */\n  numLods: number;\n};\n\n/**\n * One dimension of a multiscale image source.\n */\nexport type SourceDimension = {\n  /** Axis name from the source metadata. */\n  name: string;\n  /** Position of the axis in the stored arrays. */\n  index: number;\n  /** Physical unit if declared in the metadata. */\n  unit?: string;\n  /** Per-LOD metadata ordered finest first. */\n  lods: SourceDimensionLod[];\n};\n\n/**\n * Metadata for one dimension at one level of detail.\n *\n * Combines array metadata with the OME-Zarr coordinate transform.\n */\nexport type SourceDimensionLod = {\n  /** Extent of the dimension in array elements. */\n  size: number;\n  /** Chunk extent along the dimension in elements. */\n  chunkSize: number;\n  /** World units per array element. */\n  scale: number;\n  /** World coordinate of the first element. */\n  translation: number;\n};\n\n/**\n * World-space coordinates selecting the data to display.\n */\nexport type SliceCoordinates = {\n  /** Position on the `x` axis in world units. */\n  x?: number;\n  /** Position on the `y` axis in world units. */\n  y?: number;\n  /** Position on the `z` axis in world units. */\n  z?: number;\n  /** Channel indices to load. Defaults to all channels. */\n  c?: number[];\n  /** The time point to display. */\n  t?: number;\n};\n\nexport type ChunkSource = {\n  get loader(): ChunkLoader;\n};\n\nexport type ChunkLoader = {\n  getSourceDimensionMap(): SourceDimensionMap;\n\n  getBytesPerElement(): number;\n\n  loadChunkData(chunk: Chunk, signal: AbortSignal): Promise<void>;\n};\n\nexport function coordToIndex(lod: SourceDimensionLod, coord: number): number {\n  return Math.round((coord - lod.translation) / lod.scale);\n}\n\nexport function coordToChunkIndex(\n  lod: SourceDimensionLod,\n  coord: number\n): number {\n  const index = coordToIndex(lod, coord);\n  return Math.floor(index / lod.chunkSize);\n}\n\nexport function worldToTexCoordForChunk(chunk: Chunk, axes: SliceAxes): mat4 {\n  const scale = vec3.create();\n  const translation = vec3.create();\n  for (const axis of [\"x\", \"y\", \"z\"] as const) {\n    const centerShift = axis === axes.w ? 0.5 * chunk.scale[axis] : 0;\n    const component = AxisComponent[axis];\n    scale[component] = 1 / (chunk.scale[axis] * chunk.shape[axis]);\n    translation[component] = centerShift - chunk.offset[axis];\n  }\n  const m = mat4.fromScaling(mat4.create(), scale);\n  return mat4.translate(m, m, translation);\n}\n","export function clamp(value: number, min: number, max: number): number {\n  return Math.max(min, Math.min(max, value));\n}\n","import { Chunk, ChunkViewState, coordToIndex, SliceCoordinates } from \"./chunk\";\nimport { AxisComponent, SliceAxes, SpatialAxis } from \"../math/axes\";\nimport type { ChunkStore } from \"./chunk_store\";\nimport { ImageSourcePolicy } from \"../core/image_source_policy\";\nimport { ReadonlyVec2, vec2, vec3, mat4 } from \"gl-matrix\";\nimport { Box2 } from \"../math/box2\";\nimport { Box3 } from \"../math/box3\";\nimport { Logger } from \"../utilities/logger\";\nimport { clamp } from \"../utilities/clamp\";\n\n/*\nUnique symbol used as a capability token to allow internal modules to update\nthe image source policy. Only code that imports this symbol can call\nsetImageSourcePolicy; all other callers will be rejected. Acts like a \"friend\"\naccess key, preventing accidental external mutation.\n*/\nexport const INTERNAL_POLICY_KEY = Symbol(\"INTERNAL_POLICY_KEY\");\n\nexport class ChunkStoreView {\n  private readonly store_: ChunkStore;\n  private policy_: ImageSourcePolicy;\n  private policyChanged_ = false;\n  private currentLOD_: number = 0;\n  private readonly axes_: SliceAxes;\n  private readonly scale0_: number;\n  private lastViewBounds2D_: Box2 | null = null;\n  private lastViewProjection_: mat4 | null = null;\n  private lastSliceBounds_?: [number, number];\n  private lastTCoord_?: number;\n  private lastCCoords_?: number[];\n\n  private readonly sourceMaxSquareDistance2D_: number;\n  private readonly chunkViewStates_: Map<Chunk, ChunkViewState> = new Map();\n\n  private isDisposed_ = false;\n\n  constructor(\n    store: ChunkStore,\n    policy: ImageSourcePolicy,\n    axes: SliceAxes = { u: \"x\", v: \"y\", w: \"z\" }\n  ) {\n    this.store_ = store;\n    this.policy_ = policy;\n    this.axes_ = axes;\n\n    Logger.info(\n      \"ChunkStoreView\",\n      \"Using image source policy:\",\n      this.policy_.profile\n    );\n\n    const dimensions = this.store_.dimensions;\n    const uDim = dimensions[this.axes_.u];\n    const vDim = dimensions[this.axes_.v];\n    if (uDim === undefined || vDim === undefined) {\n      throw new Error(\n        `Source is missing dimensions for slice plane axes ` +\n          `\"${this.axes_.u}\" and \"${this.axes_.v}\"`\n      );\n    }\n\n    const uLod0 = uDim.lods[0];\n    const vLod0 = vDim.lods[0];\n    this.scale0_ = uLod0.scale;\n    this.sourceMaxSquareDistance2D_ = vec2.squaredLength(\n      vec2.fromValues(uLod0.size * uLod0.scale, vLod0.size * vLod0.scale)\n    );\n  }\n\n  public get chunkViewStates(): ReadonlyMap<Chunk, ChunkViewState> {\n    return this.chunkViewStates_;\n  }\n\n  public get isDisposed(): boolean {\n    return this.isDisposed_;\n  }\n\n  public get lodCount(): number {\n    return this.store_.lodCount;\n  }\n\n  public get channelCount(): number {\n    return this.store_.channelCount;\n  }\n\n  public getWholePlaneRect(): Box2 {\n    const dimensions = this.store_.dimensions;\n    const uLod0 = dimensions[this.axes_.u]!.lods[0];\n    const vLod0 = dimensions[this.axes_.v]!.lods[0];\n\n    return new Box2(\n      vec2.fromValues(uLod0.translation, vLod0.translation),\n      vec2.fromValues(\n        uLod0.translation + uLod0.size * uLod0.scale,\n        vLod0.translation + vLod0.size * vLod0.scale\n      )\n    );\n  }\n\n  public getChunksToRender(): Chunk[] {\n    // Iterates `chunkViewStates_` (only chunks touched by the most recent\n    // updateChunks*ForRegion) instead of every chunk at the time index, so the\n    // cost is bounded by visible+prefetch+fallback set size, not dataset size.\n    const fallbackLOD = this.fallbackLOD();\n    const currentLOD = this.currentLOD_;\n    const currentLODChunks: Chunk[] = [];\n    const lowResChunks: Chunk[] = [];\n\n    for (const [chunk, state] of this.chunkViewStates_) {\n      if (!state.visible || chunk.state !== \"loaded\" || !chunk.texture)\n        continue;\n      if (chunk.lod === currentLOD) {\n        currentLODChunks.push(chunk);\n      } else if (chunk.lod === fallbackLOD && currentLOD !== fallbackLOD) {\n        lowResChunks.push(chunk);\n      }\n    }\n\n    return [...currentLODChunks, ...lowResChunks];\n  }\n\n  public updateChunksForImage(\n    sliceCoords: SliceCoordinates,\n    view: { worldViewRect: Box2; bufferWidthPx: number }\n  ): void {\n    const viewBounds2D = view.worldViewRect;\n    const virtualWidth = Math.abs(viewBounds2D.max[0] - viewBounds2D.min[0]);\n    const virtualUnitsPerScreenPixel = virtualWidth / view.bufferWidthPx;\n    const lodFactor = Math.log2(1 / virtualUnitsPerScreenPixel);\n\n    const lodChanged = this.setLOD(lodFactor);\n\n    const sliceBounds = this.getSliceAxisBounds(sliceCoords);\n    const changed =\n      this.policyChanged_ ||\n      lodChanged ||\n      this.viewBounds2DChanged(viewBounds2D) ||\n      this.sliceBoundsChanged(sliceBounds) ||\n      this.lastTCoord_ !== sliceCoords.t ||\n      this.cCoordsChanged(sliceCoords.c);\n\n    if (!changed) return;\n\n    const currentTimeIndex = this.timeIndex(sliceCoords);\n    if (!this.store_.hasChunksAtTime(currentTimeIndex)) {\n      Logger.warn(\n        \"ChunkStoreView\",\n        \"updateChunkViewStates called with no chunks initialized\"\n      );\n      this.chunkViewStates_.forEach(resetChunkViewState);\n      return;\n    }\n\n    const viewBoundsCenter2D = vec2.create();\n    vec2.lerp(viewBoundsCenter2D, viewBounds2D.min, viewBounds2D.max, 0.5);\n\n    const viewBounds3D = this.makeViewBounds3D(viewBounds2D, sliceBounds);\n\n    // reset all existing chunk view states to \"not needed\" to start\n    // logic below will override this for chunks that are actually visible/prefetch\n    this.chunkViewStates_.forEach(resetChunkViewState);\n\n    const channels = this.channelsOfInterest(sliceCoords);\n    const fallbackLOD = this.fallbackLOD();\n    const prefetchAabb = this.getPaddedBounds(viewBounds3D);\n\n    // Range-query the prefetch AABB at currentLOD (and fallbackLOD when\n    // distinct); fallback chunks act as a backdrop while currentLOD loads.\n    const lodsToVisit =\n      this.currentLOD_ === fallbackLOD\n        ? [this.currentLOD_]\n        : [this.currentLOD_, fallbackLOD];\n    for (const lod of lodsToVisit) {\n      const isCurrent = lod === this.currentLOD_;\n      const isFallback = lod === fallbackLOD;\n      this.iterateChunksInBox(\n        currentTimeIndex,\n        lod,\n        channels,\n        prefetchAabb,\n        (chunk, chunkBox) => {\n          const isInBounds = Box3.intersects(chunkBox, viewBounds3D);\n          const prefetch = isCurrent && !isInBounds;\n          const priority = this.computePriority(\n            isFallback,\n            isCurrent,\n            isInBounds,\n            prefetch,\n            true\n          );\n          if (priority !== null) {\n            this.chunkViewStates_.set(chunk, {\n              visible: isInBounds,\n              prefetch,\n              priority,\n              orderKey: this.squareDistance2D(chunk, viewBoundsCenter2D),\n            });\n          }\n        }\n      );\n    }\n\n    this.markTimeChunksForPrefetchImage(\n      currentTimeIndex,\n      sliceCoords,\n      viewBounds3D,\n      viewBoundsCenter2D\n    );\n\n    this.policyChanged_ = false;\n    this.lastViewBounds2D_ = viewBounds2D.clone();\n    this.lastSliceBounds_ = sliceBounds;\n    this.lastTCoord_ = sliceCoords.t;\n    this.lastCCoords_ = sliceCoords.c ? [...sliceCoords.c] : undefined;\n  }\n\n  public updateChunksForVolume(\n    sliceCoords: SliceCoordinates,\n    viewProjection: mat4\n  ): void {\n    const changed =\n      this.policyChanged_ ||\n      this.hasViewProjectionChanged(viewProjection) ||\n      this.lastTCoord_ !== sliceCoords.t ||\n      this.cCoordsChanged(sliceCoords.c);\n\n    if (!changed) return;\n\n    const currentTimeIndex = this.timeIndex(sliceCoords);\n    if (!this.store_.hasChunksAtTime(currentTimeIndex)) {\n      Logger.warn(\n        \"ChunkStoreView\",\n        \"updateChunksForVolume called with no chunks initialized\"\n      );\n      this.chunkViewStates_.forEach(resetChunkViewState);\n      return;\n    }\n\n    // TODO: Calculate LOD dynamically based on view frustum for volume rendering\n    // (similar to zoom-based LOD calculation in updateChunksForImage).\n    // Currently uses a fixed LOD from policy.\n    this.currentLOD_ = this.policy_.lod.min;\n\n    this.chunkViewStates_.forEach(resetChunkViewState);\n\n    const channels = this.channelsOfInterest(sliceCoords);\n    const fallbackLOD = this.fallbackLOD();\n\n    const markVolumeChunkVisible = (chunk: Chunk) => {\n      const isFallbackLOD = chunk.lod === fallbackLOD;\n      const isCurrentLOD = chunk.lod === this.currentLOD_;\n      const priority = this.computePriority(\n        isFallbackLOD,\n        isCurrentLOD,\n        true,\n        false,\n        true\n      );\n      if (priority === null) return;\n      this.chunkViewStates_.set(chunk, {\n        visible: true,\n        prefetch: false,\n        priority,\n        orderKey: 0,\n      });\n    };\n    this.iterateAllChunksAtLod(\n      currentTimeIndex,\n      this.currentLOD_,\n      channels,\n      markVolumeChunkVisible\n    );\n    if (this.currentLOD_ !== fallbackLOD) {\n      this.iterateAllChunksAtLod(\n        currentTimeIndex,\n        fallbackLOD,\n        channels,\n        markVolumeChunkVisible\n      );\n    }\n\n    this.markTimeChunksForPrefetchVolume(currentTimeIndex, sliceCoords);\n\n    this.policyChanged_ = false;\n    this.lastTCoord_ = sliceCoords.t;\n    this.lastCCoords_ = sliceCoords.c ? [...sliceCoords.c] : undefined;\n    this.lastViewProjection_ = viewProjection;\n  }\n\n  public allVisibleFallbackLODLoaded(): boolean {\n    const fallbackLOD = this.fallbackLOD();\n    let foundAny = false;\n    for (const [chunk, state] of this.chunkViewStates_) {\n      if (!state.visible || chunk.lod !== fallbackLOD) continue;\n      foundAny = true;\n      if (chunk.texture === undefined) return false;\n    }\n    return foundAny;\n  }\n\n  public get currentLOD(): number {\n    return this.currentLOD_;\n  }\n\n  public maybeForgetChunk(chunk: Chunk): void {\n    const viewState = this.chunkViewStates_.get(chunk);\n    if (\n      viewState &&\n      (viewState.visible || viewState.prefetch || viewState.priority !== null)\n    ) {\n      return;\n    }\n    this.chunkViewStates_.delete(chunk);\n  }\n\n  public dispose(): void {\n    this.isDisposed_ = true;\n    this.chunkViewStates_.forEach(resetChunkViewState);\n  }\n\n  public setImageSourcePolicy(newPolicy: ImageSourcePolicy, key: symbol) {\n    if (key !== INTERNAL_POLICY_KEY) {\n      throw new Error(\"Unauthorized policy mutation\");\n    }\n\n    if (this.policy_ !== newPolicy) {\n      this.policy_ = newPolicy;\n      this.policyChanged_ = true;\n\n      Logger.info(\n        \"ChunkStoreView\",\n        \"Using image source policy:\",\n        this.policy_.profile\n      );\n    }\n  }\n\n  private setLOD(lodFactor: number): boolean {\n    // With 2x downsampling per LOD, selection happens in log2 space.\n    const bias = this.policy_.lod.bias;\n\n    // How many LOD 0 pixels per screen pixel, normalized by source scale and bias.\n    const sourceAdjusted = bias - Math.log2(this.scale0_) - lodFactor;\n    const desiredLOD = Math.floor(sourceAdjusted);\n\n    const lowestResLOD = this.store_.getLowestResLOD();\n    // Intersect dataset bounds with policy bounds.\n    const minPolicyLOD = Math.max(\n      0,\n      Math.min(lowestResLOD, this.policy_.lod.min)\n    );\n    const maxPolicyLOD = Math.max(\n      minPolicyLOD,\n      Math.min(lowestResLOD, this.policy_.lod.max)\n    );\n\n    const target = clamp(desiredLOD, minPolicyLOD, maxPolicyLOD);\n    if (target === this.currentLOD_) return false;\n    this.currentLOD_ = target;\n    return true;\n  }\n\n  private markTimeChunksForPrefetchImage(\n    currentTimeIndex: number,\n    sliceCoords: SliceCoordinates,\n    viewBounds3D: Box3,\n    viewBoundsCenter2D: ReadonlyVec2\n  ): void {\n    const numTimePoints = this.store_.dimensions.t?.lods[0].size ?? 1;\n    const windowSize = Math.min(this.policy_.prefetch.t, numTimePoints - 1);\n    const priority = this.policy_.priorityMap[\"prefetchTime\"];\n    const channels = this.channelsOfInterest(sliceCoords);\n\n    for (let i = 1; i <= windowSize; ++i) {\n      const t = (currentTimeIndex + i) % numTimePoints;\n      this.iterateChunksInBox(\n        t,\n        this.currentLOD_,\n        channels,\n        viewBounds3D,\n        (chunk) => {\n          const squareDistance = this.squareDistance2D(\n            chunk,\n            viewBoundsCenter2D\n          );\n          const normalizedDistance = clamp(\n            squareDistance / this.sourceMaxSquareDistance2D_,\n            0,\n            1 - Number.EPSILON\n          );\n          const orderKey = i + normalizedDistance;\n\n          this.chunkViewStates_.set(chunk, {\n            visible: false,\n            prefetch: true,\n            priority,\n            orderKey,\n          });\n        }\n      );\n    }\n  }\n\n  private markTimeChunksForPrefetchVolume(\n    currentTimeIndex: number,\n    sliceCoords: SliceCoordinates\n  ) {\n    const numTimePoints = this.store_.dimensions.t?.lods[0].size ?? 1;\n    const windowSize = Math.min(this.policy_.prefetch.t, numTimePoints - 1);\n    const priority = this.policy_.priorityMap[\"prefetchTime\"];\n    const channels = this.channelsOfInterest(sliceCoords);\n\n    for (let i = 1; i <= windowSize; ++i) {\n      const t = (currentTimeIndex + i) % numTimePoints;\n      this.iterateAllChunksAtLod(t, this.currentLOD_, channels, (chunk) => {\n        const orderKey = i; // nearer along the playback loop first\n        this.chunkViewStates_.set(chunk, {\n          visible: false,\n          prefetch: true,\n          priority,\n          orderKey,\n        });\n      });\n    }\n  }\n\n  private computePriority(\n    isFallbackLOD: boolean,\n    isCurrentLOD: boolean,\n    isVisible: boolean,\n    isPrefetch: boolean,\n    isChannelInSlice: boolean\n  ) {\n    if (!isChannelInSlice) return null;\n\n    const m = this.policy_.priorityMap;\n    if (isFallbackLOD && isVisible) return m[\"fallbackVisible\"];\n    if (isCurrentLOD && isVisible) return m[\"visibleCurrent\"];\n    if (isFallbackLOD) return m[\"fallbackBackground\"];\n    if (isCurrentLOD && isPrefetch) return m[\"prefetchSpace\"];\n\n    return null;\n  }\n\n  private channelsOfInterest(sliceCoords: SliceCoordinates): number[] {\n    return (\n      sliceCoords.c ??\n      Array.from({ length: this.store_.channelCount }, (_, i) => i)\n    );\n  }\n\n  // Half-open chunk-index range [min, max) at a given LOD that covers `bounds`.\n  // Returns null if the bounds don't overlap the data grid.\n  private chunkIndexRange(bounds: Box3, lod: number) {\n    const dim = this.store_.dimensions;\n    const xLod = dim.x.lods[lod];\n    const yLod = dim.y.lods[lod];\n    const zLod = dim.z?.lods[lod];\n\n    const xCount = Math.ceil(xLod.size / xLod.chunkSize);\n    const yCount = Math.ceil(yLod.size / yLod.chunkSize);\n    const zCount = zLod ? Math.ceil(zLod.size / zLod.chunkSize) : 1;\n\n    const xStride = xLod.chunkSize * xLod.scale;\n    const yStride = yLod.chunkSize * yLod.scale;\n    const zStride = zLod ? zLod.chunkSize * zLod.scale : 1;\n    const xTran = xLod.translation;\n    const yTran = yLod.translation;\n    const zTran = zLod?.translation ?? 0;\n\n    const xMin = Math.max(0, Math.floor((bounds.min[0] - xTran) / xStride));\n    const xMax = Math.min(xCount, Math.ceil((bounds.max[0] - xTran) / xStride));\n    const yMin = Math.max(0, Math.floor((bounds.min[1] - yTran) / yStride));\n    const yMax = Math.min(yCount, Math.ceil((bounds.max[1] - yTran) / yStride));\n    const zMin = zLod\n      ? Math.max(0, Math.floor((bounds.min[2] - zTran) / zStride))\n      : 0;\n    const zMax = zLod\n      ? Math.min(zCount, Math.ceil((bounds.max[2] - zTran) / zStride))\n      : 1;\n\n    if (xMin >= xMax || yMin >= yMax || zMin >= zMax) return null;\n    return { xMin, xMax, yMin, yMax, zMin, zMax };\n  }\n\n  private iterateChunksInBox(\n    timeIndex: number,\n    lod: number,\n    channels: number[],\n    bounds: Box3,\n    callback: (chunk: Chunk, chunkBox: Box3) => void\n  ): void {\n    const range = this.chunkIndexRange(bounds, lod);\n    if (!range) return;\n    for (const c of channels) {\n      const grid = this.store_.getChunkGrid(lod, timeIndex, c);\n      if (!grid) continue;\n      for (let zi = range.zMin; zi < range.zMax; ++zi) {\n        const yPlane = grid[zi];\n        for (let yi = range.yMin; yi < range.yMax; ++yi) {\n          const xRow = yPlane[yi];\n          for (let xi = range.xMin; xi < range.xMax; ++xi) {\n            const chunk = xRow[xi];\n            callback(chunk, this.getChunkAabb(chunk));\n          }\n        }\n      }\n    }\n  }\n\n  private iterateAllChunksAtLod(\n    timeIndex: number,\n    lod: number,\n    channels: number[],\n    callback: (chunk: Chunk, chunkBox: Box3) => void\n  ): void {\n    for (const c of channels) {\n      const grid = this.store_.getChunkGrid(lod, timeIndex, c);\n      if (!grid) continue;\n      for (const yPlane of grid) {\n        for (const xRow of yPlane) {\n          for (const chunk of xRow) {\n            callback(chunk, this.getChunkAabb(chunk));\n          }\n        }\n      }\n    }\n  }\n\n  private getChunkAabb(chunk: Chunk): Box3 {\n    return new Box3(\n      vec3.fromValues(chunk.offset.x, chunk.offset.y, chunk.offset.z),\n      vec3.fromValues(\n        chunk.offset.x + chunk.shape.x * chunk.scale.x,\n        chunk.offset.y + chunk.shape.y * chunk.scale.y,\n        chunk.offset.z + chunk.shape.z * chunk.scale.z\n      )\n    );\n  }\n\n  private fallbackLOD(): number {\n    return Math.min(this.policy_.lod.max, this.store_.getLowestResLOD());\n  }\n\n  private timeIndex(sliceCoords: SliceCoordinates): number {\n    const tDim = this.store_.dimensions.t;\n    if (sliceCoords.t === undefined || tDim === undefined) return 0;\n    return coordToIndex(tDim.lods[0], sliceCoords.t);\n  }\n\n  private getSliceAxisBounds(sliceCoords: SliceCoordinates): [number, number] {\n    const wDim = this.store_.dimensions[this.axes_.w];\n    if (wDim === undefined) return [0, 1];\n\n    const wLod = wDim.lods[this.currentLOD_];\n\n    // If slice coordinate is undefined, return bounds that encompass the whole axis (for volume rendering)\n    const sliceValue = sliceCoords[this.axes_.w];\n    if (sliceValue === undefined) {\n      return [wLod.translation, wLod.translation + wLod.size * wLod.scale];\n    }\n\n    const wShape = wLod.size;\n    const wScale = wLod.scale;\n    const wTran = wLod.translation;\n    const wPoint = Math.floor((sliceValue - wTran) / wScale);\n    const chunkDepth = wLod.chunkSize;\n\n    const wChunk = Math.max(\n      0,\n      Math.min(\n        Math.floor(wPoint / chunkDepth),\n        Math.ceil(wShape / chunkDepth) - 1\n      )\n    );\n\n    return [\n      wTran + wChunk * chunkDepth * wScale,\n      wTran + (wChunk + 1) * chunkDepth * wScale,\n    ];\n  }\n\n  private makeViewBounds3D(\n    viewBounds2D: Box2,\n    sliceBounds: [number, number]\n  ): Box3 {\n    const min = vec3.create();\n    const max = vec3.create();\n    min[AxisComponent[this.axes_.u]] = viewBounds2D.min[0];\n    max[AxisComponent[this.axes_.u]] = viewBounds2D.max[0];\n    min[AxisComponent[this.axes_.v]] = viewBounds2D.min[1];\n    max[AxisComponent[this.axes_.v]] = viewBounds2D.max[1];\n    min[AxisComponent[this.axes_.w]] = sliceBounds[0];\n    max[AxisComponent[this.axes_.w]] = sliceBounds[1];\n    return new Box3(min, max);\n  }\n\n  private viewBounds2DChanged(newBounds: Box2): boolean {\n    return (\n      this.lastViewBounds2D_ === null ||\n      !vec2.equals(this.lastViewBounds2D_.min, newBounds.min) ||\n      !vec2.equals(this.lastViewBounds2D_.max, newBounds.max)\n    );\n  }\n\n  private hasViewProjectionChanged(viewProjection: mat4) {\n    return (\n      this.lastViewProjection_ === null ||\n      !mat4.equals(this.lastViewProjection_, viewProjection)\n    );\n  }\n\n  private sliceBoundsChanged(newBounds: [number, number]): boolean {\n    return (\n      !this.lastSliceBounds_ || !vec2.equals(this.lastSliceBounds_, newBounds)\n    );\n  }\n\n  private cCoordsChanged(newC?: number[]): boolean {\n    if (!this.lastCCoords_ && !newC) return false;\n    if (!this.lastCCoords_ || !newC) return true;\n    if (this.lastCCoords_.length !== newC.length) return true;\n    return !this.lastCCoords_.every((v, i) => v === newC[i]);\n  }\n\n  private getPaddedBounds(bounds: Box3): Box3 {\n    const { u, v, w } = this.axes_;\n    const dimensions = this.store_.dimensions;\n    const uLod = dimensions[u]!.lods[this.currentLOD_];\n    const vLod = dimensions[v]!.lods[this.currentLOD_];\n    const wLod = dimensions[w]?.lods[this.currentLOD_];\n\n    const pad = vec3.create();\n    pad[AxisComponent[u]] =\n      uLod.chunkSize * uLod.scale * this.policy_.prefetch.x;\n    pad[AxisComponent[v]] =\n      vLod.chunkSize * vLod.scale * this.policy_.prefetch.y;\n    if (wLod) {\n      pad[AxisComponent[w]] =\n        wLod.chunkSize * wLod.scale * this.policy_.prefetch.z;\n    }\n\n    return new Box3(\n      vec3.subtract(vec3.create(), bounds.min, pad),\n      vec3.add(vec3.create(), bounds.max, pad)\n    );\n  }\n\n  private squareDistance2D(chunk: Chunk, center: ReadonlyVec2): number {\n    function axisCenter(axis: SpatialAxis) {\n      return chunk.offset[axis] + 0.5 * chunk.shape[axis] * chunk.scale[axis];\n    }\n\n    const { u, v } = this.axes_;\n    const du = axisCenter(u) - center[0];\n    const dv = axisCenter(v) - center[1];\n\n    return du * du + dv * dv;\n  }\n}\n\nfunction resetChunkViewState(state: ChunkViewState): void {\n  state.visible = false;\n  state.prefetch = false;\n  state.priority = null;\n  state.orderKey = null;\n}\n","import { Chunk, SourceDimensionMap } from \"./chunk\";\nimport { SliceAxes } from \"../math/axes\";\nimport { almostEqual } from \"../utilities/almost_equal\";\nimport { Logger } from \"../utilities/logger\";\nimport { ChunkStoreView } from \"./chunk_store_view\";\nimport { ImageSourcePolicy } from \"../core/image_source_policy\";\n\nexport class ChunkStore {\n  // Chunks indexed as chunks_[lod][t][c][z][y][x].\n  private readonly chunks_: Chunk[][][][][][];\n  private readonly lowestResLOD_: number;\n  private readonly dimensions_: SourceDimensionMap;\n  private readonly views_: ChunkStoreView[] = [];\n  private hasHadViews_ = false;\n\n  constructor(dimensions: SourceDimensionMap) {\n    this.dimensions_ = dimensions;\n    this.lowestResLOD_ = this.dimensions_.numLods - 1;\n\n    this.validateXYScaleRatios();\n    const { size: chunksT } = this.getAndValidateTimeDimension();\n    const { size: chunksC } = this.getAndValidateChannelDimension();\n\n    const numLods = this.dimensions_.numLods;\n    this.chunks_ = new Array(numLods);\n\n    for (let lod = 0; lod < numLods; ++lod) {\n      const xLod = this.dimensions_.x.lods[lod];\n      const yLod = this.dimensions_.y.lods[lod];\n      const zLod = this.dimensions_.z?.lods[lod];\n\n      const chunkWidth = xLod.chunkSize;\n      const chunkHeight = yLod.chunkSize;\n      const chunkDepth = zLod?.chunkSize ?? 1;\n\n      const chunksX = Math.ceil(xLod.size / chunkWidth);\n      const chunksY = Math.ceil(yLod.size / chunkHeight);\n      const chunksZ = zLod ? Math.ceil(zLod.size / chunkDepth) : 1;\n\n      const lodArr: Chunk[][][][][] = new Array(chunksT);\n      this.chunks_[lod] = lodArr;\n      for (let t = 0; t < chunksT; ++t) {\n        const tArr: Chunk[][][][] = new Array(chunksC);\n        lodArr[t] = tArr;\n        for (let c = 0; c < chunksC; ++c) {\n          const cArr: Chunk[][][] = new Array(chunksZ);\n          tArr[c] = cArr;\n          for (let z = 0; z < chunksZ; ++z) {\n            const zOffset =\n              zLod !== undefined\n                ? zLod.translation + z * chunkDepth * zLod.scale\n                : 0;\n            const yArr: Chunk[][] = new Array(chunksY);\n            cArr[z] = yArr;\n            for (let y = 0; y < chunksY; ++y) {\n              const yOffset = yLod.translation + y * chunkHeight * yLod.scale;\n              const xArr: Chunk[] = new Array(chunksX);\n              yArr[y] = xArr;\n              for (let x = 0; x < chunksX; ++x) {\n                const xOffset = xLod.translation + x * chunkWidth * xLod.scale;\n                xArr[x] = {\n                  state: \"unloaded\",\n                  lod,\n                  visible: false,\n                  prefetch: false,\n                  priority: null,\n                  orderKey: null,\n                  shape: {\n                    x: Math.min(chunkWidth, xLod.size - x * chunkWidth),\n                    y: Math.min(chunkHeight, yLod.size - y * chunkHeight),\n                    z: Math.min(chunkDepth, (zLod?.size ?? 1) - z * chunkDepth),\n                    c: 1,\n                  },\n                  rowAlignmentBytes: 1,\n                  chunkIndex: { x, y, z, c, t },\n                  scale: {\n                    x: xLod.scale,\n                    y: yLod.scale,\n                    z: zLod?.scale ?? 1,\n                  },\n                  offset: {\n                    x: xOffset,\n                    y: yOffset,\n                    z: zOffset,\n                  },\n                };\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  public getChunkGrid(\n    lod: number,\n    t: number,\n    c: number\n  ): Chunk[][][] | undefined {\n    return this.chunks_[lod]?.[t]?.[c];\n  }\n\n  public hasChunksAtTime(timeIndex: number): boolean {\n    return this.chunks_[0]?.[timeIndex] !== undefined;\n  }\n\n  public get lodCount() {\n    return this.lowestResLOD_ + 1;\n  }\n\n  public get channelCount(): number {\n    return this.dimensions_.c?.lods[0].size ?? 1;\n  }\n\n  public get dimensions() {\n    return this.dimensions_;\n  }\n\n  public getLowestResLOD(): number {\n    return this.lowestResLOD_;\n  }\n\n  public addView(policy: ImageSourcePolicy, axes?: SliceAxes): ChunkStoreView {\n    const view = new ChunkStoreView(this, policy, axes);\n    this.views_.push(view);\n    this.hasHadViews_ = true;\n    return view;\n  }\n\n  public get views(): ReadonlyArray<ChunkStoreView> {\n    return this.views_;\n  }\n\n  public canDispose(): boolean {\n    return this.hasHadViews_ && this.views_.length === 0;\n  }\n\n  public updateAndCollectChunkChanges(): Set<Chunk> {\n    const affectedChunks = new Set<Chunk>();\n    for (const view of this.views_) {\n      for (const [chunk, _viewState] of view.chunkViewStates) {\n        affectedChunks.add(chunk);\n      }\n    }\n\n    for (const chunk of affectedChunks) {\n      this.aggregateChunkViewStates(chunk);\n    }\n\n    this.removeDisposedViews();\n\n    return affectedChunks;\n  }\n\n  private removeDisposedViews(): void {\n    for (let i = this.views_.length - 1; i >= 0; i--) {\n      if (this.views_[i].isDisposed) {\n        this.views_.splice(i, 1);\n      }\n    }\n  }\n\n  private aggregateChunkViewStates(chunk: Chunk): void {\n    let anyVisible = false;\n    let anyPrefetch = false;\n    let minPriority: number | null = null;\n    let orderKeyForMinPriority: number | null = null;\n\n    for (const view of this.views_) {\n      const viewState = view.chunkViewStates.get(chunk);\n      if (!viewState) continue;\n\n      if (viewState.visible) anyVisible = true;\n      if (viewState.prefetch) anyPrefetch = true;\n\n      if (viewState.priority !== null) {\n        if (minPriority === null || viewState.priority < minPriority) {\n          minPriority = viewState.priority;\n          orderKeyForMinPriority = viewState.orderKey;\n        }\n      }\n\n      if (\n        !viewState.visible &&\n        !viewState.prefetch &&\n        viewState.priority === null\n      ) {\n        view.maybeForgetChunk(chunk);\n      }\n    }\n\n    chunk.visible = anyVisible;\n    chunk.prefetch = anyPrefetch;\n    chunk.priority = minPriority;\n    chunk.orderKey = orderKeyForMinPriority;\n\n    const shouldEnqueueChunk =\n      chunk.priority !== null && chunk.state === \"unloaded\";\n    if (shouldEnqueueChunk) {\n      chunk.state = \"queued\";\n      return;\n    }\n\n    const shouldCancelQueuedChunk =\n      chunk.priority === null && chunk.state === \"queued\";\n    if (shouldCancelQueuedChunk) {\n      chunk.state = \"unloaded\";\n    }\n  }\n\n  private validateXYScaleRatios(): void {\n    // Validates that each LOD level is downsampled by a factor of 2 in X and Y.\n    // Z downsampling is not validated here because it's not guaranteed.\n    const xDim = this.dimensions_.x;\n    const yDim = this.dimensions_.y;\n    for (let i = 1; i < this.dimensions_.numLods; i++) {\n      const rx = xDim.lods[i].scale / xDim.lods[i - 1].scale;\n      const ry = yDim.lods[i].scale / yDim.lods[i - 1].scale;\n\n      if (!almostEqual(rx, 2, 0.02) || !almostEqual(ry, 2, 0.02)) {\n        throw new Error(\n          `Invalid downsampling factor between levels ${i - 1} → ${i}: ` +\n            `expected (2× in X and Y), but got ` +\n            `(${rx.toFixed(2)}×, ${ry.toFixed(2)}×) from scale ` +\n            `[${xDim.lods[i - 1].scale}, ${yDim.lods[i - 1].scale}] → [${xDim.lods[i].scale}, ${yDim.lods[i].scale}]`\n        );\n      }\n    }\n  }\n\n  private getAndValidateTimeDimension() {\n    for (let lod = 0; lod < this.dimensions_.numLods; ++lod) {\n      const tLod = this.dimensions_.t?.lods[lod];\n      if (!tLod) continue;\n      const prevTLod = this.dimensions_.t?.lods[lod - 1];\n      if (!prevTLod) continue;\n      if (tLod.size !== prevTLod.size) {\n        throw new Error(\n          `ChunkStore does not support downsampling in t. Found ${prevTLod.size} at LOD ${lod - 1} → ${tLod.size} at LOD ${lod}`\n        );\n      }\n    }\n    return {\n      size: this.dimensions_.t?.lods[0].size ?? 1,\n    };\n  }\n\n  private getAndValidateChannelDimension() {\n    for (let lod = 0; lod < this.dimensions_.numLods; ++lod) {\n      const cLod = this.dimensions_.c?.lods[lod];\n      if (!cLod) continue;\n      if (cLod.scale !== 1) {\n        Logger.warn(\n          \"ChunkStore\",\n          `Idetik does not make use of non-unity scale in c. Found ${cLod.scale} at LOD ${lod}`\n        );\n      }\n      if (cLod.translation !== 0) {\n        throw new Error(\n          `ChunkStore does not support translation in c. Found ${cLod.translation} at LOD ${lod}`\n        );\n      }\n      const prevCLod = this.dimensions_.c?.lods[lod - 1];\n      if (!prevCLod) continue;\n      if (cLod.size !== prevCLod.size) {\n        throw new Error(\n          `ChunkStore does not support downsampling in c. Found ${prevCLod.size} at LOD ${lod - 1} → ${cLod.size} at LOD ${lod}`\n        );\n      }\n    }\n    return {\n      size: this.dimensions_.c?.lods[0].size ?? 1,\n    };\n  }\n}\n","import { DataTextureTypedArray, Texture, bufferToDataType } from \"./texture\";\nimport { Chunk } from \"../../data/chunk\";\n\nexport class Texture3D extends Texture {\n  private readonly width_: number;\n  private readonly height_: number;\n  private readonly depth_: number;\n\n  constructor(\n    data: DataTextureTypedArray,\n    width: number,\n    height: number,\n    depth: number\n  ) {\n    super();\n    this.dataFormat = \"scalar\";\n    this.dataType = bufferToDataType(data);\n\n    this.data_ = data;\n    this.width_ = width;\n    this.height_ = height;\n    this.depth_ = depth;\n  }\n\n  public get type() {\n    return \"Texture3D\";\n  }\n\n  public get width() {\n    return this.width_;\n  }\n\n  public get height() {\n    return this.height_;\n  }\n\n  public get depth() {\n    return this.depth_;\n  }\n\n  public static createWithChunk(chunk: Chunk) {\n    const source = chunk.data;\n    if (!source) {\n      throw new Error(\n        \"Unable to create texture, chunk data is not initialized.\"\n      );\n    }\n\n    const texture = new Texture3D(\n      source,\n      chunk.shape.x,\n      chunk.shape.y,\n      chunk.shape.z\n    );\n    texture.unpackAlignment = chunk.rowAlignmentBytes;\n    return texture;\n  }\n}\n","import { Chunk, ChunkSource } from \"./chunk\";\nimport { SliceAxes } from \"../math/axes\";\nimport { ChunkQueue, comparePriority } from \"./chunk_queue\";\nimport { chunkMemoryStats, clearChunkData } from \"./chunk_memory\";\nimport { ChunkStore } from \"./chunk_store\";\nimport { ChunkStoreView } from \"./chunk_store_view\";\nimport { ImageSourcePolicy } from \"../core/image_source_policy\";\nimport { Texture, textureStorageBytes } from \"../objects/textures/texture\";\nimport { Texture3D } from \"../objects/textures/texture_3d\";\n\n/**\n * A snapshot of the chunk request queue.\n */\nexport type QueueStats = {\n  /** Number of requests waiting to start. */\n  pending: number;\n  /** Number of requests currently in flight. */\n  running: number;\n};\n\nconst DEFAULT_MAX_CONCURRENT_REQUESTS = 8;\nconst DEFAULT_MAX_GPU_UPLOADS_PER_UPDATE = 4;\n\nexport class ChunkManager {\n  private readonly stores_: { source: ChunkSource; store: ChunkStore }[] = [];\n  private readonly queue_: ChunkQueue;\n\n  private readonly uploadTexture_?: (texture: Texture) => void;\n  private readonly disposeTexture_?: (texture: Texture) => void;\n  private readonly getGpuResidentBytes_: () => number;\n  private memoryLimitBytes_: number;\n  private readonly maxGpuUploadsPerUpdate_: number;\n\n  private readonly resident_ = new Set<Chunk>();\n\n  constructor(\n    uploadTexture?: (texture: Texture) => void,\n    disposeTexture?: (texture: Texture) => void,\n    getGpuResidentBytes: () => number = () => 0,\n    memoryLimitBytes: number = Infinity,\n    maxConcurrentRequests: number = DEFAULT_MAX_CONCURRENT_REQUESTS,\n    maxGpuUploadsPerUpdate: number = DEFAULT_MAX_GPU_UPLOADS_PER_UPDATE\n  ) {\n    this.uploadTexture_ = uploadTexture;\n    this.disposeTexture_ = disposeTexture;\n    this.getGpuResidentBytes_ = getGpuResidentBytes;\n    this.memoryLimitBytes_ = memoryLimitBytes;\n    this.maxGpuUploadsPerUpdate_ = Math.max(1, maxGpuUploadsPerUpdate);\n    this.queue_ = new ChunkQueue(maxConcurrentRequests);\n  }\n\n  public get memoryLimitBytes(): number {\n    return this.memoryLimitBytes_;\n  }\n\n  public set memoryLimitBytes(value: number) {\n    this.memoryLimitBytes_ = value;\n  }\n\n  public get queueStats(): QueueStats {\n    return {\n      pending: this.queue_.pendingCount,\n      running: this.queue_.runningCount,\n    };\n  }\n\n  public get memoryStats() {\n    return chunkMemoryStats();\n  }\n\n  public addView(\n    source: ChunkSource,\n    policy: ImageSourcePolicy,\n    axes?: SliceAxes\n  ): ChunkStoreView {\n    let store = this.stores_.find((s) => s.source === source)?.store;\n    if (!store) {\n      store = new ChunkStore(source.loader.getSourceDimensionMap());\n      this.stores_.push({ source, store });\n    }\n    return store.addView(policy, axes);\n  }\n\n  public update() {\n    const candidates: { source: ChunkSource; chunk: Chunk }[] = [];\n\n    for (const { source, store } of this.stores_) {\n      const updatedChunks = store.updateAndCollectChunkChanges();\n\n      for (const chunk of updatedChunks) {\n        if (chunk.priority === null) {\n          this.releaseChunk(chunk);\n        } else {\n          chunk.releasedAt = undefined;\n          if (chunk.state === \"queued\") {\n            candidates.push({ source, chunk });\n          }\n        }\n      }\n\n      this.uploadLoadedChunks(updatedChunks);\n    }\n\n    this.enqueueWithinBudget(candidates);\n    this.queue_.flush();\n\n    for (let i = this.stores_.length - 1; i >= 0; i--) {\n      if (this.stores_[i].store.canDispose()) {\n        this.stores_.splice(i, 1);\n      }\n    }\n  }\n\n  private releaseChunk(chunk: Chunk) {\n    this.queue_.cancel(chunk);\n\n    if (chunk.texture !== undefined) {\n      chunk.releasedAt ??= performance.now();\n      return;\n    }\n\n    clearChunkData(chunk);\n    if (chunk.state === \"loaded\") chunk.state = \"unloaded\";\n  }\n\n  private enqueueWithinBudget(\n    candidates: { source: ChunkSource; chunk: Chunk }[]\n  ) {\n    if (candidates.length === 0) return;\n\n    candidates.sort((a, b) => comparePriority(a.chunk, b.chunk));\n\n    let committedBytes = this.getGpuResidentBytes_();\n    let victims: Chunk[] | null = null;\n\n    for (const { source, chunk } of candidates) {\n      const bytes = this.chunkBytes(source, chunk);\n\n      // A chunk that can never fit must not trigger eviction. It would drain\n      // the entire cache and still be skipped.\n      if (bytes > this.memoryLimitBytes_) continue;\n\n      if (committedBytes + bytes > this.memoryLimitBytes_) {\n        victims ??= this.evictionCandidates();\n        committedBytes = this.evictWorseChunks(\n          committedBytes,\n          bytes,\n          chunk,\n          victims\n        );\n      }\n\n      if (committedBytes + bytes > this.memoryLimitBytes_) continue;\n\n      committedBytes += bytes;\n      this.queue_.enqueue(chunk, (signal) =>\n        source.loader.loadChunkData(chunk, signal)\n      );\n    }\n  }\n\n  private evictionCandidates(): Chunk[] {\n    const victims: Chunk[] = [];\n\n    for (const chunk of this.resident_) {\n      if (chunk.visible) continue;\n      victims.push(chunk);\n    }\n\n    return victims.sort((a, b) => {\n      const byRankDescending = -comparePriority(a, b);\n      if (byRankDescending !== 0) return byRankDescending;\n      return (a.releasedAt ?? 0) - (b.releasedAt ?? 0);\n    });\n  }\n\n  private evictWorseChunks(\n    committedBytes: number,\n    pendingBytes: number,\n    candidate: Chunk,\n    victims: Chunk[]\n  ): number {\n    while (\n      committedBytes + pendingBytes > this.memoryLimitBytes_ &&\n      victims.length > 0 &&\n      comparePriority(victims[0], candidate) > 0\n    ) {\n      const victim = victims.shift()!;\n      if (victim.texture === undefined) continue;\n\n      committedBytes -= textureStorageBytes(victim.texture);\n      this.disposeChunkTexture(victim);\n      victim.state = \"unloaded\";\n      victim.releasedAt = undefined;\n    }\n\n    return committedBytes;\n  }\n\n  private chunkBytes(source: ChunkSource, chunk: Chunk): number {\n    const bytesPerElement = source.loader.getBytesPerElement();\n    return chunk.shape.x * chunk.shape.y * chunk.shape.z * bytesPerElement;\n  }\n\n  private uploadLoadedChunks(chunks: Set<Chunk>) {\n    if (!this.uploadTexture_) return;\n\n    const pending: Chunk[] = [];\n\n    for (const chunk of chunks) {\n      if (chunk.state === \"loaded\" && chunk.texture === undefined) {\n        pending.push(chunk);\n      }\n    }\n\n    if (pending.length === 0) return;\n\n    pending.sort(comparePriority);\n\n    const limit = Math.min(pending.length, this.maxGpuUploadsPerUpdate_);\n\n    for (let i = 0; i < limit; i++) {\n      const chunk = pending[i];\n      const texture = Texture3D.createWithChunk(chunk);\n      this.uploadTexture_(texture);\n      chunk.texture = texture;\n      this.resident_.add(chunk);\n      clearChunkData(chunk);\n    }\n  }\n\n  private disposeChunkTexture(chunk: Chunk) {\n    if (!this.disposeTexture_) return;\n\n    if (chunk.texture === undefined) return;\n    this.disposeTexture_(chunk.texture);\n    chunk.texture = undefined;\n    this.resident_.delete(chunk);\n  }\n}\n","/**\n * @author mrdoob / http://mrdoob.com/\n *\n * Modified to add resizing support via the `scale` parameter.\n */\n\nvar Stats = function(scale = 1) {\n\n  var mode = 0;\n\n  var container = document.createElement('div');\n  container.style.cssText = 'position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000';\n  container.addEventListener('click', function(event) {\n\n    event.preventDefault();\n    showPanel(++mode % container.children.length);\n\n  }, false);\n\n  //\n\n  function addPanel(panel) {\n\n    container.appendChild(panel.dom);\n    return panel;\n\n  }\n\n  function showPanel(id) {\n\n    for (var i = 0; i < container.children.length; i++) {\n\n      container.children[i].style.display = i === id ? 'block' : 'none';\n\n    }\n\n    mode = id;\n\n  }\n\n  //\n\n  var beginTime = (performance || Date).now(), prevTime = beginTime, frames = 0;\n\n  var fpsPanel = addPanel(new Stats.Panel('FPS', '#0ff', '#002', scale));\n  var msPanel = addPanel(new Stats.Panel('MS', '#0f0', '#020', scale));\n\n  if (self.performance && self.performance.memory) {\n\n    var memPanel = addPanel(new Stats.Panel('MB', '#f08', '#201', scale));\n\n  }\n\n  showPanel(0);\n\n  return {\n\n    REVISION: 16,\n\n    dom: container,\n\n    addPanel: addPanel,\n    showPanel: showPanel,\n\n    begin: function() {\n\n      beginTime = (performance || Date).now();\n\n    },\n\n    end: function() {\n\n      frames++;\n\n      var time = (performance || Date).now();\n\n      msPanel.update(time - beginTime, 200);\n\n      if (time >= prevTime + 1000) {\n\n        fpsPanel.update((frames * 1000) / (time - prevTime), 100);\n\n        prevTime = time;\n        frames = 0;\n\n        if (memPanel) {\n\n          var memory = performance.memory;\n          memPanel.update(memory.usedJSHeapSize / 1048576, memory.jsHeapSizeLimit / 1048576);\n\n        }\n\n      }\n\n      return time;\n\n    },\n\n    update: function() {\n\n      beginTime = this.end();\n\n    },\n\n    // Backwards Compatibility\n\n    domElement: container,\n    setMode: showPanel\n\n  };\n\n};\n\nStats.Panel = function(name, fg, bg, scale) {\n\n  var min = Infinity, max = 0, round = Math.round;\n  var PR = round(window.devicePixelRatio || 1);\n\n  var WIDTH = round(80 * PR * scale);\n  var HEIGHT = round(48 * PR * scale);\n  var TEXT_X = round(3 * PR * scale);\n  var TEXT_Y = round(2 * PR * scale);\n  var GRAPH_X = round(3 * PR * scale);\n  var GRAPH_Y = round(15 * PR * scale);\n  var GRAPH_WIDTH = round(74 * PR * scale);\n  var GRAPH_HEIGHT = round(30 * PR * scale);\n\n  var canvas = document.createElement('canvas');\n  canvas.width = WIDTH;\n  canvas.height = HEIGHT;\n  canvas.style.cssText = `width:${round(scale * 80)}px;height:${round(scale * 48)}px`;\n\n  var context = canvas.getContext('2d');\n  context.font = 'bold ' + round(9 * PR * scale) + 'px Helvetica,Arial,sans-serif';\n  context.textBaseline = 'top';\n\n  context.fillStyle = bg;\n  context.fillRect(0, 0, WIDTH, HEIGHT);\n\n  context.fillStyle = fg;\n  context.fillText(name, TEXT_X, TEXT_Y);\n  context.fillRect(GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT);\n\n  context.fillStyle = bg;\n  context.globalAlpha = 0.9;\n  context.fillRect(GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT);\n\n  return {\n\n    dom: canvas,\n\n    update: function(value, maxValue) {\n\n      min = Math.min(min, value);\n      max = Math.max(max, value);\n\n      context.fillStyle = bg;\n      context.globalAlpha = 1;\n      context.fillRect(0, 0, WIDTH, GRAPH_Y);\n      context.fillStyle = fg;\n      context.fillText(round(value) + ' ' + name + ' (' + round(min) + '-' + round(max) + ')', TEXT_X, TEXT_Y);\n\n      context.drawImage(canvas, GRAPH_X + PR, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT, GRAPH_X, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT);\n\n      context.fillRect(GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, GRAPH_HEIGHT);\n\n      context.fillStyle = bg;\n      context.globalAlpha = 0.9;\n      context.fillRect(GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, round((1 - (value / maxValue)) * GRAPH_HEIGHT));\n\n    }\n\n  };\n\n};\n\nexport { Stats as default };\n","import Stats, { type Stats as StatsType } from \"./vendored/stats.js\";\n\nexport function createStats({ scale } = { scale: 1.5 }): StatsType {\n  const stats = new Stats(scale);\n  stats.showPanel(0 /* 0 = fps, 1 = ms, 2 = mb */);\n  document.body.appendChild(stats.dom);\n  return stats;\n}\n\n// Re-export types from the vendored module\nexport type { Stats, StatsPanel } from \"./vendored/stats.js\";\n","import { vec3 } from \"gl-matrix\";\nimport { Logger } from \"../utilities/logger\";\nimport { Ray } from \"../math/ray\";\n\nconst eventTypes = [\n  \"pointerdown\",\n  \"pointermove\",\n  \"pointerup\",\n  \"pointercancel\",\n  \"wheel\",\n] as const;\n\ntype EventType = (typeof eventTypes)[number];\nfunction isEventType(type: string): type is EventType {\n  return (eventTypes as readonly string[]).includes(type);\n}\n\nexport class EventContext {\n  private propagationStopped_: boolean = false;\n  public readonly type: EventType;\n  public readonly event?: Event;\n  public worldPos?: vec3;\n  public worldRay?: Ray;\n  public clipPos?: vec3;\n\n  constructor(type: EventType, event?: Event) {\n    this.type = type;\n    this.event = event;\n  }\n\n  get propagationStopped() {\n    return this.propagationStopped_;\n  }\n\n  stopPropagation() {\n    this.propagationStopped_ = true;\n  }\n}\n\ntype Listener = (event: EventContext) => void;\n\nexport class EventDispatcher {\n  private readonly listeners_: Listener[] = [];\n  private readonly element_: HTMLElement;\n  private isConnected_ = false;\n\n  constructor(element: HTMLElement) {\n    this.element_ = element;\n  }\n\n  public addEventListener(listener: Listener) {\n    this.listeners_.push(listener);\n  }\n\n  public removeEventListener(listener: Listener) {\n    const index = this.listeners_.indexOf(listener);\n    if (index === -1) {\n      throw new Error(`Listener to remove could not be found: ${listener}`);\n    }\n    this.listeners_.splice(index, 1);\n  }\n\n  public connect() {\n    if (this.isConnected_) {\n      Logger.warn(\n        \"EventDispatcher\",\n        \"Attempted to connect already connected event dispatcher\",\n        `element id: ${this.element_.id}`\n      );\n      return;\n    }\n    this.isConnected_ = true;\n    eventTypes.forEach((type) => {\n      this.element_.addEventListener(type, this.handleEvent, {\n        passive: false,\n      });\n    });\n  }\n\n  public disconnect() {\n    if (!this.isConnected_) {\n      Logger.debug(\n        \"EventDispatcher\",\n        \"Attempted to disconnect already disconnected event dispatcher\",\n        `element id: ${this.element_.id}`\n      );\n      return;\n    }\n    this.isConnected_ = false;\n    eventTypes.forEach((type) => {\n      this.element_.removeEventListener(type, this.handleEvent);\n    });\n  }\n\n  private readonly handleEvent = (e: Event) => {\n    if (!isEventType(e.type)) {\n      Logger.error(\"EventDispatcher\", `Unsupported event type ${e.type}`);\n      return;\n    }\n\n    const event = new EventContext(e.type, e);\n    for (const listener of this.listeners_) {\n      listener(event);\n      if (event.propagationStopped) break;\n    }\n  };\n}\n","import { vec3 } from \"gl-matrix\";\nimport { Plane } from \"./plane\";\n\n// Below this rate the ray is treated as parallel to the plane\nconst MIN_APPROACH_RATE = 1e-12;\n\nexport class Ray {\n  public readonly origin: vec3;\n  public readonly direction: vec3;\n\n  constructor(origin: vec3, direction: vec3) {\n    this.origin = vec3.clone(origin);\n    this.direction = vec3.normalize(vec3.create(), direction);\n  }\n\n  public intersectWithPlane(plane: Plane): vec3 | null {\n    const approachRate = vec3.dot(this.direction, plane.normal);\n    if (Math.abs(approachRate) < MIN_APPROACH_RATE) {\n      return null;\n    }\n\n    const t = -plane.signedDistanceToPoint(this.origin) / approachRate;\n    return vec3.scaleAndAdd(vec3.create(), this.origin, this.direction, t);\n  }\n}\n","import { Camera } from \"../objects/cameras/camera\";\nimport { Layer } from \"./layer\";\nimport { CameraControls } from \"../objects/cameras/controls\";\nimport { Box2 } from \"../math/box2\";\nimport { vec2, vec3 } from \"gl-matrix\";\nimport { generateID } from \"../utilities/id_generator\";\nimport { Logger } from \"../utilities/logger\";\nimport { EventContext, EventDispatcher } from \"./event_dispatcher\";\nimport { Ray } from \"../math/ray\";\nimport { IdetikContext } from \"../idetik\";\n\n/**\n * Initialization properties for constructing a viewport.\n */\nexport type ViewportProps = {\n  /** Unique id. Defaults to the element id or a generated id. */\n  id?: string;\n  /** Host element. Defaults to the Idetik canvas. */\n  element?: HTMLElement;\n  /** The camera the viewport renders with. */\n  camera: Camera;\n  /** Layers to render in order. */\n  layers?: Layer[];\n  /** Input controls driving the camera. */\n  cameraControls?: CameraControls;\n};\n\ninterface ResolvedViewportProps extends ViewportProps {\n  id: string;\n  element: HTMLElement;\n  context: IdetikContext;\n}\n\n/**\n * A region of the canvas that renders a stack of layers through a camera.\n *\n * Every viewport draws into the shared canvas through the area of its host\n * element. The element defaults to the canvas itself and must be unique\n * across viewports.\n *\n * Viewports also route input. Pointer and wheel events on the host element\n * are enriched with clip and world coordinates and a picking ray, sent to\n * each layer in order and passed to the camera controls unless a layer stops\n * propagation.\n *\n * ```ts\n * const idetik = new Idetik({\n *   canvas,\n *   viewports: [{ id: 'main', camera, layers: [imageLayer] }],\n * });\n *\n * const viewport = idetik.getViewport('main')!;\n * viewport.addLayer(labelLayer);\n * ```\n *\n * @group Core\n */\nexport class Viewport {\n  /** The viewport's unique identifier. */\n  public readonly id: string;\n  /** The host element defining the viewport's area. */\n  public readonly element: HTMLElement;\n  /** The camera the viewport renders with. */\n  public readonly camera: Camera;\n  /** The pointer and wheel event dispatcher for the host element. */\n  public readonly events: EventDispatcher;\n  /** Input controls driving the camera. */\n  public cameraControls?: CameraControls;\n\n  // Carried only to relay to `layer.onAttached` / `layer.onDetached`.\n  // To be removed when the chunk-infrastructure refactor folds chunk management\n  // into the source and the attach lifecycle goes away.\n  private readonly context_: IdetikContext;\n\n  private layers_: Layer[] = [];\n\n  /** @hidden */\n  constructor(props: ResolvedViewportProps) {\n    this.id = props.id;\n    this.element = props.element;\n    this.camera = props.camera;\n    this.context_ = props.context;\n    this.cameraControls = props.cameraControls;\n    this.updateAspectRatio();\n    this.events = new EventDispatcher(this.element);\n    this.events.addEventListener((event: EventContext) => {\n      if (\n        event.event instanceof PointerEvent ||\n        event.event instanceof WheelEvent\n      ) {\n        const { clientX, clientY } = event.event;\n        const client = vec2.fromValues(clientX, clientY);\n        event.clipPos = this.clientToClip(client, 0);\n        event.worldPos = this.camera.clipToWorld(event.clipPos);\n\n        const near = this.camera.clipToWorld(this.clientToClip(client, -1));\n        const far = this.camera.clipToWorld(this.clientToClip(client, 1));\n        event.worldRay = new Ray(near, vec3.subtract(vec3.create(), far, near));\n      }\n      for (const layer of this.layers_) {\n        layer.onEvent(event);\n        if (event.propagationStopped) return;\n      }\n      this.cameraControls?.onEvent(event);\n    });\n\n    for (const layer of props.layers ?? []) {\n      this.addLayer(layer);\n    }\n  }\n\n  /**\n   * The layers rendered by this viewport in order. Layers with `occludes`\n   * set draw before non-occluding layers regardless of stack order.\n   */\n  public get layers(): readonly Layer[] {\n    return this.layers_;\n  }\n\n  /**\n   * Adds a layer to the top of the stack.\n   *\n   * @param layer - The layer to add.\n   */\n  public addLayer(layer: Layer): void {\n    layer.onAttached(this.context_);\n    this.layers_.push(layer);\n  }\n\n  /**\n   * Removes a previously added layer.\n   *\n   * @param layer - The layer to remove.\n   */\n  public removeLayer(layer: Layer): void {\n    const index = this.layers_.indexOf(layer);\n    if (index === -1) {\n      throw new Error(`Layer to remove not found: ${layer}`);\n    }\n    this.layers_.splice(index, 1);\n    layer.onDetached(this.context_);\n  }\n\n  /** Removes all layers from the viewport. */\n  public removeAllLayers(): void {\n    for (const layer of this.layers_) {\n      layer.onDetached(this.context_);\n    }\n    this.layers_ = [];\n  }\n\n  /**\n   * Syncs the camera's aspect ratio to the host element's size. Called\n   * automatically when the host element resizes.\n   */\n  public updateSize(): void {\n    this.updateAspectRatio();\n  }\n\n  /**\n   * Computes the viewport's box relative to the given canvas in device pixels.\n   *\n   * @param canvas - The canvas to compute the box against.\n   * @returns The viewport's box in the canvas's coordinate space.\n   */\n  public getBoxRelativeTo(canvas: HTMLCanvasElement): Box2 {\n    const viewportRect = this.getBox().toRect();\n    const canvasRect = canvas.getBoundingClientRect();\n    const devicePixelRatio = window.devicePixelRatio || 1;\n\n    // convert canvas rect to device pixels\n    // viewport rect is already in device pixels\n    const canvasX = canvasRect.left * devicePixelRatio;\n    const canvasY = canvasRect.top * devicePixelRatio;\n    const canvasHeight = canvasRect.height * devicePixelRatio;\n\n    const relativeX = viewportRect.x - canvasX;\n    const relativeY = viewportRect.y - canvasY;\n\n    // Note: WebGL Y coordinate is flipped, so we adjust the Y position\n    const x = Math.floor(relativeX);\n    const y = Math.floor(canvasHeight - relativeY - viewportRect.height);\n    const width = Math.floor(viewportRect.width);\n    const height = Math.floor(viewportRect.height);\n\n    return new Box2(\n      vec2.fromValues(x, y),\n      vec2.fromValues(x + width, y + height)\n    );\n  }\n\n  /**\n   * The viewport's rectangle in the drawing buffer in device pixels.\n   */\n  public getBufferRect(): {\n    x: number;\n    y: number;\n    width: number;\n    height: number;\n  } {\n    return this.getBoxRelativeTo(this.element as HTMLCanvasElement).toRect();\n  }\n\n  /**\n   * Converts a client-space position to clip space. The `y` axis points\n   * down, matching the renderer's mirrored projection.\n   *\n   * @param position - The client-space position to convert.\n   * @param depth - The clip-space z value.\n   */\n  public clientToClip(position: vec2, depth: number = 0): vec3 {\n    const [x, y] = position;\n    const rect = this.element.getBoundingClientRect();\n    return vec3.fromValues(\n      (2 * (x - rect.x)) / rect.width - 1,\n      (2 * (y - rect.y)) / rect.height - 1,\n      depth\n    );\n  }\n\n  /**\n   * Converts a client-space position such as a pointer location to world\n   * space.\n   *\n   * @param position - The client-space position to convert.\n   * @param depth - The clip-space z value.\n   */\n  public clientToWorld(position: vec2, depth: number = 0): vec3 {\n    const clipPos = this.clientToClip(position, depth);\n    return this.camera.clipToWorld(clipPos);\n  }\n\n  private getBox(): Box2 {\n    const viewportRect = this.element.getBoundingClientRect();\n    const devicePixelRatio = window.devicePixelRatio || 1;\n\n    const x = viewportRect.left * devicePixelRatio;\n    const y = viewportRect.top * devicePixelRatio;\n    const width = viewportRect.width * devicePixelRatio;\n    const height = viewportRect.height * devicePixelRatio;\n\n    return new Box2(\n      vec2.fromValues(x, y),\n      vec2.fromValues(x + width, y + height)\n    );\n  }\n\n  private updateAspectRatio(): void {\n    const { width, height } = this.getBox().toRect();\n    if (width <= 0 || height <= 0) {\n      Logger.debug(\n        \"Viewport\",\n        `Skipping aspect ratio update for viewport ${this.id}: invalid dimensions ${width}x${height}`\n      );\n      return;\n    }\n    const aspectRatio = width / height;\n    this.camera.setAspectRatio(aspectRatio);\n  }\n}\n\nexport function validateNewViewport(\n  viewport: { id: string; element: HTMLElement },\n  existingViewports: { id: string; element: HTMLElement }[]\n): void {\n  for (const existing of existingViewports) {\n    if (existing.id === viewport.id) {\n      throw new Error(\n        `Duplicate viewport ID \"${viewport.id}\". Each viewport must have a unique ID.`\n      );\n    }\n    if (existing.element === viewport.element) {\n      const elementDescription =\n        viewport.element.tagName.toLowerCase() +\n        (viewport.element.id\n          ? `#${viewport.element.id}`\n          : \"[element has no id]\");\n      throw new Error(\n        \"Multiple viewports cannot share the same HTML element: \" +\n          `viewports \"${existing.id}\" and \"${viewport.id}\" both use ${elementDescription}`\n      );\n    }\n  }\n}\n\nfunction validateViewportProps(viewportProps: ResolvedViewportProps[]): void {\n  for (let i = 0; i < viewportProps.length; i++) {\n    validateNewViewport(viewportProps[i], viewportProps.slice(0, i));\n  }\n}\n\nexport function parseViewportProps(\n  props: ViewportProps[],\n  canvas: HTMLCanvasElement,\n  context: IdetikContext\n): Viewport[] {\n  const viewportProps: ResolvedViewportProps[] = props.map((config) => {\n    const element = config.element ?? canvas;\n    return {\n      ...config,\n      element,\n      id: config.id ?? element.id ?? generateID(\"viewport\"),\n      context,\n    };\n  });\n  validateViewportProps(viewportProps);\n  return viewportProps.map((props) => new Viewport(props));\n}\n","import { Logger } from \"./logger\";\n\n// Observes changes to the pixel size of HTML elements, including changes due to\n// window/device pixel ratio changes.\nexport class PixelSizeObserver {\n  private elements_: HTMLElement[];\n  private resizeObserver_?: ResizeObserver;\n  private mediaQuery_?: MediaQueryList;\n  private onMediaQueryChange_?: () => void;\n  private onChange_: () => void;\n\n  constructor(elements: ReadonlyArray<HTMLElement> = [], onChange: () => void) {\n    this.elements_ = [...elements];\n    this.onChange_ = onChange;\n  }\n\n  public connect() {\n    if (this.resizeObserver_) {\n      Logger.warn(\n        \"PixelSizeObserver\",\n        \"Attempted to connect already connected observer\"\n      );\n      return;\n    }\n\n    this.resizeObserver_ = new ResizeObserver(() => {\n      this.onChange_();\n    });\n\n    for (const element of this.elements_) {\n      this.resizeObserver_.observe(element);\n    }\n\n    this.startDevicePixelRatioObserver();\n  }\n\n  private startDevicePixelRatioObserver() {\n    // this media query needs to be updated after a change is detected, so we use a one-time\n    // event listener that re-registers itself with the new value\n    // https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio#monitoring_screen_resolution_or_zoom_level_changes\n    this.mediaQuery_ = matchMedia(\n      `(resolution: ${window.devicePixelRatio}dppx)`\n    );\n    this.onMediaQueryChange_ = () => {\n      this.onChange_();\n      this.startDevicePixelRatioObserver();\n    };\n    this.mediaQuery_.addEventListener(\"change\", this.onMediaQueryChange_, {\n      once: true,\n    });\n  }\n\n  public disconnect() {\n    if (!this.resizeObserver_) {\n      Logger.warn(\n        \"PixelSizeObserver\",\n        \"Attempted to disconnect already disconnected observer\"\n      );\n      return;\n    }\n    this.resizeObserver_?.disconnect();\n    if (this.mediaQuery_ && this.onMediaQueryChange_) {\n      this.mediaQuery_.removeEventListener(\"change\", this.onMediaQueryChange_);\n    }\n  }\n\n  public observe(element: HTMLElement) {\n    if (this.elements_.includes(element)) {\n      Logger.warn(\"PixelSizeObserver\", \"Element already being observed\");\n      return;\n    }\n    this.elements_.push(element);\n    if (this.resizeObserver_) {\n      this.resizeObserver_.observe(element);\n    }\n  }\n\n  public unobserve(element: HTMLElement) {\n    const index = this.elements_.indexOf(element);\n    if (index === -1) {\n      Logger.warn(\"PixelSizeObserver\", \"Element not being observed\");\n      return;\n    }\n    this.elements_.splice(index, 1);\n    if (this.resizeObserver_) {\n      this.resizeObserver_.unobserve(element);\n    }\n  }\n}\n","import { WebGLRenderer } from \"./renderers/webgl_renderer\";\nimport { Logger } from \"./utilities/logger\";\nimport { ChunkManager } from \"./data/chunk_manager\";\nimport { Renderer } from \"./core/renderer\";\nimport { createStats, type Stats } from \"./utilities/stats\";\nimport {\n  parseViewportProps,\n  validateNewViewport,\n  Viewport,\n  ViewportProps,\n} from \"./core/viewport\";\nimport { PixelSizeObserver } from \"./utilities/pixel_size_observer\";\n\nconst DEFAULT_MEMORY_LIMIT_MB = 2048;\n\n/**\n * An object updated once per frame after all viewports have rendered.\n *\n * Overlays drive HUD elements that live outside the canvas such as scale\n * bars, time indicators, or memory readouts.\n *\n * ```ts\n * const chunkReadout: Overlay = {\n *   update(idetik) {\n *     div.textContent = `${idetik.memoryStats.cpuChunkCount} chunks`;\n *   },\n * };\n *\n * idetik.addOverlay(chunkReadout);\n * ```\n */\nexport type Overlay = {\n  /** Called once per rendered frame. */\n  update: (idetik: Idetik) => void;\n};\n\n/**\n * Initialization properties for constructing an Idetik instance.\n */\nexport type IdetikProps = {\n  /** The canvas element to render into. */\n  canvas: HTMLCanvasElement;\n  /** Viewport definitions to create at startup. */\n  viewports?: ViewportProps[];\n  /** Overlays to run each frame. */\n  overlays?: Overlay[];\n  /** Shows an FPS meter. Defaults to `false`. */\n  showStats?: boolean;\n  /** Memory budget for chunk data. Defaults to `2048`. */\n  memoryLimitMB?: number;\n  /** Max in-flight chunk requests. Defaults to `8`. */\n  maxConcurrentRequests?: number;\n  /** Max GPU texture uploads per frame. Defaults to `4`. */\n  maxGpuUploadsPerUpdate?: number;\n};\n\nexport type IdetikContext = {\n  chunkManager: ChunkManager;\n};\n\n/**\n * A snapshot of the runtime's memory usage.\n */\nexport type MemoryStats = {\n  /** Bytes of chunk data held in CPU memory. */\n  cpuChunkBytes: number;\n  /** Number of chunks held in CPU memory. */\n  cpuChunkCount: number;\n  /** Bytes of texture data resident on the GPU. */\n  gpuTextureBytes: number;\n  /** Number of textures resident on the GPU. */\n  gpuTextureCount: number;\n  /** Used JS heap in bytes. */\n  jsHeapUsedBytes?: number;\n  /** JS heap size limit in bytes. */\n  jsHeapLimitBytes?: number;\n};\n\n/**\n * The entry point of an Idetik application.\n *\n * An Idetik instance owns the renderer and the chunk manager and drives the\n * render loop for the viewports it is given. Each viewport pairs a camera\n * and its controls with a stack of layers and draws into a region of the\n * shared canvas. Layers in all viewports stream chunks through the same\n * manager under a single memory budget.\n *\n * ```ts\n * const source = await OmeZarrImageSource.fromHttp({ url });\n *\n * const layer = new ImageLayer({\n *   source,\n *   sliceCoords: { t: 0, z: 0, c: [0] },\n * });\n *\n * const camera = new OrthographicCamera({\n *   left: 0,\n *   right: 1024,\n *   top: 0,\n *   bottom: 1024,\n * });\n *\n * const idetik = new Idetik({\n *   canvas: document.querySelector('canvas')!,\n *   viewports: [{\n *     camera,\n *     layers: [layer],\n *     cameraControls: new PanZoomControls(camera),\n *   }],\n * });\n *\n * idetik.start();\n * ```\n *\n * @see {@link Layer} for the data layers rendered within a viewport.\n *\n * @group Core\n */\nexport class Idetik {\n  /** The canvas element the renderer draws into. */\n  public readonly canvas: HTMLCanvasElement;\n  /** The registered overlays that update once per frame in order. */\n  public readonly overlays: Overlay[];\n\n  private readonly chunkManager_: ChunkManager;\n  private readonly context_: IdetikContext;\n  private readonly renderer_: Renderer;\n  private readonly viewports_: Viewport[];\n  private readonly stats_?: Stats;\n  private readonly sizeObserver_: PixelSizeObserver;\n\n  private lastAnimationId_?: number;\n  private lastTimestamp_: DOMHighResTimeStamp = 0;\n\n  /**\n   * Creates an Idetik runtime for the given canvas.\n   *\n   * @param params - Initialization properties.\n   */\n  constructor(params: IdetikProps) {\n    this.canvas = params.canvas;\n\n    this.renderer_ = new WebGLRenderer(this.canvas);\n    const memoryLimitMB = params.memoryLimitMB ?? DEFAULT_MEMORY_LIMIT_MB;\n    const memoryLimitBytes = memoryLimitMB * 1024 * 1024;\n    this.chunkManager_ = new ChunkManager(\n      (texture) => this.renderer_.uploadTexture(texture),\n      (texture) => this.renderer_.disposeTexture(texture),\n      () => this.renderer_.gpuTextureBytes,\n      memoryLimitBytes,\n      params.maxConcurrentRequests,\n      params.maxGpuUploadsPerUpdate\n    );\n    this.context_ = {\n      chunkManager: this.chunkManager_,\n    };\n\n    this.viewports_ = parseViewportProps(\n      params.viewports ?? [],\n      this.canvas,\n      this.context_\n    );\n\n    this.overlays = [...(params.overlays ?? [])];\n\n    if (params.showStats) this.stats_ = createStats();\n\n    const sizeDependents: HTMLElement[] = [this.canvas];\n    for (const viewport of this.viewports_) {\n      if (viewport.element !== this.canvas) {\n        sizeDependents.push(viewport.element);\n      }\n    }\n    this.sizeObserver_ = new PixelSizeObserver(sizeDependents, () => {\n      this.renderer_.updateSize();\n      this.renderer_.beginFrame();\n      for (const viewport of this.viewports_) {\n        viewport.updateSize();\n        this.renderer_.render(viewport);\n      }\n    });\n  }\n\n  /** Counts of queued and in-flight chunk requests. */\n  public get chunkQueueStats() {\n    return this.chunkManager_.queueStats;\n  }\n\n  /** A snapshot of current CPU/GPU/JS heap memory usage. */\n  public get memoryStats(): MemoryStats {\n    const perf = (\n      performance as Performance & {\n        memory?: { usedJSHeapSize: number; jsHeapSizeLimit: number };\n      }\n    ).memory;\n\n    return {\n      ...this.chunkManager_.memoryStats,\n      gpuTextureBytes: this.renderer_.gpuTextureBytes,\n      gpuTextureCount: this.renderer_.gpuTextureCount,\n      jsHeapUsedBytes: perf?.usedJSHeapSize,\n      jsHeapLimitBytes: perf?.jsHeapSizeLimit,\n    };\n  }\n\n  /** The number of objects drawn in the last rendered frame. */\n  public get renderedObjects() {\n    return this.renderer_.renderedObjects;\n  }\n\n  /** The width of the rendering surface in pixels. */\n  public get width() {\n    return this.renderer_.width;\n  }\n\n  /** The height of the rendering surface in pixels. */\n  public get height() {\n    return this.renderer_.height;\n  }\n\n  /** The viewports in render order. */\n  public get viewports(): readonly Viewport[] {\n    return this.viewports_;\n  }\n\n  /** Whether the render loop is running. */\n  public get running(): boolean {\n    return this.lastAnimationId_ !== undefined;\n  }\n\n  /**\n   * Finds a viewport by its id.\n   *\n   * @param id - The id given in the viewport's definition.\n   * @returns The matching viewport or `undefined` if none matches.\n   */\n  public getViewport(id: string): Viewport | undefined {\n    return this.viewports_.find((v) => v.id === id);\n  }\n\n  /**\n   * Adds a viewport at runtime.\n   *\n   * @param props - The viewport definition. The `element` defaults to the\n   *   canvas and must be unique across viewports.\n   * @returns The created viewport.\n   */\n  public addViewport(props: ViewportProps): Viewport {\n    const [viewport] = parseViewportProps([props], this.canvas, this.context_);\n\n    validateNewViewport(viewport, this.viewports_);\n    this.viewports_.push(viewport);\n\n    if (this.running) {\n      viewport.events.connect();\n      if (viewport.element !== this.canvas) {\n        this.sizeObserver_.observe(viewport.element);\n      }\n    }\n\n    Logger.info(\"Idetik\", `Added viewport \"${viewport.id}\"`);\n    return viewport;\n  }\n\n  /**\n   * Removes a previously added viewport.\n   *\n   * @param viewport - The viewport to remove.\n   * @returns `true` if the viewport was found and removed.\n   */\n  public removeViewport(viewport: Viewport): boolean {\n    const index = this.viewports_.indexOf(viewport);\n\n    if (index === -1) {\n      Logger.warn(\n        \"Idetik\",\n        `Viewport \"${viewport.id}\" not found, nothing to remove`\n      );\n      return false;\n    }\n\n    if (this.running) {\n      viewport.events.disconnect();\n      if (viewport.element !== this.canvas) {\n        this.sizeObserver_.unobserve(viewport.element);\n      }\n    }\n\n    this.viewports_.splice(index, 1);\n    Logger.info(\"Idetik\", `Removed viewport \"${viewport.id}\"`);\n    return true;\n  }\n\n  /**\n   * Registers an overlay that updates once per frame.\n   *\n   * @param overlay - The overlay to add.\n   */\n  public addOverlay(overlay: Overlay): void {\n    this.overlays.push(overlay);\n  }\n\n  /**\n   * Removes a previously added overlay.\n   *\n   * @param overlay - The overlay to remove.\n   * @returns `true` if the overlay was found and removed.\n   */\n  public removeOverlay(overlay: Overlay): boolean {\n    const index = this.overlays.indexOf(overlay);\n    if (index === -1) {\n      Logger.warn(\"Idetik\", \"Overlay not found, nothing to remove\");\n      return false;\n    }\n\n    this.overlays.splice(index, 1);\n    return true;\n  }\n\n  /**\n   * Sets the memory budget for chunk data at runtime.\n   *\n   * @param memoryLimitMB - The new budget in megabytes.\n   */\n  public setMemoryLimitMB(memoryLimitMB: number): void {\n    this.chunkManager_.memoryLimitBytes = memoryLimitMB * 1024 * 1024;\n  }\n\n  /**\n   * Starts the render loop and connects input handlers.\n   *\n   * @returns The instance, for chaining.\n   */\n  public start() {\n    Logger.info(\"Idetik\", \"Idetik runtime starting\");\n    if (!this.running) {\n      for (const viewport of this.viewports_) {\n        viewport.events.connect();\n      }\n      this.sizeObserver_.connect();\n\n      this.lastAnimationId_ = requestAnimationFrame((timestamp) => {\n        this.lastTimestamp_ = timestamp;\n        this.animate(timestamp);\n      });\n    } else {\n      Logger.warn(\"Idetik\", \"Idetik runtime already started\");\n    }\n    return this;\n  }\n\n  private animate(timestamp: DOMHighResTimeStamp) {\n    if (this.stats_) this.stats_.begin();\n\n    // cap dt to prevent large time-step jumps when resuming from background tabs\n    const dt = Math.min(timestamp - this.lastTimestamp_, 100) / 1000;\n\n    this.lastTimestamp_ = timestamp;\n\n    this.renderer_.beginFrame();\n    for (const viewport of this.viewports_) {\n      viewport.cameraControls?.onUpdate(dt);\n      this.renderer_.render(viewport);\n    }\n\n    this.chunkManager_.update();\n\n    for (const overlay of this.overlays) {\n      overlay.update(this);\n    }\n\n    if (this.stats_) this.stats_.end();\n    this.lastAnimationId_ = requestAnimationFrame((timestamp) =>\n      this.animate(timestamp)\n    );\n  }\n\n  /**\n   * Stops the render loop and disconnects input handlers.\n   */\n  public stop() {\n    Logger.info(\"Idetik\", \"Idetik runtime stopping\");\n    if (!this.running) {\n      Logger.warn(\"Idetik\", \"Idetik runtime not started\");\n    } else {\n      this.sizeObserver_.disconnect();\n      for (const viewport of this.viewports_) {\n        viewport.events.disconnect();\n      }\n      // safe non-null assertion: this.running is true, so lastAnimationId_ is defined\n      cancelAnimationFrame(this.lastAnimationId_!);\n      this.lastAnimationId_ = undefined;\n    }\n  }\n}\n","export function stripPrefix(path) {\n    // @ts-expect-error - TS can't infer this type correctly\n    return path.slice(1);\n}\n/** Maps cloud-storage URI protocols to their HTTPS hosts. */\nconst PROTOCOL_HOSTS = {\n    \"gs:\": \"storage.googleapis.com\",\n    \"gcs:\": \"storage.googleapis.com\",\n    \"s3:\": \"s3.amazonaws.com\",\n};\n/**\n * Translate cloud-storage URIs (`s3://`, `gs://`, `gcs://`) to HTTPS URLs.\n * HTTP(S) URLs are returned as-is.\n */\nexport function resolveUri(url) {\n    const href = typeof url === \"string\" ? url : url.href;\n    const colon = href.indexOf(\"://\");\n    if (colon === -1)\n        return href;\n    const protocol = href.slice(0, colon + 1);\n    const host = PROTOCOL_HOSTS[protocol];\n    if (host) {\n        return `https://${host}/${href.slice(colon + 3)}`;\n    }\n    return href;\n}\nexport function fetchRange(url, offset, length, opts = {}) {\n    if (offset !== undefined && length !== undefined) {\n        // merge request opts\n        opts = {\n            ...opts,\n            headers: {\n                ...opts.headers,\n                Range: `bytes=${offset}-${offset + length - 1}`,\n            },\n        };\n    }\n    return fetch(url, opts);\n}\nexport function mergeInit(storeOverrides, requestOverrides) {\n    // Request overrides take precedence over storeOverrides.\n    return {\n        ...storeOverrides,\n        ...requestOverrides,\n        headers: {\n            ...storeOverrides.headers,\n            ...requestOverrides.headers,\n        },\n    };\n}\n/**\n * Make an assertion.\n *\n * Usage\n * @example\n * ```ts\n * const value: boolean = Math.random() <= 0.5;\n * assert(value, \"value is greater than than 0.5!\");\n * value // true\n * ```\n *\n * @param expression - The expression to test.\n * @param msg - The optional message to display if the assertion fails.\n * @throws an {@link Error} if `expression` is not truthy.\n */\nexport function assert(expression, msg = \"\") {\n    if (!expression)\n        throw new Error(msg);\n}\n//# sourceMappingURL=util.js.map","import { mergeInit } from \"./util.js\";\nfunction resolve(root, path) {\n    const base = typeof root === \"string\" ? new URL(root) : root;\n    if (!base.pathname.endsWith(\"/\")) {\n        // ensure trailing slash so that base is resolved as _directory_\n        base.pathname += \"/\";\n    }\n    const resolved = new URL(path.slice(1), base);\n    // copy search params to new URL\n    resolved.search = base.search;\n    return resolved;\n}\nasync function handleResponse(response) {\n    if (response.status === 404) {\n        return undefined;\n    }\n    if (response.status === 200 || response.status === 206) {\n        return new Uint8Array(await response.arrayBuffer());\n    }\n    throw new Error(`Unexpected response status ${response.status} ${response.statusText}`);\n}\n/**\n * Readonly store backed by the\n * [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * Works anywhere `fetch` is available: browsers, Node.js 18+, Deno, and Bun.\n *\n * ## Response handling\n *\n * The store interprets HTTP responses as follows:\n *\n * | Status | Meaning |\n * | ------ | ------- |\n * | **404** | Missing key — returns `undefined` |\n * | **200 / 206** | Success — body is read as `Uint8Array` |\n * | **Any other** | Throws an error |\n *\n * If you need to remap status codes (e.g., S3 returns 403 for missing keys\n * on private buckets), provide a custom `fetch` implementation.\n *\n * @example Basic usage\n * ```ts\n * import { FetchStore } from \"@zarrita/storage\";\n *\n * const store = new FetchStore(\"http://localhost:8080/data.zarr\");\n * ```\n *\n * @example Custom fetch with presigned URLs\n * ```ts\n * import { FetchStore } from \"@zarrita/storage\";\n *\n * const store = new FetchStore(\"https://my-bucket.s3.amazonaws.com/data.zarr\", {\n *   async fetch(request) {\n *     const newUrl = await presign(request.url);\n *     // Preserves Range headers, abort signal, etc.\n *     return fetch(new Request(newUrl, request));\n *   },\n * });\n * ```\n */\nclass FetchStore {\n    url;\n    #fetch;\n    #overrides;\n    #useSuffixRequest;\n    constructor(url, options = {}) {\n        this.url = url;\n        this.#fetch = options.fetch ?? ((request) => fetch(request));\n        this.#overrides = options.overrides ?? {};\n        this.#useSuffixRequest = options.useSuffixRequest ?? false;\n    }\n    #buildRequest(url, init) {\n        return new Request(url, mergeInit(this.#overrides, init));\n    }\n    async get(key, options = {}) {\n        let href = resolve(this.url, key).href;\n        let request = this.#buildRequest(href, options);\n        let response = await this.#fetch(request);\n        return handleResponse(response);\n    }\n    async getRange(key, range, options = {}) {\n        let url = resolve(this.url, key);\n        let response;\n        if (\"suffixLength\" in range) {\n            response = await this.#fetchSuffix(url, range.suffixLength, options);\n        }\n        else {\n            let rangeInit = {\n                ...options,\n                headers: {\n                    ...options.headers,\n                    Range: `bytes=${range.offset}-${range.offset + range.length - 1}`,\n                },\n            };\n            let request = this.#buildRequest(url, rangeInit);\n            response = await this.#fetch(request);\n        }\n        return handleResponse(response);\n    }\n    async #fetchSuffix(url, suffixLength, options) {\n        if (this.#useSuffixRequest) {\n            let init = {\n                ...options,\n                headers: { ...options.headers, Range: `bytes=-${suffixLength}` },\n            };\n            return this.#fetch(this.#buildRequest(url, init));\n        }\n        let headRequest = this.#buildRequest(url, {\n            ...options,\n            method: \"HEAD\",\n        });\n        let response = await this.#fetch(headRequest);\n        if (!response.ok) {\n            return response;\n        }\n        let contentLength = response.headers.get(\"Content-Length\");\n        let length = Number(contentLength);\n        let offset = length - suffixLength;\n        let rangeInit = {\n            ...options,\n            headers: {\n                ...options.headers,\n                Range: `bytes=${offset}-${length - 1}`,\n            },\n        };\n        return this.#fetch(this.#buildRequest(url, rangeInit));\n    }\n}\nexport default FetchStore;\n//# sourceMappingURL=fetch.js.map","/**\n * @module\n *\n * Structured error types thrown by zarrita. Use {@link isZarritaError} to\n * detect and narrow errors at runtime — error classes are intentionally not\n * exported from the package root, so `instanceof` checks on the concrete\n * classes are not part of the public contract.\n *\n * @example\n * ```ts\n * import * as zarr from \"zarrita\";\n *\n * try {\n *   const arr = await zarr.open(store, { kind: \"array\" });\n *   await zarr.get(arr, [null, null]);\n * } catch (err) {\n *   if (zarr.isZarritaError(err, \"NotFoundError\")) {\n *     // err.path / err.found are available\n *   } else if (zarr.isZarritaError(err, \"UnknownCodecError\")) {\n *     // err.codec is the unregistered codec name\n *   } else if (zarr.isZarritaError(err)) {\n *     // any zarrita-thrown error\n *   } else {\n *     throw err;\n *   }\n * }\n * ```\n */\nclass ZarritaError extends Error {\n}\n/**\n * The store returned nothing for a required key, or `open({ kind })` was\n * asked for an array/group and the path holds the other kind.\n */\nexport class NotFoundError extends ZarritaError {\n    _tag = \"NotFoundError\";\n    name = \"NotFoundError\";\n    path;\n    found;\n    constructor(context, options = {}) {\n        super(`Not found: ${context}`, { cause: options.cause });\n        this.path = options.path;\n        this.found = options.found;\n    }\n}\n/**\n * Metadata exists but isn't something zarrita can read: malformed JSON,\n * unknown dtype or chunk-key encoding, or a codec rejected its config at\n * load time.\n */\nexport class InvalidMetadataError extends ZarritaError {\n    _tag = \"InvalidMetadataError\";\n    name = \"InvalidMetadataError\";\n    path;\n    constructor(message, options = {}) {\n        super(message, { cause: options.cause });\n        this.path = options.path;\n    }\n}\n/**\n * The metadata references a codec that isn't in the registry. Register the\n * codec via `zarr.registry` and retry to recover.\n */\nexport class UnknownCodecError extends ZarritaError {\n    _tag = \"UnknownCodecError\";\n    name = \"UnknownCodecError\";\n    codec;\n    constructor(codec) {\n        super(`Unknown codec: ${codec}`);\n        this.codec = codec;\n    }\n}\n/**\n * A codec threw while encoding or decoding chunk bytes. The originating\n * codec error is preserved on `cause`; per-chunk failures can be retried\n * or skipped without abandoning the surrounding read.\n */\nexport class CodecPipelineError extends ZarritaError {\n    _tag = \"CodecPipelineError\";\n    name = \"CodecPipelineError\";\n    direction;\n    codec;\n    chunkPath;\n    constructor(options) {\n        const parts = [\n            `Failed to ${options.direction} chunk`,\n            options.codec && `via codec \"${options.codec}\"`,\n            options.chunkPath && `at ${options.chunkPath}`,\n        ].filter(Boolean);\n        super(parts.join(\" \"), { cause: options.cause });\n        this.direction = options.direction;\n        this.codec = options.codec;\n        this.chunkPath = options.chunkPath;\n    }\n}\n/**\n * The selection passed to `get` or `set` is invalid: wrong rank,\n * out-of-bounds, zero step, unknown dimension name, or scalar-shape\n * mismatch.\n */\nexport class InvalidSelectionError extends ZarritaError {\n    _tag = \"InvalidSelectionError\";\n    name = \"InvalidSelectionError\";\n}\n/**\n * The requested operation hits a capability limit: write to a sharded\n * array, encode with a codec that only implements decode, or rely on a\n * runtime feature the host doesn't provide.\n */\nexport class UnsupportedError extends ZarritaError {\n    _tag = \"UnsupportedError\";\n    name = \"UnsupportedError\";\n    feature;\n    constructor(feature) {\n        super(`Unsupported: ${feature}`);\n        this.feature = feature;\n    }\n}\n/**\n * Runtime guard for zarrita-thrown errors. Without tags, narrows to any\n * zarrita error; with one or more tags, narrows to the matching subset\n * (including their typed fields).\n *\n * @example\n * ```ts\n * try { ... } catch (err) {\n *   if (zarr.isZarritaError(err, \"NotFoundError\")) {\n *     console.log(err.path);\n *   }\n * }\n * ```\n */\nexport function isZarritaError(err, ...tags) {\n    if (!(err instanceof ZarritaError))\n        return false;\n    return tags.length === 0 || tags.includes(err._tag);\n}\n//# sourceMappingURL=errors.js.map","import { UnsupportedError } from \"../errors.js\";\nexport function unimplementedEncode(codecName) {\n    return () => {\n        throw new UnsupportedError(`${codecName} encode`);\n    };\n}\n//# sourceMappingURL=_shared.js.map","import { InvalidMetadataError } from \"../errors.js\";\nimport { unimplementedEncode } from \"./_shared.js\";\n/**\n * A codec for bit-rounding.\n *\n * Reduces floating-point precision by truncating mantissa bits during encoding.\n * Decoding is a no-op as the process is lossy and precision cannot be restored.\n *\n * Note: {@link BitroundCodec.encode} is not yet implemented since Zarrita is\n * primarily used in read-only contexts (web browser). If you need encoding support,\n * please open an issue at {@link https://github.com/manzt/zarrita.js/issues}.\n *\n * @see {@link https://github.com/zarr-developers/numcodecs/blob/main/numcodecs/bitround.py}\n * for the original Python implementation.\n *\n * @remarks\n * Data types are not validated, and `float16` arrays are not supported (reflecting browser support).\n */\nexport class BitroundCodec {\n    kind = \"array_to_array\";\n    constructor(configuration, _meta) {\n        if (configuration.keepbits < 0) {\n            throw new InvalidMetadataError(\"keepbits must be zero or positive\");\n        }\n    }\n    static fromConfig(configuration, meta) {\n        return new BitroundCodec(configuration, meta);\n    }\n    encode = unimplementedEncode(\"bitround\");\n    /**\n     * Decode a chunk of data (no-op).\n     * @param arr - The chunk to decode\n     * @returns The decoded chunk\n     */\n    decode(arr) {\n        return arr; // No-op as bit-rounding is lossy\n    }\n}\n//# sourceMappingURL=bitround.js.map","/**\n * Custom array-like views (i.e., TypedArrays) for Zarr binary data buffers.\n *\n * @module\n */\nfunction isArrayBufferLike(x) {\n    return x instanceof ArrayBuffer || x instanceof SharedArrayBuffer;\n}\n/**\n * An array-like view of a fixed-length boolean buffer.\n *\n * Encoded as 1 byte per value.\n */\nexport class BoolArray {\n    #bytes;\n    constructor(x, byteOffset, length) {\n        if (typeof x === \"number\") {\n            this.#bytes = new Uint8Array(x);\n        }\n        else if (isArrayBufferLike(x)) {\n            this.#bytes = new Uint8Array(x, byteOffset, length);\n        }\n        else {\n            this.#bytes = new Uint8Array(Array.from(x, (v) => (v ? 1 : 0)));\n        }\n    }\n    get BYTES_PER_ELEMENT() {\n        return 1;\n    }\n    get byteOffset() {\n        return this.#bytes.byteOffset;\n    }\n    get byteLength() {\n        return this.#bytes.byteLength;\n    }\n    get buffer() {\n        return this.#bytes.buffer;\n    }\n    get length() {\n        return this.#bytes.length;\n    }\n    get(idx) {\n        let value = this.#bytes[idx];\n        return typeof value === \"number\" ? value !== 0 : value;\n    }\n    set(idx, value) {\n        this.#bytes[idx] = value ? 1 : 0;\n    }\n    fill(value) {\n        this.#bytes.fill(value ? 1 : 0);\n    }\n    *[Symbol.iterator]() {\n        for (let i = 0; i < this.length; i++) {\n            yield this.get(i);\n        }\n    }\n}\n/**\n * An array-like view of a fixed-length byte buffer.\n *\n * Encodes a raw byte sequences without enforced encoding.\n */\nexport class ByteStringArray {\n    _data;\n    chars;\n    #encoder;\n    constructor(chars, x, byteOffset, length) {\n        this.chars = chars;\n        this.#encoder = new TextEncoder();\n        if (typeof x === \"number\") {\n            this._data = new Uint8Array(x * chars);\n        }\n        else if (isArrayBufferLike(x)) {\n            if (length)\n                length = length * chars;\n            this._data = new Uint8Array(x, byteOffset, length);\n        }\n        else {\n            let values = Array.from(x);\n            this._data = new Uint8Array(values.length * chars);\n            for (let i = 0; i < values.length; i++) {\n                this.set(i, values[i]);\n            }\n        }\n    }\n    get BYTES_PER_ELEMENT() {\n        return this.chars;\n    }\n    get byteOffset() {\n        return this._data.byteOffset;\n    }\n    get byteLength() {\n        return this._data.byteLength;\n    }\n    get buffer() {\n        return this._data.buffer;\n    }\n    get length() {\n        return this.byteLength / this.BYTES_PER_ELEMENT;\n    }\n    get(idx) {\n        const view = new Uint8Array(this.buffer, this.byteOffset + this.chars * idx, this.chars);\n        // biome-ignore lint/suspicious/noControlCharactersInRegex: necessary for null byte removal\n        return new TextDecoder().decode(view).replace(/\\x00/g, \"\");\n    }\n    set(idx, value) {\n        const view = new Uint8Array(this.buffer, this.byteOffset + this.chars * idx, this.chars);\n        view.fill(0); // clear current\n        view.set(this.#encoder.encode(value));\n    }\n    fill(value) {\n        const encoded = this.#encoder.encode(value);\n        for (let i = 0; i < this.length; i++) {\n            this._data.set(encoded, i * this.chars);\n        }\n    }\n    *[Symbol.iterator]() {\n        for (let i = 0; i < this.length; i++) {\n            yield this.get(i);\n        }\n    }\n}\n/**\n * An array-like view of a fixed-length Unicode string buffer.\n *\n * Encoded as UTF-32 code points.\n */\nexport class UnicodeStringArray {\n    #data;\n    chars;\n    constructor(chars, x, byteOffset, length) {\n        this.chars = chars;\n        if (typeof x === \"number\") {\n            this.#data = new Int32Array(x * chars);\n        }\n        else if (isArrayBufferLike(x)) {\n            if (length)\n                length *= chars;\n            this.#data = new Int32Array(x, byteOffset, length);\n        }\n        else {\n            const values = x;\n            const d = new UnicodeStringArray(chars, 1);\n            this.#data = new Int32Array((function* () {\n                for (let str of values) {\n                    d.set(0, str);\n                    yield* d.#data;\n                }\n            })());\n        }\n    }\n    get BYTES_PER_ELEMENT() {\n        return this.#data.BYTES_PER_ELEMENT * this.chars;\n    }\n    get byteLength() {\n        return this.#data.byteLength;\n    }\n    get byteOffset() {\n        return this.#data.byteOffset;\n    }\n    get buffer() {\n        return this.#data.buffer;\n    }\n    get length() {\n        return this.#data.length / this.chars;\n    }\n    get(idx) {\n        const offset = this.chars * idx;\n        let result = \"\";\n        for (let i = 0; i < this.chars; i++) {\n            result += String.fromCodePoint(this.#data[offset + i]);\n        }\n        // biome-ignore lint/suspicious/noControlCharactersInRegex: necessary for null byte removal\n        return result.replace(/\\u0000/g, \"\");\n    }\n    set(idx, value) {\n        const offset = this.chars * idx;\n        const view = this.#data.subarray(offset, offset + this.chars);\n        view.fill(0); // clear current\n        for (let i = 0; i < this.chars; i++) {\n            view[i] = value.codePointAt(i) ?? 0;\n        }\n    }\n    fill(value) {\n        // encode once\n        this.set(0, value);\n        // copy the encoded values to all other elements\n        let encoded = this.#data.subarray(0, this.chars);\n        for (let i = 1; i < this.length; i++) {\n            this.#data.set(encoded, i * this.chars);\n        }\n    }\n    *[Symbol.iterator]() {\n        for (let i = 0; i < this.length; i++) {\n            yield this.get(i);\n        }\n    }\n}\n//# sourceMappingURL=typedarray.js.map","import { InvalidMetadataError } from \"./errors.js\";\nimport { BoolArray, ByteStringArray, UnicodeStringArray, } from \"./typedarray.js\";\nexport function jsonEncodeObject(o) {\n    const str = JSON.stringify(o, (_key, value) => {\n        // JSON.stringify converts NaN/Infinity/-Infinity to null.\n        // Zarr v3 spec requires these as string representations.\n        if (typeof value === \"number\") {\n            if (Number.isNaN(value))\n                return \"NaN\";\n            if (value === Infinity)\n                return \"Infinity\";\n            if (value === -Infinity)\n                return \"-Infinity\";\n        }\n        return value;\n    }, 2);\n    return new TextEncoder().encode(str);\n}\nexport function assertSharedArrayBufferAvailable() {\n    if (typeof SharedArrayBuffer === \"undefined\") {\n        throw new Error(\"SharedArrayBuffer is not available. \" +\n            \"In browsers, this requires Cross-Origin-Opener-Policy and \" +\n            \"Cross-Origin-Embedder-Policy headers to be set.\");\n    }\n}\nexport function createBuffer(byteLength, useShared) {\n    if (useShared) {\n        return new SharedArrayBuffer(byteLength);\n    }\n    return new ArrayBuffer(byteLength);\n}\nexport function jsonDecodeObject(bytes) {\n    const str = new TextDecoder().decode(bytes);\n    try {\n        return JSON.parse(str);\n    }\n    catch (cause) {\n        throw new InvalidMetadataError(\"Failed to decode JSON\", { cause });\n    }\n}\nexport function byteswapInplace(view, bytesPerElement) {\n    const numFlips = bytesPerElement / 2;\n    const endByteIndex = bytesPerElement - 1;\n    let t = 0;\n    for (let i = 0; i < view.length; i += bytesPerElement) {\n        for (let j = 0; j < numFlips; j += 1) {\n            t = view[i + j];\n            view[i + j] = view[i + endByteIndex - j];\n            view[i + endByteIndex - j] = t;\n        }\n    }\n}\nexport function getCtr(dataType) {\n    if (dataType === \"v2:object\") {\n        return globalThis.Array;\n    }\n    let match = dataType.match(/v2:([US])(\\d+)/);\n    if (match) {\n        let [, kind, chars] = match;\n        // @ts-expect-error\n        return (kind === \"U\" ? UnicodeStringArray : ByteStringArray).bind(null, Number(chars));\n    }\n    // Handle v3 variable-length string type\n    if (dataType === \"string\") {\n        return globalThis.Array;\n    }\n    // @ts-expect-error - We've checked that the key exists\n    let ctr = {\n        int8: Int8Array,\n        int16: Int16Array,\n        int32: Int32Array,\n        int64: globalThis.BigInt64Array,\n        uint8: Uint8Array,\n        uint16: Uint16Array,\n        uint32: Uint32Array,\n        uint64: globalThis.BigUint64Array,\n        float16: globalThis.Float16Array,\n        float32: Float32Array,\n        float64: Float64Array,\n        bool: BoolArray,\n    }[dataType];\n    if (!ctr) {\n        throw new InvalidMetadataError(`Unknown or unsupported dataType: ${dataType}`);\n    }\n    return ctr;\n}\n/** Compute strides for 'C' or 'F' ordered array from shape */\nexport function getStrides(shape, order) {\n    const rank = shape.length;\n    if (typeof order === \"string\") {\n        order =\n            order === \"C\"\n                ? Array.from({ length: rank }, (_, i) => i) // Row-major (identity order)\n                : Array.from({ length: rank }, (_, i) => rank - 1 - i); // Column-major (reverse order)\n    }\n    assert(rank === order.length, \"Order length must match the number of dimensions.\");\n    let step = 1;\n    let stride = new Array(rank);\n    for (let i = order.length - 1; i >= 0; i--) {\n        stride[order[i]] = step;\n        step *= shape[order[i]];\n    }\n    return stride;\n}\n// https://zarr-specs.readthedocs.io/en/latest/v3/core/v3.0.html#chunk-key-encoding\nexport function createChunkKeyEncoder({ name, configuration, }) {\n    if (name === \"default\") {\n        const separator = configuration?.separator ?? \"/\";\n        return (chunkCoords) => [\"c\", ...chunkCoords].join(separator);\n    }\n    if (name === \"v2\") {\n        const separator = configuration?.separator ?? \".\";\n        return (chunkCoords) => chunkCoords.join(separator) || \"0\";\n    }\n    throw new InvalidMetadataError(`Unknown chunk key encoding: ${name}`);\n}\nfunction coerceDtype(dtype) {\n    if (dtype === \"|O\") {\n        return { dataType: \"v2:object\" };\n    }\n    let match = dtype.match(/^([<|>])(.*)$/);\n    if (!match) {\n        throw new InvalidMetadataError(`Invalid dtype: ${dtype}`);\n    }\n    let [, endian, rest] = match;\n    let dataType = {\n        b1: \"bool\",\n        i1: \"int8\",\n        u1: \"uint8\",\n        i2: \"int16\",\n        u2: \"uint16\",\n        i4: \"int32\",\n        u4: \"uint32\",\n        i8: \"int64\",\n        u8: \"uint64\",\n        f2: \"float16\",\n        f4: \"float32\",\n        f8: \"float64\",\n    }[rest] ??\n        (rest.startsWith(\"S\") || rest.startsWith(\"U\") ? `v2:${rest}` : undefined);\n    if (!dataType) {\n        throw new InvalidMetadataError(`Unsupported or unknown dtype: ${dtype}`);\n    }\n    if (endian === \"|\") {\n        return { dataType };\n    }\n    return { dataType, endian: endian === \"<\" ? \"little\" : \"big\" };\n}\nfunction isFixedScaleOffsetConfig(filter) {\n    return ((filter.id === \"fixedscaleoffset\" ||\n        filter.id === \"numcodecs.fixedscaleoffset\") &&\n        typeof filter.scale === \"number\" &&\n        typeof filter.offset === \"number\" &&\n        (filter.astype === undefined || typeof filter.astype === \"string\") &&\n        (filter.dtype === undefined || typeof filter.dtype === \"string\"));\n}\nexport function v2ToV3ArrayMetadata(meta, attributes = {}) {\n    let codecs = [];\n    let dtype = coerceDtype(meta.dtype);\n    if (meta.order === \"F\") {\n        codecs.push({ name: \"transpose\", configuration: { order: \"F\" } });\n    }\n    for (let filter of meta.filters ?? []) {\n        // Translate the numcodecs `fixedscaleoffset` filter into the native v3\n        // `scale_offset` + `cast_value` pair from #395. The v2 filter is not\n        // part of the zarr v3 spec (see discussion in\n        // https://github.com/manzt/zarrita.js/pull/312), but together these\n        // two codecs implement the same decode semantics:\n        //   (enc / scale + offset).astype(dtype)\n        // where `dtype` is the logical (decoded) data type the user sees and\n        // `astype` is the quantized on-disk data type.\n        if (filter.id === \"fixedscaleoffset\" ||\n            filter.id === \"numcodecs.fixedscaleoffset\") {\n            if (!isFixedScaleOffsetConfig(filter)) {\n                throw new InvalidMetadataError(`Invalid fixedscaleoffset filter: ${JSON.stringify(filter)}`);\n            }\n            codecs.push({\n                name: \"scale_offset\",\n                configuration: {\n                    scale: filter.scale,\n                    offset: filter.offset,\n                },\n            });\n            // `astype` defaults to `dtype` in numcodecs, meaning an identity\n            // cast. Skip `cast_value` entirely in that case — and also when\n            // `astype` equals the logical v2 dtype, since there's nothing to\n            // convert.\n            let astype = filter.astype ?? filter.dtype;\n            if (astype !== undefined && astype !== meta.dtype) {\n                let castTarget = coerceDtype(astype).dataType;\n                if (!isDataType(castTarget, \"number\") &&\n                    !isDataType(castTarget, \"bigint\")) {\n                    throw new InvalidMetadataError(`fixedscaleoffset astype must be a numeric data type, got ${astype}`);\n                }\n                codecs.push({\n                    name: \"cast_value\",\n                    configuration: {\n                        data_type: castTarget,\n                        // `np.around` uses banker's rounding (round-half-to-even).\n                        rounding: \"nearest-even\",\n                        // Matches de-facto numpy integer-overflow behavior.\n                        out_of_range: \"wrap\",\n                    },\n                });\n            }\n            continue;\n        }\n        let { id, ...configuration } = filter;\n        codecs.push({ name: `numcodecs.${id}`, configuration });\n    }\n    // The `bytes` codec must come *after* any array-to-array codecs that\n    // change the data type (e.g. `cast_value`) so that the pipeline's\n    // currentMeta has been threaded through `getEncodedMeta` by the time\n    // `BytesCodec.fromConfig` sees it. Relative order does not matter for\n    // type-preserving codecs like `delta` or `transpose`.\n    if (\"endian\" in dtype && dtype.endian === \"big\") {\n        codecs.push({ name: \"bytes\", configuration: { endian: \"big\" } });\n    }\n    if (meta.compressor) {\n        let { id, ...configuration } = meta.compressor;\n        codecs.push({ name: `numcodecs.${id}`, configuration });\n    }\n    let dimensionNames;\n    if (globalThis.Array.isArray(attributes._ARRAY_DIMENSIONS)) {\n        dimensionNames = attributes._ARRAY_DIMENSIONS;\n    }\n    return {\n        zarr_format: 3,\n        node_type: \"array\",\n        shape: meta.shape,\n        data_type: dtype.dataType,\n        chunk_grid: {\n            name: \"regular\",\n            configuration: {\n                chunk_shape: meta.chunks,\n            },\n        },\n        chunk_key_encoding: {\n            name: \"v2\",\n            configuration: {\n                separator: meta.dimension_separator ?? \".\",\n            },\n        },\n        codecs,\n        fill_value: meta.fill_value,\n        dimension_names: dimensionNames,\n        attributes,\n    };\n}\nexport function v2ToV3GroupMetadata(_meta, attributes = {}) {\n    return {\n        zarr_format: 3,\n        node_type: \"group\",\n        attributes,\n    };\n}\nexport function isDataType(dtype, query) {\n    if (query !== \"number\" &&\n        query !== \"bigint\" &&\n        query !== \"boolean\" &&\n        query !== \"object\" &&\n        query !== \"string\") {\n        return dtype === query;\n    }\n    let isBoolean = dtype === \"bool\";\n    if (query === \"boolean\")\n        return isBoolean;\n    let isString = dtype.startsWith(\"v2:U\") || dtype.startsWith(\"v2:S\") || dtype === \"string\";\n    if (query === \"string\")\n        return isString;\n    let isBigint = dtype === \"int64\" || dtype === \"uint64\";\n    if (query === \"bigint\")\n        return isBigint;\n    let isObject = dtype === \"v2:object\";\n    if (query === \"object\")\n        return isObject;\n    return !isString && !isBigint && !isBoolean && !isObject;\n}\nexport function isShardingCodec(codec) {\n    return codec?.name === \"sharding_indexed\";\n}\nexport function ensureCorrectScalar(metadata) {\n    if ((metadata.data_type === \"uint64\" || metadata.data_type === \"int64\") &&\n        metadata.fill_value != null) {\n        // @ts-expect-error - We've narrowed the type of fill_value correctly\n        return BigInt(metadata.fill_value);\n    }\n    // Zarr v3 represents IEEE 754 special float values as strings in JSON.\n    // Only applies to floating-point types.\n    let isFloat = metadata.data_type === \"float16\" ||\n        metadata.data_type === \"float32\" ||\n        metadata.data_type === \"float64\";\n    if (typeof metadata.fill_value === \"string\" && isFloat) {\n        let mapping = {\n            NaN: NaN,\n            Infinity: Infinity,\n            \"-Infinity\": -Infinity,\n        };\n        if (metadata.fill_value in mapping) {\n            return mapping[metadata.fill_value];\n        }\n    }\n    return metadata.fill_value;\n}\n/**\n * Ensures an error matches expected type(s), otherwise rethrows.\n *\n * Unmatched errors bubble up, like Python's `except`. Narrows error types for\n * type-safe property access.\n *\n * @see {@link https://gist.github.com/manzt/3702f19abb714e21c22ce48851c75abf}\n *\n * @example\n * ```ts\n * class DatabaseError extends Error { }\n * class NetworkError extends Error { }\n *\n * try {\n *   await db.query();\n * } catch (err) {\n *   rethrowUnless(err, DatabaseError, NetworkError);\n *   err // DatabaseError | NetworkError\n * }\n * ```\n *\n * @param error - The error to check\n * @param errors - Expected error type(s)\n * @throws The original error if it doesn't match expected type(s)\n */\n/**\n * Merge a first-class `signal` with the deprecated `opts.signal` shim.\n * If both are set, the signals are combined via `AbortSignal.any` so that\n * aborting either cancels the request.\n */\nexport function resolveSignal(opts) {\n    let a = opts.signal;\n    let b = opts.opts?.signal;\n    if (a && b)\n        return AbortSignal.any([a, b]);\n    return a ?? b;\n}\nexport function rethrowUnless(error, ...errors) {\n    if (!errors.some((ErrorClass) => error instanceof ErrorClass)) {\n        throw error;\n    }\n}\n/**\n * Make an assertion.\n *\n * Usage\n * @example\n * ```ts\n * const value: boolean = Math.random() <= 0.5;\n * assert(value, \"value is greater than than 0.5!\");\n * value // true\n * ```\n *\n * @param expression - The expression to test.\n * @param msg - The optional message to display if the assertion fails.\n * @throws an {@link Error} if `expression` is not truthy.\n */\nexport function assert(expression, msg = \"\") {\n    if (!expression) {\n        throw new Error(msg);\n    }\n}\n/**\n * Decompress data using the given format via the Web Streams API.\n * Views backed by a SharedArrayBuffer are copied into a regular ArrayBuffer\n * since the Response constructor does not accept shared memory.\n */\nexport async function decompress(data, { format, signal }) {\n    let response;\n    if (data instanceof ArrayBuffer) {\n        response = new Response(data);\n    }\n    else {\n        let bytes = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n        response = new Response(bytes.slice().buffer);\n    }\n    assert(response.body, \"Response does not contain body.\");\n    try {\n        const decompressedResponse = new Response(response.body.pipeThrough(new DecompressionStream(format), { signal }));\n        const buffer = await decompressedResponse.arrayBuffer();\n        return buffer;\n    }\n    catch {\n        signal?.throwIfAborted();\n        throw new Error(`Failed to decode ${format}`);\n    }\n}\n//# sourceMappingURL=util.js.map","import { byteswapInplace, getCtr, getStrides } from \"../util.js\";\nconst LITTLE_ENDIAN_OS = systemIsLittleEndian();\nfunction systemIsLittleEndian() {\n    const a = new Uint32Array([0x12345678]);\n    const b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n    return !(b[0] === 0x12);\n}\nfunction bytesPerElement(TypedArray) {\n    if (\"BYTES_PER_ELEMENT\" in TypedArray) {\n        return TypedArray.BYTES_PER_ELEMENT;\n    }\n    // Unicode string array is backed by a Int32Array.\n    return 4;\n}\nexport class BytesCodec {\n    kind = \"array_to_bytes\";\n    #stride;\n    #TypedArray;\n    #BYTES_PER_ELEMENT;\n    #shape;\n    #endian;\n    constructor(configuration, meta) {\n        this.#endian = configuration?.endian;\n        this.#TypedArray = getCtr(meta.dataType);\n        this.#shape = meta.shape;\n        this.#stride = getStrides(meta.shape, \"C\");\n        // TODO: fix me.\n        // hack to get bytes per element since it's dynamic for string types.\n        const sample = new this.#TypedArray(0);\n        this.#BYTES_PER_ELEMENT = sample.BYTES_PER_ELEMENT;\n    }\n    static fromConfig(configuration, meta) {\n        return new BytesCodec(configuration, meta);\n    }\n    encode(arr) {\n        let bytes = new Uint8Array(arr.data.buffer);\n        if (LITTLE_ENDIAN_OS && this.#endian === \"big\") {\n            byteswapInplace(bytes, bytesPerElement(this.#TypedArray));\n        }\n        return bytes;\n    }\n    computeEncodedSize(decodedSize) {\n        return decodedSize;\n    }\n    decode(bytes) {\n        if (LITTLE_ENDIAN_OS && this.#endian === \"big\") {\n            byteswapInplace(bytes, bytesPerElement(this.#TypedArray));\n        }\n        return {\n            data: new this.#TypedArray(bytes.buffer, bytes.byteOffset, bytes.byteLength / this.#BYTES_PER_ELEMENT),\n            shape: this.#shape,\n            stride: this.#stride,\n        };\n    }\n}\n//# sourceMappingURL=bytes.js.map","/*\nUtilities for parsing Zarr V3 JSON-encoded scalars.\n\nThe Zarr V3 spec encodes numeric scalars in JSON as either:\n  - a plain JSON number\n  - a special float string: \"NaN\", \"Infinity\", \"-Infinity\"\n  - a hex-encoded float string: \"0x...\" (raw IEEE 754 bytes as an unsigned integer)\n\nSee https://github.com/zarr-developers/zarr-specs/blob/main/docs/v3/data-types/index.rst#permitted-fill-values\n*/\nimport { InvalidMetadataError, UnsupportedError } from \"../errors.js\";\nconst SPECIAL_FLOATS = {\n    NaN: NaN,\n    Infinity: Infinity,\n    \"-Infinity\": -Infinity,\n};\nconst FLOAT_BYTES = {\n    float16: 2,\n    float32: 4,\n    float64: 8,\n};\nexport function isFloatType(dataType) {\n    return dataType in FLOAT_BYTES;\n}\nexport function isBigintType(dataType) {\n    return dataType === \"int64\" || dataType === \"uint64\";\n}\n/*\nReinterpret a hex-encoded integer as a float of the given byte width.\nThis is necessary because the Zarr V3 spec allows floats to declare their\nfill value as a hex string representing the raw bytes of the float.\n*/\nfunction hexToFloat(hex, byteWidth) {\n    const int = BigInt(hex);\n    const buf = new ArrayBuffer(byteWidth);\n    const view = new DataView(buf);\n    if (byteWidth === 2) {\n        if (typeof view.getFloat16 !== \"function\") {\n            throw new UnsupportedError(\"float16 hex-encoded scalar decoding (requires DataView.prototype.getFloat16)\");\n        }\n        view.setUint16(0, Number(int));\n        return view.getFloat16(0);\n    }\n    if (byteWidth === 4) {\n        view.setUint32(0, Number(int));\n        return view.getFloat32(0);\n    }\n    view.setBigUint64(0, int);\n    return view.getFloat64(0);\n}\n/**\n * Parse a JSON-encoded scalar value into its native JS representation\n * for the given Zarr data type.\n *\n * - Integer types: value must be a JSON number that is an integer.\n * - Bigint types (int64/uint64): value must be a JSON number that is an integer, converted to BigInt.\n * - Float types: value may be a number, a special float string, or a hex-encoded float.\n */\nexport function parseJsonScalar(dataType, value) {\n    if (isBigintType(dataType)) {\n        if (typeof value !== \"number\" || !Number.isInteger(value)) {\n            throw new InvalidMetadataError(`Expected an integer value for data type \"${dataType}\", got ${JSON.stringify(value)}`);\n        }\n        return BigInt(value);\n    }\n    if (typeof value === \"number\") {\n        if (!isFloatType(dataType) && !Number.isInteger(value)) {\n            throw new InvalidMetadataError(`Expected an integer value for data type \"${dataType}\", got ${value}`);\n        }\n        return value;\n    }\n    // value is SpecialFloat | HexString — only valid for float types\n    if (!isFloatType(dataType)) {\n        throw new InvalidMetadataError(`String-encoded scalar \"${value}\" is not valid for non-float data type \"${dataType}\"`);\n    }\n    if (value in SPECIAL_FLOATS) {\n        return SPECIAL_FLOATS[value];\n    }\n    return hexToFloat(value, FLOAT_BYTES[dataType]);\n}\n//# sourceMappingURL=json-scalar.js.map","/*\nThe cast_value codec converts an array from one data type to another by applying a defined\ncasting procedure to each element.\n\nThe specification for this codec can be found at https://github.com/zarr-developers/zarr-extensions/tree/main/codecs/cast_value\n*/\nimport { InvalidMetadataError } from \"../errors.js\";\nimport { getCtr } from \"../util.js\";\nimport { unimplementedEncode } from \"./_shared.js\";\nimport { isBigintType, isFloatType, parseJsonScalar, } from \"./json-scalar.js\";\nconst SUPPORTED = new Set([\n    \"int8\",\n    \"uint8\",\n    \"int16\",\n    \"uint16\",\n    \"int32\",\n    \"uint32\",\n    \"int64\",\n    \"uint64\",\n    \"float16\",\n    \"float32\",\n    \"float64\",\n]);\n// Integer range bounds, keyed by data type string.\nconst INT_BOUNDS = {\n    int8: [-(2 ** 7), 2 ** 7 - 1],\n    uint8: [0, 2 ** 8 - 1],\n    int16: [-(2 ** 15), 2 ** 15 - 1],\n    uint16: [0, 2 ** 16 - 1],\n    int32: [-(2 ** 31), 2 ** 31 - 1],\n    uint32: [0, 2 ** 32 - 1],\n};\nconst BIGINT_BOUNDS = {\n    int64: [-(2n ** 63n), 2n ** 63n - 1n],\n    uint64: [0n, 2n ** 64n - 1n],\n};\n/** Parse scalar_map entries from JSON into native JS values. */\nfunction parseScalarMapEntries(entries, srcType, tgtType) {\n    return entries.map(([src, tgt]) => ({\n        src: parseJsonScalar(srcType, src),\n        tgt: parseJsonScalar(tgtType, tgt),\n    }));\n}\n/**\n * Look up a value in the scalar map. Returns the mapped target value if found,\n * or undefined if no match. NaN is matched specially (NaN !== NaN).\n */\nfunction scalarMapLookup(value, entries) {\n    for (const entry of entries) {\n        if (typeof entry.src === \"number\" && Number.isNaN(entry.src)) {\n            if (typeof value === \"number\" && Number.isNaN(value)) {\n                return entry.tgt;\n            }\n        }\n        else if (value === entry.src) {\n            return entry.tgt;\n        }\n    }\n    return undefined;\n}\n// ---------------------------------------------------------------------------\n// Rounding — resolved once at construction, not per element.\n// ---------------------------------------------------------------------------\nfunction roundNearestEven(value) {\n    if (!Number.isFinite(value))\n        return value;\n    // Math.round breaks ties towards +Infinity; we need ties to even.\n    if (Math.abs(value - Math.trunc(value)) === 0.5) {\n        const floor = Math.floor(value);\n        const ceil = Math.ceil(value);\n        return floor % 2 === 0 ? floor : ceil;\n    }\n    return Math.round(value);\n}\nfunction nearestAway(value) {\n    return Math.sign(value) * Math.floor(Math.abs(value) + 0.5);\n}\n/** Resolve a RoundingMode string to a concrete function (once, at construction). */\nfunction getRoundingFn(mode) {\n    switch (mode) {\n        case \"nearest-even\":\n            return roundNearestEven;\n        case \"towards-zero\":\n            return Math.trunc;\n        case \"towards-positive\":\n            return Math.ceil;\n        case \"towards-negative\":\n            return Math.floor;\n        case \"nearest-away\":\n            return nearestAway;\n    }\n}\n// ---------------------------------------------------------------------------\n// Out-of-range handling — resolved once at construction, not per element.\n// ---------------------------------------------------------------------------\nfunction makeIntRangeCheck(lo, hi, outOfRange) {\n    const range = hi - lo + 1;\n    switch (outOfRange) {\n        case \"clamp\":\n            return (v) => (v < lo ? lo : v > hi ? hi : v);\n        case \"wrap\":\n            return (v) => v >= lo && v <= hi ? v : ((((v - lo) % range) + range) % range) + lo;\n        default:\n            return (v) => {\n                if (v >= lo && v <= hi)\n                    return v;\n                throw new Error(`Value ${v} out of range [${lo}, ${hi}]. ` +\n                    \"Set out_of_range='clamp' or out_of_range='wrap' to handle this.\");\n            };\n    }\n}\nfunction makeBigintRangeCheck(lo, hi, outOfRange) {\n    const range = hi - lo + 1n;\n    switch (outOfRange) {\n        case \"clamp\":\n            return (v) => (v < lo ? lo : v > hi ? hi : v);\n        case \"wrap\":\n            return (v) => v >= lo && v <= hi ? v : ((((v - lo) % range) + range) % range) + lo;\n        default:\n            return (v) => {\n                if (v >= lo && v <= hi)\n                    return v;\n                throw new Error(`Value ${v} out of range [${lo}, ${hi}]. ` +\n                    \"Set out_of_range='clamp' or out_of_range='wrap' to handle this.\");\n            };\n    }\n}\n// ---------------------------------------------------------------------------\n// Codec\n// ---------------------------------------------------------------------------\n/**\n * Array-to-array codec that casts element values between two numeric types.\n *\n * Two data types are in play:\n *   - `ArrayDtype`:   the array's declared data type (`meta.dataType`).\n *                     This is what the user reads/writes.\n *   - `EncodedDtype`: the on-disk type (`config.data_type`).\n *                     This is what the bytes codec sees.\n *\n * Encode: ArrayDtype -> EncodedDtype  (not implemented, throws)\n * Decode: EncodedDtype -> ArrayDtype\n */\nexport class CastValueCodec {\n    kind = \"array_to_array\";\n    #encodedType;\n    #arrayTypeCtr;\n    #decodeValue;\n    #encodeFillValue;\n    constructor(arrayType, encodedType, rounding, outOfRange, decodeMapEntries, encodeMapEntries) {\n        this.#encodedType = encodedType;\n        this.#arrayTypeCtr = getCtr(arrayType);\n        this.#decodeValue = buildConverter(encodedType, arrayType, rounding, outOfRange, decodeMapEntries);\n        this.#encodeFillValue = buildConverter(arrayType, encodedType, rounding, outOfRange, encodeMapEntries);\n    }\n    /** Return updated metadata reflecting the type and fill value after encoding. */\n    getEncodedMeta(meta) {\n        let fillValue = meta.fillValue;\n        if (fillValue != null) {\n            fillValue = this.#encodeFillValue(fillValue);\n        }\n        return { ...meta, dataType: this.#encodedType, fillValue };\n    }\n    static fromConfig(config, meta) {\n        const arrayType = meta.dataType;\n        const encodedType = config.data_type;\n        if (!SUPPORTED.has(arrayType)) {\n            throw new InvalidMetadataError(`cast_value codec does not support array data type: ${arrayType}`);\n        }\n        if (!SUPPORTED.has(encodedType)) {\n            throw new InvalidMetadataError(`cast_value codec does not support encoded data type: ${encodedType}`);\n        }\n        const rounding = config.rounding ?? \"nearest-even\";\n        // Decode scalar_map: entries are [encoded value, array value].\n        const decodeMapEntries = config.scalar_map?.decode\n            ? parseScalarMapEntries(config.scalar_map.decode, encodedType, arrayType)\n            : [];\n        // Encode scalar_map: entries are [array value, encoded value].\n        // Used for fill value propagation.\n        const encodeMapEntries = config.scalar_map?.encode\n            ? parseScalarMapEntries(config.scalar_map.encode, arrayType, encodedType)\n            : [];\n        return new CastValueCodec(arrayType, encodedType, rounding, config.out_of_range, decodeMapEntries, encodeMapEntries);\n    }\n    encode = unimplementedEncode(\"cast_value\");\n    decode(chunk) {\n        const input = chunk.data;\n        const out = new this.#arrayTypeCtr(input.length);\n        for (let i = 0; i < input.length; i++) {\n            out[i] = this.#decodeValue(input[i]);\n        }\n        return { data: out, shape: chunk.shape, stride: chunk.stride };\n    }\n}\n// ---------------------------------------------------------------------------\n// Build a per-element converter function from one numeric type to another.\n// Src/Dst here are generic: the caller decides which is the \"from\" and \"to\".\n// ---------------------------------------------------------------------------\n// All type dispatch, bounds lookups, rounding resolution, and out-of-range\n// mode selection happen here — once per codec construction. The returned\n// function is a tight per-element converter with no re-dispatch.\nfunction buildConverter(sourceType, targetType, rounding, outOfRange, mapEntries) {\n    const srcIsFloat = isFloatType(sourceType);\n    const srcIsBigint = isBigintType(sourceType);\n    const dstIsFloat = isFloatType(targetType);\n    const dstIsBigint = isBigintType(targetType);\n    // biome-ignore lint/suspicious/noExplicitAny: runtime dispatch across number/bigint boundary\n    let baseFn;\n    if (srcIsFloat && dstIsFloat) {\n        if (rounding !== \"nearest-even\") {\n            throw new InvalidMetadataError(`cast_value float -> float only supports \"nearest-even\" rounding, got \"${rounding}\"`);\n        }\n        // TypedArray assignment handles nearest-even natively.\n        baseFn = (v) => v;\n    }\n    else if (srcIsFloat && !dstIsFloat && !dstIsBigint) {\n        // float -> int (number)\n        const round = getRoundingFn(rounding);\n        const check = makeIntRangeCheck(...INT_BOUNDS[targetType], outOfRange);\n        baseFn = (v) => {\n            if (!Number.isFinite(v)) {\n                throw new Error(`Cannot cast ${v} to integer type without scalar_map`);\n            }\n            return check(round(v));\n        };\n    }\n    else if (srcIsFloat && dstIsBigint) {\n        // float -> bigint\n        const round = getRoundingFn(rounding);\n        const check = makeBigintRangeCheck(...BIGINT_BOUNDS[targetType], outOfRange);\n        baseFn = (v) => {\n            if (!Number.isFinite(v)) {\n                throw new Error(`Cannot cast ${v} to integer type without scalar_map`);\n            }\n            return check(BigInt(round(v)));\n        };\n    }\n    else if (!srcIsFloat && !srcIsBigint && dstIsFloat) {\n        // int (number) -> float\n        baseFn = (v) => v;\n    }\n    else if (srcIsBigint && dstIsFloat) {\n        // bigint -> float\n        baseFn = (v) => Number(v);\n    }\n    else if (!srcIsFloat && !srcIsBigint && !dstIsFloat && !dstIsBigint) {\n        // int (number) -> int (number)\n        baseFn = makeIntRangeCheck(...INT_BOUNDS[targetType], outOfRange);\n    }\n    else if (!srcIsFloat && !srcIsBigint && dstIsBigint) {\n        // int (number) -> bigint\n        const check = makeBigintRangeCheck(...BIGINT_BOUNDS[targetType], outOfRange);\n        baseFn = (v) => check(BigInt(v));\n    }\n    else if (srcIsBigint && !dstIsFloat && !dstIsBigint) {\n        // bigint -> int (number)\n        const check = makeIntRangeCheck(...INT_BOUNDS[targetType], outOfRange);\n        baseFn = (v) => check(Number(v));\n    }\n    else if (srcIsBigint && dstIsBigint) {\n        // bigint -> bigint\n        baseFn = makeBigintRangeCheck(...BIGINT_BOUNDS[targetType], outOfRange);\n    }\n    else {\n        throw new Error(`Unhandled type combination: ${sourceType} -> ${targetType}`);\n    }\n    // If there are no scalar_map entries, use the base converter directly.\n    if (mapEntries.length === 0) {\n        return baseFn;\n    }\n    // Wrap with scalar_map lookup: check map first, fall back to base conversion.\n    // biome-ignore lint/suspicious/noExplicitAny: runtime dispatch across number/bigint boundary\n    const fn = (v) => {\n        const mapped = scalarMapLookup(v, mapEntries);\n        if (mapped !== undefined)\n            return mapped;\n        return baseFn(v);\n    };\n    return fn;\n}\n//# sourceMappingURL=cast_value.js.map","import { unimplementedEncode } from \"./_shared.js\";\nexport class Crc32cCodec {\n    kind = \"bytes_to_bytes\";\n    static fromConfig() {\n        return new Crc32cCodec();\n    }\n    encode = unimplementedEncode(\"crc32c\");\n    decode(arr) {\n        return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength - 4);\n    }\n    computeEncodedSize(decodedSize) {\n        return decodedSize + 4;\n    }\n}\n//# sourceMappingURL=crc32c.js.map","import { InvalidMetadataError } from \"../errors.js\";\nimport { getCtr } from \"../util.js\";\nconst SUPPORTED = new Set([\n    \"int8\",\n    \"uint8\",\n    \"int16\",\n    \"uint16\",\n    \"int32\",\n    \"uint32\",\n    \"int64\",\n    \"uint64\",\n    \"float16\",\n    \"float32\",\n    \"float64\",\n]);\n// The python codecs flatten with arr.reshape(-1, order='A').\n// The zarrita codec uses the byte order of the data.\n// These two are only equivalent if the array strides are C style or Fortran style.\nfunction assertCOrFContiguous(shape, stride) {\n    const n = shape.length;\n    let c = n === 0 || stride[n - 1] === 1;\n    for (let i = n - 2; i >= 0 && c; i--) {\n        c = stride[i] === stride[i + 1] * shape[i + 1];\n    }\n    if (c)\n        return;\n    let f = n === 0 || stride[0] === 1;\n    for (let i = 1; i < n && f; i++) {\n        f = stride[i] === stride[i - 1] * shape[i - 1];\n    }\n    if (f)\n        return;\n    throw new Error(`DeltaCodec requires C- or Fortran-contiguous strides, got shape=${JSON.stringify(shape)} stride=${JSON.stringify(stride)}`);\n}\nexport class DeltaCodec {\n    kind = \"array_to_array\";\n    #ctr;\n    constructor(ctr) {\n        this.#ctr = ctr;\n    }\n    static fromConfig(_config, meta) {\n        if (!SUPPORTED.has(meta.dataType)) {\n            throw new InvalidMetadataError(`Delta codec does not support data type: ${meta.dataType}`);\n        }\n        return new DeltaCodec(getCtr(meta.dataType));\n    }\n    encode(chunk) {\n        assertCOrFContiguous(chunk.shape, chunk.stride);\n        const src = chunk.data;\n        const out = new this.#ctr(src.length);\n        out[0] = src[0];\n        for (let i = 1; i < src.length; i++) {\n            // @ts-expect-error - mix of bigint and number always safe to subtract\n            out[i] = src[i] - src[i - 1];\n        }\n        return { data: out, shape: chunk.shape, stride: chunk.stride };\n    }\n    decode(chunk) {\n        assertCOrFContiguous(chunk.shape, chunk.stride);\n        const src = chunk.data;\n        const out = new this.#ctr(src.length);\n        out[0] = src[0];\n        for (let i = 1; i < src.length; i++) {\n            // @ts-expect-error - mix of bigint and number always safe to add\n            out[i] = out[i - 1] + src[i];\n        }\n        return { data: out, shape: chunk.shape, stride: chunk.stride };\n    }\n}\n//# sourceMappingURL=delta.js.map","import { decompress } from \"../util.js\";\nimport { unimplementedEncode } from \"./_shared.js\";\nexport class GzipCodec {\n    kind = \"bytes_to_bytes\";\n    static fromConfig(_) {\n        return new GzipCodec();\n    }\n    encode = unimplementedEncode(\"gzip\");\n    async decode(bytes) {\n        const buffer = await decompress(bytes, { format: \"gzip\" });\n        return new Uint8Array(buffer);\n    }\n}\n//# sourceMappingURL=gzip.js.map","import { assert, getStrides, jsonDecodeObject } from \"../util.js\";\n// Reference: https://stackoverflow.com/a/21897413\nfunction throwOnNanReplacer(_key, value) {\n    assert(!Number.isNaN(value), \"JsonCodec allow_nan is false but NaN was encountered during encoding.\");\n    assert(value !== Number.POSITIVE_INFINITY, \"JsonCodec allow_nan is false but Infinity was encountered during encoding.\");\n    assert(value !== Number.NEGATIVE_INFINITY, \"JsonCodec allow_nan is false but -Infinity was encountered during encoding.\");\n    return value;\n}\n// Reference: https://gist.github.com/davidfurlong/463a83a33b70a3b6618e97ec9679e490\nfunction sortKeysReplacer(_key, value) {\n    return value instanceof Object && !Array.isArray(value)\n        ? Object.keys(value)\n            .sort()\n            .reduce((sorted, key) => {\n            sorted[key] = value[key];\n            return sorted;\n        }, {})\n        : value;\n}\nexport class JsonCodec {\n    configuration;\n    kind = \"array_to_bytes\";\n    #encoderConfig;\n    #decoderConfig;\n    constructor(configuration = {}) {\n        this.configuration = configuration;\n        // Reference: https://github.com/zarr-developers/numcodecs/blob/0878717a3613d91a453fe3d3716aa9c67c023a8b/numcodecs/json.py#L36\n        const { encoding = \"utf-8\", skipkeys = false, ensure_ascii = true, check_circular = true, allow_nan = true, sort_keys = true, indent, strict = true, } = configuration;\n        let separators = configuration.separators;\n        if (!separators) {\n            // ensure separators are explicitly specified, and consistent behaviour across\n            // Python versions, and most compact representation if indent is None\n            if (!indent) {\n                separators = [\",\", \":\"];\n            }\n            else {\n                separators = [\", \", \": \"];\n            }\n        }\n        this.#encoderConfig = {\n            encoding,\n            skipkeys,\n            ensure_ascii,\n            check_circular,\n            allow_nan,\n            indent,\n            separators,\n            sort_keys,\n        };\n        this.#decoderConfig = { strict };\n    }\n    static fromConfig(configuration) {\n        return new JsonCodec(configuration);\n    }\n    encode(buf) {\n        const { indent, encoding, ensure_ascii, check_circular, allow_nan, sort_keys, } = this.#encoderConfig;\n        assert(encoding === \"utf-8\", \"JsonCodec does not yet support non-utf-8 encoding.\");\n        const replacerFunctions = [];\n        // By default, for JSON.stringify,\n        // a TypeError will be thrown if one attempts to encode an object with circular references\n        assert(check_circular, \"JsonCodec does not yet support skipping the check for circular references during encoding.\");\n        if (!allow_nan) {\n            // Throw if NaN/Infinity/-Infinity are encountered during encoding.\n            replacerFunctions.push(throwOnNanReplacer);\n        }\n        if (sort_keys) {\n            // We can ensure keys are sorted but not really the opposite since\n            // there is no guarantee of key ordering in JS.\n            replacerFunctions.push(sortKeysReplacer);\n        }\n        const items = Array.from(buf.data);\n        items.push(\"|O\");\n        items.push(buf.shape);\n        let replacer;\n        if (replacerFunctions.length) {\n            replacer = (key, value) => {\n                let newValue = value;\n                for (let subReplacer of replacerFunctions) {\n                    newValue = subReplacer(key, newValue);\n                }\n                return newValue;\n            };\n        }\n        let jsonStr = JSON.stringify(items, replacer, indent);\n        if (ensure_ascii) {\n            // If ensure_ascii is true (the default), the output is guaranteed\n            // to have all incoming non-ASCII characters escaped.\n            // If ensure_ascii is false, these characters will be output as-is.\n            // Reference: https://stackoverflow.com/a/31652607\n            jsonStr = jsonStr.replace(/[\\u007F-\\uFFFF]/g, (chr) => {\n                const fullStr = `0000${chr.charCodeAt(0).toString(16)}`;\n                const subStr = fullStr.substring(fullStr.length - 4);\n                return `\\\\u${subStr}`;\n            });\n        }\n        return new TextEncoder().encode(jsonStr);\n    }\n    decode(bytes) {\n        const { strict } = this.#decoderConfig;\n        // (i.e., allowing control characters inside strings)\n        assert(strict, \"JsonCodec does not yet support non-strict decoding.\");\n        const items = jsonDecodeObject(bytes);\n        const shape = items.pop();\n        items.pop(); // Pop off dtype (unused)\n        // O-d case\n        assert(shape, \"0D not implemented for JsonCodec.\");\n        const stride = getStrides(shape, \"C\");\n        const data = items;\n        return { data, shape, stride };\n    }\n}\n//# sourceMappingURL=json2.js.map","/*\nThe scale_offset codec is an array -> array codec that shifts and\nscales input array values on the encoding path, and inverts this\ntransformation on the decoding path. This codec is only defined for\na specific set of data types (ints and floats). This codec preserves the data type\nof the array.\n\nThe specification for this codec can be found at https://github.com/zarr-developers/zarr-extensions/tree/main/codecs/scale_offset\n*/\nimport { InvalidMetadataError } from \"../errors.js\";\nimport { getCtr } from \"../util.js\";\nimport { unimplementedEncode } from \"./_shared.js\";\nimport { parseJsonScalar, } from \"./json-scalar.js\";\nconst SUPPORTED = new Set([\n    \"int8\",\n    \"uint8\",\n    \"int16\",\n    \"uint16\",\n    \"int32\",\n    \"uint32\",\n    \"int64\",\n    \"uint64\",\n    \"float16\",\n    \"float32\",\n    \"float64\",\n]);\nexport class ScaleOffsetCodec {\n    kind = \"array_to_array\";\n    #ctr;\n    #scale;\n    #offset;\n    constructor(scale, offset, ctr) {\n        this.#scale = scale;\n        this.#offset = offset;\n        this.#ctr = ctr;\n    }\n    static fromConfig(config, meta) {\n        if (!SUPPORTED.has(meta.dataType)) {\n            throw new InvalidMetadataError(`scale_offset codec does not support data type: ${meta.dataType}`);\n        }\n        return new ScaleOffsetCodec(parseJsonScalar(meta.dataType, config.scale ?? 1), parseJsonScalar(meta.dataType, config.offset ?? 0), getCtr(meta.dataType));\n    }\n    encode = unimplementedEncode(\"scale_offset\");\n    decode(chunk) {\n        const src = chunk.data;\n        const out = new this.#ctr(src.length);\n        for (let i = 0; i < src.length; i++) {\n            // @ts-expect-error - mix of bigint and number arithmetic is safe here\n            out[i] = src[i] / this.#scale + this.#offset;\n        }\n        return { data: out, shape: chunk.shape, stride: chunk.stride };\n    }\n}\n//# sourceMappingURL=scale_offset.js.map","import { assert, getCtr } from \"../util.js\";\n/**\n * Shuffle filter codec (numcodecs compat).\n *\n * Reorders bytes so that corresponding bytes of each element are grouped\n * together, improving compression of typed data.\n */\nexport class ShuffleCodec {\n    kind = \"bytes_to_bytes\";\n    #BYTES_PER_ELEMENT;\n    constructor(configuration, meta) {\n        if (meta) {\n            let sample = new (getCtr(meta.dataType))(0);\n            assert(\"BYTES_PER_ELEMENT\" in sample, `Shuffle codec requires a fixed-size dtype, got \"${meta.dataType}\"`);\n            this.#BYTES_PER_ELEMENT = sample.BYTES_PER_ELEMENT;\n        }\n        else {\n            this.#BYTES_PER_ELEMENT = configuration.elementsize ?? 4;\n        }\n    }\n    static fromConfig(configuration, meta) {\n        return new ShuffleCodec(configuration, meta);\n    }\n    encode(data) {\n        return shuffle(data, this.#BYTES_PER_ELEMENT);\n    }\n    decode(data) {\n        return unshuffle(data, this.#BYTES_PER_ELEMENT);\n    }\n}\nfunction shuffle(data, elementSize) {\n    let length = data.length;\n    let nElements = Math.floor(length / elementSize);\n    let result = new Uint8Array(length);\n    for (let byte = 0; byte < elementSize; byte++) {\n        for (let i = 0; i < nElements; i++) {\n            result[byte * nElements + i] = data[i * elementSize + byte];\n        }\n    }\n    return result;\n}\nfunction unshuffle(data, elementSize) {\n    let length = data.length;\n    let nElements = Math.floor(length / elementSize);\n    let result = new Uint8Array(length);\n    for (let byte = 0; byte < elementSize; byte++) {\n        for (let i = 0; i < nElements; i++) {\n            result[i * elementSize + byte] = data[byte * nElements + i];\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=shuffle.js.map","import { BoolArray, ByteStringArray, UnicodeStringArray, } from \"../typedarray.js\";\nimport { assert, getStrides } from \"../util.js\";\nfunction proxy(arr) {\n    if (arr instanceof BoolArray ||\n        arr instanceof ByteStringArray ||\n        arr instanceof UnicodeStringArray) {\n        // @ts-expect-error - TS cannot infer arr is a TypedArrayProxy<D>\n        const arrp = new Proxy(arr, {\n            get(target, prop) {\n                return target.get(Number(prop));\n            },\n            set(target, prop, value) {\n                // @ts-expect-error - value is OK\n                target.set(Number(prop), value);\n                return true;\n            },\n        });\n        return arrp;\n    }\n    // @ts-expect-error - TS cannot infer arr is a TypedArrayProxy<D>\n    return arr;\n}\nfunction emptyLike(chunk, order) {\n    let data;\n    if (chunk.data instanceof ByteStringArray ||\n        chunk.data instanceof UnicodeStringArray) {\n        data = new chunk.constructor(\n        // @ts-expect-error\n        chunk.data.length, chunk.data.chars);\n    }\n    else {\n        data = new chunk.constructor(chunk.data.length);\n    }\n    return {\n        data,\n        shape: chunk.shape,\n        stride: getStrides(chunk.shape, order),\n    };\n}\nfunction convertArrayOrder(src, target) {\n    let out = emptyLike(src, target);\n    let nDims = src.shape.length;\n    let size = src.data.length;\n    let index = Array(nDims).fill(0);\n    let srcData = proxy(src.data);\n    let outData = proxy(out.data);\n    for (let srcIdx = 0; srcIdx < size; srcIdx++) {\n        let outIdx = 0;\n        for (let dim = 0; dim < nDims; dim++) {\n            outIdx += index[dim] * out.stride[dim];\n        }\n        outData[outIdx] = srcData[srcIdx];\n        index[0] += 1;\n        for (let dim = 0; dim < nDims; dim++) {\n            if (index[dim] === src.shape[dim]) {\n                if (dim + 1 === nDims) {\n                    break;\n                }\n                index[dim] = 0;\n                index[dim + 1] += 1;\n            }\n        }\n    }\n    return out;\n}\n/** Determine the memory order (axis permutation) for a chunk */\nfunction getOrder(chunk) {\n    let rank = chunk.shape.length;\n    assert(rank === chunk.stride.length, \"Shape and stride must have the same length.\");\n    return chunk.stride\n        .map((s, i) => ({ stride: s, index: i }))\n        .sort((a, b) => b.stride - a.stride)\n        .map((entry) => entry.index);\n}\nfunction matchesOrder(chunk, target) {\n    let source = getOrder(chunk);\n    assert(source.length === target.length, \"Orders must match\");\n    return source.every((dim, i) => dim === target[i]);\n}\nexport class TransposeCodec {\n    kind = \"array_to_array\";\n    #order;\n    #inverseOrder;\n    constructor(configuration, meta) {\n        let value = configuration.order ?? \"C\";\n        let rank = meta.shape.length;\n        let order = new Array(rank);\n        let inverseOrder = new Array(rank);\n        if (value === \"C\") {\n            for (let i = 0; i < rank; ++i) {\n                order[i] = i;\n                inverseOrder[i] = i;\n            }\n        }\n        else if (value === \"F\") {\n            for (let i = 0; i < rank; ++i) {\n                order[i] = rank - i - 1;\n                inverseOrder[i] = rank - i - 1;\n            }\n        }\n        else {\n            order = value;\n            order.forEach((x, i) => {\n                assert(inverseOrder[x] === undefined, `Invalid permutation: ${JSON.stringify(value)}`);\n                inverseOrder[x] = i;\n            });\n        }\n        this.#order = order;\n        this.#inverseOrder = inverseOrder;\n    }\n    static fromConfig(configuration, meta) {\n        return new TransposeCodec(configuration, meta);\n    }\n    encode(arr) {\n        if (matchesOrder(arr, this.#inverseOrder)) {\n            // can skip making a copy\n            return arr;\n        }\n        return convertArrayOrder(arr, this.#inverseOrder);\n    }\n    decode(arr) {\n        return {\n            data: arr.data,\n            shape: arr.shape,\n            stride: getStrides(arr.shape, this.#order),\n        };\n    }\n}\n//# sourceMappingURL=transpose.js.map","import { getStrides } from \"../util.js\";\nimport { unimplementedEncode } from \"./_shared.js\";\nexport class VLenUTF8 {\n    kind = \"array_to_bytes\";\n    #shape;\n    #strides;\n    constructor(shape) {\n        this.#shape = shape;\n        this.#strides = getStrides(shape, \"C\");\n    }\n    static fromConfig(_, meta) {\n        return new VLenUTF8(meta.shape);\n    }\n    encode = unimplementedEncode(\"vlen-utf8\");\n    decode(bytes) {\n        let decoder = new TextDecoder();\n        let view = new DataView(bytes.buffer);\n        let data = Array(view.getUint32(0, true));\n        let pos = 4;\n        for (let i = 0; i < data.length; i++) {\n            let itemLength = view.getUint32(pos, true);\n            pos += 4;\n            data[i] = decoder.decode(bytes.buffer.slice(pos, pos + itemLength));\n            pos += itemLength;\n        }\n        return { data, shape: this.#shape, stride: this.#strides };\n    }\n}\n//# sourceMappingURL=vlen-utf8.js.map","import { decompress } from \"../util.js\";\nimport { unimplementedEncode } from \"./_shared.js\";\nexport class ZlibCodec {\n    kind = \"bytes_to_bytes\";\n    static fromConfig(_) {\n        return new ZlibCodec();\n    }\n    encode = unimplementedEncode(\"zlib\");\n    async decode(bytes) {\n        const buffer = await decompress(bytes, { format: \"deflate\" });\n        return new Uint8Array(buffer);\n    }\n}\n//# sourceMappingURL=zlib.js.map","import { BitroundCodec } from \"./codecs/bitround.js\";\nimport { BytesCodec } from \"./codecs/bytes.js\";\nimport { CastValueCodec } from \"./codecs/cast_value.js\";\nimport { Crc32cCodec } from \"./codecs/crc32c.js\";\nimport { DeltaCodec } from \"./codecs/delta.js\";\nimport { GzipCodec } from \"./codecs/gzip.js\";\nimport { JsonCodec } from \"./codecs/json2.js\";\nimport { ScaleOffsetCodec } from \"./codecs/scale_offset.js\";\nimport { ShuffleCodec } from \"./codecs/shuffle.js\";\nimport { TransposeCodec } from \"./codecs/transpose.js\";\nimport { VLenUTF8 } from \"./codecs/vlen-utf8.js\";\nimport { ZlibCodec } from \"./codecs/zlib.js\";\nimport { CodecPipelineError, InvalidMetadataError, UnknownCodecError, } from \"./errors.js\";\nfunction createDefaultRegistry() {\n    let blosc = () => import(\"numcodecs/blosc\").then((m) => m.default);\n    let lz4 = () => import(\"numcodecs/lz4\").then((m) => m.default);\n    let zstd = () => import(\"numcodecs/zstd\").then((m) => m.default);\n    let gzip = () => GzipCodec;\n    let zlib = () => ZlibCodec;\n    return (new Map()\n        // v3 codecs\n        .set(\"blosc\", blosc)\n        .set(\"lz4\", lz4)\n        .set(\"zstd\", zstd)\n        .set(\"gzip\", gzip)\n        .set(\"zlib\", zlib)\n        .set(\"transpose\", () => TransposeCodec)\n        .set(\"bytes\", () => BytesCodec)\n        .set(\"crc32c\", () => Crc32cCodec)\n        .set(\"vlen-utf8\", () => VLenUTF8)\n        .set(\"json2\", () => JsonCodec)\n        .set(\"bitround\", () => BitroundCodec)\n        .set(\"cast_value\", () => CastValueCodec)\n        .set(\"scale_offset\", () => ScaleOffsetCodec)\n        // numcodecs (v2 compat)\n        .set(\"numcodecs.blosc\", blosc)\n        .set(\"numcodecs.lz4\", lz4)\n        .set(\"numcodecs.zstd\", zstd)\n        .set(\"numcodecs.gzip\", gzip)\n        .set(\"numcodecs.zlib\", zlib)\n        .set(\"numcodecs.vlen-utf8\", () => VLenUTF8)\n        .set(\"numcodecs.shuffle\", () => ShuffleCodec)\n        .set(\"numcodecs.delta\", () => DeltaCodec)\n        .set(\"numcodecs.bitround\", () => BitroundCodec)\n        .set(\"numcodecs.json2\", () => JsonCodec));\n}\nexport const registry = createDefaultRegistry();\nexport function createCodecPipeline(chunkMetadata) {\n    // Lazily load codecs on first use. The promise is shared by all methods.\n    let codecsPromise;\n    function getCodecs() {\n        if (!codecsPromise)\n            codecsPromise = loadCodecs(chunkMetadata);\n        return codecsPromise;\n    }\n    async function runStep(direction, codec, fn) {\n        try {\n            return await fn();\n        }\n        catch (cause) {\n            throw new CodecPipelineError({ direction, codec, cause });\n        }\n    }\n    return {\n        async encode(chunk) {\n            let codecs = await getCodecs();\n            for (const { name, codec } of codecs.arrayToArray) {\n                chunk = await runStep(\"encode\", name, () => codec.encode(chunk));\n            }\n            let bytes = await runStep(\"encode\", codecs.arrayToBytes.name, () => codecs.arrayToBytes.codec.encode(chunk));\n            for (const { name, codec } of codecs.bytesToBytes) {\n                bytes = await runStep(\"encode\", name, () => codec.encode(bytes));\n            }\n            return bytes;\n        },\n        async decode(bytes) {\n            let codecs = await getCodecs();\n            for (let i = codecs.bytesToBytes.length - 1; i >= 0; i--) {\n                const { name, codec } = codecs.bytesToBytes[i];\n                bytes = await runStep(\"decode\", name, () => codec.decode(bytes));\n            }\n            let chunk = await runStep(\"decode\", codecs.arrayToBytes.name, () => codecs.arrayToBytes.codec.decode(bytes));\n            for (let i = codecs.arrayToArray.length - 1; i >= 0; i--) {\n                const { name, codec } = codecs.arrayToArray[i];\n                chunk = await runStep(\"decode\", name, () => codec.decode(chunk));\n            }\n            return chunk;\n        },\n        async computeEncodedSize(decodedSize) {\n            let codecs = await getCodecs();\n            let size = applyEncodedSize(codecs.arrayToBytes.name, codecs.arrayToBytes.codec, decodedSize);\n            for (const { name, codec } of codecs.bytesToBytes) {\n                size = applyEncodedSize(name, codec, size);\n            }\n            return size;\n        },\n    };\n}\nfunction applyEncodedSize(name, codec, size) {\n    if (!codec.computeEncodedSize) {\n        throw new InvalidMetadataError(`Codec \"${name}\" cannot compute its encoded size; it is not a fixed-size codec and cannot be used in a sharding index pipeline`);\n    }\n    return codec.computeEncodedSize(size);\n}\nasync function loadCodecs(chunkMeta) {\n    let promises = chunkMeta.codecs.map(async (meta) => {\n        let Codec = await registry.get(meta.name)?.();\n        if (!Codec) {\n            throw new UnknownCodecError(meta.name);\n        }\n        return { Codec, meta };\n    });\n    let arrayToArray = [];\n    let arrayToBytes;\n    let bytesToBytes = [];\n    // Track the \"current\" data type through the codec chain. Array-to-array\n    // codecs like cast_value may change the type, and subsequent codecs\n    // (especially bytes) need to see the updated type.\n    let currentMeta = { ...chunkMeta };\n    for await (let { Codec, meta } of promises) {\n        let codec = Codec.fromConfig(meta.configuration, currentMeta);\n        switch (codec.kind) {\n            case \"array_to_array\":\n                arrayToArray.push({\n                    name: meta.name,\n                    codec: codec,\n                });\n                // Array-to-array codecs like cast_value may change the data type\n                // (and derived metadata like fill_value) between the array's\n                // declared type and what's stored on disk. We call getEncodedMeta\n                // so that subsequent codecs in the chain — especially the bytes\n                // codec — see the correct on-disk type and fill value.\n                if (codec.getEncodedMeta) {\n                    currentMeta = codec.getEncodedMeta(currentMeta);\n                }\n                break;\n            case \"array_to_bytes\":\n                arrayToBytes = {\n                    name: meta.name,\n                    codec: codec,\n                };\n                break;\n            default:\n                bytesToBytes.push({\n                    name: meta.name,\n                    codec: codec,\n                });\n        }\n    }\n    if (!arrayToBytes) {\n        if (!isTypedArrayLikeMeta(currentMeta)) {\n            throw new InvalidMetadataError(`Cannot encode ${currentMeta.dataType} to bytes without a codec`);\n        }\n        arrayToBytes = {\n            name: \"bytes\",\n            codec: BytesCodec.fromConfig({ endian: \"little\" }, currentMeta),\n        };\n    }\n    return {\n        arrayToArray,\n        arrayToBytes,\n        bytesToBytes,\n    };\n}\nfunction isTypedArrayLikeMeta(meta) {\n    return meta.dataType !== \"v2:object\" && meta.dataType !== \"string\";\n}\n//# sourceMappingURL=codecs.js.map","import { createCodecPipeline } from \"../codecs.js\";\nimport { UnsupportedError } from \"../errors.js\";\nconst MAX_BIG_UINT = 18446744073709551615n;\nexport function createShardedChunkGetter(location, shardShape, encodeShardKey, shardingConfig) {\n    if (!location.store.getRange) {\n        throw new UnsupportedError(\"sharding requires a store with getRange\");\n    }\n    let getRange = location.store.getRange.bind(location.store);\n    let indexShape = shardShape.map((d, i) => d / shardingConfig.chunk_shape[i]);\n    let indexCodec = createCodecPipeline({\n        dataType: \"uint64\",\n        shape: [...indexShape, 2],\n        codecs: shardingConfig.index_codecs,\n        fillValue: null,\n    });\n    // The shard index is a uint64 array with shape [...indexShape, 2]\n    // (offset, length) per inner chunk. Its on-disk size depends on the\n    // index_codecs pipeline — e.g. crc32c appends 4 bytes — so we ask the\n    // pipeline rather than hardcoding any constant.\n    let rawIndexSize = 16 * indexShape.reduce((a, b) => a * b, 1);\n    let cache = {};\n    return async (chunkCoord, options) => {\n        let shardCoord = chunkCoord.map((d, i) => Math.floor(d / indexShape[i]));\n        let shardPath = location.resolve(encodeShardKey(shardCoord)).path;\n        if (!(shardPath in cache)) {\n            cache[shardPath] = (async () => {\n                let suffixLength = await indexCodec.computeEncodedSize(rawIndexSize);\n                let bytes = await getRange(shardPath, { suffixLength }, options);\n                return bytes ? await indexCodec.decode(bytes) : null;\n            })().catch((err) => {\n                delete cache[shardPath];\n                throw err;\n            });\n        }\n        let index = await cache[shardPath];\n        if (index === null) {\n            return undefined;\n        }\n        let { data, shape, stride } = index;\n        let linearOffset = chunkCoord\n            .map((d, i) => d % shape[i])\n            .reduce((acc, sel, idx) => acc + sel * stride[idx], 0);\n        let offset = data[linearOffset];\n        let length = data[linearOffset + 1];\n        // write null chunk when 2^64-1 indicates fill value\n        if (offset === MAX_BIG_UINT && length === MAX_BIG_UINT) {\n            return undefined;\n        }\n        return getRange(shardPath, {\n            offset: Number(offset),\n            length: Number(length),\n        }, options);\n    };\n}\n//# sourceMappingURL=sharding.js.map","import { createShardedChunkGetter } from \"./codecs/sharding.js\";\nimport { createCodecPipeline } from \"./codecs.js\";\nimport { assertSharedArrayBufferAvailable, createBuffer, createChunkKeyEncoder, ensureCorrectScalar, getCtr, getStrides, isDataType, isShardingCodec, } from \"./util.js\";\nexport class Location {\n    store;\n    path;\n    constructor(store, path = \"/\") {\n        this.store = store;\n        this.path = path;\n    }\n    resolve(path) {\n        // reuse URL resolution logic built into the browser\n        // handles relative paths, absolute paths, etc.\n        let root = new URL(`file://${this.path.endsWith(\"/\") ? this.path : `${this.path}/`}`);\n        return new Location(this.store, decodeURIComponent(new URL(path, root).pathname));\n    }\n}\nexport function root(store) {\n    return new Location(store ?? new Map());\n}\nexport class Group extends Location {\n    kind = \"group\";\n    #metadata;\n    constructor(store, path, metadata) {\n        super(store, path);\n        this.#metadata = metadata;\n    }\n    get attrs() {\n        return this.#metadata.attributes;\n    }\n}\nfunction getArrayOrder(codecs) {\n    const maybeTransposeCodec = codecs.find((c) => c.name === \"transpose\");\n    // @ts-expect-error - TODO: Should validate?\n    return maybeTransposeCodec?.configuration?.order ?? \"C\";\n}\nconst CONTEXT_MARKER = Symbol(\"zarrita.context\");\nexport function getContext(obj) {\n    return obj[CONTEXT_MARKER];\n}\nfunction createContext(location, metadata) {\n    let { configuration } = metadata.codecs.find(isShardingCodec) ?? {};\n    let sharedContext = {\n        encodeChunkKey: createChunkKeyEncoder(metadata.chunk_key_encoding),\n        TypedArray: getCtr(metadata.data_type),\n        fillValue: metadata.fill_value,\n    };\n    if (configuration) {\n        let nativeOrder = getArrayOrder(configuration.codecs);\n        return {\n            ...sharedContext,\n            kind: \"sharded\",\n            chunkShape: configuration.chunk_shape,\n            codec: createCodecPipeline({\n                dataType: metadata.data_type,\n                shape: configuration.chunk_shape,\n                codecs: configuration.codecs,\n                fillValue: metadata.fill_value,\n            }),\n            getStrides(shape) {\n                return getStrides(shape, nativeOrder);\n            },\n            getChunkBytes: createShardedChunkGetter(location, metadata.chunk_grid.configuration.chunk_shape, sharedContext.encodeChunkKey, configuration),\n        };\n    }\n    let nativeOrder = getArrayOrder(metadata.codecs);\n    return {\n        ...sharedContext,\n        kind: \"regular\",\n        chunkShape: metadata.chunk_grid.configuration.chunk_shape,\n        codec: createCodecPipeline({\n            dataType: metadata.data_type,\n            shape: metadata.chunk_grid.configuration.chunk_shape,\n            codecs: metadata.codecs,\n            fillValue: metadata.fill_value,\n        }),\n        getStrides(shape) {\n            return getStrides(shape, nativeOrder);\n        },\n        async getChunkBytes(chunkCoords, options) {\n            let chunkKey = sharedContext.encodeChunkKey(chunkCoords);\n            let chunkPath = location.resolve(chunkKey).path;\n            return location.store.get(chunkPath, options);\n        },\n    };\n}\nexport class Array extends Location {\n    kind = \"array\";\n    #metadata;\n    [CONTEXT_MARKER];\n    constructor(store, path, metadata) {\n        super(store, path);\n        this.#metadata = {\n            ...metadata,\n            fill_value: ensureCorrectScalar(metadata),\n        };\n        this[CONTEXT_MARKER] = createContext(this, this.#metadata);\n    }\n    get attrs() {\n        return this.#metadata.attributes;\n    }\n    get dimensionNames() {\n        return this.#metadata.dimension_names;\n    }\n    get fillValue() {\n        return this.#metadata.fill_value;\n    }\n    get shape() {\n        return this.#metadata.shape;\n    }\n    get chunks() {\n        return this[CONTEXT_MARKER].chunkShape;\n    }\n    get dtype() {\n        return this.#metadata.data_type;\n    }\n    async getChunk(chunkCoords, options, opts) {\n        if (opts?.useSharedArrayBuffer) {\n            assertSharedArrayBufferAvailable();\n        }\n        let context = this[CONTEXT_MARKER];\n        let maybeBytes = await context.getChunkBytes(chunkCoords, options);\n        if (!maybeBytes) {\n            let size = context.chunkShape.reduce((a, b) => a * b, 1);\n            let data;\n            if (opts?.useSharedArrayBuffer) {\n                let sample = new context.TypedArray(0);\n                if (!(\"BYTES_PER_ELEMENT\" in sample)) {\n                    console.warn(\"zarrita: useSharedArrayBuffer is not supported for non-buffer-backed data types.\");\n                    data = new context.TypedArray(size);\n                }\n                else {\n                    let buffer = createBuffer(size * sample.BYTES_PER_ELEMENT, true);\n                    data = new context.TypedArray(buffer, 0, size);\n                }\n            }\n            else {\n                data = new context.TypedArray(size);\n            }\n            // @ts-expect-error: TS can't infer that `fillValue` is union (assumes never) but this is ok\n            data.fill(context.fillValue);\n            return {\n                data,\n                shape: context.chunkShape,\n                stride: context.getStrides(context.chunkShape),\n            };\n        }\n        return context.codec.decode(maybeBytes);\n    }\n    /**\n     * A helper method to narrow `zarr.Array` Dtype.\n     *\n     * ```typescript\n     * let arr: zarr.Array<DataType, FetchStore> = zarr.open(store, { kind: \"array\" });\n     *\n     * // Option 1: narrow by scalar type (e.g. \"bool\", \"raw\", \"bigint\", \"number\")\n     * if (arr.is(\"bigint\")) {\n     *   // zarr.Array<\"int64\" | \"uint64\", FetchStore>\n     * }\n     *\n     * // Option 3: exact match\n     * if (arr.is(\"float32\")) {\n     *   // zarr.Array<\"float32\", FetchStore, \"/\">\n     * }\n     * ```\n     */\n    is(query) {\n        return isDataType(this.dtype, query);\n    }\n}\n//# sourceMappingURL=hierarchy.js.map","/**\n * Walk a list of extensions, calling each synchronously until one returns a\n * `Promise`. From that point on, chain the remaining extensions with `.then`\n * so the caller only pays the cost of a Promise if any step actually needs\n * one. This is the shared runtime used by `extendStore` and `extendArray`.\n */\nexport function applyExtensions(value, extensions) {\n    let result = value;\n    for (let ext of extensions) {\n        if (result instanceof Promise) {\n            result = result.then((v) => ext(v));\n        }\n        else {\n            result = ext(result);\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=extend.js.map","import { applyExtensions } from \"./extend.js\";\nexport function extendArray(array, ...extensions) {\n    return applyExtensions(array, extensions);\n}\n//# sourceMappingURL=extend-array.js.map","/**\n * Open Zarr arrays and groups from a {@link Readable} store.\n *\n * The main entry point is {@linkcode open}, which auto-detects whether the\n * target node is a Zarr v2 or v3 array/group. Use {@linkcode open.v2} or\n * {@linkcode open.v3} to pin a specific format.\n *\n * ```ts\n * import * as zarr from \"zarrita\";\n *\n * const store = new zarr.FetchStore(\"https://example.com/data.zarr\");\n *\n * // Auto-detect version and node kind.\n * const node = await zarr.open(store);\n *\n * // Or narrow to an array (throws NotFoundError if it's a group).\n * const arr = await zarr.open(store, { kind: \"array\" });\n * ```\n *\n * @module\n */\nimport { InvalidMetadataError, NotFoundError } from \"./errors.js\";\nimport { extendArray } from \"./extension/extend-array.js\";\nimport { Array, Group, Location } from \"./hierarchy.js\";\nimport { ensureCorrectScalar, jsonDecodeObject, rethrowUnless, v2ToV3ArrayMetadata, v2ToV3GroupMetadata, } from \"./util.js\";\n/**\n * If the backing store carries `arrayExtensions` (typically contributed by\n * a virtual-format adapter built on `defineStoreExtension`), wrap the array\n * with them before handing it back. Inner-first, outer-last: the outermost\n * store extension's array extension becomes the outermost array wrapper.\n */\nasync function maybeExtend(array) {\n    let exts = array.store.arrayExtensions;\n    if (!exts?.length)\n        return array;\n    // Fixed-arity overloads of `extendArray` don't model variadic spreads,\n    // so thread the rest-parameter implementation directly.\n    let variadic = extendArray;\n    return await variadic(array, ...exts);\n}\nexport let VERSION_COUNTER = createVersionCounter();\nfunction createVersionCounter() {\n    let versionCounts = new WeakMap();\n    function getCounts(store) {\n        let counts = versionCounts.get(store) ?? { v2: 0, v3: 0 };\n        versionCounts.set(store, counts);\n        return counts;\n    }\n    return {\n        increment(store, version) {\n            getCounts(store)[version] += 1;\n        },\n        versionMax(store) {\n            let counts = getCounts(store);\n            return counts.v3 > counts.v2 ? \"v3\" : \"v2\";\n        },\n    };\n}\nasync function loadAttrs(location, signal) {\n    let metaBytes = await location.store.get(location.resolve(\".zattrs\").path, {\n        signal,\n    });\n    if (!metaBytes)\n        return {};\n    return jsonDecodeObject(metaBytes);\n}\nasync function openV2(location, options = {}) {\n    let loc = \"store\" in location ? location : new Location(location);\n    let { signal } = options;\n    let attrs = {};\n    if (options.attrs ?? true)\n        attrs = await loadAttrs(loc, signal);\n    signal?.throwIfAborted();\n    if (options.kind === \"array\")\n        return openArrayV2(loc, attrs, signal);\n    if (options.kind === \"group\")\n        return openGroupV2(loc, attrs, signal);\n    return openArrayV2(loc, attrs, signal).catch((err) => {\n        rethrowUnless(err, NotFoundError, InvalidMetadataError);\n        return openGroupV2(loc, attrs, signal);\n    });\n}\nasync function openArrayV2(location, attrs, signal) {\n    let { path } = location.resolve(\".zarray\");\n    let meta = await location.store.get(path, { signal });\n    if (!meta) {\n        throw new NotFoundError(\"v2 array\", { path });\n    }\n    VERSION_COUNTER.increment(location.store, \"v2\");\n    return maybeExtend(new Array(location.store, location.path, v2ToV3ArrayMetadata(jsonDecodeObject(meta), attrs)));\n}\nasync function openGroupV2(location, attrs, signal) {\n    let { path } = location.resolve(\".zgroup\");\n    let meta = await location.store.get(path, { signal });\n    if (!meta) {\n        throw new NotFoundError(\"v2 group\", { path });\n    }\n    VERSION_COUNTER.increment(location.store, \"v2\");\n    return new Group(location.store, location.path, v2ToV3GroupMetadata(jsonDecodeObject(meta), attrs));\n}\nasync function _openV3(location, signal) {\n    let { store, path } = location.resolve(\"zarr.json\");\n    let meta = await location.store.get(path, { signal });\n    if (!meta) {\n        throw new NotFoundError(\"v3 array or group\", { path });\n    }\n    let metaDoc = jsonDecodeObject(meta);\n    if (metaDoc.node_type === \"array\") {\n        metaDoc.fill_value = ensureCorrectScalar(metaDoc);\n    }\n    return metaDoc.node_type === \"array\"\n        ? maybeExtend(new Array(store, location.path, metaDoc))\n        : new Group(store, location.path, metaDoc);\n}\nasync function openV3(location, options = {}) {\n    let loc = \"store\" in location ? location : new Location(location);\n    let node = await _openV3(loc, options.signal);\n    VERSION_COUNTER.increment(loc.store, \"v3\");\n    if (options.kind === undefined)\n        return node;\n    if (options.kind === \"array\" && node instanceof Array)\n        return node;\n    if (options.kind === \"group\" && node instanceof Group)\n        return node;\n    let kind = node instanceof Array ? \"array\" : \"group\";\n    throw new NotFoundError(`${options.kind} at ${loc.path}`, {\n        path: loc.path,\n        found: kind,\n    });\n}\nexport async function open(location, options = {}) {\n    let store = \"store\" in location ? location.store : location;\n    let versionMax = VERSION_COUNTER.versionMax(store);\n    // Use the open function for the version with the most successful opens.\n    // Note that here we use the dot syntax to access the open functions\n    // because this enables us to use vi.spyOn during testing.\n    let openPrimary = versionMax === \"v2\" ? open.v2 : open.v3;\n    let openSecondary = versionMax === \"v2\" ? open.v3 : open.v2;\n    return openPrimary(location, options).catch((err) => {\n        rethrowUnless(err, NotFoundError, InvalidMetadataError);\n        return openSecondary(location, options);\n    });\n}\n/**\n * Open a Zarr v2 array or group, ignoring any v3 metadata that may coexist.\n *\n * @example Usage\n * ```ts\n * import * as zarr from \"zarrita\";\n *\n * const store = new zarr.FetchStore(\"https://example.com/legacy.zarr\");\n * const arr = await zarr.open.v2(store, { kind: \"array\" });\n * ```\n *\n * @category Read\n */\nopen.v2 = openV2;\n/**\n * Open a Zarr v3 array or group, ignoring any v2 metadata that may coexist.\n *\n * @example Usage\n * ```ts\n * import * as zarr from \"zarrita\";\n *\n * const store = new zarr.FetchStore(\"https://example.com/data.zarr\");\n * const group = await zarr.open.v3(store, { kind: \"group\" });\n * ```\n *\n * @category Read\n */\nopen.v3 = openV3;\n//# sourceMappingURL=open.js.map","// This file is copied from https://github.com/manzt/zarrita.js/pull/161\n\nimport type { AbsolutePath, AsyncReadable } from \"zarrita\";\n\n/**\n * Get a file handle to a file in a directory.\n *\n * @param root - A root directory from the Web File System API.\n * @param path - A key to a file in the root directory.\n * @returns A file handle to the file.\n */\nasync function resolveFileHandleForPath(\n  root: FileSystemDirectoryHandle,\n  path: string\n): Promise<FileSystemFileHandle> {\n  const dirs = path.split(\"/\");\n  const fname = dirs.pop();\n  if (!fname) {\n    throw new Error(\"Invalid path\");\n  }\n  for (const dir of dirs) {\n    root = await root.getDirectoryHandle(dir);\n  }\n  return root.getFileHandle(fname);\n}\n\n/**\n * A store for zarrita based on the Web File System API.\n *\n * Note: usage requires prompting the user to select a directory to grant\n * access to the Web File System API.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/File_System_API}\n *\n * @example\n * ```js\n * import * as zarr from \"zarrita\";\n *\n * let directoryHandle = await globalThis.showDirectoryPicker();\n * let store = new WebFileSystemStore(directoryHandle);\n * let root = await zarr.root(store);\n * let arr = await zarr.open(root.resolve(\"/foo\"), { kind: \"array\" });\n * ```\n */\nclass WebFileSystemStore implements AsyncReadable {\n  #root: FileSystemDirectoryHandle;\n\n  constructor(root: FileSystemDirectoryHandle) {\n    this.#root = root;\n  }\n\n  get directoryHandle(): FileSystemDirectoryHandle {\n    return this.#root;\n  }\n\n  async get(key: AbsolutePath): Promise<Uint8Array | undefined> {\n    const fh = await resolveFileHandleForPath(this.#root, key.slice(1)).catch(\n      () => {\n        // TODO: better error handling\n        // I believe a missing file will trigger an error here, which we should explicitly\n        // catch and return `undefined`\n        return undefined;\n      }\n    );\n    if (!fh) {\n      return undefined;\n    }\n    const file = await fh.getFile();\n    const buffer = await file.arrayBuffer();\n    return new Uint8Array(buffer);\n  }\n}\n\nexport default WebFileSystemStore;\n","import * as zarr from \"zarrita\";\nimport { Location, Readable, FetchStore } from \"zarrita\";\nimport WebFileSystemStore from \"./web_file_system_store\";\n\nexport type Version = \"v2\" | \"v3\";\n\nexport type ZarrArrayParams = {\n  arrayPath: string;\n  zarrVersion: Version | undefined;\n} & (\n  | {\n      type: \"fetch\";\n      url: string;\n    }\n  | {\n      type: \"filesystem\";\n      directoryHandle: FileSystemDirectoryHandle;\n      path: string;\n    }\n);\n\nexport async function openGroup(\n  location: zarr.Location<Readable>,\n  version?: Version\n): Promise<zarr.Group<Readable>> {\n  if (version === \"v2\") {\n    try {\n      return zarr.open.v2(location, { kind: \"group\", attrs: true });\n    } catch {\n      throw new Error(`Failed to open Zarr v2 group at ${location}`);\n    }\n  }\n  if (version === \"v3\") {\n    try {\n      return zarr.open.v3(location, { kind: \"group\" });\n    } catch {\n      throw new Error(`Failed to open Zarr v3 group at ${location}`);\n    }\n  }\n  try {\n    return zarr.open(location, { kind: \"group\" });\n  } catch {\n    throw new Error(`Failed to open Zarr group at ${location}`);\n  }\n}\n\nexport async function openArray(\n  location: zarr.Location<Readable>,\n  version?: Version\n): Promise<zarr.Array<zarr.DataType, Readable>> {\n  if (version === \"v2\") {\n    try {\n      return zarr.open.v2(location, { kind: \"array\", attrs: false });\n    } catch {\n      throw new Error(`Failed to open Zarr v2 array at ${location}`);\n    }\n  }\n  if (version === \"v3\") {\n    try {\n      return zarr.open.v3(location, { kind: \"array\" });\n    } catch {\n      throw new Error(`Failed to open Zarr v3 array at ${location}`);\n    }\n  }\n  try {\n    return zarr.open(location, { kind: \"array\" });\n  } catch {\n    throw new Error(`Failed to open Zarr array at ${location}`);\n  }\n}\n\nexport async function openArrayFromParams(\n  params: ZarrArrayParams\n): Promise<zarr.Array<zarr.DataType, Readable>> {\n  let rootLocation: Location<Readable>;\n\n  switch (params.type) {\n    case \"fetch\": {\n      const store = new FetchStore(params.url);\n      rootLocation = new Location(store);\n      break;\n    }\n    case \"filesystem\": {\n      rootLocation = new Location(\n        new WebFileSystemStore(params.directoryHandle),\n        params.path as `/${string}`\n      );\n      break;\n    }\n    default: {\n      const exhaustiveCheck: never = params;\n      throw new Error(`Unsupported store type: ${exhaustiveCheck}`);\n    }\n  }\n\n  const arrayLocation = params.arrayPath\n    ? rootLocation.resolve(params.arrayPath)\n    : rootLocation;\n\n  return openArray(arrayLocation, params.zarrVersion);\n}\n\nexport function createZarrArrayParams(\n  location: Location<Readable>,\n  arrayPath: string,\n  zarrVersion: Version | undefined\n): ZarrArrayParams {\n  if (location.store instanceof FetchStore) {\n    return {\n      type: \"fetch\",\n      arrayPath,\n      zarrVersion,\n      url: location.store.url.toString(),\n    };\n  } else if (location.store instanceof WebFileSystemStore) {\n    return {\n      type: \"filesystem\",\n      arrayPath,\n      zarrVersion,\n      directoryHandle: location.store.directoryHandle,\n      path: location.path,\n    };\n  } else {\n    throw new Error(\n      `Unsupported store type: ${location.store.constructor.name}`\n    );\n  }\n}\n","import { ChunkData, ChunkDataConstructor } from \"../chunk\";\n\nexport type SliceSpec = {\n  targetShape: { x: number; y: number; z: number };\n  chunkIndex: { c: number; t: number };\n  dimIndices: { x: number; y: number; z?: number; c?: number; t?: number };\n  cChunkSize?: number;\n  tChunkSize?: number;\n};\n\nexport function processChunk(\n  receivedData: ChunkData,\n  receivedShape: number[],\n  receivedStride: number[],\n  spec: SliceSpec\n): ChunkData {\n  return sliceReceivedChunk(receivedData, receivedShape, receivedStride, spec);\n}\n\nfunction sliceReceivedChunk(\n  receivedData: ChunkData,\n  receivedShape: number[],\n  receivedStride: number[],\n  spec: SliceSpec\n): ChunkData {\n  const { targetShape, chunkIndex, dimIndices } = spec;\n\n  let stride = 1;\n  for (let i = receivedShape.length - 1; i >= 0; i--) {\n    if (receivedStride[i] !== stride) {\n      throw new Error(\n        `Chunk data is not tightly packed, stride=${JSON.stringify(receivedStride)}, shape=${JSON.stringify(receivedShape)}`\n      );\n    }\n    stride *= receivedShape[i];\n  }\n\n  const receivedSpatialShape = {\n    x: receivedShape[dimIndices.x],\n    y: receivedShape[dimIndices.y],\n    z: dimIndices.z !== undefined ? receivedShape[dimIndices.z] : targetShape.z,\n  };\n\n  if (\n    receivedSpatialShape.x < targetShape.x ||\n    receivedSpatialShape.y < targetShape.y ||\n    receivedSpatialShape.z < targetShape.z\n  ) {\n    throw new Error(\n      `Received chunk too small: expected ${JSON.stringify(targetShape)}, got ${JSON.stringify(receivedSpatialShape)}`\n    );\n  }\n\n  const cOffsetInSource = spec.cChunkSize ? chunkIndex.c % spec.cChunkSize : 0;\n  const tOffsetInSource = spec.tChunkSize ? chunkIndex.t % spec.tChunkSize : 0;\n\n  const compactSize = targetShape.x * targetShape.y * targetShape.z;\n\n  const cStride = dimIndices.c !== undefined ? receivedStride[dimIndices.c] : 0;\n  const tStride = dimIndices.t !== undefined ? receivedStride[dimIndices.t] : 0;\n\n  const srcOffset = tOffsetInSource * tStride + cOffsetInSource * cStride;\n\n  const receivedExactShape =\n    receivedSpatialShape.x === targetShape.x &&\n    receivedSpatialShape.y === targetShape.y &&\n    receivedSpatialShape.z === targetShape.z;\n\n  const noSlicingNeeded =\n    srcOffset === 0 &&\n    receivedData.length === compactSize &&\n    receivedExactShape;\n\n  if (noSlicingNeeded) {\n    return receivedData;\n  }\n\n  const compactData = new (receivedData.constructor as ChunkDataConstructor)(\n    compactSize\n  );\n\n  const zStride = dimIndices.z !== undefined ? receivedStride[dimIndices.z] : 0;\n  const yStride = receivedStride[dimIndices.y];\n  let destOffset = 0;\n  for (let z = 0; z < targetShape.z; z++) {\n    const zStart = srcOffset + z * zStride;\n    for (let y = 0; y < targetShape.y; y++) {\n      const srcStart = zStart + y * yStride;\n      const srcEnd = srcStart + targetShape.x;\n      compactData.set(receivedData.subarray(srcStart, srcEnd), destOffset);\n      destOffset += targetShape.x;\n    }\n  }\n\n  return compactData;\n}\n","import * as zarr from \"zarrita\";\nimport { Logger } from \"../../utilities/logger\";\nimport { ZarrArrayParams } from \"../zarr/open\";\nimport { isChunkData, ChunkData } from \"../chunk\";\nimport { ZarrWorkerRequest, ZarrWorkerResponse } from \"./worker_kernel\";\nimport { SliceSpec, processChunk } from \"./chunk_processing\";\n// \"inline\" import to ensure worker code works in dependent projects\n// this is a workaround for a vite limitation when building a library\n// see https://github.com/vitejs/vite/issues/11672\nimport WorkerKernel from \"./worker_kernel.ts?worker&inline\";\n\ntype PendingGetChunkRequest = {\n  resolve: (value: ChunkData) => void;\n  reject: (error: Error) => void;\n  abortListener?: () => void;\n  abortSignal?: AbortSignal;\n  workerId: number;\n};\n\ntype WorkerInstance = {\n  worker: Worker;\n  pendingCount: number;\n  workerId: number;\n};\n\n// leave 2 cores for the main thread and the OS/other tabs\nconst DEFAULT_WORKER_COUNT = Math.max(1, navigator.hardwareConcurrency - 2);\nlet workerPool: WorkerInstance[] = [];\nlet messageId = 0;\nlet workerId = 0;\nconst pendingMessages = new Map<number, PendingGetChunkRequest>();\nconst canceledMessages = new Set<number>();\n\nfunction getWorkerInstance(worker: Worker): WorkerInstance | undefined {\n  const instance = workerPool.find((w) => w.worker === worker);\n  if (!instance) {\n    Logger.error(\n      \"ZarrWorker\",\n      \"Worker not found in pool - this should not happen\"\n    );\n  }\n  return instance;\n}\n\nfunction handleWorkerMessage(\n  e: MessageEvent<ZarrWorkerResponse>,\n  worker: Worker\n): void {\n  const { id, success } = e.data;\n  const pending = pendingMessages.get(id);\n\n  if (!pending) {\n    if (canceledMessages.has(id)) {\n      canceledMessages.delete(id);\n    } else {\n      Logger.warn(\n        \"ZarrWorker\",\n        `Received response for unknown message ID ${id}:`,\n        e.data\n      );\n    }\n    return;\n  }\n\n  pendingMessages.delete(id);\n\n  if (pending.abortListener && pending.abortSignal) {\n    pending.abortSignal.removeEventListener(\"abort\", pending.abortListener);\n  }\n\n  const workerInstance = getWorkerInstance(worker);\n  if (workerInstance && workerInstance.pendingCount > 0) {\n    workerInstance.pendingCount--;\n  } else if (workerInstance) {\n    Logger.error(\n      \"ZarrWorker\",\n      \"Received message but no pending tasks - this should not happen\"\n    );\n  }\n\n  if (success && e.data.type === \"getChunk\") {\n    pending.resolve(e.data.data);\n  } else if (!success) {\n    pending.reject(new Error(e.data.error || \"Unknown worker error\"));\n  }\n}\n\nfunction handleWorkerError(\n  error: ErrorEvent | MessageEvent,\n  worker: Worker\n): void {\n  if (error instanceof MessageEvent) {\n    Logger.error(\n      \"ZarrWorker\",\n      \"Message serialization error occurred - worker remains active\"\n    );\n    return;\n  }\n\n  Logger.error(\n    \"ZarrWorker\",\n    `Worker failed - replacing worker and canceling its in-flight messages`,\n    error.message\n  );\n\n  const workerInstance = getWorkerInstance(worker);\n  if (workerInstance) {\n    const workerIndex = workerPool.indexOf(workerInstance);\n    workerPool.splice(workerIndex, 1);\n  }\n\n  const failedWorkerId = workerInstance?.workerId;\n  if (failedWorkerId !== undefined) {\n    for (const [id, pending] of pendingMessages.entries()) {\n      if (pending.workerId === failedWorkerId) {\n        pending.reject(new Error(`Worker error: ${error.message}`));\n        pendingMessages.delete(id);\n      }\n    }\n  }\n\n  try {\n    const replacementWorker = createWorker();\n    workerPool.push({\n      worker: replacementWorker,\n      pendingCount: 0,\n      workerId: workerId++,\n    });\n    Logger.debug(\"ZarrWorker\", \"Replacement worker created successfully\");\n  } catch (err) {\n    Logger.error(\"ZarrWorker\", \"Failed to create replacement worker\", err);\n  }\n}\n\nfunction createWorker(): Worker {\n  const worker = new WorkerKernel();\n\n  worker.addEventListener(\"message\", (e) => handleWorkerMessage(e, worker));\n  worker.addEventListener(\"error\", (error) => handleWorkerError(error, worker));\n  worker.addEventListener(\"messageerror\", (error) =>\n    handleWorkerError(error, worker)\n  );\n\n  return worker;\n}\n\nfunction getLeastBusyWorker(): WorkerInstance {\n  if (workerPool.length === 0) {\n    throw new Error(\"Worker pool is not initialized\");\n  }\n  return workerPool.sort((a, b) => a.pendingCount - b.pendingCount)[0];\n}\n\nasync function fetchAndProcessChunkInWorker(\n  zarrParams: ZarrArrayParams,\n  chunkIndex: number[],\n  sliceSpec: SliceSpec,\n  options?: { signal?: AbortSignal }\n): Promise<ChunkData> {\n  return new Promise((resolve, reject) => {\n    const workerInstance = getLeastBusyWorker();\n\n    const id = messageId++;\n    const pending: PendingGetChunkRequest = {\n      resolve,\n      reject,\n      workerId: workerInstance.workerId,\n    };\n    pendingMessages.set(id, pending);\n\n    // set up cancellation in the worker thread if an AbortSignal is provided\n    if (options?.signal) {\n      const abortListener = () => {\n        workerInstance.worker.postMessage({\n          id: id,\n          type: \"cancel\",\n        } as ZarrWorkerRequest);\n\n        pendingMessages.delete(id);\n        canceledMessages.add(id);\n\n        workerInstance.pendingCount--;\n\n        reject(new DOMException(\"Operation was aborted\", \"AbortError\"));\n      };\n\n      if (options.signal.aborted) {\n        abortListener();\n        // delete now, message canceled before it was even posted\n        canceledMessages.delete(id);\n        return;\n      }\n\n      options.signal.addEventListener(\"abort\", abortListener, { once: true });\n\n      pending.abortListener = abortListener;\n      pending.abortSignal = options.signal;\n    }\n\n    workerInstance.pendingCount++;\n\n    workerInstance.worker.postMessage({\n      id: id,\n      type: \"getChunk\",\n      arrayParams: zarrParams,\n      index: chunkIndex,\n      sliceSpec,\n    } as ZarrWorkerRequest);\n  });\n}\n\nfunction ensureWorkerPool(): void {\n  if (workerPool.length > 0) return;\n\n  try {\n    for (let i = 0; i < DEFAULT_WORKER_COUNT; i++) {\n      const worker = createWorker();\n      workerPool.push({\n        worker,\n        pendingCount: 0,\n        workerId: workerId++,\n      });\n    }\n    Logger.debug(\n      \"ZarrWorker\",\n      `Initialized worker pool with ${workerPool.length} workers`\n    );\n  } catch {\n    Logger.warn(\"ZarrWorker\", \"Failed to create workers - clearing pool\");\n    terminateWorkerPool();\n    return;\n  }\n}\n\nexport async function fetchAndProcessChunk(\n  array: zarr.Array<zarr.DataType, zarr.Readable>,\n  arrayParams: ZarrArrayParams,\n  chunkCoords: number[],\n  sliceSpec: SliceSpec,\n  options?: { signal?: AbortSignal }\n): Promise<ChunkData> {\n  ensureWorkerPool();\n  try {\n    return await fetchAndProcessChunkInWorker(\n      arrayParams,\n      chunkCoords,\n      sliceSpec,\n      options\n    );\n  } catch (error) {\n    if (error instanceof DOMException && error.name === \"AbortError\") {\n      throw error;\n    }\n\n    Logger.warn(\"ZarrWorker\", \"Falling back to main thread\", error);\n    const rawChunk = await array.getChunk(chunkCoords, options);\n    if (!isChunkData(rawChunk.data)) {\n      throw new Error(\n        `Unsupported chunk data type: ${rawChunk.data.constructor.name}`\n      );\n    }\n    return processChunk(\n      rawChunk.data,\n      rawChunk.shape,\n      rawChunk.stride,\n      sliceSpec\n    );\n  }\n}\n\nexport function terminateWorkerPool(): void {\n  for (const workerInstance of workerPool) {\n    workerInstance.worker.terminate();\n  }\n  workerPool = [];\n  pendingMessages.clear();\n}\n","import * as zarr from \"zarrita\";\n\nimport { Chunk, SourceDimension, SourceDimensionMap } from \"../chunk\";\nimport { setChunkData } from \"../chunk_memory\";\nimport { isTextureUnpackRowAlignment } from \"../../objects/textures/texture\";\n\nimport { Image as OmeZarrImage } from \"./0.5/image\";\n\nimport { ZarrArrayParams } from \"../zarr/open\";\nimport { SliceSpec } from \"./chunk_processing\";\nimport { fetchAndProcessChunk } from \"./worker_pool\";\n\ntype OmeZarrImageLoaderProps = {\n  metadata: OmeZarrImage[\"ome\"][\"multiscales\"][number];\n  arrays: zarr.Array<zarr.DataType, zarr.Readable>[];\n  arrayParams: ZarrArrayParams[];\n};\n\n// Loads chunks from a multiscale image implementing OME-Zarr v0.5:\n// https://ngff.openmicroscopy.org/0.5/#image-layout\nexport class OmeZarrImageLoader {\n  private readonly metadata_: OmeZarrImage[\"ome\"][\"multiscales\"][number];\n  private readonly arrays_: ReadonlyArray<\n    zarr.Array<zarr.DataType, zarr.Readable>\n  >;\n  private readonly arrayParams_: ReadonlyArray<ZarrArrayParams>;\n  private readonly dimensions_: SourceDimensionMap;\n  private readonly bytesPerElement_: number;\n\n  constructor(props: OmeZarrImageLoaderProps) {\n    this.metadata_ = props.metadata;\n    this.arrays_ = props.arrays;\n    this.arrayParams_ = props.arrayParams;\n    this.dimensions_ = inferSourceDimensionMap(this.metadata_, this.arrays_);\n    this.bytesPerElement_ = bytesPerElementForDtype(this.arrays_[0].dtype);\n  }\n\n  public getSourceDimensionMap(): SourceDimensionMap {\n    return this.dimensions_;\n  }\n\n  public getBytesPerElement(): number {\n    return this.bytesPerElement_;\n  }\n\n  public async loadChunkData(chunk: Chunk, signal: AbortSignal) {\n    const chunkCoords: number[] = [];\n    chunkCoords[this.dimensions_.x.index] = chunk.chunkIndex.x;\n    chunkCoords[this.dimensions_.y.index] = chunk.chunkIndex.y;\n    if (this.dimensions_.z) {\n      chunkCoords[this.dimensions_.z.index] = chunk.chunkIndex.z;\n    }\n\n    // internal (ChunkStore) chunks have size 1 in C and T\n    // so divide by the actual chunkSize to get the chunkCoord here\n    if (this.dimensions_.c) {\n      const cLod = this.dimensions_.c.lods[chunk.lod];\n      chunkCoords[this.dimensions_.c.index] = Math.floor(\n        chunk.chunkIndex.c / cLod.chunkSize\n      );\n    }\n    if (this.dimensions_.t) {\n      const tLod = this.dimensions_.t.lods[chunk.lod];\n      chunkCoords[this.dimensions_.t.index] = Math.floor(\n        chunk.chunkIndex.t / tLod.chunkSize\n      );\n    }\n\n    const array = this.arrays_[chunk.lod];\n    const arrayParams = this.arrayParams_[chunk.lod];\n\n    const cLod = this.dimensions_.c?.lods[chunk.lod];\n    const tLod = this.dimensions_.t?.lods[chunk.lod];\n\n    const sliceSpec: SliceSpec = {\n      targetShape: chunk.shape,\n      chunkIndex: { c: chunk.chunkIndex.c, t: chunk.chunkIndex.t },\n      dimIndices: {\n        x: this.dimensions_.x.index,\n        y: this.dimensions_.y.index,\n        z: this.dimensions_.z?.index,\n        c: this.dimensions_.c?.index,\n        t: this.dimensions_.t?.index,\n      },\n      cChunkSize: cLod?.chunkSize,\n      tChunkSize: tLod?.chunkSize,\n    };\n\n    // NOTE: if source chunks have multiple channels/timepoints\n    // this results in duplicate fetching and decompression\n    const data = await fetchAndProcessChunk(\n      array,\n      arrayParams,\n      chunkCoords,\n      sliceSpec,\n      { signal }\n    );\n\n    const rowAlignment = data.BYTES_PER_ELEMENT;\n    if (!isTextureUnpackRowAlignment(rowAlignment)) {\n      throw new Error(\n        \"Invalid row alignment value. Possible values are 1, 2, 4, or 8\"\n      );\n    }\n    chunk.rowAlignmentBytes = rowAlignment;\n    setChunkData(chunk, data);\n  }\n}\n\nconst BYTES_PER_ELEMENT: Partial<Record<zarr.DataType, number>> = {\n  int8: 1,\n  uint8: 1,\n  int16: 2,\n  uint16: 2,\n  int32: 4,\n  uint32: 4,\n  float32: 4,\n};\n\nfunction bytesPerElementForDtype(dtype: zarr.DataType): number {\n  const bytes = BYTES_PER_ELEMENT[dtype];\n  if (bytes === undefined) {\n    throw new Error(\n      `Unsupported zarr dtype \"${dtype}\". ` +\n        `Supported dtypes: ${Object.keys(BYTES_PER_ELEMENT).join(\", \")}`\n    );\n  }\n  return bytes;\n}\n\nfunction inferSourceDimensionMap(\n  image: OmeZarrImage[\"ome\"][\"multiscales\"][number],\n  arrays: ReadonlyArray<zarr.Array<zarr.DataType, zarr.Readable>>\n): SourceDimensionMap {\n  const dimensionNames = image.axes.map((axis) => axis.name);\n  const numAxes = image.axes.length;\n\n  const xIndex = findDimensionIndex(dimensionNames, \"x\");\n  const yIndex = findDimensionIndex(dimensionNames, \"y\");\n\n  const makeSourceDimension = (\n    name: string,\n    index: number\n  ): SourceDimension => {\n    const lods = [];\n    for (let i = 0; i < image.datasets.length; i++) {\n      const dataset = image.datasets[i];\n      const array = arrays[i];\n      const scale = dataset.coordinateTransformations[0].scale;\n      const translation =\n        dataset.coordinateTransformations.length === 2\n          ? dataset.coordinateTransformations[1].translation\n          : new Array(numAxes).fill(0);\n      lods.push({\n        size: array.shape[index],\n        chunkSize: array.chunks[index],\n        scale: scale[index],\n        translation: translation[index],\n      });\n    }\n    // Normalize translations on spatial axes so chunk.offset = trans + chunkIdx\n    // * chunkSize * scale uniformly refers to the voxel-cell corner. Two\n    // conventions appear in the wild: \"voxel-center\" pyramids encode the\n    // half-voxel shift across LODs (translation_k - translation_{k-1} === 0.5\n    // * (scale_k - scale_{k-1})), \"voxel-corner\" pyramids keep translation\n    // constant. Detect by inspecting the pyramid; if it matches the center\n    // pattern, shift translations by -0.5 * scale per LOD so downstream code\n    // uses corner extents uniformly. Skip non-spatial axes (c, t) where the\n    // convention doesn't apply and ChunkStore enforces translation == 0.\n    if (image.axes[index].type === \"space\" && isVoxelCenterConvention(lods)) {\n      for (const lod of lods) lod.translation -= 0.5 * lod.scale;\n    }\n    return {\n      name,\n      index,\n      unit: image.axes[index].unit,\n      lods,\n    };\n  };\n\n  const dims: SourceDimensionMap = {\n    x: makeSourceDimension(dimensionNames[xIndex], xIndex),\n    y: makeSourceDimension(dimensionNames[yIndex], yIndex),\n    numLods: arrays.length,\n  };\n\n  const zIndex = findDimensionIndexSafe(dimensionNames, \"z\");\n  if (zIndex !== -1) {\n    dims.z = makeSourceDimension(dimensionNames[zIndex], zIndex);\n  }\n\n  const cIndex = findDimensionIndexSafe(dimensionNames, \"c\");\n  if (cIndex !== -1) {\n    dims.c = makeSourceDimension(dimensionNames[cIndex], cIndex);\n  }\n\n  const tIndex = findDimensionIndexSafe(dimensionNames, \"t\");\n  if (tIndex !== -1) {\n    dims.t = makeSourceDimension(dimensionNames[tIndex], tIndex);\n  }\n\n  return dims;\n}\n\nfunction compareDimensions(a: string, b: string): boolean {\n  return a.toLowerCase() === b.toLowerCase();\n}\n\nfunction findDimensionIndex(dimensions: string[], target: string): number {\n  const index = findDimensionIndexSafe(dimensions, target);\n  if (index === -1) {\n    throw new Error(\n      `Could not find \"${target}\" dimension in [${dimensions.join(\", \")}]`\n    );\n  }\n  return index;\n}\n\nfunction findDimensionIndexSafe(dimensions: string[], target: string): number {\n  return dimensions.findIndex((d) => compareDimensions(d, target));\n}\n\nfunction isVoxelCenterConvention(\n  lods: ReadonlyArray<{ scale: number; translation: number }>\n): boolean {\n  if (lods.length <= 1) return false;\n  for (let i = 1; i < lods.length; i++) {\n    const expected = 0.5 * (lods[i].scale - lods[i - 1].scale);\n    const actual = lods[i].translation - lods[i - 1].translation;\n    if (Math.abs(actual - expected) > 1e-6) return false;\n  }\n  return true;\n}\n","export var util;\n(function (util) {\n    util.assertEqual = (_) => { };\n    function assertIs(_arg) { }\n    util.assertIs = assertIs;\n    function assertNever(_x) {\n        throw new Error();\n    }\n    util.assertNever = assertNever;\n    util.arrayToEnum = (items) => {\n        const obj = {};\n        for (const item of items) {\n            obj[item] = item;\n        }\n        return obj;\n    };\n    util.getValidEnumValues = (obj) => {\n        const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n        const filtered = {};\n        for (const k of validKeys) {\n            filtered[k] = obj[k];\n        }\n        return util.objectValues(filtered);\n    };\n    util.objectValues = (obj) => {\n        return util.objectKeys(obj).map(function (e) {\n            return obj[e];\n        });\n    };\n    util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n        ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n        : (object) => {\n            const keys = [];\n            for (const key in object) {\n                if (Object.prototype.hasOwnProperty.call(object, key)) {\n                    keys.push(key);\n                }\n            }\n            return keys;\n        };\n    util.find = (arr, checker) => {\n        for (const item of arr) {\n            if (checker(item))\n                return item;\n        }\n        return undefined;\n    };\n    util.isInteger = typeof Number.isInteger === \"function\"\n        ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n        : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n    function joinValues(array, separator = \" | \") {\n        return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n    }\n    util.joinValues = joinValues;\n    util.jsonStringifyReplacer = (_, value) => {\n        if (typeof value === \"bigint\") {\n            return value.toString();\n        }\n        return value;\n    };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n    objectUtil.mergeShapes = (first, second) => {\n        return {\n            ...first,\n            ...second, // second overwrites first\n        };\n    };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n    \"string\",\n    \"nan\",\n    \"number\",\n    \"integer\",\n    \"float\",\n    \"boolean\",\n    \"date\",\n    \"bigint\",\n    \"symbol\",\n    \"function\",\n    \"undefined\",\n    \"null\",\n    \"array\",\n    \"object\",\n    \"unknown\",\n    \"promise\",\n    \"void\",\n    \"never\",\n    \"map\",\n    \"set\",\n]);\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return ZodParsedType.undefined;\n        case \"string\":\n            return ZodParsedType.string;\n        case \"number\":\n            return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n        case \"boolean\":\n            return ZodParsedType.boolean;\n        case \"function\":\n            return ZodParsedType.function;\n        case \"bigint\":\n            return ZodParsedType.bigint;\n        case \"symbol\":\n            return ZodParsedType.symbol;\n        case \"object\":\n            if (Array.isArray(data)) {\n                return ZodParsedType.array;\n            }\n            if (data === null) {\n                return ZodParsedType.null;\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return ZodParsedType.promise;\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return ZodParsedType.map;\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return ZodParsedType.set;\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return ZodParsedType.date;\n            }\n            return ZodParsedType.object;\n        default:\n            return ZodParsedType.unknown;\n    }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n    \"invalid_type\",\n    \"invalid_literal\",\n    \"custom\",\n    \"invalid_union\",\n    \"invalid_union_discriminator\",\n    \"invalid_enum_value\",\n    \"unrecognized_keys\",\n    \"invalid_arguments\",\n    \"invalid_return_type\",\n    \"invalid_date\",\n    \"invalid_string\",\n    \"too_small\",\n    \"too_big\",\n    \"invalid_intersection_types\",\n    \"not_multiple_of\",\n    \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n    const json = JSON.stringify(obj, null, 2);\n    return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n    get errors() {\n        return this.issues;\n    }\n    constructor(issues) {\n        super();\n        this.issues = [];\n        this.addIssue = (sub) => {\n            this.issues = [...this.issues, sub];\n        };\n        this.addIssues = (subs = []) => {\n            this.issues = [...this.issues, ...subs];\n        };\n        const actualProto = new.target.prototype;\n        if (Object.setPrototypeOf) {\n            // eslint-disable-next-line ban/ban\n            Object.setPrototypeOf(this, actualProto);\n        }\n        else {\n            this.__proto__ = actualProto;\n        }\n        this.name = \"ZodError\";\n        this.issues = issues;\n    }\n    format(_mapper) {\n        const mapper = _mapper ||\n            function (issue) {\n                return issue.message;\n            };\n        const fieldErrors = { _errors: [] };\n        const processError = (error) => {\n            for (const issue of error.issues) {\n                if (issue.code === \"invalid_union\") {\n                    issue.unionErrors.map(processError);\n                }\n                else if (issue.code === \"invalid_return_type\") {\n                    processError(issue.returnTypeError);\n                }\n                else if (issue.code === \"invalid_arguments\") {\n                    processError(issue.argumentsError);\n                }\n                else if (issue.path.length === 0) {\n                    fieldErrors._errors.push(mapper(issue));\n                }\n                else {\n                    let curr = fieldErrors;\n                    let i = 0;\n                    while (i < issue.path.length) {\n                        const el = issue.path[i];\n                        const terminal = i === issue.path.length - 1;\n                        if (!terminal) {\n                            curr[el] = curr[el] || { _errors: [] };\n                            // if (typeof el === \"string\") {\n                            //   curr[el] = curr[el] || { _errors: [] };\n                            // } else if (typeof el === \"number\") {\n                            //   const errorArray: any = [];\n                            //   errorArray._errors = [];\n                            //   curr[el] = curr[el] || errorArray;\n                            // }\n                        }\n                        else {\n                            curr[el] = curr[el] || { _errors: [] };\n                            curr[el]._errors.push(mapper(issue));\n                        }\n                        curr = curr[el];\n                        i++;\n                    }\n                }\n            }\n        };\n        processError(this);\n        return fieldErrors;\n    }\n    static assert(value) {\n        if (!(value instanceof ZodError)) {\n            throw new Error(`Not a ZodError: ${value}`);\n        }\n    }\n    toString() {\n        return this.message;\n    }\n    get message() {\n        return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n    }\n    get isEmpty() {\n        return this.issues.length === 0;\n    }\n    flatten(mapper = (issue) => issue.message) {\n        const fieldErrors = {};\n        const formErrors = [];\n        for (const sub of this.issues) {\n            if (sub.path.length > 0) {\n                const firstEl = sub.path[0];\n                fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n                fieldErrors[firstEl].push(mapper(sub));\n            }\n            else {\n                formErrors.push(mapper(sub));\n            }\n        }\n        return { formErrors, fieldErrors };\n    }\n    get formErrors() {\n        return this.flatten();\n    }\n}\nZodError.create = (issues) => {\n    const error = new ZodError(issues);\n    return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n    let message;\n    switch (issue.code) {\n        case ZodIssueCode.invalid_type:\n            if (issue.received === ZodParsedType.undefined) {\n                message = \"Required\";\n            }\n            else {\n                message = `Expected ${issue.expected}, received ${issue.received}`;\n            }\n            break;\n        case ZodIssueCode.invalid_literal:\n            message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n            break;\n        case ZodIssueCode.unrecognized_keys:\n            message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n            break;\n        case ZodIssueCode.invalid_union:\n            message = `Invalid input`;\n            break;\n        case ZodIssueCode.invalid_union_discriminator:\n            message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n            break;\n        case ZodIssueCode.invalid_enum_value:\n            message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n            break;\n        case ZodIssueCode.invalid_arguments:\n            message = `Invalid function arguments`;\n            break;\n        case ZodIssueCode.invalid_return_type:\n            message = `Invalid function return type`;\n            break;\n        case ZodIssueCode.invalid_date:\n            message = `Invalid date`;\n            break;\n        case ZodIssueCode.invalid_string:\n            if (typeof issue.validation === \"object\") {\n                if (\"includes\" in issue.validation) {\n                    message = `Invalid input: must include \"${issue.validation.includes}\"`;\n                    if (typeof issue.validation.position === \"number\") {\n                        message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n                    }\n                }\n                else if (\"startsWith\" in issue.validation) {\n                    message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n                }\n                else if (\"endsWith\" in issue.validation) {\n                    message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n                }\n                else {\n                    util.assertNever(issue.validation);\n                }\n            }\n            else if (issue.validation !== \"regex\") {\n                message = `Invalid ${issue.validation}`;\n            }\n            else {\n                message = \"Invalid\";\n            }\n            break;\n        case ZodIssueCode.too_small:\n            if (issue.type === \"array\")\n                message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n            else if (issue.type === \"string\")\n                message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n            else if (issue.type === \"number\")\n                message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n            else if (issue.type === \"bigint\")\n                message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n            else if (issue.type === \"date\")\n                message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n            else\n                message = \"Invalid input\";\n            break;\n        case ZodIssueCode.too_big:\n            if (issue.type === \"array\")\n                message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n            else if (issue.type === \"string\")\n                message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n            else if (issue.type === \"number\")\n                message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n            else if (issue.type === \"bigint\")\n                message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n            else if (issue.type === \"date\")\n                message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n            else\n                message = \"Invalid input\";\n            break;\n        case ZodIssueCode.custom:\n            message = `Invalid input`;\n            break;\n        case ZodIssueCode.invalid_intersection_types:\n            message = `Intersection results could not be merged`;\n            break;\n        case ZodIssueCode.not_multiple_of:\n            message = `Number must be a multiple of ${issue.multipleOf}`;\n            break;\n        case ZodIssueCode.not_finite:\n            message = \"Number must be finite\";\n            break;\n        default:\n            message = _ctx.defaultError;\n            util.assertNever(issue);\n    }\n    return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n    overrideErrorMap = map;\n}\nexport function getErrorMap() {\n    return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n    const { data, path, errorMaps, issueData } = params;\n    const fullPath = [...path, ...(issueData.path || [])];\n    const fullIssue = {\n        ...issueData,\n        path: fullPath,\n    };\n    if (issueData.message !== undefined) {\n        return {\n            ...issueData,\n            path: fullPath,\n            message: issueData.message,\n        };\n    }\n    let errorMessage = \"\";\n    const maps = errorMaps\n        .filter((m) => !!m)\n        .slice()\n        .reverse();\n    for (const map of maps) {\n        errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n    }\n    return {\n        ...issueData,\n        path: fullPath,\n        message: errorMessage,\n    };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n    const overrideMap = getErrorMap();\n    const issue = makeIssue({\n        issueData: issueData,\n        data: ctx.data,\n        path: ctx.path,\n        errorMaps: [\n            ctx.common.contextualErrorMap, // contextual error map is first priority\n            ctx.schemaErrorMap, // then schema-bound map if available\n            overrideMap, // then global override map\n            overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n        ].filter((x) => !!x),\n    });\n    ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n    constructor() {\n        this.value = \"valid\";\n    }\n    dirty() {\n        if (this.value === \"valid\")\n            this.value = \"dirty\";\n    }\n    abort() {\n        if (this.value !== \"aborted\")\n            this.value = \"aborted\";\n    }\n    static mergeArray(status, results) {\n        const arrayValue = [];\n        for (const s of results) {\n            if (s.status === \"aborted\")\n                return INVALID;\n            if (s.status === \"dirty\")\n                status.dirty();\n            arrayValue.push(s.value);\n        }\n        return { status: status.value, value: arrayValue };\n    }\n    static async mergeObjectAsync(status, pairs) {\n        const syncPairs = [];\n        for (const pair of pairs) {\n            const key = await pair.key;\n            const value = await pair.value;\n            syncPairs.push({\n                key,\n                value,\n            });\n        }\n        return ParseStatus.mergeObjectSync(status, syncPairs);\n    }\n    static mergeObjectSync(status, pairs) {\n        const finalObject = {};\n        for (const pair of pairs) {\n            const { key, value } = pair;\n            if (key.status === \"aborted\")\n                return INVALID;\n            if (value.status === \"aborted\")\n                return INVALID;\n            if (key.status === \"dirty\")\n                status.dirty();\n            if (value.status === \"dirty\")\n                status.dirty();\n            if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n                finalObject[key.value] = value.value;\n            }\n        }\n        return { status: status.value, value: finalObject };\n    }\n}\nexport const INVALID = Object.freeze({\n    status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n    errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n    // biome-ignore lint:\n    errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n    constructor(parent, value, path, key) {\n        this._cachedPath = [];\n        this.parent = parent;\n        this.data = value;\n        this._path = path;\n        this._key = key;\n    }\n    get path() {\n        if (!this._cachedPath.length) {\n            if (Array.isArray(this._key)) {\n                this._cachedPath.push(...this._path, ...this._key);\n            }\n            else {\n                this._cachedPath.push(...this._path, this._key);\n            }\n        }\n        return this._cachedPath;\n    }\n}\nconst handleResult = (ctx, result) => {\n    if (isValid(result)) {\n        return { success: true, data: result.value };\n    }\n    else {\n        if (!ctx.common.issues.length) {\n            throw new Error(\"Validation failed but no issues detected.\");\n        }\n        return {\n            success: false,\n            get error() {\n                if (this._error)\n                    return this._error;\n                const error = new ZodError(ctx.common.issues);\n                this._error = error;\n                return this._error;\n            },\n        };\n    }\n};\nfunction processCreateParams(params) {\n    if (!params)\n        return {};\n    const { errorMap, invalid_type_error, required_error, description } = params;\n    if (errorMap && (invalid_type_error || required_error)) {\n        throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n    }\n    if (errorMap)\n        return { errorMap: errorMap, description };\n    const customMap = (iss, ctx) => {\n        const { message } = params;\n        if (iss.code === \"invalid_enum_value\") {\n            return { message: message ?? ctx.defaultError };\n        }\n        if (typeof ctx.data === \"undefined\") {\n            return { message: message ?? required_error ?? ctx.defaultError };\n        }\n        if (iss.code !== \"invalid_type\")\n            return { message: ctx.defaultError };\n        return { message: message ?? invalid_type_error ?? ctx.defaultError };\n    };\n    return { errorMap: customMap, description };\n}\nexport class ZodType {\n    get description() {\n        return this._def.description;\n    }\n    _getType(input) {\n        return getParsedType(input.data);\n    }\n    _getOrReturnCtx(input, ctx) {\n        return (ctx || {\n            common: input.parent.common,\n            data: input.data,\n            parsedType: getParsedType(input.data),\n            schemaErrorMap: this._def.errorMap,\n            path: input.path,\n            parent: input.parent,\n        });\n    }\n    _processInputParams(input) {\n        return {\n            status: new ParseStatus(),\n            ctx: {\n                common: input.parent.common,\n                data: input.data,\n                parsedType: getParsedType(input.data),\n                schemaErrorMap: this._def.errorMap,\n                path: input.path,\n                parent: input.parent,\n            },\n        };\n    }\n    _parseSync(input) {\n        const result = this._parse(input);\n        if (isAsync(result)) {\n            throw new Error(\"Synchronous parse encountered promise.\");\n        }\n        return result;\n    }\n    _parseAsync(input) {\n        const result = this._parse(input);\n        return Promise.resolve(result);\n    }\n    parse(data, params) {\n        const result = this.safeParse(data, params);\n        if (result.success)\n            return result.data;\n        throw result.error;\n    }\n    safeParse(data, params) {\n        const ctx = {\n            common: {\n                issues: [],\n                async: params?.async ?? false,\n                contextualErrorMap: params?.errorMap,\n            },\n            path: params?.path || [],\n            schemaErrorMap: this._def.errorMap,\n            parent: null,\n            data,\n            parsedType: getParsedType(data),\n        };\n        const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n        return handleResult(ctx, result);\n    }\n    \"~validate\"(data) {\n        const ctx = {\n            common: {\n                issues: [],\n                async: !!this[\"~standard\"].async,\n            },\n            path: [],\n            schemaErrorMap: this._def.errorMap,\n            parent: null,\n            data,\n            parsedType: getParsedType(data),\n        };\n        if (!this[\"~standard\"].async) {\n            try {\n                const result = this._parseSync({ data, path: [], parent: ctx });\n                return isValid(result)\n                    ? {\n                        value: result.value,\n                    }\n                    : {\n                        issues: ctx.common.issues,\n                    };\n            }\n            catch (err) {\n                if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n                    this[\"~standard\"].async = true;\n                }\n                ctx.common = {\n                    issues: [],\n                    async: true,\n                };\n            }\n        }\n        return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n            ? {\n                value: result.value,\n            }\n            : {\n                issues: ctx.common.issues,\n            });\n    }\n    async parseAsync(data, params) {\n        const result = await this.safeParseAsync(data, params);\n        if (result.success)\n            return result.data;\n        throw result.error;\n    }\n    async safeParseAsync(data, params) {\n        const ctx = {\n            common: {\n                issues: [],\n                contextualErrorMap: params?.errorMap,\n                async: true,\n            },\n            path: params?.path || [],\n            schemaErrorMap: this._def.errorMap,\n            parent: null,\n            data,\n            parsedType: getParsedType(data),\n        };\n        const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n        const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n        return handleResult(ctx, result);\n    }\n    refine(check, message) {\n        const getIssueProperties = (val) => {\n            if (typeof message === \"string\" || typeof message === \"undefined\") {\n                return { message };\n            }\n            else if (typeof message === \"function\") {\n                return message(val);\n            }\n            else {\n                return message;\n            }\n        };\n        return this._refinement((val, ctx) => {\n            const result = check(val);\n            const setError = () => ctx.addIssue({\n                code: ZodIssueCode.custom,\n                ...getIssueProperties(val),\n            });\n            if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n                return result.then((data) => {\n                    if (!data) {\n                        setError();\n                        return false;\n                    }\n                    else {\n                        return true;\n                    }\n                });\n            }\n            if (!result) {\n                setError();\n                return false;\n            }\n            else {\n                return true;\n            }\n        });\n    }\n    refinement(check, refinementData) {\n        return this._refinement((val, ctx) => {\n            if (!check(val)) {\n                ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n                return false;\n            }\n            else {\n                return true;\n            }\n        });\n    }\n    _refinement(refinement) {\n        return new ZodEffects({\n            schema: this,\n            typeName: ZodFirstPartyTypeKind.ZodEffects,\n            effect: { type: \"refinement\", refinement },\n        });\n    }\n    superRefine(refinement) {\n        return this._refinement(refinement);\n    }\n    constructor(def) {\n        /** Alias of safeParseAsync */\n        this.spa = this.safeParseAsync;\n        this._def = def;\n        this.parse = this.parse.bind(this);\n        this.safeParse = this.safeParse.bind(this);\n        this.parseAsync = this.parseAsync.bind(this);\n        this.safeParseAsync = this.safeParseAsync.bind(this);\n        this.spa = this.spa.bind(this);\n        this.refine = this.refine.bind(this);\n        this.refinement = this.refinement.bind(this);\n        this.superRefine = this.superRefine.bind(this);\n        this.optional = this.optional.bind(this);\n        this.nullable = this.nullable.bind(this);\n        this.nullish = this.nullish.bind(this);\n        this.array = this.array.bind(this);\n        this.promise = this.promise.bind(this);\n        this.or = this.or.bind(this);\n        this.and = this.and.bind(this);\n        this.transform = this.transform.bind(this);\n        this.brand = this.brand.bind(this);\n        this.default = this.default.bind(this);\n        this.catch = this.catch.bind(this);\n        this.describe = this.describe.bind(this);\n        this.pipe = this.pipe.bind(this);\n        this.readonly = this.readonly.bind(this);\n        this.isNullable = this.isNullable.bind(this);\n        this.isOptional = this.isOptional.bind(this);\n        this[\"~standard\"] = {\n            version: 1,\n            vendor: \"zod\",\n            validate: (data) => this[\"~validate\"](data),\n        };\n    }\n    optional() {\n        return ZodOptional.create(this, this._def);\n    }\n    nullable() {\n        return ZodNullable.create(this, this._def);\n    }\n    nullish() {\n        return this.nullable().optional();\n    }\n    array() {\n        return ZodArray.create(this);\n    }\n    promise() {\n        return ZodPromise.create(this, this._def);\n    }\n    or(option) {\n        return ZodUnion.create([this, option], this._def);\n    }\n    and(incoming) {\n        return ZodIntersection.create(this, incoming, this._def);\n    }\n    transform(transform) {\n        return new ZodEffects({\n            ...processCreateParams(this._def),\n            schema: this,\n            typeName: ZodFirstPartyTypeKind.ZodEffects,\n            effect: { type: \"transform\", transform },\n        });\n    }\n    default(def) {\n        const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n        return new ZodDefault({\n            ...processCreateParams(this._def),\n            innerType: this,\n            defaultValue: defaultValueFunc,\n            typeName: ZodFirstPartyTypeKind.ZodDefault,\n        });\n    }\n    brand() {\n        return new ZodBranded({\n            typeName: ZodFirstPartyTypeKind.ZodBranded,\n            type: this,\n            ...processCreateParams(this._def),\n        });\n    }\n    catch(def) {\n        const catchValueFunc = typeof def === \"function\" ? def : () => def;\n        return new ZodCatch({\n            ...processCreateParams(this._def),\n            innerType: this,\n            catchValue: catchValueFunc,\n            typeName: ZodFirstPartyTypeKind.ZodCatch,\n        });\n    }\n    describe(description) {\n        const This = this.constructor;\n        return new This({\n            ...this._def,\n            description,\n        });\n    }\n    pipe(target) {\n        return ZodPipeline.create(this, target);\n    }\n    readonly() {\n        return ZodReadonly.create(this);\n    }\n    isOptional() {\n        return this.safeParse(undefined).success;\n    }\n    isNullable() {\n        return this.safeParse(null).success;\n    }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n//   /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n//   /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n//   /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n//   /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n//   /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n    let secondsRegexSource = `[0-5]\\\\d`;\n    if (args.precision) {\n        secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n    }\n    else if (args.precision == null) {\n        secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n    }\n    const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n    return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n    return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n    let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n    const opts = [];\n    opts.push(args.local ? `Z?` : `Z`);\n    if (args.offset)\n        opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n    regex = `${regex}(${opts.join(\"|\")})`;\n    return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n    if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n        return true;\n    }\n    if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n        return true;\n    }\n    return false;\n}\nfunction isValidJWT(jwt, alg) {\n    if (!jwtRegex.test(jwt))\n        return false;\n    try {\n        const [header] = jwt.split(\".\");\n        if (!header)\n            return false;\n        // Convert base64url to base64\n        const base64 = header\n            .replace(/-/g, \"+\")\n            .replace(/_/g, \"/\")\n            .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n        const decoded = JSON.parse(atob(base64));\n        if (typeof decoded !== \"object\" || decoded === null)\n            return false;\n        if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n            return false;\n        if (!decoded.alg)\n            return false;\n        if (alg && decoded.alg !== alg)\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nfunction isValidCidr(ip, version) {\n    if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n        return true;\n    }\n    if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n        return true;\n    }\n    return false;\n}\nexport class ZodString extends ZodType {\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = String(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.string) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.string,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const status = new ParseStatus();\n        let ctx = undefined;\n        for (const check of this._def.checks) {\n            if (check.kind === \"min\") {\n                if (input.data.length < check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        minimum: check.value,\n                        type: \"string\",\n                        inclusive: true,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                if (input.data.length > check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        maximum: check.value,\n                        type: \"string\",\n                        inclusive: true,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"length\") {\n                const tooBig = input.data.length > check.value;\n                const tooSmall = input.data.length < check.value;\n                if (tooBig || tooSmall) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    if (tooBig) {\n                        addIssueToContext(ctx, {\n                            code: ZodIssueCode.too_big,\n                            maximum: check.value,\n                            type: \"string\",\n                            inclusive: true,\n                            exact: true,\n                            message: check.message,\n                        });\n                    }\n                    else if (tooSmall) {\n                        addIssueToContext(ctx, {\n                            code: ZodIssueCode.too_small,\n                            minimum: check.value,\n                            type: \"string\",\n                            inclusive: true,\n                            exact: true,\n                            message: check.message,\n                        });\n                    }\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"email\") {\n                if (!emailRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"email\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"emoji\") {\n                if (!emojiRegex) {\n                    emojiRegex = new RegExp(_emojiRegex, \"u\");\n                }\n                if (!emojiRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"emoji\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"uuid\") {\n                if (!uuidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"uuid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"nanoid\") {\n                if (!nanoidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"nanoid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"cuid\") {\n                if (!cuidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"cuid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"cuid2\") {\n                if (!cuid2Regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"cuid2\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"ulid\") {\n                if (!ulidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"ulid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"url\") {\n                try {\n                    new URL(input.data);\n                }\n                catch {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"url\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"regex\") {\n                check.regex.lastIndex = 0;\n                const testResult = check.regex.test(input.data);\n                if (!testResult) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"regex\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"trim\") {\n                input.data = input.data.trim();\n            }\n            else if (check.kind === \"includes\") {\n                if (!input.data.includes(check.value, check.position)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: { includes: check.value, position: check.position },\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"toLowerCase\") {\n                input.data = input.data.toLowerCase();\n            }\n            else if (check.kind === \"toUpperCase\") {\n                input.data = input.data.toUpperCase();\n            }\n            else if (check.kind === \"startsWith\") {\n                if (!input.data.startsWith(check.value)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: { startsWith: check.value },\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"endsWith\") {\n                if (!input.data.endsWith(check.value)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: { endsWith: check.value },\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"datetime\") {\n                const regex = datetimeRegex(check);\n                if (!regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: \"datetime\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"date\") {\n                const regex = dateRegex;\n                if (!regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: \"date\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"time\") {\n                const regex = timeRegex(check);\n                if (!regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: \"time\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"duration\") {\n                if (!durationRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"duration\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"ip\") {\n                if (!isValidIP(input.data, check.version)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"ip\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"jwt\") {\n                if (!isValidJWT(input.data, check.alg)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"jwt\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"cidr\") {\n                if (!isValidCidr(input.data, check.version)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"cidr\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"base64\") {\n                if (!base64Regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"base64\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"base64url\") {\n                if (!base64urlRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"base64url\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return { status: status.value, value: input.data };\n    }\n    _regex(regex, validation, message) {\n        return this.refinement((data) => regex.test(data), {\n            validation,\n            code: ZodIssueCode.invalid_string,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    _addCheck(check) {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    email(message) {\n        return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n    }\n    url(message) {\n        return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n    }\n    emoji(message) {\n        return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n    }\n    uuid(message) {\n        return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n    }\n    nanoid(message) {\n        return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n    }\n    cuid(message) {\n        return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n    }\n    cuid2(message) {\n        return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n    }\n    ulid(message) {\n        return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n    }\n    base64(message) {\n        return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n    }\n    base64url(message) {\n        // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n        return this._addCheck({\n            kind: \"base64url\",\n            ...errorUtil.errToObj(message),\n        });\n    }\n    jwt(options) {\n        return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n    }\n    ip(options) {\n        return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n    }\n    cidr(options) {\n        return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n    }\n    datetime(options) {\n        if (typeof options === \"string\") {\n            return this._addCheck({\n                kind: \"datetime\",\n                precision: null,\n                offset: false,\n                local: false,\n                message: options,\n            });\n        }\n        return this._addCheck({\n            kind: \"datetime\",\n            precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n            offset: options?.offset ?? false,\n            local: options?.local ?? false,\n            ...errorUtil.errToObj(options?.message),\n        });\n    }\n    date(message) {\n        return this._addCheck({ kind: \"date\", message });\n    }\n    time(options) {\n        if (typeof options === \"string\") {\n            return this._addCheck({\n                kind: \"time\",\n                precision: null,\n                message: options,\n            });\n        }\n        return this._addCheck({\n            kind: \"time\",\n            precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n            ...errorUtil.errToObj(options?.message),\n        });\n    }\n    duration(message) {\n        return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n    }\n    regex(regex, message) {\n        return this._addCheck({\n            kind: \"regex\",\n            regex: regex,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    includes(value, options) {\n        return this._addCheck({\n            kind: \"includes\",\n            value: value,\n            position: options?.position,\n            ...errorUtil.errToObj(options?.message),\n        });\n    }\n    startsWith(value, message) {\n        return this._addCheck({\n            kind: \"startsWith\",\n            value: value,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    endsWith(value, message) {\n        return this._addCheck({\n            kind: \"endsWith\",\n            value: value,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    min(minLength, message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: minLength,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    max(maxLength, message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: maxLength,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    length(len, message) {\n        return this._addCheck({\n            kind: \"length\",\n            value: len,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    /**\n     * Equivalent to `.min(1)`\n     */\n    nonempty(message) {\n        return this.min(1, errorUtil.errToObj(message));\n    }\n    trim() {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, { kind: \"trim\" }],\n        });\n    }\n    toLowerCase() {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n        });\n    }\n    toUpperCase() {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n        });\n    }\n    get isDatetime() {\n        return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n    }\n    get isDate() {\n        return !!this._def.checks.find((ch) => ch.kind === \"date\");\n    }\n    get isTime() {\n        return !!this._def.checks.find((ch) => ch.kind === \"time\");\n    }\n    get isDuration() {\n        return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n    }\n    get isEmail() {\n        return !!this._def.checks.find((ch) => ch.kind === \"email\");\n    }\n    get isURL() {\n        return !!this._def.checks.find((ch) => ch.kind === \"url\");\n    }\n    get isEmoji() {\n        return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n    }\n    get isUUID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n    }\n    get isNANOID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n    }\n    get isCUID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n    }\n    get isCUID2() {\n        return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n    }\n    get isULID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n    }\n    get isIP() {\n        return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n    }\n    get isCIDR() {\n        return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n    }\n    get isBase64() {\n        return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n    }\n    get isBase64url() {\n        // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n        return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n    }\n    get minLength() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min;\n    }\n    get maxLength() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max;\n    }\n}\nZodString.create = (params) => {\n    return new ZodString({\n        checks: [],\n        typeName: ZodFirstPartyTypeKind.ZodString,\n        coerce: params?.coerce ?? false,\n        ...processCreateParams(params),\n    });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n    const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n    const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n    const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n    const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n    const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n    return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n    constructor() {\n        super(...arguments);\n        this.min = this.gte;\n        this.max = this.lte;\n        this.step = this.multipleOf;\n    }\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = Number(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.number) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.number,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        let ctx = undefined;\n        const status = new ParseStatus();\n        for (const check of this._def.checks) {\n            if (check.kind === \"int\") {\n                if (!util.isInteger(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_type,\n                        expected: \"integer\",\n                        received: \"float\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"min\") {\n                const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n                if (tooSmall) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        minimum: check.value,\n                        type: \"number\",\n                        inclusive: check.inclusive,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n                if (tooBig) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        maximum: check.value,\n                        type: \"number\",\n                        inclusive: check.inclusive,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"multipleOf\") {\n                if (floatSafeRemainder(input.data, check.value) !== 0) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.not_multiple_of,\n                        multipleOf: check.value,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"finite\") {\n                if (!Number.isFinite(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.not_finite,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return { status: status.value, value: input.data };\n    }\n    gte(value, message) {\n        return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n    }\n    gt(value, message) {\n        return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n    }\n    lte(value, message) {\n        return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n    }\n    lt(value, message) {\n        return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n    }\n    setLimit(kind, value, inclusive, message) {\n        return new ZodNumber({\n            ...this._def,\n            checks: [\n                ...this._def.checks,\n                {\n                    kind,\n                    value,\n                    inclusive,\n                    message: errorUtil.toString(message),\n                },\n            ],\n        });\n    }\n    _addCheck(check) {\n        return new ZodNumber({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    int(message) {\n        return this._addCheck({\n            kind: \"int\",\n            message: errorUtil.toString(message),\n        });\n    }\n    positive(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: 0,\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    negative(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: 0,\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonpositive(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: 0,\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonnegative(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: 0,\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    multipleOf(value, message) {\n        return this._addCheck({\n            kind: \"multipleOf\",\n            value: value,\n            message: errorUtil.toString(message),\n        });\n    }\n    finite(message) {\n        return this._addCheck({\n            kind: \"finite\",\n            message: errorUtil.toString(message),\n        });\n    }\n    safe(message) {\n        return this._addCheck({\n            kind: \"min\",\n            inclusive: true,\n            value: Number.MIN_SAFE_INTEGER,\n            message: errorUtil.toString(message),\n        })._addCheck({\n            kind: \"max\",\n            inclusive: true,\n            value: Number.MAX_SAFE_INTEGER,\n            message: errorUtil.toString(message),\n        });\n    }\n    get minValue() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min;\n    }\n    get maxValue() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max;\n    }\n    get isInt() {\n        return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n    }\n    get isFinite() {\n        let max = null;\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n                return true;\n            }\n            else if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n            else if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return Number.isFinite(min) && Number.isFinite(max);\n    }\n}\nZodNumber.create = (params) => {\n    return new ZodNumber({\n        checks: [],\n        typeName: ZodFirstPartyTypeKind.ZodNumber,\n        coerce: params?.coerce || false,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodBigInt extends ZodType {\n    constructor() {\n        super(...arguments);\n        this.min = this.gte;\n        this.max = this.lte;\n    }\n    _parse(input) {\n        if (this._def.coerce) {\n            try {\n                input.data = BigInt(input.data);\n            }\n            catch {\n                return this._getInvalidInput(input);\n            }\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.bigint) {\n            return this._getInvalidInput(input);\n        }\n        let ctx = undefined;\n        const status = new ParseStatus();\n        for (const check of this._def.checks) {\n            if (check.kind === \"min\") {\n                const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n                if (tooSmall) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        type: \"bigint\",\n                        minimum: check.value,\n                        inclusive: check.inclusive,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n                if (tooBig) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        type: \"bigint\",\n                        maximum: check.value,\n                        inclusive: check.inclusive,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"multipleOf\") {\n                if (input.data % check.value !== BigInt(0)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.not_multiple_of,\n                        multipleOf: check.value,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return { status: status.value, value: input.data };\n    }\n    _getInvalidInput(input) {\n        const ctx = this._getOrReturnCtx(input);\n        addIssueToContext(ctx, {\n            code: ZodIssueCode.invalid_type,\n            expected: ZodParsedType.bigint,\n            received: ctx.parsedType,\n        });\n        return INVALID;\n    }\n    gte(value, message) {\n        return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n    }\n    gt(value, message) {\n        return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n    }\n    lte(value, message) {\n        return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n    }\n    lt(value, message) {\n        return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n    }\n    setLimit(kind, value, inclusive, message) {\n        return new ZodBigInt({\n            ...this._def,\n            checks: [\n                ...this._def.checks,\n                {\n                    kind,\n                    value,\n                    inclusive,\n                    message: errorUtil.toString(message),\n                },\n            ],\n        });\n    }\n    _addCheck(check) {\n        return new ZodBigInt({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    positive(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: BigInt(0),\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    negative(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: BigInt(0),\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonpositive(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: BigInt(0),\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonnegative(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: BigInt(0),\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    multipleOf(value, message) {\n        return this._addCheck({\n            kind: \"multipleOf\",\n            value,\n            message: errorUtil.toString(message),\n        });\n    }\n    get minValue() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min;\n    }\n    get maxValue() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max;\n    }\n}\nZodBigInt.create = (params) => {\n    return new ZodBigInt({\n        checks: [],\n        typeName: ZodFirstPartyTypeKind.ZodBigInt,\n        coerce: params?.coerce ?? false,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodBoolean extends ZodType {\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = Boolean(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.boolean) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.boolean,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodBoolean.create = (params) => {\n    return new ZodBoolean({\n        typeName: ZodFirstPartyTypeKind.ZodBoolean,\n        coerce: params?.coerce || false,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodDate extends ZodType {\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = new Date(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.date) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.date,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        if (Number.isNaN(input.data.getTime())) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_date,\n            });\n            return INVALID;\n        }\n        const status = new ParseStatus();\n        let ctx = undefined;\n        for (const check of this._def.checks) {\n            if (check.kind === \"min\") {\n                if (input.data.getTime() < check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        message: check.message,\n                        inclusive: true,\n                        exact: false,\n                        minimum: check.value,\n                        type: \"date\",\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                if (input.data.getTime() > check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        message: check.message,\n                        inclusive: true,\n                        exact: false,\n                        maximum: check.value,\n                        type: \"date\",\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return {\n            status: status.value,\n            value: new Date(input.data.getTime()),\n        };\n    }\n    _addCheck(check) {\n        return new ZodDate({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    min(minDate, message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: minDate.getTime(),\n            message: errorUtil.toString(message),\n        });\n    }\n    max(maxDate, message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: maxDate.getTime(),\n            message: errorUtil.toString(message),\n        });\n    }\n    get minDate() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min != null ? new Date(min) : null;\n    }\n    get maxDate() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max != null ? new Date(max) : null;\n    }\n}\nZodDate.create = (params) => {\n    return new ZodDate({\n        checks: [],\n        coerce: params?.coerce || false,\n        typeName: ZodFirstPartyTypeKind.ZodDate,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodSymbol extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.symbol) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.symbol,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodSymbol.create = (params) => {\n    return new ZodSymbol({\n        typeName: ZodFirstPartyTypeKind.ZodSymbol,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodUndefined extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.undefined) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.undefined,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodUndefined.create = (params) => {\n    return new ZodUndefined({\n        typeName: ZodFirstPartyTypeKind.ZodUndefined,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNull extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.null) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.null,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodNull.create = (params) => {\n    return new ZodNull({\n        typeName: ZodFirstPartyTypeKind.ZodNull,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodAny extends ZodType {\n    constructor() {\n        super(...arguments);\n        // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n        this._any = true;\n    }\n    _parse(input) {\n        return OK(input.data);\n    }\n}\nZodAny.create = (params) => {\n    return new ZodAny({\n        typeName: ZodFirstPartyTypeKind.ZodAny,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodUnknown extends ZodType {\n    constructor() {\n        super(...arguments);\n        // required\n        this._unknown = true;\n    }\n    _parse(input) {\n        return OK(input.data);\n    }\n}\nZodUnknown.create = (params) => {\n    return new ZodUnknown({\n        typeName: ZodFirstPartyTypeKind.ZodUnknown,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNever extends ZodType {\n    _parse(input) {\n        const ctx = this._getOrReturnCtx(input);\n        addIssueToContext(ctx, {\n            code: ZodIssueCode.invalid_type,\n            expected: ZodParsedType.never,\n            received: ctx.parsedType,\n        });\n        return INVALID;\n    }\n}\nZodNever.create = (params) => {\n    return new ZodNever({\n        typeName: ZodFirstPartyTypeKind.ZodNever,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodVoid extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.undefined) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.void,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodVoid.create = (params) => {\n    return new ZodVoid({\n        typeName: ZodFirstPartyTypeKind.ZodVoid,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodArray extends ZodType {\n    _parse(input) {\n        const { ctx, status } = this._processInputParams(input);\n        const def = this._def;\n        if (ctx.parsedType !== ZodParsedType.array) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.array,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        if (def.exactLength !== null) {\n            const tooBig = ctx.data.length > def.exactLength.value;\n            const tooSmall = ctx.data.length < def.exactLength.value;\n            if (tooBig || tooSmall) {\n                addIssueToContext(ctx, {\n                    code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n                    minimum: (tooSmall ? def.exactLength.value : undefined),\n                    maximum: (tooBig ? def.exactLength.value : undefined),\n                    type: \"array\",\n                    inclusive: true,\n                    exact: true,\n                    message: def.exactLength.message,\n                });\n                status.dirty();\n            }\n        }\n        if (def.minLength !== null) {\n            if (ctx.data.length < def.minLength.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_small,\n                    minimum: def.minLength.value,\n                    type: \"array\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.minLength.message,\n                });\n                status.dirty();\n            }\n        }\n        if (def.maxLength !== null) {\n            if (ctx.data.length > def.maxLength.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_big,\n                    maximum: def.maxLength.value,\n                    type: \"array\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.maxLength.message,\n                });\n                status.dirty();\n            }\n        }\n        if (ctx.common.async) {\n            return Promise.all([...ctx.data].map((item, i) => {\n                return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n            })).then((result) => {\n                return ParseStatus.mergeArray(status, result);\n            });\n        }\n        const result = [...ctx.data].map((item, i) => {\n            return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n        });\n        return ParseStatus.mergeArray(status, result);\n    }\n    get element() {\n        return this._def.type;\n    }\n    min(minLength, message) {\n        return new ZodArray({\n            ...this._def,\n            minLength: { value: minLength, message: errorUtil.toString(message) },\n        });\n    }\n    max(maxLength, message) {\n        return new ZodArray({\n            ...this._def,\n            maxLength: { value: maxLength, message: errorUtil.toString(message) },\n        });\n    }\n    length(len, message) {\n        return new ZodArray({\n            ...this._def,\n            exactLength: { value: len, message: errorUtil.toString(message) },\n        });\n    }\n    nonempty(message) {\n        return this.min(1, message);\n    }\n}\nZodArray.create = (schema, params) => {\n    return new ZodArray({\n        type: schema,\n        minLength: null,\n        maxLength: null,\n        exactLength: null,\n        typeName: ZodFirstPartyTypeKind.ZodArray,\n        ...processCreateParams(params),\n    });\n};\nfunction deepPartialify(schema) {\n    if (schema instanceof ZodObject) {\n        const newShape = {};\n        for (const key in schema.shape) {\n            const fieldSchema = schema.shape[key];\n            newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n        }\n        return new ZodObject({\n            ...schema._def,\n            shape: () => newShape,\n        });\n    }\n    else if (schema instanceof ZodArray) {\n        return new ZodArray({\n            ...schema._def,\n            type: deepPartialify(schema.element),\n        });\n    }\n    else if (schema instanceof ZodOptional) {\n        return ZodOptional.create(deepPartialify(schema.unwrap()));\n    }\n    else if (schema instanceof ZodNullable) {\n        return ZodNullable.create(deepPartialify(schema.unwrap()));\n    }\n    else if (schema instanceof ZodTuple) {\n        return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n    }\n    else {\n        return schema;\n    }\n}\nexport class ZodObject extends ZodType {\n    constructor() {\n        super(...arguments);\n        this._cached = null;\n        /**\n         * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n         * If you want to pass through unknown properties, use `.passthrough()` instead.\n         */\n        this.nonstrict = this.passthrough;\n        // extend<\n        //   Augmentation extends ZodRawShape,\n        //   NewOutput extends util.flatten<{\n        //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n        //       ? Augmentation[k][\"_output\"]\n        //       : k extends keyof Output\n        //       ? Output[k]\n        //       : never;\n        //   }>,\n        //   NewInput extends util.flatten<{\n        //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n        //       ? Augmentation[k][\"_input\"]\n        //       : k extends keyof Input\n        //       ? Input[k]\n        //       : never;\n        //   }>\n        // >(\n        //   augmentation: Augmentation\n        // ): ZodObject<\n        //   extendShape<T, Augmentation>,\n        //   UnknownKeys,\n        //   Catchall,\n        //   NewOutput,\n        //   NewInput\n        // > {\n        //   return new ZodObject({\n        //     ...this._def,\n        //     shape: () => ({\n        //       ...this._def.shape(),\n        //       ...augmentation,\n        //     }),\n        //   }) as any;\n        // }\n        /**\n         * @deprecated Use `.extend` instead\n         *  */\n        this.augment = this.extend;\n    }\n    _getCached() {\n        if (this._cached !== null)\n            return this._cached;\n        const shape = this._def.shape();\n        const keys = util.objectKeys(shape);\n        this._cached = { shape, keys };\n        return this._cached;\n    }\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.object) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.object,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const { status, ctx } = this._processInputParams(input);\n        const { shape, keys: shapeKeys } = this._getCached();\n        const extraKeys = [];\n        if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n            for (const key in ctx.data) {\n                if (!shapeKeys.includes(key)) {\n                    extraKeys.push(key);\n                }\n            }\n        }\n        const pairs = [];\n        for (const key of shapeKeys) {\n            const keyValidator = shape[key];\n            const value = ctx.data[key];\n            pairs.push({\n                key: { status: \"valid\", value: key },\n                value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n                alwaysSet: key in ctx.data,\n            });\n        }\n        if (this._def.catchall instanceof ZodNever) {\n            const unknownKeys = this._def.unknownKeys;\n            if (unknownKeys === \"passthrough\") {\n                for (const key of extraKeys) {\n                    pairs.push({\n                        key: { status: \"valid\", value: key },\n                        value: { status: \"valid\", value: ctx.data[key] },\n                    });\n                }\n            }\n            else if (unknownKeys === \"strict\") {\n                if (extraKeys.length > 0) {\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.unrecognized_keys,\n                        keys: extraKeys,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (unknownKeys === \"strip\") {\n            }\n            else {\n                throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n            }\n        }\n        else {\n            // run catchall validation\n            const catchall = this._def.catchall;\n            for (const key of extraKeys) {\n                const value = ctx.data[key];\n                pairs.push({\n                    key: { status: \"valid\", value: key },\n                    value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n                    ),\n                    alwaysSet: key in ctx.data,\n                });\n            }\n        }\n        if (ctx.common.async) {\n            return Promise.resolve()\n                .then(async () => {\n                const syncPairs = [];\n                for (const pair of pairs) {\n                    const key = await pair.key;\n                    const value = await pair.value;\n                    syncPairs.push({\n                        key,\n                        value,\n                        alwaysSet: pair.alwaysSet,\n                    });\n                }\n                return syncPairs;\n            })\n                .then((syncPairs) => {\n                return ParseStatus.mergeObjectSync(status, syncPairs);\n            });\n        }\n        else {\n            return ParseStatus.mergeObjectSync(status, pairs);\n        }\n    }\n    get shape() {\n        return this._def.shape();\n    }\n    strict(message) {\n        errorUtil.errToObj;\n        return new ZodObject({\n            ...this._def,\n            unknownKeys: \"strict\",\n            ...(message !== undefined\n                ? {\n                    errorMap: (issue, ctx) => {\n                        const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n                        if (issue.code === \"unrecognized_keys\")\n                            return {\n                                message: errorUtil.errToObj(message).message ?? defaultError,\n                            };\n                        return {\n                            message: defaultError,\n                        };\n                    },\n                }\n                : {}),\n        });\n    }\n    strip() {\n        return new ZodObject({\n            ...this._def,\n            unknownKeys: \"strip\",\n        });\n    }\n    passthrough() {\n        return new ZodObject({\n            ...this._def,\n            unknownKeys: \"passthrough\",\n        });\n    }\n    // const AugmentFactory =\n    //   <Def extends ZodObjectDef>(def: Def) =>\n    //   <Augmentation extends ZodRawShape>(\n    //     augmentation: Augmentation\n    //   ): ZodObject<\n    //     extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n    //     Def[\"unknownKeys\"],\n    //     Def[\"catchall\"]\n    //   > => {\n    //     return new ZodObject({\n    //       ...def,\n    //       shape: () => ({\n    //         ...def.shape(),\n    //         ...augmentation,\n    //       }),\n    //     }) as any;\n    //   };\n    extend(augmentation) {\n        return new ZodObject({\n            ...this._def,\n            shape: () => ({\n                ...this._def.shape(),\n                ...augmentation,\n            }),\n        });\n    }\n    /**\n     * Prior to zod@1.0.12 there was a bug in the\n     * inferred type of merged objects. Please\n     * upgrade if you are experiencing issues.\n     */\n    merge(merging) {\n        const merged = new ZodObject({\n            unknownKeys: merging._def.unknownKeys,\n            catchall: merging._def.catchall,\n            shape: () => ({\n                ...this._def.shape(),\n                ...merging._def.shape(),\n            }),\n            typeName: ZodFirstPartyTypeKind.ZodObject,\n        });\n        return merged;\n    }\n    // merge<\n    //   Incoming extends AnyZodObject,\n    //   Augmentation extends Incoming[\"shape\"],\n    //   NewOutput extends {\n    //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n    //       ? Augmentation[k][\"_output\"]\n    //       : k extends keyof Output\n    //       ? Output[k]\n    //       : never;\n    //   },\n    //   NewInput extends {\n    //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n    //       ? Augmentation[k][\"_input\"]\n    //       : k extends keyof Input\n    //       ? Input[k]\n    //       : never;\n    //   }\n    // >(\n    //   merging: Incoming\n    // ): ZodObject<\n    //   extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n    //   Incoming[\"_def\"][\"unknownKeys\"],\n    //   Incoming[\"_def\"][\"catchall\"],\n    //   NewOutput,\n    //   NewInput\n    // > {\n    //   const merged: any = new ZodObject({\n    //     unknownKeys: merging._def.unknownKeys,\n    //     catchall: merging._def.catchall,\n    //     shape: () =>\n    //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n    //     typeName: ZodFirstPartyTypeKind.ZodObject,\n    //   }) as any;\n    //   return merged;\n    // }\n    setKey(key, schema) {\n        return this.augment({ [key]: schema });\n    }\n    // merge<Incoming extends AnyZodObject>(\n    //   merging: Incoming\n    // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n    // ZodObject<\n    //   extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n    //   Incoming[\"_def\"][\"unknownKeys\"],\n    //   Incoming[\"_def\"][\"catchall\"]\n    // > {\n    //   // const mergedShape = objectUtil.mergeShapes(\n    //   //   this._def.shape(),\n    //   //   merging._def.shape()\n    //   // );\n    //   const merged: any = new ZodObject({\n    //     unknownKeys: merging._def.unknownKeys,\n    //     catchall: merging._def.catchall,\n    //     shape: () =>\n    //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n    //     typeName: ZodFirstPartyTypeKind.ZodObject,\n    //   }) as any;\n    //   return merged;\n    // }\n    catchall(index) {\n        return new ZodObject({\n            ...this._def,\n            catchall: index,\n        });\n    }\n    pick(mask) {\n        const shape = {};\n        for (const key of util.objectKeys(mask)) {\n            if (mask[key] && this.shape[key]) {\n                shape[key] = this.shape[key];\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => shape,\n        });\n    }\n    omit(mask) {\n        const shape = {};\n        for (const key of util.objectKeys(this.shape)) {\n            if (!mask[key]) {\n                shape[key] = this.shape[key];\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => shape,\n        });\n    }\n    /**\n     * @deprecated\n     */\n    deepPartial() {\n        return deepPartialify(this);\n    }\n    partial(mask) {\n        const newShape = {};\n        for (const key of util.objectKeys(this.shape)) {\n            const fieldSchema = this.shape[key];\n            if (mask && !mask[key]) {\n                newShape[key] = fieldSchema;\n            }\n            else {\n                newShape[key] = fieldSchema.optional();\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => newShape,\n        });\n    }\n    required(mask) {\n        const newShape = {};\n        for (const key of util.objectKeys(this.shape)) {\n            if (mask && !mask[key]) {\n                newShape[key] = this.shape[key];\n            }\n            else {\n                const fieldSchema = this.shape[key];\n                let newField = fieldSchema;\n                while (newField instanceof ZodOptional) {\n                    newField = newField._def.innerType;\n                }\n                newShape[key] = newField;\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => newShape,\n        });\n    }\n    keyof() {\n        return createZodEnum(util.objectKeys(this.shape));\n    }\n}\nZodObject.create = (shape, params) => {\n    return new ZodObject({\n        shape: () => shape,\n        unknownKeys: \"strip\",\n        catchall: ZodNever.create(),\n        typeName: ZodFirstPartyTypeKind.ZodObject,\n        ...processCreateParams(params),\n    });\n};\nZodObject.strictCreate = (shape, params) => {\n    return new ZodObject({\n        shape: () => shape,\n        unknownKeys: \"strict\",\n        catchall: ZodNever.create(),\n        typeName: ZodFirstPartyTypeKind.ZodObject,\n        ...processCreateParams(params),\n    });\n};\nZodObject.lazycreate = (shape, params) => {\n    return new ZodObject({\n        shape,\n        unknownKeys: \"strip\",\n        catchall: ZodNever.create(),\n        typeName: ZodFirstPartyTypeKind.ZodObject,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodUnion extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        const options = this._def.options;\n        function handleResults(results) {\n            // return first issue-free validation if it exists\n            for (const result of results) {\n                if (result.result.status === \"valid\") {\n                    return result.result;\n                }\n            }\n            for (const result of results) {\n                if (result.result.status === \"dirty\") {\n                    // add issues from dirty option\n                    ctx.common.issues.push(...result.ctx.common.issues);\n                    return result.result;\n                }\n            }\n            // return invalid\n            const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_union,\n                unionErrors,\n            });\n            return INVALID;\n        }\n        if (ctx.common.async) {\n            return Promise.all(options.map(async (option) => {\n                const childCtx = {\n                    ...ctx,\n                    common: {\n                        ...ctx.common,\n                        issues: [],\n                    },\n                    parent: null,\n                };\n                return {\n                    result: await option._parseAsync({\n                        data: ctx.data,\n                        path: ctx.path,\n                        parent: childCtx,\n                    }),\n                    ctx: childCtx,\n                };\n            })).then(handleResults);\n        }\n        else {\n            let dirty = undefined;\n            const issues = [];\n            for (const option of options) {\n                const childCtx = {\n                    ...ctx,\n                    common: {\n                        ...ctx.common,\n                        issues: [],\n                    },\n                    parent: null,\n                };\n                const result = option._parseSync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: childCtx,\n                });\n                if (result.status === \"valid\") {\n                    return result;\n                }\n                else if (result.status === \"dirty\" && !dirty) {\n                    dirty = { result, ctx: childCtx };\n                }\n                if (childCtx.common.issues.length) {\n                    issues.push(childCtx.common.issues);\n                }\n            }\n            if (dirty) {\n                ctx.common.issues.push(...dirty.ctx.common.issues);\n                return dirty.result;\n            }\n            const unionErrors = issues.map((issues) => new ZodError(issues));\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_union,\n                unionErrors,\n            });\n            return INVALID;\n        }\n    }\n    get options() {\n        return this._def.options;\n    }\n}\nZodUnion.create = (types, params) => {\n    return new ZodUnion({\n        options: types,\n        typeName: ZodFirstPartyTypeKind.ZodUnion,\n        ...processCreateParams(params),\n    });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n//////////                                 //////////\n//////////      ZodDiscriminatedUnion      //////////\n//////////                                 //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n    if (type instanceof ZodLazy) {\n        return getDiscriminator(type.schema);\n    }\n    else if (type instanceof ZodEffects) {\n        return getDiscriminator(type.innerType());\n    }\n    else if (type instanceof ZodLiteral) {\n        return [type.value];\n    }\n    else if (type instanceof ZodEnum) {\n        return type.options;\n    }\n    else if (type instanceof ZodNativeEnum) {\n        // eslint-disable-next-line ban/ban\n        return util.objectValues(type.enum);\n    }\n    else if (type instanceof ZodDefault) {\n        return getDiscriminator(type._def.innerType);\n    }\n    else if (type instanceof ZodUndefined) {\n        return [undefined];\n    }\n    else if (type instanceof ZodNull) {\n        return [null];\n    }\n    else if (type instanceof ZodOptional) {\n        return [undefined, ...getDiscriminator(type.unwrap())];\n    }\n    else if (type instanceof ZodNullable) {\n        return [null, ...getDiscriminator(type.unwrap())];\n    }\n    else if (type instanceof ZodBranded) {\n        return getDiscriminator(type.unwrap());\n    }\n    else if (type instanceof ZodReadonly) {\n        return getDiscriminator(type.unwrap());\n    }\n    else if (type instanceof ZodCatch) {\n        return getDiscriminator(type._def.innerType);\n    }\n    else {\n        return [];\n    }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.object) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.object,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const discriminator = this.discriminator;\n        const discriminatorValue = ctx.data[discriminator];\n        const option = this.optionsMap.get(discriminatorValue);\n        if (!option) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_union_discriminator,\n                options: Array.from(this.optionsMap.keys()),\n                path: [discriminator],\n            });\n            return INVALID;\n        }\n        if (ctx.common.async) {\n            return option._parseAsync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            });\n        }\n        else {\n            return option._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            });\n        }\n    }\n    get discriminator() {\n        return this._def.discriminator;\n    }\n    get options() {\n        return this._def.options;\n    }\n    get optionsMap() {\n        return this._def.optionsMap;\n    }\n    /**\n     * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n     * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n     * have a different value for each object in the union.\n     * @param discriminator the name of the discriminator property\n     * @param types an array of object schemas\n     * @param params\n     */\n    static create(discriminator, options, params) {\n        // Get all the valid discriminator values\n        const optionsMap = new Map();\n        // try {\n        for (const type of options) {\n            const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n            if (!discriminatorValues.length) {\n                throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n            }\n            for (const value of discriminatorValues) {\n                if (optionsMap.has(value)) {\n                    throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n                }\n                optionsMap.set(value, type);\n            }\n        }\n        return new ZodDiscriminatedUnion({\n            typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n            discriminator,\n            options,\n            optionsMap,\n            ...processCreateParams(params),\n        });\n    }\n}\nfunction mergeValues(a, b) {\n    const aType = getParsedType(a);\n    const bType = getParsedType(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n        const bKeys = util.objectKeys(b);\n        const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        for (const key of sharedKeys) {\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return { valid: false };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n        if (a.length !== b.length) {\n            return { valid: false };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return { valid: false };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    else {\n        return { valid: false };\n    }\n}\nexport class ZodIntersection extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        const handleParsed = (parsedLeft, parsedRight) => {\n            if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n                return INVALID;\n            }\n            const merged = mergeValues(parsedLeft.value, parsedRight.value);\n            if (!merged.valid) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.invalid_intersection_types,\n                });\n                return INVALID;\n            }\n            if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n                status.dirty();\n            }\n            return { status: status.value, value: merged.data };\n        };\n        if (ctx.common.async) {\n            return Promise.all([\n                this._def.left._parseAsync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                }),\n                this._def.right._parseAsync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                }),\n            ]).then(([left, right]) => handleParsed(left, right));\n        }\n        else {\n            return handleParsed(this._def.left._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            }), this._def.right._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            }));\n        }\n    }\n}\nZodIntersection.create = (left, right, params) => {\n    return new ZodIntersection({\n        left: left,\n        right: right,\n        typeName: ZodFirstPartyTypeKind.ZodIntersection,\n        ...processCreateParams(params),\n    });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.array) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.array,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        if (ctx.data.length < this._def.items.length) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.too_small,\n                minimum: this._def.items.length,\n                inclusive: true,\n                exact: false,\n                type: \"array\",\n            });\n            return INVALID;\n        }\n        const rest = this._def.rest;\n        if (!rest && ctx.data.length > this._def.items.length) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.too_big,\n                maximum: this._def.items.length,\n                inclusive: true,\n                exact: false,\n                type: \"array\",\n            });\n            status.dirty();\n        }\n        const items = [...ctx.data]\n            .map((item, itemIndex) => {\n            const schema = this._def.items[itemIndex] || this._def.rest;\n            if (!schema)\n                return null;\n            return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n        })\n            .filter((x) => !!x); // filter nulls\n        if (ctx.common.async) {\n            return Promise.all(items).then((results) => {\n                return ParseStatus.mergeArray(status, results);\n            });\n        }\n        else {\n            return ParseStatus.mergeArray(status, items);\n        }\n    }\n    get items() {\n        return this._def.items;\n    }\n    rest(rest) {\n        return new ZodTuple({\n            ...this._def,\n            rest,\n        });\n    }\n}\nZodTuple.create = (schemas, params) => {\n    if (!Array.isArray(schemas)) {\n        throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n    }\n    return new ZodTuple({\n        items: schemas,\n        typeName: ZodFirstPartyTypeKind.ZodTuple,\n        rest: null,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodRecord extends ZodType {\n    get keySchema() {\n        return this._def.keyType;\n    }\n    get valueSchema() {\n        return this._def.valueType;\n    }\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.object) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.object,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const pairs = [];\n        const keyType = this._def.keyType;\n        const valueType = this._def.valueType;\n        for (const key in ctx.data) {\n            pairs.push({\n                key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n                value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n                alwaysSet: key in ctx.data,\n            });\n        }\n        if (ctx.common.async) {\n            return ParseStatus.mergeObjectAsync(status, pairs);\n        }\n        else {\n            return ParseStatus.mergeObjectSync(status, pairs);\n        }\n    }\n    get element() {\n        return this._def.valueType;\n    }\n    static create(first, second, third) {\n        if (second instanceof ZodType) {\n            return new ZodRecord({\n                keyType: first,\n                valueType: second,\n                typeName: ZodFirstPartyTypeKind.ZodRecord,\n                ...processCreateParams(third),\n            });\n        }\n        return new ZodRecord({\n            keyType: ZodString.create(),\n            valueType: first,\n            typeName: ZodFirstPartyTypeKind.ZodRecord,\n            ...processCreateParams(second),\n        });\n    }\n}\nexport class ZodMap extends ZodType {\n    get keySchema() {\n        return this._def.keyType;\n    }\n    get valueSchema() {\n        return this._def.valueType;\n    }\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.map) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.map,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const keyType = this._def.keyType;\n        const valueType = this._def.valueType;\n        const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n            return {\n                key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n                value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n            };\n        });\n        if (ctx.common.async) {\n            const finalMap = new Map();\n            return Promise.resolve().then(async () => {\n                for (const pair of pairs) {\n                    const key = await pair.key;\n                    const value = await pair.value;\n                    if (key.status === \"aborted\" || value.status === \"aborted\") {\n                        return INVALID;\n                    }\n                    if (key.status === \"dirty\" || value.status === \"dirty\") {\n                        status.dirty();\n                    }\n                    finalMap.set(key.value, value.value);\n                }\n                return { status: status.value, value: finalMap };\n            });\n        }\n        else {\n            const finalMap = new Map();\n            for (const pair of pairs) {\n                const key = pair.key;\n                const value = pair.value;\n                if (key.status === \"aborted\" || value.status === \"aborted\") {\n                    return INVALID;\n                }\n                if (key.status === \"dirty\" || value.status === \"dirty\") {\n                    status.dirty();\n                }\n                finalMap.set(key.value, value.value);\n            }\n            return { status: status.value, value: finalMap };\n        }\n    }\n}\nZodMap.create = (keyType, valueType, params) => {\n    return new ZodMap({\n        valueType,\n        keyType,\n        typeName: ZodFirstPartyTypeKind.ZodMap,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodSet extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.set) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.set,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const def = this._def;\n        if (def.minSize !== null) {\n            if (ctx.data.size < def.minSize.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_small,\n                    minimum: def.minSize.value,\n                    type: \"set\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.minSize.message,\n                });\n                status.dirty();\n            }\n        }\n        if (def.maxSize !== null) {\n            if (ctx.data.size > def.maxSize.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_big,\n                    maximum: def.maxSize.value,\n                    type: \"set\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.maxSize.message,\n                });\n                status.dirty();\n            }\n        }\n        const valueType = this._def.valueType;\n        function finalizeSet(elements) {\n            const parsedSet = new Set();\n            for (const element of elements) {\n                if (element.status === \"aborted\")\n                    return INVALID;\n                if (element.status === \"dirty\")\n                    status.dirty();\n                parsedSet.add(element.value);\n            }\n            return { status: status.value, value: parsedSet };\n        }\n        const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n        if (ctx.common.async) {\n            return Promise.all(elements).then((elements) => finalizeSet(elements));\n        }\n        else {\n            return finalizeSet(elements);\n        }\n    }\n    min(minSize, message) {\n        return new ZodSet({\n            ...this._def,\n            minSize: { value: minSize, message: errorUtil.toString(message) },\n        });\n    }\n    max(maxSize, message) {\n        return new ZodSet({\n            ...this._def,\n            maxSize: { value: maxSize, message: errorUtil.toString(message) },\n        });\n    }\n    size(size, message) {\n        return this.min(size, message).max(size, message);\n    }\n    nonempty(message) {\n        return this.min(1, message);\n    }\n}\nZodSet.create = (valueType, params) => {\n    return new ZodSet({\n        valueType,\n        minSize: null,\n        maxSize: null,\n        typeName: ZodFirstPartyTypeKind.ZodSet,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodFunction extends ZodType {\n    constructor() {\n        super(...arguments);\n        this.validate = this.implement;\n    }\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.function) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.function,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        function makeArgsIssue(args, error) {\n            return makeIssue({\n                data: args,\n                path: ctx.path,\n                errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n                issueData: {\n                    code: ZodIssueCode.invalid_arguments,\n                    argumentsError: error,\n                },\n            });\n        }\n        function makeReturnsIssue(returns, error) {\n            return makeIssue({\n                data: returns,\n                path: ctx.path,\n                errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n                issueData: {\n                    code: ZodIssueCode.invalid_return_type,\n                    returnTypeError: error,\n                },\n            });\n        }\n        const params = { errorMap: ctx.common.contextualErrorMap };\n        const fn = ctx.data;\n        if (this._def.returns instanceof ZodPromise) {\n            // Would love a way to avoid disabling this rule, but we need\n            // an alias (using an arrow function was what caused 2651).\n            // eslint-disable-next-line @typescript-eslint/no-this-alias\n            const me = this;\n            return OK(async function (...args) {\n                const error = new ZodError([]);\n                const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n                    error.addIssue(makeArgsIssue(args, e));\n                    throw error;\n                });\n                const result = await Reflect.apply(fn, this, parsedArgs);\n                const parsedReturns = await me._def.returns._def.type\n                    .parseAsync(result, params)\n                    .catch((e) => {\n                    error.addIssue(makeReturnsIssue(result, e));\n                    throw error;\n                });\n                return parsedReturns;\n            });\n        }\n        else {\n            // Would love a way to avoid disabling this rule, but we need\n            // an alias (using an arrow function was what caused 2651).\n            // eslint-disable-next-line @typescript-eslint/no-this-alias\n            const me = this;\n            return OK(function (...args) {\n                const parsedArgs = me._def.args.safeParse(args, params);\n                if (!parsedArgs.success) {\n                    throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n                }\n                const result = Reflect.apply(fn, this, parsedArgs.data);\n                const parsedReturns = me._def.returns.safeParse(result, params);\n                if (!parsedReturns.success) {\n                    throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n                }\n                return parsedReturns.data;\n            });\n        }\n    }\n    parameters() {\n        return this._def.args;\n    }\n    returnType() {\n        return this._def.returns;\n    }\n    args(...items) {\n        return new ZodFunction({\n            ...this._def,\n            args: ZodTuple.create(items).rest(ZodUnknown.create()),\n        });\n    }\n    returns(returnType) {\n        return new ZodFunction({\n            ...this._def,\n            returns: returnType,\n        });\n    }\n    implement(func) {\n        const validatedFunc = this.parse(func);\n        return validatedFunc;\n    }\n    strictImplement(func) {\n        const validatedFunc = this.parse(func);\n        return validatedFunc;\n    }\n    static create(args, returns, params) {\n        return new ZodFunction({\n            args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n            returns: returns || ZodUnknown.create(),\n            typeName: ZodFirstPartyTypeKind.ZodFunction,\n            ...processCreateParams(params),\n        });\n    }\n}\nexport class ZodLazy extends ZodType {\n    get schema() {\n        return this._def.getter();\n    }\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        const lazySchema = this._def.getter();\n        return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n    }\n}\nZodLazy.create = (getter, params) => {\n    return new ZodLazy({\n        getter: getter,\n        typeName: ZodFirstPartyTypeKind.ZodLazy,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodLiteral extends ZodType {\n    _parse(input) {\n        if (input.data !== this._def.value) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                received: ctx.data,\n                code: ZodIssueCode.invalid_literal,\n                expected: this._def.value,\n            });\n            return INVALID;\n        }\n        return { status: \"valid\", value: input.data };\n    }\n    get value() {\n        return this._def.value;\n    }\n}\nZodLiteral.create = (value, params) => {\n    return new ZodLiteral({\n        value: value,\n        typeName: ZodFirstPartyTypeKind.ZodLiteral,\n        ...processCreateParams(params),\n    });\n};\nfunction createZodEnum(values, params) {\n    return new ZodEnum({\n        values,\n        typeName: ZodFirstPartyTypeKind.ZodEnum,\n        ...processCreateParams(params),\n    });\n}\nexport class ZodEnum extends ZodType {\n    _parse(input) {\n        if (typeof input.data !== \"string\") {\n            const ctx = this._getOrReturnCtx(input);\n            const expectedValues = this._def.values;\n            addIssueToContext(ctx, {\n                expected: util.joinValues(expectedValues),\n                received: ctx.parsedType,\n                code: ZodIssueCode.invalid_type,\n            });\n            return INVALID;\n        }\n        if (!this._cache) {\n            this._cache = new Set(this._def.values);\n        }\n        if (!this._cache.has(input.data)) {\n            const ctx = this._getOrReturnCtx(input);\n            const expectedValues = this._def.values;\n            addIssueToContext(ctx, {\n                received: ctx.data,\n                code: ZodIssueCode.invalid_enum_value,\n                options: expectedValues,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n    get options() {\n        return this._def.values;\n    }\n    get enum() {\n        const enumValues = {};\n        for (const val of this._def.values) {\n            enumValues[val] = val;\n        }\n        return enumValues;\n    }\n    get Values() {\n        const enumValues = {};\n        for (const val of this._def.values) {\n            enumValues[val] = val;\n        }\n        return enumValues;\n    }\n    get Enum() {\n        const enumValues = {};\n        for (const val of this._def.values) {\n            enumValues[val] = val;\n        }\n        return enumValues;\n    }\n    extract(values, newDef = this._def) {\n        return ZodEnum.create(values, {\n            ...this._def,\n            ...newDef,\n        });\n    }\n    exclude(values, newDef = this._def) {\n        return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n            ...this._def,\n            ...newDef,\n        });\n    }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n    _parse(input) {\n        const nativeEnumValues = util.getValidEnumValues(this._def.values);\n        const ctx = this._getOrReturnCtx(input);\n        if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n            const expectedValues = util.objectValues(nativeEnumValues);\n            addIssueToContext(ctx, {\n                expected: util.joinValues(expectedValues),\n                received: ctx.parsedType,\n                code: ZodIssueCode.invalid_type,\n            });\n            return INVALID;\n        }\n        if (!this._cache) {\n            this._cache = new Set(util.getValidEnumValues(this._def.values));\n        }\n        if (!this._cache.has(input.data)) {\n            const expectedValues = util.objectValues(nativeEnumValues);\n            addIssueToContext(ctx, {\n                received: ctx.data,\n                code: ZodIssueCode.invalid_enum_value,\n                options: expectedValues,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n    get enum() {\n        return this._def.values;\n    }\n}\nZodNativeEnum.create = (values, params) => {\n    return new ZodNativeEnum({\n        values: values,\n        typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodPromise extends ZodType {\n    unwrap() {\n        return this._def.type;\n    }\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.promise,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n        return OK(promisified.then((data) => {\n            return this._def.type.parseAsync(data, {\n                path: ctx.path,\n                errorMap: ctx.common.contextualErrorMap,\n            });\n        }));\n    }\n}\nZodPromise.create = (schema, params) => {\n    return new ZodPromise({\n        type: schema,\n        typeName: ZodFirstPartyTypeKind.ZodPromise,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodEffects extends ZodType {\n    innerType() {\n        return this._def.schema;\n    }\n    sourceType() {\n        return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n            ? this._def.schema.sourceType()\n            : this._def.schema;\n    }\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        const effect = this._def.effect || null;\n        const checkCtx = {\n            addIssue: (arg) => {\n                addIssueToContext(ctx, arg);\n                if (arg.fatal) {\n                    status.abort();\n                }\n                else {\n                    status.dirty();\n                }\n            },\n            get path() {\n                return ctx.path;\n            },\n        };\n        checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n        if (effect.type === \"preprocess\") {\n            const processed = effect.transform(ctx.data, checkCtx);\n            if (ctx.common.async) {\n                return Promise.resolve(processed).then(async (processed) => {\n                    if (status.value === \"aborted\")\n                        return INVALID;\n                    const result = await this._def.schema._parseAsync({\n                        data: processed,\n                        path: ctx.path,\n                        parent: ctx,\n                    });\n                    if (result.status === \"aborted\")\n                        return INVALID;\n                    if (result.status === \"dirty\")\n                        return DIRTY(result.value);\n                    if (status.value === \"dirty\")\n                        return DIRTY(result.value);\n                    return result;\n                });\n            }\n            else {\n                if (status.value === \"aborted\")\n                    return INVALID;\n                const result = this._def.schema._parseSync({\n                    data: processed,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (result.status === \"aborted\")\n                    return INVALID;\n                if (result.status === \"dirty\")\n                    return DIRTY(result.value);\n                if (status.value === \"dirty\")\n                    return DIRTY(result.value);\n                return result;\n            }\n        }\n        if (effect.type === \"refinement\") {\n            const executeRefinement = (acc) => {\n                const result = effect.refinement(acc, checkCtx);\n                if (ctx.common.async) {\n                    return Promise.resolve(result);\n                }\n                if (result instanceof Promise) {\n                    throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n                }\n                return acc;\n            };\n            if (ctx.common.async === false) {\n                const inner = this._def.schema._parseSync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (inner.status === \"aborted\")\n                    return INVALID;\n                if (inner.status === \"dirty\")\n                    status.dirty();\n                // return value is ignored\n                executeRefinement(inner.value);\n                return { status: status.value, value: inner.value };\n            }\n            else {\n                return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n                    if (inner.status === \"aborted\")\n                        return INVALID;\n                    if (inner.status === \"dirty\")\n                        status.dirty();\n                    return executeRefinement(inner.value).then(() => {\n                        return { status: status.value, value: inner.value };\n                    });\n                });\n            }\n        }\n        if (effect.type === \"transform\") {\n            if (ctx.common.async === false) {\n                const base = this._def.schema._parseSync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (!isValid(base))\n                    return INVALID;\n                const result = effect.transform(base.value, checkCtx);\n                if (result instanceof Promise) {\n                    throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n                }\n                return { status: status.value, value: result };\n            }\n            else {\n                return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n                    if (!isValid(base))\n                        return INVALID;\n                    return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n                        status: status.value,\n                        value: result,\n                    }));\n                });\n            }\n        }\n        util.assertNever(effect);\n    }\n}\nZodEffects.create = (schema, effect, params) => {\n    return new ZodEffects({\n        schema,\n        typeName: ZodFirstPartyTypeKind.ZodEffects,\n        effect,\n        ...processCreateParams(params),\n    });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n    return new ZodEffects({\n        schema,\n        effect: { type: \"preprocess\", transform: preprocess },\n        typeName: ZodFirstPartyTypeKind.ZodEffects,\n        ...processCreateParams(params),\n    });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType === ZodParsedType.undefined) {\n            return OK(undefined);\n        }\n        return this._def.innerType._parse(input);\n    }\n    unwrap() {\n        return this._def.innerType;\n    }\n}\nZodOptional.create = (type, params) => {\n    return new ZodOptional({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodOptional,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNullable extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType === ZodParsedType.null) {\n            return OK(null);\n        }\n        return this._def.innerType._parse(input);\n    }\n    unwrap() {\n        return this._def.innerType;\n    }\n}\nZodNullable.create = (type, params) => {\n    return new ZodNullable({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodNullable,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodDefault extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        let data = ctx.data;\n        if (ctx.parsedType === ZodParsedType.undefined) {\n            data = this._def.defaultValue();\n        }\n        return this._def.innerType._parse({\n            data,\n            path: ctx.path,\n            parent: ctx,\n        });\n    }\n    removeDefault() {\n        return this._def.innerType;\n    }\n}\nZodDefault.create = (type, params) => {\n    return new ZodDefault({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodDefault,\n        defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodCatch extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        // newCtx is used to not collect issues from inner types in ctx\n        const newCtx = {\n            ...ctx,\n            common: {\n                ...ctx.common,\n                issues: [],\n            },\n        };\n        const result = this._def.innerType._parse({\n            data: newCtx.data,\n            path: newCtx.path,\n            parent: {\n                ...newCtx,\n            },\n        });\n        if (isAsync(result)) {\n            return result.then((result) => {\n                return {\n                    status: \"valid\",\n                    value: result.status === \"valid\"\n                        ? result.value\n                        : this._def.catchValue({\n                            get error() {\n                                return new ZodError(newCtx.common.issues);\n                            },\n                            input: newCtx.data,\n                        }),\n                };\n            });\n        }\n        else {\n            return {\n                status: \"valid\",\n                value: result.status === \"valid\"\n                    ? result.value\n                    : this._def.catchValue({\n                        get error() {\n                            return new ZodError(newCtx.common.issues);\n                        },\n                        input: newCtx.data,\n                    }),\n            };\n        }\n    }\n    removeCatch() {\n        return this._def.innerType;\n    }\n}\nZodCatch.create = (type, params) => {\n    return new ZodCatch({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodCatch,\n        catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNaN extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.nan) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.nan,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return { status: \"valid\", value: input.data };\n    }\n}\nZodNaN.create = (params) => {\n    return new ZodNaN({\n        typeName: ZodFirstPartyTypeKind.ZodNaN,\n        ...processCreateParams(params),\n    });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        const data = ctx.data;\n        return this._def.type._parse({\n            data,\n            path: ctx.path,\n            parent: ctx,\n        });\n    }\n    unwrap() {\n        return this._def.type;\n    }\n}\nexport class ZodPipeline extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.common.async) {\n            const handleAsync = async () => {\n                const inResult = await this._def.in._parseAsync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (inResult.status === \"aborted\")\n                    return INVALID;\n                if (inResult.status === \"dirty\") {\n                    status.dirty();\n                    return DIRTY(inResult.value);\n                }\n                else {\n                    return this._def.out._parseAsync({\n                        data: inResult.value,\n                        path: ctx.path,\n                        parent: ctx,\n                    });\n                }\n            };\n            return handleAsync();\n        }\n        else {\n            const inResult = this._def.in._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            });\n            if (inResult.status === \"aborted\")\n                return INVALID;\n            if (inResult.status === \"dirty\") {\n                status.dirty();\n                return {\n                    status: \"dirty\",\n                    value: inResult.value,\n                };\n            }\n            else {\n                return this._def.out._parseSync({\n                    data: inResult.value,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n            }\n        }\n    }\n    static create(a, b) {\n        return new ZodPipeline({\n            in: a,\n            out: b,\n            typeName: ZodFirstPartyTypeKind.ZodPipeline,\n        });\n    }\n}\nexport class ZodReadonly extends ZodType {\n    _parse(input) {\n        const result = this._def.innerType._parse(input);\n        const freeze = (data) => {\n            if (isValid(data)) {\n                data.value = Object.freeze(data.value);\n            }\n            return data;\n        };\n        return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n    }\n    unwrap() {\n        return this._def.innerType;\n    }\n}\nZodReadonly.create = (type, params) => {\n    return new ZodReadonly({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodReadonly,\n        ...processCreateParams(params),\n    });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n//////////                    //////////\n//////////      z.custom      //////////\n//////////                    //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n    const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n    const p2 = typeof p === \"string\" ? { message: p } : p;\n    return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n    if (check)\n        return ZodAny.create().superRefine((data, ctx) => {\n            const r = check(data);\n            if (r instanceof Promise) {\n                return r.then((r) => {\n                    if (!r) {\n                        const params = cleanParams(_params, data);\n                        const _fatal = params.fatal ?? fatal ?? true;\n                        ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n                    }\n                });\n            }\n            if (!r) {\n                const params = cleanParams(_params, data);\n                const _fatal = params.fatal ?? fatal ?? true;\n                ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n            }\n            return;\n        });\n    return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n    object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n    ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n    ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n    ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n    ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n    ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n    ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n    ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n    ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n    ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n    ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n    ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n    ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n    ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n    ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n    ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n    ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n    ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n    ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n    ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n    ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n    ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n    ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n    ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n    ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n    ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n    ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n    ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n    ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n    ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n    ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n    ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n    ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n    ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n    ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n    ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n    ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n    constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n    message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n    string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n    number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n    boolean: ((arg) => ZodBoolean.create({\n        ...arg,\n        coerce: true,\n    })),\n    bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n    date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import { z } from \"zod\";\n\n/**JSON from OME-NGFF .zattrs*/\nexport const Image = z\n  .object({\n    /**The multiscale datasets for this image*/\n    multiscales: z\n      .array(\n        z.object({\n          name: z.string().optional(),\n          datasets: z\n            .array(\n              z.object({\n                path: z.string(),\n                coordinateTransformations: z\n                  .array(\n                    z.any().superRefine((x, ctx) => {\n                      const schemas = [\n                        z.object({\n                          type: z.literal(\"scale\"),\n                          scale: z.array(z.number()).min(2),\n                        }),\n                        z.object({\n                          type: z.literal(\"translation\"),\n                          translation: z.array(z.number()).min(2),\n                        }),\n                      ];\n                      const errors = schemas.reduce<z.ZodError[]>(\n                        (errors, schema) =>\n                          ((result) =>\n                            result.error ? [...errors, result.error] : errors)(\n                            schema.safeParse(x)\n                          ),\n                        []\n                      );\n                      if (schemas.length - errors.length !== 1) {\n                        ctx.addIssue({\n                          path: ctx.path,\n                          code: \"invalid_union\",\n                          unionErrors: errors,\n                          message: \"Invalid input: Should pass single schema\",\n                        });\n                      }\n                    })\n                  )\n                  .min(1),\n              })\n            )\n            .min(1),\n          version: z.literal(\"0.4\").optional(),\n          axes: z\n            .array(\n              z.any().superRefine((x, ctx) => {\n                const schemas = [\n                  z.object({\n                    name: z.string(),\n                    type: z.enum([\"channel\", \"time\", \"space\"]),\n                  }),\n                  z.object({\n                    name: z.string(),\n                    type: z\n                      .any()\n                      .refine(\n                        (value) =>\n                          !z.enum([\"space\", \"time\", \"channel\"]).safeParse(value)\n                            .success,\n                        \"Invalid input: Should NOT be valid against schema\"\n                      )\n                      .optional(),\n                  }),\n                ];\n                const errors = schemas.reduce<z.ZodError[]>(\n                  (errors, schema) =>\n                    ((result) =>\n                      result.error ? [...errors, result.error] : errors)(\n                      schema.safeParse(x)\n                    ),\n                  []\n                );\n                if (schemas.length - errors.length !== 1) {\n                  ctx.addIssue({\n                    path: ctx.path,\n                    code: \"invalid_union\",\n                    unionErrors: errors,\n                    message: \"Invalid input: Should pass single schema\",\n                  });\n                }\n              })\n            )\n            .min(2)\n            .max(5),\n          coordinateTransformations: z\n            .array(\n              z.any().superRefine((x, ctx) => {\n                const schemas = [\n                  z.object({\n                    type: z.literal(\"scale\"),\n                    scale: z.array(z.number()).min(2),\n                  }),\n                  z.object({\n                    type: z.literal(\"translation\"),\n                    translation: z.array(z.number()).min(2),\n                  }),\n                  // The JSON schema and my reading of the spec is that while\n                  // identity is a valid transformation, it cannot be used here.\n                  // However, some writers write it (e.g iohub), and it has no\n                  // effect on the overall transformation, so we manually added\n                  // after generation from the schema.\n                  // See the following PR for more context:\n                  // https://github.com/ome/ngff/pull/152\n                  z.object({\n                    type: z.literal(\"identity\"),\n                  }),\n                ];\n                const errors = schemas.reduce<z.ZodError[]>(\n                  (errors, schema) =>\n                    ((result) =>\n                      result.error ? [...errors, result.error] : errors)(\n                      schema.safeParse(x)\n                    ),\n                  []\n                );\n                if (schemas.length - errors.length !== 1) {\n                  ctx.addIssue({\n                    path: ctx.path,\n                    code: \"invalid_union\",\n                    unionErrors: errors,\n                    message: \"Invalid input: Should pass single schema\",\n                  });\n                }\n              })\n            )\n            .min(1)\n            .optional(),\n        })\n      )\n      .min(1)\n      .describe(\"The multiscale datasets for this image\"),\n    omero: z\n      .object({\n        channels: z.array(\n          z.object({\n            window: z.object({\n              end: z.number(),\n              max: z.number(),\n              min: z.number(),\n              start: z.number(),\n            }),\n            label: z.string().optional(),\n            family: z.string().optional(),\n            color: z.string(),\n            active: z.boolean().optional(),\n          })\n        ),\n        // The rdefs are not in the JSON schema and are not particularly well\n        // described by the specification, but are written by some tools\n        // (e.g. iohub), so we manually add them.\n        // See the OMERO docs for more information:\n        // https://docs.openmicroscopy.org/omero/5.6.1/developers/Web/WebGateway.html#rendering-settings\n        rdefs: z\n          .object({\n            defaultT: z.number().optional(),\n            defaultZ: z.number().optional(),\n            color: z.enum([\"color\", \"greyscale\"]).optional(),\n            projection: z.string().optional(),\n          })\n          .optional(),\n      })\n      .optional(),\n  })\n  .describe(\"JSON from OME-NGFF .zattrs\");\nexport type Image = z.infer<typeof Image>;\n","import { z } from \"zod\";\n\n/**JSON from OME-NGFF .zattrs*/\nexport const Plate = z\n  .object({\n    plate: z\n      .object({\n        /**The acquisitions for this plate*/\n        acquisitions: z\n          .array(\n            z.object({\n              /**A unique identifier within the context of the plate*/\n              id: z\n                .number()\n                .int()\n                .gte(0)\n                .describe(\n                  \"A unique identifier within the context of the plate\"\n                ),\n              /**The maximum number of fields of view for the acquisition*/\n              maximumfieldcount: z\n                .number()\n                .int()\n                .gt(0)\n                .describe(\n                  \"The maximum number of fields of view for the acquisition\"\n                )\n                .optional(),\n              /**The name of the acquisition*/\n              name: z\n                .string()\n                .describe(\"The name of the acquisition\")\n                .optional(),\n              /**The description of the acquisition*/\n              description: z\n                .string()\n                .describe(\"The description of the acquisition\")\n                .optional(),\n              /**The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch*/\n              starttime: z\n                .number()\n                .int()\n                .gte(0)\n                .describe(\n                  \"The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch\"\n                )\n                .optional(),\n              /**The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch*/\n              endtime: z\n                .number()\n                .int()\n                .gte(0)\n                .describe(\n                  \"The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch\"\n                )\n                .optional(),\n            })\n          )\n          .describe(\"The acquisitions for this plate\")\n          .optional(),\n        /**The version of the specification*/\n        version: z\n          .literal(\"0.4\")\n          .describe(\"The version of the specification\")\n          .optional(),\n        /**The maximum number of fields per view across all wells*/\n        field_count: z\n          .number()\n          .int()\n          .gt(0)\n          .describe(\"The maximum number of fields per view across all wells\")\n          .optional(),\n        /**The name of the plate*/\n        name: z.string().describe(\"The name of the plate\").optional(),\n        /**The columns of the plate*/\n        columns: z\n          .array(\n            z.object({\n              /**The column name*/\n              name: z\n                .string()\n                .regex(new RegExp(\"^[A-Za-z0-9]+$\"))\n                .describe(\"The column name\"),\n            })\n          )\n          .min(1)\n          .describe(\"The columns of the plate\"),\n        /**The rows of the plate*/\n        rows: z\n          .array(\n            z.object({\n              /**The row name*/\n              name: z\n                .string()\n                .regex(new RegExp(\"^[A-Za-z0-9]+$\"))\n                .describe(\"The row name\"),\n            })\n          )\n          .min(1)\n          .describe(\"The rows of the plate\"),\n        /**The wells of the plate*/\n        wells: z\n          .array(\n            z.object({\n              /**The path to the well subgroup*/\n              path: z\n                .string()\n                .regex(new RegExp(\"^[A-Za-z0-9]+/[A-Za-z0-9]+$\"))\n                .describe(\"The path to the well subgroup\"),\n              /**The index of the well in the rows list*/\n              rowIndex: z\n                .number()\n                .int()\n                .gte(0)\n                .describe(\"The index of the well in the rows list\"),\n              /**The index of the well in the columns list*/\n              columnIndex: z\n                .number()\n                .int()\n                .gte(0)\n                .describe(\"The index of the well in the columns list\"),\n            })\n          )\n          .min(1)\n          .describe(\"The wells of the plate\"),\n      })\n      .optional(),\n  })\n  .describe(\"JSON from OME-NGFF .zattrs\");\nexport type Plate = z.infer<typeof Plate>;\n","import { z } from \"zod\";\n\n/**JSON from OME-NGFF .zattrs*/\nexport const Well = z\n  .object({\n    well: z\n      .object({\n        /**The fields of view for this well*/\n        images: z\n          .array(\n            z.object({\n              /**A unique identifier within the context of the plate*/\n              acquisition: z\n                .number()\n                .int()\n                .describe(\"A unique identifier within the context of the plate\")\n                .optional(),\n              /**The path for this field of view subgroup*/\n              path: z\n                .string()\n                .regex(new RegExp(\"^[A-Za-z0-9]+$\"))\n                .describe(\"The path for this field of view subgroup\"),\n            })\n          )\n          .min(1)\n          .describe(\"The fields of view for this well\"),\n        /**The version of the specification*/\n        version: z\n          .literal(\"0.4\")\n          .describe(\"The version of the specification\")\n          .optional(),\n      })\n      .optional(),\n  })\n  .describe(\"JSON from OME-NGFF .zattrs\");\nexport type Well = z.infer<typeof Well>;\n","import { z } from \"zod\";\n\n/**The zarr.json attributes key*/\nexport const Image = z\n  .object({\n    /**The versioned OME-Zarr Metadata namespace*/\n    ome: z\n      .object({\n        /**The multiscale datasets for this image*/\n        multiscales: z\n          .array(\n            z.object({\n              name: z.string().optional(),\n              datasets: z\n                .array(\n                  z.object({\n                    path: z.string(),\n                    coordinateTransformations: z\n                      .array(\n                        z.any().superRefine((x, ctx) => {\n                          const schemas = [\n                            z.object({\n                              type: z.literal(\"scale\"),\n                              scale: z.array(z.number()).min(2),\n                            }),\n                            z.object({\n                              type: z.literal(\"translation\"),\n                              translation: z.array(z.number()).min(2),\n                            }),\n                          ];\n                          const errors = schemas.reduce<z.ZodError[]>(\n                            (errors, schema) =>\n                              ((result) =>\n                                result.error\n                                  ? [...errors, result.error]\n                                  : errors)(schema.safeParse(x)),\n                            []\n                          );\n                          if (schemas.length - errors.length !== 1) {\n                            ctx.addIssue({\n                              path: ctx.path,\n                              code: \"invalid_union\",\n                              unionErrors: errors,\n                              message:\n                                \"Invalid input: Should pass single schema\",\n                            });\n                          }\n                        })\n                      )\n                      .min(1),\n                  })\n                )\n                .min(1),\n              axes: z\n                .array(\n                  z.any().superRefine((x, ctx) => {\n                    const schemas = [\n                      z.object({\n                        name: z.string(),\n                        type: z.enum([\"channel\", \"time\", \"space\"]),\n                      }),\n                      z.object({\n                        name: z.string(),\n                        type: z\n                          .any()\n                          .refine(\n                            (value) =>\n                              !z\n                                .enum([\"space\", \"time\", \"channel\"])\n                                .safeParse(value).success,\n                            \"Invalid input: Should NOT be valid against schema\"\n                          )\n                          .optional(),\n                      }),\n                    ];\n                    const errors = schemas.reduce<z.ZodError[]>(\n                      (errors, schema) =>\n                        ((result) =>\n                          result.error ? [...errors, result.error] : errors)(\n                          schema.safeParse(x)\n                        ),\n                      []\n                    );\n                    if (schemas.length - errors.length !== 1) {\n                      ctx.addIssue({\n                        path: ctx.path,\n                        code: \"invalid_union\",\n                        unionErrors: errors,\n                        message: \"Invalid input: Should pass single schema\",\n                      });\n                    }\n                  })\n                )\n                .min(2)\n                .max(5),\n              coordinateTransformations: z\n                .array(\n                  z.any().superRefine((x, ctx) => {\n                    const schemas = [\n                      z.object({\n                        type: z.literal(\"scale\"),\n                        scale: z.array(z.number()).min(2),\n                      }),\n                      z.object({\n                        type: z.literal(\"translation\"),\n                        translation: z.array(z.number()).min(2),\n                      }),\n                      // The JSON schema and my reading of the spec is that while\n                      // identity is a valid transformation, it cannot be used here.\n                      // However, some writers write it (e.g iohub), and it has no\n                      // effect on the overall transformation, so we manually added\n                      // after generation from the schema.\n                      // See the following PR for more context:\n                      // https://github.com/ome/ngff/pull/152\n                      z.object({\n                        type: z.literal(\"identity\"),\n                      }),\n                    ];\n                    const errors = schemas.reduce<z.ZodError[]>(\n                      (errors, schema) =>\n                        ((result) =>\n                          result.error ? [...errors, result.error] : errors)(\n                          schema.safeParse(x)\n                        ),\n                      []\n                    );\n                    if (schemas.length - errors.length !== 1) {\n                      ctx.addIssue({\n                        path: ctx.path,\n                        code: \"invalid_union\",\n                        unionErrors: errors,\n                        message: \"Invalid input: Should pass single schema\",\n                      });\n                    }\n                  })\n                )\n                .min(1)\n                .optional(),\n            })\n          )\n          .min(1)\n          .describe(\"The multiscale datasets for this image\"),\n        omero: z\n          .object({\n            channels: z.array(\n              z.object({\n                window: z\n                  .object({\n                    end: z.number(),\n                    max: z.number(),\n                    min: z.number(),\n                    start: z.number(),\n                  })\n                  .optional(),\n                label: z.string().optional(),\n                family: z.string().optional(),\n                color: z.string().optional(),\n                active: z.boolean().optional(),\n              })\n            ),\n            // The rdefs are not in the JSON schema and are not particularly well\n            // described by the specification, but are written by some tools\n            // (e.g. iohub), so we manually add them.\n            // See the OMERO docs for more information:\n            // https://docs.openmicroscopy.org/omero/5.6.1/developers/Web/WebGateway.html#rendering-settings\n            rdefs: z\n              .object({\n                defaultT: z.number().optional(),\n                defaultZ: z.number().optional(),\n                color: z.enum([\"color\", \"greyscale\"]).optional(),\n                projection: z.string().optional(),\n              })\n              .optional(),\n          })\n          .optional(),\n        /**The version of the OME-Zarr Metadata*/\n        version: z\n          .literal(\"0.5\")\n          .describe(\"The version of the OME-Zarr Metadata\"),\n      })\n      .describe(\"The versioned OME-Zarr Metadata namespace\"),\n  })\n  .describe(\"The zarr.json attributes key\");\nexport type Image = z.infer<typeof Image>;\n","import { z } from \"zod\";\n\n/**The zarr.json attributes key*/\nexport const Plate = z\n  .object({\n    /**The versioned OME-Zarr Metadata namespace*/\n    ome: z\n      .object({\n        plate: z.object({\n          /**The acquisitions for this plate*/\n          acquisitions: z\n            .array(\n              z.object({\n                /**A unique identifier within the context of the plate*/\n                id: z\n                  .number()\n                  .int()\n                  .gte(0)\n                  .describe(\n                    \"A unique identifier within the context of the plate\"\n                  ),\n                /**The maximum number of fields of view for the acquisition*/\n                maximumfieldcount: z\n                  .number()\n                  .int()\n                  .gt(0)\n                  .describe(\n                    \"The maximum number of fields of view for the acquisition\"\n                  )\n                  .optional(),\n                /**The name of the acquisition*/\n                name: z\n                  .string()\n                  .describe(\"The name of the acquisition\")\n                  .optional(),\n                /**The description of the acquisition*/\n                description: z\n                  .string()\n                  .describe(\"The description of the acquisition\")\n                  .optional(),\n                /**The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch*/\n                starttime: z\n                  .number()\n                  .int()\n                  .gte(0)\n                  .describe(\n                    \"The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch\"\n                  )\n                  .optional(),\n                /**The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch*/\n                endtime: z\n                  .number()\n                  .int()\n                  .gte(0)\n                  .describe(\n                    \"The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch\"\n                  )\n                  .optional(),\n              })\n            )\n            .describe(\"The acquisitions for this plate\")\n            .optional(),\n          /**The maximum number of fields per view across all wells*/\n          field_count: z\n            .number()\n            .int()\n            .gt(0)\n            .describe(\"The maximum number of fields per view across all wells\")\n            .optional(),\n          /**The name of the plate*/\n          name: z.string().describe(\"The name of the plate\").optional(),\n          /**The columns of the plate*/\n          columns: z\n            .array(\n              z.object({\n                /**The column name*/\n                name: z\n                  .string()\n                  .regex(new RegExp(\"^[A-Za-z0-9]+$\"))\n                  .describe(\"The column name\"),\n              })\n            )\n            .min(1)\n            .describe(\"The columns of the plate\"),\n          /**The rows of the plate*/\n          rows: z\n            .array(\n              z.object({\n                /**The row name*/\n                name: z\n                  .string()\n                  .regex(new RegExp(\"^[A-Za-z0-9]+$\"))\n                  .describe(\"The row name\"),\n              })\n            )\n            .min(1)\n            .describe(\"The rows of the plate\"),\n          /**The wells of the plate*/\n          wells: z\n            .array(\n              z.object({\n                /**The path to the well subgroup*/\n                path: z\n                  .string()\n                  .regex(new RegExp(\"^[A-Za-z0-9]+/[A-Za-z0-9]+$\"))\n                  .describe(\"The path to the well subgroup\"),\n                /**The index of the well in the rows list*/\n                rowIndex: z\n                  .number()\n                  .int()\n                  .gte(0)\n                  .describe(\"The index of the well in the rows list\"),\n                /**The index of the well in the columns list*/\n                columnIndex: z\n                  .number()\n                  .int()\n                  .gte(0)\n                  .describe(\"The index of the well in the columns list\"),\n              })\n            )\n            .min(1)\n            .describe(\"The wells of the plate\"),\n        }),\n        /**The version of the OME-Zarr Metadata*/\n        version: z\n          .literal(\"0.5\")\n          .describe(\"The version of the OME-Zarr Metadata\"),\n      })\n      .describe(\"The versioned OME-Zarr Metadata namespace\"),\n  })\n  .describe(\"The zarr.json attributes key\");\nexport type Plate = z.infer<typeof Plate>;\n","import { z } from \"zod\";\n\n/**JSON from OME-Zarr zarr.json*/\nexport const Well = z\n  .object({\n    /**The versioned OME-Zarr Metadata namespace*/\n    ome: z\n      .object({\n        well: z.object({\n          /**The fields of view for this well*/\n          images: z\n            .array(\n              z.object({\n                /**A unique identifier within the context of the plate*/\n                acquisition: z\n                  .number()\n                  .int()\n                  .describe(\n                    \"A unique identifier within the context of the plate\"\n                  )\n                  .optional(),\n                /**The path for this field of view subgroup*/\n                path: z\n                  .string()\n                  .regex(new RegExp(\"^[A-Za-z0-9]+$\"))\n                  .describe(\"The path for this field of view subgroup\"),\n              })\n            )\n            .min(1)\n            .describe(\"The fields of view for this well\"),\n        }),\n        /**The version of the OME-Zarr Metadata*/\n        version: z\n          .literal(\"0.5\")\n          .describe(\"The version of the OME-Zarr Metadata\"),\n      })\n      .describe(\"The versioned OME-Zarr Metadata namespace\"),\n  })\n  .describe(\"JSON from OME-Zarr zarr.json\");\nexport type Well = z.infer<typeof Well>;\n","import * as zarr from \"zarrita\";\nimport { Image as ImageV04 } from \"./0.4/image\";\nimport { Plate as PlateV04 } from \"./0.4/plate\";\nimport { Well as WellV04 } from \"./0.4/well\";\nimport { Image } from \"./0.5/image\";\nimport { Plate } from \"./0.5/plate\";\nimport { Well } from \"./0.5/well\";\nimport { OmeZarrImageSource } from \"./image_source\";\nimport { Version as ZarrVersion, openGroup } from \"../zarr/open\";\n\nconst versions = [\"0.4\", \"0.5\"] as const;\nconst versionsSet: ReadonlySet<string> = new Set(versions);\nexport type Version = (typeof versions)[number];\n\ntype AdaptedOme<T> = T & {\n  originalVersion: Version;\n};\n\nfunction maybeGetVersion(attrs: object): Version | undefined {\n  if (!(\"ome\" in attrs)) return;\n  if (!(attrs.ome instanceof Object)) return;\n  const ome = attrs.ome;\n  if (!(\"version\" in ome)) return;\n  if (typeof ome.version !== \"string\") return;\n  if (!versionsSet.has(ome.version)) return;\n  return ome.version as Version;\n}\n\nfunction getVersion(attrs: object): Version {\n  // From v0.5 onwards, we assume that ome.version indicates the version.\n  // If it is not present or malformed, we assume it is v0.4, which is\n  // the oldest format we support.\n  const version = maybeGetVersion(attrs);\n  if (version === undefined) return \"0.4\";\n  return version;\n}\n\nexport function omeZarrToZarrVersion(\n  omeVersion: Version | undefined\n): ZarrVersion | undefined {\n  if (omeVersion === undefined) return undefined;\n  switch (omeVersion) {\n    case \"0.4\":\n      return \"v2\";\n    case \"0.5\":\n      return \"v3\";\n  }\n}\n\nfunction removeProperty<O, P extends keyof O>(obj: O, prop: P): Omit<O, P> {\n  const objCopy = { ...obj };\n  delete objCopy[prop];\n  return objCopy;\n}\n\n/** @hidden */\nexport async function loadOmeZarrPlate(\n  url: string,\n  version?: Version\n): Promise<AdaptedOme<Plate[\"ome\"]>> {\n  const store = new zarr.FetchStore(url);\n  const location = new zarr.Location(store);\n  const zarrVersion = omeZarrToZarrVersion(version);\n  const group = await openGroup(location, zarrVersion);\n  try {\n    return parsePlate(group.attrs);\n  } catch {\n    throw Error(\n      `Failed to parse OME-Zarr plate:\\n${JSON.stringify(group.attrs)}`\n    );\n  }\n}\n\nfunction parsePlate(attrs: Record<string, unknown>): AdaptedOme<Plate[\"ome\"]> {\n  const version = getVersion(attrs);\n  switch (version) {\n    case \"0.5\":\n      return {\n        ...Plate.parse(attrs).ome,\n        originalVersion: \"0.5\",\n      };\n    case \"0.4\":\n      return {\n        ...adaptPlateV04ToV05(PlateV04.parse(attrs)).ome,\n        originalVersion: \"0.4\",\n      };\n  }\n}\n\nfunction adaptPlateV04ToV05(platev04: PlateV04): Plate {\n  if (platev04.plate === undefined) {\n    throw new Error(\"Plate metadata is missing in OME-Zarr v0.4 plate\");\n  }\n  const plate = removeProperty(platev04.plate, \"version\");\n  return {\n    ome: {\n      plate,\n      version: \"0.5\",\n    },\n  };\n}\n\nfunction adaptWellV04ToV05(wellv04: WellV04): Well {\n  if (wellv04.well === undefined) {\n    throw new Error(\"Well metadata is missing in OME-Zarr v0.4 well\");\n  }\n  const well = removeProperty(wellv04.well, \"version\");\n  return {\n    ome: {\n      well,\n      version: \"0.5\",\n    },\n  };\n}\n\nfunction parseWell(attrs: Record<string, unknown>): AdaptedOme<Well[\"ome\"]> {\n  const version = getVersion(attrs);\n  switch (version) {\n    case \"0.5\":\n      return {\n        ...Well.parse(attrs).ome,\n        originalVersion: \"0.5\",\n      };\n    case \"0.4\":\n      return {\n        ...adaptWellV04ToV05(WellV04.parse(attrs)).ome,\n        originalVersion: \"0.4\",\n      };\n  }\n}\n\n/** @hidden */\nexport async function loadOmeZarrWell(\n  url: string,\n  path: string,\n  version?: Version\n): Promise<AdaptedOme<Well[\"ome\"]>> {\n  const fullUrl = url + \"/\" + path;\n  const store = new zarr.FetchStore(fullUrl);\n  const location = new zarr.Location(store);\n  const zarrVersion = omeZarrToZarrVersion(version);\n  const group = await openGroup(location, zarrVersion);\n  try {\n    return parseWell(group.attrs);\n  } catch {\n    throw Error(\n      `Failed to parse OME-Zarr well:\\n${JSON.stringify(group.attrs)}`\n    );\n  }\n}\n\nexport type OmeroMetadata = NonNullable<Image[\"ome\"][\"omero\"]>;\nexport type OmeroChannel = OmeroMetadata[\"channels\"][number];\n\n/** @hidden */\nexport async function loadOmeroChannels(\n  source: OmeZarrImageSource\n): Promise<OmeroChannel[]> {\n  const zarrVersion = omeZarrToZarrVersion(source.version);\n  const group = await openGroup(source.location, zarrVersion);\n  const image = parseOmeZarrImage(group.attrs);\n  return image.omero?.channels ?? [];\n}\n\n/** @hidden */\nexport async function loadOmeroDefaults(\n  source: OmeZarrImageSource\n): Promise<OmeroMetadata[\"rdefs\"]> {\n  const zarrVersion = omeZarrToZarrVersion(source.version);\n  const group = await openGroup(source.location, zarrVersion);\n  const image = parseOmeZarrImage(group.attrs);\n  return image.omero?.rdefs;\n}\n\nfunction adaptImageV04ToV05(imagev04: ImageV04): Image {\n  return {\n    ome: {\n      multiscales: imagev04.multiscales,\n      omero: imagev04.omero,\n      version: \"0.5\",\n    },\n  };\n}\n\nfunction parseImage(attrs: Record<string, unknown>): AdaptedOme<Image[\"ome\"]> {\n  const version = getVersion(attrs);\n  switch (version) {\n    case \"0.5\":\n      return {\n        ...Image.parse(attrs).ome,\n        originalVersion: \"0.5\",\n      };\n    case \"0.4\":\n      return {\n        ...adaptImageV04ToV05(ImageV04.parse(attrs)).ome,\n        originalVersion: \"0.4\",\n      };\n  }\n}\n\nexport function parseOmeZarrImage(\n  attrs: Record<string, unknown>\n): AdaptedOme<Image[\"ome\"]> {\n  try {\n    return parseImage(attrs);\n  } catch {\n    throw Error(`Failed to parse OME-Zarr image:\\n${JSON.stringify(attrs)}`);\n  }\n}\n","import { Location, Readable, FetchStore } from \"zarrita\";\nimport {\n  openArrayFromParams,\n  openGroup,\n  createZarrArrayParams,\n} from \"../zarr/open\";\nimport WebFileSystemStore from \"../zarr/web_file_system_store\";\nimport { OmeZarrImageLoader } from \"./image_loader\";\nimport {\n  omeZarrToZarrVersion,\n  parseOmeZarrImage,\n  Version as OmeZarrVersion,\n} from \"./metadata_loaders\";\nimport { SourceDimensionMap } from \"../chunk\";\n\ntype OmeZarrImageSourceProps = {\n  location: Location<Readable>;\n  version?: OmeZarrVersion;\n  loader: OmeZarrImageLoader;\n};\n\n/**\n * Input to {@link OmeZarrImageSource.fromHttp}.\n */\nexport type HttpOmeZarrImageSourceProps = {\n  /** URL of the OME-Zarr root group. */\n  url: string;\n  /** OME-Zarr version. Detected from metadata when omitted. */\n  version?: OmeZarrVersion;\n};\n\n/**\n * Input to {@link OmeZarrImageSource.fromFileSystem}.\n */\nexport type FileSystemOmeZarrImageSourceProps = {\n  /** Directory handle with read permission. */\n  directory: FileSystemDirectoryHandle;\n  /** OME-Zarr version. Detected from metadata when omitted. */\n  version?: OmeZarrVersion;\n  /** Image path within the directory. Defaults to the root. */\n  path?: `/${string}`;\n};\n\n/**\n * A multiscale image opened from an OME-Zarr store.\n *\n * Instances are created with {@link fromHttp} or {@link fromFileSystem}\n * rather than the constructor. Both factories read the store's metadata up\n * front so the returned source already knows its axes, resolution levels,\n * and channel count. OME-Zarr versions `0.4` and `0.5` are supported and\n * the version is detected from metadata when not given.\n *\n * A source is handed to a layer which streams chunks from it on demand.\n *\n * ```ts\n * const source = await OmeZarrImageSource.fromHttp({\n *   url: \"https://example.com/image.ome.zarr\",\n * });\n *\n * const layer = new ImageLayer({\n *   source,\n *   sliceCoords: { t: 0, z: 0, c: [0] },\n * });\n * ```\n *\n * @group Data Loading\n */\nexport class OmeZarrImageSource {\n  /** The zarr store location the image was opened from. */\n  readonly location: Location<Readable>;\n  /** The OME-Zarr version passed at creation if any. */\n  readonly version?: OmeZarrVersion;\n\n  private readonly loader_: OmeZarrImageLoader;\n\n  private constructor(props: OmeZarrImageSourceProps) {\n    this.location = props.location;\n    this.version = props.version;\n    this.loader_ = props.loader;\n  }\n\n  private static async openLoader(\n    location: Location<Readable>,\n    version?: OmeZarrVersion\n  ): Promise<OmeZarrImageLoader> {\n    let zarrVersion = omeZarrToZarrVersion(version);\n    const root = await openGroup(location, zarrVersion);\n    const adaptedOmeImage = parseOmeZarrImage(root.attrs);\n    const images = adaptedOmeImage.multiscales;\n    if (images.length !== 1) {\n      throw new Error(\n        `Exactly one multiscale image is supported. Found ${images.length} images.`\n      );\n    }\n    const metadata = images[0];\n    if (metadata.datasets.length === 0) {\n      throw new Error(`No datasets found in the multiscale image.`);\n    }\n    if (!zarrVersion) {\n      zarrVersion = omeZarrToZarrVersion(adaptedOmeImage.originalVersion);\n    }\n    const arrayParams = metadata.datasets.map((d) =>\n      createZarrArrayParams(location, d.path, zarrVersion)\n    );\n    const arrays = await Promise.all(\n      arrayParams.map((params) => openArrayFromParams(params))\n    );\n\n    const shape = arrays[0].shape;\n    const axes = metadata.axes;\n    if (axes.length !== shape.length) {\n      throw new Error(\n        `Mismatch between number of axes (${axes.length}) and array shape (${shape.length})`\n      );\n    }\n    return new OmeZarrImageLoader({ metadata, arrays, arrayParams });\n  }\n\n  /**\n   * Returns per-axis dimension metadata for the image.\n   *\n   * Each axis entry lists one record per level of detail with its size,\n   * chunk size, scale, and translation. Use these to convert between\n   * array indices and world coordinates, pick slice coordinates, and\n   * frame cameras around the image extent.\n   */\n  public getDimensions(): SourceDimensionMap {\n    return this.loader_.getSourceDimensionMap();\n  }\n\n  /**\n   * Returns the number of channels in the image.\n   */\n  public getChannelCount(): number {\n    return this.getDimensions().c?.lods[0].size ?? 1;\n  }\n\n  /** The chunk loader that streams this image's data. */\n  public get loader(): OmeZarrImageLoader {\n    return this.loader_;\n  }\n\n  /**\n   * Opens an OME-Zarr image over HTTP(S).\n   *\n   * @param props - The store url and optional version.\n   */\n  public static async fromHttp(\n    props: HttpOmeZarrImageSourceProps\n  ): Promise<OmeZarrImageSource> {\n    const location = new Location(new FetchStore(props.url));\n    const loader = await OmeZarrImageSource.openLoader(location, props.version);\n    return new OmeZarrImageSource({ location, version: props.version, loader });\n  }\n\n  /**\n   * Opens an OME-Zarr image from a local directory.\n   *\n   * Uses the File System Access API so it only works in Chromium-based\n   * browsers. Pass the handle returned by `window.showDirectoryPicker()`.\n   * The optional path lets an application ask once for root permission\n   * and open many images.\n   *\n   * @param props - The directory handle, optional version, and path.\n   */\n  public static async fromFileSystem(\n    props: FileSystemOmeZarrImageSourceProps\n  ): Promise<OmeZarrImageSource> {\n    const location = new Location(\n      new WebFileSystemStore(props.directory),\n      props.path\n    );\n    const loader = await OmeZarrImageSource.openLoader(location, props.version);\n    return new OmeZarrImageSource({ location, version: props.version, loader });\n  }\n}\n","import { IdetikContext } from \"../idetik\";\nimport { RenderableObject } from \"./renderable_object\";\nimport { clamp } from \"../utilities/clamp\";\nimport { Logger } from \"../utilities/logger\";\nimport { EventContext } from \"./event_dispatcher\";\nimport { Viewport } from \"./viewport\";\n\n/**\n * The loading lifecycle state of a layer.\n */\nexport type LayerState = \"initialized\" | \"loading\" | \"ready\";\n\n/**\n * How a layer's output blends with previously drawn content.\n */\nexport type BlendMode =\n  | \"none\"\n  | \"normal\"\n  | \"additive\"\n  | \"subtractive\"\n  | \"multiply\"\n  | \"premultipliedOver\";\n\n/**\n * A callback invoked after a layer's state changes.\n */\nexport type StateChangeCallback = (\n  newState: LayerState,\n  prevState?: LayerState\n) => void;\n\n/**\n * Initialization properties for constructing a layer.\n */\nexport type LayerProps = {\n  /** Layer opacity in `[0, 1]`. Defaults to `1`. */\n  opacity?: number;\n  /** How the layer blends. Defaults to `\"none\"`. */\n  blendMode?: BlendMode;\n  /** Hides content behind. Inferred from `blendMode`. */\n  occludes?: boolean;\n};\n\n/**\n * Abstract base class for any layer that can be added to a viewport.\n *\n * A layer owns a set of renderable objects and contributes them to the\n * scene each frame. Subclasses such as {@link ImageLayer},\n * {@link VolumeLayer}, and {@link LabelLayer} implement {@link update} to\n * build or refresh those objects for the current view. Custom layers\n * register objects with {@link addObject} and report readiness through\n * {@link setState}.\n *\n * Layers carry shared presentation state in {@link opacity},\n * {@link blendMode}, and {@link occludes}, and expose a lifecycle\n * {@link LayerState} that observers can subscribe to. A layer instance may\n * be attached to only one viewport at a time.\n *\n * ```ts\n * class Particles extends Layer {\n *   public readonly type = \"Particles\";\n *\n *   constructor(points: PointProps[]) {\n *     super();\n *     this.addObject(new PointsRenderable(points));\n *     this.setState(\"ready\");\n *   }\n *\n *   public update() {}\n * }\n *\n * viewport.addLayer(new Particles(points));\n * ```\n *\n * @group Layers\n */\nexport abstract class Layer {\n  /** A string identifying the concrete layer type. */\n  public abstract readonly type: string;\n\n  /**\n   * How the layer's output blends with previously drawn content. Also\n   * applies to blending between objects within the layer.\n   */\n  public blendMode: BlendMode;\n\n  /**\n   * Whether the layer writes depth and hides content drawn behind it.\n   *\n   * Occluding layers render a depth pass and always draw before\n   * non-occluding layers regardless of their order in the viewport. When\n   * not set explicitly this value is inferred from `blendMode` at\n   * construction only. Reassigning {@link blendMode} later does not update\n   * it.\n   */\n  public occludes: boolean;\n\n  /** Set to `true` by subclasses whose shaders read scene depth. */\n  protected requiresSceneDepth_ = false;\n\n  private readonly coverageGroups_ = new Map<\n    number | null,\n    RenderableObject[]\n  >();\n  private state_: LayerState = \"initialized\";\n  private attached_ = false;\n  private readonly callbacks_: StateChangeCallback[] = [];\n  private opacity_: number;\n\n  /**\n   * Creates a layer with the given presentation state.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor({\n    opacity = 1.0,\n    blendMode = \"none\",\n    occludes,\n  }: LayerProps = {}) {\n    this.opacity_ = clamp(opacity, 0.0, 1.0);\n    this.blendMode = blendMode;\n    this.occludes = occludes ?? blendMode === \"none\";\n  }\n\n  /**\n   * Whether the layer's shaders read scene depth. When `true` the renderer\n   * draws occluding layers to a depth texture the layer's shaders can\n   * sample. A layer cannot both occlude and read scene depth.\n   */\n  public get requiresSceneDepth() {\n    return this.requiresSceneDepth_;\n  }\n\n  /** The layer's opacity in `[0, 1]`. Values outside are clamped. */\n  public get opacity() {\n    return this.opacity_;\n  }\n\n  /** @param value - The new opacity in `[0, 1]`. */\n  public set opacity(value: number) {\n    if (value < 0 || value > 1) {\n      Logger.warn(\n        \"Layer\",\n        `Opacity out of bounds: ${value} — clamping to [0.0, 1.0]`\n      );\n    }\n    this.opacity_ = clamp(value, 0.0, 1.0);\n  }\n\n  /**\n   * Builds or refreshes the layer's renderable objects for the current\n   * view. Called automatically once per frame for every layer in a\n   * viewport.\n   *\n   * @param viewport - The viewport being rendered.\n   */\n  public abstract update(viewport?: Viewport): void;\n\n  /**\n   * Handles a pointer or wheel event from the owning viewport. Called\n   * automatically for each event before the camera controls. The default\n   * implementation does nothing.\n   *\n   * @param _event - The event with clip and world coordinates attached.\n   */\n  public onEvent(_event: EventContext): void {}\n\n  /**\n   * Lifecycle hook that is called automatically when a layer is\n   * is attached to a viewport. A layer can only be attached to one viewport\n   * at a time.\n   *\n   * @param context - The shared runtime context.\n   */\n  public onAttached(context: IdetikContext): void {\n    if (this.attached_) {\n      throw new Error(\n        `${this.type} cannot be attached to multiple viewports simultaneously.`\n      );\n    }\n    if (this.occludes && this.requiresSceneDepth_) {\n      throw new Error(`${this.type} cannot both occlude and read scene depth.`);\n    }\n    this.attach(context);\n    this.attached_ = true;\n  }\n\n  /**\n   * Lifecycle hook that is called automatically when a layer is detached\n   * from a viewport.\n   *\n   * @param context - The shared runtime context.\n   */\n  public onDetached(context: IdetikContext): void {\n    if (!this.attached_) return;\n    this.detach(context);\n    this.attached_ = false;\n  }\n\n  /** @hidden */\n  protected attach(_context: IdetikContext): void {}\n\n  /** @hidden */\n  protected detach(_context: IdetikContext): void {}\n\n  /**\n   * The layer's renderable objects grouped by coverage group. Objects in\n   * a group draw each pixel at most once, letting chunks at multiple\n   * levels of detail overlap correctly.\n   */\n  public get coverageGroups(): ReadonlyMap<\n    number | null,\n    readonly RenderableObject[]\n  > {\n    return this.coverageGroups_;\n  }\n\n  /** The layer's current lifecycle state. */\n  public get state() {\n    return this.state_;\n  }\n\n  /**\n   * Registers a callback invoked after every state change.\n   *\n   * @param callback - Receives the new and previous states.\n   */\n  public addStateChangeCallback(callback: StateChangeCallback) {\n    this.callbacks_.push(callback);\n  }\n\n  /**\n   * Removes a previously registered state change callback.\n   *\n   * @param callback - The callback to remove.\n   */\n  public removeStateChangeCallback(callback: StateChangeCallback) {\n    const index = this.callbacks_.indexOf(callback);\n    if (index === -1) {\n      throw new Error(`Callback to remove could not be found: ${callback}`);\n    }\n    this.callbacks_.splice(index, 1);\n  }\n\n  /**\n   * Sets the lifecycle state and notifies state change callbacks.\n   *\n   * @param newState - The state to enter.\n   */\n  protected setState(newState: LayerState) {\n    const prevState = this.state_;\n    this.state_ = newState;\n    this.callbacks_.forEach((callback) => callback(newState, prevState));\n  }\n\n  /**\n   * Registers a renderable object for drawing. Objects in the same\n   * coverage group draw each pixel at most once.\n   *\n   * @param object - The object to add.\n   * @param coverageGroup - The group key.\n   */\n  protected addObject(\n    object: RenderableObject,\n    coverageGroup: number | null = null\n  ) {\n    const members = this.coverageGroups_.get(coverageGroup);\n    if (members) {\n      members.push(object);\n    } else {\n      this.coverageGroups_.set(coverageGroup, [object]);\n    }\n  }\n\n  /** Removes all registered renderable objects. */\n  protected clearObjects() {\n    this.coverageGroups_.clear();\n  }\n\n  /**\n   * Returns uniform name-value pairs applied to every object drawn by\n   * this layer. Override in subclasses that need custom shader uniforms.\n   */\n  public getUniforms(): Record<string, unknown> {\n    return {};\n  }\n}\n","import { vec3 } from \"gl-matrix\";\n\nimport { Geometry } from \"../../core/geometry\";\n\nexport class ProjectedLineGeometry extends Geometry {\n  // this creates the geometry for a screen-space projected line\n  // each point on the input path is split into two vertices\n  // these are pushed in opposite directions in screen-space to create width\n  // this is done in the vertex shader by moving the vertices along the path normal\n  // See:\n  //  https://mattdesl.svbtle.com/drawing-lines-is-hard#screenspace-projected-lines_2\n  //  https://github.com/spite/THREE.MeshLine\n  constructor(path: vec3[]) {\n    super();\n    this.vertexData_ = this.createVertices(path);\n    this.indexData_ = this.createIndex(path.length);\n    this.addAttribute({\n      type: \"position\",\n      itemSize: 3,\n      offset: 0,\n    });\n    this.addAttribute({\n      type: \"previous_position\",\n      itemSize: 3,\n      offset: 3 * Float32Array.BYTES_PER_ELEMENT,\n    });\n    this.addAttribute({\n      type: \"next_position\",\n      itemSize: 3,\n      offset: 6 * Float32Array.BYTES_PER_ELEMENT,\n    });\n    this.addAttribute({\n      type: \"direction\",\n      itemSize: 1,\n      offset: 9 * Float32Array.BYTES_PER_ELEMENT,\n    });\n  }\n\n  private createVertices(path: vec3[]): Float32Array {\n    const vertices = new Float32Array(2 * path.length * (3 + 3 + 3 + 1));\n\n    // If the path's first and last points coincide, treat it as a closed\n    // loop: the first vertex's `previous` wraps to path[n-2] and the last\n    // vertex's `next` wraps to path[1]. Both endpoints then take the\n    // middle-vertex branch in the shader and produce a proper miter at the\n    // closing seam.\n    const closed =\n      path.length >= 3 && vec3.equals(path[0], path[path.length - 1]);\n\n    let c = 0;\n    for (const i of [...Array(path.length).keys()]) {\n      for (const direction of [-1.0, 1.0]) {\n        const current = path[i];\n        vertices[c++] = current[0];\n        vertices[c++] = current[1];\n        vertices[c++] = current[2];\n\n        const previous =\n          i === 0 ? (closed ? path[path.length - 2] : path[i]) : path[i - 1];\n        vertices[c++] = previous[0];\n        vertices[c++] = previous[1];\n        vertices[c++] = previous[2];\n\n        const next =\n          i === path.length - 1 ? (closed ? path[1] : path[i]) : path[i + 1];\n        vertices[c++] = next[0];\n        vertices[c++] = next[1];\n        vertices[c++] = next[2];\n\n        vertices[c++] = direction;\n      }\n    }\n\n    return vertices;\n  }\n\n  private createIndex(length: number): Uint32Array {\n    // each line segment is a quad split into two triangles\n    //       0 ----- 2\n    //       |     / |      ^\n    //       |    /  |  +direction\n    // point a   /   point b\n    //       |  /    |  -direction\n    //       | /     |      v\n    //       1 ----- 3\n\n    const indices = new Uint32Array((length - 1) * 6);\n    let c = 0;\n\n    for (let i = 0; i < 2 * length; i += 2) {\n      indices[c++] = i + 0;\n      indices[c++] = i + 1;\n      indices[c++] = i + 2;\n\n      indices[c++] = i + 2;\n      indices[c++] = i + 1;\n      indices[c++] = i + 3;\n    }\n    return indices;\n  }\n}\n","import { Geometry } from \"./geometry\";\nimport { Logger } from \"../utilities/logger\";\n\nexport class WireframeGeometry extends Geometry {\n  constructor(geometry: Geometry) {\n    super();\n\n    if (geometry.primitive != \"triangles\") {\n      Logger.warn(\"WireframeGeometry\", \"Only indexed geometries are supported\");\n      return;\n    }\n\n    if (geometry.indexData.length == 0) {\n      Logger.warn(\n        \"WireframeGeometry\",\n        \"Only triangulated geometries are supported\"\n      );\n      return;\n    }\n\n    this.primitive_ = \"lines\";\n    this.vertexData_ = geometry.vertexData;\n    this.attributes_ = geometry.attributes;\n\n    const edgeSet = new Set<{ i0: number; i1: number }>();\n    const wireframeIndices: number[] = [];\n    const addEdge = (a: number, b: number) => {\n      // Normalize edge order and use a set to deduplicate,\n      // since shared edges between triangles would otherwise\n      // be added multiple times.\n      const i0 = Math.min(a, b);\n      const i1 = Math.max(a, b);\n      if (!edgeSet.has({ i0, i1 })) {\n        edgeSet.add({ i0, i1 });\n        wireframeIndices.push(i0, i1);\n      }\n    };\n\n    const index = geometry.indexData;\n    for (let i = 0; i < index.length; i += 3) {\n      const i0 = index[i];\n      const i1 = index[i + 1];\n      const i2 = index[i + 2];\n      addEdge(i0, i1);\n      addEdge(i1, i2);\n      addEdge(i2, i0);\n    }\n\n    this.indexData_ = new Uint32Array(wireframeIndices);\n  }\n}\n","import { mat4, mat3, vec3, quat, glMatrix } from \"gl-matrix\";\n\n// +Y is world up to match gl-matrix\nconst WORLD_UP = vec3.fromValues(0, 1, 0);\n\n/**\n * Transform defined by translation, rotation, and scale components.\n *\n * TRS transform represents a placement in world space composed as\n * translation times rotation times scale. It is used to position cameras\n * and renderable objects through their `transform` property. The matrix\n * is computed lazily and cached.\n *\n * ```ts\n * const transform = camera.transform;\n * transform.setTranslation([0, 0, radius]);\n * transform.targetTo([0, 0, 0]);\n * ```\n *\n * @group Math\n */\nexport class TrsTransform {\n  private dirty_ = true;\n  private matrix_ = mat4.create();\n  private rotation_ = quat.create();\n  private translation_ = vec3.create();\n  private scale_ = vec3.fromValues(1, 1, 1);\n\n  /**\n   * Composes the given rotation onto the current rotation.\n   *\n   * @param q - The rotation to apply.\n   */\n  public addRotation(q: quat) {\n    quat.multiply(this.rotation_, this.rotation_, q);\n    this.dirty_ = true;\n  }\n\n  /**\n   * Replaces the rotation with the given quaternion.\n   *\n   * @param q - The new rotation.\n   */\n  public setRotation(q: quat) {\n    quat.copy(this.rotation_, q);\n    this.dirty_ = true;\n  }\n\n  /** A copy of the rotation quaternion. */\n  public get rotation() {\n    return quat.clone(this.rotation_);\n  }\n\n  /**\n   * Adds the given offset to the translation.\n   *\n   * @param vec - The offset to add.\n   */\n  public addTranslation(vec: vec3) {\n    vec3.add(this.translation_, this.translation_, vec);\n    this.dirty_ = true;\n  }\n\n  /**\n   * Replaces the translation with the given vector.\n   *\n   * @param vec - The new translation.\n   */\n  public setTranslation(vec: vec3) {\n    vec3.copy(this.translation_, vec);\n    this.dirty_ = true;\n  }\n\n  /** A copy of the translation vector. */\n  public get translation() {\n    return vec3.clone(this.translation_);\n  }\n\n  /**\n   * Multiplies the scale componentwise by the given vector.\n   *\n   * @param vec - The scale factors to apply.\n   */\n  public addScale(vec: vec3) {\n    vec3.multiply(this.scale_, this.scale_, vec);\n    this.dirty_ = true;\n  }\n\n  /**\n   * Replaces the scale with the given vector.\n   *\n   * @param vec - The new scale.\n   */\n  public setScale(vec: vec3) {\n    vec3.copy(this.scale_, vec);\n    this.dirty_ = true;\n  }\n\n  /**\n   * Rotates the transform to face the given target point. Uses `+Y` as\n   * world up.\n   *\n   * @param target - The world-space point to face.\n   */\n  public targetTo(target: vec3) {\n    // Prevent zero-length forward vector by nudging\n    // target slightly along +Z\n    if (vec3.equals(this.translation_, target)) {\n      target = vec3.clone(target);\n      target[2] += glMatrix.EPSILON;\n    }\n\n    const m = mat4.targetTo(mat4.create(), this.translation_, target, WORLD_UP);\n    const rotation = mat3.fromMat4(mat3.create(), m);\n    quat.fromMat3(this.rotation_, rotation);\n    quat.normalize(this.rotation_, this.rotation_);\n\n    this.dirty_ = true;\n  }\n\n  /** A copy of the scale vector. */\n  public get scale() {\n    return vec3.clone(this.scale_);\n  }\n\n  /** The composed transform matrix. Recomputed when stale. */\n  public get matrix() {\n    if (this.dirty_) {\n      this.computeMatrix();\n      this.dirty_ = false;\n    }\n    return this.matrix_;\n  }\n\n  /** The inverse of the composed transform matrix. */\n  public get inverse() {\n    return mat4.invert(mat4.create(), this.matrix)!;\n  }\n\n  private computeMatrix() {\n    mat4.fromRotationTranslationScale(\n      this.matrix_,\n      this.rotation_,\n      this.translation_,\n      this.scale_\n    );\n  }\n}\n","import { vec3, vec4 } from \"gl-matrix\";\n\n/**\n * A value convertible to {@link Color}.\n */\nexport type ColorLike = Color | vec3 | vec4 | string;\n\n/**\n * Immutable RGBA color with components in `[0, 1]`.\n *\n * Color represents an RGBA value with four components. It is used for channel\n * tints, label color maps, and wireframe overlays. Components are validated\n * at construction and never change. Every API that takes a color accepts a\n * {@link ColorLike} so hex strings and component arrays coerce automatically\n * through {@link from}. Common colors are available as static presets.\n *\n * @group Math\n */\nexport class Color {\n  /** Opaque red `#ff0000`. */\n  public static readonly RED: Color = new Color(1.0, 0.0, 0.0);\n  /** Opaque green `#00ff00`. */\n  public static readonly GREEN: Color = new Color(0.0, 1.0, 0.0);\n  /** Opaque blue `#0000ff`. */\n  public static readonly BLUE: Color = new Color(0.0, 0.0, 1.0);\n  /** Opaque yellow `#ffff00`. */\n  public static readonly YELLOW: Color = new Color(1.0, 1.0, 0.0);\n  /** Opaque magenta `#ff00ff`. */\n  public static readonly MAGENTA: Color = new Color(1.0, 0.0, 1.0);\n  /** Opaque cyan `#00ffff`. */\n  public static readonly CYAN: Color = new Color(0.0, 1.0, 1.0);\n  /** Opaque black `#000000`. */\n  public static readonly BLACK: Color = new Color(0.0, 0.0, 0.0);\n  /** Opaque white `#ffffff`. */\n  public static readonly WHITE: Color = new Color(1.0, 1.0, 1.0);\n  /** Fully transparent black. */\n  public static readonly TRANSPARENT: Color = new Color(0.0, 0.0, 0.0, 0.0);\n\n  // RGBA color values in the range [0, 1]\n  private readonly rgba_: readonly [number, number, number, number];\n\n  /**\n   * Creates a color from RGBA components in `[0, 1]`.\n   *\n   * @param r - The red component.\n   * @param g - The green component.\n   * @param b - The blue component.\n   * @param a - The alpha component. Defaults to `1`.\n   */\n  constructor(r: number, g: number, b: number, a?: number) {\n    if (r < 0 || r > 1 || g < 0 || g > 1 || b < 0 || b > 1) {\n      throw new Error(\"RGB values must be in the range [0, 1]\");\n    }\n    if (a !== undefined && (a < 0 || a > 1)) {\n      throw new Error(\"Alpha value must be in the range [0, 1]\");\n    }\n    this.rgba_ = [r, g, b, a ?? 1.0];\n  }\n\n  /** The RGB components as a three-element array. */\n  public get rgb(): [number, number, number] {\n    return [this.rgba_[0], this.rgba_[1], this.rgba_[2]];\n  }\n\n  /** The RGBA components as a four-element array. */\n  public get rgba(): readonly [number, number, number, number] {\n    return this.rgba_;\n  }\n\n  /** The red component. */\n  public get r(): number {\n    return this.rgba_[0];\n  }\n\n  /** The green component. */\n  public get g(): number {\n    return this.rgba_[1];\n  }\n\n  /** The blue component. */\n  public get b(): number {\n    return this.rgba_[2];\n  }\n\n  /** The alpha component. */\n  public get a(): number {\n    return this.rgba_[3];\n  }\n\n  /** The color as a `#rrggbb` hex string. Alpha is dropped. */\n  public get rgbHex(): string {\n    return `#${this.toHexComponent(this.r)}${this.toHexComponent(this.g)}${this.toHexComponent(this.b)}`;\n  }\n\n  /** The color packed into a 32-bit integer as RGBA bytes. */\n  public get packed(): number {\n    return (\n      (Math.round(this.r * 255) << 24) |\n      (Math.round(this.g * 255) << 16) |\n      (Math.round(this.b * 255) << 8) |\n      Math.round(this.a * 255)\n    );\n  }\n\n  /**\n   * Converts a {@link ColorLike} value to a `Color`.\n   *\n   * @param colorLike - The value to convert.\n   */\n  public static from(colorLike: ColorLike): Color {\n    if (colorLike instanceof Color) {\n      return colorLike;\n    }\n\n    if (Array.isArray(colorLike)) {\n      return new Color(colorLike[0], colorLike[1], colorLike[2], colorLike[3]);\n    }\n\n    if (typeof colorLike === \"string\") {\n      return Color.fromRgbHex(colorLike);\n    }\n\n    throw new Error(\"Unsupported color format\");\n  }\n\n  /**\n   * Parses a `#rrggbb` hex string into an opaque color.\n   *\n   * @param hex - The hex string with or without the leading `#`.\n   */\n  public static fromRgbHex(hex: string): Color {\n    const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n    if (!result) {\n      throw new Error(\"Invalid RGB hex, use form '#RRGGBB'\");\n    }\n    return new Color(\n      parseInt(result[1], 16) / 255,\n      parseInt(result[2], 16) / 255,\n      parseInt(result[3], 16) / 255,\n      1.0\n    );\n  }\n\n  private toHexComponent(value: number): string {\n    const hex = Math.round(value * 255)\n      .toString(16)\n      .padStart(2, \"0\");\n    return hex.length === 1 ? \"0\" + hex : hex;\n  }\n}\n","import { Node } from \"../core/node\";\nimport { Geometry } from \"../core/geometry\";\nimport { WireframeGeometry } from \"../core/wireframe_geometry\";\nimport { Texture } from \"../objects/textures/texture\";\nimport { TrsTransform } from \"../math/transforms\";\nimport { Shader } from \"../renderers/shaders\";\nimport { Color } from \"../math/color\";\nimport { CullingMode } from \"../renderers/webgl_state\";\n\n/**\n * Abstract base class representing a {@link Layer}-renderable object.\n *\n * Renderables pair a geometry with a shader program, textures, uniform\n * values, and a world transform. Subclasses assign a geometry, select one\n * of the built-in shader programs through {@link programName} or provide\n * a new one, bind textures with {@link setTexture}, and override {@link getUniforms} to\n * feed values to the shader.\n *\n * ```ts\n * class MyRenderable extends RenderableObject {\n *   constructor(texture: Texture) {\n *     super();\n *     this.geometry = new PlaneGeometry(512, 512, 1, 1);\n *     this.programName = \"floatScalarImage\";\n *\n *     this.setTexture(0, texture);\n *   }\n *\n *   public get type() {\n *     return \"MyRenderable\";\n *   }\n *\n *   public override getUniforms() {\n *     return { u_imageSampler: 0 };\n *   }\n * }\n * ```\n *\n * @group Renderables\n */\nexport abstract class RenderableObject extends Node {\n  /**\n   * Draws the geometry's wireframe on top of the normal pass. Layers use\n   * this as a chunk debugging aid. Defaults to `false`.\n   */\n  public wireframeEnabled = false;\n\n  /** The color of the wireframe overlay. Defaults to `Color.WHITE`. */\n  public wireframeColor = Color.WHITE;\n\n  /**\n   * Whether the object is depth tested when drawn. Objects that opt out\n   * are also left out of the depth prepass. Defaults to `true`.\n   */\n  public depthTest = true;\n  private readonly textures_: Texture[] = [];\n  private staleTextures_: Texture[] = [];\n  private readonly transform_ = new TrsTransform();\n  private geometry_ = new Geometry();\n  private wireframeGeometry_: WireframeGeometry | null = null;\n  private programName_: Shader | null = null;\n  private depthProgramName_: Shader | null = null;\n  private cullFaceMode_: CullingMode = \"none\";\n\n  /**\n   * Assigns a texture to the given texture unit. The renderer binds each\n   * entry of {@link textures} to its matching unit before drawing.\n   *\n   * @param index - The texture unit to bind to.\n   * @param texture - The texture to assign.\n   */\n  public setTexture(index: number, texture: Texture) {\n    this.textures_[index] = texture;\n  }\n\n  /**\n   * Removes all assigned textures.\n   */\n  protected clearTextures() {\n    this.textures_.length = 0;\n  }\n\n  /**\n   * Queues a replaced texture for GPU disposal. Subclasses call this when\n   * swapping out a texture they own. The renderer drains the queue\n   * through {@link popStaleTextures} before the next draw. Passing\n   * `undefined` is a no-op.\n   *\n   * @param texture - The texture that is no longer in use.\n   */\n  protected markStaleTexture(texture: Texture | undefined) {\n    if (texture !== undefined) {\n      this.staleTextures_.push(texture);\n    }\n  }\n\n  /**\n   * Drains the queue of textures marked stale. Called automatically by\n   * the renderer, which disposes the GPU resources of each returned\n   * texture.\n   *\n   * @returns The textures queued since the last call.\n   */\n  public popStaleTextures() {\n    const stale = this.staleTextures_;\n    this.staleTextures_ = [];\n    return stale;\n  }\n\n  /**\n   * The geometry drawn for this object.\n   */\n  public get geometry() {\n    return this.geometry_;\n  }\n\n  /**\n   * A line-segment version of {@link geometry} used for the wireframe\n   * overlay. Built lazily on first access and cached until the geometry\n   * changes.\n   */\n  public get wireframeGeometry() {\n    this.wireframeGeometry_ ??= new WireframeGeometry(this.geometry);\n    return this.wireframeGeometry_;\n  }\n\n  /** The assigned textures indexed by texture unit. */\n  public get textures() {\n    return this.textures_;\n  }\n\n  /**\n   * The object's world transform as translation, rotation, and scale.\n   * Layers position, orient, and size renderables through it.\n   */\n  public get transform() {\n    return this.transform_;\n  }\n\n  /** @param geometry - The geometry to draw. */\n  public set geometry(geometry: Geometry) {\n    this.geometry_ = geometry;\n    this.wireframeGeometry_ = null;\n  }\n\n  /**\n   * The name of a shader program that draws the object. The\n   * renderer skips objects whose program name is `null`.\n   */\n  public get programName(): Shader | null {\n    return this.programName_;\n  }\n\n  /**\n   * The name of the shader program used in the depth prepass or `null`\n   * to stay out of it. Objects without one never occlude other layers.\n   */\n  public get depthProgramName(): Shader | null {\n    return this.depthProgramName_;\n  }\n\n  /**\n   * The geometry's bounding box transformed to world space. The renderer\n   * culls objects whose box falls outside the view frustum.\n   */\n  public get boundingBox() {\n    const box = this.geometry_.boundingBox.clone();\n    box.applyTransform(this.transform_.matrix);\n    return box;\n  }\n\n  /**\n   * @param programName - The shader program name.\n   */\n  protected set programName(programName: Shader) {\n    this.programName_ = programName;\n  }\n\n  /**\n   * Selects the shader program for the depth prepass. Subclasses set\n   * this so the object writes depth and occludes content in other\n   * layers.\n   *\n   * @param programName - The shader program name.\n   */\n  protected set depthProgramName(programName: Shader) {\n    this.depthProgramName_ = programName;\n  }\n\n  /** Which triangle faces are culled when drawing. Defaults to `\"none\"`. */\n  public get cullFaceMode() {\n    return this.cullFaceMode_;\n  }\n\n  /** @param mode - The culling mode to apply. */\n  public set cullFaceMode(mode: CullingMode) {\n    this.cullFaceMode_ = mode;\n  }\n\n  /**\n   * Returns the uniform values to upload before drawing. Override in\n   * subclasses that need custom uniforms. Values are matched to shader\n   * uniforms by name and take precedence over the owning layer's\n   * uniforms.\n   */\n  public getUniforms(): Record<string, unknown> {\n    return {};\n  }\n}\n","import { RenderableObject } from \"../../core/renderable_object\";\nimport { ProjectedLineGeometry } from \"../../objects/geometry/projected_line_geometry\";\nimport { Color, ColorLike } from \"../../math/color\";\n\n/**\n * Initialization properties for constructing a projected line renderable.\n */\nexport type ProjectedLineRenderableProps = {\n  /** The line path geometry to draw. */\n  geometry: ProjectedLineGeometry;\n  /** The line color. */\n  color: ColorLike;\n  /** Line width in pixels. */\n  width: number;\n};\n\n/**\n * A polyline drawn with a constant screen-space width.\n *\n * The line is extruded in the vertex shader so its width stays fixed in\n * pixels at any zoom level. Custom layers can construct it directly for\n * paths and outlines.\n *\n * @group Renderables\n */\nexport class ProjectedLineRenderable extends RenderableObject {\n  private color_: Color;\n  private width_: number;\n\n  /**\n   * Creates a projected line renderable for the given path geometry.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor({ geometry, color, width }: ProjectedLineRenderableProps) {\n    super();\n    this.geometry = geometry;\n    this.color_ = Color.from(color);\n    this.width_ = width;\n    this.programName = \"projectedLine\";\n    this.depthProgramName = \"projectedLineDepth\";\n  }\n\n  /** Identifies the renderable type as `ProjectedLineRenderable`. */\n  public get type() {\n    return \"ProjectedLineRenderable\";\n  }\n\n  /** The line color. Assignable from any {@link ColorLike} value. */\n  public get color(): Color {\n    return this.color_;\n  }\n\n  /** @param value - The new line color. */\n  public set color(value: ColorLike) {\n    this.color_ = Color.from(value);\n  }\n\n  /** The line width in pixels. */\n  public get width() {\n    return this.width_;\n  }\n\n  /** @param value - The new width in pixels. */\n  public set width(value: number) {\n    this.width_ = value;\n  }\n\n  /** Returns the color and width uniforms for the line shader. */\n  public override getUniforms() {\n    return {\n      u_lineColor: this.color.rgb,\n      u_lineWidth: this.width,\n    };\n  }\n}\n","import { Layer } from \"../core/layer\";\nimport { ProjectedLineGeometry } from \"../objects/geometry/projected_line_geometry\";\nimport { ProjectedLineRenderable } from \"../objects/renderable/projected_line_renderable\";\n\n/**\n * Initialization properties for constructing an axes layer.\n */\nexport type AxesLayerProps = {\n  /** Axis length in world units. */\n  length: number;\n  /** Line width in pixels. */\n  width: number;\n};\n\n/**\n * A layer that draws the world coordinate axes as colored lines.\n *\n * Three lines start at the world origin: `x` in red, `y` in green, and\n * `z` in blue, each with the given length and width. The layer is static\n * and ready as soon as it is constructed.\n *\n * ```ts\n * viewport.addLayer(new AxesLayer({ length: 100, width: 2 }));\n * ```\n *\n * @group Layers\n */\nexport class AxesLayer extends Layer {\n  /** Identifies the layer type as `AxesLayer`. */\n  public readonly type = \"AxesLayer\";\n\n  /**\n   * Creates an axes layer with the given dimensions.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor(props: AxesLayerProps) {\n    super();\n    const { length, width } = props;\n    this.addObject(\n      makeAxis({\n        end: [length, 0, 0],\n        width: width,\n        color: [1, 0, 0],\n      })\n    );\n    this.addObject(\n      makeAxis({\n        end: [0, length, 0],\n        width: width,\n        color: [0, 1, 0],\n      })\n    );\n    this.addObject(\n      makeAxis({\n        end: [0, 0, length],\n        width: width,\n        color: [0, 0, 1],\n      })\n    );\n    this.setState(\"ready\");\n  }\n\n  /** Performs no per-frame work. The axes are built at construction. */\n  public update() {}\n}\n\nfunction makeAxis(params: {\n  end: [number, number, number];\n  width: number;\n  color: [number, number, number];\n}) {\n  const { end, width, color } = params;\n  const geometry = new ProjectedLineGeometry([[0, 0, 0], end]);\n  return new ProjectedLineRenderable({\n    geometry: geometry,\n    color: color,\n    width: width,\n  });\n}\n","/**\n * A category of chunk request ordered by a loading policy.\n */\nexport type PriorityCategory =\n  | \"fallbackVisible\"\n  | \"prefetchTime\"\n  | \"visibleCurrent\"\n  | \"fallbackBackground\"\n  | \"prefetchSpace\";\n\nconst ALL_CATEGORIES = [\n  \"fallbackVisible\",\n  \"prefetchTime\",\n  \"visibleCurrent\",\n  \"fallbackBackground\",\n  \"prefetchSpace\",\n] as const satisfies readonly PriorityCategory[];\n\n/**\n * @hidden\n */\nexport type ImageSourcePolicyProps = {\n  profile?: string;\n  prefetch: {\n    x: number;\n    y: number;\n    z?: number;\n    t?: number;\n  };\n  priorityOrder: PriorityCategory[];\n  lod?: {\n    min?: number;\n    max?: number;\n    bias?: number;\n  };\n};\n\n/**\n * A resolved and frozen loading policy consumed by layers.\n *\n * Create instances with {@link createExplorationPolicy},\n * {@link createPlaybackPolicy}, {@link createNoPrefetchPolicy}, or\n * {@link createImageSourcePolicy} rather than by hand.\n */\nexport type ImageSourcePolicy = Readonly<{\n  profile: string;\n  prefetch: {\n    x: number;\n    y: number;\n    z: number;\n    t: number;\n  };\n  priorityOrder: readonly PriorityCategory[];\n  priorityMap: Readonly<Record<PriorityCategory, number>>;\n  lod: {\n    min: number;\n    max: number;\n    bias: number;\n  };\n}>;\n\n/**\n * Creates a loading policy tuned for interactively browsing a scene.\n *\n * Prefetches one chunk beyond the view along each spatial axis and\n * fills the visible region before prefetching. This is the default\n * policy for layers constructed without one.\n *\n * @param overrides - Properties merged over.\n */\nexport function createExplorationPolicy(\n  overrides: Partial<ImageSourcePolicyProps> = {}\n): ImageSourcePolicy {\n  const base: ImageSourcePolicyProps = {\n    profile: \"exploration\",\n    prefetch: { x: 1, y: 1, z: 1, t: 0 },\n    priorityOrder: [\n      \"fallbackVisible\",\n      \"visibleCurrent\",\n      \"prefetchSpace\",\n      \"prefetchTime\",\n      \"fallbackBackground\",\n    ],\n  };\n  return createImageSourcePolicy(mergeProps(base, overrides));\n}\n\n/**\n * Creates a loading policy tuned for playing through timepoints.\n *\n * Prefetches twenty timepoints ahead, buffering at the current LOD\n * for smooth playback without reduced quality.\n *\n * @param overrides - Properties merged over.\n */\nexport function createPlaybackPolicy(\n  overrides: Partial<ImageSourcePolicyProps> = {}\n): ImageSourcePolicy {\n  const base: ImageSourcePolicyProps = {\n    profile: \"playback\",\n    prefetch: { x: 0, y: 0, z: 0, t: 20 },\n    priorityOrder: [\n      \"fallbackVisible\",\n      \"visibleCurrent\",\n      \"prefetchTime\",\n      \"fallbackBackground\",\n      \"prefetchSpace\",\n    ],\n  };\n  return createImageSourcePolicy(mergeProps(base, overrides));\n}\n\n/**\n * Creates a loading policy with spatial and temporal prefetching disabled.\n *\n * No spatial or temporal prefetching happens, which minimizes memory\n * use and network traffic for static scenes.\n *\n * @param overrides - Properties merged over.\n */\nexport function createNoPrefetchPolicy(\n  overrides: Partial<ImageSourcePolicyProps> = {}\n): ImageSourcePolicy {\n  const base: ImageSourcePolicyProps = {\n    profile: \"no-prefetch\",\n    prefetch: { x: 0, y: 0, z: 0, t: 0 },\n    priorityOrder: [\n      \"fallbackVisible\",\n      \"visibleCurrent\",\n      \"fallbackBackground\",\n      \"prefetchSpace\",\n      \"prefetchTime\",\n    ],\n  };\n  return createImageSourcePolicy(mergeProps(base, overrides));\n}\n\n/**\n * Creates a loading policy from explicit properties, validating and\n * freezing them. Prefer the profile factories for common cases and use\n * this to build a policy from scratch.\n *\n * @param config - Initialization properties.\n */\nexport function createImageSourcePolicy(\n  config: ImageSourcePolicyProps\n): ImageSourcePolicy {\n  validatePolicyProps(config);\n\n  const prefetch = {\n    x: config.prefetch.x,\n    y: config.prefetch.y,\n    z: config.prefetch.z ?? 0,\n    t: config.prefetch.t ?? 0,\n  };\n\n  const priorityMap: Readonly<Record<PriorityCategory, number>> = Object.freeze(\n    ALL_CATEGORIES.reduce<Record<PriorityCategory, number>>(\n      (acc, cat) => {\n        const idx = config.priorityOrder.indexOf(cat);\n        acc[cat] = idx;\n        return acc;\n      },\n      {} as Record<PriorityCategory, number>\n    )\n  );\n\n  const lod = {\n    min: config.lod?.min ?? 0,\n    max: config.lod?.max ?? Number.MAX_SAFE_INTEGER,\n    bias: config.lod?.bias ?? 0.5,\n  };\n\n  const resolved: ImageSourcePolicy = {\n    profile: config.profile ?? \"custom\",\n    prefetch,\n    priorityOrder: Object.freeze([...config.priorityOrder]),\n    priorityMap,\n    lod,\n  };\n\n  return Object.freeze(resolved);\n}\n\nfunction validatePolicyProps(config: ImageSourcePolicyProps) {\n  for (const [k, v] of Object.entries(config.prefetch)) {\n    if (v === undefined) continue; // z/t may be omitted\n    if (v < 0) {\n      throw new Error(`prefetch.${k} must be a non-negative number`);\n    }\n  }\n\n  const lod = config.lod;\n  if (lod?.min !== undefined && lod?.max !== undefined && lod.min > lod.max) {\n    throw new Error(`lod.min must be <= lod.max`);\n  }\n\n  const order = config.priorityOrder;\n  if (\n    order.length !== ALL_CATEGORIES.length ||\n    new Set(order).size !== order.length\n  ) {\n    throw new Error(`priorityOrder must include all categories exactly once`);\n  }\n}\n\nfunction mergeProps(\n  base: ImageSourcePolicyProps,\n  overrides: Partial<ImageSourcePolicyProps> = {}\n): ImageSourcePolicyProps {\n  return {\n    profile: overrides.profile ?? base.profile,\n    prefetch: { ...base.prefetch, ...(overrides.prefetch ?? {}) },\n    lod: { ...base.lod, ...(overrides.lod ?? {}) },\n    priorityOrder: overrides.priorityOrder ?? base.priorityOrder,\n  };\n}\n","import { Color, ColorLike } from \"../math/color\";\nimport { Texture, textureDefaultValueRange } from \"../objects/textures/texture\";\nimport { Logger } from \"../utilities/logger\";\nimport { clamp } from \"../utilities/clamp\";\n\nconst MAX_CHANNELS = 32;\n\nexport type Channel = {\n  visible: boolean;\n  color: Color;\n  contrastLimits: [number, number];\n  opacity: number;\n};\n\n/**\n * Appearance settings for a single image channel.\n */\nexport type ChannelProps = {\n  /** Whether the channel is drawn. Defaults to `true`. */\n  visible?: boolean;\n  /** The channel's tint color. Defaults to white. */\n  color?: ColorLike;\n  /** Intensity range shown. Defaults to the data range. */\n  contrastLimits?: [number, number];\n  /** Channel opacity in `[0, 1]`. Defaults to `1`. */\n  opacity?: number;\n};\n\n/** Layer that exposes channel controls. */\nexport interface ChannelsEnabled {\n  channelProps: ChannelProps[] | undefined;\n  setChannelProps(channelProps: ChannelProps[]): void;\n  resetChannelProps(): void;\n  addChannelChangeCallback(callback: () => void): void;\n  removeChannelChangeCallback(callback: () => void): void;\n}\n\nexport function validateChannel(\n  texture: Texture | null,\n  { visible, color, contrastLimits, opacity }: ChannelProps\n): Channel {\n  visible ??= true;\n  color = color === undefined ? Color.WHITE : Color.from(color);\n  opacity = opacity === undefined ? 1 : clamp(opacity, 0, 1);\n\n  if (texture !== null) {\n    contrastLimits = validateContrastLimits(contrastLimits, texture);\n  } else if (contrastLimits === undefined) {\n    Logger.debug(\n      \"Channel\",\n      \"No texture provided, defaulting channel contrast limits to [0, 1].\"\n    );\n    contrastLimits = [0, 1];\n  }\n\n  return {\n    visible,\n    color,\n    contrastLimits,\n    opacity,\n  };\n}\n\nexport function validateChannels(\n  texture: Texture | null,\n  channelProps: ChannelProps[]\n): Channel[] {\n  if (channelProps.length > MAX_CHANNELS) {\n    throw new Error(`Maximum number of channels is ${MAX_CHANNELS}`);\n  }\n\n  return channelProps.map((props) => validateChannel(texture, props));\n}\n\nexport function validateChannelPropsCount(\n  channelProps: ChannelProps[] | undefined,\n  sourceChannelCount: number\n): void {\n  if (channelProps && channelProps.length !== sourceChannelCount) {\n    throw new Error(\n      `channelProps length (${channelProps.length}) must match ` +\n        `source channel count (${sourceChannelCount}).`\n    );\n  }\n}\n\nfunction validateContrastLimits(\n  contrastLimits: [number, number] | undefined,\n  texture: Texture\n): [number, number] {\n  if (contrastLimits === undefined) {\n    return textureDefaultValueRange(texture);\n  }\n  if (contrastLimits[1] <= contrastLimits[0]) {\n    throw new Error(\n      `Contrast limits must be strictly increasing: ${contrastLimits}.`\n    );\n  }\n  return contrastLimits;\n}\n","import { Geometry } from \"../../core/geometry\";\n\nexport class PlaneGeometry extends Geometry {\n  constructor(\n    width: number,\n    height: number,\n    widthSegments: number,\n    heightSegments: number\n  ) {\n    super();\n    const vertex: number[] = [];\n    const index: number[] = [];\n\n    const gridX = widthSegments;\n    const gridY = heightSegments;\n    const gridX1 = gridX + 1;\n    const gridY1 = gridY + 1;\n    const segmentW = width / gridX;\n    const segmentH = height / gridY;\n\n    for (let iy = 0; iy < gridY1; ++iy) {\n      const y = iy * segmentH;\n      for (let ix = 0; ix < gridX1; ++ix) {\n        const x = ix * segmentW;\n        const u = ix / gridX;\n        const v = iy / gridY;\n\n        const position = [x, y, 0];\n        const normals = [0, 0, 1];\n        const uvs = [u, v];\n\n        vertex.push(...position, ...normals, ...uvs);\n      }\n    }\n\n    for (let iy = 0; iy < gridY; ++iy) {\n      for (let ix = 0; ix < gridX; ++ix) {\n        const a = ix + gridX1 * iy;\n        const b = ix + gridX1 * (iy + 1);\n        const c = ix + 1 + gridX1 * (iy + 1);\n        const d = ix + 1 + gridX1 * iy;\n\n        index.push(a, b, d);\n        index.push(b, c, d);\n      }\n    }\n\n    this.vertexData_ = new Float32Array(vertex);\n    this.indexData_ = new Uint32Array(index);\n\n    this.addAttribute({\n      type: \"position\",\n      itemSize: 3,\n      offset: 0,\n    });\n\n    this.addAttribute({\n      type: \"normal\",\n      itemSize: 3,\n      offset: 3 * Float32Array.BYTES_PER_ELEMENT,\n    });\n\n    this.addAttribute({\n      type: \"uv\",\n      itemSize: 2,\n      offset: 6 * Float32Array.BYTES_PER_ELEMENT,\n    });\n  }\n}\n","import { RenderableObject } from \"../../core/renderable_object\";\nimport { PlaneGeometry } from \"../../objects/geometry/plane_geometry\";\nimport { Texture } from \"../../objects/textures/texture\";\nimport {\n  Channel,\n  ChannelProps,\n  validateChannel,\n  validateChannels,\n} from \"../../core/channel\";\nimport { mat4, vec3 } from \"gl-matrix\";\nimport { Shader } from \"../../renderers/shaders\";\n\n/**\n * Initialization properties for constructing an image renderable.\n */\nexport type ImageRenderableProps = {\n  /** Width of the image in texels. */\n  width: number;\n  /** Height of the image in texels. */\n  height: number;\n  /** The scalar image texture to draw. */\n  texture: Texture;\n  /** Channel appearance settings. Defaults to `[]`. */\n  channelProps?: ChannelProps[];\n};\n\ntype UniformValues = {\n  u_color: vec3;\n  u_imageSampler: number;\n  Opacity: number;\n  u_valueOffset: number;\n  u_valueScale: number;\n  u_worldToTexCoord: mat4;\n};\n\n/**\n * A textured plane that draws one 2D slice of scalar image data.\n *\n * Image renderable maps a scalar texture through a single channel's\n * color, contrast limits, and opacity. {@link ImageLayer} constructs and\n * pools one instance per visible chunk, so most applications never create\n * these directly.\n *\n * @group Renderables\n */\nexport class ImageRenderable extends RenderableObject {\n  /**\n   * A matrix mapping world space to the texture's normalized coordinate\n   * space. Layers derive it from the chunk's offset, scale, and shape.\n   */\n  public worldToTexCoord: mat4 = mat4.create();\n\n  private channels_: Required<Channel>[];\n\n  /**\n   * Creates an image renderable drawing the given texture. The texture's\n   * data type selects the matching scalar image shader.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor({\n    width,\n    height,\n    texture,\n    channelProps = [],\n  }: ImageRenderableProps) {\n    super();\n    this.geometry = new PlaneGeometry(width, height, 1, 1);\n    this.setTexture(0, texture);\n    this.channels_ = validateChannels(texture, channelProps);\n    this.programName = textureToShader(texture);\n    this.depthProgramName = \"meshDepth\";\n  }\n\n  /** Identifies the renderable type as `ImageRenderable`. */\n  public get type() {\n    return \"ImageRenderable\";\n  }\n\n  /**\n   * Replaces the channel appearance settings and revalidates them\n   * against the current texture. Only the first entry affects rendering.\n   *\n   * @param channels - The new channel settings.\n   */\n  public setChannelProps(channels: ChannelProps[]) {\n    this.channels_ = validateChannels(this.textures[0], channels);\n  }\n\n  /**\n   * Updates one property of the channel at the given index and\n   * revalidates the channel against the current texture.\n   *\n   * @param channelIndex - The channel to update.\n   * @param property - The property name to set.\n   * @param value - The new value.\n   */\n  public setChannelProperty<K extends keyof ChannelProps>(\n    channelIndex: number,\n    property: K,\n    value: Required<ChannelProps>[K]\n  ) {\n    const newChannel = validateChannel(this.textures[0], {\n      ...this.channels_[channelIndex],\n      [property]: value,\n    });\n\n    this.channels_[channelIndex] = newChannel;\n  }\n\n  /**\n   * Returns the sampler, contrast, color, opacity, and world-to-texture\n   * uniforms for the scalar image shaders.\n   */\n  public override getUniforms(): UniformValues {\n    const texture = this.textures[0];\n    if (!texture) {\n      throw new Error(\"No texture set\");\n    }\n\n    const { color, contrastLimits, opacity } =\n      this.channels_[0] ?? validateChannel(texture, {});\n\n    return {\n      u_imageSampler: 0,\n      u_color: color.rgb,\n      u_valueOffset: -contrastLimits[0],\n      u_valueScale: 1 / (contrastLimits[1] - contrastLimits[0]),\n      Opacity: opacity,\n      u_worldToTexCoord: this.worldToTexCoord,\n    };\n  }\n}\n\nfunction textureToShader(texture: Texture): Shader {\n  switch (texture.dataType) {\n    case \"byte\":\n    case \"int\":\n    case \"short\":\n      return \"intScalarImage\";\n    case \"unsigned_short\":\n    case \"unsigned_byte\":\n    case \"unsigned_int\":\n      return \"uintScalarImage\";\n    case \"float\":\n      return \"floatScalarImage\";\n  }\n}\n","import { vec3 } from \"gl-matrix\";\n\nexport class Plane {\n  public normal: vec3;\n  public signedDistance: number;\n\n  constructor(normal: vec3 = vec3.fromValues(0, 1, 0), distance = 0) {\n    this.normal = vec3.clone(normal);\n    this.signedDistance = distance;\n  }\n\n  public static fromPointAndNormal(point: vec3, normal: vec3): Plane {\n    return new Plane(normal, -vec3.dot(normal, point));\n  }\n\n  public set(normal: vec3, distance: number) {\n    this.normal = vec3.clone(normal);\n    this.signedDistance = distance;\n  }\n\n  public signedDistanceToPoint(point: vec3) {\n    // Algebraic convention ax + by + cz + d = 0\n    // Negative values mean the point lies opposite the plane's normal\n    return vec3.dot(this.normal, point) + this.signedDistance;\n  }\n\n  public normalize() {\n    const len = vec3.length(this.normal);\n    if (len > 0) {\n      const inv = 1 / len;\n      vec3.scale(this.normal, this.normal, inv);\n      this.signedDistance *= inv;\n    }\n  }\n}\n","import { EventContext } from \"../core/event_dispatcher\";\nimport { Ray } from \"../math/ray\";\nimport { Logger } from \"../utilities/logger\";\nimport { vec2, vec3 } from \"gl-matrix\";\n\n/**\n * The result of picking a value from a layer with a click.\n */\nexport type PointPickingResult = {\n  /** The picked position in world units. */\n  world: vec3;\n  /** The data value sampled at the position. */\n  value: number;\n};\n\nexport function handlePointPickingEvent<T>(\n  event: EventContext,\n  pointerDownPos: vec2 | null,\n  pickAtRay: (ray: Ray) => Promise<{ world: vec3; value: T } | null>,\n  onPickValue?: (info: { world: vec3; value: T }) => void,\n  dragThreshold: number = 3\n): vec2 | null {\n  switch (event.type) {\n    case \"pointerdown\": {\n      const e = event.event as PointerEvent;\n      return vec2.fromValues(e.clientX, e.clientY);\n    }\n\n    case \"pointerup\": {\n      if (!pointerDownPos) return pointerDownPos;\n\n      const e = event.event as PointerEvent;\n      const pointerUpPos = vec2.fromValues(e.clientX, e.clientY);\n      const dist = vec2.distance(pointerDownPos, pointerUpPos);\n\n      if (dist < dragThreshold) {\n        if (!onPickValue) return null;\n\n        const ray = event.worldRay;\n        if (ray) {\n          pickAtRay(ray)\n            .then((info) => {\n              if (info !== null) {\n                onPickValue(info);\n              }\n            })\n            .catch((error) => {\n              Logger.error(\"PointPicking\", `Failed to read value: ${error}`);\n            });\n        }\n        return null;\n      }\n      return pointerDownPos;\n    }\n\n    case \"pointercancel\": {\n      return null;\n    }\n\n    default:\n      return pointerDownPos;\n  }\n}\n","import { RenderableObject } from \"../core/renderable_object\";\nimport { Logger } from \"./logger\";\n\nexport class RenderablePool<T extends RenderableObject> {\n  private readonly bins_ = new Map<string, T[]>();\n\n  acquire(key: string) {\n    const bin = this.bins_.get(key);\n    const item = bin?.pop();\n    if (item) {\n      Logger.debug(\"RenderablePool\", \"Renderable object acquired\");\n    }\n    return item;\n  }\n\n  release(key: string, item: T) {\n    let bin = this.bins_.get(key);\n    if (!bin) {\n      bin = [];\n      this.bins_.set(key, bin);\n    }\n    bin.push(item);\n    Logger.debug(\"RenderablePool\", \"Renderable object released\");\n  }\n\n  clearAll(disposer?: (t: T) => void) {\n    if (disposer) for (const bin of this.bins_.values()) bin.forEach(disposer);\n    this.bins_.clear();\n  }\n}\n","import { BlendMode, Layer } from \"../core/layer\";\nimport { Viewport } from \"../core/viewport\";\nimport { OrthographicCamera } from \"../objects/cameras/orthographic_camera\";\nimport type { IdetikContext } from \"../idetik\";\nimport {\n  Chunk,\n  ChunkSource,\n  SliceCoordinates,\n  worldToTexCoordForChunk,\n} from \"../data/chunk\";\nimport {\n  AxisComponent,\n  SliceAxes,\n  SliceOrientation,\n  orientationRotation,\n  sliceAxesFor,\n} from \"../math/axes\";\nimport { ChunkStoreView, INTERNAL_POLICY_KEY } from \"../data/chunk_store_view\";\nimport {\n  createExplorationPolicy,\n  ImageSourcePolicy,\n} from \"../core/image_source_policy\";\nimport {\n  ChannelProps,\n  ChannelsEnabled,\n  validateChannelPropsCount,\n} from \"../core/channel\";\nimport { ImageRenderable } from \"../objects/renderable/image_renderable\";\nimport { Color } from \"../math/color\";\nimport { EventContext } from \"../core/event_dispatcher\";\nimport { Plane } from \"../math/plane\";\nimport { Ray } from \"../math/ray\";\nimport { quat, vec2, vec3 } from \"gl-matrix\";\nimport { handlePointPickingEvent, PointPickingResult } from \"./point_picking\";\nimport { clamp } from \"../utilities/clamp\";\nimport { RenderablePool } from \"../utilities/renderable_pool\";\nimport { Texture } from \"../objects/textures/texture\";\n\n/**\n * Initialization properties for constructing an image layer.\n */\nexport type ImageLayerProps = {\n  /** The chunked image source to stream from. */\n  source: ChunkSource;\n  /** The slice to display in world units. */\n  sliceCoords: SliceCoordinates;\n  /** Streaming policy. Defaults to the exploration policy. */\n  policy?: ImageSourcePolicy;\n  /** Slice plane orientation. Defaults to `\"XY\"`. */\n  orientation?: SliceOrientation;\n  /** Per-channel appearance. Length must match the source. */\n  channelProps?: ChannelProps[];\n  /** Called with the picked value when the layer is clicked. */\n  onPickValue?: (info: PointPickingResult) => void;\n  /** Layer opacity in `[0, 1]`. Defaults to `1`. */\n  opacity?: number;\n  /** How the layer blends. Defaults to `\"additive\"`. */\n  blendMode?: BlendMode;\n  /** Hides content behind. Defaults to `true`. */\n  occludes?: boolean;\n};\n\n/**\n * A layer that renders a 2D slice of a chunked multi-channel image source.\n *\n * Image layer streams chunks from a source such as\n * {@link OmeZarrImageSource} according to its streaming policy, which\n * decides which resolution levels and chunks to load for the current view.\n * Per-channel appearance is controlled with {@link ChannelProps} and the\n * visible slice is selected with {@link SliceCoordinates}. The layer holds\n * `sliceCoords` by reference, so mutating the object it was constructed\n * with moves through the data.\n *\n * ```ts\n * const source = await OmeZarrImageSource.fromHttp({ url });\n *\n * const layer = new ImageLayer({\n *   source,\n *   sliceCoords: { t: 0, z: 0, c: [0, 1] },\n *   channelProps: [\n *     { color: Color.GREEN, contrastLimits: [0, 1024] },\n *     { color: Color.MAGENTA, contrastLimits: [0, 1024] },\n *   ],\n * });\n *\n * viewport.addLayer(layer);\n * ```\n *\n * @see {@link VolumeLayer} for 3D volume rendering of the same data.\n *\n * @group Layers\n */\nexport class ImageLayer extends Layer implements ChannelsEnabled {\n  /** Identifies the layer type as `ImageLayer`. */\n  public readonly type = \"ImageLayer\";\n\n  private readonly source_: ChunkSource;\n  private readonly sliceCoords_: SliceCoordinates;\n  private axes_: SliceAxes;\n  private planeRotation_: quat;\n  private orientation_: SliceOrientation;\n  private readonly onPickValue_?: (info: PointPickingResult) => void;\n  private readonly visibleChunks_: Map<Chunk, ImageRenderable> = new Map();\n  private orderedChunks_: Chunk[] = [];\n  private readonly pool_ = new RenderablePool<ImageRenderable>();\n  private readonly initialChannelProps_?: ChannelProps[];\n  private readonly channelChangeCallbacks_: (() => void)[] = [];\n  private policy_: ImageSourcePolicy;\n  private channelProps_?: ChannelProps[];\n  private chunkStoreView_?: ChunkStoreView;\n  private context_?: IdetikContext;\n  private pointerDownPos_: vec2 | null = null;\n  private debugMode_ = false;\n\n  private static readonly STALE_PRESENTATION_MS_ = 1000;\n  private lastPresentationTimeStamp_?: DOMHighResTimeStamp;\n  private lastPresentationTimeCoord_?: number;\n\n  private readonly wireframeColors_ = [\n    new Color(0.6, 0.3, 0.3),\n    new Color(0.3, 0.6, 0.4),\n    new Color(0.4, 0.4, 0.7),\n    new Color(0.6, 0.5, 0.3),\n  ];\n\n  /**\n   * Creates an image layer for the given source and slice.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor({\n    source,\n    sliceCoords,\n    policy,\n    orientation,\n    channelProps,\n    onPickValue,\n    ...layerOptions\n  }: ImageLayerProps) {\n    super({ blendMode: \"additive\", occludes: true, ...layerOptions });\n    this.setState(\"initialized\");\n    this.source_ = source;\n    this.policy_ = policy ?? createExplorationPolicy();\n    this.sliceCoords_ = sliceCoords;\n    this.orientation_ = orientation ?? \"XY\";\n    this.axes_ = sliceAxesFor(this.orientation_);\n    this.planeRotation_ = orientationRotation(this.axes_);\n    this.channelProps_ = channelProps;\n    this.initialChannelProps_ = channelProps;\n    this.onPickValue_ = onPickValue;\n  }\n\n  /** @hidden */\n  protected attach(context: IdetikContext) {\n    this.context_ = context;\n    this.chunkStoreView_ = context.chunkManager.addView(\n      this.source_,\n      this.policy_,\n      this.axes_\n    );\n\n    validateChannelPropsCount(\n      this.channelProps_,\n      this.chunkStoreView_.channelCount\n    );\n  }\n\n  /** @hidden */\n  protected detach(_context: IdetikContext) {\n    this.releaseAndRemoveChunks(this.visibleChunks_.keys());\n    this.orderedChunks_ = [];\n    this.clearObjects();\n    this.chunkStoreView_?.dispose();\n    this.chunkStoreView_ = undefined;\n    this.context_ = undefined;\n  }\n\n  /**\n   * Streams chunks for the current view and refreshes the visible slice.\n   *\n   * @param viewport - The viewport being rendered.\n   */\n  public update(viewport?: Viewport) {\n    if (!viewport || !this.chunkStoreView_) return;\n\n    const camera = viewport.camera;\n\n    // non-orthographic viewports have no world-space view rect, so we load the\n    // whole slice plane and pick LOD as if it spanned the viewport. stopgap\n    // until view-dependent LOD selection and culling work under perspective.\n    const worldViewRect =\n      camera.type === \"OrthographicCamera\"\n        ? (camera as OrthographicCamera).getWorldViewRect()\n        : this.chunkStoreView_.getWholePlaneRect();\n\n    this.chunkStoreView_.updateChunksForImage(this.sliceCoords_, {\n      worldViewRect,\n      bufferWidthPx: viewport.getBufferRect().width,\n    });\n\n    this.updateChunks();\n\n    for (const [chunk, imageRenderable] of this.visibleChunks_) {\n      this.updateSlicePosition(imageRenderable, chunk);\n    }\n  }\n\n  /** The slice plane the layer displays. */\n  public get orientation(): SliceOrientation {\n    return this.orientation_;\n  }\n\n  /**\n   * Changes the slice orientation at runtime. Visible renderables are\n   * rebuilt for the new plane and chunks already resident in the shared\n   * cache are reused.\n   *\n   * @param orientation - The new slice plane.\n   */\n  public setOrientation(orientation: SliceOrientation) {\n    if (orientation === this.orientation_) {\n      return;\n    }\n\n    this.releaseAndRemoveChunks(this.visibleChunks_.keys());\n    this.orderedChunks_ = [];\n    this.clearObjects();\n    this.chunkStoreView_?.dispose();\n    this.lastPresentationTimeStamp_ = undefined;\n    this.lastPresentationTimeCoord_ = undefined;\n    this.orientation_ = orientation;\n    this.axes_ = sliceAxesFor(orientation);\n    this.planeRotation_ = orientationRotation(this.axes_);\n\n    if (!this.context_) {\n      return;\n    }\n\n    this.chunkStoreView_ = this.context_.chunkManager.addView(\n      this.source_,\n      this.policy_,\n      this.axes_\n    );\n  }\n\n  private updateChunks() {\n    if (!this.chunkStoreView_) return;\n    if (this.state !== \"ready\") this.setState(\"ready\");\n\n    const visibleChunksResident = Array.from(this.visibleChunks_.keys()).every(\n      (chunk) => chunk.texture !== undefined\n    );\n\n    if (\n      this.visibleChunks_.size > 0 &&\n      visibleChunksResident &&\n      !this.chunkStoreView_.allVisibleFallbackLODLoaded() &&\n      !this.isPresentationStale()\n    ) {\n      return;\n    }\n    this.lastPresentationTimeStamp_ = performance.now();\n    this.lastPresentationTimeCoord_ = this.sliceCoords_.t;\n\n    const orderedByLOD = this.chunkStoreView_.getChunksToRender();\n    const current = new Set(orderedByLOD);\n    const nonVisibleChunks = Array.from(this.visibleChunks_.keys()).filter(\n      (chunk) => !current.has(chunk)\n    );\n    this.releaseAndRemoveChunks(nonVisibleChunks);\n\n    for (const chunk of orderedByLOD) {\n      this.visibleChunks_.set(\n        chunk,\n        this.getImageForChunk(chunk, chunk.texture!)\n      );\n    }\n    this.orderedChunks_ = orderedByLOD;\n    this.rebuildRenderGroups();\n  }\n\n  private rebuildRenderGroups() {\n    this.clearObjects();\n    for (const chunk of this.orderedChunks_) {\n      const image = this.visibleChunks_.get(chunk);\n      const channel = chunk.chunkIndex.c;\n      if (\n        image === undefined ||\n        this.channelProps_?.[channel]?.visible === false\n      )\n        continue;\n      this.addObject(image, channel);\n    }\n  }\n\n  /** The `t` coordinate of the most recently presented slice. */\n  public get lastPresentationTimeCoord(): number | undefined {\n    return this.lastPresentationTimeCoord_;\n  }\n\n  private isPresentationStale(): boolean {\n    if (this.lastPresentationTimeStamp_ === undefined) return false;\n    return (\n      performance.now() - this.lastPresentationTimeStamp_ >\n      ImageLayer.STALE_PRESENTATION_MS_\n    );\n  }\n\n  /**\n   * Handles click picking for `onPickValue`. Called automatically for\n   * each pointer event.\n   *\n   * @param event - The event with clip and world coordinates attached.\n   */\n  public onEvent(event: EventContext) {\n    this.pointerDownPos_ = handlePointPickingEvent(\n      event,\n      this.pointerDownPos_,\n      (ray) => this.pickAtRay(ray),\n      this.onPickValue_\n    );\n  }\n\n  private async pickAtRay(ray: Ray): Promise<PointPickingResult | null> {\n    const firstChunk = this.visibleChunks_.values().next();\n    if (firstChunk.done) return null;\n\n    const transform = firstChunk.value.transform;\n    const planeNormal = vec3.transformQuat(\n      vec3.create(),\n      vec3.fromValues(0, 0, 1),\n      transform.rotation\n    );\n\n    const plane = Plane.fromPointAndNormal(transform.translation, planeNormal);\n    const world = ray.intersectWithPlane(plane);\n    if (!world) return null;\n\n    const value = await this.getValueAtWorld(world);\n    if (value === null) return null;\n\n    return { world, value };\n  }\n\n  // exposed for use in chunk info overlay\n  /** The layer's chunk store view for diagnostic overlays. */\n  public get chunkStoreView(): ChunkStoreView | undefined {\n    return this.chunkStoreView_;\n  }\n\n  /**\n   * The slice coordinates the layer displays. This is the object passed\n   * at construction and may be mutated to move through the data.\n   */\n  public get sliceCoords(): SliceCoordinates {\n    return this.sliceCoords_;\n  }\n\n  /** The chunked image source the layer streams from. */\n  public get source(): ChunkSource {\n    return this.source_;\n  }\n\n  /**\n   * The streaming policy in effect. Assign a new policy to reschedule\n   * loading at runtime, for example when switching between exploration\n   * and playback.\n   */\n  public get imageSourcePolicy(): Readonly<ImageSourcePolicy> {\n    return this.policy_;\n  }\n\n  /** @param newPolicy - The policy to apply. */\n  public set imageSourcePolicy(newPolicy: ImageSourcePolicy) {\n    if (this.policy_ !== newPolicy) {\n      this.policy_ = newPolicy;\n      if (this.chunkStoreView_) {\n        this.chunkStoreView_.setImageSourcePolicy(\n          newPolicy,\n          INTERNAL_POLICY_KEY\n        );\n      }\n    }\n  }\n\n  private getImageForChunk(chunk: Chunk, texture: Texture) {\n    const existing = this.visibleChunks_.get(chunk);\n    if (existing) return existing;\n\n    const pooled = this.pool_.acquire(\n      poolKeyForImageRenderable(chunk, this.axes_)\n    );\n    if (pooled) {\n      pooled.setTexture(0, texture);\n      pooled.setChannelProps(this.getChannelPropsForChunk(chunk));\n      this.updateImageChunk(pooled, chunk);\n      return pooled;\n    }\n\n    return this.createImage(chunk, texture);\n  }\n\n  private getChannelPropsForChunk(chunk: Chunk): ChannelProps[] {\n    if (!this.channelProps_) return [{}];\n    return [this.channelProps_[chunk.chunkIndex.c] ?? {}];\n  }\n\n  private createImage(chunk: Chunk, texture: Texture) {\n    const image = new ImageRenderable({\n      width: chunk.shape[this.axes_.u],\n      height: chunk.shape[this.axes_.v],\n      texture,\n      channelProps: this.getChannelPropsForChunk(chunk),\n    });\n    this.updateImageChunk(image, chunk);\n    return image;\n  }\n\n  private updateSlicePosition(image: ImageRenderable, chunk: Chunk) {\n    const { u, v, w } = this.axes_;\n    const translation = vec3.create();\n    translation[AxisComponent[u]] = chunk.offset[u];\n    translation[AxisComponent[v]] = chunk.offset[v];\n    translation[AxisComponent[w]] = this.sliceCoords_[w] ?? chunk.offset[w];\n    image.transform.setTranslation(translation);\n  }\n\n  private sliceIndexForChunk(chunk: Chunk): number {\n    const w = this.axes_.w;\n    const sliceValue = this.sliceCoords_[w];\n\n    if (sliceValue === undefined) {\n      return 0;\n    }\n\n    const local = (sliceValue - chunk.offset[w]) / chunk.scale[w];\n    return clamp(Math.round(local), 0, chunk.shape[w] - 1);\n  }\n\n  private updateImageChunk(image: ImageRenderable, chunk: Chunk) {\n    if (this.debugMode_) {\n      image.wireframeEnabled = true;\n      image.wireframeColor =\n        this.wireframeColors_[chunk.lod % this.wireframeColors_.length];\n    } else {\n      image.wireframeEnabled = false;\n    }\n    const { u, v } = this.axes_;\n    image.transform.setScale([chunk.scale[u], chunk.scale[v], 1]);\n    image.transform.setRotation(this.planeRotation_);\n    this.updateSlicePosition(image, chunk);\n    image.worldToTexCoord = worldToTexCoordForChunk(chunk, this.axes_);\n  }\n\n  /**\n   * Reads the data value at a world position from the resident chunks.\n   * Prefers the current level of detail and falls back to other resident\n   * levels.\n   *\n   * @param world - The world-space position to sample.\n   * @returns The sampled value or `null` if no resident chunk covers it.\n   */\n  public async getValueAtWorld(world: vec3): Promise<number | null> {\n    const currentLOD = this.chunkStoreView_?.currentLOD ?? 0;\n\n    for (const preferCurrentLOD of [true, false]) {\n      for (const [chunk, image] of this.visibleChunks_) {\n        if ((chunk.lod === currentLOD) !== preferCurrentLOD) continue;\n        const value = await this.readValueFromChunk(chunk, image, world);\n        if (value !== null) return value;\n      }\n    }\n    return null;\n  }\n\n  private async readValueFromChunk(\n    chunk: Chunk,\n    image: ImageRenderable,\n    world: vec3\n  ): Promise<number | null> {\n    const localPos = vec3.transformMat4(\n      vec3.create(),\n      world,\n      image.transform.inverse\n    );\n\n    const { u, v, w } = this.axes_;\n    const uIdx = Math.floor(localPos[0]);\n    const vIdx = Math.floor(localPos[1]);\n\n    if (\n      uIdx < 0 ||\n      uIdx >= chunk.shape[u] ||\n      vIdx < 0 ||\n      vIdx >= chunk.shape[v]\n    ) {\n      return null;\n    }\n\n    const texel = { x: 0, y: 0, z: 0 };\n    texel[u] = uIdx;\n    texel[v] = vIdx;\n    texel[w] = this.sliceIndexForChunk(chunk);\n    return (\n      (await image.textures[0].readTexel?.(texel.x, texel.y, texel.z)) ?? null\n    );\n  }\n\n  /** Whether chunk wireframes are drawn colored by level of detail. */\n  public get debugMode(): boolean {\n    return this.debugMode_;\n  }\n\n  /** @param debug - Whether to draw chunk wireframes. */\n  public set debugMode(debug: boolean) {\n    this.debugMode_ = debug;\n    this.visibleChunks_.forEach((image, chunk) => {\n      image.wireframeEnabled = this.debugMode_;\n      if (this.debugMode_) {\n        image.wireframeColor =\n          this.wireframeColors_[chunk.lod % this.wireframeColors_.length];\n      }\n    });\n  }\n\n  /** The current per-channel appearance settings. */\n  public get channelProps(): ChannelProps[] | undefined {\n    return this.channelProps_;\n  }\n\n  /**\n   * Applies new per-channel appearance settings to all visible chunks\n   * and notifies channel change callbacks.\n   *\n   * @param channelProps - One entry per source channel.\n   */\n  public setChannelProps(channelProps: ChannelProps[]) {\n    this.channelProps_ = channelProps;\n    this.visibleChunks_.forEach((image, chunk) => {\n      image.setChannelProps(this.getChannelPropsForChunk(chunk));\n    });\n    this.rebuildRenderGroups();\n    this.channelChangeCallbacks_.forEach((callback) => {\n      callback();\n    });\n  }\n\n  /** Restores the channel settings passed at construction. */\n  public resetChannelProps(): void {\n    if (this.initialChannelProps_ !== undefined) {\n      this.setChannelProps(this.initialChannelProps_);\n    }\n  }\n\n  /**\n   * Registers a callback invoked after every channel settings change.\n   *\n   * @param callback - The callback to add.\n   */\n  public addChannelChangeCallback(callback: () => void): void {\n    this.channelChangeCallbacks_.push(callback);\n  }\n\n  /**\n   * Removes a previously registered channel change callback.\n   *\n   * @param callback - The callback to remove.\n   */\n  public removeChannelChangeCallback(callback: () => void): void {\n    const index = this.channelChangeCallbacks_.indexOf(callback);\n    if (index === -1) {\n      throw new Error(`Callback to remove could not be found: ${callback}`);\n    }\n    this.channelChangeCallbacks_.splice(index, 1);\n  }\n\n  private releaseAndRemoveChunks(chunks: Iterable<Chunk>): void {\n    for (const chunk of chunks) {\n      const image = this.visibleChunks_.get(chunk);\n      if (image) {\n        this.pool_.release(poolKeyForImageRenderable(chunk, this.axes_), image);\n        this.visibleChunks_.delete(chunk);\n      }\n    }\n  }\n}\n\nexport function poolKeyForImageRenderable(chunk: Chunk, axes: SliceAxes) {\n  return [\n    `plane${axes.u}${axes.v}`,\n    `lod${chunk.lod}`,\n    `shape${chunk.shape.x}x${chunk.shape.y}x${chunk.shape.z}`,\n    `align${chunk.rowAlignmentBytes}`,\n  ].join(\":\");\n}\n","import { Geometry } from \"../../core/geometry\";\n\ntype Axis = \"x\" | \"y\" | \"z\";\ntype Vec3Obj = Record<Axis, number>;\n\nexport class BoxGeometry extends Geometry {\n  constructor(\n    width: number,\n    height: number,\n    depth: number,\n    widthSegments: number,\n    heightSegments: number,\n    depthSegments: number\n  ) {\n    super();\n\n    const vertex: number[] = [];\n    const index: number[] = [];\n\n    const wSeg = Math.floor(widthSegments);\n    const hSeg = Math.floor(heightSegments);\n    const dSeg = Math.floor(depthSegments);\n\n    // prettier-ignore\n    {\n      this.buildFace(\"z\", \"y\", \"x\", -1, -1, depth, height, width, dSeg, hSeg, +1, vertex, index); // +X\n      this.buildFace(\"z\", \"y\", \"x\", +1, -1, depth, height, width, dSeg, hSeg, -1, vertex, index); // -X\n      this.buildFace(\"x\", \"z\", \"y\", +1, +1, width, depth, height, wSeg, dSeg, +1, vertex, index); // +Y\n      this.buildFace(\"x\", \"z\", \"y\", +1, -1, width, depth, height, wSeg, dSeg, -1, vertex, index); // -Y\n      this.buildFace(\"x\", \"y\", \"z\", +1, -1, width, height, depth, wSeg, hSeg, +1, vertex, index); // +Z\n      this.buildFace(\"x\", \"y\", \"z\", -1, -1, width, height, depth, wSeg, hSeg, -1, vertex, index); // -Z\n    }\n\n    this.vertexData_ = new Float32Array(vertex);\n    this.indexData_ = new Uint32Array(index);\n\n    this.addAttribute({\n      type: \"position\",\n      itemSize: 3,\n      offset: 0,\n    });\n\n    this.addAttribute({\n      type: \"normal\",\n      itemSize: 3,\n      offset: 3 * Float32Array.BYTES_PER_ELEMENT,\n    });\n\n    this.addAttribute({\n      type: \"uv\",\n      itemSize: 2,\n      offset: 6 * Float32Array.BYTES_PER_ELEMENT,\n    });\n  }\n\n  private buildFace(\n    axisU: Axis,\n    axisV: Axis,\n    axisW: Axis,\n    udir: number,\n    vdir: number,\n    faceWidth: number,\n    faceHeight: number,\n    faceDepth: number,\n    gridX: number,\n    gridY: number,\n    wdir: number,\n    vertex: number[],\n    index: number[]\n  ) {\n    const segmentWidth = faceWidth / gridX;\n    const segmentHeight = faceHeight / gridY;\n\n    const widthHalf = faceWidth / 2;\n    const heightHalf = faceHeight / 2;\n    const depthHalf = (faceDepth / 2) * wdir;\n\n    const gridX1 = gridX + 1;\n    const gridY1 = gridY + 1;\n\n    const vertexPosition = vertex.length / 8;\n\n    for (let iy = 0; iy < gridY1; iy++) {\n      const vy = -heightHalf + iy * segmentHeight;\n      for (let ix = 0; ix < gridX1; ix++) {\n        const vx = -widthHalf + ix * segmentWidth;\n\n        const position: Vec3Obj = { x: 0, y: 0, z: 0 };\n        position[axisU] = vx * udir;\n        position[axisV] = vy * vdir;\n        position[axisW] = depthHalf;\n\n        const normal: Vec3Obj = { x: 0, y: 0, z: 0 };\n        normal[axisW] = wdir;\n\n        const u = ix / gridX;\n        const v = 1 - iy / gridY;\n\n        vertex.push(\n          position.x,\n          position.y,\n          position.z,\n          normal.x,\n          normal.y,\n          normal.z,\n          u,\n          v\n        );\n      }\n    }\n\n    for (let iy = 0; iy < gridY; iy++) {\n      for (let ix = 0; ix < gridX; ix++) {\n        const a = vertexPosition + ix + gridX1 * iy;\n        const b = vertexPosition + ix + gridX1 * (iy + 1);\n        const c = vertexPosition + (ix + 1) + gridX1 * (iy + 1);\n        const d = vertexPosition + (ix + 1) + gridX1 * iy;\n        index.push(a, b, d, b, c, d);\n      }\n    }\n  }\n}\n","import type { Shader } from \"../../renderers/shaders\";\nimport { RenderableObject } from \"../../core/renderable_object\";\nimport { BoxGeometry } from \"../geometry/box_geometry\";\nimport { type Texture, TextureDataType } from \"../textures/texture\";\nimport {\n  Channel,\n  ChannelProps,\n  validateChannel,\n  validateChannels,\n} from \"../../core/channel\";\nimport { vec3 } from \"gl-matrix\";\nimport type { Chunk } from \"../../data/chunk\";\n\n/**\n * Initialization properties for constructing a volume renderable.\n */\nexport type VolumeRenderableProps = {\n  /** Channel appearance settings. Defaults to `[]`. */\n  channelProps?: ChannelProps[];\n};\n\n/**\n * A ray-marched box that draws multi-channel volumetric data.\n *\n * The renderable draws a unit box and ray marches through 3D chunk\n * textures in the fragment shader. Up to 4 channels blend in a single\n * pass and all loaded channels must share one texture data type. Front\n * faces are culled and depth testing is off by default.\n * {@link VolumeLayer} constructs and pools one instance per spatial chunk\n * group, streams chunk textures in with {@link updateVolumeWithChunk},\n * and sizes the box through the transform.\n *\n * @group Renderables\n */\nexport class VolumeRenderable extends RenderableObject {\n  /**\n   * World size of a voxel along each axis. Layers set it from the chunk\n   * scale so ray march steps account for anisotropic voxels. Defaults to\n   * `[1, 1, 1]`.\n   */\n  public voxelScale: vec3 = vec3.fromValues(1, 1, 1);\n\n  private channels_: Required<Channel>[];\n  private loadedChannels_: Set<number> = new Set();\n\n  private readonly channelToTextureIndex_: Map<number, number> = new Map();\n\n  /**\n   * Creates an empty volume renderable.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor({ channelProps = [] }: VolumeRenderableProps = {}) {\n    super();\n    this.geometry = new BoxGeometry(1, 1, 1, 1, 1, 1);\n    this.cullFaceMode = \"front\";\n    this.depthTest = false;\n    this.channels_ = [];\n    this.setChannelProps(channelProps);\n  }\n\n  /** Identifies the renderable type as `VolumeRenderable`. */\n  public get type() {\n    return \"VolumeRenderable\";\n  }\n\n  /**\n   * Loads or refreshes the texture for the chunk's channel. The channel\n   * index comes from the chunk and the texture's data type selects the\n   * volume shader, so every channel must share one data type. Chunks\n   * without a texture are ignored.\n   *\n   * @param chunk - The chunk holding the channel texture.\n   */\n  public updateVolumeWithChunk(chunk: Chunk): void {\n    if (!chunk.texture) return;\n\n    const channelIndex = chunk.chunkIndex.c;\n\n    const textureIndex = this.channelToTextureIndex_.get(channelIndex);\n    if (textureIndex !== undefined) {\n      this.updateChannelTexture(textureIndex, chunk.texture);\n    } else {\n      this.addChannelTexture(channelIndex, chunk.texture);\n    }\n\n    this.loadedChannels_.add(channelIndex);\n  }\n\n  private addChannelTexture(channelIndex: number, texture: Texture): void {\n    const textureIndex = this.textures.length;\n\n    this.setTexture(textureIndex, texture);\n    this.channelToTextureIndex_.set(channelIndex, textureIndex);\n\n    const newProgramName = dataTypeToVolumeShader(texture.dataType);\n    if (this.programName && this.programName !== newProgramName) {\n      throw new Error(\n        `Volume renderable does not support multiple channels with different data types. Existing program: ${this.programName}, new channel data type: ${texture.dataType} and program: ${newProgramName}`\n      );\n    }\n\n    this.programName = newProgramName;\n  }\n\n  private updateChannelTexture(textureIndex: number, texture: Texture): void {\n    this.setTexture(textureIndex, texture);\n  }\n\n  /**\n   * Marks all channels as not loaded so they stop rendering until the\n   * next chunk update. The textures themselves are kept.\n   */\n  public clearLoadedChannels() {\n    this.loadedChannels_ = new Set();\n  }\n\n  /**\n   * Clears all textures and channel state so the renderable can be\n   * pooled and reused for another chunk.\n   */\n  public reset() {\n    this.clearTextures();\n    this.channelToTextureIndex_.clear();\n    this.clearLoadedChannels();\n  }\n\n  /**\n   * Returns per-channel sampler, color, contrast, opacity, and\n   * visibility uniforms for up to 4 loaded channels plus the voxel\n   * scale.\n   */\n  public override getUniforms(): Record<string, number[] | number> {\n    const loadedAndVisibleTextures = [0, 0, 0, 0];\n    // prettier-ignore\n    const colors = [\n      1, 1, 1,\n      1, 1, 1,\n      1, 1, 1,\n      1, 1, 1,\n    ]\n    const valueOffset = [0, 0, 0, 0];\n    const valueScale = [1, 1, 1, 1];\n    const channelOpacity = [1, 1, 1, 1];\n    const samplerUniforms: number[] = [];\n\n    // Allow to render without channel props specified\n    const numTotalChannels = Math.max(\n      this.channels_.length,\n      this.channelToTextureIndex_.size\n    );\n\n    for (let i = 0; i < numTotalChannels && samplerUniforms.length < 4; i++) {\n      const textureIndex = this.channelToTextureIndex_.get(i);\n      if (textureIndex === undefined || !this.loadedChannels_.has(i)) continue;\n\n      const texture = this.textures[textureIndex];\n      const channel = validateChannel(texture, this.channels_[i] || {});\n      if (!channel.visible) continue;\n\n      const k = samplerUniforms.length;\n      colors[k * 3] = channel.color.rgb[0];\n      colors[k * 3 + 1] = channel.color.rgb[1];\n      colors[k * 3 + 2] = channel.color.rgb[2];\n\n      samplerUniforms.push(textureIndex);\n      valueOffset[k] = -channel.contrastLimits[0];\n      valueScale[k] =\n        1 / (channel.contrastLimits[1] - channel.contrastLimits[0]);\n      loadedAndVisibleTextures[k] = 1;\n\n      channelOpacity[k] = channel.opacity;\n    }\n\n    return samplerUniforms.reduce<Record<string, number[] | number>>(\n      (uniforms, textureIndex, i) => {\n        uniforms[`u_channel${i}Sampler`] = textureIndex;\n        return uniforms;\n      },\n      {\n        u_visible: loadedAndVisibleTextures,\n        \"u_color[0]\": colors,\n        u_valueOffset: valueOffset,\n        u_valueScale: valueScale,\n        u_channelOpacity: channelOpacity,\n        u_voxelScale: [\n          this.voxelScale[0],\n          this.voxelScale[1],\n          this.voxelScale[2],\n        ],\n      }\n    );\n  }\n\n  /**\n   * Get an available texture for a channel. If desiredChannelIndex is provided, it will try to return the texture for that channel index. If that texture is not available, or no desiredChannelIndex is passed, return the first available channel texture. This is used to determine which texture to use when updating channel properties, since channel properties can be updated even if the channel's texture hasn't been loaded yet. If no textures are available, it returns null, which signals that default contrast limits should be used when validating the channel properties.\n   */\n  private getAvailableChannelTexture(\n    desiredChannelIndex?: number\n  ): Texture | null {\n    if (desiredChannelIndex !== undefined) {\n      const textureIndex = this.channelToTextureIndex_.get(desiredChannelIndex);\n      if (textureIndex !== undefined) return this.textures[textureIndex];\n    }\n\n    const firstTextureIndex = this.channelToTextureIndex_.values().next().value;\n    return firstTextureIndex !== undefined\n      ? this.textures[firstTextureIndex]\n      : null;\n  }\n\n  /**\n   * Replaces the appearance settings for all channels.\n   *\n   * @param channels - The new channel settings.\n   */\n  public setChannelProps(channels: ChannelProps[]) {\n    this.channels_ = validateChannels(\n      this.getAvailableChannelTexture(),\n      channels\n    );\n  }\n\n  /**\n   * Updates one property of the channel at the given index and\n   * revalidates it against the channel's texture when available.\n   *\n   * @param channelIndex - The channel to update.\n   * @param property - The property name to set.\n   * @param value - The new value.\n   */\n  public setChannelProperty<K extends keyof ChannelProps>(\n    channelIndex: number,\n    property: K,\n    value: Required<ChannelProps>[K]\n  ) {\n    const newChannel = validateChannel(\n      this.getAvailableChannelTexture(channelIndex),\n      {\n        ...this.channels_[channelIndex],\n        [property]: value,\n      }\n    );\n\n    this.channels_[channelIndex] = newChannel;\n  }\n}\n\nfunction dataTypeToVolumeShader(dataType: TextureDataType): Shader {\n  switch (dataType) {\n    case \"byte\":\n    case \"int\":\n    case \"short\":\n      return \"intVolume\";\n    case \"unsigned_short\":\n    case \"unsigned_byte\":\n    case \"unsigned_int\":\n      return \"uintVolume\";\n    case \"float\":\n      return \"floatVolume\";\n  }\n}\n","import { Chunk, ChunkSource, SliceCoordinates } from \"../data/chunk\";\nimport { Layer } from \"../core/layer\";\nimport { Camera } from \"../objects/cameras/camera\";\nimport { Viewport } from \"../core/viewport\";\nimport { VolumeRenderable } from \"../objects/renderable/volume_renderable\";\nimport { IdetikContext } from \"../idetik\";\nimport { ChunkStoreView, INTERNAL_POLICY_KEY } from \"../data/chunk_store_view\";\nimport {\n  createExplorationPolicy,\n  ImageSourcePolicy,\n} from \"../core/image_source_policy\";\nimport { RenderablePool } from \"../utilities/renderable_pool\";\nimport { vec3 } from \"gl-matrix\";\nimport {\n  ChannelProps,\n  ChannelsEnabled,\n  validateChannelPropsCount,\n} from \"../core/channel\";\n\n/**\n * Initialization properties for constructing a volume layer.\n */\nexport type VolumeLayerProps = {\n  /** The chunked image source to stream from. */\n  source: ChunkSource;\n  /** Selects `t` and `c`. Spatial axes are ignored. */\n  sliceCoords: SliceCoordinates;\n  /** Streaming policy. Defaults to the exploration policy. */\n  policy?: ImageSourcePolicy;\n  /** Per-channel appearance. Length must match the source. */\n  channelProps?: ChannelProps[];\n};\n\nconst INTERACTIVE_STEP_SIZE_SCALE = 2.0;\n\n/**\n * A layer that renders a chunked multi-channel image source as a 3D\n * volume.\n *\n * Volume layer ray marches the loaded chunks with premultiplied blending\n * and composites all visible channels in a single pass. The volume renders\n * at a single level of detail taken from the policy's `lod.min`, so pin\n * one with the policy when constructing the layer. While the camera moves\n * the ray march step size is doubled to keep interaction responsive.\n *\n * ```ts\n * const source = await OmeZarrImageSource.fromHttp({ url });\n *\n * const layer = new VolumeLayer({\n *   source,\n *   sliceCoords: { t: 0, c: undefined },\n *   policy: createExplorationPolicy({ lod: { min: 2, max: 2 } }),\n *   channelProps: [\n *     { color: \"#00ffff\", contrastLimits: [300, 1500] },\n *     { color: \"#ff00ff\", contrastLimits: [75, 500] },\n *   ],\n * });\n *\n * viewport.addLayer(layer);\n * ```\n *\n * @see {@link ImageLayer} for 2D slicing of the same data.\n *\n * @group Layers\n */\nexport class VolumeLayer extends Layer implements ChannelsEnabled {\n  /** Identifies the layer type as `VolumeLayer`. */\n  public readonly type = \"VolumeLayer\";\n\n  /** Highlights rays of zero length for debugging. Defaults to `false`. */\n  public debugShowDegenerateRays = false;\n\n  /** Ray march step size relative to voxel size. Defaults to `1`. */\n  public relativeStepSize = 1.0;\n\n  /** Scales sample opacity during compositing. Defaults to `1`. */\n  public opacityMultiplier = 1.0;\n\n  /** Alpha where a ray stops early. Defaults to `0.99`. */\n  public earlyTerminationAlpha = 0.99;\n\n  /** Volume ray marching reads scene depth to composite with occluding layers. */\n  protected override requiresSceneDepth_ = true;\n\n  private readonly source_: ChunkSource;\n  private readonly sliceCoords_: SliceCoordinates;\n  private readonly currentVolumes_: Map<string, VolumeRenderable> = new Map();\n  private readonly volumeToPoolKey_: Map<VolumeRenderable, string> = new Map();\n  private readonly pool_ = new RenderablePool<VolumeRenderable>();\n  private readonly initialChannelProps_?: ChannelProps[];\n  private readonly channelChangeCallbacks_: Array<() => void> = [];\n  private policy_: ImageSourcePolicy;\n  private chunkStoreView_?: ChunkStoreView;\n  private channelProps_?: ChannelProps[];\n\n  private lastLoadedTime_: number | undefined = undefined;\n  private lastNumRenderedChannelChunks_: number | undefined = undefined;\n  private interactiveStepSizeScale_ = 1.0;\n\n  // TODO: Make a debug config object to manage debug options\n  private debugShowWireframes_ = false;\n\n  /** Whether chunk bounding wireframes are drawn for debugging. */\n  public get debugShowWireframes() {\n    return this.debugShowWireframes_;\n  }\n\n  /** @param value - Whether to draw chunk wireframes. */\n  public set debugShowWireframes(value: boolean) {\n    if (this.debugShowWireframes_ === value) return;\n    for (const volume of this.currentVolumes_.values()) {\n      volume.wireframeEnabled = value;\n    }\n    this.debugShowWireframes_ = value;\n  }\n\n  /**\n   * Sets the streaming policy at runtime and reschedules loading. The\n   * volume renders the level of detail given by the policy's `lod.min`.\n   *\n   * @param newPolicy - The policy to apply.\n   */\n  public set imageSourcePolicy(newPolicy: ImageSourcePolicy) {\n    if (this.policy_ !== newPolicy) {\n      this.policy_ = newPolicy;\n      if (this.chunkStoreView_) {\n        this.chunkStoreView_.setImageSourcePolicy(\n          newPolicy,\n          INTERNAL_POLICY_KEY\n        );\n      }\n    }\n  }\n\n  /**\n   * Applies new per-channel appearance settings to all visible volumes\n   * and notifies channel change callbacks.\n   *\n   * @param channelProps - One entry per source channel.\n   */\n  public setChannelProps(channelProps: ChannelProps[]) {\n    this.channelProps_ = channelProps;\n    for (const volume of this.currentVolumes_.values()) {\n      volume.setChannelProps(channelProps);\n    }\n    this.channelChangeCallbacks_.forEach((callback) => {\n      callback();\n    });\n  }\n\n  /** The current per-channel appearance settings. */\n  public get channelProps(): ChannelProps[] | undefined {\n    return this.channelProps_;\n  }\n\n  /** Restores the channel settings passed at construction. */\n  public resetChannelProps(): void {\n    if (this.initialChannelProps_ !== undefined) {\n      this.setChannelProps(this.initialChannelProps_);\n    }\n  }\n\n  /**\n   * Registers a callback invoked after every channel settings change.\n   *\n   * @param callback - The callback to add.\n   */\n  public addChannelChangeCallback(callback: () => void): void {\n    this.channelChangeCallbacks_.push(callback);\n  }\n\n  /**\n   * Removes a previously registered channel change callback.\n   *\n   * @param callback - The callback to remove.\n   */\n  public removeChannelChangeCallback(callback: () => void): void {\n    const index = this.channelChangeCallbacks_.indexOf(callback);\n    if (index === -1) {\n      throw new Error(`Callback to remove could not be found: ${callback}`);\n    }\n    this.channelChangeCallbacks_.splice(index, 1);\n  }\n\n  /**\n   * Creates a volume layer for the given source.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor({ source, sliceCoords, policy, channelProps }: VolumeLayerProps) {\n    super({ blendMode: \"premultipliedOver\" });\n    this.source_ = source;\n    this.sliceCoords_ = sliceCoords;\n    this.policy_ = policy ?? createExplorationPolicy();\n    this.initialChannelProps_ = channelProps;\n    this.channelProps_ = channelProps;\n    this.setState(\"initialized\");\n  }\n\n  private getOrCreateVolume(key: string, chunks: Chunk[]): VolumeRenderable {\n    const existing = this.currentVolumes_.get(key);\n    if (existing) {\n      for (const chunk of chunks) existing.updateVolumeWithChunk(chunk);\n      return existing;\n    }\n\n    const poolKey = poolKeyForChunk(chunks[0]);\n    const volume = this.pool_.acquire(poolKey) ?? new VolumeRenderable();\n    volume.setChannelProps(this.channelProps_ ?? []);\n    this.volumeToPoolKey_.set(volume, poolKey);\n\n    for (const chunk of chunks) volume.updateVolumeWithChunk(chunk);\n    this.updateVolumeTransform(volume, chunks[0]);\n    return volume;\n  }\n\n  /** @hidden */\n  protected attach(context: IdetikContext) {\n    this.chunkStoreView_ = context.chunkManager.addView(\n      this.source_,\n      this.policy_\n    );\n\n    validateChannelPropsCount(\n      this.channelProps_,\n      this.chunkStoreView_.channelCount\n    );\n  }\n\n  /** @hidden */\n  protected detach(_context: IdetikContext) {\n    for (const volume of this.currentVolumes_.values()) {\n      this.releaseAndRemoveVolume(volume);\n    }\n    this.currentVolumes_.clear();\n    this.clearObjects();\n    this.chunkStoreView_?.dispose();\n    this.chunkStoreView_ = undefined;\n  }\n\n  private updateChunks() {\n    if (!this.chunkStoreView_) return;\n    if (this.state !== \"ready\") this.setState(\"ready\");\n\n    const chunksToRender = this.chunkStoreView_.getChunksToRender();\n    const currentTime = this.sliceCoords_.t ?? -1;\n    const groupedChunks = groupBySpatialIndex(chunksToRender);\n\n    const needsUpdate =\n      this.lastLoadedTime_ !== currentTime ||\n      groupedChunks.size !== this.currentVolumes_.size ||\n      this.lastNumRenderedChannelChunks_ !== chunksToRender.length;\n    if (!needsUpdate) return;\n\n    for (const [key, volume] of this.currentVolumes_) {\n      if (!groupedChunks.has(key)) {\n        this.releaseAndRemoveVolume(volume);\n        this.currentVolumes_.delete(key);\n      }\n    }\n\n    for (const [key, chunks] of groupedChunks) {\n      const volume = this.getOrCreateVolume(key, chunks);\n      volume.wireframeEnabled = this.debugShowWireframes;\n      this.currentVolumes_.set(key, volume);\n    }\n\n    this.lastLoadedTime_ = currentTime;\n    this.lastNumRenderedChannelChunks_ = chunksToRender.length;\n  }\n\n  private updateVolumeTransform(volume: VolumeRenderable, chunk: Chunk) {\n    const worldSize = {\n      x: chunk.shape.x * chunk.scale.x,\n      y: chunk.shape.y * chunk.scale.y,\n      z: chunk.shape.z * chunk.scale.z,\n    };\n    volume.transform.setScale([worldSize.x, worldSize.y, worldSize.z]);\n    vec3.set(volume.voxelScale, chunk.scale.x, chunk.scale.y, chunk.scale.z);\n    const originOffset = {\n      x: (chunk.shape.x * chunk.scale.x) / 2,\n      y: (chunk.shape.y * chunk.scale.y) / 2,\n      z: (chunk.shape.z * chunk.scale.z) / 2,\n    };\n    volume.transform.setTranslation([\n      chunk.offset.x + originOffset.x,\n      chunk.offset.y + originOffset.y,\n      chunk.offset.z + originOffset.z,\n    ]);\n  }\n\n  private releaseAndRemoveVolume(volume: VolumeRenderable) {\n    volume.reset();\n    this.pool_.release(this.volumeToPoolKey_.get(volume)!, volume);\n    this.volumeToPoolKey_.delete(volume);\n  }\n\n  /**\n   * Streams chunks for the current view and rebuilds the volume set\n   * sorted front to back. Called automatically once per frame.\n   *\n   * @param viewport - The viewport being rendered.\n   */\n  public update(viewport?: Viewport) {\n    if (!viewport || !this.chunkStoreView_) return;\n\n    this.chunkStoreView_.updateChunksForVolume(\n      this.sliceCoords_,\n      viewport.camera.getViewProjection()\n    );\n\n    const isCameraMoving = viewport.cameraControls?.isMoving ?? false;\n    this.interactiveStepSizeScale_ = isCameraMoving\n      ? INTERACTIVE_STEP_SIZE_SCALE\n      : 1.0;\n\n    this.updateChunks();\n    this.rebuildObjects(viewport.camera);\n  }\n\n  private rebuildObjects(camera: Camera) {\n    const volumes = Array.from(this.currentVolumes_.values());\n    sortBackToFront(volumes, camera);\n\n    this.clearObjects();\n    for (const volume of volumes) {\n      this.addObject(volume);\n    }\n  }\n\n  /** Returns the ray marching uniforms for this layer. */\n  public getUniforms(): Record<string, unknown> {\n    return {\n      u_debugShowDegenerateRays: Number(this.debugShowDegenerateRays),\n      u_relativeStepSize:\n        this.relativeStepSize * this.interactiveStepSizeScale_,\n      u_opacityMultiplier: this.opacityMultiplier,\n      u_earlyTerminationAlpha: this.earlyTerminationAlpha,\n    };\n  }\n}\n\nfunction spatialKey(chunk: Chunk): string {\n  const { x, y, z, t } = chunk.chunkIndex;\n  return `${x}:${y}:${z}:${t}`;\n}\n\nfunction groupBySpatialIndex(chunks: Chunk[]): Map<string, Chunk[]> {\n  const grouped = new Map<string, Chunk[]>();\n  for (const chunk of chunks) {\n    const key = spatialKey(chunk);\n    let group = grouped.get(key);\n    if (!group) {\n      group = [];\n      grouped.set(key, group);\n    }\n    group.push(chunk);\n  }\n  return grouped;\n}\n\nexport function poolKeyForChunk(chunk: Chunk) {\n  return [\n    `lod${chunk.lod}`,\n    `shape${chunk.shape.x}x${chunk.shape.y}x${chunk.shape.z}`,\n    `align${chunk.rowAlignmentBytes}`,\n  ].join(\":\");\n}\n\nfunction sortBackToFront(objects: VolumeRenderable[], camera: Camera) {\n  const cameraPosition = camera.position;\n  const depths = new Map<VolumeRenderable, number>();\n\n  for (const object of objects) {\n    const center = object.transform.translation;\n    depths.set(object, vec3.squaredDistance(cameraPosition, center));\n  }\n\n  objects.sort((a, b) => depths.get(b)! - depths.get(a)!);\n}\n","import {\n  DataTextureTypedArray,\n  Texture,\n  bufferToDataType,\n} from \"../../objects/textures/texture\";\n\nexport class Texture2D extends Texture {\n  private readonly width_: number;\n  private readonly height_: number;\n\n  constructor(data: DataTextureTypedArray, width: number, height: number) {\n    super();\n    this.dataFormat = \"scalar\";\n    this.dataType = bufferToDataType(data);\n\n    this.data_ = data;\n    this.width_ = width;\n    this.height_ = height;\n  }\n\n  public get type() {\n    return \"Texture2D\";\n  }\n\n  public get width() {\n    return this.width_;\n  }\n\n  public get height() {\n    return this.height_;\n  }\n}\n","import { RenderableObject } from \"../../core/renderable_object\";\nimport { PlaneGeometry } from \"../../objects/geometry/plane_geometry\";\nimport { mat4 } from \"gl-matrix\";\nimport { Texture, TextureDataType } from \"../../objects/textures/texture\";\nimport { Color, ColorLike } from \"../../math/color\";\nimport { Texture2D } from \"../textures/texture_2d\";\nimport { Shader } from \"../../renderers/shaders\";\n\nconst defaultColorCycle: ColorLike[] = [\n  [1.0, 0.5, 0.5],\n  [0.5, 1.0, 0.5],\n  [0.5, 0.5, 1.0],\n  [0.5, 1.0, 1.0],\n  [1.0, 0.5, 1.0],\n  [1.0, 1.0, 0.5],\n];\n\nfunction validateLookupTable(\n  lookupTable?: ReadonlyMap<number, ColorLike>\n): ReadonlyMap<number, Color> {\n  lookupTable = lookupTable ?? new Map();\n  return new Map(\n    Array.from(lookupTable.entries()).map(([key, value]) => [\n      key,\n      Color.from(value),\n    ])\n  );\n}\n\nfunction validateCycle(cycle?: ReadonlyArray<ColorLike>): ReadonlyArray<Color> {\n  cycle = cycle ?? defaultColorCycle;\n  return cycle.map(Color.from);\n}\n\n/**\n * Color assignments for label values.\n *\n * Values present in `lookupTable` use its color. Any other value takes a\n * color from `cycle` by index. Value `0` renders transparent unless the\n * lookup table assigns it a color.\n */\nexport type LabelColorMapProps = {\n  /** Exact colors for specific label values. */\n  lookupTable?: ReadonlyMap<number, ColorLike>;\n  /** Colors cycled by value. Defaults to 6 built-ins. */\n  cycle?: ReadonlyArray<ColorLike>;\n};\n\n/**\n * A validated color map with every entry resolved to a {@link Color}.\n * Returned by {@link LabelLayer.colorMap}.\n */\nexport type LabelColorMap = {\n  /** Exact colors for specific label values. */\n  readonly lookupTable: ReadonlyMap<number, Color>;\n  /** Colors cycled by value. */\n  readonly cycle: ReadonlyArray<Color>;\n};\n\nexport function validateColorMap(\n  props: LabelColorMapProps = {}\n): LabelColorMap {\n  return {\n    lookupTable: validateLookupTable(props.lookupTable),\n    cycle: validateCycle(props.cycle),\n  };\n}\n\n/**\n * Initialization properties for constructing a label image renderable.\n */\nexport type LabelImageRenderableProps = {\n  /** Width of the label image in texels. */\n  width: number;\n  /** Height of the label image in texels. */\n  height: number;\n  /** Scalar integer texture of label values. */\n  imageData: Texture;\n  /** Colors to apply to label values. */\n  colorMap: LabelColorMapProps;\n  /** Outlines the selected value. Defaults to `false`. */\n  outlineSelected?: boolean;\n  /** The selected label value. Defaults to `null`. */\n  selectedValue?: number | null;\n};\n\nconst signedDataTypes = new Set<TextureDataType>([\"byte\", \"short\", \"int\"]);\nconst unsignedDataTypes = new Set<TextureDataType>([\n  \"unsigned_byte\",\n  \"unsigned_short\",\n  \"unsigned_int\",\n]);\n\nfunction validateImageData(imageData: Texture) {\n  if (imageData.dataFormat !== \"scalar\") {\n    throw new Error(\n      `Image data format must be scalar, instead found: ${imageData.dataFormat}`\n    );\n  }\n  if (\n    !signedDataTypes.has(imageData.dataType) &&\n    !unsignedDataTypes.has(imageData.dataType)\n  ) {\n    throw new Error(\n      `Image data type must be an integer, instead found: ${imageData.dataType}`\n    );\n  }\n  return imageData;\n}\n\nfunction labelTextureToShader(texture: Texture): Shader {\n  return signedDataTypes.has(texture.dataType) ? \"intLabelImage\" : \"labelImage\";\n}\n\n/**\n * A textured plane that draws one 2D slice of integer label data.\n *\n * Each label value is colored through a {@link LabelColorMap}. Values in\n * the lookup table use its color, other values take a color from the\n * cycle, and value `0` renders transparent unless the lookup table covers\n * it. The image texture must hold scalar integer data. {@link LabelLayer}\n * constructs and pools one instance per visible chunk, so most\n * applications configure labels through the layer instead.\n *\n * @group Renderables\n */\nexport class LabelImageRenderable extends RenderableObject {\n  /**\n   * A matrix mapping world space to the texture's normalized coordinate\n   * space. Layers derive it from the chunk's offset, scale, and shape.\n   */\n  public worldToTexCoord: mat4 = mat4.create();\n\n  private outlineSelected_: boolean;\n  private selectedValue_: number | null;\n\n  /**\n   * Creates a label renderable drawing the given label texture. The\n   * texture's data type selects the matching label shader.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor(props: LabelImageRenderableProps) {\n    super();\n    this.geometry = new PlaneGeometry(props.width, props.height, 1, 1);\n    this.setTexture(0, validateImageData(props.imageData));\n    const colorMap = validateColorMap(props.colorMap);\n    this.setTexture(1, this.makeColorCycleTexture(colorMap.cycle));\n    this.setTexture(2, this.makeColorLookupTableTexture(colorMap.lookupTable));\n    this.outlineSelected_ = props.outlineSelected ?? false;\n    this.selectedValue_ = props.selectedValue ?? null;\n    this.programName = labelTextureToShader(props.imageData);\n    this.depthProgramName = \"meshDepth\";\n  }\n\n  /** Identifies the renderable type as `LabelImageRenderable`. */\n  public get type() {\n    return \"LabelImageRenderable\";\n  }\n\n  /**\n   * Returns the sampler, color map, and selection uniforms for the label\n   * image shaders.\n   */\n  public getUniforms() {\n    return {\n      u_imageSampler: 0,\n      u_colorCycleSampler: 1,\n      u_colorLookupTableSampler: 2,\n      u_outlineSelected: this.outlineSelected_ ? 1.0 : 0.0,\n      u_selectedValue: this.selectedValue_ ?? -1.0,\n      u_worldToTexCoord: this.worldToTexCoord,\n    };\n  }\n\n  /**\n   * Replaces the label color map. The previous color map textures are\n   * marked stale for GPU disposal.\n   *\n   * @param colorMap - The new color map.\n   */\n  public setColorMap(colorMap: LabelColorMapProps) {\n    const validated = validateColorMap(colorMap);\n    this.markStaleTexture(this.textures[1]);\n    this.markStaleTexture(this.textures[2]);\n    this.setTexture(1, this.makeColorCycleTexture(validated.cycle));\n    this.setTexture(2, this.makeColorLookupTableTexture(validated.lookupTable));\n  }\n\n  /**\n   * Sets the label value drawn as selected or `null` to clear the\n   * selection. The selected region is outlined when the renderable was\n   * constructed with `outlineSelected`.\n   *\n   * @param value - The label value to select.\n   */\n  public setSelectedValue(value: number | null) {\n    this.selectedValue_ = value;\n  }\n\n  private makeColorCycleTexture(cycle: ReadonlyArray<Color>) {\n    const data = new Uint8Array(\n      cycle.flatMap((c) => c.rgba).map((v) => Math.round(v * 255))\n    );\n    const texture = new Texture2D(data, cycle.length, 1);\n    texture.dataFormat = \"rgba\";\n    return texture;\n  }\n\n  private makeColorLookupTableTexture(\n    lookupTable?: ReadonlyMap<number, Color>\n  ) {\n    if (lookupTable === undefined) {\n      lookupTable = new Map([[0, Color.TRANSPARENT]]);\n    } else if (!lookupTable.has(0)) {\n      lookupTable = new Map([[0, Color.TRANSPARENT], ...lookupTable]);\n    }\n    const keys = Array.from(lookupTable.keys());\n    const values = Array.from(lookupTable.values()).map((c) => c.packed);\n    const numColors = lookupTable.size;\n    const data = new Uint32Array(numColors * 2);\n    data.set(keys, 0);\n    data.set(values, numColors);\n    return new Texture2D(data, numColors, 2);\n  }\n}\n","import { BlendMode, Layer } from \"../core/layer\";\nimport { Viewport } from \"../core/viewport\";\nimport { OrthographicCamera } from \"../objects/cameras/orthographic_camera\";\nimport type { IdetikContext } from \"../idetik\";\nimport {\n  Chunk,\n  ChunkSource,\n  SliceCoordinates,\n  worldToTexCoordForChunk,\n} from \"../data/chunk\";\nimport {\n  AxisComponent,\n  SliceAxes,\n  SliceOrientation,\n  orientationRotation,\n  sliceAxesFor,\n} from \"../math/axes\";\nimport { ChunkStoreView, INTERNAL_POLICY_KEY } from \"../data/chunk_store_view\";\nimport {\n  createExplorationPolicy,\n  ImageSourcePolicy,\n} from \"../core/image_source_policy\";\nimport {\n  LabelColorMapProps,\n  LabelColorMap,\n  validateColorMap,\n  LabelImageRenderable,\n} from \"../objects/renderable/label_image_renderable\";\nimport { Texture } from \"../objects/textures/texture\";\nimport { EventContext } from \"../core/event_dispatcher\";\nimport { Plane } from \"../math/plane\";\nimport { Ray } from \"../math/ray\";\nimport { quat, vec2, vec3 } from \"gl-matrix\";\nimport { handlePointPickingEvent, PointPickingResult } from \"./point_picking\";\nimport { clamp } from \"../utilities/clamp\";\nimport { RenderablePool } from \"../utilities/renderable_pool\";\nimport { poolKeyForImageRenderable } from \"./image_layer\";\n\n/**\n * Initialization properties for constructing a label layer.\n */\nexport type LabelLayerProps = {\n  /** The single-channel label source to stream from. */\n  source: ChunkSource;\n  /** The slice to display in world units. */\n  sliceCoords: SliceCoordinates;\n  /** Streaming policy. Defaults to the exploration policy. */\n  policy?: ImageSourcePolicy;\n  /** Slice plane orientation. Defaults to `\"XY\"`. */\n  orientation?: SliceOrientation;\n  /** Colors for label values. Defaults to a built-in cycle. */\n  colorMap?: LabelColorMapProps;\n  /** Called with the picked label when the layer is clicked. */\n  onPickValue?: (info: PointPickingResult) => void;\n  /** Outlines the picked label. Defaults to `false`. */\n  outlineSelected?: boolean;\n  /** Layer opacity in `[0, 1]`. Defaults to `1`. */\n  opacity?: number;\n  /** How the layer blends. Defaults to `\"none\"`. */\n  blendMode?: BlendMode;\n  /** Hides content behind. Inferred from `blendMode`. */\n  occludes?: boolean;\n};\n\n/**\n * A layer that renders a 2D slice of a single-channel label image.\n *\n * Label layer displays segmentation data where each pixel holds an\n * integer label. Labels are colored by cycling through the color map's\n * `cycle` with exact-value overrides in its `lookupTable`. Chunks stream\n * through the same policy machinery as {@link ImageLayer} and the source\n * must be single channel.\n *\n * Clicking the layer picks the label under the pointer. With\n * `outlineSelected` the picked label is outlined, and `onPickValue`\n * receives the world position and label value for custom handling such as\n * highlighting through {@link setColorMap}.\n *\n * ```ts\n * const labels = new LabelLayer({\n *   source: labelSource,\n *   sliceCoords: { z: 12, c: [0] },\n *   opacity: 0.55,\n *   blendMode: \"normal\",\n *   onPickValue: ({ value }) => console.log(`label ${value}`),\n * });\n *\n * viewport.addLayer(labels);\n * ```\n *\n * @group Layers\n */\nexport class LabelLayer extends Layer {\n  /** Identifies the layer type as `LabelLayer`. */\n  public readonly type = \"LabelLayer\";\n\n  private readonly source_: ChunkSource;\n  private readonly sliceCoords_: SliceCoordinates;\n  private axes_: SliceAxes;\n  private planeRotation_: quat;\n  private orientation_: SliceOrientation;\n  private readonly onPickValue_?: (info: PointPickingResult) => void;\n  private readonly outlineSelected_: boolean;\n  private readonly visibleChunks_: Map<Chunk, LabelImageRenderable> = new Map();\n  private readonly pool_ = new RenderablePool<LabelImageRenderable>();\n  private colorMap_: LabelColorMap;\n  private selectedValue_: number | null = null;\n  private policy_: ImageSourcePolicy;\n  private chunkStoreView_?: ChunkStoreView;\n  private context_?: IdetikContext;\n  private pointerDownPos_: vec2 | null = null;\n\n  private static readonly STALE_PRESENTATION_MS_ = 1000;\n  private lastPresentationTimeStamp_?: DOMHighResTimeStamp;\n  private lastPresentationTimeCoord_?: number;\n\n  /**\n   * Creates a label layer for the given source and slice.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor({\n    source,\n    sliceCoords,\n    policy,\n    orientation,\n    colorMap = {},\n    onPickValue,\n    outlineSelected = false,\n    ...layerOptions\n  }: LabelLayerProps) {\n    super(layerOptions);\n    this.setState(\"initialized\");\n    this.source_ = source;\n    this.policy_ = policy ?? createExplorationPolicy();\n    this.sliceCoords_ = sliceCoords;\n    this.orientation_ = orientation ?? \"XY\";\n    this.axes_ = sliceAxesFor(this.orientation_);\n    this.planeRotation_ = orientationRotation(this.axes_);\n    this.colorMap_ = validateColorMap(colorMap);\n    this.onPickValue_ = onPickValue;\n    this.outlineSelected_ = outlineSelected;\n  }\n\n  /** @hidden */\n  protected attach(context: IdetikContext) {\n    this.context_ = context;\n    this.chunkStoreView_ = context.chunkManager.addView(\n      this.source_,\n      this.policy_,\n      this.axes_\n    );\n\n    if (this.chunkStoreView_.channelCount > 1) {\n      throw new Error(\n        `LabelLayer does not support multi-channel sources ` +\n          `(found ${this.chunkStoreView_.channelCount} channels). ` +\n          `Label data must be single-channel.`\n      );\n    }\n  }\n\n  /** @hidden */\n  protected detach(_context: IdetikContext) {\n    this.releaseAndRemoveChunks(this.visibleChunks_.keys());\n    this.clearObjects();\n    this.chunkStoreView_?.dispose();\n    this.chunkStoreView_ = undefined;\n    this.context_ = undefined;\n  }\n\n  /**\n   * Streams chunks for the current view and refreshes the visible slice.\n   * Called automatically once per frame.\n   *\n   * @param viewport - The viewport being rendered.\n   */\n  public update(viewport?: Viewport) {\n    if (!viewport || !this.chunkStoreView_) return;\n\n    const camera = viewport.camera;\n\n    // non-orthographic viewports have no world-space view rect, so we load the\n    // whole slice plane and pick LOD as if it spanned the viewport. stopgap\n    // until view-dependent LOD selection and culling work under perspective.\n    const worldViewRect =\n      camera.type === \"OrthographicCamera\"\n        ? (camera as OrthographicCamera).getWorldViewRect()\n        : this.chunkStoreView_.getWholePlaneRect();\n\n    this.chunkStoreView_.updateChunksForImage(this.sliceCoords_, {\n      worldViewRect,\n      bufferWidthPx: viewport.getBufferRect().width,\n    });\n\n    this.updateChunks();\n\n    for (const [chunk, labelRenderable] of this.visibleChunks_) {\n      this.updateSlicePosition(labelRenderable, chunk);\n    }\n  }\n\n  /** The slice plane the layer displays. */\n  public get orientation(): SliceOrientation {\n    return this.orientation_;\n  }\n\n  /**\n   * Changes the slice orientation at runtime. Visible renderables are\n   * rebuilt for the new plane and chunks already resident in the shared\n   * cache are reused.\n   *\n   * @param orientation - The new slice plane.\n   */\n  public setOrientation(orientation: SliceOrientation) {\n    if (orientation === this.orientation_) {\n      return;\n    }\n\n    this.releaseAndRemoveChunks(this.visibleChunks_.keys());\n    this.clearObjects();\n    this.chunkStoreView_?.dispose();\n    this.lastPresentationTimeStamp_ = undefined;\n    this.lastPresentationTimeCoord_ = undefined;\n    this.orientation_ = orientation;\n    this.axes_ = sliceAxesFor(orientation);\n    this.planeRotation_ = orientationRotation(this.axes_);\n\n    if (!this.context_) {\n      return;\n    }\n\n    this.chunkStoreView_ = this.context_.chunkManager.addView(\n      this.source_,\n      this.policy_,\n      this.axes_\n    );\n  }\n\n  private updateChunks() {\n    if (!this.chunkStoreView_) return;\n    if (this.state !== \"ready\") this.setState(\"ready\");\n\n    const visibleChunksResident = Array.from(this.visibleChunks_.keys()).every(\n      (chunk) => chunk.texture !== undefined\n    );\n\n    if (\n      this.visibleChunks_.size > 0 &&\n      visibleChunksResident &&\n      !this.chunkStoreView_.allVisibleFallbackLODLoaded() &&\n      !this.isPresentationStale()\n    ) {\n      return;\n    }\n    this.lastPresentationTimeStamp_ = performance.now();\n    this.lastPresentationTimeCoord_ = this.sliceCoords_.t;\n\n    const orderedByLOD = this.chunkStoreView_.getChunksToRender();\n    const current = new Set(orderedByLOD);\n    const nonVisibleChunks = Array.from(this.visibleChunks_.keys()).filter(\n      (chunk) => !current.has(chunk)\n    );\n    this.releaseAndRemoveChunks(nonVisibleChunks);\n\n    this.clearObjects();\n    // one coverage group; labels are single-channel but may be multi-scale\n    for (const chunk of orderedByLOD) {\n      const label = this.getLabelForChunk(chunk, chunk.texture!);\n      this.visibleChunks_.set(chunk, label);\n      this.addObject(label, 0);\n    }\n  }\n\n  private isPresentationStale(): boolean {\n    if (this.lastPresentationTimeStamp_ === undefined) return false;\n    return (\n      performance.now() - this.lastPresentationTimeStamp_ >\n      LabelLayer.STALE_PRESENTATION_MS_\n    );\n  }\n\n  /**\n   * Handles click picking and selection outlining. Called automatically\n   * for each pointer event on the owning viewport.\n   *\n   * @param event - The event with clip and world coordinates attached.\n   */\n  public onEvent(event: EventContext) {\n    this.pointerDownPos_ = handlePointPickingEvent(\n      event,\n      this.pointerDownPos_,\n      (ray) => this.pickAtRay(ray),\n      this.outlineSelected_\n        ? (info: PointPickingResult) => {\n            this.setSelectedValue(info.value);\n            this.onPickValue_?.(info);\n          }\n        : this.onPickValue_\n    );\n  }\n\n  private async pickAtRay(ray: Ray): Promise<PointPickingResult | null> {\n    const firstChunk = this.visibleChunks_.values().next();\n    if (firstChunk.done) return null;\n\n    const transform = firstChunk.value.transform;\n    const planeNormal = vec3.transformQuat(\n      vec3.create(),\n      vec3.fromValues(0, 0, 1),\n      transform.rotation\n    );\n\n    const plane = Plane.fromPointAndNormal(transform.translation, planeNormal);\n    const world = ray.intersectWithPlane(plane);\n    if (!world) return null;\n\n    const value = await this.getValueAtWorld(world);\n    if (value === null) return null;\n\n    return { world, value };\n  }\n\n  /** The validated color map currently in effect. */\n  public get colorMap(): LabelColorMap {\n    return this.colorMap_;\n  }\n\n  /**\n   * Replaces the color map and recolors all visible chunks.\n   *\n   * @param colorMap - Colors for label values. Omitted fields fall back\n   *   to defaults.\n   */\n  public setColorMap(colorMap: LabelColorMapProps) {\n    this.colorMap_ = validateColorMap(colorMap);\n    this.visibleChunks_.forEach((label) => {\n      label.setColorMap(this.colorMap_);\n    });\n  }\n\n  /**\n   * Sets the label value drawn as selected or `null` to clear the\n   * selection.\n   *\n   * @param value - The label value to select.\n   */\n  public setSelectedValue(value: number | null) {\n    this.selectedValue_ = value;\n    this.visibleChunks_.forEach((label) => {\n      label.setSelectedValue(this.selectedValue_);\n    });\n  }\n\n  /**\n   * The slice coordinates the layer displays. This is the object passed\n   * at construction and may be mutated to move through the data.\n   */\n  public get sliceCoords(): SliceCoordinates {\n    return this.sliceCoords_;\n  }\n\n  /** The chunked label source the layer streams from. */\n  public get source(): ChunkSource {\n    return this.source_;\n  }\n\n  /**\n   * The streaming policy in effect. Assign a new policy to reschedule\n   * loading at runtime, for example when switching between exploration\n   * and playback.\n   */\n  public get imageSourcePolicy(): Readonly<ImageSourcePolicy> {\n    return this.policy_;\n  }\n\n  /** @param newPolicy - The policy to apply. */\n  public set imageSourcePolicy(newPolicy: ImageSourcePolicy) {\n    if (this.policy_ !== newPolicy) {\n      this.policy_ = newPolicy;\n      if (this.chunkStoreView_) {\n        this.chunkStoreView_.setImageSourcePolicy(\n          newPolicy,\n          INTERNAL_POLICY_KEY\n        );\n      }\n    }\n  }\n\n  // exposed for use in chunk info overlay\n  /** The layer's chunk store view for diagnostic overlays. */\n  public get chunkStoreView(): ChunkStoreView | undefined {\n    return this.chunkStoreView_;\n  }\n\n  /** The `t` coordinate of the most recently presented slice. */\n  public get lastPresentationTimeCoord(): number | undefined {\n    return this.lastPresentationTimeCoord_;\n  }\n\n  /**\n   * Reads the label value at a world position from the resident chunks.\n   * Prefers the current level of detail and falls back to other resident\n   * levels.\n   *\n   * @param world - The world-space position to sample.\n   * @returns The label value or `null` if no resident chunk covers it.\n   */\n  public async getValueAtWorld(world: vec3): Promise<number | null> {\n    const currentLOD = this.chunkStoreView_?.currentLOD ?? 0;\n\n    for (const preferCurrentLOD of [true, false]) {\n      for (const [chunk, label] of this.visibleChunks_) {\n        if ((chunk.lod === currentLOD) !== preferCurrentLOD) continue;\n        const value = await this.readValueFromChunk(chunk, label, world);\n        if (value !== null) return value;\n      }\n    }\n    return null;\n  }\n\n  private async readValueFromChunk(\n    chunk: Chunk,\n    label: LabelImageRenderable,\n    world: vec3\n  ): Promise<number | null> {\n    const localPos = vec3.transformMat4(\n      vec3.create(),\n      world,\n      label.transform.inverse\n    );\n\n    const { u, v, w } = this.axes_;\n    const uIdx = Math.floor(localPos[0]);\n    const vIdx = Math.floor(localPos[1]);\n\n    if (\n      uIdx < 0 ||\n      uIdx >= chunk.shape[u] ||\n      vIdx < 0 ||\n      vIdx >= chunk.shape[v]\n    ) {\n      return null;\n    }\n\n    const texel = { x: 0, y: 0, z: 0 };\n    texel[u] = uIdx;\n    texel[v] = vIdx;\n    texel[w] = this.sliceIndexForChunk(chunk);\n    return (\n      (await label.textures[0].readTexel?.(texel.x, texel.y, texel.z)) ?? null\n    );\n  }\n\n  private getLabelForChunk(chunk: Chunk, texture: Texture) {\n    const existing = this.visibleChunks_.get(chunk);\n    if (existing) return existing;\n\n    const pooled = this.pool_.acquire(\n      poolKeyForImageRenderable(chunk, this.axes_)\n    );\n    if (pooled) {\n      pooled.setTexture(0, texture);\n      pooled.setColorMap(this.colorMap_);\n      pooled.setSelectedValue(this.selectedValue_);\n      this.updateLabelChunk(pooled, chunk);\n\n      return pooled;\n    }\n\n    return this.createLabel(chunk, texture);\n  }\n\n  private createLabel(chunk: Chunk, texture: Texture) {\n    const label = new LabelImageRenderable({\n      width: chunk.shape[this.axes_.u],\n      height: chunk.shape[this.axes_.v],\n      imageData: texture,\n      colorMap: this.colorMap_,\n      outlineSelected: this.outlineSelected_,\n      selectedValue: this.selectedValue_,\n    });\n    this.updateLabelChunk(label, chunk);\n    return label;\n  }\n\n  private updateSlicePosition(label: LabelImageRenderable, chunk: Chunk) {\n    const { u, v, w } = this.axes_;\n    const translation = vec3.create();\n    translation[AxisComponent[u]] = chunk.offset[u];\n    translation[AxisComponent[v]] = chunk.offset[v];\n    translation[AxisComponent[w]] = this.sliceCoords_[w] ?? chunk.offset[w];\n    label.transform.setTranslation(translation);\n  }\n\n  private sliceIndexForChunk(chunk: Chunk): number {\n    const w = this.axes_.w;\n    const sliceValue = this.sliceCoords_[w];\n    if (sliceValue === undefined) {\n      return 0;\n    }\n\n    const local = (sliceValue - chunk.offset[w]) / chunk.scale[w];\n    return clamp(Math.round(local), 0, chunk.shape[w] - 1);\n  }\n\n  private updateLabelChunk(label: LabelImageRenderable, chunk: Chunk) {\n    const { u, v } = this.axes_;\n    label.transform.setScale([chunk.scale[u], chunk.scale[v], 1]);\n    label.transform.setRotation(this.planeRotation_);\n    this.updateSlicePosition(label, chunk);\n    label.worldToTexCoord = worldToTexCoordForChunk(chunk, this.axes_);\n  }\n\n  private releaseAndRemoveChunks(chunks: Iterable<Chunk>): void {\n    for (const chunk of chunks) {\n      const label = this.visibleChunks_.get(chunk);\n      if (label) {\n        this.pool_.release(poolKeyForImageRenderable(chunk, this.axes_), label);\n        this.visibleChunks_.delete(chunk);\n      }\n    }\n  }\n}\n","import {\n  DataTextureTypedArray,\n  Texture,\n  bufferToDataType,\n} from \"../../objects/textures/texture\";\n\nexport class Texture2DArray extends Texture {\n  private readonly width_: number;\n  private readonly height_: number;\n  private readonly depth_: number;\n\n  constructor(data: DataTextureTypedArray, width: number, height: number) {\n    super();\n    this.dataFormat = \"scalar\";\n    this.dataType = bufferToDataType(data);\n\n    this.data_ = data;\n    this.width_ = width;\n    this.height_ = height;\n    // We currently assume that each slice's size is equal to the image's area\n    this.depth_ = data.length / (width * height);\n  }\n\n  public get type() {\n    return \"Texture2DArray\";\n  }\n\n  public get width() {\n    return this.width_;\n  }\n\n  public get height() {\n    return this.height_;\n  }\n\n  public get depth() {\n    return this.depth_;\n  }\n}\n","import { vec3 } from \"gl-matrix\";\n\nimport { Color, ColorLike } from \"../../math/color\";\nimport { RenderableObject } from \"../../core/renderable_object\";\nimport { Texture2DArray } from \"../textures/texture_2d_array\";\nimport { Geometry } from \"../../core/geometry\";\n\ntype Marker = \"circle\" | \"square\" | \"triangle\";\n\nconst MARKER_INDEX: Record<Marker, number> = {\n  circle: 0,\n  square: 1,\n  triangle: 2,\n};\n\n// TODO: add a border (or \"secondary\") color to improve contrast against background\n/**\n * Initialization properties for a point in {@link PointsRenderable}.\n */\nexport type PointProps = {\n  /** World-space position of the point. */\n  position: vec3;\n  /** Fill color of the marker. */\n  color: ColorLike;\n  /** Marker size in pixels. */\n  size: number;\n  /** Marker shape. */\n  marker: Marker;\n};\n\n/**\n * A set of point markers drawn as screen-space sprites.\n *\n * Each point has a world-space position, a color, a size in pixels, and a\n * marker shape. All instances share a single marker sprite atlas. The\n * point set is fixed at construction, so build a new instance to change\n * it. Construct these directly inside a custom {@link Layer}.\n *\n * ```ts\n * class Particles extends Layer {\n *   public readonly type = \"Particles\";\n *\n *   constructor(positions: vec3[]) {\n *     super();\n *     this.addObject(\n *       new PointsRenderable(\n *         positions.map((position) => ({\n *           position,\n *           color: Color.RED,\n *           size: 20,\n *           marker: \"circle\" as const,\n *         }))\n *       )\n *     );\n *     this.setState(\"ready\");\n *   }\n *\n *   public update() {}\n * }\n * ```\n *\n * @group Renderables\n */\nexport class PointsRenderable extends RenderableObject {\n  /**\n   * Creates a renderable drawing one marker per entry.\n   *\n   * @param points - The points to draw.\n   */\n  constructor(points: PointProps[]) {\n    super();\n    this.programName = \"points\";\n    this.depthProgramName = \"pointsDepth\";\n\n    const vertexData = points.flatMap((point) => {\n      const color = Color.from(point.color);\n      return [\n        point.position[0],\n        point.position[1],\n        point.position[2],\n        color.r,\n        color.g,\n        color.b,\n        color.a,\n        point.size,\n        MARKER_INDEX[point.marker],\n      ];\n    });\n    const geometry = new Geometry(vertexData, [], \"points\");\n\n    geometry.addAttribute({\n      type: \"position\",\n      itemSize: 3,\n      offset: 0,\n    });\n    geometry.addAttribute({\n      type: \"color\",\n      itemSize: 4,\n      offset: geometry.strideBytes,\n    });\n    geometry.addAttribute({\n      type: \"size\",\n      itemSize: 1,\n      offset: geometry.strideBytes,\n    });\n    geometry.addAttribute({\n      type: \"marker\",\n      itemSize: 1,\n      offset: geometry.strideBytes,\n    });\n\n    this.geometry = geometry;\n    this.setTexture(0, getMarkerAtlas());\n  }\n\n  /** Identifies the renderable type as `PointsRenderable`. */\n  public get type() {\n    return \"PointsRenderable\";\n  }\n}\n\nlet markerAtlas: Texture2DArray | undefined;\n\n// The marker atlas is a fixed set of sprites shared by all PointsRenderable instances.\n// Each marker in `Marker` maps to a slice in the atlas (see `MARKER_INDEX`).\nfunction getMarkerAtlas(): Texture2DArray {\n  if (!markerAtlas) {\n    markerAtlas = createMarkerAtlas();\n  }\n  return markerAtlas;\n}\n\nfunction createMarkerAtlas(): Texture2DArray {\n  const square = (size: number) => {\n    const data = new Float32Array(size * size);\n    data.fill(1.0);\n    return data;\n  };\n\n  const circle = (size: number) => {\n    const data = new Float32Array(size * size);\n    for (let i = 0; i < size; i++) {\n      for (let j = 0; j < size; j++) {\n        if ((i - size / 2) ** 2 + (j - size / 2) ** 2 < (size / 2) ** 2) {\n          data[i * size + j] = 1.0;\n        }\n      }\n    }\n    return data;\n  };\n\n  const triangle = (size: number) => {\n    const data = new Float32Array(size * size);\n    for (let i = 0; i < size; i++) {\n      for (let j = 0; j < size; j++) {\n        if (j >= (size - i) / 2 && j <= (size + i) / 2) {\n          data[i * size + j] = 1.0;\n        }\n      }\n    }\n    return data;\n  };\n\n  const SPRITE_SIZE = 256;\n  const pixelsPerMarkerSprite = SPRITE_SIZE * SPRITE_SIZE;\n  const sprites: Record<Marker, Float32Array> = {\n    circle: circle(SPRITE_SIZE),\n    square: square(SPRITE_SIZE),\n    triangle: triangle(SPRITE_SIZE),\n  };\n\n  const numMarkers = Object.keys(sprites).length;\n  const data = new Float32Array(numMarkers * pixelsPerMarkerSprite);\n  for (const [marker, sprite] of Object.entries(sprites) as [\n    Marker,\n    Float32Array,\n  ][]) {\n    data.set(sprite, MARKER_INDEX[marker] * pixelsPerMarkerSprite);\n  }\n\n  // TODO: this uses f32 values, which are not (by default) filterable in WebGL2\n  // to enable this, we can check/add OES_texture_float_linear.\n  // we also don't need the precision of f32 for this so I'd like to use an R8\n  // texture instead, but our Texture class does not yet support it.\n  const texture = new Texture2DArray(data, SPRITE_SIZE, SPRITE_SIZE);\n  texture.wrapR = \"clamp_to_edge\";\n  texture.wrapS = \"clamp_to_edge\";\n  texture.wrapT = \"clamp_to_edge\";\n  return texture;\n}\n","import { Plane } from \"./plane\";\nimport { Box3 } from \"./box3\";\nimport { mat4, vec3 } from \"gl-matrix\";\n\n/**\n * Camera view frustum defined by six world-space planes.\n *\n * Frustum represents the visible region of a camera as six bounding\n * planes. It is used for culling tests and visibility checks against\n * bounding boxes. The planes are extracted from a view-projection matrix\n * and normalized so distances are in world units.\n *\n * @group Math\n */\nexport class Frustum {\n  private readonly planes_: [Plane, Plane, Plane, Plane, Plane, Plane];\n\n  /**\n   * Creates a frustum from a view-projection matrix.\n   *\n   * @param m - The combined view-projection matrix.\n   */\n  constructor(m: mat4) {\n    this.planes_ = [\n      new Plane(vec3.create(), 0),\n      new Plane(vec3.create(), 0),\n      new Plane(vec3.create(), 0),\n      new Plane(vec3.create(), 0),\n      new Plane(vec3.create(), 0),\n      new Plane(vec3.create(), 0),\n    ];\n    this.setWithViewProjection(m);\n  }\n\n  // Uses the fast plane-extraction algorithm described in\n  // Gribb & Hartmann (1997): https://tinyurl.com/5x5htcwm\n  /**\n   * Re-extracts the six planes from a view-projection matrix.\n   *\n   * @param m - The combined view-projection matrix.\n   */\n  public setWithViewProjection(m: mat4) {\n    const n = vec3.create();\n\n    // Left: row3 + row0\n    this.planes_[0].set(\n      vec3.set(n, m[3] + m[0], m[7] + m[4], m[11] + m[8]),\n      m[15] + m[12]\n    );\n\n    // Right: row3 - row0\n    this.planes_[1].set(\n      vec3.set(n, m[3] - m[0], m[7] - m[4], m[11] - m[8]),\n      m[15] - m[12]\n    );\n\n    // Top: row3 - row1\n    this.planes_[2].set(\n      vec3.set(n, m[3] - m[1], m[7] - m[5], m[11] - m[9]),\n      m[15] - m[13]\n    );\n\n    // Bottom: row3 + row1\n    this.planes_[3].set(\n      vec3.set(n, m[3] + m[1], m[7] + m[5], m[11] + m[9]),\n      m[15] + m[13]\n    );\n\n    // Near: row3 + row2\n    this.planes_[4].set(\n      vec3.set(n, m[3] + m[2], m[7] + m[6], m[11] + m[10]),\n      m[15] + m[14]\n    );\n\n    // Far: row3 - row2\n    this.planes_[5].set(\n      vec3.set(n, m[3] - m[2], m[7] - m[6], m[11] - m[10]),\n      m[15] - m[14]\n    );\n\n    for (const p of this.planes_) p.normalize();\n  }\n\n  /**\n   * Tests whether a box is at least partly inside the frustum. The test\n   * is conservative. A box outside the frustum but near a corner can be\n   * reported as intersecting, which only costs a draw of an offscreen\n   * object.\n   *\n   * @param box - The world-space box to test.\n   */\n  public intersectsWithBox3(box: Box3) {\n    const v = vec3.create();\n    for (const plane of this.planes_) {\n      const n = plane.normal;\n      v[0] = n[0] > 0 ? box.max[0] : box.min[0];\n      v[1] = n[1] > 0 ? box.max[1] : box.min[1];\n      v[2] = n[2] > 0 ? box.max[2] : box.min[2];\n      if (plane.signedDistanceToPoint(v) < 0) return false;\n    }\n    return true;\n  }\n}\n","import { Node } from \"../../core/node\";\nimport { Frustum } from \"../../math/frustum\";\nimport { TrsTransform } from \"../../math/transforms\";\nimport { mat4, vec3, vec4 } from \"gl-matrix\";\n\n/** Identifies a concrete camera implementation. */\nexport type CameraType = \"OrthographicCamera\" | \"PerspectiveCamera\";\n\n/**\n * Abstract base class for cameras.\n *\n * A camera pairs a world-space transform with a projection, producing the\n * view and projection matrices used to render a viewport. The concrete\n * cameras, {@link OrthographicCamera} and {@link PerspectiveCamera}, define\n * the projection. This class provides the shared transform, derived\n * matrices, and navigation helpers.\n *\n * @group Cameras\n */\nexport abstract class Camera extends Node {\n  private readonly transform_ = new TrsTransform();\n  /** @hidden */\n  protected projectionMatrix_ = mat4.create();\n  /** @hidden */\n  protected near_ = 0;\n  /** @hidden */\n  protected far_ = 0;\n\n  /** @hidden */\n  protected abstract updateProjectionMatrix(): void;\n\n  /** Identifies the camera type. */\n  public abstract get type(): CameraType;\n\n  /** Recomputes the camera's projection matrix. */\n  public update() {\n    this.updateProjectionMatrix();\n  }\n\n  /** The camera's projection matrix. */\n  get projectionMatrix() {\n    return this.projectionMatrix_;\n  }\n\n  /** The camera's world-space transform. */\n  public get transform() {\n    return this.transform_;\n  }\n\n  /** The view matrix: the inverse of the camera's world transform. */\n  get viewMatrix() {\n    return this.transform.inverse;\n  }\n\n  /** The camera's local right axis in world space. */\n  get right() {\n    const m = this.transform.matrix;\n    return vec3.fromValues(m[0], m[1], m[2]);\n  }\n\n  /** The camera's local up axis in world space. */\n  get up() {\n    const m = this.transform.matrix;\n    return vec3.fromValues(m[4], m[5], m[6]);\n  }\n\n  /**\n   * Computes the combined view-projection matrix.\n   *\n   * @returns The projection matrix multiplied by the view matrix.\n   */\n  public getViewProjection(): mat4 {\n    return mat4.multiply(mat4.create(), this.projectionMatrix, this.viewMatrix);\n  }\n\n  /** The view frustum derived from the current view-projection. */\n  get frustum() {\n    return new Frustum(this.getViewProjection());\n  }\n\n  /**\n   * Sets the aspect ratio (width / height) of the viewport the camera\n   * renders into. Called automatically by the owning viewport when it\n   * resizes.\n   *\n   * @param aspectRatio - The viewport's width divided by its height.\n   */\n  public abstract setAspectRatio(aspectRatio: number): void;\n\n  /**\n   * Zooms the view by the given factor relative to the current zoom level.\n   * Factors greater than `1` zoom in and factors between `0` and `1` zoom\n   * out.\n   *\n   * @param factor - The magnification factor to apply.\n   */\n  public abstract zoom(factor: number): void;\n\n  /**\n   * Moves the camera by the given world-space offset.\n   *\n   * @param vec - The translation to add to the camera's position.\n   */\n  public pan(vec: vec3) {\n    this.transform.addTranslation(vec);\n  }\n\n  /** The camera's world-space position. */\n  public get position() {\n    return this.transform.translation;\n  }\n\n  /**\n   * Transforms a position from clip space to world space.\n   *\n   * @param position - The clip-space position to transform.\n   * @returns The corresponding world-space position.\n   */\n  public clipToWorld(position: vec3): vec3 {\n    const clipPos = vec4.fromValues(position[0], position[1], position[2], 1);\n    const projectionInverse = mat4.invert(\n      mat4.create(),\n      this.projectionMatrix_\n    )!;\n    const viewPos = vec4.transformMat4(\n      vec4.create(),\n      clipPos,\n      projectionInverse\n    );\n    vec4.scale(viewPos, viewPos, 1 / viewPos[3]);\n    // the camera transform is *not* inverted here because we use the inverse when rendering\n    const worldPos = vec4.transformMat4(\n      vec4.create(),\n      viewPos,\n      this.transform.matrix\n    );\n    return vec3.fromValues(worldPos[0], worldPos[1], worldPos[2]);\n  }\n}\n","import { vec3 } from \"gl-matrix\";\n\nexport class Spherical {\n  public radius;\n  public phi;\n  public theta;\n\n  constructor(radius: number, phi: number, theta: number) {\n    this.radius = radius;\n    this.phi = phi;\n    this.theta = theta;\n  }\n\n  public toVec3() {\n    const c = Math.cos(this.theta);\n    return vec3.fromValues(\n      this.radius * Math.sin(this.phi) * c,\n      -this.radius * Math.sin(this.theta),\n      this.radius * Math.cos(this.phi) * c\n    );\n  }\n}\n","import { CameraControls, ScrollZoomMode } from \"./controls\";\nimport { EventContext } from \"../../core/event_dispatcher\";\nimport { PerspectiveCamera } from \"./perspective_camera\";\nimport { Spherical } from \"../../math/spherical\";\n\nimport { glMatrix, vec3 } from \"gl-matrix\";\nimport { clamp } from \"../../utilities/clamp\";\n\nconst MOUSE_BUTTON_NONE = -1;\nconst MOUSE_BUTTON_LEFT = 0;\nconst MOUSE_BUTTON_MIDDLE = 1;\n\nconst ORBIT_SPEED = 0.009;\nconst PAN_SPEED = 0.001;\nconst ZOOM_SPEED = 0.0009;\nconst DEFAULT_DAMPING_FACTOR = 0.5;\nconst DAMPING_FPS = 60; // Base FPS to normalize damping\n\n/**\n * Initialization properties for constructing orbit controls.\n */\nexport type OrbitControlsProps = {\n  /** Distance from the target in world units. Defaults to `1`. */\n  radius?: number;\n  /** Initial azimuth angle in radians. Defaults to `0`. */\n  yaw?: number;\n  /** Initial elevation angle in radians. Defaults to `0`. */\n  pitch?: number;\n  /** The point the camera orbits. Defaults to the origin. */\n  target?: vec3;\n  /** Velocity decay rate between `0` and `1`. Defaults to `0.5`. */\n  dampingFactor?: number;\n  /** When the scroll wheel zooms. Defaults to `\"always\"`. */\n  scrollZoom?: ScrollZoomMode;\n};\n\n/**\n * Camera controls for orbiting a perspective camera around a target.\n *\n * Dragging with the left mouse button orbits, dragging with `Shift` held\n * or with the middle button pans the target, and the scroll wheel zooms by\n * changing the orbit radius. Input adds velocity that damping decays over time.\n *\n * ```ts\n * const camera = new PerspectiveCamera({ near: 1.0 });\n *\n * const idetik = new Idetik({\n *   canvas,\n *   viewports: [{\n *     camera,\n *     layers: [volumeLayer],\n *     cameraControls: new OrbitControls(camera, {\n *       radius: 100,\n *       target: [40, 40, 10],\n *     }),\n *   }],\n * });\n * ```\n *\n * @group Controls\n */\nexport class OrbitControls implements CameraControls {\n  private readonly camera_: PerspectiveCamera;\n\n  private readonly orbitVelocity_ = new Spherical(0, 0, 0);\n  private readonly panVelocity_ = vec3.create();\n\n  private readonly currPos_: Spherical;\n  private readonly currCenter_ = vec3.create();\n\n  private readonly dampingFactor_: number;\n  private readonly scrollZoom_: ScrollZoomMode;\n\n  private currMouseButton_ = MOUSE_BUTTON_NONE;\n\n  /**\n   * Creates orbit controls and moves the camera to the initial pose.\n   *\n   * @param camera - The perspective camera to control.\n   * @param params - Initialization properties.\n   */\n  constructor(camera: PerspectiveCamera, params?: OrbitControlsProps) {\n    this.camera_ = camera;\n\n    this.currPos_ = new Spherical(\n      params?.radius ?? 1,\n      params?.yaw ?? 0,\n      params?.pitch ?? 0\n    );\n\n    if (params?.target) {\n      vec3.copy(this.currCenter_, params.target);\n    }\n\n    this.dampingFactor_ = clamp(\n      params?.dampingFactor ?? DEFAULT_DAMPING_FACTOR,\n      0,\n      1\n    );\n\n    this.scrollZoom_ = params?.scrollZoom ?? \"always\";\n\n    this.updateCamera();\n  }\n\n  /** The current distance from the target in world units. */\n  public get radius(): number {\n    return this.currPos_.radius;\n  }\n\n  /** The current azimuth angle in radians. */\n  public get yaw(): number {\n    return this.currPos_.phi;\n  }\n\n  /** The current elevation angle in radians. */\n  public get pitch(): number {\n    return this.currPos_.theta;\n  }\n\n  /** A copy of the point the camera orbits. */\n  public get target(): vec3 {\n    return vec3.clone(this.currCenter_);\n  }\n\n  /** Whether any orbit, pan, or zoom velocity remains. */\n  public get isMoving(): boolean {\n    return (\n      this.orbitVelocity_.phi !== 0 ||\n      this.orbitVelocity_.theta !== 0 ||\n      this.orbitVelocity_.radius !== 0 ||\n      this.panVelocity_[0] !== 0 ||\n      this.panVelocity_[1] !== 0 ||\n      this.panVelocity_[2] !== 0\n    );\n  }\n\n  /**\n   * Handles a pointer or wheel event. Called automatically by the owning\n   * viewport unless a layer stops propagation.\n   *\n   * @param event - The event with clip and world coordinates attached.\n   */\n  public onEvent(event: EventContext): void {\n    switch (event.type) {\n      case \"pointerdown\":\n        this.onPointerDown(event);\n        break;\n      case \"pointermove\":\n        this.onPointerMove(event);\n        break;\n      case \"wheel\":\n        this.onWheel(event);\n        break;\n      case \"pointerup\":\n      case \"pointercancel\":\n        this.onPointerEnd(event);\n        break;\n    }\n  }\n\n  /**\n   * Applies pending velocities to the camera and decays them toward zero.\n   * Called automatically by the render loop once per frame.\n   *\n   * @param dt - Time since the last frame in seconds.\n   */\n  public onUpdate(dt: number) {\n    if (\n      this.orbitVelocity_.phi === 0 &&\n      this.orbitVelocity_.theta === 0 &&\n      this.orbitVelocity_.radius === 0 &&\n      vec3.equals(this.panVelocity_, vec3.fromValues(0, 0, 0))\n    ) {\n      return;\n    }\n\n    this.currPos_.phi += this.orbitVelocity_.phi;\n    this.currPos_.theta += this.orbitVelocity_.theta;\n    this.currPos_.radius += this.orbitVelocity_.radius * this.currPos_.radius;\n\n    vec3.add(this.currCenter_, this.currCenter_, this.panVelocity_);\n\n    // Prevent the camera from reaching the poles (±π/2), where\n    // the view direction would flip and orbit controls would invert.\n    // We clamp the elevation angle slightly before ±π/2 to maintain\n    // stable rotation and avoid gimbal-like artifacts.\n    const limit = Math.PI / 2 - glMatrix.EPSILON;\n    this.currPos_.theta = clamp(this.currPos_.theta, -limit, limit);\n    this.currPos_.radius = Math.max(0.01, this.currPos_.radius);\n\n    this.updateCamera();\n\n    const damping = Math.pow(1.0 - this.dampingFactor_, dt * DAMPING_FPS);\n    this.orbitVelocity_.phi *= damping;\n    this.orbitVelocity_.theta *= damping;\n    this.orbitVelocity_.radius *= damping;\n    vec3.scale(this.panVelocity_, this.panVelocity_, damping);\n\n    this.cutoffLowVelocity();\n  }\n\n  private onPointerDown(event: EventContext) {\n    const e = event.event as PointerEvent;\n    this.currMouseButton_ = e.button;\n\n    (e.target as Element)?.setPointerCapture?.(e.pointerId);\n  }\n\n  private onPointerMove(event: EventContext) {\n    if (this.currMouseButton_ == MOUSE_BUTTON_NONE) return;\n\n    const e = event.event as PointerEvent;\n    const dx = e.movementX ?? 0;\n    const dy = e.movementY ?? 0;\n\n    const doOrbit = this.currMouseButton_ === MOUSE_BUTTON_LEFT && !e.shiftKey;\n    const doPan =\n      (this.currMouseButton_ === MOUSE_BUTTON_LEFT && e.shiftKey) ||\n      this.currMouseButton_ === MOUSE_BUTTON_MIDDLE;\n\n    if (doOrbit) this.orbit(dx, dy);\n    if (doPan) this.pan(dx, dy);\n  }\n\n  private onWheel(event: EventContext) {\n    const e = event.event as WheelEvent;\n\n    if (this.scrollZoom_ === \"never\") return;\n    if (this.scrollZoom_ === \"modifier\" && !(e.ctrlKey || e.metaKey)) return;\n\n    e.preventDefault(); // prevent the page from scrolling\n\n    const dy = e.deltaY ?? 0;\n    this.zoom(dy);\n  }\n\n  private onPointerEnd(event: EventContext) {\n    this.currMouseButton_ = MOUSE_BUTTON_NONE;\n\n    const e = event.event as PointerEvent;\n    (e.target as Element)?.releasePointerCapture?.(e.pointerId);\n  }\n\n  private orbit(dx: number, dy: number) {\n    this.orbitVelocity_.phi -= dx * ORBIT_SPEED;\n    this.orbitVelocity_.theta += dy * ORBIT_SPEED;\n  }\n\n  private pan(dx: number, dy: number) {\n    const speed = this.currPos_.radius * PAN_SPEED;\n    const delta = vec3.create();\n\n    vec3.scaleAndAdd(delta, delta, this.camera_.right, dx);\n    vec3.scaleAndAdd(delta, delta, this.camera_.up, dy);\n    vec3.scale(delta, delta, speed);\n\n    vec3.sub(this.panVelocity_, this.panVelocity_, delta);\n  }\n\n  private zoom(dy: number) {\n    this.orbitVelocity_.radius += dy * ZOOM_SPEED;\n  }\n\n  private updateCamera() {\n    const p = vec3.add(vec3.create(), this.currCenter_, this.currPos_.toVec3());\n    this.camera_.transform.setTranslation(p);\n    this.camera_.transform.targetTo(this.currCenter_);\n  }\n\n  private cutoffLowVelocity() {\n    if (Math.abs(this.orbitVelocity_.phi) < glMatrix.EPSILON)\n      this.orbitVelocity_.phi = 0;\n    if (Math.abs(this.orbitVelocity_.theta) < glMatrix.EPSILON)\n      this.orbitVelocity_.theta = 0;\n    if (Math.abs(this.orbitVelocity_.radius) < glMatrix.EPSILON)\n      this.orbitVelocity_.radius = 0;\n    if (vec3.length(this.panVelocity_) < glMatrix.EPSILON)\n      vec3.zero(this.panVelocity_);\n  }\n}\n","import { Camera, CameraType } from \"./camera\";\nimport { quat, vec2, vec3, vec4, mat4 } from \"gl-matrix\";\nimport { Box2 } from \"../../math/box2\";\nimport {\n  AxisComponent,\n  SliceAxes,\n  SliceOrientation,\n  orientationRotation,\n  sliceAxesFor,\n} from \"../../math/axes\";\n\nconst DEFAULT_ASPECT_RATIO = 1.77; // 16:9\nconst DEFAULT_WIDTH = 128;\nconst DEFAULT_HEIGHT = 128 / DEFAULT_ASPECT_RATIO;\nconst DEFAULT_NEAR = -1e6;\nconst DEFAULT_FAR = 1e6;\n\n/**\n * A world-space rectangle for the camera to frame.\n */\nexport type OrthographicCameraFrame = {\n  /** Left edge of the view frame in world units. */\n  left: number;\n  /** Right edge of the view frame in world units. */\n  right: number;\n  /** Top edge of the view frame in world units. */\n  top: number;\n  /** Bottom edge of the view frame in world units. */\n  bottom: number;\n};\n\n/**\n * Initialization properties for constructing an orthographic camera.\n */\nexport type OrthographicCameraProps = {\n  /** Left edge of the view frame in world units. */\n  left: number;\n  /** Right edge of the view frame in world units. */\n  right: number;\n  /** Top edge of the view frame in world units. */\n  top: number;\n  /** Bottom edge of the view frame in world units. */\n  bottom: number;\n  /** Near clipping plane distance. Defaults to `-1e6`. */\n  near?: number;\n  /** Far clipping plane distance. Defaults to `1e6`. */\n  far?: number;\n  /** Slice orientation. Defaults to `\"XY\"`. */\n  orientation?: SliceOrientation;\n};\n\n/**\n * A camera using an orthographic (parallel) projection.\n *\n * Orthographic projection has no perspective foreshortening: objects render at\n * the same size regardless of their distance from the camera, which makes this\n * the camera to use for 2D image viewing. It pairs naturally with\n * {@link PanZoomControls}.\n *\n * The constructor frames a world-space rectangle, typically the physical\n * extent of the image being viewed. Zoom and pan are then applied as scale and\n * translation on top of that frame, and {@link setFrame} resets them. When the\n * viewport's aspect ratio differs from the frame's, the frame is padded rather\n * than stretched, so image pixels always stay square.\n *\n * ```ts\n * const camera = new OrthographicCamera({\n *  left: 0,\n *  right: 1024,\n *  top: 0,\n *  bottom: 1024\n * });\n *\n * const idetik = new Idetik({\n *   canvas: document.querySelector('canvas')!,\n *   viewports: [{\n *     camera,\n *     layers: [imageLayer],\n *     cameraControls: new PanZoomControls(camera),\n *   }],\n * });\n * ```\n * @group Cameras\n */\nexport class OrthographicCamera extends Camera {\n  // width_ and height_ should always be defined by constructor (see setFrame)\n  private width_: number = DEFAULT_WIDTH;\n  private height_: number = DEFAULT_HEIGHT;\n  private viewportAspectRatio_: number = DEFAULT_ASPECT_RATIO;\n  private viewportSize_: [number, number] = [DEFAULT_WIDTH, DEFAULT_HEIGHT];\n  private axes_: SliceAxes;\n  private rotation_: quat;\n  private orientation_: SliceOrientation;\n\n  /**\n   * Creates an orthographic camera framing the given world-space rectangle.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor(props: OrthographicCameraProps) {\n    super();\n    this.near_ = props.near ?? DEFAULT_NEAR;\n    this.far_ = props.far ?? DEFAULT_FAR;\n    this.orientation_ = props.orientation ?? \"XY\";\n    this.axes_ = sliceAxesFor(this.orientation_);\n    this.rotation_ = orientationRotation(this.axes_);\n    this.setFrame(props);\n    this.updateProjectionMatrix();\n  }\n\n  /**\n   * The world-space size of the rendered view as `[width, height]`.\n   *\n   * This is the camera frame padded to match the viewport's aspect ratio, so\n   * it reflects what is actually visible rather than the frame that was set.\n   */\n  public get viewportSize() {\n    return this.viewportSize_;\n  }\n\n  /**\n   * Sets the aspect ratio (width / height) of the viewport the camera renders\n   * into. Called automatically by the owning viewport when it resizes.\n   *\n   * @param aspectRatio - The viewport's width divided by its height.\n   */\n  public setAspectRatio(aspectRatio: number) {\n    this.viewportAspectRatio_ = aspectRatio;\n    this.updateProjectionMatrix();\n  }\n\n  /**\n   * Reframes the camera to the given world-space rectangle, resetting any\n   * accumulated zoom and pan.\n   *\n   * The frame may be padded horizontally or vertically at render time to\n   * match the viewport's aspect ratio (see {@link viewportSize}).\n   *\n   * @param frame - The view frame edges in world units.\n   */\n  public setFrame({ left, right, top, bottom }: OrthographicCameraFrame) {\n    this.width_ = Math.abs(right - left);\n    this.height_ = Math.abs(top - bottom);\n    this.updateProjectionMatrix();\n    const translation = vec3.create();\n    translation[AxisComponent[this.axes_.u]] = 0.5 * (left + right);\n    translation[AxisComponent[this.axes_.v]] = 0.5 * (bottom + top);\n    this.transform.setTranslation(translation);\n    this.transform.setScale([1, 1, 1]);\n    this.transform.setRotation(this.rotation_);\n  }\n\n  /** Identifies the camera type as `OrthographicCamera`. */\n  public get type(): CameraType {\n    return \"OrthographicCamera\";\n  }\n\n  /** The slice orientation the camera faces. */\n  public get orientation(): SliceOrientation {\n    return this.orientation_;\n  }\n\n  /**\n   * Changes the slice orientation the camera faces. The current frame and\n   * zoom carry over numerically to the new plane axes. Call {@link setFrame}\n   * to reframe the view for the new plane.\n   *\n   * @param orientation - The slice plane for the camera to face.\n   */\n  public setOrientation(orientation: SliceOrientation) {\n    if (orientation === this.orientation_) {\n      return;\n    }\n\n    const u = this.transform.translation[AxisComponent[this.axes_.u]];\n    const v = this.transform.translation[AxisComponent[this.axes_.v]];\n\n    this.orientation_ = orientation;\n    this.axes_ = sliceAxesFor(orientation);\n    this.rotation_ = orientationRotation(this.axes_);\n\n    const translation = vec3.create();\n    translation[AxisComponent[this.axes_.u]] = u;\n    translation[AxisComponent[this.axes_.v]] = v;\n\n    this.transform.setTranslation(translation);\n    this.transform.setRotation(this.rotation_);\n  }\n\n  /**\n   * Zooms the view by the given factor relative to the current zoom level.\n   * Factors greater than `1` zoom in and factors between `0` and `1` zoom\n   * out.\n   *\n   * @param factor - The magnification factor to apply.\n   */\n  public zoom(factor: number) {\n    if (factor <= 0) {\n      throw new Error(`Invalid zoom factor: ${factor}`);\n    }\n    const inverseFactor = 1.0 / factor;\n    this.transform.addScale([inverseFactor, inverseFactor, 1.0]);\n  }\n\n  /**\n   * Computes the world-space rectangle currently visible in the viewport,\n   * accounting for zoom, pan, and aspect-ratio padding.\n   *\n   * @returns The visible rectangle on the camera's slice plane.\n   */\n  public getWorldViewRect(): Box2 {\n    let topLeft = vec4.fromValues(-1.0, -1.0, 0.0, 1.0);\n    let bottomRight = vec4.fromValues(1.0, 1.0, 0.0, 1.0);\n\n    const inv = mat4.invert(mat4.create(), this.getViewProjection())!;\n    topLeft = vec4.transformMat4(vec4.create(), topLeft, inv);\n    bottomRight = vec4.transformMat4(vec4.create(), bottomRight, inv);\n\n    const u = AxisComponent[this.axes_.u];\n    const v = AxisComponent[this.axes_.v];\n    return new Box2(\n      vec2.fromValues(topLeft[u], topLeft[v]),\n      vec2.fromValues(bottomRight[u], bottomRight[v])\n    );\n  }\n\n  /** @hidden */\n  protected updateProjectionMatrix() {\n    // The following code ensures that the orthographic projection matrix\n    // is updated so that the aspect ratio of renderable objects is respected\n    // (e.g. image pixels are isotropic) by padding the camera frame to form\n    // the viewport frame.\n    const width = this.width_;\n    const height = this.height_;\n    const frameAspectRatio = width / height;\n    // When the viewport is wider than the camera frame, add horizontal\n    // padding such that the height is unchanged. Otherwise, add vertical\n    // padding such that the width is unchanged.\n    let viewportHalfWidth = 0.5 * width;\n    let viewportHalfHeight = 0.5 * height;\n    if (this.viewportAspectRatio_ > frameAspectRatio) {\n      viewportHalfWidth *= this.viewportAspectRatio_ / frameAspectRatio;\n    } else {\n      viewportHalfHeight *= frameAspectRatio / this.viewportAspectRatio_;\n    }\n    this.viewportSize_ = [2 * viewportHalfWidth, 2 * viewportHalfHeight];\n    // Center the camera frame in the padded viewport frame.\n    mat4.ortho(\n      this.projectionMatrix_,\n      -viewportHalfWidth,\n      viewportHalfWidth,\n      -viewportHalfHeight,\n      viewportHalfHeight,\n      this.near_,\n      this.far_\n    );\n  }\n}\n","import { vec3 } from \"gl-matrix\";\nimport { OrthographicCamera } from \"./orthographic_camera\";\nimport { EventContext } from \"../../core/event_dispatcher\";\n\nconst LEFT_MOUSE_BUTTON = 0;\n\n/**\n * The contract between a viewport and its camera controls.\n *\n * Implement this interface to drive a camera with custom input logic and\n * assign it to a viewport through its `cameraControls` property. The\n * viewport passes pointer and wheel events to `onEvent` unless a layer\n * stops propagation.\n *\n * ```ts\n * class ClickToZoomControls implements CameraControls {\n *   constructor(private camera: OrthographicCamera) {}\n *\n *   get isMoving() {\n *     return false;\n *   }\n *\n *   onUpdate(dt: number) {}\n *\n *   onEvent(event: EventContext) {\n *     if (event.type === \"pointerdown\") this.camera.zoom(2);\n *   }\n * }\n *\n * viewport.cameraControls = new ClickToZoomControls(camera);\n * ```\n *\n * @group Controls\n */\nexport interface CameraControls {\n  /**\n   * Whether the camera is in motion from user interaction. Layers may\n   * read this to reduce rendering quality while the view changes.\n   */\n  readonly isMoving: boolean;\n\n  /**\n   * Advances time-based motion such as damping. Called automatically by\n   * the render loop.\n   *\n   * @param dt - Time since the last frame in seconds.\n   */\n  onUpdate(dt: number): void;\n\n  /**\n   * Handles a pointer or wheel event. Called automatically by the owning\n   * viewport unless a layer stops propagation.\n   *\n   * @param event - The event with clip and world coordinates attached.\n   */\n  onEvent(event: EventContext): void;\n}\n\nexport type ScrollZoomMode = \"always\" | \"modifier\" | \"never\";\n\n/**\n * Initialization properties for constructing pan and zoom controls.\n */\nexport type PanZoomControlsProps = {\n  /** When the scroll wheel zooms. Defaults to `\"always\"`. */\n  scrollZoom?: ScrollZoomMode;\n};\n\n/**\n * Camera controls for 2D pan and zoom with an orthographic camera.\n *\n * Dragging with the left mouse button pans the view and the scroll wheel\n * zooms around the cursor, keeping the point under the pointer fixed.\n * Movement applies immediately with no inertia or damping.\n *\n * ```ts\n * const camera = new OrthographicCamera({\n *   left: 0,\n *   right: 1024,\n *   top: 0,\n *   bottom: 1024,\n * });\n *\n * const idetik = new Idetik({\n *   canvas,\n *   viewports: [{\n *     camera,\n *     layers: [imageLayer],\n *     cameraControls: new PanZoomControls(camera),\n *   }],\n * });\n * ```\n *\n * @group Controls\n */\nexport class PanZoomControls implements CameraControls {\n  private readonly camera_: OrthographicCamera;\n  private readonly scrollZoom_: ScrollZoomMode;\n  private dragActive_ = false;\n  private dragStart_: vec3 = vec3.create();\n\n  /**\n   * Creates pan and zoom controls for the given camera.\n   *\n   * @param camera - The orthographic camera to control.\n   * @param params - Initialization properties.\n   */\n  constructor(camera: OrthographicCamera, params?: PanZoomControlsProps) {\n    this.camera_ = camera;\n    this.scrollZoom_ = params?.scrollZoom ?? \"always\";\n  }\n\n  /** Whether a pan drag is in progress. */\n  public get isMoving(): boolean {\n    return this.dragActive_;\n  }\n\n  /**\n   * Handles a pointer or wheel event. Called automatically by the owning\n   * viewport unless a layer stops propagation.\n   *\n   * @param event - The event with clip and world coordinates attached.\n   */\n  public onEvent(event: EventContext): void {\n    switch (event.type) {\n      case \"wheel\":\n        this.onWheel(event);\n        break;\n      case \"pointerdown\":\n        this.onPointerDown(event);\n        break;\n      case \"pointermove\":\n        this.onPointerMove(event);\n        break;\n      case \"pointerup\":\n      case \"pointercancel\":\n        this.onPointerEnd(event);\n        break;\n    }\n  }\n\n  /**\n   * Does nothing. Pan and zoom apply immediately with no inertia.\n   *\n   * @param _delta - Time since the last frame in seconds. Unused.\n   */\n  public onUpdate(_delta: number) {}\n\n  private onWheel(event: EventContext) {\n    if (!event.worldPos || !event.clipPos) return;\n    const e = event.event as WheelEvent;\n\n    if (this.scrollZoom_ === \"never\") return;\n    if (this.scrollZoom_ === \"modifier\" && !(e.ctrlKey || e.metaKey)) return;\n\n    // Prevent the page from scrolling, the default action for wheel events.\n    e.preventDefault();\n\n    const posBeforeZoom = vec3.clone(event.worldPos);\n    const zoomFactor = e.deltaY < 0 ? 1.05 : 0.95;\n\n    this.camera_.zoom(zoomFactor);\n\n    const posAfterZoom = this.camera_.clipToWorld(event.clipPos);\n    const delta = vec3.sub(vec3.create(), posBeforeZoom, posAfterZoom);\n    this.camera_.pan(delta);\n  }\n\n  private onPointerDown(event: EventContext) {\n    const e = event.event as PointerEvent;\n    if (!event.worldPos || e.button !== LEFT_MOUSE_BUTTON) return;\n\n    this.dragStart_ = vec3.clone(event.worldPos);\n    this.dragActive_ = true;\n\n    (e.target as Element)?.setPointerCapture?.(e.pointerId);\n  }\n\n  private onPointerMove(event: EventContext) {\n    if (!this.dragActive_ || !event.worldPos) return;\n\n    const delta = vec3.sub(vec3.create(), this.dragStart_, event.worldPos);\n    this.camera_.pan(delta);\n  }\n\n  private onPointerEnd(event: EventContext) {\n    const e = event.event as PointerEvent;\n    if (!this.dragActive_ || e.button !== LEFT_MOUSE_BUTTON) return;\n\n    this.dragActive_ = false;\n\n    (e.target as Element)?.releasePointerCapture?.(e.pointerId);\n  }\n}\n","import { Camera, CameraType } from \"./camera\";\nimport { glMatrix, mat4, vec3 } from \"gl-matrix\";\n\nconst DEFAULT_FOV = 60; // degrees\nconst DEFAULT_ASPECT_RATIO = 1.77; // 16:9\nconst MIN_FOV = 0.1; // degrees\nconst MAX_FOV = 180 - MIN_FOV; // degrees\n\n/**\n * Initialization properties for constructing a perspective camera.\n */\nexport type PerspectiveCameraProps = {\n  /** Vertical field of view in degrees. Defaults to `60`. */\n  fov?: number;\n  /** Aspect ratio (width / height). Defaults to `1.77`. */\n  aspectRatio?: number;\n  /** Near clipping plane distance. Defaults to `0.1`. */\n  near?: number;\n  /** Far clipping plane distance. Defaults to `10000`. */\n  far?: number;\n  /** World-space camera position. Defaults to the origin. */\n  position?: vec3;\n};\n\n/**\n * A camera using a perspective projection.\n *\n * Perspective projection applies foreshortening: objects appear smaller the\n * farther they are from the camera, which makes this the camera to use for\n * 3D scenes such as volume rendering. It pairs naturally with\n * {@link OrbitControls}.\n *\n * The projection is defined by a vertical field of view, an aspect ratio,\n * and near/far clipping planes. Zooming narrows or widens the field of view\n * rather than moving the camera.\n *\n * ```ts\n * const camera = new PerspectiveCamera({ fov: 45 });\n *\n * const controls = new OrbitControls(camera, {\n *   radius: 1200,\n *   target: [0, 0, 0],\n * });\n *\n * const idetik = new Idetik({\n *   canvas: document.querySelector('canvas')!,\n *   viewports: [{ camera, layers: [volumeLayer], cameraControls: controls }],\n * });\n * ```\n *\n * @see {@link OrthographicCamera} for 2D image viewing with parallel\n *   projection.\n *\n * @group Cameras\n */\nexport class PerspectiveCamera extends Camera {\n  private fov_: number;\n  private aspectRatio_: number;\n\n  /**\n   * Creates a perspective camera from the given projection settings.\n   *\n   * @param props - Initialization properties.\n   */\n  constructor(props: PerspectiveCameraProps = {}) {\n    const {\n      fov = DEFAULT_FOV,\n      aspectRatio = DEFAULT_ASPECT_RATIO,\n      near = 0.1,\n      far = 10000,\n      position = vec3.fromValues(0, 0, 0),\n    } = props;\n\n    if (fov < MIN_FOV || fov > MAX_FOV) {\n      throw new Error(\n        `Invalid field of view: ${fov}, must be in [${MIN_FOV}, ${MAX_FOV}] degrees`\n      );\n    }\n    super();\n    this.fov_ = fov;\n    this.aspectRatio_ = aspectRatio;\n    this.near_ = near;\n    this.far_ = far;\n\n    this.transform.setTranslation(position);\n\n    this.updateProjectionMatrix();\n  }\n\n  /**\n   * Sets the aspect ratio (width / height) of the viewport the camera\n   * renders into. Called automatically by the owning viewport when it\n   * resizes.\n   *\n   * @param aspectRatio - The viewport's width divided by its height.\n   */\n  public setAspectRatio(aspectRatio: number) {\n    this.aspectRatio_ = aspectRatio;\n    this.updateProjectionMatrix();\n  }\n\n  /** Identifies the camera type as `PerspectiveCamera`. */\n  public get type(): CameraType {\n    return \"PerspectiveCamera\";\n  }\n\n  /** The vertical field of view in degrees. */\n  public get fov() {\n    return this.fov_;\n  }\n\n  /**\n   * Zooms the view by the given factor relative to the current zoom level.\n   * Factors greater than `1` zoom in and factors between `0` and `1` zoom\n   * out.\n   *\n   * Zooming narrows or widens the field of view rather than moving the\n   * camera, and the result is clamped to valid angles.\n   *\n   * @param factor - The magnification factor to apply.\n   */\n  public zoom(factor: number) {\n    if (factor <= 0) {\n      throw new Error(`Invalid zoom factor: ${factor}`);\n    }\n    // clamp the field of view to prevent degenerate behavior\n    this.fov_ = Math.max(MIN_FOV, Math.min(MAX_FOV, this.fov_ / factor));\n    this.updateProjectionMatrix();\n  }\n\n  /** @hidden */\n  protected updateProjectionMatrix() {\n    mat4.perspective(\n      this.projectionMatrix_,\n      glMatrix.toRadian(this.fov),\n      this.aspectRatio_,\n      this.near_,\n      this.far_\n    );\n  }\n}\n","var __toBinary = /* @__PURE__ */ (() => {\n  var table = new Uint8Array(128);\n  for (var i = 0; i < 64; i++)\n    table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n  return (base64) => {\n    var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == \"=\") - (base64[n - 2] == \"=\")) * 3 / 4 | 0);\n    for (var i2 = 0, j = 0; i2 < n; ) {\n      var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n      var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n      bytes[j++] = c0 << 2 | c1 >> 4;\n      bytes[j++] = c1 << 4 | c2 >> 2;\n      bytes[j++] = c2 << 6 | c3;\n    }\n    return bytes;\n  };\n})();\n\nexport {\n  __toBinary\n};\n","import {\n  __toBinary\n} from \"./chunk-INHXZS53.js\";\n\n// codecs/blosc/blosc_codec.js\nvar blosc_codec = (() => {\n  var _scriptDir = typeof document !== \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n  return function(moduleArg = {}) {\n    var f = moduleArg, aa, q;\n    f.ready = new Promise((a, b) => {\n      aa = a;\n      q = b;\n    });\n    var ba = Object.assign({}, f), ca = \"./this.program\", ea = f.print || console.log.bind(console), t = f.printErr || console.error.bind(console);\n    Object.assign(f, ba);\n    ba = null;\n    f.thisProgram && (ca = f.thisProgram);\n    var u;\n    f.wasmBinary && (u = f.wasmBinary);\n    \"object\" != typeof WebAssembly && x(\"no native wasm support detected\");\n    var y, fa = false, A, B, D, E, F, G, ha, ia;\n    function ja() {\n      var a = y.buffer;\n      f.HEAP8 = A = new Int8Array(a);\n      f.HEAP16 = D = new Int16Array(a);\n      f.HEAPU8 = B = new Uint8Array(a);\n      f.HEAPU16 = E = new Uint16Array(a);\n      f.HEAP32 = F = new Int32Array(a);\n      f.HEAPU32 = G = new Uint32Array(a);\n      f.HEAPF32 = ha = new Float32Array(a);\n      f.HEAPF64 = ia = new Float64Array(a);\n    }\n    var ka = [], la = [], ma = [];\n    function na() {\n      var a = f.preRun.shift();\n      ka.unshift(a);\n    }\n    var H = 0, I = null, J = null;\n    function x(a) {\n      f.onAbort?.(a);\n      a = \"Aborted(\" + a + \")\";\n      t(a);\n      fa = true;\n      a = new WebAssembly.RuntimeError(a + \". Build with -sASSERTIONS for more info.\");\n      q(a);\n      throw a;\n    }\n    var oa = (a) => a.startsWith(\"data:application/octet-stream;base64,\"), pa = (a) => a.startsWith(\"file://\"), L;\n    L = \"blosc_codec.wasm\";\n    if (!oa(L)) {\n      var qa = L;\n      L = f.locateFile ? f.locateFile(qa, \"\") : \"\" + qa;\n    }\n    function ra(a) {\n      return Promise.resolve().then(() => {\n        if (a == L && u)\n          var b = new Uint8Array(u);\n        else\n          throw \"both async and sync fetching of the wasm failed\";\n        return b;\n      });\n    }\n    function sa(a, b, c) {\n      return ra(a).then((d) => WebAssembly.instantiate(d, b)).then((d) => d).then(c, (d) => {\n        t(`failed to asynchronously prepare wasm: ${d}`);\n        x(d);\n      });\n    }\n    function ta(a, b) {\n      var c = L;\n      return u || \"function\" != typeof WebAssembly.instantiateStreaming || oa(c) || pa(c) || \"function\" != typeof fetch ? sa(c, a, b) : fetch(c, { credentials: \"same-origin\" }).then((d) => WebAssembly.instantiateStreaming(d, a).then(b, function(e) {\n        t(`wasm streaming compile failed: ${e}`);\n        t(\"falling back to ArrayBuffer instantiation\");\n        return sa(c, a, b);\n      }));\n    }\n    var M = (a) => {\n      for (; 0 < a.length; )\n        a.shift()(f);\n    };\n    function ua(a) {\n      this.H = a - 24;\n      this.N = function(b) {\n        G[this.H + 4 >> 2] = b;\n      };\n      this.M = function(b) {\n        G[this.H + 8 >> 2] = b;\n      };\n      this.I = function(b, c) {\n        this.J();\n        this.N(b);\n        this.M(c);\n      };\n      this.J = function() {\n        G[this.H + 16 >> 2] = 0;\n      };\n    }\n    var va = 0, wa = 0, xa, N = (a) => {\n      for (var b = \"\"; B[a]; )\n        b += xa[B[a++]];\n      return b;\n    }, O = {}, P = {}, Q = {}, R, ya = (a) => {\n      throw new R(a);\n    }, S, za = (a, b) => {\n      function c(l) {\n        l = b(l);\n        if (l.length !== d.length)\n          throw new S(\"Mismatched type converter count\");\n        for (var g = 0; g < d.length; ++g)\n          T(d[g], l[g]);\n      }\n      var d = [];\n      d.forEach(function(l) {\n        Q[l] = a;\n      });\n      var e = Array(a.length), h = [], k = 0;\n      a.forEach((l, g) => {\n        P.hasOwnProperty(l) ? e[g] = P[l] : (h.push(l), O.hasOwnProperty(l) || (O[l] = []), O[l].push(() => {\n          e[g] = P[l];\n          ++k;\n          k === h.length && c(e);\n        }));\n      });\n      0 === h.length && c(e);\n    };\n    function Aa(a, b, c = {}) {\n      var d = b.name;\n      if (!a)\n        throw new R(`type \"${d}\" must have a positive integer typeid pointer`);\n      if (P.hasOwnProperty(a)) {\n        if (c.P)\n          return;\n        throw new R(`Cannot register type '${d}' twice`);\n      }\n      P[a] = b;\n      delete Q[a];\n      O.hasOwnProperty(a) && (b = O[a], delete O[a], b.forEach((e) => e()));\n    }\n    function T(a, b, c = {}) {\n      if (!(\"argPackAdvance\" in b))\n        throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n      Aa(a, b, c);\n    }\n    function Ba() {\n      this.F = [void 0];\n      this.K = [];\n    }\n    var U = new Ba(), Ca = (a) => {\n      a >= U.H && 0 === --U.get(a).L && U.J(a);\n    }, Da = (a) => {\n      switch (a) {\n        case void 0:\n          return 1;\n        case null:\n          return 2;\n        case true:\n          return 3;\n        case false:\n          return 4;\n        default:\n          return U.I({ L: 1, value: a });\n      }\n    };\n    function Ea(a) {\n      return this.fromWireType(F[a >> 2]);\n    }\n    var Fa = (a, b) => {\n      switch (b) {\n        case 4:\n          return function(c) {\n            return this.fromWireType(ha[c >> 2]);\n          };\n        case 8:\n          return function(c) {\n            return this.fromWireType(ia[c >> 3]);\n          };\n        default:\n          throw new TypeError(`invalid float width (${b}): ${a}`);\n      }\n    }, V = (a, b) => Object.defineProperty(b, \"name\", { value: a }), Ga = (a) => {\n      for (; a.length; ) {\n        var b = a.pop();\n        a.pop()(b);\n      }\n    };\n    function Ha(a) {\n      for (var b = 1; b < a.length; ++b)\n        if (null !== a[b] && void 0 === a[b].G)\n          return true;\n      return false;\n    }\n    function La(a) {\n      var b = Function;\n      if (!(b instanceof Function))\n        throw new TypeError(`new_ called with constructor type ${typeof b} which is not a function`);\n      var c = V(b.name || \"unknownFunctionName\", function() {\n      });\n      c.prototype = b.prototype;\n      c = new c();\n      a = b.apply(c, a);\n      return a instanceof Object ? a : c;\n    }\n    var Ma = (a, b) => {\n      if (void 0 === f[a].C) {\n        var c = f[a];\n        f[a] = function() {\n          if (!f[a].C.hasOwnProperty(arguments.length))\n            throw new R(`Function '${b}' called with an invalid number of arguments (${arguments.length}) - expects one of (${f[a].C})!`);\n          return f[a].C[arguments.length].apply(this, arguments);\n        };\n        f[a].C = [];\n        f[a].C[c.O] = c;\n      }\n    }, Na = (a, b, c) => {\n      if (f.hasOwnProperty(a)) {\n        if (void 0 === c || void 0 !== f[a].C && void 0 !== f[a].C[c])\n          throw new R(`Cannot register public name '${a}' twice`);\n        Ma(a, a);\n        if (f.hasOwnProperty(c))\n          throw new R(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);\n        f[a].C[c] = b;\n      } else\n        f[a] = b, void 0 !== c && (f[a].S = c);\n    }, Oa = (a, b) => {\n      for (var c = [], d = 0; d < a; d++)\n        c.push(G[b + 4 * d >> 2]);\n      return c;\n    }, Pa, Qa = (a, b) => {\n      var c = [];\n      return function() {\n        c.length = 0;\n        Object.assign(c, arguments);\n        if (a.includes(\"j\")) {\n          var d = f[\"dynCall_\" + a];\n          d = c && c.length ? d.apply(null, [b].concat(c)) : d.call(null, b);\n        } else\n          d = Pa.get(b).apply(null, c);\n        return d;\n      };\n    }, Ra = (a, b) => {\n      a = N(a);\n      var c = a.includes(\"j\") ? Qa(a, b) : Pa.get(b);\n      if (\"function\" != typeof c)\n        throw new R(`unknown function pointer with signature ${a}: ${b}`);\n      return c;\n    }, Sa, Ua = (a) => {\n      a = Ta(a);\n      var b = N(a);\n      W(a);\n      return b;\n    }, Va = (a, b) => {\n      function c(h) {\n        e[h] || P[h] || (Q[h] ? Q[h].forEach(c) : (d.push(h), e[h] = true));\n      }\n      var d = [], e = {};\n      b.forEach(c);\n      throw new Sa(`${a}: ` + d.map(Ua).join([\", \"]));\n    }, Wa = (a) => {\n      a = a.trim();\n      const b = a.indexOf(\"(\");\n      return -1 !== b ? a.substr(0, b) : a;\n    }, Xa = (a, b, c) => {\n      switch (b) {\n        case 1:\n          return c ? (d) => A[d >> 0] : (d) => B[d >> 0];\n        case 2:\n          return c ? (d) => D[d >> 1] : (d) => E[d >> 1];\n        case 4:\n          return c ? (d) => F[d >> 2] : (d) => G[d >> 2];\n        default:\n          throw new TypeError(`invalid integer width (${b}): ${a}`);\n      }\n    };\n    function Ya(a) {\n      return this.fromWireType(G[a >> 2]);\n    }\n    for (var Za = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf8\") : void 0, $a = (a, b, c) => {\n      var d = b + c;\n      for (c = b; a[c] && !(c >= d); )\n        ++c;\n      if (16 < c - b && a.buffer && Za)\n        return Za.decode(a.subarray(b, c));\n      for (d = \"\"; b < c; ) {\n        var e = a[b++];\n        if (e & 128) {\n          var h = a[b++] & 63;\n          if (192 == (e & 224))\n            d += String.fromCharCode((e & 31) << 6 | h);\n          else {\n            var k = a[b++] & 63;\n            e = 224 == (e & 240) ? (e & 15) << 12 | h << 6 | k : (e & 7) << 18 | h << 12 | k << 6 | a[b++] & 63;\n            65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));\n          }\n        } else\n          d += String.fromCharCode(e);\n      }\n      return d;\n    }, ab = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-16le\") : void 0, bb = (a, b) => {\n      var c = a >> 1;\n      for (var d = c + b / 2; !(c >= d) && E[c]; )\n        ++c;\n      c <<= 1;\n      if (32 < c - a && ab)\n        return ab.decode(B.subarray(a, c));\n      c = \"\";\n      for (d = 0; !(d >= b / 2); ++d) {\n        var e = D[a + 2 * d >> 1];\n        if (0 == e)\n          break;\n        c += String.fromCharCode(e);\n      }\n      return c;\n    }, cb = (a, b, c) => {\n      c ??= 2147483647;\n      if (2 > c)\n        return 0;\n      c -= 2;\n      var d = b;\n      c = c < 2 * a.length ? c / 2 : a.length;\n      for (var e = 0; e < c; ++e)\n        D[b >> 1] = a.charCodeAt(e), b += 2;\n      D[b >> 1] = 0;\n      return b - d;\n    }, db = (a) => 2 * a.length, eb = (a, b) => {\n      for (var c = 0, d = \"\"; !(c >= b / 4); ) {\n        var e = F[a + 4 * c >> 2];\n        if (0 == e)\n          break;\n        ++c;\n        65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);\n      }\n      return d;\n    }, fb = (a, b, c) => {\n      c ??= 2147483647;\n      if (4 > c)\n        return 0;\n      var d = b;\n      c = d + c - 4;\n      for (var e = 0; e < a.length; ++e) {\n        var h = a.charCodeAt(e);\n        if (55296 <= h && 57343 >= h) {\n          var k = a.charCodeAt(++e);\n          h = 65536 + ((h & 1023) << 10) | k & 1023;\n        }\n        F[b >> 2] = h;\n        b += 4;\n        if (b + 4 > c)\n          break;\n      }\n      F[b >> 2] = 0;\n      return b - d;\n    }, gb = (a) => {\n      for (var b = 0, c = 0; c < a.length; ++c) {\n        var d = a.charCodeAt(c);\n        55296 <= d && 57343 >= d && ++c;\n        b += 4;\n      }\n      return b;\n    }, hb = {}, jb = () => {\n      if (!ib) {\n        var a = {\n          USER: \"web_user\",\n          LOGNAME: \"web_user\",\n          PATH: \"/\",\n          PWD: \"/\",\n          HOME: \"/home/web_user\",\n          LANG: (\"object\" == typeof navigator && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\",\n          _: ca || \"./this.program\"\n        }, b;\n        for (b in hb)\n          void 0 === hb[b] ? delete a[b] : a[b] = hb[b];\n        var c = [];\n        for (b in a)\n          c.push(`${b}=${a[b]}`);\n        ib = c;\n      }\n      return ib;\n    }, ib, kb = [null, [], []], lb = Array(256), X = 0; 256 > X; ++X)\n      lb[X] = String.fromCharCode(X);\n    xa = lb;\n    R = f.BindingError = class extends Error {\n      constructor(a) {\n        super(a);\n        this.name = \"BindingError\";\n      }\n    };\n    S = f.InternalError = class extends Error {\n      constructor(a) {\n        super(a);\n        this.name = \"InternalError\";\n      }\n    };\n    Object.assign(Ba.prototype, { get(a) {\n      return this.F[a];\n    }, has(a) {\n      return void 0 !== this.F[a];\n    }, I(a) {\n      var b = this.K.pop() || this.F.length;\n      this.F[b] = a;\n      return b;\n    }, J(a) {\n      this.F[a] = void 0;\n      this.K.push(a);\n    } });\n    U.F.push({ value: void 0 }, { value: null }, { value: true }, { value: false });\n    U.H = U.F.length;\n    f.count_emval_handles = () => {\n      for (var a = 0, b = U.H; b < U.F.length; ++b)\n        void 0 !== U.F[b] && ++a;\n      return a;\n    };\n    Sa = f.UnboundTypeError = ((a, b) => {\n      var c = V(b, function(d) {\n        this.name = b;\n        this.message = d;\n        d = Error(d).stack;\n        void 0 !== d && (this.stack = this.toString() + \"\\n\" + d.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n      });\n      c.prototype = Object.create(a.prototype);\n      c.prototype.constructor = c;\n      c.prototype.toString = function() {\n        return void 0 === this.message ? this.name : `${this.name}: ${this.message}`;\n      };\n      return c;\n    })(Error, \"UnboundTypeError\");\n    var nb = {\n      p: (a, b, c) => {\n        new ua(a).I(b, c);\n        va = a;\n        wa++;\n        throw va;\n      },\n      o: () => {\n      },\n      l: (a, b, c, d) => {\n        b = N(b);\n        T(a, { name: b, fromWireType: function(e) {\n          return !!e;\n        }, toWireType: function(e, h) {\n          return h ? c : d;\n        }, argPackAdvance: 8, readValueFromPointer: function(e) {\n          return this.fromWireType(B[e]);\n        }, G: null });\n      },\n      k: (a, b) => {\n        b = N(b);\n        T(a, { name: b, fromWireType: (c) => {\n          if (!c)\n            throw new R(\"Cannot use deleted val. handle = \" + c);\n          var d = U.get(c).value;\n          Ca(c);\n          return d;\n        }, toWireType: (c, d) => Da(d), argPackAdvance: 8, readValueFromPointer: Ea, G: null });\n      },\n      i: (a, b, c) => {\n        b = N(b);\n        T(a, { name: b, fromWireType: (d) => d, toWireType: (d, e) => e, argPackAdvance: 8, readValueFromPointer: Fa(b, c), G: null });\n      },\n      d: (a, b, c, d, e, h, k) => {\n        var l = Oa(b, c);\n        a = N(a);\n        a = Wa(a);\n        e = Ra(d, e);\n        Na(a, function() {\n          Va(`Cannot call ${a} due to unbound types`, l);\n        }, b - 1);\n        za(l, function(g) {\n          var m = a;\n          var p = a;\n          g = [g[0], null].concat(g.slice(1));\n          var r = e, n = g.length;\n          if (2 > n)\n            throw new R(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n          var v = null !== g[1] && false, C = Ha(g), Ia = \"void\" !== g[0].name;\n          r = [ya, r, h, Ga, g[0], g[1]];\n          for (var w = 0; w < n - 2; ++w)\n            r.push(g[w + 2]);\n          if (!C)\n            for (w = v ? 1 : 2; w < g.length; ++w)\n              null !== g[w].G && r.push(g[w].G);\n          C = Ha(g);\n          w = g.length;\n          var z = \"\", K = \"\";\n          for (n = 0; n < w - 2; ++n)\n            z += (0 !== n ? \", \" : \"\") + \"arg\" + n, K += (0 !== n ? \", \" : \"\") + \"arg\" + n + \"Wired\";\n          z = `\n        return function (${z}) {\n        if (arguments.length !== ${w - 2}) {\n          throwBindingError('function ${p} called with ' + arguments.length + ' arguments, expected ${w - 2}');\n        }`;\n          C && (z += \"var destructors = [];\\n\");\n          var Ja = C ? \"destructors\" : \"null\", da = \"throwBindingError invoker fn runDestructors retType classParam\".split(\" \");\n          v && (z += \"var thisWired = classParam['toWireType'](\" + Ja + \", this);\\n\");\n          for (n = 0; n < w - 2; ++n)\n            z += \"var arg\" + n + \"Wired = argType\" + n + \"['toWireType'](\" + Ja + \", arg\" + n + \"); // \" + g[n + 2].name + \"\\n\", da.push(\"argType\" + n);\n          v && (K = \"thisWired\" + (0 < K.length ? \", \" : \"\") + K);\n          z += (Ia || k ? \"var rv = \" : \"\") + \"invoker(fn\" + (0 < K.length ? \", \" : \"\") + K + \");\\n\";\n          if (C)\n            z += \"runDestructors(destructors);\\n\";\n          else\n            for (n = v ? 1 : 2; n < g.length; ++n)\n              v = 1 === n ? \"thisWired\" : \"arg\" + (n - 2) + \"Wired\", null !== g[n].G && (z += v + \"_dtor(\" + v + \"); // \" + g[n].name + \"\\n\", da.push(v + \"_dtor\"));\n          Ia && (z += \"var ret = retType['fromWireType'](rv);\\nreturn ret;\\n\");\n          let [Ka, ob] = [da, z + \"}\\n\"];\n          Ka.push(ob);\n          g = La(Ka).apply(null, r);\n          p = V(p, g);\n          g = b - 1;\n          if (!f.hasOwnProperty(m))\n            throw new S(\"Replacing nonexistant public symbol\");\n          void 0 !== f[m].C && void 0 !== g ? f[m].C[g] = p : (f[m] = p, f[m].O = g);\n          return [];\n        });\n      },\n      b: (a, b, c, d, e) => {\n        b = N(b);\n        -1 === e && (e = 4294967295);\n        e = (l) => l;\n        if (0 === d) {\n          var h = 32 - 8 * c;\n          e = (l) => l << h >>> h;\n        }\n        var k = b.includes(\"unsigned\") ? function(l, g) {\n          return g >>> 0;\n        } : function(l, g) {\n          return g;\n        };\n        T(a, {\n          name: b,\n          fromWireType: e,\n          toWireType: k,\n          argPackAdvance: 8,\n          readValueFromPointer: Xa(b, c, 0 !== d),\n          G: null\n        });\n      },\n      a: (a, b, c) => {\n        function d(h) {\n          return new e(A.buffer, G[h + 4 >> 2], G[h >> 2]);\n        }\n        var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][b];\n        c = N(c);\n        T(a, { name: c, fromWireType: d, argPackAdvance: 8, readValueFromPointer: d }, { P: true });\n      },\n      e: (a, b) => {\n        b = N(b);\n        var c = \"std::string\" === b;\n        T(a, { name: b, fromWireType: function(d) {\n          var e = G[d >> 2], h = d + 4;\n          if (c)\n            for (var k = h, l = 0; l <= e; ++l) {\n              var g = h + l;\n              if (l == e || 0 == B[g]) {\n                k = k ? $a(B, k, g - k) : \"\";\n                if (void 0 === m)\n                  var m = k;\n                else\n                  m += String.fromCharCode(0), m += k;\n                k = g + 1;\n              }\n            }\n          else {\n            m = Array(e);\n            for (l = 0; l < e; ++l)\n              m[l] = String.fromCharCode(B[h + l]);\n            m = m.join(\"\");\n          }\n          W(d);\n          return m;\n        }, toWireType: function(d, e) {\n          e instanceof ArrayBuffer && (e = new Uint8Array(e));\n          var h, k = \"string\" == typeof e;\n          if (!(k || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array))\n            throw new R(\"Cannot pass non-string to std::string\");\n          var l;\n          if (c && k)\n            for (h = l = 0; h < e.length; ++h) {\n              var g = e.charCodeAt(h);\n              127 >= g ? l++ : 2047 >= g ? l += 2 : 55296 <= g && 57343 >= g ? (l += 4, ++h) : l += 3;\n            }\n          else\n            l = e.length;\n          h = l;\n          l = mb(4 + h + 1);\n          g = l + 4;\n          G[l >> 2] = h;\n          if (c && k) {\n            if (k = g, g = h + 1, h = B, 0 < g) {\n              g = k + g - 1;\n              for (var m = 0; m < e.length; ++m) {\n                var p = e.charCodeAt(m);\n                if (55296 <= p && 57343 >= p) {\n                  var r = e.charCodeAt(++m);\n                  p = 65536 + ((p & 1023) << 10) | r & 1023;\n                }\n                if (127 >= p) {\n                  if (k >= g)\n                    break;\n                  h[k++] = p;\n                } else {\n                  if (2047 >= p) {\n                    if (k + 1 >= g)\n                      break;\n                    h[k++] = 192 | p >> 6;\n                  } else {\n                    if (65535 >= p) {\n                      if (k + 2 >= g)\n                        break;\n                      h[k++] = 224 | p >> 12;\n                    } else {\n                      if (k + 3 >= g)\n                        break;\n                      h[k++] = 240 | p >> 18;\n                      h[k++] = 128 | p >> 12 & 63;\n                    }\n                    h[k++] = 128 | p >> 6 & 63;\n                  }\n                  h[k++] = 128 | p & 63;\n                }\n              }\n              h[k] = 0;\n            }\n          } else if (k)\n            for (k = 0; k < h; ++k) {\n              m = e.charCodeAt(k);\n              if (255 < m)\n                throw W(g), new R(\"String has UTF-16 code units that do not fit in 8 bits\");\n              B[g + k] = m;\n            }\n          else\n            for (k = 0; k < h; ++k)\n              B[g + k] = e[k];\n          null !== d && d.push(W, l);\n          return l;\n        }, argPackAdvance: 8, readValueFromPointer: Ya, G(d) {\n          W(d);\n        } });\n      },\n      c: (a, b, c) => {\n        c = N(c);\n        if (2 === b) {\n          var d = bb;\n          var e = cb;\n          var h = db;\n          var k = () => E;\n          var l = 1;\n        } else\n          4 === b && (d = eb, e = fb, h = gb, k = () => G, l = 2);\n        T(a, { name: c, fromWireType: (g) => {\n          for (var m = G[g >> 2], p = k(), r, n = g + 4, v = 0; v <= m; ++v) {\n            var C = g + 4 + v * b;\n            if (v == m || 0 == p[C >> l])\n              n = d(n, C - n), void 0 === r ? r = n : (r += String.fromCharCode(0), r += n), n = C + b;\n          }\n          W(g);\n          return r;\n        }, toWireType: (g, m) => {\n          if (\"string\" != typeof m)\n            throw new R(`Cannot pass non-string to C++ string type ${c}`);\n          var p = h(m), r = mb(4 + p + b);\n          G[r >> 2] = p >> l;\n          e(m, r + 4, p + b);\n          null !== g && g.push(W, r);\n          return r;\n        }, argPackAdvance: 8, readValueFromPointer: Ea, G(g) {\n          W(g);\n        } });\n      },\n      m: (a, b) => {\n        b = N(b);\n        T(a, { R: true, name: b, argPackAdvance: 0, fromWireType: () => {\n        }, toWireType: () => {\n        } });\n      },\n      g: Ca,\n      j: (a) => {\n        4 < a && (U.get(a).L += 1);\n      },\n      f: (a, b) => {\n        var c = P[a];\n        if (void 0 === c)\n          throw a = \"_emval_take_value has unknown type \" + Ua(a), new R(a);\n        a = c;\n        a = a.readValueFromPointer(b);\n        return Da(a);\n      },\n      h: () => {\n        x(\"\");\n      },\n      v: (a, b, c) => B.copyWithin(a, b, b + c),\n      q: (a) => {\n        var b = B.length;\n        a >>>= 0;\n        if (2147483648 < a)\n          return false;\n        for (var c = 1; 4 >= c; c *= 2) {\n          var d = b * (1 + 0.2 / c);\n          d = Math.min(d, a + 100663296);\n          var e = Math;\n          d = Math.max(a, d);\n          a: {\n            e = (e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536) - y.buffer.byteLength + 65535) / 65536;\n            try {\n              y.grow(e);\n              ja();\n              var h = 1;\n              break a;\n            } catch (k) {\n            }\n            h = void 0;\n          }\n          if (h)\n            return true;\n        }\n        return false;\n      },\n      t: (a, b) => {\n        var c = 0;\n        jb().forEach((d, e) => {\n          var h = b + c;\n          e = G[a + 4 * e >> 2] = h;\n          for (h = 0; h < d.length; ++h)\n            A[e++ >> 0] = d.charCodeAt(h);\n          A[e >> 0] = 0;\n          c += d.length + 1;\n        });\n        return 0;\n      },\n      u: (a, b) => {\n        var c = jb();\n        G[a >> 2] = c.length;\n        var d = 0;\n        c.forEach((e) => d += e.length + 1);\n        G[b >> 2] = d;\n        return 0;\n      },\n      s: () => 52,\n      n: function() {\n        return 70;\n      },\n      r: (a, b, c, d) => {\n        for (var e = 0, h = 0; h < c; h++) {\n          var k = G[b >> 2], l = G[b + 4 >> 2];\n          b += 8;\n          for (var g = 0; g < l; g++) {\n            var m = B[k + g], p = kb[a];\n            0 === m || 10 === m ? ((1 === a ? ea : t)($a(p, 0)), p.length = 0) : p.push(m);\n          }\n          e += l;\n        }\n        G[d >> 2] = e;\n        return 0;\n      }\n    }, Y = function() {\n      function a(c) {\n        Y = c.exports;\n        y = Y.w;\n        ja();\n        Pa = Y.A;\n        la.unshift(Y.x);\n        H--;\n        f.monitorRunDependencies?.(H);\n        0 == H && (null !== I && (clearInterval(I), I = null), J && (c = J, J = null, c()));\n        return Y;\n      }\n      var b = { a: nb };\n      H++;\n      f.monitorRunDependencies?.(H);\n      if (f.instantiateWasm)\n        try {\n          return f.instantiateWasm(\n            b,\n            a\n          );\n        } catch (c) {\n          t(`Module.instantiateWasm callback failed with error: ${c}`), q(c);\n        }\n      ta(b, function(c) {\n        a(c.instance);\n      }).catch(q);\n      return {};\n    }(), mb = (a) => (mb = Y.y)(a), W = (a) => (W = Y.z)(a), Ta = (a) => (Ta = Y.B)(a);\n    f.dynCall_jiji = (a, b, c, d, e) => (f.dynCall_jiji = Y.D)(a, b, c, d, e);\n    var Z;\n    J = function pb() {\n      Z || qb();\n      Z || (J = pb);\n    };\n    function qb() {\n      function a() {\n        if (!Z && (Z = true, f.calledRun = true, !fa)) {\n          M(la);\n          aa(f);\n          if (f.onRuntimeInitialized)\n            f.onRuntimeInitialized();\n          if (f.postRun)\n            for (\"function\" == typeof f.postRun && (f.postRun = [f.postRun]); f.postRun.length; ) {\n              var b = f.postRun.shift();\n              ma.unshift(b);\n            }\n          M(ma);\n        }\n      }\n      if (!(0 < H)) {\n        if (f.preRun)\n          for (\"function\" == typeof f.preRun && (f.preRun = [f.preRun]); f.preRun.length; )\n            na();\n        M(ka);\n        0 < H || (f.setStatus ? (f.setStatus(\"Running...\"), setTimeout(function() {\n          setTimeout(function() {\n            f.setStatus(\"\");\n          }, 1);\n          a();\n        }, 1)) : a());\n      }\n    }\n    if (f.preInit)\n      for (\"function\" == typeof f.preInit && (f.preInit = [f.preInit]); 0 < f.preInit.length; )\n        f.preInit.pop()();\n    qb();\n    return moduleArg.ready;\n  };\n})();\nvar blosc_codec_default = blosc_codec;\n\n// codecs/blosc/blosc_codec.wasm\nvar blosc_codec_default2 = __toBinary(\"AGFzbQEAAAABvwEWYAJ/fwBgBX9/f39/AX9gAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgBH9/f38Bf2AAAGABfwBgBH9/f38AYAZ/f39/f38AYAV/f39/fwBgBn9/f39/fwF/YAN/fn8BfmAHf39/f39/fwBgB39/f39/f38Bf2APf39/f39/f39/f39/f39/AX9gC39/f39/f39/f39/AX9gCH9/f39/f39/AX9gDX9/f39/f39/f39/f38Bf2ABfwF+YAR/f35+AAKFARYBYQFhAAUBYQFiAAsBYQFjAAUBYQFkAA4BYQFlAAABYQFmAAIBYQFnAAgBYQFoAAcBYQFpAAUBYQFqAAgBYQFrAAABYQFsAAkBYQFtAAABYQFuAAEBYQFvAA4BYQFwAAUBYQFxAAMBYQFyAAYBYQFzAAMBYQF0AAIBYQF1AAIBYQF2AAUDogGgAQEEBAgEAQkDBAQAAwYJAgsGBAgFAQgEAwAPBwMDBgwGAwEMAQEADAQIEBEBBQMEAgQHBBITBgcAAAwDAQYFBQIJCBQMBQcDBwIDFQgFBQkCAgUDAwEDAwgFBwQBAQEGAQEBAQEBAQEBAQEEAgICBgYFBgYGAAACBwgKDAADAgEDAwMKCwkJCwoEBAcHDQMNBAMDAQEBAQEBAQEBAQEBAQEEBQFwAVFRBQcBAYACgIACBg0CfwFBwPQFC38BQQALByQIAXcCAAF4AEwBeQAdAXoAGQFBAQABQgCnAQFDAJcBAUQAlAEJiAEBAEEBC1AyKJIBjAGLATIohgGAAV2TAZEBkAGPAY4BjQGJAYgBhwGFAYQBXFssigFvgwGCAYEBfH92d3h5rgGtAawBen2yAbEBsAGvAakBqAF7frMBtAG1AXWrAaoBpgGlAaQBowGiAaABMihtbZ8BYZUBYSieAZgBmQGaASidAZwBmwEyKJYBCvuTGaABggMBBH8gAyABAn8CQAJAIAAiBSAFIAMgASIGa2oiASACIAEgAkkbIgFBA2siCE8NACAFKAAAIAYoAABzIgcNAQNAIAZBBGohBiAFQQRqIgUgCE8NASAFKAAAIAYoAABzIgdFDQALIAUgB2hBA3ZqIABrDAILAkAgBSABQQFrTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyABIAVLBH8gBSAGLQAAIAUtAABGagUgBQsgAGsMAQsgB2hBA3YLIgZqRgR/An8CQCACQQNrIgEgACAGaiIATQRAIAAhBQwBCyAAKAAAIAQoAABzIgNFBEAgACEFA0AgBEEEaiEEIAVBBGoiBSABTw0CIAUoAAAgBCgAAHMiA0UNAAsgBSADaEEDdmogAGsMAgsgA2hBA3YMAQsCQCAFIAJBAWtPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAIgBUsEfyAFIAQtAAAgBS0AAEZqBSAFCyAAawsgBmoFIAYLC4AEAQN/IAJBgARPBEAgACABIAIQFSAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyAB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ACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiAAIAEtAB86AB8gAEEgag8LIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAQRBqDwsgACABKQAANwAAIABBCGoPCwJAIAJBB00EQCACRQ0BIAAgAS0AADoAACACQQFGBEAgAEEBag8LIAAgAS0AAToAASACQQJGBEAgAEECag8LIAAgAS0AAjoAAiACQQNGBEAgAEEDag8LIAAgAS0AAzoAAyACQQRGBEAgAEEEag8LIAAgAS0ABDoABCACQQVGBEAgAEEFag8LIAAgAS0ABToABSACQQZGBEAgAEEGag8LIAAgAS0ABjoABiAAQQdqDwsgACABKQAANwAAIAJBA3YiBEH4////AXEhAyABIAJBB3EiAmohASAAIAJqIQACQAJAAkACQAJAAkACQAJAIARBB3FBAWsOBwYFBAMCAQAHCyAAIAEpAAA3AAAgAUEIaiEBIABBCGohAAsgACABKQAANwAAIAFBCGohASAAQQhqIQALIAAgASkAADcAACABQQhqIQEgAEEIaiEACyAAIAEpAAA3AAAgAUEIaiEBIABBCGohAAsgACABKQAANwAAIAFBCGohASAAQQhqIQALIAAgASkAADcAACABQQhqIQEgAEEIaiEACyAAIAEpAAA3AAAgAUEIaiEBIABBCGohAAsgA0UNAANAIAAgASkAADcAACAAIAEpAAg3AAggACABKQAQNwAQIAAgASkAGDcAGCAAIAEpACA3ACAgACABKQAoNwAoIAAgASkAMDcAMCAAIAEpADg3ADggAUFAayEBIABBQGshACADQQhrIgMNAAsLIAALBgAgABAZCxcAIAAtAABBIHFFBEAgASACIAAQSBoLC7UEAQd/An9BACABQQhJDQAaIANBfHEhCSAAIAFqQQRrIQYgACEBIANBA3EiAyEIAkACQAJAAkAgA0EBaw4DAgEAAwsgBCACIAlBAnJqLQAAQQJ0aiIBLQACIQMgACABLwEAIgU2AAAgBiAAIANBA3ZqIgEgASAGSxshASAFIANB+AFxdiEHIANBB3EhBQsgBCACIAlBAXJqLQAAQQJ0aiIDLwEAIAV0IAdyIQcgBSADLQACaiEFCyAEIAIgCWotAABBAnRqIgMtAAIhCCABIAMvAQAgBXQgB3IiBzYAACAGIAEgBSAIaiIDQQN2aiIBIAEgBksbIQEgByADQfgHcXYhCCADQQdxIQMLIAkEQANAIAQgAiAJaiIFQQJrLQAAQQJ0aiIHLQACIQogASAIIAQgBUEBay0AAEECdGoiCC8BACADdHIgBy8BACADIAgtAAJqIgN0ciIINgAAIAQgAiAJQQRrIglqLQAAQQJ0aiIHLQACIQsgBiABIAMgCmoiA0EDdmoiASABIAZLGyIBIAQgBUEDay0AAEECdGoiBS8BACADQQdxIgp0IAggA0F4cXZyIAcvAQAgCiAFLQACaiIDdHIiBTYAACAGIAEgAyALaiIDQQN2aiIBIAEgBksbIQEgBSADQfgHcXYhCCADQQdxIQMgCQ0ACwsgASAIQQEgA3RyNgAAQQAgBiABIANBAWoiAkEDdmoiASABIAZLGyIBIAZPDQAaIAJBB3FBAEcgAGsgAWoLC+gIARB/IAAoAiwiBEF8cSEIIARBA3EhCyAEQYYCayEMIAAoAnQhAiAEQQFrQQNJIQ0DQCAAKAI8IAIgACgCbCIHamshBiAMIAAoAixqIAdNBEAgACgCOCIBIAEgBGogBBAXGiAAIAAoAnAgBGs2AnAgACAAKAJsIARrIgc2AmwgACAAKAJcIARrNgJcIAAoAkwiAkEBayEPIAAoAkQgAkEBdGohAyACQQNxIgkEQCACQXxxIQJBACEFA0AgA0ECayIDIAMvAQAiCiAEayIOQQAgCiAOTxs7AQAgBUEBaiIFIAlHDQALCyAPQQNPBEADQCADQQJrIgEgAS8BACIBIARrIgVBACABIAVPGzsBACADQQRrIgEgAS8BACIBIARrIgVBACABIAVPGzsBACADQQZrIgEgAS8BACIBIARrIgVBACABIAVPGzsBACADQQhrIgMgAy8BACIBIARrIgVBACABIAVPGzsBACACQQRrIgINAAsLIAAoAkAgBEEBdGohA0EAIQUgBCEBIAsEQANAIANBAmsiAyADLwEAIgEgBGsiAkEAIAEgAk8bOwEAIAVBAWoiBSALRw0ACyAIIQELIA1FBEADQCADQQJrIgIgAi8BACICIARrIgVBACACIAVPGzsBACADQQRrIgIgAi8BACICIARrIgVBACACIAVPGzsBACADQQZrIgIgAi8BACICIARrIgVBACACIAVPGzsBACADQQhrIgMgAy8BACICIARrIgVBACACIAVPGzsBACABQQRrIgENAAsLIAQgBmohBgsCQCAAKAIAIgEoAgQiAkUNACACIAYgAiAGSRshAyAAKAJ0IQUgACAGBH8gACgCOCEQIAEgAiADazYCBCAQIAdqIAVqIAEoAgAgAxAXIQICQAJAAkAgASgCHCgCGEEBaw4CAAECCyABIAEoAjAgAiADED02AjAMAQsgASABKAIwIAIgAxAaNgIwCyABIAEoAgAgA2o2AgAgASABKAIIIANqNgIIIAAoAnQFIAULIANqIgI2AnQCQCAAKAK0LSIFIAJqQQNJDQAgACAAKAI4IgYgACgCbCAFayIDaiIBLQAAIgc2AkggACAAKAJUIgkgAS0AASAHIAAoAlgiB3RzcSIBNgJIIAZBAmohBgNAIAVFDQEgACADIAZqLQAAIAEgB3RzIAlxIgE2AkggACgCQCAAKAI0IANxQQF0aiAAKAJEIAFBAXRqIgovAQA7AQAgCiADOwEAIAAgBUEBayIFNgK0LSADQQFqIQMgAiAFakECSw0ACwsgAkGFAksNACAAKAIAKAIEDQELCwJAIAAoAjwiCCAAKALALSIBTQ0AIAACfyAAKAJ0IAAoAmxqIgQgAUsEQCAAKAI4IARqQQBBggIgCCAEayIBIAFBggJPGyIBEBgaIAEgBGoMAQsgBEGCAmoiBCABTQ0BIAAoAjggAWpBACAEIAFrIgQgCCABayIBIAEgBEsbIgEQGBogACgCwC0gAWoLNgLALQsLCQAgASACbBAdCzYBAX9BASAAIABBAU0bIQACQANAIAAQHSIBDQFBuPQBKAIAIgEEQCABEQcADAELCxAHAAsgAQs3ACABAn9BvOABKAIAQQBIBEAgACABQfDfARBIDAELIAAgAUHw3wEQSAsiAEYEQA8LIAAg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LwEANgJ8IAYoAiwiAUUNAQJAAkACQAJAAkACQAJAAkACQAJ/AkACQCAGKAIcRQ0AIAYoAhBFBEAgBigCFA0BCyAGKAIgRQRAIAZBww42AigMDQsgAUEENgIoIAEgBkEQajYCAAJAAkACQCABKAIEIgRBKkYEQCABKAIYQQJGBEAgBkEANgJAIAEgASgCFCICQQFqNgIUIAIgASgCCGpBHzoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQYsBOgAAIAEgASgCFCICQQFqNgIUIAIgASgCCGpBCDoAACABKAIcIgJFBEAgASABKAIUIgJBAWo2AhQgAiABKAIIakEAOgAAIAEgASgCFCICQQFqNgIUIAIgASgCCGpBADoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQA6AAAgASABKAIUIgJBAWo2AhQgAiABKAIIakEAOgAAIAEgASgCFCICQQFqNgIUIAIgASgCCGpBADoAAEECIQQgASgChAEiAkEJRwRAQQQgASgCiAFBAUpBAnQgAkECSBshBAsgASABKAIUIgJBAWo2AhQgAiABKAIIaiAEOgAAIAEgASgCFCICQQFqNgIUIAIgASgCCGpBAzoAAAwQCyACKAIkIQMgAigCHCELIAIoAhAhBSACKAIsIQggAigCACECIAEgASgCFCINQQFqNgIUQQIhBCANIAEoAghqIAhBAEdBAXQgAkEAR3IgBUEAR0ECdHIgC0EAR0EDdHIgA0EAR0EEdHI6AAAgASgCHCgCBCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABKAIcKAIEIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACQQh2OgAAIAEoAhwvAQYhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHC0AByECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABKAKEASICQQlHBEBBBCABKAKIAUEBSkECdCACQQJIGyEECyABIAEoAhQiAkEBajYCFCACIAEoAghqIAQ6AAAgASgCHCgCDCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABKAIcIgQoAhAEQCAEKAIUIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAEoAhwoAhQhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgASgCHCEECyAEKAIsBEAgBiAGKAJAIAEoAgggASgCFBAaNgJACyABQcUANgIEIAFBADYCIAwCCyABKAIwQQx0QYDwAWshA0EAIQQCQCABKAKIAUEBSg0AIAEoAoQBIgJBAkgNAEHAACEEIAJBBkkNAEGAAUHAASACQQZGGyEECyABQfEANgIEIAEgASgCFCICQQFqNgIUIAIgASgCCGogAyAEciICQSByIAIgASgCbBsiAkEIdjoAACABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBH3AgAnJBH3M6AAAgASgCbARAIAYoAkAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBGHY6AAAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACQRB2OgAAIAYoAkAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAACyAGQQE2AkAgASgCBCEECyAEQcUARw0BIAEoAhwhBAsCQCAEKAIQBEAgASgCFCEDAkAgASgCICICIAQvARRPDQADQCABKAIUIg0gASgCDEYEfyAEKAIsRSADIA1PckUEQCAGIAYoAkAgASgCCCADaiANIANrEBo2AkALAkACfyAGKAIsIgIoArwtIgNBEEYEQCACIAIoAhQiA0EBajYCFCADIAIoAghqIAItALgtOgAAIAIgAigCFCIDQQFqNgIUIAMgAigCCGogAkG5LWotAAA6AAAgAkEAOwG4LUEADAELIANBCEgNASACIAIoAhQiA0EBajYCFCADIAIoAghqIAItALgtOgAAIAIgAkG5LWotAAA7AbgtIAIoArwtQQhrCyEDIAIgAzYCvC0LAkAgAigCFCIDIAYoAiAiBCADIARJGyIDRQ0AIAYoAhwgAigCECADEBcaIAYgBigCHCADajYCHCACIAIoAhAgA2o2AhAgBiAGKAIkIANqNgIkIAYgBigCICADazYCICACIAIoAhQiBCADazYCFCADIARHDQAgAiACKAIINgIQCyABKAIcIQQgASgCFCINIAEoAgxGBEAgDSEDDAMLIA0hAyABKAIgBSACCyAEKAIQai0AACECIAEgDUEBajYCFCABKAIIIA1qIAI6AAAgASABKAIgQQFqIgI2AiAgAiABKAIcIgQvARRJDQALCwJAIAQoAixFDQAgASgCFCICIANNDQAgBiAGKAJAIAEoAgggA2ogAiADaxAaNgJACyABKAIgIAQoAhRHDQEgAUHJADYCBCABQQA2AiAMAwsgAUHJADYCBAwCCyABKAIEIQQLIARByQBHDQQgASgCHCEECyAEKAIcRQ0FIAEoAhQhAwNAIAEoAhwhBCABKAIUIg0gASgCDEYEQCAEKAIsRSADIA1PckUEQCAGIAYoAkAgASgCCCADaiANIANrEBo2AkALAkACfyAGKAIsIgIoArwtIgNBEEYEQCACIAIoAhQiA0EBajYCFCADIAIoAghqIAItALgtOgAAIAIgAigCFCIDQQFqNgIUIAMgAigCCGogAkG5LWotAAA6AAAgAkEAOwG4LUEADAELIANBCEgNASACIAIoAhQiA0EBajYCFCADIAIoAghqIAItALgtOgAAIAIgAkG5LWotAAA7AbgtIAIoArwtQQhrCyEDIAIgAzYCvC0LAkAgAigCFCIDIAYoAiAiBCADIARJGyIDRQ0AIAYoAhwgAigCECADEBcaIAYgBigCHCADajYCHCACIAIoAhAgA2o2AhAgBiAGKAIkIANqNgIkIAYgBigCICADazYCICACIAIoAhQiBCADazYCFCADIARHDQAgAiACKAIINgIQCyABKAIcIQQgASgCFCINIAEoAgxGDQMgDSEDCyAEKAIcIXMgASABKAIgIgRBAWo2AiAgcyAEai0AACECIAEgDUEBajYCFCABKAIIIA1qIAI6AAAgAg0ACyABKAIcIQQgAyENQQEMAgsgBkHQDjYCKAwLC0EACyF0AkAgBCgCLEUNACABKAIUIgMgDU0NACAGIAYoAkAgASgCCCANaiADIA1rEBo2AkALIHQNASABKAIEIQQLIARB2wBHDQMgASgCHCEEDAILIAFBADYCIAsgAUHbADYCBAsgBCgCJEUNASABKAIUIQMCfwJAA0AgASgCHCEEIAEoAhQiDSABKAIMRgRAIAQoAixFIAMgDU9yRQRAIAYgBigCQCABKAIIIANqIA0gA2sQGjYCQAsCQAJ/IAYoAiwiAigCvC0iA0EQRgRAIAIgAigCFCIDQQFqNgIUIAMgAigCCGogAi0AuC06AAAgAiACKAIUIgNBAWo2AhQgAyACKAIIaiACQbktai0AADoAACACQQA7AbgtQQAMAQsgA0EISA0BIAIgAigCFCIDQQFqNgIUIAMgAigCCGogAi0AuC06AAAgAiACQbktai0AADsBuC0gAigCvC1BCGsLIQMgAiADNgK8LQsCQCACKAIUIgMgBigCICIEIAMgBEkbIgNFDQAgBigCHCACKAIQIAMQFxogBiAGKAIcIANqNgIcIAIgAigCECADajYCECAGIAYoAiQgA2o2AiQgBiAGKAIgIANrNgIgIAIgAigCFCIEIANrNgIUIAMgBEcNACACIAIoAgg2AhALIAEoAhwhBCABKAIUIg0gASgCDEYNAiANIQMLIAQoAiQhdSABIAEoAiAiBEEBajYCICB1IARqLQAAIQIgASANQQFqNgIUIAEoAgggDWogAjoAACACDQALIAEoAhwhBCADIQ1BAQwBC0EACyF2AkAgBCgCLEUNACABKAIUIgMgDU0NACAGIAYoAkAgASgCCCANaiADIA1rEBo2AkALIHYNASABKAIEIQQLIARB5wBHDQMgASgCHCEEDAELIAFB5wA2AgQLIAQoAixFDQAgASgCFCIEQQJqIg0gASgCDCICSwR/IAZBEGoQPiABKAIUIgRBAmohDSABKAIMBSACCyANSQ0BIAYoAkAhAiABIARBAWo2AhQgASgCCCAEaiACOgAAIAYoAkAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgBkEANgJACyABQfEANgIECwJAIAEoAhRFDQACQAJ/IAYoAiwiAygCvC0iAkEQRgRAIAMgAygCFCICQQFqNgIUIAIgAygCCGogAy0AuC06AAAgAyADKAIUIgJBAWo2AhQgAiADKAIIaiADQbktai0AADoAACADQQA7AbgtQQAMAQsgAkEISA0BIAMgAygCFCICQQFqNgIUIAIgAygCCGogAy0AuC06AAAgAyADQbktai0AADsBuC0gAygCvC1BCGsLIQIgAyACNgK8LQsCQCADKAIUIgQgBigCICICIAIgBEsbIgRFDQAgBigCHCADKAIQIAQQFxogBiAGKAIcIARqNgIcIAMgAygCECAEajYCECAGIAYoAiQgBGo2AiQgBiAGKAIgIARrIgI2AiAgAyADKAIUIgsgBGs2AhQgBCALRw0AIAMgAygCCDYCEAsgAg0AIAFBfzYCKAwBCwJAIAEoAgRBmgVGBEAgBigCFARAIAZBww42AigMAwsgASgCdEUNAQsCfwJAAkACQCABKAKIAUECaw4CAAECCwJ/AkADQCABKAJ0RQRAIAEQKyABKAJ0RQ0CCyABQQA2AmAgASgCOCABKAJsai0AACECIAEoAqQtIAEoAqAtIgNBAXRqQQA7AQAgASADQQFqNgKgLSADIAEoApgtaiACOgAAIAEgAkECdGoiAiACLwGUAUEBajsBlAEgASABKAJ0QQFrNgJ0IAEgASgCbEEBaiIDNgJsIAEoAqAtIAEoApwtQQFrRw0AIAEgASgCXCICQQBOBH8gASgCOCACagVBAAsgAyACa0EAEBwgASABKAJsNgJcAkACfyABKAIAIgMoAhwiAigCvC0iBEEQRgRAIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAi0AuC06AAAgAiACKAIUIgRBAWo2AhQgBCACKAIIaiACQbktai0AADoAACACQQA7AbgtQQAMAQsgBEEISA0BIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAi0AuC06AAAgAiACQbktai0AADsBuC0gAigCvC1BCGsLIQQgAiAENgK8LQsCQCACKAIUIgQgAygCECILIAQgC0kbIgRFDQAgAygCDCACKAIQIAQQFxogAyADKAIMIARqNgIMIAIgAigCECAEajYCECADIAMoAhQgBGo2AhQgAyADKAIQIARrNgIQIAIgAigCFCIDIARrNgIUIAMgBEcNACACIAIoAgg2AhALIAEoAgAoAhANAAtBAAwBCyABQQA2ArQtIAEgASgCXCICQQBOBH8gASgCOCACagVBAAsgASgCbCACa0EBEBwgASABKAJsNgJcAkACfyABKAIAIgMoAhwiAigCvC0iBEEQRgRAIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAi0AuC06AAAgAiACKAIUIgRBAWo2AhQgBCACKAIIaiACQbktai0AADoAACACQQA7AbgtQQAMAQsgBEEISA0BIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAi0AuC06AAAgAiACQbktai0AADsBuC0gAigCvC1BCGsLIQQgAiAENgK8LQsCQCACKAIUIgQgAygCECILIAQgC0kbIgRFDQAgAygCDCACKAIQIAQQFxogAyADKAIMIARqNgIMIAIgAigCECAEajYCECADIAMoAhQgBGo2AhQgAyADKAIQIARrNgIQIAIgAigCFCIDIARrNgIUIAMgBEcNACACIAIoAgg2AhALQQNBAiABKAIAKAIQGwsMAgsCfwNAAkACfwJAAkAgASgCdCILQYMCTwRAIAFBADYCYCABKAJsIQUMAQsgARArIAEoAnQiCwRAIAFBADYCYCABKAJsIQUgC0ECSw0BIAEoAjghDQwCCyABQQA2ArQtIAEgASgCXCICQQBOBH8gASgCOCACagVBAAsgASgCbCACa0EBEBwgASABKAJsNgJcAkACfyABKAIAIgMoAhwiAigCvC0iBEEQRgRAIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAi0AuC06AAAgAiACKAIUIgRBAWo2AhQgBCACKAIIaiACQbktai0AADoAACACQQA7AbgtQQAMAQsgBEEISA0BIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAi0AuC06AAAgAiACQbktai0AADsBuC0gAigCvC1BCGsLIQQgAiAENgK8LQsCQCACKAIUIgQgAygCECILIAQgC0kbIgRFDQAgAygCDCACKAIQIAQQFxogAyADKAIMIARqNgIMIAIgAigCECAEajYCECADIAMoAhQgBGo2AhQgAyADKAIQIARrNgIQIAIgAigCFCIDIARrNgIUIAMgBEcNACACIAIoAgg2AhALQQNBAiABKAIAKAIQGwwFCyABKAI4IQ0gBUUEQEEAIQUMAQsgBSANaiIEQQFrLQAAIgMgBC0AAEcNACADIAQtAAFHDQAgAyAELQACRw0AIARBggJqIQdBAiEIAkACQAJAAkACQAJAAkADQCAEIAhqIgItAAEgA0YEQCADIAItAAJHDQIgAyACLQADRw0DIAMgAi0ABEcNBCADIAItAAVHDQUgAyACLQAGRw0GIAMgAi0AB0cNByAIQfkBSyF3IAQgCEEIaiIIaiECIHcNCCADIAItAABGDQEMCAsLIAJBAWohAgwGCyACQQJqIQIMBQsgAkEDaiECDAQLIAJBBGohAgwDCyACQQVqIQIMAgsgAkEGaiECDAELIAJBB2ohAgsgASACIAdrQYICaiICIAsgAiALSRsiAzYCYCABKAKgLSICIANBA0kNARogASgCpC0gAkEBdGpBATsBACABIAJBAWo2AqAtIAEoApgtIAJqIANBA2siAjoAACACQf8BcUGA4QBqLQAAQQJ0IAFqQZgJaiICIAIvAQBBAWo7AQAgASgCYCECIAFBADYCYCABIAEvAYgTQQFqOwGIEyABIAEoAnQgAms2AnQgASACIAEoAmxqIgI2AmwMAgsgASgCoC0LIQIgBSANai0AACEDIAEoAqQtIAJBAXRqQQA7AQAgASACQQFqNgKgLSABKAKYLSACaiADOgAAIAEgA0ECdGoiAiACLwGUAUEBajsBlAEgASABKAJ0QQFrNgJ0IAEgASgCbEEBaiICNgJsCyABKAKgLSABKAKcLUEBa0cNACABIAEoAlwiA0EATgR/IAEoAjggA2oFQQALIAIgA2tBABAcIAEgASgCbDYCXAJAAn8gASgCACIDKAIcIgIoArwtIgRBEEYEQCACIAIoAhQiBEEBajYCFCAEIAIoAghqIAItALgtOgAAIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAkG5LWotAAA6AAAgAkEAOwG4LUEADAELIARBCEgNASACIAIoAhQiBEEBajYCFCAEIAIoAghqIAItALgtOgAAIAIgAkG5LWotAAA7AbgtIAIoArwtQQhrCyEEIAIgBDYCvC0LAkAgAigCFCIEIAMoAhAiCyAEIAtJGyIERQ0AIAMoAgwgAigCECAEEBcaIAMgAygCDCAEajYCDCACIAIoAhAgBGo2AhAgAyADKAIUIARqNgIUIAMgAygCECAEazYCECACIAIoAhQiAyAEazYCFCADIARHDQAgAiACKAIINgIQCyABKAIAKAIQDQALQQALDAELIAFBBCABKAKEAUEMbEGIHGooAgARAgALIgJBfnFBAkYEQCABQZoFNgIECyACQX1xRQRAIAYoAiANAiABQX82AigMAgsgAkEBRw0AIAFBAEEAQQAQViAGQRBqED4gBigCIA0AIAFBfzYCKAwBCwJAIAEoAhgiA0EATA0AIAYoAkAhAgJAIANBAkYEQCABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgBigCQCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAGLwFCIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAYtAEMhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgBigCGCECIAEgASgCFCIDQQFqNgIUIAMg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PiABIgJNBEAgAUEEayIBKAAAIAVGDQELCyATIQECQCACIBFNDQADQCACQQFrIgUtAAAgAS0AAEcNASABQQFrIQEgBSICIBFLDQALIBEhAgsgICACayAIagtrIgEgNCABIDRLGyIKayAbaiIBICJJIBsgIktyRQRAIBkgJSAiayAbaiIBIAEgGWtBfEsbIQpBAiEbDAELQQIhGyAKIBlrQXxLBEAgGSEKDAELIAsgJEcNAAJAIAEgIiABICJJGyICIARNBEAgDSEBIAMhBSAEIQIMAQsgCyEBICQgCiAqaiIFa0H//wNKDQILIDMgCkH//wNxQQF0ai8BACIDIApLBEAgASENIAUhAyACIQQMAgsgCiADayEKIAIhBCAFIQMgASENCyAKIDRJDQAgGEEBayIYDQELCyAEICdHDQEgAyEICyArRSALIBdrIgIgFUEBaiIKIAJB/wFuampBCGogLE1yRQRAQQAhAgwKCwJAIAJBD08EQCAVQfABOgAAIAJBD2siAUH/AU8EQCAKQf8BIAJBjgJrIgNB/wFuIgFBAWoQGBogASAVakECaiEKIAFBgX5sIANqIQELIAogAToAACAKQQFqIQoMAQsgFSACQQR0OgAACyACIApqIQMgFyECIAohAQNAIAEgAikAADcAACACQQhqIQIgAUEIaiIBIANJDQALIAMgCyAJazsAACArRSADQQJqIg4gJ0EEayIBQf8BbmpBBmogLE1yRQRAQQAhAgwKCyAVLQAAIQIgAUEPTwRAIBUgAkEPajoAACAnQRNrIgJB/gNPBEAgDkH/ASAnQZEEayIBQf4DbiICQQF0IgNBAmoQGBogCiAXayALaiADakEEaiEOIAJBgnxsIAFqIQILIAJB/wFPBEAgDkH/AToAACAOQQFqIQ4gAkH/AWshAgsgDiACOgAAIA5BAWohDgwECyAVIAEgAmo6AAAMAwsgDiALIA0gCyAWakkgCyAOS3EiARshIiADIQggDSILICJrQQNIDQAgFiAnIAEbIQ4gFCAJIAEbIQkgFyEQA0AgDiAiaiIXQQNqIUcgIkESIA4gDkESThsiLmohPAJAA0ACQAJAAn8CQCALICJrIgFBEUoNACAiIAtrIAEgBGpBBGsgLiA8IAQgC2pBBGtLG2oiAUEATA0AIAQgAWshFiABIANqIQggASALagwBCyADIQggBCEWIAsLIg0gFmoiDyA2Sw0AIBwoApCAECI7IA9BA2siHiAcKAKEgBAiJGsiAUH//wNrIDtBgIAEaiABSxshNCAeKAAAIRIgASAcKAKUgBAiAksEQANAIDMgAkH//wNxQQF0akH//wMgAiAcIAIgJGooAABBsfPd8XlsQQ92Qfz/B3FqIgMoAgBrIgQgBEH//wNPGzsBACADIAI2AgAgAkEBaiICIAFJDQALCyAcKAKMgBAhESAcKAKIgBAhMiAcIAE2ApSAECAcIB4oAABBsfPd8XlsQQ92Qfz/B3FqKAIAIgogNEkNACANIB5rIS0gDUEBayE+IBJB//8DcSASQRB2RiASQf8BcSASQRh2RnEhQiARIDJqIRkgESAkaiIUQQRqISAgD0EFaiE/IA9BAWohISAyIDtqIidBBGohSUEAIRsgFiEEIBohGEEAISogByEDIAwhCwNAAkACQAJ/AkACQCAKIBFPBEAgBCA+ai8AACAKICRqIgcgLWogBGpBAWsvAABHDQUgBygAACASRw0FAkAgDSAeRgRAQQAhBQwBCyAtIBQgB2siASABIC1IGyIMQR91IAxxIQFBACECA0AgDCACIgVOBEAgASEFDAILIB4gBUEBayICai0AACACIAdqLQAARg0ACwsgB0EEaiECIB8gHyAhTQR/ICEFICEoAAAgAigAAHMiAQ0CIAdBCGohAiA/CyIBSwRAA0AgASgAACACKAAAcyIMBEAgASAMaEEDdmogIWshAgwHCyACQQRqIQIgAUEEaiIBIB9JDQALCwJAIAEgNU8NACACLwAAIAEvAABHDQAgAkECaiECIAFBAmohAQsgASAdSQR/IAEgAi0AACABLQAARmoFIAELICFrIQIMBAsgCiAyaiIHKAAAIBJHDQQgB0EEaiECICEgHSAeIBEgCmtqIgEgASAdSxsiBUEDayIMTwR/ICEFICEoAAAgAigAAHMiAQ0CIAdBCGohAiA/CyIBIAxJBEADQCABKAAAIAIoAABzIiUEQCABICVoQQN2aiAhawwFCyACQQRqIQIgAUEEaiIBIAxJDQALCwJAIAEgBUEBa08NACACLwAAIAEvAABHDQAgAkECaiECIAFBAmohAQsgASAFSQR/IAEgAi0AACABLQAARmoFIAELICFrDAILIAFoQQN2IQIMAgsgAWhBA3YLIQEgHiAB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BCEACyAAIAFPDQADQCAAIAgtAAA6AAAgCEEBaiEIIABBAWoiACABSQ0ACwsgASAMayEAIAMgDjYCAAJAAkAgASAFayAMSQRAIAwgASAGa0sNAyAHIAcgACAFayIAaiIDIApqTwRAIAEgAyAKEB4aDAMLIAEgA0EAIABrEB4hECACIAAgCmoiCjYCBCAQIABrIQEMAQsgACEFCyABIApqIQIgCkEHTARAIApBAEwNAQNAIAEgBS0AADoAACAFQQFqIQUgAUEBaiIBIAJJDQALDAELAkAgASAFayIAQQdNBEAgASAFLQAAOgAAIAEgBS0AAToAASABIAUtAAI6AAIgASAFLQADOgADIAEgBSAAQQJ0IgBB0LwBaigCAGoiAygAADYABCADIABB8LwBaigCAGshBQwBCyABIAUpAAA3AAALIAFBCGohACAFQQhqIQggAiAETQRAIAAgCmohAiAAIAhrQQ9MBEADQCAAIAgpAAA3AAAgCEEIaiEIIABBCGoiACACSQ0ADAMLAAsgACAIKQAANwAAIAAgCCkACDcACCABIAUpACA3ACAgASAFKQAYNwAYIApBIUkNASABQShqIQADQCAAIAgpACA3AAAgACAIKQAoNwAIIAAgCCkAMDcAECAAIAgpADg3ABggCEEgaiEIIABBIGoiACACSQ0ACwwBCwJAIAAgBEsEQCAAIQQMAQsgBCAAayEDAkAgACAIa0EPTARAIAghAQNAIAAgASkAADcAACABQQhqIQEgAEEIaiIAIARJDQALDAELIAAgCCkAADcAACAAIAgpAAg3AAggASAFKQAgNwAgIAEgBSkAGDcAGCADQSFIDQAgAUEoaiEAIAghAQNAIAAgASkAIDcAACAAIAEpACg3AAggACABKQAwNwAQIAAgASkAODcAGCABQSBqIQEgAEEgaiIAIARJDQALCyADIAhqIQgLIAIgBE0NAANAIAQgCC0AADoAACAIQQFqIQggBEEBaiIEIAJJDQALCyANIQsLIAsLpQgBBn8jAEHwAWsiDiQAIA4gAzYCfEF/IQ0CQAJAAkACQAJAIAIOBAEAAwIECyAGRQRAQbh/IQ0MBAtBbCENIAUtAAAiAiADSw0DIAggAkECdCICaigCACEDIAIgB2ooAgAhAiAAQQA6AAsgAEIANwIAIAAgAjYCDCAAIAM6AAogAEEAOwEI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ACgCFCIEQQFqNgIUIAQgACgCCGogAjoAACABQQJqIQEgA0ECayIDDQALCwvJBQEEfyAAQZQBaiEBA0AgASADQQJ0IgJqQQA7AQAgASACQQRyakEAOwEAIAEgAkEIcmpBADsBACABIAJBDHJqQQA7AQAgASACQRByakEAOwEAIAEgAkEUcmpBADsBACADQQZyIgRBngJGRQRAIAEgBEECdGpBADsBACABIAJBHHJqQQA7AQAgA0EIaiEDDAELCyAAQQA7AfwUIABBADsBiBMgAEHEFWpBADsBACAAQcAVakEAOwEAIABBvBVqQQA7AQAgAEG4FWpBADsBACAAQbQVakEAOwEAIABBsBVqQQA7AQAgAEGsFWpBADsBACAAQagVakEAOwEAIABBpBVqQQA7AQAgAEGgFWpBADsBACAAQZwVakEAOwEAIABBmBVqQQA7AQAgAEGUFWpBADsBACAAQZAVakEAOwEAIABBjBVqQQA7AQAgAEGIFWpBADsBACAAQYQVakEAOwEAIABBgBVqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEHYE2pBADsBACAAQdQTakEAOwEAIABB0BNqQQA7AQAgAEHME2pBADsBACAAQcgTakEAOwEAIABBxBNqQQA7AQAgAEHAE2pBADsBACAAQbwTakEAOwEAIABBuBNqQQA7AQAgAEG0E2pBADsBACAAQbATakEAOwEAIABBrBNqQQA7AQAgAEGoE2pBADsBACAAQaQTakEAOwEAIABBoBNqQQA7AQAgAEGcE2pBADsBACAAQZgTakEAOwEAIABBlBNqQQA7AQAgAEGQE2pBADsBACAAQYwTakEAOwEAIABCADcCrC0gAEGUCWpBATsBACAAQQA2AqgtIABBADYCoC0LvwUCBX4EfyAAQShqIgcgACgCSCIJaiEIAn4gACkDACICQiBaBEAgACkDECIDQgeJIAApAwgiBEIBiXwgACkDGCIFQgyJfCAAKQMgIgFCEol8IARCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0gA0LP1tO+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IAw7AQYgASADQQhqIgA2AgQgEyAGIAhqIgNJBEAgAyEFDAELIBQgESAgaikAAEKAxpX9y5vvjU9+ICeIp0ECdGogEUECajYCACAUIANBAmsiBikAAEKAxpX9y5vvjU9+ICeIp0ECdGogBiAOazYCACAEIQggByEGA0ACQCAGIQQgCCEGIBkgAyAOayIHIARrIgVrQQNJDQAgBSAcIA4gBSAQSSIFG2oiCCgAACADKAAARw0AIANBBGogCEEEaiANIBUgDSAFGyASEBYiCUEBaiEFIAMgC00EQCABKAIMIgAgAykAADcAACAAIAMpAAg3AAggASgCBCEACyAAQQE2AgAgAEEAOwEEIAVBgIAETwRAIAFBAjYCJCABIAAgASgCAGtBA3U2AigLIAAgBTsBBiABIABBCGoiADYCBCAUIAMpAABCgMaV/cub741PfiAniKdBAnRqIAc2AgAgBCEIIAYhByAJQQRqIANqIgMhBSADIBNNDQEMAgsLIAQhByAGIQQgAyEFCyAFIBNJDQALDAILIAUgE08NASAWIBhrIRwgDUEBayEdIA1BA2shFyANQSBrIQsgEEEBayEZQcAAIAYoAnxrrSEoQcAAIAAoAnxrrSEnA0AgFCAFKQAAIilCgIDs/Mub741PfiIqICeIp0ECdGoiACgCACEMIAAgBSAOayIRNgIAAkACQAJAAkAgGSARIARrQQFqIgBrQQNJDQAgFiAAIBhraiAAIA5qIAAgEEkiABsiBigAACAFKAABRw0AIAVBBWogBkEEaiANIBUgDSAAGyASEBYiCkEBaiEMIAVBAWoiBiADayEJIAEoAgwhAAJAAkAgBiALTQRAIAAgAykAADcAACAAIAMpAAg3AAggASgCDCEAIAlBEE0EQCABIAAgCWo2AgwgASgCBCEDDAMLIAAgAykAEDcAECAAIAMpABg3ABggACADKQAgNwAgIAAgAykAKDcAKCAJQTFIDQEgACAJaiEIIANBEGohAyAAQTBqIQUDQCAFIAMpACA3AAAgBSADKQAoNwAIIAUgAykAMDcAECAFIAMpADg3ABggA0EgaiEDIAVBIGoiBSAISQ0ACwwBCyADIAtNBEAgACADKQAANwAAIAAgAykACDcACCAAIAMpABA3ABAgACADKQAYNwAYIAAgCyADayIPaiEIIA9BIU4EQCAAQSBqIQAD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IAAgDmogACAQSSIAGyIGKAAAIAUoAAFHDQAgBUEFaiAGQQRqIA0gFSANIAAbIBIQFiIKQQFqIQwgBUEBaiIGIANrIQkgASgCDCEAAkACQCAGIAtNBEAgACADKQAANwAAIAAgAykACDcACCABKAIMIQAgCUEQTQRAIAEgACAJajYCDCABKAIEIQMMAwsgACADKQAQNwAQIAAgAykAGDcAGCAAIAMpACA3ACAgACADKQAoNwAoIAlBMUgNASAAIAlqIQggA0EQaiEDIABBMGohBQNAIAUgAykAIDcAACAFIAMpACg3AAggBSADKQAwNwAQIAUgAykAODcAGCADQSBqIQMgBUEgaiIFIAhJDQALDAELIAMgC00EQCAAIAMpAAA3AAAgACADKQAINwAIIAAgAykAEDcAECAAIAMpABg3ABggACALIANrIg9qIQggD0EhTgRAIABBIGohAANAIAAgAykAIDcAACAAIAMpACg3AAggACADKQAwNwAQIAAgAykAODcAGCADQSBqIQMgAEEgaiIAIAhJDQALCyALIQMgCCEACyADIAZPDQAgBSADayEmQQAhBSAGIANrQQdxIg8EQANAIAAgAy0AADoAACAAQQFqIQAgA0EBaiEDIAVBAWoiBSAPRw0ACwsgJkEHSQ0AA0AgACADLQAAOgAAIAAgAy0AAToAASAAIAMtAAI6AAIgACADLQADOgADIAAgAy0ABDoABCAAIAMtAAU6AAUgACADLQAGOgAGIAAgAy0ABzoAByAAQQhqIQAgA0EIaiIDIAZHDQALCyABIAEoAgwgCWo2AgwgASgCBCEDIAlBgIAESQ0AIAFBATYCJCABIAMgASgCAGtBA3U2AigLIApBBGohCCADQQE2AgAgAyAJOwEEIAQhCSAMQf//A0sNAQwCCyAMIBBNBEACQCAhICogKIinQQJ0aigCACIGIBtNDQAgBiAWaiIAKAAAIAUoAABHDQAgBUEEaiAAQQRqIA0gFSASEBZBBGohCCAGIBhqIQcCQCAGIBtMBEAgBSEGDAELIAUhBiADIAVPDQADQCAFQQFrIgYtAAAgAEEBayIALQAARwRAIAUhBgwCCyAIQQFqIQggACAfTQ0BIAYiBSADSw0ACwsgESAHayEJIAhBA2shDCAGIANrIQogASgCDCEFAkACQCAGIAtNBEAgBSADKQAANwAA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AQsCQCAFIBJPDQAgAC8AACAFLwAARw0AIABBAmohACAFQQJqIQULIAUgDUkEfyAFIAAtAAAgBS0AAEZqBSAFCyAEawshISAGIANrIQQgISAIaiIYQQFqIQcgASgCDCEFAkACQCAGIAxNBEAgBSADKQAANwAAIAUgAykACDcACCABKAIMIQAgBEEQTQRAIAEgACAEajYCDCABKAIEIQMMAwsgACADKQAQNwAQIAAgAykAGDcAGCAAIAMpACA3ACAgACADKQAoNwAoIARBMUgNASAAIARqIQggA0EQaiEDIABBMGohBQNAIAUgAykAIDcAACAFIAMpACg3AAggBSADKQAwNwAQIAUgAykAODcAGCADQSBqIQMgBUEgaiIFIAhJDQALDAELIAMgDE0EQCAFIAMpAAA3AAAgBSADKQAINwAIIAUgAykAEDcAECAFIAMpABg3ABggBSAMIANrIghqIQAgCEEhTgRAIAVBIGohBQNAIAUgAykAIDcAACAFIAMpACg3AAggBSADKQAwNwAQIAUgAykAODcAGCADQSBqIQMgBUEgaiIFIABJDQALCyAAIQUgDCEDCyADIAZPDQBBACEIIAMhACAGIANrQQdxIhMEQANAIAUgAC0AADoAACAFQQFqIQUgAEEBaiEAIAhBAWoiCCATRw0ACwsgAyAGa0F4Sw0AA0AgBSAALQAAOgAAIAUgAC0AAToAASAFIAAtAAI6AAIgBSAALQADOgADIAUgAC0ABDoABCAFIAAtAAU6AAUgBSAALQAGOgAGIAUgAC0ABzoAByAFQQhqIQUgAEEIaiIAIAZHDQALCyABIAEoAgwgBGo2AgwgASgCBCEDIARBgIAESQ0AIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgBDsBBCADIA9BAWo2AgAgB0GAgARPBEAgAUECNgIkIAEgAyABKAIAa0EDdTYCKAsgAyAHOwEGIAEgA0EIaiIANgIEIBhBBGogBmoiA0EBaiEFAkAgAyARSw0AIA4gFCAZaikAAEKAgOz8y5vvjU9+ICOIp0ECdGogFEECajYCACAOIANBAmsiBCkAAEKAgOz8y5vvjU9+ICOIp0ECdGogBCALazYCACAJRQRAQQAhCQwBCyADKAAAIAMgCWsoAABHDQBBACAJayEGIAkhBQNAIAohCSAFIQogA0EEaiIEIAZq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IAAgA08EQCADIQUMAQsDQCADQQFrIgUtAAAgBEEBayIELQAARwRAIAMhBQwCCyAJQQFqIQkgBCAHTQ0BIAUiAyAASw0ACwsgCUEDayETIAUgAGshCCABKAIMIQMCQAJAIAUgC00EQCADIAApAAA3AAAgAyAAKQAINwAIIAEoAgwhBCAIQRBNBEAgASAEIAhqNgIMIAEoAgQhAwwDCyAEIAApABA3ABAgBCAAKQAYNwAYIAQgACkAIDcAICAEIAApACg3ACggCEExSA0BIAQgCGohByAAQRBqIQMgBEEwaiEAA0AgACADKQAgNwAAIAAgAykAKDcACCAAIAMpADA3ABAgACADKQA4NwAYIANBIGohAyAAQSBqIgAgB0kNAAsMAQsgACALTQRAIAMgACkAADcAACADIAApAAg3AAggAyAAKQAQNwAQIAMgACkAGDcAGCADIAsgAGsiB2ohBCAHQSFOBEAgA0EgaiEDA0AgAyAAKQAgNwAAIAMgACkAKDcACCADIAApADA3ABAgAyAAKQA4NwAYIABBIGohACADQSBqIgMgBEkNAAsLIAQhAyALIQALIAAgBU8NAEEAIQcgACEEIAUgAGtBB3EiFwRAA0AgAyAELQAAOgAAIANBAWohAyAEQQFqIQQgB0EBaiIHIBdHDQALCyAAIAVrQXhLDQADQCADIAQtAAA6AAAgAyAELQABOgABIAMgBC0AAjoAAiADIAQtAAM6AAMgAyAELQAEOgAEIAMgBC0ABToABSADIAQtAAY6AAYgAyAELQAHOgAHIANBCGohAyAEQQhqIgQgBUcNAAsLIAEgASgCDCAIajYCDCABKAIEIQMgCEGAgARJDQAgAUEBNgIkIAEgAyABKAIAa0EDdTYCKAsgAyAIOwEEIAMgBkEDajYCACAKIgghByATQf//A00NAQsgAUECNgIkIAEgAyABKAIAa0EDdTYCKCAIIQcLIAMgEzsBBiABIANBCGoiBDYCBCAYIAUgCWoiAEkEQCAHIQggBiEKIAAhAwwDCyAVIA8gEkECaiIDaiIKKQAAIiJC48iVvcub741PfiIlICSIp0ECdGogAzYCACAVIABBAmsiBSkAAELjyJW9y5vvjU9+ICSIp0ECdGogBSAPazYCACAQAn8CQAJAAkACQAJAIBsOBAABAgMECyAQICJCgICA2Mub741PfiAj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AWohDSAAIBNNDQUgBiIEIANLDQALDAQLAkAgACAUTw0AIAkvAAAgAC8AAEcNACAJQQJqIQkgAEECaiEACyAAIA5JBH8gACAJLQAAIAAtAABGagUgAAsgBGsLIR8gBiAFayEIIB9BCGohDSAHIBFMIAMgBk9yDQIDQCAGQQFrIgAtAAAgBUEBayIFLQAARw0DIA1BAWohDSAFIBNNBEAgACEGDAQLIAAiBiADSw0ACwwCCwJAIAUgFE8NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSAOSQR/IAUgBi0AACAFLQAARmoFIAULIAdrCyEgIAQgAGshCCAgQQhqIQ0gCSARTARAIAQhBgwBCyADIARPBEAgBCEGDAELA0AgBEEBayIGLQAAIABBAWsiAC0AAEcEQCAEIQYMAgsgDUEBaiENIAAgE00NASAGIgQgA0sNAAsLIA1BA2shEiAGIANrIQcgASgCDCEAAkACQCAGIAtNBEAgACADKQAANwAAIAAgAykACDcACCABKAIMIQAgB0EQTQRAIAEgACAHajYCDCABKAIEIQMMAwsgACADKQAQNwAQIAAgAykAGDcAGCAAIAMpACA3ACAgACADKQAoNwAoIAdBMUgNASAAIAdqIQQgA0EQaiEDIABBMGohAANAIAAgAykAIDcAACAAIAMpACg3AAggACADKQAwNwAQIAAgAykAODcAGCADQSBqIQMgAEEgaiIAIARJDQALDAELIAMgC00EQCAAIAMpAAA3AAAgACADKQAINwAIIAAgAykAEDcAECAAIAMpABg3ABggACALIANrIgVqIQQgBUEhTgRAIABBIGohAANAIAAgAykAIDcAACAAIAMpACg3AAggACADKQAwNwAQIAAgAykAODcAGCADQSBqIQMgAEEgaiIAIARJDQALCyALIQMgBCEACyADIAZPDQBBACEFIAMhBCAGIANrQQdxIgkEQANAIAAgBC0AADoAACAAQQFqIQAgBEEBaiEEIAVBAWoiBSAJRw0ACwsgAyAGa0F4Sw0AA0AgACAELQAAOgAAIAAgBC0AAToAASAAIAQtAAI6AAIgACAELQADOgADIAAgBC0ABDoABCAAIAQtAAU6AAUgACAELQAGOgAGIAAgBC0ABzoAByAAQQhqIQAgBEEIaiIEIAZHDQALCyABIAEoAgwgB2o2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CiAbIAobNgIAIAcgGyAHGyEICyACIAg2AgQgDiADawufbgItfwd+IAMgACgCBCINayAEaiIGQQEgACgCdHQiBWsgACgCDCIHIAYgB2sgBUsbIg4gACgCcCIGKAIEIhQgBigCACIVa2ohFiADIBQgBigCDCIcaiIZIBUgAyANIA5qIhBrakZqIQUgAyAEaiILQQhrIRogAigCBCEHIAIoAgAhBCAAKAIoIRsgACgCICEXIAYoAighICAGKAIgIR4CQAJAAkACQAJAIAAoAoQBQQVrDgMDAgEACyAFIBpPDQMgFCAWayEYIAtBIGshDyALQQFrIR0gC0EDayEMQSAgBigCeGshIUEgIAAoAnhrIRNBwAAgBigCfGutITJBwAAgACgCfGutITMDQCAXIAUpAAAiNELjyJW9y5vvjU9+IjUgM4inQQJ0aiIAKAIAIREgGyA0p0Gx893xeWwiCCATdkECdGoiBigCACEKIAYgBSANayISNgIAIAAgEjYCAAJAAkACQAJAIBJBAWoiCSAEayIAIA5rQXxLDQAgFCAAIBZraiAAIA1qIAAgDkkiABsiBigAACAFKAABRw0AIAVBBWogBkEEaiALIBUgCyAAGyAQEBYiCkEBaiERIAVBAWoiBiADayEJIAEoAgwhAAJAAkAgBiAPTQRAIAAgAykAADcAACAAIAMpAAg3AAggASgCDCEAIAlBEE0EQCABIAAgCWo2AgwgASgCBCEDDAMLIAAgAykAEDcAECAAIAMpABg3ABggACADKQAgNwAgIAAgAykAKDcAKCAJQTFIDQEgACAJaiEIIANBEGohAyAAQTBqIQUDQCAFIAMpACA3AAAgBSADKQAoNwAIIAUgAykAMDcAECAFIAMpADg3ABggA0EgaiEDIAVBIGoiBSAISQ0ACwwBCyADIA9NBEAgACADKQAANwAAIAAgAykACDcACCAAIAMpABA3ABAgACADKQAYNwAYIAAgDyADayIfaiEIIB9BIU4EQCAAQSBqIQADQCAAIAMpACA3AAAgACADKQAoNwAIIAAgAykAMDcAECAAIAMpADg3ABggA0EgaiEDIABBIGoiACAISQ0ACwsgDyEDIAghAAsgAyAGTw0AIAUgA2shIkEAIQUgBiADa0EHcSIfBEADQCAAIAMtAAA6AAAgAEEBaiEAIANBAWohAyAFQQFqIgUg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IAMpAABC48iVvcub741PfiAziKdBAnRqIAU2AgAgBCEIIAYhByAJQQRqIANqIgMhBSADIBpNDQEMAgsLIAQhByAGIQQgAyEFCyAFIBpJDQALDAMLIAUgGk8NAiAUIBZrIR0gC0EgayEPIAtBAWshESALQQNrIRJBwAAgBigCeGutITdBwAAgBigCfGutITVBwAAgACgCeGutITRBwAAgACgCfGutITMDQCAXIAUpAAAiMkLjyJW9y5vvjU9+IjYgM4inQQJ0aiIAKAIAIQogGyAyQoDGlf3Lm++NT34iOCA0iKdBAnRqIgYoAgAhCSAGIAUgDWsiEzYCACAAIBM2AgACQAJAAkACQCATQQFqIgwgBGsiACAOa0F8Sw0AIBQgACAWa2ogACANaiAAIA5JIgAbIgYoAAAgBSgAAUcNACAFQQVqIAZBBGogCyAVIAsgABsgEBAWIgxBAWohCiAFQQFqIgYgA2shCSABKAIMIQACQAJAIAYgD00EQCAAIAMpAAA3AAAgACADKQAINwAIIAEoAgwhACAJQRBNBEAgASAAIAlqNgIMIAEoAgQhAwwDCyAAIAMpABA3ABAgACADKQAYNwAYIAAgAykAIDcAICAAIAMpACg3ACggCUExSA0BIAAgCWohCCADQRBqIQMgAEEwaiEFA0AgBSADKQAgNwAAIAUgAykAKDcACCAFIAMpADA3ABAgBSADKQA4NwAYIANBIGohAyAFQSBqIgUgCEkNAAsMAQsgAyAPTQRAIAAgAykAADcAACAAIAMpAAg3AAggACADKQAQNwAQIAAgAykAGDcAGCAAIA8gA2siGGohCCAYQSFOBEAgAEEgaiEAA0AgACADKQAgNwAAIAAgAykAKDcACCAAIAMpADA3ABAgACADKQA4NwAYIANBIGohAyAAQSBqIgAgCEkNAAsLIA8hAyAIIQALIAMgBk8NACAFIANrISZBACEFIAYgA2tBB3EiGARAA0AgACADLQAAOgAAIABBAWohACADQQFqIQMgBUEBaiIFIBhHDQALCyAmQQdJDQADQCAAIAMtAAA6AAAgACADLQABOgABIAAgAy0AAjoAAiAAIAMtAAM6AAMgACADLQAEOgAEIAAgAy0ABToABSAAIAMtAAY6AAYgACADLQAHOgAHIABBCGohACADQQhqIgMgBkcNAAsLIAEgASgCDCAJ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ASAEIAlqIQAgA0EQaiEDIARBMGohBQNAIAUgAykAIDcAACAFIAMpACg3AAggBSADKQAwNwAQIAUgAykAODcAGCADQSBqIQMgBUEgaiIFIABJDQALDAELIAMgDE0EQCAFIAMpAAA3AAAgBSADKQAINwAIIAUgAykAEDcAECAFIAMpABg3ABggBSAMIANrIgRqIQAgBEEhTgRAIAVBIGohBQNAIAUgAykAIDcAACAFIAMpACg3AAggBSADKQAwNwAQIAUgAykAODcAGCADQSBqIQMgBUEgaiIFIABJDQALCyAAIQUgDCEDCyADIAZPDQBBACEEIAMhACAGIANrQQdxIgcEQANAIAUgAC0AADoAACAFQQFqIQUgAEEBaiEAIARBAWoiBCAHRw0ACwsgAyAGa0F4Sw0AA0AgBSAALQAAOgAAIAUgAC0AAToAASAFIAAtAAI6AAIgBSAALQADOgADIAUgAC0ABDoABCAFIAAtAAU6AAUgBSAALQAGOgAGIAUgAC0ABzoAByAFQQhqIQUgAEEIaiIAIAZHDQALCyABIAEoAgwgCWo2AgwgASgCBCEDIAlBgIAESQ0AIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTsBBCADIAhBA2o2AgAgCiEHIAghCiARQYCABEkNAwwCCwJAIAAgE08NACAELwAAIAAvAABHDQAgBEECaiEEIABBAmohAAsgACAQSQR/IAAgBC0AACAALQAARmoFIAALIAhrCyILQQFqIREgBiADayEJIAEoAgwhAAJAAkAgBiAMTQRAIAAgAykAADcAACAAIAMpAAg3AAggASgCDCEEIAlBEE0EQCABIAQgCWo2AgwgASgCBCEDDAMLIAQgAykAEDcAECAEIAMpABg3ABggBCADKQAgNwAgIAQgAykAKDcAKCAJQTFIDQEgBCAJaiEAIANBEGohAyAEQTBqIQUDQCAFIAMpACA3AAAgBSADKQAoNwAIIAUgAykAMDcAECAFIAMpADg3ABggA0EgaiEDIAVBIGoiBSAASQ0ACwwBCyADIAxNBEAgACADKQAANwAAIAAgAykACDcACCAAIAMpABA3ABAgACADKQAYNwAYIAAgDCADayIIaiEEIAhBIU4EQCAAQSBqIQADQCAAIAMpACA3AAAgACADKQAoNwAIIAAgAykAMDcAECAAIAMpADg3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LQAAIABBAWsiAC0AAEcEQCAFIQYMAgsgC0EBaiELIAAgF00NASAGIgUgA0sNAAsLIAtBA2shESAGIANrIQkgASgCDCEFAkACQCAGIAxNBEAgBSADKQAANwAAIAUgAykACDcACCABKAIMIQQgCUEQTQRAIAEgBCAJajYCDCABKAIEIQMMAwsgBCADKQAQNwAQIAQgAykAGDcAGCAEIAMpACA3ACAgBCADKQAoNwAoIAlBMUgNASAEIAlqIQAgA0EQaiEDIARBMGohBQNAIAUgAykAIDcAACAFIAMpACg3AAggBSADKQAwNwAQIAUgAykAODcAGCADQSBqIQMgBUEgaiIFIABJDQALDAELIAMgDE0EQCAFIAMpAAA3AAAgBSADKQAINwAIIAUgAykAEDcAECAFIAMpABg3ABggBSAMIANrIgRqIQAgBEEhTgRAIAVBIGohBQNAIAUgAykAIDcAACAFIAMpACg3AAggBSADKQAwNwAQIAUgAykAODcAGCADQSBqIQMgBUEgaiIFIABJDQALCyAAIQUgDCEDCyADIAZPDQBBACEEIAMhACAGIANrQQdxIgcEQANAIAUgAC0AADoAACAFQQFqIQUgAEEBaiEAIARBAWoiBCAHRw0ACwsgAyAGa0F4Sw0AA0AgBSAALQAAOgAAIAUgAC0AAToAASAFIAAtAAI6AAIgBSAALQADOgADIAUgAC0ABDoABCAFIAAtAAU6AAUgBSAALQAGOgAGIAUgAC0ABzoAByAFQQhqIQUgAEEIaiIAIAZHDQALCyABIAEoAgwgCWo2AgwgASgCBCEDIAlBgIAESQ0AIAFBATYCJCABIAMgASgCAGtBA3U2AigLIAMgCTsBBCADIAhBA2o2AgAgCiEHIAghCiARQYCABEkNAwwCCwJAIAAgE08NACAELwAAIAAvAABHDQAgBEECaiEEIABBAmohAAsgACAQSQR/IAAgBC0AACAALQAARmoFIAALIAhrCyILQQFqIREgBiADayEJIAEoAgwhAAJAAkAgBiAMTQRAIAAgAykAADcAACAAIAMpAAg3AAggASgCDCEEIAlBEE0EQCABIAQgCWo2AgwgASgCBCEDDAMLIAQgAykAEDcAECAEIAMpABg3ABggBCADKQAgNwAgIAQgAykAKDcAKCAJQTFIDQEgBCAJaiEAIANBEGohAyAEQTBq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ACgCmC1qIAI6AAAgACACQQJ0aiICQZQBaiACLwGUAUEBajsBACAAIAAoAnRBAWs2AnQgACAAKAJsQQFqIgI2AmwgACgCoC0gACgCnC1BAWtHDQELQQAhBCAAIAAoAlwiA0EATgR/IAAoAjggA2oFIAQLIAIgA2tBABAcIAAgACgCbDYCXAJAAn8gACgCACIDKAIcIgIoArwtIgRBEEYEQCACIAIoAhQiBEEBajYCFCAEIAIoAghqIAItALgtOgAAIAIgAigCFCIEQQFqNgIUIAQgAigCCGogAkG5LWotAAA6AAAgAkEAOwG4LUEADAELIARBCEgNASACIAIoAhQiBEEBajYCFCAEIAIoAghqIAItALgtOgAAIAIgAkG5LWotAAA7AbgtIAIoArwtQQhrCyEEIAIgBDYCvC0LAkAgAigCFCIEIAMoAhAiBSAEIAVJGyIERQ0AIAMoAgwgAigCECAEEBcaIAMgAygCDCAEajYCDCACIAIoAhAgBGo2AhAgAyADKAIUIARqNgIUIAMgAygCECAEazYCECACIAIoAhQiAyAEazYCFCADIARHDQAgAiACKAIINgIQCyAAKAIAKAIQDQALQQAPCyAAQQIgACgCbCICIAJBAk8bNgK0LSABQQRGBEBBACEFIAAgACgCXCIBQQBOBH8gACgCOCABagUgBQsgAiABa0EBEBwgACAAKAJsNgJcAkACfyAAKAIAIgIoAhwiASgCvC0iA0EQRgRAIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAS0AuC06AAAgASABKAIUIgNBAWo2AhQgAyABKAIIaiABQbktai0AADoAACABQQA7AbgtQQAMAQsgA0EISA0BIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAS0AuC06AAAgASABQbktai0AADsBuC0gASgCvC1BCGsLIQQgASAENgK8LQsCQCABKAIUIgMgAigCECIEIAMgBEkbIgNFDQAgAigCDCABKAIQIAMQFxogAiACKAIMIANqNgIMIAEgASgCECADajYCECACIAIoAhQgA2o2AhQgAiACKAIQIANrNgIQIAEgASgCFCICIANrNgIUIAIgA0cNACABIAEoAgg2AhALQQNBAiAAKAIAKAIQGw8LAkAgACgCoC1FDQBBACEFIAAgACgCXCIBQQBOBH8gACgCOCABagUgBQsgAiABa0EAEBwgACAAKAJsNgJcAkACfyAAKAIAIgIoAhwiASgCvC0iA0EQRgRAIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAS0AuC06AAAgASABKAIUIgNBAWo2AhQgAyABKAIIaiABQbktai0AADoAACABQQA7AbgtQQAMAQsgA0EISA0BIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAS0AuC06AAAgASABQbktai0AADsBuC0gASgCvC1BCGsLIQQgASAENgK8LQsCQCABKAIUIgMgAigCECIEIAMgBEkbIgNFDQAgAigCDCABKAIQIAMQFxogAiACKAIMIANqNgIMIAEgASgCECADajYCECACIAIoAhQgA2o2AhQgAiACKAIQIANrNgIQIAEgASgCFCICIANrNgIUIAIgA0cNACABIAEoAgg2AhALIAAoAgAoAhANAEEADwtBAQuKDQEFf0H//wMgACgCDEEFayICIAJB//8DTxshBgJAA0AgACgCdCICQQFNBEAgABArIAAoAnQiAiABckUEQEEADwsgAkUNAgsgAEEANgJ0IAAgACgCbCACaiICNgJsIAJBACAAKAJcIgQgBmoiAyACSxsEfyACBSAAIAM2AmwgACACIANrNgJ0QQAhAiAAIARBAE4EfyAAKAI4IARqBSACCyAGQQAQHCAAIAAoAmw2AlwCQAJ/IAAoAgAiBCgCHCICKAK8LSIDQRBGBEAgAiACKAIUIgNBAWo2AhQgAyACKAIIaiACLQC4LToAACACIAIoAhQiA0EBajYCFCADIAIoAghqIAJBuS1qLQAAOgAAIAJBADsBuC1BAAwBCyADQQhIDQEgAiACKAIUIgNBAWo2AhQgAyACKAIIaiACLQC4LToAACACIAJBuS1qLQAAOwG4LSACKAK8LUEIawshAyACIAM2ArwtCwJAIAIoAhQiAyAEKAIQIgUgAyAFSRsiA0UNACAEKAIMIAIoAhAgAxAXGiAEIAQoAgwgA2o2AgwgAiACKAIQIANqNgIQIAQgBCgCFCADajYCFCAEIAQoAhAgA2s2AhAgAiACKAIUIgQgA2s2AhQgAyAERw0AIAIgAigCCDYCEAsgACgCACgCEEUEQEEADwsgACgCXCEEIAAoAmwLIARrIgIgACgCLEGGAmtJDQBBACEDIAAgBEEATgR/IAAoAjggBGoFIAML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IAYhACAIDAELIAgtAAEgBnQgB2ohByAIQQFqIAIgBkEIaiIATQ0AGiAILQACIAB0IAdqIQcgBkEQaiEAIAhBAmoLIQogB0F/IAJ0QX9zcSEIIAAgAmshBiAHIAJ2IQcgCCAMaiINIAQgH2siAEsEQAJAIA0gAGsiAyAmTQ0AIAUoAsA3RQ0AQR0hCwwCCyALRQRAIAkgIiADa2ohAiABIANNDQogCCATaiAMaiAEayEMQQAhCCADQQdxIhRFDQMgAyEAA0AgBCACLQABOgABIABBAWshACAEQQFqIQQgAkEBaiECIAhBAWoiCCAURw0ACwwICyADIAtLBEAgCSAjIANraiECIAEgAyALayIDTQ0KIAggIGogDGogBGshDEEAIQggA0EHcSIURQ0EIAMhAANAIAQgAi0AAToAASAAQQFrIQAgBEEBaiEEIAJBAWohAiAIQQFqIgggFEcNAAsMBwsgCSALIANraiECIAEgA00NCSAIIBNqIAxqIARrIQxBACEIIANBB3EiFEUNBCADIQADQCAEIAItAAE6AAEgAEEBayEAIARBAWohBCACQQFqIQIgCEEBaiIIIBRHDQALDAULIAQgDWshCANAIAQiACAIIgItAAE6AAEgBCAILQACOgACIAQgCC0AAzoAAyAEQQNqIQQgCEEDaiEIIAFBA2siAUECSw0ACyABRQ0KIAAgAi0ABDoABCABQQFGBEAgAEEEaiEEDAsLIAAgAi0ABToABSAAQQVqIQQMCgsgBSALNgIADAsLIAMhAAwECyADIQAMAgsgAyEACyAMQQdJDQIDQCAEIAItAAE6AAEgBCACLQACOgACIAQgAi0AAzoAAyAEIAItAAQ6AAQgBCACLQAFOgAFIAQgAi0ABjoABiAEIAItAAc6AAcgBCACLQAIOgAIIARBCGohBCACQQhqIQIgAEEIayIADQALDAILIAxBB08EQANAIAQgAi0AAToAASAEIAItAAI6AAIgBCACLQADOgADIAQgAi0ABDoABCAEIAItAAU6AAUgBCACLQAGOgAGIAQgAi0ABzoAByAEIAItAAg6AAggBEEIaiEEIAJBCGohAiAAQQhrIgANAAsLIAsgASADayIBTwRAIAkhAgwDC0EAIQACfyAQBEAgCSECA0AgBCACLQABOgABIARBAWohBCACQQFqIQIgAEEBaiIAIBBH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QR5JDQoDQCAAIAMtAAA6AAAgACABLQAAOgABIAAgAS0AAToAAiAAIAEtAAI6AAMgACABLQADOgAEIAAgAS0ABDoABSAAIAEtAAU6AAYgACABLQAGOgAHIAAgAS0ABzoACCAAIAEtAAg6AAkgACABLQAJOgAKIAAgAS0ACjoACyAAIAEtAAs6AAwgACABLQAMOgANIAAgAS0ADToADiAAIAEtAA46AA8gACABKQAPNwAQIAAgASgAFzYAGCAAIAEvABs7ABwgAEEeaiEAIARBHmsiBEEdSw0ACwwKCyAEQRxJDQkDQCAAIAMtAAA6AAAgACABLQAAOgABIAAgAS0AAToAAiAAIAEtAAI6AAMgACABLQADOgAEIAAgAS0ABDoABSAAIAEtAAU6AAYgACABLQAGOgAHIAAgAS0ABzoACCAAIAEtAAg6AAkgACABLQAJOgAKIAAgAS0ACjoACyAAIAEtAAs6AAwgACABLQAMOgANIAAgAS0ADToADiAAIAEtAA46AA8gACABKQAPNwAQIAAgASgAFzYAGCAAQRxqIQAgBEEcayIEQRtLDQALDAkLIARBGkkNCANAIAAgAy0AADoAACAAIAEtAAA6AAEgACABLQABOgACIAAgAS0AAjoAAyAAIAEtAAM6AAQgACABLQAEOgAFIAAgAS0ABToABiAAIAEtAAY6AAcgACABLQAHOgAIIAAgAS0ACDoACSAAIAEtAAk6AAogACABLQAKOgALIAAgAS0ACzoADCAAIAEtAAw6AA0gACABLQANOgAOIAAgAS0ADjoADyAAIAEpAA83ABAgACABLwAXOwAYIABBGmohACAEQRprIgRBGUsNAAsMCAsgBEEYSQ0HA0AgACADLQAAOgAAIAAgAS0AADoAASAAIAEtAAE6AAIgACABLQACOgADIAAgAS0AAzoABCAAIAEtAAQ6AAUgACABLQAFOgAGIAAgAS0ABjoAByAAIAEtAAc6AAggACABLQAIOgAJIAAgAS0ACToACiAAIAEtAAo6AAsgACABLQALOgAMIAAgAS0ADDoADSAAIAEtAA06AA4gACABLQAOOgAPIAAgASkADzcAECAAQRhqIQAgBEEYayIEQRdLDQALDAcLIARBFkkNBgNAIAAgAy0AADoAACAAIAEtAAA6AAEgACABLQABOgACIAAgAS0AAjoAAyAAIAEtAAM6AAQgACABLQAEOgAFIAAgAS0ABToABiAAIAEtAAY6AAcgACABLQAHOgAIIAAgAS0ACDoACSAAIAEtAAk6AAogACABLQAKOgALIAAgAS0ACzoADCAAIAEtAAw6AA0gACABLQANOgAOIAAgAS0ADjoADyAAIAEoAA82ABAgACABLwATOwAUIABBFmohACAEQRZrIgRBFUsNAAsMBgsgBEEUSQ0FA0AgACADLQAAOgAAIAAgAS0AADoAASAAIAEtAAE6AAIgACABLQACOgADIAAgAS0AAzoABCAAIAEtAAQ6AAUgACABLQAFOgAGIAAgAS0ABjoAByAAIAEtAAc6AAggACABLQAIOgAJIAAgAS0ACToACiAAIAEtAAo6AAsgACABLQALOgAMIAAgAS0ADDoADSAAIAEtAA06AA4gACABLQAOOgAPIAAgASgADzYAECAAQRRqIQAgBEEUayIEQRNLDQALDAULIARBEkkNBANAIAAgAy0AADoAACAAIAEtAAA6AAEgACABLQABOgACIAAgAS0AAjoAAyAAIAEtAAM6AAQgACABLQAEOgAFIAAgAS0ABToABiAAIAEtAAY6AAcgACABLQAHOgAIIAAgAS0ACDoACSAAIAEtAAk6AAogACABLQAKOgALIAAgAS0ACzoADCAAIAEtAAw6AA0gACABLQANOgAOIAAgAS0ADjoADyAAIAEvAA87ABAgAEESaiEAIARBEmsiBEERSw0ACwwECwNAIAAgAy0AADoAACAAIAMtAAE6AAEgACADLQACOgACIAAgAy0AAzoAAyAAIAMtAAQ6AAQgACADLQAFOgAFIAAgAy0ABjoABiAAIAMtAAc6AAcgAEEIaiEAIANBCGohAyAEQQhrIgQNAAsgBgwECyAEQRBPDQEMAgsgACAJQQFqIgZqIA1LDQUgAyAGaiIBIAhLDQUgACADIAYQJyEAIAEgCE8NA0EBIQsgAS0AACEJIAFBAWoMAgsDQCAAIAMtAAA6AAAgACABLQAAOgABIAAgAS0AAToAAiAAIAEtAAI6AAMgACABLQADOgAEIAAgAS0ABDoABSAAIAEtAAU6AAYgACABLQAGOgAHIAAgAS0ABzoACCAAIAEtAAg6AAkgACABLQAJOgAKIAAgAS0ACjoACyAAIAEtAAs6AAwgACABLQAMOgANIAAgAS0ADToADiAA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FBEKACABLQA1BEAgAUEDNgIsIAEtADRFDQEMAwsgAUEENgIsCyABIAI2AhQgASABKAIoQQFqNgIoIAEoAiRBAUcNASABKAIYQQJHDQEgAUEBOgA2DwsgACgCCCIAIAEgAiADIAQgACgCACgCGBELAAsLNwAgACABKAIIIAUQHwRAIAEgAiADIAQQZA8LIAAoAggiACABIAIgAyAEIAUgACgCACgCFBEKAAudAQECfyMAQUBqIgMkAAJ/QQEgACABQQAQHw0AGkEAIAFFDQAaQQAgAUGU2gEQZSIBRQ0AGiADQQxqQQBBNBAYGiADQQE2AjggA0F/NgIUIAMgADYCECADIAE2AgggASADQQhqIAIoAgBBASABKAIAKAIcEQkAIAMoAiAiAEEBRgRAIAIgAygCGDYCAAsgAEEBRgshBCADQUBrJAAgBAsKACAAIAFBABAfCwYAEKEBAAsFABAHAAsEAEIACwQAQQALRQECfyAAKAI8IQQjAEEQayIAJAAgBCABpyABQiCIpyACQf8BcSAAQQhqEA0QbCECIAApAwghASAAQRBqJABCfyABIAIbC70CAQh/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQYgA0EQaiEBAn8DQAJAAkACQCAAKAI8IAEgBiADQQxqEBEQbEUEQCAFIAMoAgwiB0YNASAHQQBODQIMAwsgBUF/Rw0CCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAwsgASAHIAEoAgQiCEsiCUEDdGoiBCAHIAhBACAJG2siCCAEKAIAajYCACABQQxBBCAJG2oiASABKAIAIAhrNgIAIAUgB2shBSAGIAlrIQYgBCEBDAELCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAZBAkYNABogAiABKAIEawshCiADQSBqJAAgCgsJACAAKAI8EBILmAEBA38CfwJAAkAgACgCBCICIgBBA3FFDQBBACAALQAARQ0CGgNAIABBAWoiAEEDcUUNASAALQAADQALDAELA0AgACIBQQRqIQAgASgCACIDQX9zIANBgYKECGtxQYCBgoR4cUUNAAsDQCABIgBBAWohASAALQAADQALCyAAIAJrC0EBaiIAEB0i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dzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AGx6NABjb21wcmVzc2lvbiBzdXBwb3J0LiAgUGxlYXNlIHVzZSBvbmUgaGF2aW5nIGl0LgAobnVsbCkARXJyb3IuICBudGhyZWFkcyBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gQkxPU0NfTUFYX1RIUkVBRFMgKCVkKQBFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSEAQmxvc2MgaGFzIG5vdCBiZWVuIGNvbXBpbGVkIHdpdGggJyVzJyAASW5wdXQgYnVmZmVyIHNpemUgY2Fubm90IGV4Y2VlZCAlZCBieXRlcwoACUVycm9yIGRldGFpbDogJXMKAEVSUk9SOyByZXR1cm4gY29kZSBmcm9tIHB0aHJlYWRf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AAUAAAAFAAAAMAAAAAcAAAAXAAAAFwAAABYAAAAFAAAABAAAAEAAAAAHAAAAFwAAABcAAAAWAAAABgAAAAMAAABAAAAACAAAABcAAAAYAAAAFgAAAAcAAAADAAAAAAEAAAkAAAAZAAAAGQAAABcAAAAHAAAAAwAAAAABAAAJAAAAGgAAABoAAAAYAAAABwAAAAMAAAAAAgAACQAAABsAAAAbAAAAGQAAAAkAAAADAAAA5wMAAAkAAAASAAAADAAAAA0AAAABAAAABQAAAAEAAAABAAAAEgAAAA0AAAAOAAAAAQAAAAYAAAAAAAAAAQAAABIAAAAOAAAADgAAAAEAAAAFAAAAAAAAAAIAAAASAAAAEAAAABAAAAABAAAABAAAAAAAAAACAAAAEgAAABAAAAARAAAAAgAAAAUAAAACAAAAAwAAABIAAAASAAAAEgAAAAMAAAAFAAAAAgAAAAMAAAASAAAAEgAAABMAAAADAAAABQAAAAQAAAAEAAAAEgAAABIAAAATAAAABAAAAAQAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABgAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAUAAAAEAAAADAAAAAYAAAASAAAAEwAAABMAAAAHAAAABAAAAAwAAAAGAAAAEgAAABIAAAATAAAABAAAAAQAAAAQAAAABwAAABIAAAASAAAAEwAAAAQAAAADAAAAIAAAAAcAAAASAAAAEgAAABMAAAAGAAAAAwAAAIAAAAAHAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACAAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAgAAAASAAAAEwAAABMAAAAGAAAAAwAAAIAAAAAJAAAAEgAAABMAAAATAAAACAAAAAMAAAAAAQAACQAAABIAAAATAAAAEwAAAAoAAAADAAAAAAIAAAkAAAASAAAAEwAAABMAAAAMAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADQAAAAMAAADnAwAACQAAABEAAAAMAAAADAAAAAEAAAAFAAAAAQAAAAEAAAARAAAADAAAAA0AAAABAAAABgAAAAAAAAABAAAAEQAAAA0AAAAPAAAAAQAAAAUAAAAAAAAAAQAAABEAAAAPAAAAEAAAAAIAAAAFAAAAAAAAAAIAAAARAAAAEQAAABEAAAACAAAABAAAAAAAAAACAAAAEQAAABAAAAARAAAAAwAAAAQAAAACAAAAAwAAABEAAAARAAAAEQAAAAMAAAAEAAAABAAAAAQAAAARAAAAEQAAABEAAAADAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABAAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAGAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABQAAAAQAAAAIAAAABgAAABEAAAASAAAAEQAAAAcAAAAEAAAADAAAAAYAAAARAAAAEgAAABEAAAADAAAABAAAAAwAAAAHAAAAEQAAABIAAAARAAAABAAAAAMAAAAgAAAABwAAABEAAAASAAAAEQAAAAYAAAADAAAAAAEAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAIAAAAAIAAAAEQAAABIAAAARAAAACAAAAAMAAAAAAQAACAAAABEAAAASAAAAEQAAAAoAAAADAAAAAAIAAAgAAAARAAAAEgAAABEAAAAFAAAAAwAAAAABAAAJAAAAEQAAABIAAAARAAAABwAAAAMAAAAAAgAACQAAABEAAAASAAAAEQAAAAkAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAALAAAAAwAAAOcDAAAJAAAADgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAAA4AAAAOAAAADwAAAAEAAAAFAAAAAAAAAAEAAAAOAAAADgAAAA8AAAABAAAABAAAAAAAAAABAAAADgAAAA4AAAAPAAAAAgAAAAQAAAAAAAAAAgAAAA4AAAAOAAAADgAAAAQAAAAEAAAAAgAAAAMAAAAOAAAADgAAAA4AAAADAAAABAAAAAQAAAAEAAAADgAAAA4AAAAOAAAABAAAAAQAAAAIAAAABQAAAA4AAAAOAAAADgAAAAYAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAIAAAABAAAAAgAAAAFAAAADgAAAA8AAAAOAAAABQAAAAQAAAAIAAAABgAAAA4AAAAPAAAADgAAAAkAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAADAAAABAAAAAwAAAAHAAAADgAAAA8AAAAOAAAABAAAAAMAAAAYAAAABwAAAA4AAAAPAAAADgAAAAUAAAADAAAAIAAAAAgAAAAOAAAADwAAAA8AAAAGAAAAAwAAAEAAAAAIAAAADgAAAA8AAAAPAAAABwAAAAMAAAAAAQAACAAAAA4AAAAPAAAADwAAAAUAAAADAAAAMAAAAAkAAAAOAAAADwAAAA8AAAAGAAAAAwAAAIAAAAAJAAAADgAAAA8AAAAPAAAABwAAAAMAAAAAAQAACQAAAA4AAAAPAAAADwAAAAgAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAACAAAJAAAADgAAAA8AAAAPAAAACQAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAoAAAADAAAA5wMAAAkAAAAEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AEG0nAELmQhrOAcADbIHAJzyBwBwZAgAYK4KALBxCwAwqgwAAAAAAAAIAAAABwAAagYAAAAGAACtBQAAagUAADEFAAAABQAA1AQAAK0EAACKBAAAagQAAEwEAAAxBAAAFwQAAAAEAADpAwAA1AMAAMADAACtAwAAmwMAAIoDAAB5AwAAagMAAFsDAABMAwAAPgMAADEDAAAkAwAAFwMAAAsDAAAAAwAA9AIAAOkCAADeAgAA1AIAAMoCAADAAgAAtgIAAK0CAACkAgAAmwIAAJICAACKAgAAggIAAHkCAAByAgAAagIAAGICAABbAgAAUwIAAEwCAABFAgAAPgIAADcCAAAxAgAAKgIAACQCAAAeAgAAFwIAABECAAALAgAABQIAAAACAAD6AQAA9AEAAO8BAADpAQAA5AEAAN4BAADZAQAA1AEAAM8BAADK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AAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAHAAAACAAAAAkAAAAKAAAACwAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAA0bwAAkF4AAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAAA0bwAA2F4AAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAAA0bwAAIF8AAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAANG8AAGhfAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVOU185YWxsb2NhdG9ySURpRUVFRQAAADRvAAC0XwAATjEwZW1zY3JpcHRlbjN2YWxFAAA0bwAAAGAAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAANG8AABxgAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAADRvAABEYAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAAA0bwAAbGAAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAANG8AAJRgAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAADRvAAC8YAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAAA0bwAA5GAAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAANG8AAAxhAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAADRvAAA0YQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAAA0bwAAXGEAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAANG8AAIRhAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAADRvAACsYQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAA0bwAA1GEAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWRFRQAANG8AAPxhAABObyBlcnJvciBpbmZvcm1hdGlvbgBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBS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\");\n\n// src/blosc.ts\nvar COMPRESSORS = /* @__PURE__ */ new Set([\"blosclz\", \"lz4\", \"lz4hc\", \"snappy\", \"zlib\", \"zstd\"]);\nvar emscriptenModule;\nvar init = () => blosc_codec_default({ noInitialRun: true, wasmBinary: blosc_codec_default2 });\nvar Blosc = class Blosc2 {\n  static codecId = \"blosc\";\n  static COMPRESSORS = [...COMPRESSORS];\n  static NOSHUFFLE = 0 /* NOSHUFFLE */;\n  static SHUFFLE = 1 /* SHUFFLE */;\n  static BITSHUFFLE = 2 /* BITSHUFFLE */;\n  static AUTOSHUFFLE = -1 /* AUTOSHUFFLE */;\n  clevel;\n  cname;\n  shuffle;\n  blocksize;\n  constructor(clevel = 5, cname = \"lz4\", shuffle = 1 /* SHUFFLE */, blocksize = 0) {\n    if (clevel < 0 || clevel > 9) {\n      throw new Error(`Invalid compression level: '${clevel}'. It should be between 0 and 9`);\n    }\n    if (!COMPRESSORS.has(cname)) {\n      throw new Error(\n        `Invalid compressor '${cname}'. Valid compressors include\n        'blosclz', 'lz4', 'lz4hc','snappy', 'zlib', 'zstd'.`\n      );\n    }\n    if (shuffle < -1 || shuffle > 2) {\n      throw new Error(\n        `Invalid shuffle ${shuffle}. Must be one of 0 (NOSHUFFLE),\n        1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE).`\n      );\n    }\n    this.blocksize = blocksize;\n    this.clevel = clevel;\n    this.cname = cname;\n    this.shuffle = shuffle;\n  }\n  static fromConfig({ blocksize, clevel, cname, shuffle }) {\n    return new Blosc2(clevel, cname, shuffle, blocksize);\n  }\n  async encode(data) {\n    if (!emscriptenModule) {\n      emscriptenModule = init();\n    }\n    const module = await emscriptenModule;\n    const view = module.compress(data, this.cname, this.clevel, this.shuffle, this.blocksize);\n    const result = new Uint8Array(view);\n    module.free_result();\n    return result;\n  }\n  async decode(data, out) {\n    if (!emscriptenModule) {\n      emscriptenModule = init();\n    }\n    const module = await emscriptenModule;\n    const view = module.decompress(data);\n    const result = new Uint8Array(view);\n    module.free_result();\n    if (out !== void 0) {\n      out.set(result);\n      return out;\n    }\n    return result;\n  }\n};\nvar blosc_default = Blosc;\nexport {\n  blosc_default as default\n};\n","import {\n  __toBinary\n} from \"./chunk-INHXZS53.js\";\n\n// codecs/lz4/lz4_codec.js\nvar lz4_codec = (() => {\n  var _scriptDir = typeof document !== \"undefined\" && document.currentScript ? document.currentScript.src : void 0;\n  return function(moduleArg = {}) {\n    var f = moduleArg, aa, t;\n    f.ready = new Promise((a, b) => {\n      aa = a;\n      t = b;\n    });\n    var ba = Object.assign({}, f), u = f.printErr || console.error.bind(console);\n    Object.assign(f, ba);\n    ba = null;\n    var v;\n    f.wasmBinary && (v = f.wasmBinary);\n    \"object\" != typeof WebAssembly && x(\"no native wasm support detected\");\n    var z, da = false, C, D, E, F, G, H, ea, fa;\n    function ha() {\n      var a = z.buffer;\n      f.HEAP8 = C = new Int8Array(a);\n      f.HEAP16 = E = new Int16Array(a);\n      f.HEAPU8 = D = new Uint8Array(a);\n      f.HEAPU16 = F = new Uint16Array(a);\n      f.HEAP32 = G = new Int32Array(a);\n      f.HEAPU32 = H = new Uint32Array(a);\n      f.HEAPF32 = ea = new Float32Array(a);\n      f.HEAPF64 = fa = new Float64Array(a);\n    }\n    var ia = [], ja = [], ka = [];\n    function la() {\n      var a = f.preRun.shift();\n      ia.unshift(a);\n    }\n    var I = 0, J = null, L = null;\n    function x(a) {\n      f.onAbort?.(a);\n      a = \"Aborted(\" + a + \")\";\n      u(a);\n      da = true;\n      a = new WebAssembly.RuntimeError(a + \". Build with -sASSERTIONS for more info.\");\n      t(a);\n      throw a;\n    }\n    var ma = (a) => a.startsWith(\"data:application/octet-stream;base64,\"), na = (a) => a.startsWith(\"file://\"), M;\n    M = \"lz4_codec.wasm\";\n    if (!ma(M)) {\n      var oa = M;\n      M = f.locateFile ? f.locateFile(oa, \"\") : \"\" + oa;\n    }\n    function pa(a) {\n      return Promise.resolve().then(() => {\n        if (a == M && v)\n          var b = new Uint8Array(v);\n        else\n          throw \"both async and sync fetching of the wasm failed\";\n        return b;\n      });\n    }\n    function qa(a, b, c) {\n      return pa(a).then((d) => WebAssembly.instantiate(d, b)).then((d) => d).then(c, (d) => {\n        u(`failed to asynchronously prepare wasm: ${d}`);\n        x(d);\n      });\n    }\n    function ra(a, b) {\n      var c = M;\n      return v || \"function\" != typeof WebAssembly.instantiateStreaming || ma(c) || na(c) || \"function\" != typeof fetch ? qa(c, a, b) : fetch(c, { credentials: \"same-origin\" }).then((d) => WebAssembly.instantiateStreaming(d, a).then(b, function(e) {\n        u(`wasm streaming compile failed: ${e}`);\n        u(\"falling back to ArrayBuffer instantiation\");\n        return qa(c, a, b);\n      }));\n    }\n    var N = (a) => {\n      for (; 0 < a.length; )\n        a.shift()(f);\n    };\n    function sa(a) {\n      this.D = a - 24;\n      this.K = function(b) {\n        H[this.D + 4 >> 2] = b;\n      };\n      this.J = function(b) {\n        H[this.D + 8 >> 2] = b;\n      };\n      this.F = function(b, c) {\n        this.G();\n        this.K(b);\n        this.J(c);\n      };\n      this.G = function() {\n        H[this.D + 16 >> 2] = 0;\n      };\n    }\n    var ta = 0, ua = 0, va, O = (a) => {\n      for (var b = \"\"; D[a]; )\n        b += va[D[a++]];\n      return b;\n    }, P = {}, Q = {}, R = {}, S, wa = (a) => {\n      throw new S(a);\n    }, T, xa = (a, b) => {\n      function c(l) {\n        l = b(l);\n        if (l.length !== d.length)\n          throw new T(\"Mismatched type converter count\");\n        for (var g = 0; g < d.length; ++g)\n          U(d[g], l[g]);\n      }\n      var d = [];\n      d.forEach(function(l) {\n        R[l] = a;\n      });\n      var e = Array(a.length), h = [], k = 0;\n      a.forEach((l, g) => {\n        Q.hasOwnProperty(l) ? e[g] = Q[l] : (h.push(l), P.hasOwnProperty(l) || (P[l] = []), P[l].push(() => {\n          e[g] = Q[l];\n          ++k;\n          k === h.length && c(e);\n        }));\n      });\n      0 === h.length && c(e);\n    };\n    function ya(a, b, c = {}) {\n      var d = b.name;\n      if (!a)\n        throw new S(`type \"${d}\" must have a positive integer typeid pointer`);\n      if (Q.hasOwnProperty(a)) {\n        if (c.M)\n          return;\n        throw new S(`Cannot register type '${d}' twice`);\n      }\n      Q[a] = b;\n      delete R[a];\n      P.hasOwnProperty(a) && (b = P[a], delete P[a], b.forEach((e) => e()));\n    }\n    function U(a, b, c = {}) {\n      if (!(\"argPackAdvance\" in b))\n        throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n      ya(a, b, c);\n    }\n    function za() {\n      this.B = [void 0];\n      this.H = [];\n    }\n    var V = new za(), Aa = (a) => {\n      a >= V.D && 0 === --V.get(a).I && V.G(a);\n    }, Ba = (a) => {\n      switch (a) {\n        case void 0:\n          return 1;\n        case null:\n          return 2;\n        case true:\n          return 3;\n        case false:\n          return 4;\n        default:\n          return V.F({ I: 1, value: a });\n      }\n    };\n    function Ca(a) {\n      return this.fromWireType(G[a >> 2]);\n    }\n    var Da = (a, b) => {\n      switch (b) {\n        case 4:\n          return function(c) {\n            return this.fromWireType(ea[c >> 2]);\n          };\n        case 8:\n          return function(c) {\n            return this.fromWireType(fa[c >> 3]);\n          };\n        default:\n          throw new TypeError(`invalid float width (${b}): ${a}`);\n      }\n    }, Ga = (a, b) => Object.defineProperty(b, \"name\", { value: a }), Ha = (a) => {\n      for (; a.length; ) {\n        var b = a.pop();\n        a.pop()(b);\n      }\n    };\n    function Ia(a) {\n      for (var b = 1; b < a.length; ++b)\n        if (null !== a[b] && void 0 === a[b].C)\n          return true;\n      return false;\n    }\n    function Ja(a) {\n      var b = Function;\n      if (!(b instanceof Function))\n        throw new TypeError(`new_ called with constructor type ${typeof b} which is not a function`);\n      var c = Ga(b.name || \"unknownFunctionName\", function() {\n      });\n      c.prototype = b.prototype;\n      c = new c();\n      a = b.apply(c, a);\n      return a instanceof Object ? a : c;\n    }\n    var Ka = (a, b) => {\n      if (void 0 === f[a].A) {\n        var c = f[a];\n        f[a] = function() {\n          if (!f[a].A.hasOwnProperty(arguments.length))\n            throw new S(`Function '${b}' called with an invalid number of arguments (${arguments.length}) - expects one of (${f[a].A})!`);\n          return f[a].A[arguments.length].apply(this, arguments);\n        };\n        f[a].A = [];\n        f[a].A[c.L] = c;\n      }\n    }, La = (a, b, c) => {\n      if (f.hasOwnProperty(a)) {\n        if (void 0 === c || void 0 !== f[a].A && void 0 !== f[a].A[c])\n          throw new S(`Cannot register public name '${a}' twice`);\n        Ka(a, a);\n        if (f.hasOwnProperty(c))\n          throw new S(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);\n        f[a].A[c] = b;\n      } else\n        f[a] = b, void 0 !== c && (f[a].O = c);\n    }, Ma = (a, b) => {\n      for (var c = [], d = 0; d < a; d++)\n        c.push(H[b + 4 * d >> 2]);\n      return c;\n    }, Na, Oa = (a, b) => {\n      var c = [];\n      return function() {\n        c.length = 0;\n        Object.assign(c, arguments);\n        if (a.includes(\"j\")) {\n          var d = f[\"dynCall_\" + a];\n          d = c && c.length ? d.apply(null, [b].concat(c)) : d.call(null, b);\n        } else\n          d = Na.get(b).apply(null, c);\n        return d;\n      };\n    }, Pa = (a, b) => {\n      a = O(a);\n      var c = a.includes(\"j\") ? Oa(a, b) : Na.get(b);\n      if (\"function\" != typeof c)\n        throw new S(`unknown function pointer with signature ${a}: ${b}`);\n      return c;\n    }, Qa, Sa = (a) => {\n      a = Ra(a);\n      var b = O(a);\n      W(a);\n      return b;\n    }, Ta = (a, b) => {\n      function c(h) {\n        e[h] || Q[h] || (R[h] ? R[h].forEach(c) : (d.push(h), e[h] = true));\n      }\n      var d = [], e = {};\n      b.forEach(c);\n      throw new Qa(`${a}: ` + d.map(Sa).join([\", \"]));\n    }, Ua = (a) => {\n      a = a.trim();\n      const b = a.indexOf(\"(\");\n      return -1 !== b ? a.substr(0, b) : a;\n    }, Va = (a, b, c) => {\n      switch (b) {\n        case 1:\n          return c ? (d) => C[d >> 0] : (d) => D[d >> 0];\n        case 2:\n          return c ? (d) => E[d >> 1] : (d) => F[d >> 1];\n        case 4:\n          return c ? (d) => G[d >> 2] : (d) => H[d >> 2];\n        default:\n          throw new TypeError(`invalid integer width (${b}): ${a}`);\n      }\n    };\n    function Wa(a) {\n      return this.fromWireType(H[a >> 2]);\n    }\n    for (var Xa = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf8\") : void 0, Ya = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-16le\") : void 0, Za = (a, b) => {\n      var c = a >> 1;\n      for (var d = c + b / 2; !(c >= d) && F[c]; )\n        ++c;\n      c <<= 1;\n      if (32 < c - a && Ya)\n        return Ya.decode(D.subarray(a, c));\n      c = \"\";\n      for (d = 0; !(d >= b / 2); ++d) {\n        var e = E[a + 2 * d >> 1];\n        if (0 == e)\n          break;\n        c += String.fromCharCode(e);\n      }\n      return c;\n    }, $a = (a, b, c) => {\n      c ??= 2147483647;\n      if (2 > c)\n        return 0;\n      c -= 2;\n      var d = b;\n      c = c < 2 * a.length ? c / 2 : a.length;\n      for (var e = 0; e < c; ++e)\n        E[b >> 1] = a.charCodeAt(e), b += 2;\n      E[b >> 1] = 0;\n      return b - d;\n    }, ab = (a) => 2 * a.length, bb = (a, b) => {\n      for (var c = 0, d = \"\"; !(c >= b / 4); ) {\n        var e = G[a + 4 * c >> 2];\n        if (0 == e)\n          break;\n        ++c;\n        65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);\n      }\n      return d;\n    }, cb = (a, b, c) => {\n      c ??= 2147483647;\n      if (4 > c)\n        return 0;\n      var d = b;\n      c = d + c - 4;\n      for (var e = 0; e < a.length; ++e) {\n        var h = a.charCodeAt(e);\n        if (55296 <= h && 57343 >= h) {\n          var k = a.charCodeAt(++e);\n          h = 65536 + ((h & 1023) << 10) | k & 1023;\n        }\n        G[b >> 2] = h;\n        b += 4;\n        if (b + 4 > c)\n          break;\n      }\n      G[b >> 2] = 0;\n      return b - d;\n    }, db = (a) => {\n      for (var b = 0, c = 0; c < a.length; ++c) {\n        var d = a.charCodeAt(c);\n        55296 <= d && 57343 >= d && ++c;\n        b += 4;\n      }\n      return b;\n    }, eb = Array(256), X = 0; 256 > X; ++X)\n      eb[X] = String.fromCharCode(X);\n    va = eb;\n    S = f.BindingError = class extends Error {\n      constructor(a) {\n        super(a);\n        this.name = \"BindingError\";\n      }\n    };\n    T = f.InternalError = class extends Error {\n      constructor(a) {\n        super(a);\n        this.name = \"InternalError\";\n      }\n    };\n    Object.assign(za.prototype, { get(a) {\n      return this.B[a];\n    }, has(a) {\n      return void 0 !== this.B[a];\n    }, F(a) {\n      var b = this.H.pop() || this.B.length;\n      this.B[b] = a;\n      return b;\n    }, G(a) {\n      this.B[a] = void 0;\n      this.H.push(a);\n    } });\n    V.B.push({ value: void 0 }, { value: null }, { value: true }, { value: false });\n    V.D = V.B.length;\n    f.count_emval_handles = () => {\n      for (var a = 0, b = V.D; b < V.B.length; ++b)\n        void 0 !== V.B[b] && ++a;\n      return a;\n    };\n    Qa = f.UnboundTypeError = ((a, b) => {\n      var c = Ga(b, function(d) {\n        this.name = b;\n        this.message = d;\n        d = Error(d).stack;\n        void 0 !== d && (this.stack = this.toString() + \"\\n\" + d.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n      });\n      c.prototype = Object.create(a.prototype);\n      c.prototype.constructor = c;\n      c.prototype.toString = function() {\n        return void 0 === this.message ? this.name : `${this.name}: ${this.message}`;\n      };\n      return c;\n    })(Error, \"UnboundTypeError\");\n    var gb = { n: (a, b, c) => {\n      new sa(a).F(b, c);\n      ta = a;\n      ua++;\n      throw ta;\n    }, o: () => {\n    }, l: (a, b, c, d) => {\n      b = O(b);\n      U(a, { name: b, fromWireType: function(e) {\n        return !!e;\n      }, toWireType: function(e, h) {\n        return h ? c : d;\n      }, argPackAdvance: 8, readValueFromPointer: function(e) {\n        return this.fromWireType(D[e]);\n      }, C: null });\n    }, k: (a, b) => {\n      b = O(b);\n      U(a, { name: b, fromWireType: (c) => {\n        if (!c)\n          throw new S(\"Cannot use deleted val. handle = \" + c);\n        var d = V.get(c).value;\n        Aa(c);\n        return d;\n      }, toWireType: (c, d) => Ba(d), argPackAdvance: 8, readValueFromPointer: Ca, C: null });\n    }, i: (a, b, c) => {\n      b = O(b);\n      U(a, { name: b, fromWireType: (d) => d, toWireType: (d, e) => e, argPackAdvance: 8, readValueFromPointer: Da(b, c), C: null });\n    }, d: (a, b, c, d, e, h, k) => {\n      var l = Ma(b, c);\n      a = O(a);\n      a = Ua(a);\n      e = Pa(d, e);\n      La(a, function() {\n        Ta(`Cannot call ${a} due to unbound types`, l);\n      }, b - 1);\n      xa(l, function(g) {\n        var n = a;\n        var p = a;\n        g = [g[0], null].concat(g.slice(1));\n        var q = e, m = g.length;\n        if (2 > m)\n          throw new S(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n        var r = null !== g[1] && false, y = Ia(g), A = \"void\" !== g[0].name;\n        q = [wa, q, h, Ha, g[0], g[1]];\n        for (var w = 0; w < m - 2; ++w)\n          q.push(g[w + 2]);\n        if (!y)\n          for (w = r ? 1 : 2; w < g.length; ++w)\n            null !== g[w].C && q.push(g[w].C);\n        y = Ia(g);\n        w = g.length;\n        var B = \"\", K = \"\";\n        for (m = 0; m < w - 2; ++m)\n          B += (0 !== m ? \", \" : \"\") + \"arg\" + m, K += (0 !== m ? \", \" : \"\") + \"arg\" + m + \"Wired\";\n        B = `\n        return function (${B}) {\n        if (arguments.length !== ${w - 2}) {\n          throwBindingError('function ${p} called with ' + arguments.length + ' arguments, expected ${w - 2}');\n        }`;\n        y && (B += \"var destructors = [];\\n\");\n        var Ea = y ? \"destructors\" : \"null\", ca = \"throwBindingError invoker fn runDestructors retType classParam\".split(\" \");\n        r && (B += \"var thisWired = classParam['toWireType'](\" + Ea + \", this);\\n\");\n        for (m = 0; m < w - 2; ++m)\n          B += \"var arg\" + m + \"Wired = argType\" + m + \"['toWireType'](\" + Ea + \", arg\" + m + \"); // \" + g[m + 2].name + \"\\n\", ca.push(\"argType\" + m);\n        r && (K = \"thisWired\" + (0 < K.length ? \", \" : \"\") + K);\n        B += (A || k ? \"var rv = \" : \"\") + \"invoker(fn\" + (0 < K.length ? \", \" : \"\") + K + \");\\n\";\n        if (y)\n          B += \"runDestructors(destructors);\\n\";\n        else\n          for (m = r ? 1 : 2; m < g.length; ++m)\n            r = 1 === m ? \"thisWired\" : \"arg\" + (m - 2) + \"Wired\", null !== g[m].C && (B += r + \"_dtor(\" + r + \"); // \" + g[m].name + \"\\n\", ca.push(r + \"_dtor\"));\n        A && (B += \"var ret = retType['fromWireType'](rv);\\nreturn ret;\\n\");\n        let [Fa, hb] = [ca, B + \"}\\n\"];\n        Fa.push(hb);\n        g = Ja(Fa).apply(null, q);\n        p = Ga(p, g);\n        g = b - 1;\n        if (!f.hasOwnProperty(n))\n          throw new T(\"Replacing nonexistant public symbol\");\n        void 0 !== f[n].A && void 0 !== g ? f[n].A[g] = p : (f[n] = p, f[n].L = g);\n        return [];\n      });\n    }, b: (a, b, c, d, e) => {\n      b = O(b);\n      -1 === e && (e = 4294967295);\n      e = (l) => l;\n      if (0 === d) {\n        var h = 32 - 8 * c;\n        e = (l) => l << h >>> h;\n      }\n      var k = b.includes(\"unsigned\") ? function(l, g) {\n        return g >>> 0;\n      } : function(l, g) {\n        return g;\n      };\n      U(a, {\n        name: b,\n        fromWireType: e,\n        toWireType: k,\n        argPackAdvance: 8,\n        readValueFromPointer: Va(b, c, 0 !== d),\n        C: null\n      });\n    }, a: (a, b, c) => {\n      function d(h) {\n        return new e(C.buffer, H[h + 4 >> 2], H[h >> 2]);\n      }\n      var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][b];\n      c = O(c);\n      U(a, { name: c, fromWireType: d, argPackAdvance: 8, readValueFromPointer: d }, { M: true });\n    }, e: (a, b) => {\n      b = O(b);\n      var c = \"std::string\" === b;\n      U(a, { name: b, fromWireType: function(d) {\n        var e = H[d >> 2], h = d + 4;\n        if (c)\n          for (var k = h, l = 0; l <= e; ++l) {\n            var g = h + l;\n            if (l == e || 0 == D[g]) {\n              if (k) {\n                var n = k;\n                var p = D, q = n + (g - k);\n                for (k = n; p[k] && !(k >= q); )\n                  ++k;\n                if (16 < k - n && p.buffer && Xa)\n                  n = Xa.decode(p.subarray(n, k));\n                else {\n                  for (q = \"\"; n < k; ) {\n                    var m = p[n++];\n                    if (m & 128) {\n                      var r = p[n++] & 63;\n                      if (192 == (m & 224))\n                        q += String.fromCharCode((m & 31) << 6 | r);\n                      else {\n                        var y = p[n++] & 63;\n                        m = 224 == (m & 240) ? (m & 15) << 12 | r << 6 | y : (m & 7) << 18 | r << 12 | y << 6 | p[n++] & 63;\n                        65536 > m ? q += String.fromCharCode(m) : (m -= 65536, q += String.fromCharCode(55296 | m >> 10, 56320 | m & 1023));\n                      }\n                    } else\n                      q += String.fromCharCode(m);\n                  }\n                  n = q;\n                }\n              } else\n                n = \"\";\n              if (void 0 === A)\n                var A = n;\n              else\n                A += String.fromCharCode(0), A += n;\n              k = g + 1;\n            }\n          }\n        else {\n          A = Array(e);\n          for (l = 0; l < e; ++l)\n            A[l] = String.fromCharCode(D[h + l]);\n          A = A.join(\"\");\n        }\n        W(d);\n        return A;\n      }, toWireType: function(d, e) {\n        e instanceof ArrayBuffer && (e = new Uint8Array(e));\n        var h, k = \"string\" == typeof e;\n        if (!(k || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array))\n          throw new S(\"Cannot pass non-string to std::string\");\n        var l;\n        if (c && k)\n          for (h = l = 0; h < e.length; ++h) {\n            var g = e.charCodeAt(h);\n            127 >= g ? l++ : 2047 >= g ? l += 2 : 55296 <= g && 57343 >= g ? (l += 4, ++h) : l += 3;\n          }\n        else\n          l = e.length;\n        h = l;\n        l = fb(4 + h + 1);\n        g = l + 4;\n        H[l >> 2] = h;\n        if (c && k) {\n          if (k = g, g = h + 1, h = D, 0 < g) {\n            g = k + g - 1;\n            for (var n = 0; n < e.length; ++n) {\n              var p = e.charCodeAt(n);\n              if (55296 <= p && 57343 >= p) {\n                var q = e.charCodeAt(++n);\n                p = 65536 + ((p & 1023) << 10) | q & 1023;\n              }\n              if (127 >= p) {\n                if (k >= g)\n                  break;\n                h[k++] = p;\n              } else {\n                if (2047 >= p) {\n                  if (k + 1 >= g)\n                    break;\n                  h[k++] = 192 | p >> 6;\n                } else {\n                  if (65535 >= p) {\n                    if (k + 2 >= g)\n                      break;\n                    h[k++] = 224 | p >> 12;\n                  } else {\n                    if (k + 3 >= g)\n                      break;\n                    h[k++] = 240 | p >> 18;\n                    h[k++] = 128 | p >> 12 & 63;\n                  }\n                  h[k++] = 128 | p >> 6 & 63;\n                }\n                h[k++] = 128 | p & 63;\n              }\n            }\n            h[k] = 0;\n          }\n        } else if (k)\n          for (k = 0; k < h; ++k) {\n            n = e.charCodeAt(k);\n            if (255 < n)\n              throw W(g), new S(\"String has UTF-16 code units that do not fit in 8 bits\");\n            D[g + k] = n;\n          }\n        else\n          for (k = 0; k < h; ++k)\n            D[g + k] = e[k];\n        null !== d && d.push(W, l);\n        return l;\n      }, argPackAdvance: 8, readValueFromPointer: Wa, C(d) {\n        W(d);\n      } });\n    }, c: (a, b, c) => {\n      c = O(c);\n      if (2 === b) {\n        var d = Za;\n        var e = $a;\n        var h = ab;\n        var k = () => F;\n        var l = 1;\n      } else\n        4 === b && (d = bb, e = cb, h = db, k = () => H, l = 2);\n      U(a, { name: c, fromWireType: (g) => {\n        for (var n = H[g >> 2], p = k(), q, m = g + 4, r = 0; r <= n; ++r) {\n          var y = g + 4 + r * b;\n          if (r == n || 0 == p[y >> l])\n            m = d(m, y - m), void 0 === q ? q = m : (q += String.fromCharCode(0), q += m), m = y + b;\n        }\n        W(g);\n        return q;\n      }, toWireType: (g, n) => {\n        if (\"string\" != typeof n)\n          throw new S(`Cannot pass non-string to C++ string type ${c}`);\n        var p = h(n), q = fb(4 + p + b);\n        H[q >> 2] = p >> l;\n        e(n, q + 4, p + b);\n        null !== g && g.push(W, q);\n        return q;\n      }, argPackAdvance: 8, readValueFromPointer: Ca, C(g) {\n        W(g);\n      } });\n    }, m: (a, b) => {\n      b = O(b);\n      U(a, { N: true, name: b, argPackAdvance: 0, fromWireType: () => {\n      }, toWireType: () => {\n      } });\n    }, g: Aa, j: (a) => {\n      4 < a && (V.get(a).I += 1);\n    }, f: (a, b) => {\n      var c = Q[a];\n      if (void 0 === c)\n        throw a = \"_emval_take_value has unknown type \" + Sa(a), new S(a);\n      a = c;\n      a = a.readValueFromPointer(b);\n      return Ba(a);\n    }, h: () => {\n      x(\"\");\n    }, q: (a, b, c) => D.copyWithin(a, b, b + c), p: (a) => {\n      var b = D.length;\n      a >>>= 0;\n      if (2147483648 < a)\n        return false;\n      for (var c = 1; 4 >= c; c *= 2) {\n        var d = b * (1 + 0.2 / c);\n        d = Math.min(d, a + 100663296);\n        var e = Math;\n        d = Math.max(a, d);\n        a: {\n          e = (e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536) - z.buffer.byteLength + 65535) / 65536;\n          try {\n            z.grow(e);\n            ha();\n            var h = 1;\n            break a;\n          } catch (k) {\n          }\n          h = void 0;\n        }\n        if (h)\n          return true;\n      }\n      return false;\n    } }, Y = function() {\n      function a(c) {\n        Y = c.exports;\n        z = Y.r;\n        ha();\n        Na = Y.w;\n        ja.unshift(Y.s);\n        I--;\n        f.monitorRunDependencies?.(I);\n        0 == I && (null !== J && (clearInterval(J), J = null), L && (c = L, L = null, c()));\n        return Y;\n      }\n      var b = { a: gb };\n      I++;\n      f.monitorRunDependencies?.(I);\n      if (f.instantiateWasm)\n        try {\n          return f.instantiateWasm(\n            b,\n            a\n          );\n        } catch (c) {\n          u(`Module.instantiateWasm callback failed with error: ${c}`), t(c);\n        }\n      ra(b, function(c) {\n        a(c.instance);\n      }).catch(t);\n      return {};\n    }(), fb = (a) => (fb = Y.t)(a), W = (a) => (W = Y.u)(a), Ra = (a) => (Ra = Y.v)(a), Z;\n    L = function ib() {\n      Z || jb();\n      Z || (L = ib);\n    };\n    function jb() {\n      function a() {\n        if (!Z && (Z = true, f.calledRun = true, !da)) {\n          N(ja);\n          aa(f);\n          if (f.onRuntimeInitialized)\n            f.onRuntimeInitialized();\n          if (f.postRun)\n            for (\"function\" == typeof f.postRun && (f.postRun = [f.postRun]); f.postRun.length; ) {\n              var b = f.postRun.shift();\n              ka.unshift(b);\n            }\n          N(ka);\n        }\n      }\n      if (!(0 < I)) {\n        if (f.preRun)\n          for (\"function\" == typeof f.preRun && (f.preRun = [f.preRun]); f.preRun.length; )\n            la();\n        N(ia);\n        0 < I || (f.setStatus ? (f.setStatus(\"Running...\"), setTimeout(function() {\n          setTimeout(function() {\n            f.setStatus(\"\");\n          }, 1);\n          a();\n        }, 1)) : a());\n      }\n    }\n    if (f.preInit)\n      for (\"function\" == typeof f.preInit && (f.preInit = [f.preInit]); 0 < f.preInit.length; )\n        f.preInit.pop()();\n    jb();\n    return moduleArg.ready;\n  };\n})();\nvar lz4_codec_default = lz4_codec;\n\n// codecs/lz4/lz4_codec.wasm\nvar lz4_codec_default2 = __toBinary(\"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ZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgAAAABkCQAAIAgAAGlpaQBkCQAAIAgAANwMAABpaWlpAAAAAIgMAAB2aQAAAAAAAAEAAAACAAAAAQAAAAAAAAAEAAAABAAAAAQAQcwPC5UN//////z///8BAAAAAgAAAAMAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAA6A0AAOAHAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAA6A0AACgIAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAA6A0AAHAIAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAOgNAAC4CAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAADoDQAABAkAAE4xMGVtc2NyaXB0ZW4zdmFsRQAA6A0AAFAJAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAOgNAABsCQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAADoDQAAlAkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQAA6A0AALwJAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lzRUUAAOgNAADkCQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAADoDQAADAoAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAA6A0AADQKAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lqRUUAAOgNAABcCgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbEVFAADoDQAAhAoAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAA6A0AAKwKAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l4RUUAAOgNAADUCgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJeUVFAADoDQAA/AoAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQAA6A0AACQLAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAAOgNAABMCwAATjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAAAAAKA4AAHQLAAAYDgAATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAAAAKA4AAKQLAACYCwAATjEwX19jeHhhYml2MTE3X19wYmFzZV90eXBlX2luZm9FAAAAKA4AANQLAACYCwAATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UAKA4AAAQMAAD4CwAAAAAAAHgMAAALAAAADAAAAA0AAAAOAAAADwAAAE4xMF9fY3h4YWJpdjEyM19fZnVuZGFtZW50YWxfdHlwZV9pbmZvRQAoDgAAUAwAAJgLAAB2AAAAPAwAAIQMAABiAAAAPAwAAJAMAABjAAAAPAwAAJwMAABoAAAAPAwAAKgMAABhAAAAPAwAALQMAABzAAAAPAwAAMAMAAB0AAAAPAwAAMwMAABpAAAAPAwAANgMAABqAAAAPAwAAOQMAABsAAAAPAwAAPAMAABtAAAAPAwAAPwMAAB4AAAAPAwAAAgNAAB5AAAAPAwAABQNAABmAAAAPAwAACANAABkAAAAPAwAACwNAABOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAAAAAKA4AADgNAADICwAAU3Q5ZXhjZXB0aW9uAAAAAAAAAACgDQAACAAAABAAAAARAAAAU3QxMWxvZ2ljX2Vycm9yACgOAACQDQAASA4AAAAAAADUDQAACAAAABIAAAARAAAAU3QxMmxlbmd0aF9lcnJvcgAAAAAoDgAAwA0AAKANAAAAAAAAyAsAAAsAAAATAAAADQAAAA4AAAAUAAAAFQAAABYAAAAXAAAAU3Q5dHlwZV9pbmZvAAAAAOgNAAAIDgAAAAAAAGANAAALAAAAGAAAAA0AAAAOAAAAFAAAABkAAAAaAAAAGwAAAOgNAABsDQAAAAAAAEgOAAAcAAAAHQAAAB4AQeQcCwNwEwEAQYAdCwEqAEHIHQsCSBMAQewdCwEK\");\n\n// src/lz4.ts\nvar DEFAULT_ACCELERATION = 1;\nvar MAX_BUFFER_SIZE = 2113929216;\nvar emscriptenModule;\nvar init = () => lz4_codec_default({ noInitialRun: true, wasmBinary: lz4_codec_default2 });\nvar LZ4 = class LZ42 {\n  static codecId = \"lz4\";\n  static DEFAULT_ACCELERATION = DEFAULT_ACCELERATION;\n  static max_buffer_size = MAX_BUFFER_SIZE;\n  max_buffer_size = MAX_BUFFER_SIZE;\n  acceleration;\n  constructor(acceleration = DEFAULT_ACCELERATION) {\n    if (!Number.isInteger(acceleration)) {\n      throw Error(`Invalid acceleration \"${acceleration}\". Must be a positive integer.`);\n    }\n    this.acceleration = acceleration <= 0 ? DEFAULT_ACCELERATION : acceleration;\n  }\n  static fromConfig({ acceleration }) {\n    return new LZ42(acceleration);\n  }\n  async encode(data) {\n    if (!emscriptenModule) {\n      emscriptenModule = init();\n    }\n    if (data.length > MAX_BUFFER_SIZE) {\n      throw Error(`Codec does not support buffers of > ${MAX_BUFFER_SIZE} bytes.`);\n    }\n    const module = await emscriptenModule;\n    const view = module.compress(data, this.acceleration);\n    const result = new Uint8Array(view);\n    module.free_result();\n    return result;\n  }\n  async decode(data, out) {\n    if (!emscriptenModule) {\n      emscriptenModule = init();\n    }\n    if (data.length > MAX_BUFFER_SIZE) {\n      throw Error(`Codec does not support buffers of > ${MAX_BUFFER_SIZE} bytes.`);\n    }\n    const module = await emscriptenModule;\n    const view = module.decompress(data);\n    const result = new Uint8Array(view);\n    module.free_result();\n    if (out !== void 0) {\n      out.set(result);\n      return out;\n    }\n    return result;\n  }\n};\nvar lz4_default = LZ4;\nexport {\n  lz4_default as default\n};\n","import {\n  __toBinary\n} from \"./chunk-INHXZS53.js\";\n\n// codecs/zstd/zstd_codec.js\nvar zstd_codec = (() => {\n  var _scriptName = typeof document != \"undefined\" ? document.currentScript?.src : void 0;\n  return function(moduleArg = {}) {\n    var moduleRtn;\n    var f = moduleArg, aa, q, ba = new Promise((a, b) => {\n      aa = a;\n      q = b;\n    }), ca = Object.assign({}, f), r = f.printErr || console.error.bind(console);\n    Object.assign(f, ca);\n    ca = null;\n    var t;\n    f.wasmBinary && (t = f.wasmBinary);\n    var u, da = false, x, z, A, B, D, E, ea, ha;\n    function ia() {\n      var a = u.buffer;\n      f.HEAP8 = x = new Int8Array(a);\n      f.HEAP16 = A = new Int16Array(a);\n      f.HEAPU8 = z = new Uint8Array(a);\n      f.HEAPU16 = B = new Uint16Array(a);\n      f.HEAP32 = D = new Int32Array(a);\n      f.HEAPU32 = E = new Uint32Array(a);\n      f.HEAPF32 = ea = new Float32Array(a);\n      f.HEAPF64 = ha = new Float64Array(a);\n    }\n    var ja = [], ka = [], la = [], ma = false;\n    function na() {\n      var a = f.preRun.shift();\n      ja.unshift(a);\n    }\n    var F = 0, H = null, I = null;\n    function oa(a) {\n      f.onAbort?.(a);\n      a = \"Aborted(\" + a + \")\";\n      r(a);\n      da = true;\n      a += \". Build with -sASSERTIONS for more info.\";\n      ma && pa();\n      a = new WebAssembly.RuntimeError(a);\n      q(a);\n      throw a;\n    }\n    var qa = (a) => a.startsWith(\"data:application/octet-stream;base64,\"), ra = (a) => a.startsWith(\"file://\"), J;\n    function sa(a) {\n      if (a == J && t)\n        return new Uint8Array(t);\n      throw \"both async and sync fetching of the wasm failed\";\n    }\n    function ta(a) {\n      return t ? Promise.resolve().then(() => sa(a)) : (void 0)(a).then((b) => new Uint8Array(b), () => sa(a));\n    }\n    function ua(a, b, c) {\n      return ta(a).then((d) => WebAssembly.instantiate(d, b)).then(c, (d) => {\n        r(`failed to asynchronously prepare wasm: ${d}`);\n        oa(d);\n      });\n    }\n    function va(a, b) {\n      var c = J;\n      return t || \"function\" != typeof WebAssembly.instantiateStreaming || qa(c) || ra(c) || \"function\" != typeof fetch ? ua(c, a, b) : fetch(c, { credentials: \"same-origin\" }).then((d) => WebAssembly.instantiateStreaming(d, a).then(b, function(e) {\n        r(`wasm streaming compile failed: ${e}`);\n        r(\"falling back to ArrayBuffer instantiation\");\n        return ua(c, a, b);\n      }));\n    }\n    var K = (a) => {\n      for (; 0 < a.length; )\n        a.shift()(f);\n    }, wa, L = (a) => {\n      for (var b = \"\"; z[a]; )\n        b += wa[z[a++]];\n      return b;\n    }, N = {}, O = {}, P = {}, Q, xa = (a) => {\n      throw new Q(a);\n    }, R, ya = (a, b) => {\n      function c(k) {\n        k = b(k);\n        if (k.length !== d.length)\n          throw new R(\"Mismatched type converter count\");\n        for (var g = 0; g < d.length; ++g)\n          S(d[g], k[g]);\n      }\n      var d = [];\n      d.forEach(function(k) {\n        P[k] = a;\n      });\n      var e = Array(a.length), h = [], l = 0;\n      a.forEach((k, g) => {\n        O.hasOwnProperty(k) ? e[g] = O[k] : (h.push(k), N.hasOwnProperty(k) || (N[k] = []), N[k].push(() => {\n          e[g] = O[k];\n          ++l;\n          l === h.length && c(e);\n        }));\n      });\n      0 === h.length && c(e);\n    };\n    function za(a, b, c = {}) {\n      var d = b.name;\n      if (!a)\n        throw new Q(`type \"${d}\" must have a positive integer typeid pointer`);\n      if (O.hasOwnProperty(a)) {\n        if (c.H)\n          return;\n        throw new Q(`Cannot register type '${d}' twice`);\n      }\n      O[a] = b;\n      delete P[a];\n      N.hasOwnProperty(a) && (b = N[a], delete N[a], b.forEach((e) => e()));\n    }\n    function S(a, b, c = {}) {\n      if (!(\"argPackAdvance\" in b))\n        throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n      return za(a, b, c);\n    }\n    var T = [], U = [], Aa = (a) => {\n      switch (a) {\n        case void 0:\n          return 2;\n        case null:\n          return 4;\n        case true:\n          return 6;\n        case false:\n          return 8;\n        default:\n          const b = T.pop() || U.length;\n          U[b] = a;\n          U[b + 1] = 1;\n          return b;\n      }\n    };\n    function V(a) {\n      return this.fromWireType(E[a >> 2]);\n    }\n    var Ba = { name: \"emscripten::val\", fromWireType: (a) => {\n      if (!a)\n        throw new Q(\"Cannot use deleted val. handle = \" + a);\n      var b = U[a];\n      9 < a && 0 === --U[a + 1] && (U[a] = void 0, T.push(a));\n      return b;\n    }, toWireType: (a, b) => Aa(b), argPackAdvance: 8, readValueFromPointer: V, F: null }, Ca = (a, b) => {\n      switch (b) {\n        case 4:\n          return function(c) {\n            return this.fromWireType(ea[c >> 2]);\n          };\n        case 8:\n          return function(c) {\n            return this.fromWireType(ha[c >> 3]);\n          };\n        default:\n          throw new TypeError(`invalid float width (${b}): ${a}`);\n      }\n    }, Da = (a, b) => Object.defineProperty(b, \"name\", { value: a }), Ea = (a) => {\n      for (; a.length; ) {\n        var b = a.pop();\n        a.pop()(b);\n      }\n    };\n    function Fa(a) {\n      for (var b = 1; b < a.length; ++b)\n        if (null !== a[b] && void 0 === a[b].F)\n          return true;\n      return false;\n    }\n    function Ga(a) {\n      var b = Function;\n      if (!(b instanceof Function))\n        throw new TypeError(`new_ called with constructor type ${typeof b} which is not a function`);\n      var c = Da(b.name || \"unknownFunctionName\", function() {\n      });\n      c.prototype = b.prototype;\n      c = new c();\n      a = b.apply(c, a);\n      return a instanceof Object ? a : c;\n    }\n    var Ha = (a, b) => {\n      if (void 0 === f[a].D) {\n        var c = f[a];\n        f[a] = function(...d) {\n          if (!f[a].D.hasOwnProperty(d.length))\n            throw new Q(`Function '${b}' called with an invalid number of arguments (${d.length}) - expects one of (${f[a].D})!`);\n          return f[a].D[d.length].apply(this, d);\n        };\n        f[a].D = [];\n        f[a].D[c.G] = c;\n      }\n    }, Ia = (a, b, c) => {\n      if (f.hasOwnProperty(a)) {\n        if (void 0 === c || void 0 !== f[a].D && void 0 !== f[a].D[c])\n          throw new Q(`Cannot register public name '${a}' twice`);\n        Ha(a, a);\n        if (f.hasOwnProperty(c))\n          throw new Q(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);\n        f[a].D[c] = b;\n      } else\n        f[a] = b, void 0 !== c && (f[a].J = c);\n    }, Ja = (a, b) => {\n      for (var c = [], d = 0; d < a; d++)\n        c.push(E[b + 4 * d >> 2]);\n      return c;\n    }, Ka, La = (a, b, c = []) => {\n      a.includes(\"j\") ? (a = a.replace(/p/g, \"i\"), b = (0, f[\"dynCall_\" + a])(b, ...c)) : b = Ka.get(b)(...c);\n      return b;\n    }, Pa = (a, b) => (...c) => La(a, b, c), Qa = (a, b) => {\n      a = L(a);\n      var c = a.includes(\"j\") ? Pa(a, b) : Ka.get(b);\n      if (\"function\" != typeof c)\n        throw new Q(`unknown function pointer with signature ${a}: ${b}`);\n      return c;\n    }, Ra, Ta = (a) => {\n      a = Sa(a);\n      var b = L(a);\n      W(a);\n      return b;\n    }, Ua = (a, b) => {\n      function c(h) {\n        e[h] || O[h] || (P[h] ? P[h].forEach(c) : (d.push(h), e[h] = true));\n      }\n      var d = [], e = {};\n      b.forEach(c);\n      throw new Ra(`${a}: ` + d.map(Ta).join([\", \"]));\n    }, Va = (a) => {\n      a = a.trim();\n      const b = a.indexOf(\"(\");\n      return -1 !== b ? a.substr(0, b) : a;\n    }, Wa = (a, b, c) => {\n      switch (b) {\n        case 1:\n          return c ? (d) => x[d] : (d) => z[d];\n        case 2:\n          return c ? (d) => A[d >> 1] : (d) => B[d >> 1];\n        case 4:\n          return c ? (d) => D[d >> 2] : (d) => E[d >> 2];\n        default:\n          throw new TypeError(`invalid integer width (${b}): ${a}`);\n      }\n    }, Xa = \"undefined\" != typeof TextDecoder ? new TextDecoder() : void 0, Ya = (a, b) => {\n      var c = z, d = a + b;\n      for (b = a; c[b] && !(b >= d); )\n        ++b;\n      if (16 < b - a && c.buffer && Xa)\n        return Xa.decode(c.subarray(a, b));\n      for (d = \"\"; a < b; ) {\n        var e = c[a++];\n        if (e & 128) {\n          var h = c[a++] & 63;\n          if (192 == (e & 224))\n            d += String.fromCharCode((e & 31) << 6 | h);\n          else {\n            var l = c[a++] & 63;\n            e = 224 == (e & 240) ? (e & 15) << 12 | h << 6 | l : (e & 7) << 18 | h << 12 | l << 6 | c[a++] & 63;\n            65536 > e ? d += String.fromCharCode(e) : (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023));\n          }\n        } else\n          d += String.fromCharCode(e);\n      }\n      return d;\n    }, Za = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-16le\") : void 0, $a = (a, b) => {\n      var c = a >> 1;\n      for (var d = c + b / 2; !(c >= d) && B[c]; )\n        ++c;\n      c <<= 1;\n      if (32 < c - a && Za)\n        return Za.decode(z.subarray(a, c));\n      c = \"\";\n      for (d = 0; !(d >= b / 2); ++d) {\n        var e = A[a + 2 * d >> 1];\n        if (0 == e)\n          break;\n        c += String.fromCharCode(e);\n      }\n      return c;\n    }, ab = (a, b, c) => {\n      c ??= 2147483647;\n      if (2 > c)\n        return 0;\n      c -= 2;\n      var d = b;\n      c = c < 2 * a.length ? c / 2 : a.length;\n      for (var e = 0; e < c; ++e)\n        A[b >> 1] = a.charCodeAt(e), b += 2;\n      A[b >> 1] = 0;\n      return b - d;\n    }, bb = (a) => 2 * a.length, cb = (a, b) => {\n      for (var c = 0, d = \"\"; !(c >= b / 4); ) {\n        var e = D[a + 4 * c >> 2];\n        if (0 == e)\n          break;\n        ++c;\n        65536 <= e ? (e -= 65536, d += String.fromCharCode(55296 | e >> 10, 56320 | e & 1023)) : d += String.fromCharCode(e);\n      }\n      return d;\n    }, db = (a, b, c) => {\n      c ??= 2147483647;\n      if (4 > c)\n        return 0;\n      var d = b;\n      c = d + c - 4;\n      for (var e = 0; e < a.length; ++e) {\n        var h = a.charCodeAt(e);\n        if (55296 <= h && 57343 >= h) {\n          var l = a.charCodeAt(++e);\n          h = 65536 + ((h & 1023) << 10) | l & 1023;\n        }\n        D[b >> 2] = h;\n        b += 4;\n        if (b + 4 > c)\n          break;\n      }\n      D[b >> 2] = 0;\n      return b - d;\n    }, eb = (a) => {\n      for (var b = 0, c = 0; c < a.length; ++c) {\n        var d = a.charCodeAt(c);\n        55296 <= d && 57343 >= d && ++c;\n        b += 4;\n      }\n      return b;\n    }, gb = (a) => {\n      a = a.getArg(X.C, 0);\n      return fb(a);\n    };\n    f.incrementExceptionRefcount = (a) => {\n      a = gb(a);\n      hb(a);\n    };\n    f.decrementExceptionRefcount = (a) => {\n      a = gb(a);\n      ib(a);\n    };\n    f.getExceptionMessage = (a) => {\n      var b = gb(a);\n      a = jb();\n      var c = kb(4), d = kb(4);\n      lb(b, c, d);\n      b = E[c >> 2];\n      d = E[d >> 2];\n      c = b ? Ya(b) : \"\";\n      W(b);\n      if (d) {\n        var e = d ? Ya(d) : \"\";\n        W(d);\n      }\n      mb(a);\n      return [c, e];\n    };\n    for (var nb = Array(256), Y = 0; 256 > Y; ++Y)\n      nb[Y] = String.fromCharCode(Y);\n    wa = nb;\n    Q = f.BindingError = class extends Error {\n      constructor(a) {\n        super(a);\n        this.name = \"BindingError\";\n      }\n    };\n    R = f.InternalError = class extends Error {\n      constructor(a) {\n        super(a);\n        this.name = \"InternalError\";\n      }\n    };\n    U.push(0, 1, void 0, 1, null, 1, true, 1, false, 1);\n    f.count_emval_handles = () => U.length / 2 - 5 - T.length;\n    Ra = f.UnboundTypeError = ((a, b) => {\n      var c = Da(b, function(d) {\n        this.name = b;\n        this.message = d;\n        d = Error(d).stack;\n        void 0 !== d && (this.stack = this.toString() + \"\\n\" + d.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n      });\n      c.prototype = Object.create(a.prototype);\n      c.prototype.constructor = c;\n      c.prototype.toString = function() {\n        return void 0 === this.message ? this.name : `${this.name}: ${this.message}`;\n      };\n      return c;\n    })(Error, \"UnboundTypeError\");\n    var pb = { l: () => {\n      oa(\"\");\n    }, k: () => {\n    }, i: (a, b, c, d) => {\n      b = L(b);\n      S(a, { name: b, fromWireType: function(e) {\n        return !!e;\n      }, toWireType: function(e, h) {\n        return h ? c : d;\n      }, argPackAdvance: 8, readValueFromPointer: function(e) {\n        return this.fromWireType(z[e]);\n      }, F: null });\n    }, h: (a) => S(a, Ba), e: (a, b, c) => {\n      b = L(b);\n      S(a, { name: b, fromWireType: (d) => d, toWireType: (d, e) => e, argPackAdvance: 8, readValueFromPointer: Ca(b, c), F: null });\n    }, d: (a, b, c, d, e, h, l) => {\n      var k = Ja(b, c);\n      a = L(a);\n      a = Va(a);\n      e = Qa(d, e);\n      Ia(a, function() {\n        Ua(`Cannot call ${a} due to unbound types`, k);\n      }, b - 1);\n      ya(\n        k,\n        (g) => {\n          var m = a;\n          var n = a;\n          g = [g[0], null].concat(g.slice(1));\n          var w = e, p = g.length;\n          if (2 > p)\n            throw new Q(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n          var C = null !== g[1] && false, M = Fa(g), Ma = \"void\" !== g[0].name;\n          w = [n, xa, w, h, Ea, g[0], g[1]];\n          for (var v = 0; v < p - 2; ++v)\n            w.push(g[v + 2]);\n          if (!M)\n            for (v = C ? 1 : 2; v < g.length; ++v)\n              null !== g[v].F && w.push(g[v].F);\n          M = Fa(g);\n          v = g.length;\n          var y = \"\", G = \"\";\n          for (p = 0; p < v - 2; ++p)\n            y += (0 !== p ? \", \" : \"\") + \"arg\" + p, G += (0 !== p ? \", \" : \"\") + \"arg\" + p + \"Wired\";\n          y = `\n        return function (${y}) {\n        if (arguments.length !== ${v - 2}) {\n          throwBindingError('function ' + humanName + ' called with ' + arguments.length + ' arguments, expected ${v - 2}');\n        }`;\n          M && (y += \"var destructors = [];\\n\");\n          var Na = M ? \"destructors\" : \"null\", fa = \"humanName throwBindingError invoker fn runDestructors retType classParam\".split(\" \");\n          C && (y += \"var thisWired = classParam['toWireType'](\" + Na + \", this);\\n\");\n          for (p = 0; p < v - 2; ++p)\n            y += \"var arg\" + p + \"Wired = argType\" + p + \"['toWireType'](\" + Na + \", arg\" + p + \");\\n\", fa.push(\"argType\" + p);\n          C && (G = \"thisWired\" + (0 < G.length ? \", \" : \"\") + G);\n          y += (Ma || l ? \"var rv = \" : \"\") + \"invoker(fn\" + (0 < G.length ? \", \" : \"\") + G + \");\\n\";\n          if (M)\n            y += \"runDestructors(destructors);\\n\";\n          else\n            for (p = C ? 1 : 2; p < g.length; ++p)\n              C = 1 === p ? \"thisWired\" : \"arg\" + (p - 2) + \"Wired\", null !== g[p].F && (y += `${C}_dtor(${C});\n`, fa.push(`${C}_dtor`));\n          Ma && (y += \"var ret = retType['fromWireType'](rv);\\nreturn ret;\\n\");\n          let [Oa, qb] = [fa, y + \"}\\n\"];\n          Oa.push(qb);\n          g = Ga(Oa)(...w);\n          n = Da(n, g);\n          g = b - 1;\n          if (!f.hasOwnProperty(m))\n            throw new R(\"Replacing nonexistent public symbol\");\n          void 0 !== f[m].D && void 0 !== g ? f[m].D[g] = n : (f[m] = n, f[m].G = g);\n          return [];\n        }\n      );\n    }, b: (a, b, c, d, e) => {\n      b = L(b);\n      -1 === e && (e = 4294967295);\n      e = (k) => k;\n      if (0 === d) {\n        var h = 32 - 8 * c;\n        e = (k) => k << h >>> h;\n      }\n      var l = b.includes(\"unsigned\") ? function(k, g) {\n        return g >>> 0;\n      } : function(k, g) {\n        return g;\n      };\n      S(a, { name: b, fromWireType: e, toWireType: l, argPackAdvance: 8, readValueFromPointer: Wa(b, c, 0 !== d), F: null });\n    }, a: (a, b, c) => {\n      function d(h) {\n        return new e(x.buffer, E[h + 4 >> 2], E[h >> 2]);\n      }\n      var e = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][b];\n      c = L(c);\n      S(a, {\n        name: c,\n        fromWireType: d,\n        argPackAdvance: 8,\n        readValueFromPointer: d\n      }, { H: true });\n    }, f: (a, b) => {\n      b = L(b);\n      var c = \"std::string\" === b;\n      S(a, { name: b, fromWireType: function(d) {\n        var e = E[d >> 2], h = d + 4;\n        if (c)\n          for (var l = h, k = 0; k <= e; ++k) {\n            var g = h + k;\n            if (k == e || 0 == z[g]) {\n              l = l ? Ya(l, g - l) : \"\";\n              if (void 0 === m)\n                var m = l;\n              else\n                m += String.fromCharCode(0), m += l;\n              l = g + 1;\n            }\n          }\n        else {\n          m = Array(e);\n          for (k = 0; k < e; ++k)\n            m[k] = String.fromCharCode(z[h + k]);\n          m = m.join(\"\");\n        }\n        W(d);\n        return m;\n      }, toWireType: function(d, e) {\n        e instanceof ArrayBuffer && (e = new Uint8Array(e));\n        var h, l = \"string\" == typeof e;\n        if (!(l || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array))\n          throw new Q(\"Cannot pass non-string to std::string\");\n        var k;\n        if (c && l)\n          for (h = k = 0; h < e.length; ++h) {\n            var g = e.charCodeAt(h);\n            127 >= g ? k++ : 2047 >= g ? k += 2 : 55296 <= g && 57343 >= g ? (k += 4, ++h) : k += 3;\n          }\n        else\n          k = e.length;\n        h = k;\n        k = ob(4 + h + 1);\n        g = k + 4;\n        E[k >> 2] = h;\n        if (c && l) {\n          if (l = g, g = h + 1, h = z, 0 < g) {\n            g = l + g - 1;\n            for (var m = 0; m < e.length; ++m) {\n              var n = e.charCodeAt(m);\n              if (55296 <= n && 57343 >= n) {\n                var w = e.charCodeAt(++m);\n                n = 65536 + ((n & 1023) << 10) | w & 1023;\n              }\n              if (127 >= n) {\n                if (l >= g)\n                  break;\n                h[l++] = n;\n              } else {\n                if (2047 >= n) {\n                  if (l + 1 >= g)\n                    break;\n                  h[l++] = 192 | n >> 6;\n                } else {\n                  if (65535 >= n) {\n                    if (l + 2 >= g)\n                      break;\n                    h[l++] = 224 | n >> 12;\n                  } else {\n                    if (l + 3 >= g)\n                      break;\n                    h[l++] = 240 | n >> 18;\n                    h[l++] = 128 | n >> 12 & 63;\n                  }\n                  h[l++] = 128 | n >> 6 & 63;\n                }\n                h[l++] = 128 | n & 63;\n              }\n            }\n            h[l] = 0;\n          }\n        } else if (l)\n          for (l = 0; l < h; ++l) {\n            m = e.charCodeAt(l);\n            if (255 < m)\n              throw W(g), new Q(\"String has UTF-16 code units that do not fit in 8 bits\");\n            z[g + l] = m;\n          }\n        else\n          for (l = 0; l < h; ++l)\n            z[g + l] = e[l];\n        null !== d && d.push(W, k);\n        return k;\n      }, argPackAdvance: 8, readValueFromPointer: V, F(d) {\n        W(d);\n      } });\n    }, c: (a, b, c) => {\n      c = L(c);\n      if (2 === b) {\n        var d = $a;\n        var e = ab;\n        var h = bb;\n        var l = (k) => B[k >> 1];\n      } else\n        4 === b && (d = cb, e = db, h = eb, l = (k) => E[k >> 2]);\n      S(a, { name: c, fromWireType: (k) => {\n        for (var g = E[k >> 2], m, n = k + 4, w = 0; w <= g; ++w) {\n          var p = k + 4 + w * b;\n          if (w == g || 0 == l(p))\n            n = d(n, p - n), void 0 === m ? m = n : (m += String.fromCharCode(0), m += n), n = p + b;\n        }\n        W(k);\n        return m;\n      }, toWireType: (k, g) => {\n        if (\"string\" != typeof g)\n          throw new Q(`Cannot pass non-string to C++ string type ${c}`);\n        var m = h(g), n = ob(4 + m + b);\n        E[n >> 2] = m / b;\n        e(g, n + 4, m + b);\n        null !== k && k.push(W, n);\n        return n;\n      }, argPackAdvance: 8, readValueFromPointer: V, F(k) {\n        W(k);\n      } });\n    }, j: (a, b) => {\n      b = L(b);\n      S(a, {\n        I: true,\n        name: b,\n        argPackAdvance: 0,\n        fromWireType: () => {\n        },\n        toWireType: () => {\n        }\n      });\n    }, n: (a, b, c) => z.copyWithin(a, b, b + c), g: (a, b) => {\n      var c = O[a];\n      if (void 0 === c)\n        throw a = `${\"_emval_take_value\"} has unknown type ${Ta(a)}`, new Q(a);\n      a = c;\n      a = a.readValueFromPointer(b);\n      return Aa(a);\n    }, m: (a) => {\n      var b = z.length;\n      a >>>= 0;\n      if (2147483648 < a)\n        return false;\n      for (var c = 1; 4 >= c; c *= 2) {\n        var d = b * (1 + 0.2 / c);\n        d = Math.min(d, a + 100663296);\n        var e = Math;\n        d = Math.max(a, d);\n        a: {\n          e = (e.min.call(e, 2147483648, d + (65536 - d % 65536) % 65536) - u.buffer.byteLength + 65535) / 65536;\n          try {\n            u.grow(e);\n            ia();\n            var h = 1;\n            break a;\n          } catch (l) {\n          }\n          h = void 0;\n        }\n        if (h)\n          return true;\n      }\n      return false;\n    } }, X = function() {\n      function a(c) {\n        X = c.exports;\n        u = X.o;\n        ia();\n        Ka = X.t;\n        ka.unshift(X.p);\n        F--;\n        f.monitorRunDependencies?.(F);\n        0 == F && (null !== H && (clearInterval(H), H = null), I && (c = I, I = null, c()));\n        return X;\n      }\n      var b = { a: pb };\n      F++;\n      f.monitorRunDependencies?.(F);\n      if (f.instantiateWasm)\n        try {\n          return f.instantiateWasm(b, a);\n        } catch (c) {\n          r(`Module.instantiateWasm callback failed with error: ${c}`), q(c);\n        }\n      J ||= qa(\"zstd_codec.wasm\") ? \"zstd_codec.wasm\" : f.locateFile ? f.locateFile(\"zstd_codec.wasm\", \"\") : \"zstd_codec.wasm\";\n      va(b, function(c) {\n        a(c.instance);\n      }).catch(q);\n      return {};\n    }(), ob = (a) => (ob = X.q)(a), W = (a) => (W = X.r)(a), Sa = (a) => (Sa = X.s)(a), pa = () => (pa = X.u)(), mb = (a) => (mb = X.v)(a), kb = (a) => (kb = X.w)(a), jb = () => (jb = X.x)(), ib = (a) => (ib = X.y)(a), hb = (a) => (hb = X.z)(a), fb = (a) => (fb = X.A)(a), lb = (a, b, c) => (lb = X.B)(a, b, c), Z;\n    I = function rb() {\n      Z || sb();\n      Z || (I = rb);\n    };\n    function sb() {\n      function a() {\n        if (!Z && (Z = true, f.calledRun = true, !da)) {\n          ma = true;\n          K(ka);\n          aa(f);\n          f.onRuntimeInitialized?.();\n          if (f.postRun)\n            for (\"function\" == typeof f.postRun && (f.postRun = [f.postRun]); f.postRun.length; ) {\n              var b = f.postRun.shift();\n              la.unshift(b);\n            }\n          K(la);\n        }\n      }\n      if (!(0 < F)) {\n        if (f.preRun)\n          for (\"function\" == typeof f.preRun && (f.preRun = [f.preRun]); f.preRun.length; )\n            na();\n        K(ja);\n        0 < F || (f.setStatus ? (f.setStatus(\"Running...\"), setTimeout(function() {\n          setTimeout(function() {\n            f.setStatus(\"\");\n          }, 1);\n          a();\n        }, 1)) : a());\n      }\n    }\n    if (f.preInit)\n      for (\"function\" == typeof f.preInit && (f.preInit = [f.preInit]); 0 < f.preInit.length; )\n        f.preInit.pop()();\n    sb();\n    moduleRtn = ba;\n    return moduleRtn;\n  };\n})();\nvar zstd_codec_default = zstd_codec;\n\n// codecs/zstd/zstd_codec.wasm\nvar zstd_codec_default2 = __toBinary(\"AGFzbQEAAAABtwIkYAJ/fwBgAn9/AX9gBH9/f38Bf2AFf39/f38Bf2ABfwF/YAN/f38Bf2ABfwBgA39/fwBgCH9/f39/f39/AX9gAABgBn9/f39/fwF/YAR/f39/AGAFf39/f38AYAZ/f39/f38AYAd/f39/f39/AX9gC39/f39/f39/f39/AX9gB39/f39/f38AYAl/f39/f39/f38Bf2ACf34Bf2AAAX9gA39/fgF/YAN/fn8Bf2ACfn8Bf2ABfwF+YAR/fn9/AX9gD39/f39/f39/f39/f39/fwF/YAJ/fwF+YAF+AX9gDn9/f39/f39/f39/f39/AX9gDH9/f39/f39/f39/fwF/YAp/f39/f39/f39/AX9gBH9/fn4AYAp/f39/f39/f39/AGACf34AYAJ8fwF8YAZ/fH9/f38BfwJVDgFhAWEABwFhAWIADAFhAWMABwFhAWQAEAFhAWUABwFhAWYAAAFhAWcAAQFhAWgABgFhAWkACwFhAWoAAAFhAWsAEAFhAWwACQFhAW0ABAFhAW4ABwPABL4EAQMFAQEGBQYKAAUFAQQFBAEAAQAABAEGBAcHAwUHDAsSAAYJAgwBAwwVBQQBBQEKAQUGCgMBBAUBARIEBQQEBAAGBwQGEwkCCAMDAQEAAQUEBgQWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwEOCgQEBAQBAgoHDgIXCwUEGAMBBAQDAAYBBwQBAAYBAQcAAQQFBAUDAxAMAgICCgUHCgMKBwEBBRkEDwQEAAQFAQAEAQQUAAkABQYAAQAEBAQaBAQEBQEJBgQbAgAEERwHCgICAgECAgIJAwADAA4dAw8PDwYRHgwEDh8GIAYUAQUCAQYGAAABBQAIBAEACgEEAQEECwEJAAQAAAAEBQEAAgsGBAQBAQEBAQEHAiEFAQcEBAIFAAcFBQECAQEABQQGAAQGBgcHCwQBBgQHBwYHBQUFIgAjAQcEBQMFBQUKBQoFAgMFCgULBQMDAwIDAwMDAgoLCQQDAwMDAwAAAAAAAAAAAAAAAAAAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAAAAAAABAQEBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAABBwQGBAQJDQwLCwwNBQkJBgAFAgIJAgIGBwEABQMDAwMDAAMICAgIAQgICAgICAgIAwMDAwMDAwkDAwMTAwMDBAMDAwYDAwMDAwMDAwMDAwQHAXABywLLAgUHAQGCAoCAAg0DAQAGBggBfwFBkPQFCwdHDwFvAgABcAD9AQFxACMBcgAVAXMA2gMBdAEAAXUAtAQBdgDABAF3ALwEAXgAuAQBeQDeAgF6AIwEAUEA/gMBQgD9AwFDBAAJuAQBAEEBC8oCiAOkBJ4EmASVBJQEkQTTApcElgSsAqoChwKGAqwEqwSqBKkEqASnBKYEpQSjBKIEoQSgBOkC6ALYAY4EjQTeAf4BgALJBMoEywSKA60EnwSdBIsDjQO1BLMEsgSxBJoEmQSMA44DxQTGBMcEyAScBJsEwgTDBMQEvgS/BMEEsASvBK4EugS7BL0EtgS3BLkEkwSSBJAEjwSLBIoE2AET3gHeAYkEE4AE1wLWAv8D1gLXAhOBBOAB4AHgAfwDlQP7A/oD2AETE+kBiASHBIYEE4MEhASFBIIE+QOPAxPwA+8DE+IDE8oDyQPIA8cDxgPFAxOiAxOjAxOkAxOlAxOmAxOnAxOoAxOpAxOqAxOrAxOsAxO9AxPLAxPMAxPNAxPOAxPPAxPQAxPjAxPkAxPmA+UDE+cDrQIT6QPoAxPrA+oDE+0D7AMT7gMT0QMT0gMTrQMTrgMTnQITrwMTsAMTuAMTsQMTsgMTswMTtAMTtQMTtgMTtwMToQITuQMT3wGqARO6AxP0AxP1AxO7A9wBE+EDqwIT8gOvAhP3A9wBE/EDE/MDE/YDqgET+AOqARPfAaoBE98BE9gD1wPWA9UD1APTAxPZAxPbA9wBE6ECE60CE5ADE5EDE1lZkwOSAxOUAxOWAxOXAxNZWZkDmAMTmgMTmwMToAKfA54DnQOcAxOgAxOhAxO8AxPgAxO+AxO/AxNZWcEDwAMToALDA8IDE8QDE6kC3QPcAxOpAt8D3gMTCt3cH74EFAAgACABNgIAIAAgARBNNgIEIAALkwMBBX8gAyABAn8CQAJAIAAiBSAFIAMgASIGa2oiByACIAIgB0sbIgdBA2siCU8NACAFKAAAIgEgBigAACIIRw0BA0AgBkEEaiEGIAVBBGoiBSAJTw0BIAUoAAAiASAGKAAAIghGDQALIAUgASAIc2hBA3ZqIABrDAILAkAgBSAHQQFrTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAdJBH8gBSAGLQAAIAUtAABGagUgBQsgAGsMAQsgASAIc2hBA3YLIgZqRgR/An8CQCACQQNrIgEgACAGaiIATQRAIAAhBQwBCyAAKAAAIgMgBCgAACIFRgRAIAAhBQNAIARBBGohBCAFQQRqIgUgAU8NAiAFKAAAIgMgBCgAACIHRg0ACyAFIAMgB3NoQQN2aiAAawwCCyADIAVzaEEDdgwBCwJAIAUgAkEBa08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgAiAFSwR/IAUgBC0AACAFLQAARmoFIAULIABrCyAGagUgBgsLLwAgAgRAIAAgAhDRAiAAKAIAIAAoAgRqIAEgAhAUGiAAIAAoAgQgAmo2AgQLIAALNAECfwJAIAAoAgAiAyAAKAIERg0AIAMtAAAgAUH/AXFHDQBBASECIAAgA0EBajYCAAsgAgutAQEDfyAAKAKAICICKAIEIgMgAUEPakFwcSIBaiIEQfgfTwRAIAFB+R9PBEAgAUEIahAjIgBFBEAQVAALIAIoAgAhASAAQQA2AgQgACABNgIAIAIgADYCACAAQQhqDwtBgCAQIyICRQRAEFQACyAAKAKAICEDIAJBADYCBCACIAM2AgAgACACNgKAICAAKAKAICICKAIEIgMgAWohBAsgAiAENgIEIAIgA2pBCGoLBgAgABAVC4IEAQN/IAJBgARPBEAgACABIAIQDSAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLIANBfHEhBAJAIANBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAAC9ACAQV/IAAEQCAAQQRrIgMoAgAiBCEBIAMhAiAAQQhrKAIAIgAgAEF+cSIARwRAIAIgAGsiAigCBCIBIAIoAggiBTYCCCAFIAE2AgQgACAEaiEBCyADIARqIgAoAgAiAyAAIANqQQRrKAIARwRAIAAoAgQiBCAAKAIIIgA2AgggACAENgIEIAEgA2ohAQsgAiABNgIAIAIgAUF8cWpBBGsgAUEBcjYCACACAn8gAigCAEEIayIAQf8ATQRAIABBA3ZBAWsMAQsgAGchAyAAQR0gA2t2QQRzIANBAnRrQe4AaiAAQf8fTQ0AGkE/IABBHiADa3ZBAnMgA0EBdGtBxwBqIgAgAEE/TxsLIgFBBHQiAEGg5wFqNgIEIAIgAEGo5wFqIgAoAgA2AgggACACNgIAIAIoAgggAjYCBEGo7wFBqO8BKQMAQgEgAa2GhDcDAAsLRQAgACABOgAEIABBiJcBNgIAIAAgAC8ABUGA4ANxIAJBP3EgA0EGdEHAAXFyIARBA3FBCHRyIAVBA3FBCnRycjsABSAACzAAIAAgASAAKAIAKAIQEQAAIAAvAAVBwAFxQcAARwRAIAAgASAAKAIAKAIUEQAACwvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsbAQF/IAIgASAAa0kEfyAAIAJqLQAABSADC8ALbQICfwF+IwBBIGsiAiQAIAJBGGogACgCACIDIAAoAgQgA2sQKiEDIAIgASkCACIENwMQIAIgAykCADcDCCACIAQ3AwAgAkEIaiACEJoBIgEEQCAAIAAoAgAgBEIgiKdqNgIACyACQSBqJAAgAQu5IAIIfwF+IwBBIGsiBCQAIARBADYCHAJAAkACQCAEAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAiASAAKAIEIgJBABAZIgVB/wFxQcEAaw46GCEeFyElHyEhIQAhGSEdGyEcIBokACEhISEhISEhISEFAwQSExEUBgkKIQsMDxAhIQAHCBYBAg0OFSELAkAgASACIAEgAkECQQEgBUHyAEYiBRsgBSABIAIgBRAZQdYARhsiBRAZQcsARiAFaiIFEBlB/wFxQcQAaw4DACQlJAsgASACIAVBAWoQGUH/AXEiAUHvAGsiAkEJS0EBIAJ0QYEGcUVyDSIMJAsgACABQQFqNgIAIABB4xcQICEDDCcLIAAgAUEBajYCACAAQYkMECAhAwwmCyAAIAFBAWo2AgAgAEGxERAgIQMMJQsgACABQQFqNgIAIABBzg8QICEDDCQLIAAgAUEBajYCACAAQccPECAhAwwjCyAAIAFBAWo2AgAgAEHFDxAgIQMMIgsgACABQQFqNgIAIABB9woQICEDDCELIAAgAUEBajYCACAAQe4KECAhAwwgCyAAIAFBAWo2AgAgAEGQCxAgIQMMHwsgACABQQFqNgIAIwBBEGsiASQAIABBmANqQRAQEiABQQhqQYcLEA4pAwAQSCEDIAFBEGokAAweCyAAIAFBAWo2AgAgAEH4ExAgIQMMHQsgACABQQFqNgIAIABB7xMQICEDDBwLIAAgAUEBajYCACAAQeUTECAhAwwbCyAAIAFBAWo2AgAjAEEQayIBJAAgAEGYA2pBEBASIAFBCGpB3BMQDikDABBIIQMgAUEQaiQADBoLIAAgAUEBajYCACAAQZcjECAhAwwZCyAAIAFBAWo2AgAjAEEQayIBJAAgAEGYA2pBEBASIAFBCGpBjiMQDikDABBIIQMgAUEQaiQADBgLIAAgAUEBajYCACAAQe0LECAhAwwXCyAAIAFBAWo2AgAjAEEQayIBJAAgAEGYA2pBEBASIAFBCGpB4RUQDikDABBIIQMgAUEQaiQADBYLIAAgAUEBajYCACAAQdwVECAhAwwVCyAAIAFBAWo2AgAgAEGgIxAgIQMMFAsgACABQQFqNgIAIABB5iMQICEDDBMLIAAgAUEBajYCACAEQRRqIAAQsAEgBCgCGEUNCyAAQckAEBEEQCAEIAAQGyIDNgIQIANFDQwgAEHFABARRQ0MIABBmANqQRQQEiAEKQIUIQkgBCgCECECQQdBAEEBQQFBARAWIgEgAjYCECABIAk3AgggAUG83AE2AgAgBCABNgIcDBELIAQgACAEQRRqEEciATYCHAwQCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEgAkEBEBkiBUH/AXFBwgBrDjcFISEhBCEhISELISEhHSEhISENBSEhISEhISEhISEhCSEKAAECIQMGIQshIQwdDyEhBw0IDh0dIQsgACABQQJqNgIAIABBtiMQICEDDCALIAAgAUECajYCACAAQasjECAhAwwfCyAAIAFBAmo2AgAgAEHAIxAgIQMMHgsgACABQQJqNgIAIABBpRUQICEDDB0LIAAgAUECajYCACAEQRRqIgEgAEEAECggBCAAIAEQRzYCECAAQd8AEBFFDRwgAEGYA2pBDBASIAQoAhAhAUEfQQBBAUEBQQEQFiIDIAE2AgggA0Go3QE2AgAMHAsgBCAFQcIARjoADyAAIAFBAmoiATYCAAJAIAEgAkEAEBlBMGtBCU0EQCAEQRRqIgEgAEEAECggBCAAIAEQRzYCEAwBCyAEIAAQHSIBNgIQIAFFDRwLIABB3wAQEUUNGyAAQZgDakEQEBIgBCgCECEBIAQtAA8hAkEgQQBBAUEBQQEQFiIDIAI6AAwgAyABNgIIIANBlN4BNgIADBsLIAAgAUECajYCACAAQasMECAhAwwaCyAAIAFBAmo2AgAgAEGZDBAgIQMMGQsgACABQQJqNgIAIABBkQwQICEDDBgLIAAgAUECajYCACAAQeAPECAhAwwXCyAAIAFBAmo2AgAgAEHJJBAgIQMMFgsgBEEUakHfD0HIJCAFQesARhsQDiECIAAgAUECajYCACAEIABBABA8IgE2AhAgAUUNFSAAQZgDakEUEBIgBCgCECACKQIAENkBIQMMFQsgACABQQJqNgIAIABB+gsQICEDDBQLIAAQ5gEMEAtBACECIwBBIGsiASQAIAEgAUEYakGPChAOKQIANwMAAkAgACABEBpFDQACQCAAKAIAIAAoAgRBABAZQTFrQf8BcUEITQRAIAFBDGoiBSAAQQAQKCABIAAgBRBHNgIUIABB3wAQEUUNAiAAQfAAEBEEQCAAQZgDakEMEBIgASgCFCEFQR5BAEEBQQFBARAWIgIgBTYCCCACQfDfATYCAAwDCyABIAAQGyICNgIMIAJFDQEgACABQQxqIAFBFGoQwgIhAgwCCyAAQd8AEBFFBEAgASAAEB0iBTYCDCAFRQ0CIABB3wAQEUUNAiABIAAQGyICNgIUIAJFDQEgACABQRRqIAFBDGoQwgIhAgwCCyABIAAQGyICNgIMIAJFDQAgAEGYA2pBEBASIAEoAgxBABCcAiECDAELQQAhAgsgAUEgaiQAIAIMDwsgACABQQJqNgIAIAQgABAbIgE2AhQgAUUNESAEIAAgBEEUahDNAiIBNgIcDA8LQQAhAiMAQRBrIgEkAAJAIABBwQAQEUUNACABQQA2AgwCQCAAKAIAIAAoAgRBABAZQTBrQQlNBEAgAUEEaiIFIABBABAoIAEgACAFEEc2AgwgAEHfABARDQEMAgsgAEHfABARDQAgABAdIgVFDQEgAEHfABARRQ0BIAEgBTYCDAsgASAAEBsiAjYCBCACRQRAQQAhAgwBCyAAQZgDakEQEBIgASgCBCEFIAEoAgwhBkEPQQBBAEEBEDUiAiAGNgIMIAIgBTYCCCACQcThATYCAAsgAUEQaiQAIAIMDQtBACECIwBBEGsiASQAAkAgAEHNABARRQ0AIAEgABAbIgI2AgwCQCACRQ0AIAEgABAbIgI2AgggAkUNACAAQZgDakEQEBIgASgCDCEFQQ4gASgCCCIGLQAFQQZ2QQFBARA1IgIgBjYCDCACIAU2AgggAkGs4gE2AgAMAQtBACECCyABQRBqJAAgAgwMCwJAAkAgASACQQEQGUH/AXEiAUHzAGsOAwgBCAALIAFB5QBGDQcLIAQgABCYASIBNgIcIAFFDQcgAC0AhANBAUcNDCAAKAIAIAAoAgRBABAZQckARw0MIAQgAEEAEEYiAzYCFCADRQ0HIAQgACAEQRxqIARBFGoQSiIBNgIcDAwLIAAgAUEBajYCACAEIAAQGyIDNgIUIANFDQYgAEGYA2pBDBASQQwgBCgCFCIDLQAFQQZ2QQFBARA1IgEgAzYCCCABQZDkATYCACAEIAE2AhwMCwsgACABQQFqNgIAIAQgABAbIgM2AhQgA0UNBSAEQQA2AhAgBCAAIARBFGogBEEQahDMAiIBNgIcDAoLIAAgAUEBajYCACAEIAAQGyIDNgIUIANFDQQgBEEBNgIQIAQgACAEQRRqIARBEGoQzAIiATYCHAwJCyAAIAFBAWo2AgAgBCAAEBsiATYCFCABRQ0KIwBBEGsiAyQAIABBmANqQRQQEiAEKAIUIANBCGpBpAkQDikDABDZASEBIANBEGokACAEIAE2AhwMCAsgACABQQFqNgIAIAQgABAbIgM2AhQgA0UNAiMAQRBrIgMkACAAQZgDakEUEBIgBCgCFCADQQhqQZMJEA4pAwAQ2QEhASADQRBqJAAgBCABNgIcDAcLIAEgAkEBEBlB9ABGDQAgBEEAOgAQIAQgAEEAIARBEGoQywIiATYCHCABRQ0IIAQtABAhAiAAKAIAIAAoAgRBABAZQckARgRAAkAgAkEBcQRAIAAtAIQDDQEMCgsgAEGUAWogBEEcahAfCyAEIABBABBGIgE2AhQgAUUNCSAEIAAgBEEcaiAEQRRqEEoiATYCHAwHCyACQQFxRQ0GDAcLQQAhASMAQUBqIgUkACAFQThqEEshBiAFIAVBMGpBrg0QDikCADcDEAJAIAAgBUEQahAaBEAgBiAFQShqQboLEA4pAwA3AwAMAQsgBSAFQSBqQZIKEA4pAgA3AwggACAFQQhqEBoEQCAGIAVBKGpBwxAQDikDADcDAAwBCyAFIAVBGGpBwhcQDikCADcDACAAIAUQGkUNACAGIAVBKGpB+xAQDikDADcDAAsgBSAAQQAQPCICNgIoAkAgAkUNACACIQEgBigCBEUNACAAQZgDakEUEBIgBikCACEJIAUoAighAkEGQQBBAUEBQQEQFiIBIAI2AhAgASAJNwIIIAFBnOMBNgIACyAFQUBrJAAgAQwEC0EAIQMMBgsgAUHPAEYNAQsgABDkAQwBCyMAQYABayIBJAAgASAAEJcBNgJ8IAFBADYCeCABIAFB8ABqQfIPEA4pAgA3AzACQAJAAkAgACABQTBqEBoEQCABIABB/goQIDYCeAwBCyABIAFB6ABqQdQaEA4pAgA3AyggACABQShqEBoEQCABIAAQHSICNgJYIAJFDQIgAEHFABARRQ0CIABBmANqQQwQEiABKAJYIQVBEUEAQQFBAUEBEBYiAiAFNgIIIAJBsNcBNgIAIAEgAjYCeAwBCyABIAFB4ABqQYwKEA4pAgA3AyAgACABQSBqEBpFDQAgAEEIaiECIAAoAgggACgCDBAeIQUDQCAAQcUAEBFFBEAgASAAEBsiBjYCWCAGRQ0DIAIgAUHYAGoQHwwBCwsgAUHYAGogACAFECcgAEGYA2pBEBASIAEpAlghCUESQQBBAUEBQQEQFiICIAk3AgggAkGc2AE2AgAgASACNgJ4CyABIAFB0ABqQa0JEA4pAgA3AxggACABQRhqEBoaQQAhAiAAQcYAEBFFDQEgAEHZABARGiABIAAQGyICNgJMIAJFDQAgAUEAOgBLIABBCGohAiAAKAIIIAAoAgwQHiEFA0ACQAJAIABBxQAQEQ0AIABB9gAQEQ0CIAEgAUFAa0GHGxAOKQIANwMQIAAgAUEQahAaBEAgAUEBOgBLDAELIAEgAUE4akGKGxAOKQIANwMIIAAgAUEIahAaRQ0BIAFBAjoASwsgAUHYAGogACAFECcgAEGYA2pBIBASIAEoAkwhBSABKQJYIQkgASgCfCEGIAEtAEshByABKAJ4IQhBEEEAQQFBABA1IgIgCDYCHCACIAc6ABggAiAGNgIUIAIgCTcCDCACIAU2AgggAkGQ2QE2AgAMAwsgASAAEBsiBjYCWCAGRQ0BIAIgAUHYAGoQHwwACwALQQAhAgsgAUGAAWokACACCyIBNgIcIAFFDQILIABBlAFqIARBHGoQHwsgASEDCyAEQSBqJAAgAwvoAgECfwJAIAAgAUYNACABIAAgAmoiBGtBACACQQF0a00EQCAAIAEgAhAUDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkEBayECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkEBayICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQQRrIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkEBayICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AA0AgAyABKAIANgIAIAFBBGohASADQQRqIQMgAkEEayICQQNLDQALCyACRQ0AA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC+8qAgl/An4jAEHAAmsiAiQAIAIgAkG0AmpB8wwQDikCADcDgAEgAiAAIAJBgAFqEBoiBjoAvwICQAJAAkACQAJAAkAgABDjASIDBEAgAkGoAmogAxDJAgJAAkACQAJAAkACQAJAAkACQCADLQACQQFrDgwCAAMEBQYHCAwPCwoBCyACIAIpA6gCNwOgAiADLQADIAIgAikDoAI3A2AQOSEBIwBBEGsiAyQAIAMgATYCDCADIAAQHSIBNgIIAn8CQCABRQ0AIAMgABAdIgE2AgQgAUUNACAAQZgDakEYEBIgAygCCCEBIAIpAmAhCiADKAIEIQRBNiADKAIMQQFBAUEBEBYiACAENgIUIAAgCjcCDCAAIAE2AgggAEHongE2AgAgAAwBC0EACyEBIANBEGokAAwOCyACIAIpA6gCNwOYAiADLQADIQEgAiACKQOYAjcDaCAAIAJB6ABqIAEQORDIAiEBDA0LIABB3wAQEQRAIAIgAikDqAI3A5ACIAMtAAMhASACIAIpA5ACNwNwIAAgAkHwAGogARA5EMgCIQEMDQsgAiAAEB0iATYChAIgAUUNCyACIAMtAAMQOTYC9AEgAEGYA2pBFBASIAIoAoQCIQMgAikCqAIhCkE4IAIoAvQBQQFBAUEBEBYiASAKNwIMIAEgAzYCCCABQbigATYCAAwMCyACIAAQHSIBNgKEAiABRQ0KIAIgABAdIgE2AvQBIAFFDQogAiADLQADEDk2AowCIABBmANqQRAQEiACKAKEAiEDIAIoAvQBIQRBNyACKAKMAkEBQQFBARAWIgEgBDYCDCABIAM2AgggAUGgoQE2AgAMCwsgAiAAEB0iATYChAIgAUUNCSACIAAQHSIBNgL0ASABRQ0JIAIgAy0AAxA5NgKMAiAAQZgDakEYEBIgAigChAIhAyACKQKoAiEKIAIoAvQBIQRBOiACKAKMAkEBQQFBARAWIgEgBDYCFCABIAo3AgwgASADNgIIIAFBkKIBNgIADAoLIABBCGohBCAAKAIIIAAoAgwQHiEFA0AgAEHfABARRQRAIAIgABAdIgY2AoQCIAZFDQsgBCACQYQCahAfDAELCyACQYQCaiAAIAUQJyACIAAQGyIFNgKMAiAFRQ0JIAIgAkH8AWpB6hIQDikCADcDeCAAIAJB+ABqEBohBSAAKAIIIAAoAgwQHiEGA0AgAEHFABARRQRAIAVFDQsgAiAAEB0iBzYC9AEgB0UNCyAEIAJB9AFqEB8MAQsLIAJB9AFqIAAgBhAnIAIgAy0AAyIBEK4BOgDzASACIAEQOTYC7AEgAEGYA2pBIBASIAIpAoQCIQogAigCjAIhAyACKQL0ASELIAItAL8CIQQgAi0A8wEhBUHAACACKALsAUEBQQFBARAWIgEgBToAHSABIAQ6ABwgASALNwIUIAEgAzYCECABIAo3AgggAUH4ogE2AgAMCQsgAiAAEB0iATYChAIgAUUNByACIAMtAAMiARCuAToAjAIgAiABEDk2AvQBIABBmANqQRAQEiACKAKEAiEDIAItAL8CIQQgAi0AjAIhBUHBACACKAL0AUEBQQFBARAWIgEgBToADSABIAQ6AAwgASADNgIIIAFB3KMBNgIADAgLIAIgABAdIgQ2AvQBIARFDQcgAEEIaiEEIAAoAgggACgCDBAeIQUDQCAAQcUAEBFFBEAgAiAAEB0iBjYChAIgBkUNCSAEIAJBhAJqEB8MAQsLIAJBhAJqIgEgACAFECcgAiADLQADEDk2AowCIAAgAkH0AWogASACQYwCahDHAiEBDAcLIAJBhAJqIABBhANqQQAQOyEEBkAgABAbIQUMBRkgAiQAIAQQJQkACwALIAAoAgAiAyAAKAIEIgUQOkECSQ0FAkAgAyAFQQAQGSIBQeYARwRAIAFB/wFxIgFB1ABHBEAgAUHMAEcNAiAAEMYCIQEMCAsgABCYASEBDAcLAkAgAyAFQQEQGSIBQfAARwRAIAFB/wFxQcwARw0BIAMgBUECEBlBMGtBCUsNAQsgABDFAiEBDAcLQQAhAUEAIQMjAEEgayIFJAACQCAAQeYAEBFFDQAgBUEAOgAfAkAgACgCACIGIAAoAgRBABAZIgdB8gBGDQACQCAHQf8BcSIBQdIARwRAIAFB7ABGDQEgAUHMAEcNA0EBIQEgBUEBOgAfQQEhAwwCC0EBIQNBACEBDAELQQEhASAFQQE6AB8LIAAgBkEBajYCACAAEOMBIgZFDQACQAJAIAYtAAJBAmsOAwECAAILIAVBFGogBigCBBCzAiAFKAIUIAUoAhhqQQFrLQAAQSpHDQELIAUgABAdIgc2AhAgB0UNACAFQQA2AgwCQCADRQ0AIAUgABAdIgM2AgwgA0UNASABRQ0AIAVBEGogBUEMahBOCyAFQRRqIAYQyQIgAEGYA2pBHBASIAUtAB8hASAFKQIUIQogBSgCECEDIAUoAgwhBEHHAEEAQQFBAUEBEBYiACABOgAYIAAgCjcCECAAIAQ2AgwgACADNgIIIABByLcBNgIAIAAhBAsgBUEgaiQAIAQhAQwGCyACIAJB5AFqQcwSEA4pAgA3A1ggACACQdgAahAaBEAgAEEIaiEBIAAoAgggACgCDBAeIQMDQCAAQcUAEBFFBEAgAiAAEJYBIgQ2AqgCIARFDQcgASACQagCahAfDAELCyACQagCaiAAIAMQJyAAQZgDakEUEBJBACACKQKoAhCSAiEBDAYLIAIgAkHcAWpB3hkQDikCADcDUCAAIAJB0ABqEBoEQCMAQSBrIgMkACADQQI2AhwgAyAAEBsiATYCGAJAAkAgAUUNACADIAAQHSIBNgIUIAFFDQAgA0EMaiAAQQEQKEEAIQEgAEHFABARRQ0BIABBmANqQRgQEiADKAIYIQEgAygCFCEEIAMpAgwhCkHFACADKAIcQQFBAUEBEBYiACAKNwIQIAAgBDYCDCAAIAE2AgggAEHguwE2AgAgACEBDAELQQAhAQsgA0EgaiQADAYLIAIgAkHUAWpBoQkQDikCADcDSCAAIAJByABqEBoEQCACIAAQHSIBNgKoAiABRQ0FIAJBAjYChAIjAEEQayIDJAAgAEGYA2pBHBASIANBCGpB3SUQDikDACACKAKoAiACKAKEAhCkASEBIANBEGokAAwGCwJAIAAoAgAiASAAKAIEIgNBABAZQfIARw0AIAEgA0EBEBlBIHJB/wFxQfEARw0AQQAhASMAQUBqIgMkACADQThqEEshBCADIANBMGpBzhoQDikCADcDCAJAAkACQCAAIANBCGoQGgRAIABBCGohASAAKAIIIAAoAgwQHiEFA0AgAEHfABARRQRAIAMgABAbIgY2AiggBkUNBCABIANBKGoQHwwBCwsgA0EoaiAAIAUQJyAEIAMpAyg3AwAMAQsgAyADQSBqQdMPEA4pAgA3AwAgACADEBpFDQILIABBCGohBSAAKAIIIAAoAgwQHiEGA0ACQCAAQdgAEBEEQCADIAAQHSIBNgIcIAFFDQMgAyAAQc4AEBE6ABsgA0EANgIUIABB0gAQEQRAIAMgAEEAEDwiATYCFCABRQ0ECyAAQZgDakEUEBIgAygCHCEHIAMtABshCCADKAIUIQlB1ABBAEEBQQFBARAWIgEgCTYCECABIAg6AAwgASAHNgIIIAFB3LwBNgIAIAMgATYCKAwBCyAAQdQAEBEEQCADIAAQGyIBNgIcIAFFDQMgAEGYA2pBDBASIAMoAhwhB0HVAEEAQQFBAUEBEBYiASAHNgIIIAFByL0BNgIAIAMgATYCKAwBCyAAQdEAEBFFDQIgAyAAEB0iATYCHCABRQ0CIABBmANqQQwQEiADKAIcIQdB1gBBAEEBQQFBARAWIgEgBzYCCCABQbS+ATYCACADIAE2AigLIAUgA0EoaiIBEB8gAEHFABARRQ0ACyABIAAgBhAnIABBmANqQRgQEiAEKQIAIQogASkCACELQdMAQQBBAUEBQQEQFiIAIAs3AhAgACAKNwIIIABBpL8BNgIAIAAhAQwBC0EAIQELIANBQGskAAwGCyACIAJBzAFqQe8PEA4pAgA3A0AgACACQUBrEBoEQCMAQSBrIgMkACADIAAQGyIBNgIcAkACQCABRQ0AIAMgABAdIgE2AhggAUUNACADQRBqIABBARAoIABBCGohASAAKAIMIQQgACgCCCEFA0AgAEHfABARBEAgA0EEaiIGIABBABAoIAMgACAGEEc2AgwgASADQQxqEB8MAQsLIAMgAEHwABAROgAMQQAhASAAQcUAEBFFDQEgA0EEaiAAIAUgBBAeECcgAEGYA2pBJBASIAMoAhwhASADKAIYIQQgAykCECEKIAMpAgQhCyADLQAMIQVBO0EAQQFBAUEBEBYiACAFOgAgIAAgCzcCGCAAIAo3AhAgACAENgIMIAAgATYCCCAAQZDAATYCACAAIQEMAQtBACEBCyADQSBqJAAMBgsgAiACQcQBakHWDxAOKQIANwM4IAAgAkE4ahAaBEAgAiAAEB0iATYCqAIgAUUNBSAAIAJBqAJqEM0CIQEMBgsgAiACQbwBakG6GhAOKQIANwMwIAAgAkEwahAaBEBBACEBIAAoAgAgACgCBEEAEBlB1ABGBEAgAiAAEJgBIgE2AqgCIAFFDQYgAEGYA2pBDBASIAIoAqgCIQNBPkEAQQFBAUEBEBYiASADNgIIIAFB/MABNgIADAcLIAIgABDFAiIDNgKoAiADRQ0GIAAgAkGoAmoQwwIhAQwGCyACIAJBtAFqQdEaEA4pAgA3AyggACACQShqEBoEQCAAQQhqIQEgACgCCCAAKAIMEB4hAwNAIABBxQAQEUUEQCACIAAQTCIENgKoAiAERQ0HIAEgAkGoAmoQHwwBCwsgAkGoAmogACADECcgAEGYA2pBEBASIAIpAqgCIQpBAEEAQQFBAUEBEBYiASAKNwIIIAFB7MEBNgIAIAIgATYChAIgACACQYQCahDDAiEBDAYLIAIgAkGsAWpBrhEQDikCADcDICAAIAJBIGoQGgRAIAIgABAbIgM2AoQCQQAhASADRQ0GIABBCGohAyAAKAIIIAAoAgwQHiEEA0AgAEHFABARRQRAIAIgABCWASIFNgKoAiAFRQ0IIAMgAkGoAmoQHwwBCwsgAkGoAmogACAEECcgAEGYA2pBFBASIAIoAoQCIAIpAqgCEJICIQEMBgsgAiACQaQBakG2DRAOKQIANwMYIAAgAkEYahAaBEAgAEHQCRAgIQEMBgsgAiACQZwBakHNCRAOKQIANwMQIAAgAkEQahAaBEAgAiAAEB0iATYCqAIgAUUNBSAAQZgDakEMEBIgAigCqAIhA0HIAEEAQQFBAUEBEBYiASADNgIIIAFB2MIBNgIADAYLAkACQCAAQfUAEBEEQCACIAAQSSIBNgKEAiABRQ0HQQAhAyACQQA2AvQBIAJBlAFqIAEgASgCACgCGBEAACACIAJBjAFqQZgVEA4pAgA3AwhBACEBAkAgAigClAEgAigCmAEgAkEIahBdRQ0AIAICfyAAQfQAEBEEQCAAEBsMAQsgAEH6ABARRQ0BIAAQHQsiAzYC9AFBASEBCyAAQQhqIQQgACgCCCAAKAIMEB4hBSABDQEDQCAAQcUAEBENAyACIAAQTCIBNgKoAiABRQ0IIAQgAkGoAmoQHwwACwALQQAhAyMAQTBrIgEkACABQQA2AiwgASABQSRqQdcaEA4pAgA3AxACQCAAIAFBEGoQGgRAIAEgABDQASIENgIsIARFDQEgACgCACAAKAIEQQAQGUHJAEYEQCABIABBABBGIgQ2AiAgBEUNAiABIAAgAUEsaiABQSBqEEo2AiwLA0AgAEHFABARRQRAIAEgABCjASIENgIgIARFDQMgASAAIAFBLGogAUEgahCiATYCLAwBCwsgASAAEM8BIgQ2AiAgBEUNASAAIAFBLGogAUEgahCiASEDDAELIAEgAUEYakG5DRAOKQIANwMIIAAgAUEIahAaRQRAIAEgABDPASIDNgIsIANFIAZFcg0BIAAgAUEsahCTAiEDDAELAkAgACgCACAAKAIEQQAQGUEwa0EJTQRAQQEhBANAIAEgABCjASIFNgIgIAVFDQMCQCAERQRAIAEgACABQSxqIAFBIGoQogE2AiwMAQsgBgRAIAEgACABQSBqEJMCNgIsDAELIAEgBTYCLAtBACEEIABBxQAQEUUNAAsMAQsgASAAENABIgQ2AiwgBEUNASAAKAIAIAAoAgRBABAZQckARw0AIAEgAEEAEEYiBDYCICAERQ0BIAEgACABQSxqIAFBIGoQSjYCLAsgASAAEM8BIgQ2AiAgBEUNACAAIAFBLGogAUEgahCiASEDCyABQTBqJAAgAyEBDAcLIANFDQUgBCACQfQBahAfCyACQagCaiIBIAAgBRAnIAJBATYCjAIgACACQYQCaiABIAJBjAJqEMcCIQEMBQsgAgJ/IAMtAAMQrgEEQCAAEBsMAQsgABAdCyIBNgKEAiABRQ0DIAIgAy0AAxA5NgL0ASAAQZgDakEcEBIgAikCqAIgAigChAIgAigC9AEQpAEhAQwECyACIAAQGyIBNgKEAiABRQ0CIAIgABAdIgE2AvQBIAFFDQIgAiADLQADEDk2AowCIABBmANqQRgQEiACKQKoAiEKIAIoAoQCIQMgAigC9AEhBEE9IAIoAowCQQFBAUEBEBYiASAENgIUIAEgAzYCECABIAo3AgggAUGApwE2AgAMAwsgAiAAEB0iATYChAIgAUUNASACIAAQHSIBNgL0ASABRQ0BIAIgABAdIgE2AowCIAFFDQEgAiADLQADEDk2AuwBIABBmANqQRQQEiACKAKEAiEDIAIoAvQBIQQgAigCjAIhBUE5IAIoAuwBQQFBAUEBEBYiASAFNgIQIAEgBDYCDCABIAM2AgggAUGUpgE2AgAMAgsgAiAFNgL0ASAEECUgBUUNASAAQQhqIQYgACgCCCAAKAIMEB4hBCAAQd8AEBEhBQJAAkADQCAAQcUAEBENASACIAAQHSIHNgKEAiAHRQ0EIAYgAkGEAmoiBxAfIAUNAAsgByAAIAQQJyACKAKIAkEBRw0CDAELIAJBhAJqIAAgBBAnIAUgAigCiAJBAUZyRQ0BCyACIAMtAAMQOTYCjAIgAEGYA2pBFBASIAIoAvQBIQMgAikChAIhCkHEACACKAKMAkEBQQFBARAWIgEgCjcCDCABIAM2AgggAUGopQE2AgAMAQtBACEBCyACQcACaiQAIAELCgAgASAAa0ECdQu2AQEEfyAAKAIEIgIgACgCCEYEQCAAKAIAIAIQHkEBdCIFQQJ0IQIgACgCBCEEIAAoAgAhAwJAAkACQCAAEF4EQCACECMiAkUNAiADIAQgAhCtASAAIAI2AgAMAQsgACADIAIQ+QEiAjYCACACRQ0BCyAAIAIgBUECdGo2AgggACACIAMgBBAeQQJ0ajYCBAwBCxDrAQALIAAoAgQhAgsgASgCACEBIAAgAkEEajYCBCACIAE2AgALLAEBfyMAQRBrIgIkACAAQZgDakEQEBIgAkEIaiABEA4pAwAQSCACQRBqJAALFgAgACAAKAIUQQFrNgIUIAAgARAkGgsWACAAIAAoAhRBAWo2AhQgACABECQaCwkAQQggABCTAQspAQF/IABBARDRAiAAIAAoAgQiAkEBajYCBCACIAAoAgBqIAE6AAAgAAsPACAAKAIAIAAtAAQ6AAALnwEBBH9BAyEBIAAoAgQiAkEgTQRAIAAoAggiASAAKAIMIgNBBGpPBEAgACACQQdxNgIEIAAgASACQQN2ayICNgIIIAAgAigAADYCAEEADwsgASADRgRAQQJBASACQSBGGw8LIAAgASABIANrIAJBA3YiBCABIARrIANJIgEbIgNrIgQ2AgggACACIANBA3RrNgIEIAAgBCgAADYCAAsgAQtWAQJ/IAEoAggiAyABKAIMIgQQHiACSQRAEDEACyADIAJBAnRqIgMgBCABQZgDaiAEIANrQQJ1IgRBAnQQEiIDEK0BIAAgAyAEECoaIAFBCGogAhDhAQt7AQJ/IAEoAgAiBCEDIAIEQCABQe4AEBEaIAEoAgAhAwsCQCADIAEoAgQiAhA6RQ0AIAMsAABBMGtBCk8NAANAAkAgAyACEDpFDQAgAywAAEEwa0EJSw0AIAEgA0EBaiIDNgIADAELCyAAIAQgAyAEaxAqGg8LIAAQSxoLlQUBDn8gBEEESQRAQbh/DwsgAygAACIIQQ9xIgdBCksEQEFUDwsgAiAHQQVqNgIAIAMgBGoiAkEEayEMIAJBB2shDyACQQVrIRJBBCEFIAhBBHYhAiAHQQZqIQ1BICAHdCIKQQFyIQsgASgCACEQQX8hEUEBIQ5BACEIIAMhBgJAA0AgCCAQSw0BAkAgDgRAIAYhByAIIQkMAQsgCCEHIAJB//8DcUH//wNGBEADQAJAIAYgEkkEQCAGKAACIAV2IQIgBkECaiEGDAELIAVBEGohBSACQRB2IQILIAdBGGohByACQf//A3FB//8DRg0ACwsgAkEDcSIJQQNGBEADQCAFQQJqIQUgB0EDaiEHIAJBAnYiAkEDcSIJQQNGDQALCyAQIAcgCWoiCUkEQEFQDwsgBUECaiEFAkAgCCAJTwRAIAghCQwBCyAAIAhBAXRqQQAgCSAIa0EBdBAYGgsgDCAGIAVBA3VqIgdJIAYgD0txRQRAIAcoAAAgBUEHcSIFdiECDAELIAJBAnYhAiAGIQcLIAIgCkEBa3EiBiAKQQF0QQFrIg4gC2siCMFJBH8gDUEBawUgAiAOcSICIAhBACACwSAKThtrIQYgDQshCCAAIAlBAXRqIAZBAWsiBjsBACAKIAsgBiAGwUEPdSICcyACa8FrIgtKBEADQCANQQFrIQ0gCyAKQQF1IgpIDQALCyAFIAhqIQUgCUEBaiEIIAZB//8DcUEARyEOIAwgByAFQQN1aiICIAIgDEsgByAPS3EiAhsiBigAACAFIAcgDGtBA3RqIAVBB3EgAhsiBXYhAiALQQFKDQALIAtBAUcNACABIAk2AgBBuH8gBiAFQQdqQQN1aiADayIAIAAgBEsbIRELIBELEgAgACACNgIEIAAgATYCACAAC8EBAQN/IAAtAABBIHFFBEACQCACIAAoAhAiAwR/IAMFIAAQnwINASAAKAIQCyAAKAIUIgRrSwRAIAAgASACIAAoAiQRBQAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQUAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEBQaIAAgACgCFCACajYCFAsLC2kBAX8jAEGAAmsiBSQAIARBgMAEcSACIANMckUEQCAFIAEgAiADayIDQYACIANBgAJJIgEbEBgaIAFFBEADQCAAIAVBgAIQKyADQYACayIDQf8BSw0ACwsgACAFIAMQKwsgBUGAAmokAAsrACAALwAFEEQgAiADak8EQCABQSgQIiAAIAEQFyABQSkQIQ8LIAAgARAXCw8AIAAgAacgAUIgiKcQEAuTAQEGfyMAQRBrIgMkAEEBIQQDQCAAKAIEIAJHBEAgASgCBCIHIQUgBEEBcUUEQCABIANBCGpBwSkQDigCACADKAIMEBAaIAEoAgQhBQtBACEGIAAoAgAgAkECdGooAgAgAUESQQAQLSABKAIEIAVGBEAgASAHELUBIAQhBgsgAkEBaiECIAYhBAwBCwsgA0EQaiQACw8AIAAoAgAgACgCBDYCAAsGABDrAQALqAUBDH8jAEGABGsiCiQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAEEEaiEIQQEgA3QiDEEBayELQYCAAiADdEEQdiEJAkACQCACRQRAQQEhByALIQYMAQsgAkEBakH+A3EhDSALIQZBASEHA0ACQCABIARBAXQiDmovAQAiBUH//wNGBEAgCCAGQQJ0aiAEOgACIAZBAWshBkEBIQUMAQsgB0EAIAkgBcFKGyEHCyAKIA5qIAU7AQACQCABIARBAXIiDkEBdCIPai8BACIFQf//A0cEQCAHQQAgCSAFwUobIQcMAQsgCCAGQQJ0aiAOOgACIAZBAWshBkEBIQULIAogD2ogBTsBACAEQQJqIgQgDUcNAAsgAkEBcQ0BCwJAIAEgBEEBdGovAQAiBUH//wNHBEAgB0EAIAkgBcFKGyEHDAELIAggBkECdGogBDoAAiAGQQFrIQZBASEFCyAKIARBAXRqIAU7AQALIAAgBzsBAiAAIAM7AQAgDEEDdiAMQQF2akEDaiEHQQAhBEEAIQADQAJAIAEgACIFQQF0ai8BACIJwSIAQQBMDQAgAEEBRwRAIAlB/v8BcSENQQAhAANAIAggBEECdGogBToAAgNAIAQgB2ogC3EiBCAGSw0ACyAIIARBAnRqIAU6AAIDQCAEIAdqIAtxIgQgBksNAAsgAEECaiIAIA1HDQALCyAJQQFxRQ0AIAggBEECdGogBToAAgNAIAQgB2ogC3EiBCAGSw0ACwsgBUEBaiEAIAIgBUcNAAtBfyAEDQAaQQAhBANAIAogCCAEQQJ0aiIALQACQQF0aiIBIAEvAQAiAUEBajsBACAAIAMgAWdBH3NrIgI6AAMgACABIAJ0IAxrOwEAIARBAWoiBCAMRw0AC0EACyAKQYAEaiQAC70EAQV/QQAgBGtBH3EhCAJAAkACQCABKAIEIgRBIEsNACACQQRrIQcDQAJAAkAgAQJ/IAEoAggiBSABKAIMIgZBBGpPBEAgASAFIARBA3ZrIgU2AghBACEGIARBB3EMAQsgBSAGRg0BIAEgBSAFIAZrIARBA3YiCSAFIAlrIAZJIgYbIglrIgU2AgggBCAJQQN0awsiBDYCBCABIAUoAAAiBTYCACAGRSAAIAdNcQ0BIARBIEsNAwsDQCABAn8gASgCCCIFIAEoAgwiBkEEak8EQCABIAUgBEEDdmsiBTYCCEEAIQYgBEEHcQwBCyAFIAZGDQQgASAFIAUgBmsgBEEDdiIHIAUgB2sgBkkiBhsiB2siBTYCCCAEIAdBA3RrCyIENgIEIAEgBSgAACIFNgIAIAZFIAAgAkkiBnFFBEAgBg0FDAYLIAMgBSAEdCAIdkEBdGoiBS0AACEGIAEgBCAFLQABajYCBCAAIAY6AAAgAEEBaiEAIAEoAgQiBEEgTQ0ACwwCCyADIAUgBHQgCHZBAXRqIgUtAAAhBiABIAQgBS0AAWo2AgQgACAGOgAAIAMgASgCACABKAIEIgR0IAh2QQF0aiIFLQAAIQYgASAEIAUtAAFqNgIEIAAgBjoAASAAQQJqIQAgASgCBCIEQSBNDQALCyAAIAJPDQELA0AgAyABKAIAIAEoAgQiBHQgCHZBAXRqIgUtAAAhBiABIAQgBS0AAWo2AgQgACAGOgAAIABBAWoiACACSQ0ACwsLegIDfwJ+IwBBEGsiAiQAIAJBCGoiAyAAQQEQKAJAIAIoAgxFDQAgAEHFABARRQ0AIABBmANqQRgQEiABKQIAIQUgAykCACEGQc0AQQBBAUEBQQEQFiIAIAY3AhAgACAFNwIIIABB1KgBNgIAIAAhBAsgAkEQaiQAIAQLEAAgACABQQAgAiADIAQQFgvABQEFfwJAAkACQAJAIAEoAgQiBUEhTwRAQQAgBGtBH3EhCQwBCyACQQdrIQdBACAEa0EfcSEJA0AgAQJ/IAEoAggiBCABKAIMIgZBBGpPBEAgASAEIAVBA3ZrIgQ2AghBACEGIAVBB3EMAQsgBCAGRgRAIAJBAmshBgwFCyABIAQgBCAGayAFQQN2IgggBCAIayAGSSIGGyIIayIENgIIIAUgCEEDdGsLIgU2AgQgASAEKAAAIgQ2AgAgBiAAIAdPcg0CIAAgAyAEIAV0IAl2QQJ0aiIELwEAOwAAIAEgASgCBCAELQACaiIFNgIEIAAgBC0AA2oiBCADIAEoAgAgBXQgCXZBAnRqIgAvAQA7AAAgASABKAIEIAAtAAJqIgU2AgQgBCAALQADaiEAIAVBIUkNAAsLIAJBAmshBgwCCyACQQJrIQYgBUEgSw0BCwNAIAECfyABKAIIIgQgASgCDCIHQQRqTwRAIAEgBCAFQQN2ayIENgIIQQAhByAFQQdxDAELIAQgB0YNAiABIAQgBCAHayAFQQN2IgggBCAIayAHSSIHGyIIayIENgIIIAUgCEEDdGsLIgU2AgQgASAEKAAAIgQ2AgAgByAAIAZLcg0BIAAgAyAEIAV0IAl2QQJ0aiIELwEAOwAAIAEgASgCBCAELQACaiIFNgIEIAAgBC0AA2ohACAFQSBNDQALCyAAIAZNBEADQCAAIAMgASgCACAFdCAJdkECdGoiBC8BADsAACABIAEoAgQgBC0AAmoiBTYCBCAAIAQtAANqIgAgBk0NAAsLAkAgACACTw0AIAAgAyABKAIAIAV0IAl2IgJBAnRqIgAtAAA6AAAgAQJ/IAAtAANBAUYEQCABKAIEIAAtAAJqDAELIAEoAgQiAEEfSw0BQSAgACADIAJBAnRqLQACaiIAIABBIE8bCzYCBAsLKQAgAEEVQQBBAUEBQQEQFiIAIAI2AhAgACABNwIIIABBoJUBNgIAIAALGQAgACABEB4gAk0EQBAxAAsgACACQQJ0agsIACAAwEEBdQsHACABIABrCxwAIAAgATYCACAAIAEtAAA6AAQgASACOgAAIAALkAgBCH8jAEEQayIFJAACQAJAIAAoAgAgACgCBEEAEBkiAkHaAEcEQCACQf8BcUHOAEcNASABIQNBACEBIwBBEGsiBCQAAkAgACICQc4AEBFFDQACQAJ/IABByAAQEUUEQCAAEJcBIQAgAwRAIAMgADYCBAsCQCACQc8AEBEEQCADRQ0EQQIhAAwBCyACQdIAEBEhACADRQ0DC0EIDAELIANFDQFBASEAQRALIANqIAA6AAALIARBADYCDCACQZQBaiEHQQAhAANAAkACQCAEAn8CQCACQcUAEBFFBEAgAwRAIANBADoAAQtBACEBAkACQAJAAkACQCACKAIAIgYgAigCBCIIQQAQGUH/AXEiCUHTAGsOAgMBAAsgCUHEAEYNASAJQckARw0FIABFDQogBCACIANBAEcQRiIGNgIIIAZFDQogAC0ABEEtRg0KIAMEQCADQQE6AAELIAQgAiAEQQxqIARBCGoQSiIANgIMDAcLIABFDQIMBwsgBiAIQQEQGUEgckH/AXFB9ABHDQMgAA0GIAIQ5gEMBAsCQCAGIAhBARAZQfQARgRAIAIgBkECajYCACACQcUXECAhAQwBCyACEOIBIgFFDQYLIAEtAARBG0YNAiAADQUgBCABNgIMIAEhAAwGCyACEJgBDAILQQAhASAARQ0FIAIoApQBIAIoApgBELIBDQUgBxC2AiAAIQEMBQsgAiADIAAgARDAAgsiADYCDCAARQ0BCyAHIARBDGoQHyACQc0AEBEaDAELC0EAIQELIARBEGokACABIQIMAgsjAEHgAGsiAiQAAkAgAEHaABARRQ0AIAIgABBRIgQ2AlwgBEUNACAAQcUAEBFFDQAgAEHzABARBEAgACAAKAIAIAAoAgQQmwI2AgAgAiAAQc8SECA2AhAgACACQdwAaiACQRBqENMBIQMMAQsgAkEQaiAAENACIQQCQAZAIABB5AAQEQRAIAJBCGoiBiAAQQEQKCAAQd8AEBFFDQIgAiAAIAEQPCIBNgIIIAFFDQIgACACQdwAaiAGENMBIQMMAgsgACABEDwhARkgAiQAIAQQsQEJAAsgAiABNgIIIAFFDQAgACAAKAIAIAAoAgQQmwI2AgAgACACQdwAaiACQQhqENMBIQMLIAQQsQELIAJB4ABqJAAgAyECDAELQQAhAiAFQQA6AAsgBSAAIAEgBUELahDLAiIDNgIMIANFDQAgBS0ACyECIAAoAgAgACgCBEEAEBlByQBGBEAgAkEBcUUEQCAAQZQBaiAFQQxqEB8LQQAhAiAFIAAgAUEARxBGIgM2AgQgA0UNASABBEAgAUEBOgABCyAAIAVBDGogBUEEahBKIQIMAQtBACADIAJBAXEbIQILIAVBEGokACACC+8GARh/IwBBEGsiESQAIAAoAsABIQYgACgCXAJ/AkACQAJAIARBBWsOAgECAAsgASgAAEGx893xeWxBICAGa3YMAgsgASkAAEKAgIDYy5vvjU9+QcAAIAZrrYinDAELIAEpAABCgIDs/Mub741PfkHAACAGa62IpwtBAnRqIgcoAgAhBCAAKAIIIRIgACgCDCEQIAAoAmQhFSAAKAK8ASEKIAAoAhghDCAAKAIQIQYgACgCxAEhDSAAKAK4ASEIIAcgASAAKAIEIgdrIg42AgAgFSAOQX8gCkEBa3RBf3MiFnFBA3RqIQsgDkEJaiEPAn8gBiADQQEgCHQiAGsgBiADIAZrIABLGyAMGyIaIARLBEAgC0IANwIAQQAMAQtBACEMIA4gFmsiAEEAIAAgDk0bIRcgC0EEaiEKIAcgEGohGyAQIBJqIRwgAkEBayEdIAJBA2shGEEBIA10IRlBCCEIQQAhDQNAIAEgDCANIAwgDUkbIglqIQMCfwJ/AkAgBUEAIAQgCWogEEkbRQRAIAQgB2ogCWohBiADIBhPBEAgAyEADAILIAMiACgAACITIAYoAAAiFEcEQCATIBRzaEEDdgwDCwNAIAZBBGohBiAAQQRqIgAgGE8NAiAAKAAAIhMgBigAACIURg0ACyAAIBMgFHNoQQN2aiADawwCCyASIAcgAyAEIBJqIAlqIAIgHCAbEA8gCWoiACAEaiIGIBBJGwwCCwJAIAAgHU8NACAGLwAAIAAvAABHDQAgBkECaiEGIABBAmohAAsgACACSQR/IAAgBi0AACAALQAARmoFIAALIANrCyAJaiIAIARqIQYgBwshAyAGIA8gACAPIARrSxsgDyAAIAhLIgYbIQ8gACAIIAYbIQgCQCAAIAFqIgkgAkYNACAVIAQgFnFBA3RqIQYCQAJAIAMgBGogAGotAAAgCS0AAEkEQCALIAQ2AgAgBCAXSw0BIBFBDGohCwwDCyAKIAQ2AgAgBCAXSwRAIAAhDSAGIQoMAgsgEUEMaiEKDAILIAAhDCAGQQRqIgshBgsgGUEBayIZRQ0AIAYoAgAiBCAaTw0BCwsgCkEANgIAIAtBADYCAEHAASAIQYADayIAIABBwAFPG0EAIAhBgANLGwshBCARQRBqJAAgBCAPIA5rQQhrIgAgACAESRsLJwEBfyAALQAGQQNxIgJBAkcEQCACRQ8LIAAgASAAKAIAKAIEEQEAC3EBAX8gAkUEQCAAKAIEIAEoAgRGDwsgACABRgRAQQEPCwJAIAAoAgQiAi0AACIARSAAIAEoAgQiAS0AACIDR3INAANAIAEtAAEhAyACLQABIgBFDQEgAUEBaiEBIAJBAWohAiAAIANGDQALCyAAIANGCxEAIAAQXkUEQCAAKAIAEBULC7ETASd/IwBBEGsiICQAIAAoAsABIQYgACgCXCEJQQEgACgCxAF0IRYgACgCZCEcAkACQCAJAn8CQAJAAkAgBEEFaw4CAQIACyABKAAAQbHz3fF5bEEgIAZrdgwCCyABKQAAQoCAgNjLm++NT35BwAAgBmutiKcMAQsgASkAAEKAgOz8y5vvjU9+QcAAIAZrrYinC0ECdGoiKSgCACIGIAEgACgCBCIOayIaQX8gACgCvAFBAWt0QX9zIiNrIglBACAJIBpNGyIlIAAoAhAiCCAaQQEgACgCuAF0IglrIAggGiAIayAJSxsgACgCGBsiJiAlICZLGyInSwRAIBYhDwNAIBwgBiIJICNxQQN0aiIKKAIEIghBAUcgD0ECSXJFBEAgCiAHNgIEIA9BAWshDyAGIQcgCigCACIGICdLDQEMAwsLIAhBAUYEQCAKQgA3AgALIAchCSAHDQELIAAoAgghFwwBCyAcQQRqISwgACgCCCEXA0AgLCAJIhAgI3FBA3RqKAIAIQkgHCAQQX8gACgCvAFBAWt0QX9zIhFxQQN0aiIhQQRqIRICQCAPRQ0AICEoAgAiCCAQQQEgACgCuAF0IgdrIAAoAhAiBiAQIAZrIAdLGyIdTQ0AIA4gACgCDCIiaiEbIBcgDiAQICJJIgYbIBBqISggFyAiaiIqIAIgBhsiHkEBayErIB5BA2shJEEAIRMgDyEYQQAhFANAAkACQCAFQQFHIAggEyAUIBMgFEkbIhlqICJPciIGRSAQICJPcUUEQCAOIBcgBhsgCGoiDSAZaiEHIBkgKGoiCiAkTwRAIAohBgwCCyAKIgYoAAAiCyAHKAAAIgxHBEAgCyAMc2hBA3YgGWohBgwDCwNAIAdBBGohByAGQQRqIgYgJE8NAiAGKAAAIgsgBygAACIMRg0ACyAGIAsgDHNoQQN2aiAKayAZaiEGDAILIAggF2oiFSAZaiIKIQcgGSAoaiIMIQYgFSAIIA5qICogCgJ/AkAgDCAqIApraiILIB4gCyAeSRsiFUEDayIfIAxNDQAgDCgAACINIAooAAAiC0cEQCALIA1zaEEDdgwCCwNAIAdBBGohByAGQQRqIgYgH08NASAGKAAAIg0gBygAACILRg0ACyAGIAsgDXNoQQN2aiAMawwBCwJAIAYgFUEBa08NACAHLwAAIAYvAABHDQAgB0ECaiEHIAZBAmohBgsgBiAVSQR/IAYgBy0AACAGLQAARmoFIAYLIAxrCyINakYEfyAbIQcgDCANaiIKIQYCfwJAIAogJE8NACAKKAAAIgsgBygAACIMRwRAIAsgDHNoQQN2DAILA0AgB0EEaiEHIAZBBGoiBiAkTw0BIAYoAAAiCyAHKAAAIgxGDQALIAYgCyAMc2hBA3ZqIAprDAELAkAgBiArTw0AIAcvAAAgBi8AAEcNACAHQQJqIQcgBkECaiEGCyAGIB5JBH8gBiAHLQAAIAYtAABGagUgBgsgCmsLIA1qBSANCyAZaiIGIAhqICJJGyENDAELAkAgBiArTw0AIAcvAAAgBi8AAEcNACAHQQJqIQcgBkECaiEGCyAGIB5JBH8gBiAHLQAAIAYtAABGagUgBgsgCmsgGWohBgsgBiAoaiIKIB5GDQEgHCAIIBFxQQN0aiEHAkACQCAGIA1qLQAAIAotAABJBEAgISAINgIAIAggJ0sNASAgQQxqISEMBAsgEiAINgIAIAggJ0sEQCAHIRIgBiEUDAILICBBDGohEgwDCyAHQQRqIgchISAGIRMLIBhBAWsiGEUNASAHKAIAIgggHUsNAAsLIBJBADYCACAhQQA2AgAgD0EBaiEPIAkNAAsLIAAoAgwhHSApKAIAIQYgKSAaNgIAIBpBCWohFSAcIBogI3FBA3RqIh9BBGohDwJAIAYgJk0EQEEAIQoMAQsgDiAdaiELIBcgHWohECACQQFrIQwgAkEDayENQQAhCiAFQQFHIRJBACETQQAhFANAIAEgFCATIBMgFEsbIhFqIQkCfwJAIBJFIAYgEWogHUlxRQRAIAYgDmogEWohCCAJIA1PBEAgCSEHDAILIAkiBygAACIYIAgoAAAiG0cEQCAYIBtzaEEDdiARaiEHIA4MAwsDQCAIQQRqIQggB0EEaiIHIA1PDQIgBygAACIYIAgoAAAiG0YNAAsgByAYIBtzaEEDdmogCWsgEWohByAODAILIBcgDiAJIAYgF2ogEWogAiAQIAsQDyARaiIHIAZqIB1JGwwBCwJAIAcgDE8NACAILwAAIAcvAABHDQAgCEECaiEIIAdBAmohBwsgAiAHSwR/IAcgCC0AACAHLQAARmoFIAcLIAlrIBFqIQcgDgshCQJAIAcgCk0NACADKAIAZyAaIAZrIghBAWpnayAHIAprQQJ0SARAIAMgCEEDajYCACAHIQoLIAYgB2ogFSAHIBUgBmtLGyEVIAEgB2ogAkcNACAWQQAgBUECRxshFgwCCyAcIAYgI3FBA3RqIQgCQAJAIAYgCWogB2otAAAgASAHai0AAEkEQCAfIAY2AgAgBiAlSw0BICBBCGohHwwECyAPIAY2AgAgBiAlSwRAIAchEyAIIQ8MAgsgIEEIaiEPDAMLIAchFCAIQQRqIh8hCAsgFkEBayIWRQ0BIAgoAgAiBiAmSw0ACwsgD0EANgIAIB9BADYCAAJAIBZFIAVBAkdyDQAgACgCtAEiCSgCwAEhBiAJKAJcAn8CQAJAAkAgBEEFaw4CAQIACyABKAAAQbHz3fF5bEEgIAZrdgwCCyABKQAAQoCAgNjLm++NT35BwAAgBmutiKcMAQsgASkAAEKAgOz8y5vvjU9+QcAAIAZrrYinC0ECdGooAgAiByAJKAIQIg1NDQAgCSgCACIYIAkoAgQiG2siC0F/IAkoArwBQQFrdEF/cyIQayANIAsgDWsgEEsbIQwgDiAAKAIQIAtraiEPIA4gACgCDGohEyAJKAJkIRRBACEIQQAhBANAIAcgD2ohEiAKIAEgBCAIIAQgCEkbIgVqIAcgG2oiDiAFaiACIBggExAPIAVqIgZJBEAgAygCAEEBamcgASASayIFQQFqZ2sgBiAKa0ECdEgEQCADIAVBA2o2AgAgBiEKCyABIAZqIAJGDQILIBQgByAQcUEDdGohCQJAIA4gEiAGIAdqIAtJGyAGai0AACABIAZqLQAASQRAIAcgDE0NAyAJQQRqIQkgBiEEIAghBgwBCyAHIAxNDQILIBZBAWsiFkUNASAGIQggCSgCACIHIA1LDQALCyAAIBVBCGs2AhwgIEEQaiQAIAoL9QIBBX8CQAJAIANB2wtNBEAgAEEAIAEoAgAiBkECdEEEahAYIQcgA0UNAiACIANqIQMDQCAHIAItAABBAnRqIgAgACgCAEEBajYCACACQQFqIgIgA0kNAAsgBkEBaiEFQQAhAiAGIQMDQCACIgBBAWohAiAFIghBAWshBSADIgRBAWshAyAHIARBAnRqKAIARQ0ACyABIAQ2AgBBACEBQQAhAkEAIQUgBiAAa0EDTwRAIAhBfHEhAkEAIQADQCAHIABBAnRqIgMoAgwiCSADKAIIIgYgAygCBCIEIAMoAgAiAyAFIAMgBUsbIgMgAyAESRsiAyADIAZJGyIDIAMgCUkbIQUgAEEEaiIAIAJHDQALCyAIQQNxIgNFDQEDQCAHIAJBAnRqKAIAIgAgBSAAIAVLGyEFIAJBAWohAiABQQFqIgEgA0cNAAsMAQtBfyEFIARBA3ENACAAIAEgAiADQQAgBBDCASEFCyAFDwsgAUEANgIAQQALKgEBfyAALwAFQQp2QQNxIgJBAkcEQCACRQ8LIAAgASAAKAIAKAIIEQEACwoAIABBGnRBGnULHAAgACABNgIAIAAgASgCADYCBCABIAI2AgAgAAuJBQIMfwF+IwBBIGsiAyQAAkAgAEHJABARRQ0AIAEEQCAAQcwCaiICEE8gAyAAQaACaiIFNgIMIAIgA0EMahAfIAUQTwsgACgCCCAAKAIMEB4hCyADQQA2AhwgAEGgAmohDCAAQQhqIQoCQAJAA0AgAEHFABARDQECQCABBEAgAyAAEEwiAjYCGCACRQ0EIAogA0EYahAfIAMgAjYCFAJAIAItAAQiBUEpRwRAIAVBIkcNASADIAIoAgw2AhQMAQsgA0EMaiACKQIIEMECIABBmANqQRAQEiADKQIMIQ5BKEEAQQFBAUEBEBYiBiAONwIIIAZBwM8BNgIAIAYgBi8ABUG/YHEiB0GAFXIiCDsABSAOpyICIQQgAiAOQiCIpxCmAiEFA0AgBCAFRiIJRQRAIAQoAgAgBEEEaiEELwAFQYAGcUGAAkYNAQsLIAkEQCAGIAdBgBNyIgg7AAULIAIhBANAIAQgBUYiB0UEQCAEKAIAIARBBGohBC8ABUGAGHFBgAhGDQELCyAHBEAgBiAIQf9ncUGACHIiCDsABQsDQCACIAVGIgRFBEAgAigCACACQQRqIQIvAAVBwAFxQcAARg0BCwsgBARAIAYgCEG//gNxQcAAcjsABQsgAyAGNgIUCyAMIANBFGoQHwwBCyADIAAQTCICNgIMIAJFDQMgCiADQQxqEB8LIABB0QAQEUUNAAsgAyAAEJkBIgE2AhxBACECIAFFDQIgAEHFABARRQ0CCyADQQxqIAAgCxAnIABBmANqQRQQEiADKQIMIQ4gAygCHCEBQStBAEEBQQFBARAWIgIgATYCECACIA43AgggAkGs0AE2AgAMAQtBACECCyADQSBqJAAgAgsTACAAQZgDakEQEBIgASkCABBICyIAIABBCEEAQQFBAUEBEBYiACABNwIIIABBqJgBNgIAIAALzQEBBH8jAEEwayIBJAAgAUEANgIsAkAgACABQSxqEK8BDQAgASgCLCICQQFrIAAoAgAiBCAAKAIEEDpPDQAgAUEgaiAEIAIQKiEDIAAgACgCACACajYCACABIAMpAwA3AxggAUEQakHbGhAOIQIgASABKQMYNwMIIAEgAikCADcDACABQQhqIAEQmgEEQCMAQRBrIgIkACAAQZgDakEQEBIgAkEIakHfJBAOKQMAEEggAkEQaiQAIQMMAQsgACADEEchAwsgAUEwaiQAIAMLPwAgAEGYA2pBEBASIAEoAgAhASACKAIAIQJBLUEAQQFBAUEBEBYiACACNgIMIAAgATYCCCAAQZjRATYCACAACwsAIABCADcCACAAC60DAgV/AX4jAEEQayIDJAACQAJAAkACQAJAAkAgACgCACIBIAAoAgQiBEEAEBlBygBrQR93DggBAgQEBAMEAAQLIAAgAUEBajYCACAAEB0iAUUNBCABQQAgAEHFABARGyECDAQLIAAgAUEBajYCACAAQQhqIQEgACgCCCAAKAIMEB4hBANAIABBxQAQEUUEQCADIAAQTCIFNgIIIAVFDQUgASADQQhqEB8MAQsLIANBCGoiAiAAIAQQJyAAQZgDakEQEBIgAikCACEGQSlBAEEBQQFBARAWIgAgBjcCCCAAQYzSATYCACAAIQIMAwsgASAEQQEQGUHa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IgRB/wFxIgJrdjYAACABIAJBA3ZqIgUgByADIAtqLQAAQQJ0aigCACIGIAcgAyAKai0AAEECdGooAgAiAXYgAXIgByADIAhqLQAAQQJ0aigCACICdiAQIAIgASAGamoiAXZyIAJyIgZBICABIARBB3FqIgFB/wFxIgJrdjYAACABQQdxIQQgBSACQQN2aiEBIANBBksgA0EGayEDDQALCyABIAZBAXZBgICAgHhyQSAgBEH/////B2siAkEPcSIDa3Y2AAAgCSABIANBA3ZqIgEgASAJSxsiASAJTw0AIAJBB3FBAEcgAGsgAWohDAsgDAsEAEEBCw0AIAAgAUECdGooAgALGwAgASgCEEF/RgRAIAFBADYCDCABIAA2AhALCzABAX8gAC8ABSICQcABcUGAAUcEQCACQf8BcUHAAEkPCyAAIAEgACgCACgCABEBAAv6AQEFfyABIAIoAgQiBUYEfyACKAIAIQIjAEEQayIEJAAgBCABNgIMIAQgBTYCCAJAAn8CQAJAIARBCGoiAyAEQQxqIgYgAygCACAGKAIAELYBGygCACIDQQRPBEAgACACckEDcQ0BA0AgACgCACACKAIARw0CIAJBBGohAiAAQQRqIQAgA0EEayIDQQNLDQALCyADRQ0BCwNAIAAtAAAiBiACLQAAIgdGBEAgAkEBaiECIABBAWohACADQQFrIgMNAQwCCwsgBiAHawwBC0EACyIADQBBACEAIAEgBUYNAEF/QQEgASAFSRshAAsgBEEQaiQAIAAFQQELRQsNACAAKAIAIABBDGpGC+8DAQZ/AkAgAEUNACAAKAKQ6wENACAAKAKE6wEhBCAAKAKA6wEhAwJAIAAoApTrASIBRQ0AIAEoArjVASEFIAEoArTVASECAkACQCABKAIAIgYEQCACRQ0BIAUgBiACEQAAIAUgASACEQAADAMLIAJFDQEgBSABIAIRAAAMAgsgBhAVCyABEBULIABBADYCpOsBIABCADcClOsBAkAgACgCuOsBIgFFDQAgAwRAIAQgASADEQAADAELIAEQFQsgAEEANgK46wECQCAAKALc6wEiAUUNAAJAAkACQCAAKALg6wFBBWsOAwABAgMLIAEoAgAQFSABKAIwEBUgASgCPBAVIAEQFQwCCyABKAIAEBUgASgCHBAVIAEoAigQFSABEBUMAQsgASgC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NwMIIAAgAUEIahAaGiABIABBABC6AiIDNgIcIANFDQAgAyECIAAoAgAgACgCBEEAEBlByQBHDQAgASAAQQAQRiICNgIYIAIEfyAAIAFBHGogAUEYahBKBUEACyECCyABQTBqJAAgAguGAQECfyMAQRBrIgIkAAJAAkAgACgCACAAKAIEQQAQGSIBQcQARwRAIAFB/wFxQdQARw0BIAIgABCYASIBNgIMIAFFDQIgAEGUAWogAkEMahAfDAILIAIgABDmASIBNgIIIAFFDQEgAEGUAWogAkEIahAfDAELIAAQ4gEhAQsgAkEQaiQAIAELDwAgACAAKAIAIAFyNgIACzEBAX8gAEIANwIMIAAgAEEcajYCCCAAIABBDGoiATYCBCAAIAE2AgAgAEIANwIUIAALPwAgAEGYA2pBEBASIAEoAgAhASACKAIAIQJBGkEAQQFBAUEBEBYiACACNgIMIAAgATYCCCAAQdjOATYCACAACyIAIABBKkEAQQFBAUEBEBYiACABNgIIIABBrLgBNgIAIAALPwEBfwJAIAAgAUYNAANAIAAgAUEBayIBTw0BIAAtAAAhAiAAIAEtAAA6AAAgASACOgAAIABBAWohAAwACwALCxcAIABBMGtBCkkgAEEgckHhAGtBBklyCwkAIAAgARCjAgsEACAACykAIABBBUEAQQFBAUEBEBYiACACNwIMIAAgATYCCCAAQfzeATYCACAACxwAIAAgACgCACABajYCACAAIAAoAgQgAWs2AgQLRQEDfyMAIQEGQBBTIgIQuQEiAEHUkwE2AgAgAEEEakGKFBDwASAAQZiUATYCABkgASQAIAIQUgkACyAAQbiUAUELEFAACxYAIAAgASgCCCIAIAAoAgAoAhgRAAAL9wMBBn8jAEEQayIGJAACQCAAQcDpAWogASACIAAoAuzqARCbASIBQYh/Sw0AIAEEQEG4fyEBDAELAkAgACgCrOsBQQFHDQAgACgCqOsBIgNFDQAgACgCmOsBRQ0AIAYgACgC3OkBIgQ2AgwgAygCBEEBayIFIAZBDGpBBBDlAadxIQEgAygCACEDA0AgAyABQQJ0aigCACIHRQ0BIAQgBygCqNUBIghHBEAgASAFcUEBaiEBIAgNAQsLAkAgACgClOsBIgFFDQAgASgCuNUBIQQgASgCtNUBIQMCQAJAIAEoAgAi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ASABKAIMIA1qNgIMIAEoAgQhAyANQYCABEkNACABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAk2AgAgAyANOwEEIAwhByAIIQwgCkEDayIFQYCABEkNAwwCCwJAIAUgGE8NACAALwAAIAUvAABHDQAgAEECaiEAIAVBAmohBQsgBSAUSQR/IAUgAC0AACAFLQAARmoFIAULIAhrCyEQIAQgA2shCSABKAIMIQUCQAJAIAQgEU0EQCADKQAAISAgBSADKQAINwAIIAUgIDcAACABKAIMIQYgCUEQTQRAIAEgBiAJajYCDCABKAIEIQMMAwsgAykAECEgIAYgAykAGDcAGCAGICA3ABAgCUEhSA0BIAYgCWohACADQRBqIQMgBkEgaiEFA0AgAykAECEgIAUgAykAGDcACCAFICA3AAAgAykAICEgIAUgAykAKDcAGCAFICA3ABAgA0EgaiEDIAVBIGoiBSAASQ0ACwwBCyADIBFNBEAgAykAACEgIAUgAykACDcACCAFICA3AAAgBSARIANrIghqIQAgCEERTgRAIAVBEGohBQNAIAMpABAhICAFIAMpABg3AAggBSAgNwAAIAMpACAhICAFIAMpACg3ABggBSAgNwAQIANBIGohAyAFQSBqIgUgAEkNAAsLIAAhBSARIQMLIAMgBE8NACAGIANrQQAhBiAEIANrQQdxIgAEQANAIAUgAy0AADoAACAFQQFqIQUgA0EBaiEDIAZBAWoiBiAARw0ACwtBB0kNAANAIAUgAy0AADoAACAFIAMtAAE6AAEgBSADLQACOgACIAUgAy0AAzoAAyAFIAMtAAQ6AAQgBSADLQAFOgAFIAUgAy0ABjoABiAFIAMtAAc6AAcgBUEIaiEFIANBCGoiAyAERw0ACwsgASABKAIMIAlqNgIMIAEoAgQhAyAJQYCABEkNACABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAQQQRqIQogA0EBNgIAIAMgCTsBBCAMIQggEEEBaiIFQf//A00NAQsgAUECNgIkIAEgAyABKAIAa0EDdTYCKCAIIQwLIAMgBTsBBiABIANBCGoiADYCBAJAIAQgCmoiAyAXSw0AIBMgDiAPQQJqIgZqKQAAIiBC48iVvcub741PfiAjiKdBAnRqIAY2AgAgEyADQQJrIgQpAABC48iVvcub741PfiAjiKdBAnRqIAQgDms2AgAgGiAgQoDGlf3Lm++NT34gIoinQQJ0aiAGNgIAIBogA0EBayIEKQAAQoDGlf3Lm++NT34gIoinQQJ0aiAEIA5rNgIAIAwhBSAHIQ8DQAJAIA8hDCAFIQ8gDEUNACADKAAAIAMgDGsoAABHDQAgA0EEaiIEIAxrIQYCfwJAIAQgEk8EQCAEIQUMAQsgBCIFKAAAIgggBigAACIHRwRAIAcgCHNoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSASTw0BIAUoAAAiCCAGKAAAIgdGDQALIAUgByAIc2hBA3ZqIARrDAELAkAgBSAYTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIBRJBH8gBSAGLQAAIAUtAABGagUgBQsgBGsLIQUgGiADKQAAIiBCgMaV/cub741PfiAiiKdBAnRqIAMgDmsiBDYCACATICBC48iVvcub741PfiAjiKdBAnRqIAQ2AgAgAyARTQRAIAMpAAAhICABKAIMIgAgAykACDcACCAAICA3AAAgASgCBCEACyAAQQE2AgAgAEEAOwEEIAVBAWoiBkGAgARPBEAgAUECNgIkIAEgACABKAIAa0EDdTYCKAsgBUEEaiEEIAAgBjsBBiABIABBCGoiADYCBCAMIQUgDyEHIAMgBGoiAyAXTQ0BDAILCyAMIQcgDyEMCyADIQYgA0EBaiIFIBdNDQALDAILIAUgF0sNASAUQSBrIREgFEEBayEYIBRBA2shEkHAACAAKAK8AWutISJBwAAgACgCwAFrrSEjA0AgBkGAAmohCCAOIBMgBikAACIhQuPIlb3Lm++NT34gI4inIgBBAnRqKAIAIgpqIQsCQAJAAn8CQAJAAkACQCAMRQRAQQEhEANAIBogIUKAgOz8y5vvjU9+ICKIp0ECdGoiBCgCACEJIAQgBiAOayIPNgIAIBMgAEECdGogDzYCACAFKQAAIiBC48iVvcub741PfiAjiKchACAKIBlLBEAgCykAACAhUQ0ECyAOIBMgAEECdGooAgAiCmohCyAJIBlLBEAgCSAOaiIVKAAAIAYoAABGDQMLIAUgCE8EQCAQQQFqIRAgCEGAAmohCAsgICEhIAUhBiAFIBBqIgQhBSAEIBdNDQALQQAhDAwKC0EAIAxrIQ1BASEQA0AgGiAhQoCA7PzLm++NT34gIoinQQJ0aiIEKAIAIQkgBCAGIA5rIg82AgAgEyAAQQJ0aiAPNgIAIAZBAWoiBCANaigAACAGKAABRgRAIAZBBWoiCCANaiEAIAggEk8EQCAIIQUMBgsgCCIFKAAAIg0gACgAACIJRwRAIAkgDXNoQQN2DAcLA0AgAEEEaiEAIAVBBGoiBSASTw0GIAUoAAAiDSAAKAAAIglGDQALIAUgCSANc2hBA3ZqIAhrDAYLIAUpAAAiIELjyJW9y5vvjU9+ICOIpyEAIAogGUsEQCALKQAAICFRDQMLIA4gEyAAQQJ0aigCACIKaiELIAkgGUsEQCAJIA5qIhUoAAAgBigAAEYNAgsgBSAITwRAIBBBAWohECAIQYACaiEICyAgISEgBSEGIAUgEGoiBCEFIAQgF00NAAsMCQsCfwJAAkAgCiAZTQ0AIAspAAAgIFINACALQQhqIQcgBUEIaiIEIBJPBEAgBCEGDAILIAQiBigAACIJIAcoAAAiCEcEQCAIIAlzaEEDdgwDCwNAIAdBBGohByAGQQRqIgYgEk8NAiAGKAAAIgkgBygAACIIRg0ACyAGIAggCXNoQQN2aiAEawwCCyAVQQRqIQsCfwJAIAZBBGoiBCASTwRAIAQhBwwBCyAEIgcoAAAiCSALKAAAIghHBEAgCCAJc2hBA3YMAgsDQCALQQRqIQsgB0EEaiIHIBJPDQEgBygAACIJIAsoAAAiCEYNAAsgByAIIAlzaEEDdmogBGsMAQsCQCAHIBhPDQAgCy8AACAHLwAARw0AIAtBAmohCyAHQQJqIQcLIAcgFEkEfyAHIAstAAAgBy0AAEZqBSAHCyAEawsgBiAVayEIQQRqIQogAyAGTwRAIAYhBAwECyAVIBZNBEAgBiEEDAQLA0AgBkEBayIELQAAIBVBAWsiFS0AAEcEQCAGIQQMBQsgCkEBaiEKIAMgBE8NBCAEIQYgFSAWSw0ACwwDCwJAIAYgGE8NACAHLwAAIAYvAABHDQAgB0ECaiEHIAZBAmohBgsgBiAUSQR/IAYgBy0AACAGLQAARmoFIAYLIARrCyAFIAtrIQhBCGohCiALIBZNBEAgBSEEDAILIAUhBCADIAVPDQEDQCAEQQFrIgYtAAAgC0EBayILLQAARw0CIApBAWohCiADIAZPBEAgBiEEDAMLIAYhBCALIBZLDQALDAELIAtBCGohCgJ/AkAgBkEIaiIEIBJPBEAgBCEHDAELIAQiBygAACIJIAooAAAiCEcEQCAIIAlzaEEDdgwCCwNAIApBBGohCiAHQQRqIgcgEk8NASAHKAAAIgkgCigAACIIRg0ACyAHIAggCXNoQQN2aiAEawwBCwJAIAcgGE8NACAKLwAAIAcvAABHDQAgCkECaiEKIAdBAmohBwsgByAUSQR/IAcgCi0AACAHLQAARmoFIAcLIARrCyAGIAtrIQhBCGohCiALIBZNBEAgBiEEDAELIAMgBk8EQCAGIQQMAQsDQCAGQQFrIgQtAAAgC0EBayILLQAARwRAIAYhBAwCCyAKQQFqIQogAyAETw0BIAQhBiALIBZLDQALCyAQQQNNBEAgEyAAQQJ0aiAFIA5rNgIACyAIQQNqIQkgBCADayENIAEoAgwhBQJAAkAgBCARTQRAIAMpAAAhICAFIAMpAAg3AAggBSAgNwAAIAEoAgwhBiANQRBNBEAgASAGIA1qNgIMIAEoAgQhAwwDCyADKQAQISAgBiADKQAYNwAYIAYgIDcAECANQSFIDQEgBiANaiEAIANBEGohAyAGQSBqIQUDQCADKQAQISAgBSADKQAYNwAIIAUgIDcAACADKQAgISAgBSADKQAoNwAYIAUgIDcAECADQSBqIQMgBUEgaiIFIABJDQALDAELIAMgEU0EQCADKQAAISAgBSADKQAINwAIIAUgIDcAACAFIBEgA2siBmohACAGQRFOBEAgBUEQaiEFA0AgAykAECEgIAUgAykAGDcACCAFICA3AAAgAykAICEgIAUgAykAKDcAGCAFICA3ABAgA0EgaiEDIAVBIGoiBSAASQ0ACwsgACEFIBEhAwsgAyAETw0AQQAhACADIQYgBCADa0EHcSIHBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiAAQQFqIgAgB0cNAAsLIAMgBGtBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAERw0ACwsgASABKAIMIA1qNgIMIAEoAgQhAyANQYCABEkNACABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAk2AgAgAyANOwEEIAwhByAIIQwgCkEDayIFQYCABEkNAwwCCwJAIAUgGE8NACAALwAAIAUvAABHDQAgAEECaiEAIAVBAmohBQsgBSAUSQR/IAUgAC0AACAFLQAARmoFIAULIAhrCyEQIAQgA2shCSABKAIMIQUCQAJAIAQgEU0EQCADKQAAISAgBSADKQAINwAIIAUgIDcAACABKAIMIQYgCUEQTQRAIAEgBiAJajYCDCABKAIEIQMMAwsgAykAECEgIAYgAykAGDcAGCAGICA3ABAgCUEhSA0BIAYgCWohACADQRBqIQMgBkEgaiEFA0AgAykAECEgIAUgAykAGDcACCAFICA3AAAgAykAICEgIAUgAykAKDcAGCAFICA3ABAgA0EgaiEDIAVBIGoiBSAASQ0ACwwBCyADIBFNBEAgAykAACEgIAUgAykACDcACCAFICA3AAAgBSARIANrIghqIQAgCEERTgRAIAVBEGohBQNAIAMpABAhICAFIAMpABg3AAggBSAgNwAAIAMpACAhICAFIAMpACg3ABggBSAgNwAQIANBIGohAyAFQSBqIgUgAEkNAAsLIAAhBSARIQMLIAMgBE8NACAGIANrQQAhBiAEIANrQQdxIgAEQANAIAUgAy0AADoAACAFQQFqIQUgA0EBaiEDIAZBAWoiBiAARw0ACwtBB0kNAANAIAUgAy0AADoAACAFIAMtAAE6AAEgBSADLQACOgACIAUgAy0AAzoAAyAFIAMtAAQ6AAQgBSADLQAFOgAFIAUgAy0ABjoABiAFIAMtAAc6AAcgBUEIaiEFIANBCGoiAyAERw0ACwsgASABKAIMIAlqNgIMIAEoAgQhAyAJQYCABEkNACABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAQQQRqIQogA0EBNgIAIAMgCTsBBCAMIQggEEEBaiIFQf//A00NAQsgAUECNgIkIAEgAyABKAIAa0EDdTYCKCAIIQwLIAMgBTsBBiABIANBCGoiADYCBAJAIAQgCmoiAyAXSw0AIBMgDiAPQQJqIgZqKQAAIiBC48iVvcub741PfiAjiKdBAnRqIAY2AgAgEyADQQJrIgQpAABC48iVvcub741PfiAjiKdBAnRqIAQgDms2AgAgGiAgQoCA7PzLm++NT34gIoinQQJ0aiAGNgIAIBogA0EBayIEKQAAQoCA7PzLm++NT34gIoinQQJ0aiAEIA5rNgIAIAwhBSAHIQ8DQAJAIA8hDCAFIQ8gDEUNACADKAAAIAMgDGsoAABHDQAgA0EEaiIEIAxrIQYCfwJAIAQgEk8EQCAEIQUMAQsgBCIFKAAAIgggBigAACIHRwRAIAcgCHNoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSASTw0BIAUoAAAiCCAGKAAAIgdGDQALIAUgByAIc2hBA3ZqIARrDAELAkAgBSAYTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIBRJBH8gBSAGLQAAIAUtAABGagUgBQsgBGsLIQUgGiADKQAAIiBCgIDs/Mub741PfiAiiKdBAnRqIAMgDmsiBDYCACATICBC48iVvcub741PfiAjiKdBAnRqIAQ2AgAgAyARTQRAIAMpAAAhICABKAIMIgAgAykACDcACCAAICA3AAAgASgCBCEACyAAQQE2AgAgAEEAOwEEIAVBAWoiBkGAgARPBEAgAUECNgIkIAEgACABKAIAa0EDdTYCKAsgBUEEaiEEIAAgBjsBBiABIABBCGoiADYCBCAMIQUgDyEHIAMgBGoiAyAXTQ0BDAILCyAMIQcgDyEMCyADIQYgA0EBaiIFIBdNDQALDAELIAUgF0sNACAUQSBrIREgFEEBayEYIBRBA2shEkHAACAAKAK8AWutISJBwAAgACgCwAFrrSEjA0AgBkGAAmohCCAOIBMgBikAACIhQuPIlb3Lm++NT34gI4inIgBBAnRqKAIAIgpqIQsCQAJAAn8CQAJAAkACQCAMRQRAQQEhEANAIBogIUKAgIDYy5vvjU9+ICKIp0ECdGoiBCgCACEJIAQgBiAOayIPNgIAIBMgAEECdGogDzYCACAFKQAAIiBC48iVvcub741PfiAjiKchACAKIBlLBEAgCykAACAhUQ0ECyAOIBMgAEECdGooAgAiCmohCyAJIBlLBEAgCSAOaiIVKAAAIAYoAABGDQMLIAUgCE8EQCAQQQFqIRAgCEGAAmohCAsgICEhIAUhBiAFIBBqIgQhBSAEIBdNDQALQQAhDAwJC0EAIAxrIQ1BASEQA0AgGiAhQoCAgNjLm++NT34gIoinQQJ0aiIEKAIAIQkgBCAGIA5rIg82AgAgEyAAQQJ0aiAPNgIAIAZBAWoiBCANaigAACAGKAABRgRAIAZBBWoiCCANaiEAIAggEk8EQCAIIQUMBgsgCCIFKAAAIg0gACgAACIJRwRAIAkgDXNoQQN2DAcLA0AgAEEEaiEAIAVBBGoiBSASTw0GIAUoAAAiDSAAKAAAIglGDQALIAUgCSANc2hBA3ZqIAhrDAYLIAUpAAAiIELjyJW9y5vvjU9+ICOIpyEAIAogGUsEQCALKQAAICFRDQMLIA4gEyAAQQJ0aigCACIKaiELIAkgGUsEQCAJIA5qIhUoAAAgBigAAEYNAgsgBSAITwRAIBBBAWohECAIQYACaiEICyAgISEgBSEGIAUgEGoiBCEFIAQgF00NAAsMCAsCfwJAAkAgCiAZTQ0AIAspAAAgIFINACALQQhqIQcgBUEIaiIEIBJPBEAgBCEGDAILIAQiBigAACIJIAcoAAAiCEcEQCAIIAlzaEEDdgwDCwNAIAdBBGohByAGQQRqIgYgEk8NAiAGKAAAIgkgBygAACIIRg0ACyAGIAggCXNoQQN2aiAEawwCCyAVQQRqIQsCfwJAIAZBBGoiBCASTwRAIAQhBwwBCyAEIgcoAAAiCSALKAAAIghHBEAgCCAJc2hBA3YMAgsDQCALQQRqIQsgB0EEaiIHIBJPDQEgBygAACIJIAsoAAAiCEYNAAsgByAIIAlzaEEDdmogBGsMAQsCQCAHIBhPDQAgCy8AACAHLwAARw0AIAtBAmohCyAHQQJqIQcLIAcgFEkEfyAHIAstAAAgBy0AAEZqBSAHCyAEawsgBiAVayEIQQRqIQogAyAGTwRAIAYhBAwECyAVIBZNBEAgBiEEDAQLA0AgBkEBayIELQAAIBVBAWsiFS0AAEcEQCAGIQQMBQsgCkEBaiEKIAMgBE8NBCAEIQYgFSAWSw0ACwwDCwJAIAYgGE8NACAHLwAAIAYvAABHDQAgB0ECaiEHIAZBAmohBgsgBiAUSQR/IAYgBy0AACAGLQAARmoFIAYLIARrCyAFIAtrIQhBCGohCiALIBZNBEAgBSEEDAILIAUhBCADIAVPDQEDQCAEQQFrIgYtAAAgC0EBayILLQAARw0CIApBAWohCiADIAZPBEAgBiEEDAMLIAYhBCALIBZLDQALDAELIAtBCGohCgJ/AkAgBkEIaiIEIBJPBEAgBCEHDAELIAQiBygAACIJIAooAAAiCEcEQCAIIAlzaEEDdgwCCwNAIApBBGohCiAHQQRqIgcgEk8NASAHKAAAIgkgCigAACIIRg0ACyAHIAggCXNoQQN2aiAEawwBCwJAIAcgGE8NACAKLwAAIAcvAABHDQAgCkECaiEKIAdBAmohBwsgByAUSQR/IAcgCi0AACAHLQAARmoFIAcLIARrCyAGIAtrIQhBCGohCiALIBZNBEAgBiEEDAELIAMgBk8EQCAGIQQMAQsDQCAGQQFrIgQtAAAgC0EBayILLQAARwRAIAYhBAwCCyAKQQFqIQogAyAETw0BIAQhBiALIBZLDQALCyAQQQNNBEAgEyAAQQJ0aiAFIA5rNgIACyAIQQNqIQkgBCADayENIAEoAgwhBQJAAkAgBCARTQRAIAMpAAAhICAFIAMpAAg3AAggBSAgNwAAIAEoAgwhBiANQRBNBEAgASAGIA1qNgIMIAEoAgQhAwwDCyADKQAQISAgBiADKQAYNwAYIAYgIDcAECANQSFIDQEgBiANaiEAIANBEGohAyAGQSBqIQUDQCADKQAQISAgBSADKQAYNwAIIAUgIDcAACADKQAgISAgBSADKQAoNwAYIAUgIDcAECADQSBqIQMgBUEgaiIFIABJDQALDAELIAMgEU0EQCADKQAAISAgBSADKQAINwAIIAUgIDcAACAFIBEgA2siBmohACAGQRFOBEAgBUEQaiEFA0AgAykAECEgIAUgAykAGDcACCAFICA3AAAgAykAICEgIAUgAykAKDcAGCAFICA3ABAgA0EgaiEDIAVBIGoiBSAASQ0ACwsgACEFIBEhAwsgAyAETw0AQQAhACADIQYgBCADa0EHcSIHBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiAAQQFqIgAgB0cNAAsLIAMgBGtBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAERw0ACwsgASABKAIMIA1qNgIMIAEoAgQhAyANQYCABEkNACABQQE2AiQgASADIAEoAgBrQQN1NgIoCyADIAk2AgAgAyANOwEEIAwhByAIIQwgCkEDayIFQYCABEkNAwwCCwJAIAUgGE8NACAALwAAIAUvAABHDQAgAEECaiEAIAVBAmohBQsgBSAUSQR/IAUgAC0AACAFLQAARmoFIAULIAhrCyEQIAQgA2shCSABKAIMIQUCQAJAIAQgEU0EQCADKQAAISAgBSADKQAINwAIIAUgIDcAACABKAIMIQYgCUEQTQRAIAEgBiAJajYCDCABKAIEIQMMAwsgAykAECEgIAYgAykAGDcAGCAGICA3ABAgCUEhSA0BIAYgCWohACADQRBqIQMgBkEgaiEFA0AgAykAECEgIAUgAykAGDcACCAFICA3AAAgAykAICEgIAUgAykAKDcAGCAFICA3ABAgA0EgaiEDIAVBIGoiBSAASQ0ACwwBCyADIBFNBEAgAykAACEgIAUgAykACDcACCAFICA3AAAgBSARIANrIghqIQAgCEERTgRAIAVBEGohBQNAIAMpABAhICAFIAMpABg3AAggBSAgNwAAIAMpACAhICAFIAMpACg3ABggBSAgNwAQIANBIGohAyAFQSBqIgUgAEkNAAsLIAAhBSARIQMLIAMgBE8NACAGIANrQQAhBiAEIANrQQdxIgAEQANAIAUgAy0AADoAACAFQQFqIQUgA0EBaiEDIAZBAWoiBiAARw0ACwtBB0kNAANAIAUgAy0AADoAACAFIAMtAAE6AAEgBSADLQACOgACIAUgAy0AAzoAAyAFIAMtAAQ6AAQgBSADLQAFOgAFIAUgAy0ABjoABiAFIAMtAAc6AAcgBUEIaiEFIANBCGoiAyAERw0ACwsgASABKAIMIAlqNgIMIAEoAgQhAyAJQYCABEkNACABQQE2AiQgASADIAEoAgBrQQN1NgIoCyAQQQRqIQogA0EBNgIAIAMgCTsBBCAMIQggEEEBaiIFQf//A00NAQsgAUECNgIkIAEgAyABKAIAa0EDdTYCKCAIIQwLIAMgBTsBBiABIANBCGoiADYCBAJAIAQgCmoiAyAXSw0AIBMgDiAPQQJqIgZqKQAAIiBC48iVvcub741PfiAjiKdBAnRqIAY2AgAgEyADQQJrIgQpAABC48iVvcub741PfiAjiKdBAnRqIAQgDms2AgAgGiAgQoCAgNjLm++NT34gIoinQQJ0aiAGNgIAIBogA0EBayIEKQAAQoCAgNjLm++NT34gIoinQQJ0aiAEIA5rNgIAIAwhBSAHIQ8DQAJAIA8hDCAFIQ8gDEUNACADKAAAIAMgDGsoAABHDQAgA0EEaiIEIAxrIQYCfwJAIAQgEk8EQCAEIQUMAQsgBCIFKAAAIgggBigAACIHRwRAIAcgCHNoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSASTw0BIAUoAAAiCCAGKAAAIgdGDQALIAUgByAIc2hBA3ZqIARrDAELAkAgBSAYTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIBRJBH8gBSAGLQAAIAUtAABGagUgBQsgBGsLIQUgGiADKQAAIiBCgICA2Mub741PfiAiiKdBAnRqIAMgDmsiBDYCACATICBC48iVvcub741PfiAjiKdBAnRqIAQ2AgAgAyARTQRAIAMpAAAhICABKAIMIgAgAykACDcACCAAICA3AAAgASgCBCEACyAAQQE2AgAgAEEAOwEEIAVBAWoiBkGAgARPBEAgAUECNgIkIAEgACABKAIAa0EDdTYCKAsgBUEEaiEEIAAgBjsBBiABIABBCGoiADYCBCAMIQUgDyEHIAMgBGoiAyAXTQ0BDAILCyAMIQcgDyEMCyADIQYgA0EBaiIFIBdNDQALCyACIAwgHEEAIB0bIAwbNgIAIAIgByAcIB5BACAfGyIAIAwbIAAgHRsgBxs2AgQgFCADawuxBAIHfwN+AkAgAUEIayIDIAAoAgQiBCAAKAIcaiICQQJqSQ0AIAAoAmQhBSAAKAJcIQYgAkEDaiEBQSAgACgCvAEiB2shCEHAACAAKALAAWutIQtBwAAgB2utIQoCQAJAAkACQAJAIAAoAsgBQQVrDgQBAgMABAsDQCAFIAIpAABC48iVvcub741PfiIJIAqIp0ECdGogAiAEayIANgIAIAYgCSALiKdBAnRqIAA2AgAgASICQQNqIQEgAkECaiADTQ0ACwwECwNAIAUgAikAACIJQoCAgNjLm++NT34gCoinQQJ0aiACIARrIgA2AgAgBiAJQuPIlb3Lm++NT34gC4inQQJ0aiAANgIAIAEiAkEDaiEBIAJBAmogA00NAAsMAwsDQCAFIAIpAAAiCUKAgOz8y5vvjU9+IAqIp0ECdGogAiAEayIANgIAIAYgCULjyJW9y5vvjU9+IAuIp0ECdGogADYCACABIgJBA2ohASACQQJqIANNDQALDAILA0AgBSACKQAAIglCgMaV/cub741PfiAKiKdBAnRqIAIgBGsiADYCACAGIAlC48iVvcub741PfiALiKdBAnRqIAA2AgAgASICQQNqIQEgAkECaiADTQ0ACwwBCwNAIAIpAAAhCiAFIAIoAABBsfPd8XlsIAh2QQJ0aiACIARrIgA2AgAgBiAKQuPIlb3Lm++NT34gC4inQQJ0aiAANgIAIAEiAkEDaiEBIAJBAmogA00NAAsLC/kjAhp/An4jAEEwayIKJABBuH8hBwJAIAVFDQAgBCwAACIIQf8BcSEUAkACQAJAAkACQCAIQQBIBEAgFEH+AGtBAXYiBiAFTw0GQWwhByAUQf8AayIJQf8BSw0GIAlFDQEgBEEBaiEEQQAhBSAUQYABayIIQQJPBEAgCEEBdkEBakH+AHEhDEEAIQgDQCAAIAVqIgcgBCAFQQF2aiILLQAAQQR2OgAAIAcgCy0AAEEPcToAASAAIAVBAnIiC2ogBCALQQF2aiILLQAAQQR2OgAAIAcgCy0AAEEPcToAAyAFQQRqIQUgCEECaiIIIAxHDQALCyAUQQJxRQRAIAAgBWoiCCAEIAVBAXZqIgQtAABBBHY6AAAgCCAELQAAQQ9xOgABCyAGIRQMBQsgBSAUTQ0FIApB/wE2AgQgBiAKQQRqIApBCGogBEEBaiIRIBQQVyIMQYh/SwRAIAwhBwwGC0FUIQcgCigCCCINQQZLDQUgCigCBCIQQQF0IgtBAmqtIiFCASANrYYiIkEEIA10IgRBCGqtfHxCC3xC/P//////////AINC6AJWDQVBUiEHIBBB/wFLQeQCIARrrSAhICJ8Qgh8VHINBSAGQYQEaiIOIARqQQRqIRZBASANdCISQQFrIQdBgIACIA10QRB2IQkCQAJAIBBFBEBBACEFQQEhDyAHIQQMAQsgEEEBakH+A3EhEyAHIQRBASEPQQAhBQNAAkAgBiAFQQF0IhVqLwEAIghB//8DRgRAIA4gBEECdGogBToAAiAEQQFrIQRBASEIDAELIA9BACAJIAjBShshDwsgFSAWaiAIOwEAAkAgBiAFQQFyIhVBAXQiF2ovAQAiCEH//wNHBEAgD0EAIAkgCMFKGyEPDAELIA4gBEECdGogFToAAiAEQQFrIQRBASEICyAWIBdqIAg7AQAgBUECaiIFIBNHDQALIBBBAXENAQsCQCAGIAVBAXRqLwEAIghB//8DRwRAIA9BACAJIAjBShshDwwBCyAOIARBAnRqIAU6AAIgBEEBayEEQQEhCAsgFiAFQQF0aiAIOwEACyAGIA87AYIEIAYgDTsBgAQgEkEDdiEFAkAgBCAHRgRAIAsgFmpBAmohFSAFQQNqQgAhIUEAIQtBACEFA0AgBiAFIgRBAXRqLgEAIRMgCyAVaiIJICE3AAACQCATQQlIDQAgE0EJayIIQQN2QQFqIhhBB3EhF0EIIQUgCEE4TwRAIAlBOGohGiAJQTBqIRsgCUEoaiEcIAlBIGohHSAJQRhqIR4gCUEQaiEfIAlBCGohICAYQfj///8DcSEYQQAhCANAIAUgCWogITcAACAFICBqICE3AAAgBSAfaiAhNwAAIAUgHmogITcAACAFIB1qICE3AAAgBSAcaiAhNwAAIAUgG2ogITcAACAFIBpqICE3AAAgBUFAayEFIAhBCGoiCCAYRw0ACwtBACEIIBdFDQADQCAFIAlqICE3AAAgBUEIaiEFIAhBAWoiCCAXRw0ACwsgIUKBgoSIkKDAgAF8ISEgBEEBaiEFIAsgE2ohCyAEIBBHDQALIBJBAXZqIghBAXQhCUEAIQRBACEFA0AgDiAFIAdxQQJ0aiAEIBVqIgstAAA6AAIgDiAFIAhqIAdxQQJ0aiALLQABOgACIAUgCWogB3EhBSAEQQJqIgQgEkkNAAsMAQsgBSASQQF2akEDaiEJQQAhBUEAIQsDQAJAIAYgCyIIQQF0ai8BACITwSILQQBMDQAgC0EBRwRAIBNB/v8BcSEVQQAhCwNAIA4gBUECdGogCDoAAgNAIAUgCWogB3EiBSAESw0ACyAOIAVBAnRqIAg6AAIDQCAFIAlqIAdxIgUgBEsNAAsgC0ECaiILIBVHDQALCyATQQFxRQ0AIA4gBUECdGogCDoAAgNAIAUgCWogB3EiBSAESw0ACwsgCEEBaiELIAggEEcNAAtBfyEHIAUNBgsgFCAMayEJIAwgEWohBCAGQYAEaiEGIA1BH2shDEEAIQUDQCAWIA4gBUECdGoiCC0AAkEBdGoiByAHLwEAIgdBAWo7AQAgCCAMIAdnaiILOgADIAggByALdCASazsBACAFQQFqIgUgEkcNAAsgD0H//wNxRQ0BIAlFBEBBuH8hCQwECyAKIAQ2AiggCiAEQQRqNgIsAkACQCAJQQRPBEAgCiARIBRqQQRrIgQ2AiQgCiAEKAAAIgQ2AhwgBEGAgIAITw0BQX8hCQwGCyAKIAQ2AiQgCiAELQAAIgU2AhwCQAJAAkAgCUECaw4CAQACCyAELQACQRB0IAVyIQULIAogBC0AAUEIdCAFajYCHAsgESAUakEBay0AACIERQRAQWwhCQwGCyAKIARnIAlBA3RrQQlqNgIgDAELIApBCCAEQRh2Z0Efc2s2AiAgCUGIf0sNBAsgCkEUaiAKQRxqIgQgBhCdASAKQQxqIAQgBhCdASAKKAIcIQggCigCDCELIAooAhQhDSAKKAIgIgRBIEsEQEEAIQUMAwsgCigCJCEHIAooAhAhDiAKKAIYIQ8gCigCKCEMIAooAiwhEEEAIQUCQANAAn8gByAQTwRAIARBA3YhCEEAIQkgBEEHcQwBCyAHIAxGBEAgCiAMNgIkDAMLIAQgByAMayAEQQN2IgQgByAEayAMSSIJGyIIQQN0awshBiAHIAhrIgcoAAAhCCAFQfsBSwRAIAYhBCAKIAc2AiQMAgsgCQRAIAYhBCAKIAc2AiQMAgsgDyANQQJ0aiIELwEAIAQtAAMhEiAAIAVqIgkgBC0AAjoAACAOIAtBAnRqIgQvAQAhCyAELQADIREgCSAELQACOgABIAggBnRBACASa3ZqIQ0gCyAIIAYgEmoiBHRBACARa3ZqIQsCQAJAIAQgEWoiBkEgSwRAIAYhBAwBCyAHIBBPBEAgBkEHcSEEIAcgBkEDdmsiBygAACEIDAILIAcgDEYEQCAMIQcgBiEEDAELIAYgByAMayAGQQN2IgQgByAEayIGIAxJGyIIQQN0ayEEIAcgCGsiBygAACEIIAYgDE8NAQsgCiAHNgIkIAVBAnIhBQwCCyAPIA1BAnRqIgYvAQAgBi0AAyESIAkgBi0AAjoAAiAOIAtBAnRqIgYvAQAhCyAGLQADIREgCSAGLQACOgADIAggBHRBACASa3ZqIQ0gCyAIIAQgEmoiBHRBACARa3ZqIQsgBUEEaiEFIAQgEWoiBEEhSQ0ACyAKIAc2AiQLIAVB/QFMDQJBun8hCQwDCyABQgA3AgAgAUEANgIwIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AggMBAsgCUUEQEG4fyEJDAILIAogBDYCKCAKIARBBGo2AiwCQAJAIAlBBE8EQCAKIBEgFGpBBGsiBDYCJCAKIAQoAAAiBDYCHCAEQYCAgAhPDQFBfyEJDAQLIAogBDYCJCAKIAQtAAAiBTYCHAJAAkACQCAJQQJrDgIBAAILIAQtAAJBEHQgBXIhBQsgCiAELQABQQh0IAVqNgIcCyARIBRqQQFrLQAAIgRFBEBBbCEJDAQLIAogBGcgCUEDdGtBCWo2AiAMAQsgCkEIIARBGHZnQR9zazYCICAJQYh/Sw0CCyAKQRRqIApBHGoiBCAGEJ0BIApBDGogBCAGEJ0BIAooAgwhCyAKKAIUIQ0gCigCHCEEAkAgCigCICIIQSBLBEBBACEFDAELIAooAiQhByAKKAIQIQ8gCigCGCEQIAooAighDCAKKAIsIRJBACEFAkADQAJ/IAcgEk8EQCAIQQN2IQRBACEGIAhBB3EMAQsgByAMRgRAIAogDDYCJAwDCyAIIAcgDGsgCEEDdiIEIAcgBGsgDEkiBhsiBEEDdGsLIQkgByAEayIHKAAAIQQgBUH7AUsEQCAJIQggCiAHNgIkDAILIAYEQCAJIQggCiAHNgIkDAILIBAgDUECdGoiBi8BACAGLQADIQggACAFaiIOIAYtAAI6AAAgDyALQQJ0aiIGLwEAIREgBi0AAyELIA4gBi0AAjoAASAIQQJ0QZD5AGooAgAgBEEAIAggCWoiBmt2cWohDSARIAtBAnRBkPkAaigCACAEQQAgBiALaiIGa3ZxaiELAkACQCAGQSBLBEAgBiEIDAELIAcgEk8EQCAGQQdxIQggByAGQQN2ayIHKAAAIQQMAgsgByAMRgRAIAwhByAGIQgMAQsgBiAHIAxrIAZBA3YiBCAHIARrIgYgDEkbIgRBA3RrIQggByAEayIHKAAAIQQgBiAMTw0BCyAKIAc2AiQgBUECciEFDAILIBAgDUECdGoiBi8BACAGLQADIQkgDiAGLQACOgACIA8gC0ECdGoiBi8BACERIAYtAAMhCyAOIAYtAAI6AAMgCUECdEGQ+QBqKAIAIARBACAIIAlqIgZrdnFqIQ0gESALQQJ0QZD5AGooAgAgBEEAIAYgC2oiCGt2cWohCyAFQQRqIQUgCEEhSQ0ACyAKIAc2AiQLIAVB/QFMDQBBun8hCQwCCyAAQQFqIRMgCigCJCEHIAooAhAhEiAKKAIoIRAgCigCLCERIAooAhghFgJ/A0AgFiANQQJ0aiIGLwEAIRUgBi0AAyEPIAAgBWoiFyAGLQACOgAAIAUgE2ohDAJ/An8CQCAIIA9qIghBIE0EQCAHIBFPBEAgCEEDdiENIAhBB3EMAwsgByAQRw0BIAghDiAEDAMLIBIgC0ECdGpBAmohB0ECDAQLIAggByAQayAIQQN2IgYgByAGayAQSRsiDUEDdGsLIQ4gByANayIHKAAACyEGQbp/IQkgBUH8AUsNAyAPQQJ0QZD5AGooAgAgBEEAIAhrdnEgFWohDSASIAtBAnRqIgQvAQAhCyAELQADIQggDCAELQACOgAAIAVBAmohDyAIIA5qIgxBIE0EQCAIQQJ0QZD5AGooAgAgBkEAIAxrdnEhDgJ/An8gByARTwRAIAxBA3YhBCAMQQdxDAELIAcgEEYEQCAMIQggBgwCCyAMIAcgEGsgDEEDdiIEIAcgBGsgEEkbIgRBA3RrCyEIIAcgBGsiBygAAAshBCALIA5qIQsgBUH8AUYgDyEFRQ0BDAQLCyAAIA9qIQwgFiANQQJ0akECaiEHQQMLIAwgBy0AADoAACAXaiAAayEJDAELIABBAWohFiAKKAIkIQcgCigCECEQIAooAighDyAKKAIsIRIgCigCGCERAn8DQCARIA1BAnRqIgYvAQAhEyAGLQADIQ0gACAFaiIVIAYtAAI6AAAgBSAWaiEOAn8CQAJAIAQgDWoiCUEgTQRAIAcgEk8EQCAJQQdxIQYgCUEDdiEJDAMLIAcgD0cNASAJIQYgCAwDCyAQIAtBAnRqQQJqIQdBAgwECyAJIAcgD2sgCUEDdiIGIAcgBmsgD0kbIglBA3RrIQYLIAcgCWsiBygAAAshDEG6fyEJIAVB/AFLDQIgCCAEdEEAIA1rdiATaiENIBAgC0ECdGoiBC8BACETIAQtAAMhCCAOIAQtAAI6AAAgBUECaiEOIAYgCGoiC0EgTQRAIAwgBnRBACAIa3YCfwJ/IAcgEk8EQCALQQN2IQggC0EHcQwBCyAHIA9GBEAgCyEEIAwMAgsgCyAHIA9rIAtBA3YiBCAHIARrIA9JGyIIQQN0awshBCAHIAhrIgcoAAALIQggE2ohCyAFQfwBRiAOIQVFDQEMAwsLIAAgDmohDiARIA1BAnRqQQJqIQdBAwsgDiAHLQAAOgAAIBVqIABrIQkLIAkiB0GJf08NAQsgAUIANwIAQQAhBCABQQA2AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCEFsIQcgCUUNAEEAIQUDQCAAIAVqIgYtAAAiCEEMSw0BIAEgCEECdGoiCCAIKAIAQQFqNgIAQQEgBi0AAHRBAXUgBGohBCAFQQFqIgUgCUcNAAsgBEGAIGtBgWBJDQAgA0EgIARnayIDNgIAQYCAgIB4QQEgA3QgBGsiA2ciBHYgA0cNACAAIAlqQSAgBGsiADoAACABIABBAnRqIgAgACgCAEEBajYCACABKAIEIgBBAkkgAEEBcXINACACIAlBAWo2AgAgFEEBaiEHCyAKQTBqJAAgBwvACQEIfyMAQRBrIg4kACAOIAQ2AgwCQCAIQQAgB2tBA3EiDWsiEUEAIAggEU8bQYQ2SQRAQb5/IQwMAQsgAUUgA0VyDQAgA0GAgAhLBEBBuH8hDAwBCyAFQQxLBEBBVCEMDAELIARB/wFLBEBBUiEMDAELIARFBEAgDkH/ATYCDEH/ASEECyAAIAFqIRECQCAKRSALQQRxRXIiEg0AIAooAgBBAkcNACAAIAAgESACIAMgBiAJEJ4BIQwMAQsgByANakEAIAggDU8bIQggC0EIcUUgA0GAwAJJckUEQCAOIAQ2AgggCCAOQQhqIAJBgCAQnwEiB0GIf0sEQCAHIQwMAgsgDiAENgIEIAggDkEEaiACIANqQYAga0GAIBCfASIEQYh/SwRAIAQhDAwCCyAEIAdqQcUASQ0BCyAIIA5BDGogAiADIAhBhBBqIg8QpQEiBEGIf0sEQCAEIQwMAQsgAyAERgRAIAAgAi0AADoAAEEBIQwMAQsgBCADQQd2QQRqTQ0AAkAgCkUNAAJAAkAgCigCACIMQQFHDQBBACEEIA4oAgwiB0EASARAQQEhDAwBCyAJQQRqIQ1BACEMAkAgCCAHBH8gB0EBakF+cSETA0AgBCAIIAxBAnQiEGooAgBBAEcgDSAQai0AAEVxciAIIBBBBHIiBGooAgBBAEcgBCANai0AAEVxciEEIAxBAmoiDCATRw0ACyAHQQFxDQEgB0EBa0F+cUECagUgDAtBAnQiB2ooAgBBAEcgByANai0AAEVxIARyIQQLQQEhDCAEDQELIBIgDEVyDQEgACAAIBEgAiADIAYgCRCeASEMDAILIApBADYCAAsgCEGACGoiDSAIIA4oAgwiByAFQQsgBRsgAyAHIA9BgCYgDSAIIAsQngIgD0GAJhCVASIMQYh/Sw0AIAdBAnQiBCANakEIakEAQfwHIARrEBgaIAAgASANIAcgDCAPQewFEJQBIgxBiH9LDQACQAJAAkACQAJAAkACQCAKBEAgCigCAARAQQAhBSAHQQBIDQYgCUEEaiEBIAdBAWohD0EAIQQgBwRAIA9BfnEhCwNAIAEgBEECdCIQQQRyIhJqLQAAIAggEmooAgBsIAEgEGotAAAgCCAQaigCAGwgBWpqIQUgBEECaiIEIAtHDQALIAdBAXENAyAHQQFrQX5xQQJqIQQLIAEgBEECdCIEai0AACAEIAhqKAIAbCAFaiEFIAhBhAhqIRAgB0UEQEEAIQFBACELDAULIA9BfnEhCwwDCyAMQQxqIANJDQZBACEMDAgLIAxBDGogA0kNBkEAIQwMBwsgCEGECGohEAsgCEGECGohD0EAIQRBACEBA0AgDyAEQQJ0IhJBBHIiE2otAAAgCCATaigCAGwgDyASai0AACAIIBJqKAIAbCABamohASAEQQJqIgQgC0cNAAsgB0EBcQ0BCyABIBAgC0ECdCIBai0AACABIAhqKAIAbGohAQsgDEEMaiADTw0AIAFBA3YgDGogBUEDdkkNAQsgACAAIBEgAiADIAYgCRCeASEMDAILIApBADYCAAsgCQRAIAkgDUGECBAUGgsgACAAIAxqIBEgAiADIAYgDRCeASEMCyAOQRBqJAAgDAuPAgEFfwJAIAFBEUkgA0EMSXINACAAQQZqIgcgAUEGayACIANBA2pBAnYiBiAEEFgiBUGIf0sEQCAFDwsgBUGAgARrQYGAfEkNACAAIAU7AAAgBSAHaiIFIAAgAWoiByAFayACIAZqIgggBiAEEFgiAUGIf0sEQCABDwsgAUGAgARrQYGAfEkNACAAIAE7AAIgASAFaiIFIAcgBWsgBiAIaiIIIAYgBBBYIgFBiH9LBEAgAQ8LIAFBgIAEa0GBgHxJDQAgACABOwAEIAEgBWoiBSAHIAVrIAYgCGoiASACIANqIAFrIAQQWCIBQYh/SwRAIAEPCyABQYCABGtBgYB8SQ0AIAEgBWogAGshCQsgCQv7DQEUf0G6fyEMAkAgAUEFSQ0AIAZBBGoiFyAXQQEgBi8AACIUQQFrdEEBIBQbQQJ0aiIbIAcgCUEBayIMai0AACIQQQN0aiIGKAIEIg1BgIACaiILQYCAfHEgDWsgC0EQdnVBAXRqIAYoAgBBAXRqLwEAIRMgBEEEaiIYIBhBASAELwAAIhVBAWt0QQEgFRtBAnRqIhwgBSAMaiIRLQAAQQN0aiIEKAIEIgZBgIACaiINQYCAfHEgBmsgDUEQdnVBAXRqIAQoAgBBAXRqLwEAIQYgAkEEaiIZIBlBASACLwAAIhZBAWt0QQEgFhtBAnRqIh0gAyAMaiINLQAAQQN0aiICKAIEIgRBgIACaiILQYCAfHEgBGsgC0EQdnVBAXRqIAIoAgBBAXRqLwEAIQQgACAQQZDkAGotAAAiAkECdEGQ+QBqKAIAIAggDEEDdGoiEC8BBHEiDDYAACAAIAFqQQRrIg4gACACQQN2aiIBIAEgDksbIgsgDS0AAEGA5QBqLQAAIgFBAnRBkPkAaigCACAQLwEGcSACQQdxIg10IAwgAkH4AXF2ciIMNgAAIA4gCyABIA1qIgFBA3ZqIgIgAiAOSxshAiAMIAFB+ANxdiEPIAFBB3EhCwJAIAoEQEEYIQFBACENAkAgES0AACIMQRhJBEAgDCEBDAELIAxBGEYNACACIAxBGGsiDUECdEGQ+QBqKAIAIBAoAgBxIAt0IA9yIg82AAAgDiACIAsgDWoiDEEDdmoiAiACIA5LGyECIA8gDEF4cXYhDyAMQQdxIQsLIAFBAnRBkPkAaigCACAQKAIAIA12cSALdCAPciENIAEgC2ohAQwBCyALIBEtAAAiDGohASAMQQJ0QZD5AGooAgAgECgCAHEgC3QgD3IhDQsgAiANNgAAIA4gAiABQQN2aiICIAIgDksbIQIgAUEHcSELIA0gAUH4A3F2IQ8CQCAJQQJJBEAgBiEMIAQhEAwBCyAJQQJrIQEDQCAZIAQgHSABIANqLQAAIh5BA3RqIgwoAgQgBGpBEHYiEXZBAXRqIAwoAgBBAXRqLwEAIRAgGCAGIBwgASAFai0AACINQQN0aiIMKAIEIAZqQRB2IhJ2QQF0aiAMKAIAQQF0ai8BACEMIAEgB2otAAAhGiACIBJBAnRBkPkAaigCACAGcSALdCAPciARQQJ0QZD5AGooAgAgBHEgCyASaiIGdHIiCzYAACAbIBpBA3RqIg8oAgQgE2pBEHYiBEECdEGQ+QBqKAIAIBNxIRIgFyATIAR2QQF0aiAPKAIAQQF0ai8BACETIA4gAiAGIBFqIgZBA3ZqIgIgAiAOSxsiDyASIAZBB3EiAnQgCyAGQfj/D3F2ciILNgAAIA4gDyACIARqIgJBA3ZqIgQgBCAOSxshBiAaQZDkAGotAAAiD0ECdEGQ+QBqKAIAIAggAUEDdGoiES8BBHEgAkEHcSISdCALIAJB+P8HcXZyIQQgDyASaiELIA8gHkGA5QBqLQAAIg9qQRlJBH8gCwUgBiAENgAAIA4gBiALQQN2aiICIAIgDksbIQYgBCALQfgDcXYhBCALQQdxCyECIAYgD0ECdEGQ+QBqKAIAIBEvAQZxIAJ0IARyIgs2AAAgDiAGIAIgD2oiAkEDdmoiBCAEIA5LGyEEIAsgAkH4B3F2IQ8gAkEHcSECAkAgCgRAQQAhCwJAIA1BGEkEQCANIQYMAQtBGCEGIA1BGEYNACAEIA1BGGsiC0ECdEGQ+QBqKAIAIBEoAgBxIAJ0IA9yIg02AAAgDiAEIAIgC2oiAkEDdmoiBCAEIA5LGyEEIA0gAkF4cXYhDyACQQdxIQILIAZBAnRBkPkAaigCACARKAIAIAt2cSACdCAPciENIAIgBmohBgwBCyACIA1qIQYgDUECdEGQ+QBqKAIAIBEoAgBxIAJ0IA9yIQ0LIAQgDTYAACAOIAQgBkEDdmoiAiACIA5LGyECIAZBB3EhCyANIAZB+ANxdiEPIBAhBCAMIQYgAUEBayIBIAlJDQALCyACIBZBAnRBkPkAaigCACAQcSALdCAPciIDNgAAIA4gAiALIBZqIgFBA3ZqIgIgAiAOSxsiAiAVQQJ0QZD5AGooAgAgDHEgAUEHcSIEdCADIAFB+P8HcXZyIgM2AAAgDiACIAQgFWoiAUEDdmoiAiACIA5LGyICIBRBAnRBkPkAaigCACATcSABQQdxIgR0IAMgAUH4/wdxdnIiAzYAACAOIAIgBCAUaiIBQQN2aiICIAIgDksbIgJBASABQQdxIgR0IAMgAUH4/wdxdnI2AAAgDiAOIAIgBEEBaiIBQQN2aiICIAIgDksbIgJLBEAgAiABQQdxQQBHaiAAayIMDQELQbp/IQwLIAwLHQAgACABIAIgAyAEIAVBASAGIAcgCCAJIAoQgwILHQAgACABIAIgAyAEIAVBACAGIAcgCCAJIAoQgwILlAQBE38gACgC7AUhESAAKALwBSESIAAoAugFIQEgACgC5AUhCSAAKALQBSAAKALUBSEOIwBBEGsiAyAAKALQECIFQfAjaigCADYCCCADIAUpAugjNwMAIA5BBHRqIQ8gASAJa0EDdSEKIAEgCUcEQEEBIAogCkEBTRshCyAAKAKMBiETIAMoAgghDCADKAIEIQ0gAygCACEBA0AgCSAHQQN0aiIFKAIAIQQgDyAHQQR0aiIGIAUvAQQiAjYCBCAFLwEGIRAgBkEANgIMIAYgEEEDajYCCAJAIAcgE0YEQCACIQUCQAJAIAAoAogGQQFrDgIAAQMLIAYgAkGAgARyIgU2AgQMAgsgBiAQQYOABGo2AggLIAIhBQsCQAJ/IAYCfwJAIARBA00EQCAGIAQ2AgwgBQRAIARBAnQgA2pBBGsoAgAMAwsgBEEDRw0BIAFBAWsMAgsgBiAEQQNrIgI2AgAgDQwCCyADIARBAnRqKAIACzYCAAJ/AkACQCAEIAJFakEBayIEDgQEAQEAAQsgAUEBawwBCyADIARBAnRqKAIACyECIA0gDCAEQQFLGwshDCADIAE2AgQgAyAMNgIIIAMgAjYCACABIQ0gAiEBCyAFIAhqIQggB0EBaiIHIAtHDQALCyAPIAtBBHRqIgEgEiAIIBFqazYCBCABQgA3AgggAUEANgIAIAAgCiAOakEBajYC1AUL3wwBG38jAEEgayIMJAAgACgCDCAAKAIIIgtrIQkgACgCBCISIAAoAgAiEWtBA3UhDSAAKAIUIRQgACgCECEVIAAoAhghFiADKAIcIQ8gESASRgR/QQEFIAkgDW5BE0sLIRACQAJAAkAgAygCQEEBaw4CAgABC0EBIQoMAQsgD0EBRw0AIAMoAhhBAEchCgsgB0HUAWohEyACIAFBiAgQFCEOAkACQAJAAkACQAJAAkAgCgRAIAlB/x9LQQJBASAJQR9LG2oiAiAJaiIKIAVLDQQCQAJAAkACQCACQQJrDgIBAgALIAQgCUEDdDoAAAwCCyAEIAlBBHRBBHI7AAAMAQsgBCAJQQR0QQxyNgAACyACIARqIAsgCRAUGgwBCyAJQQZBCEEDQQkgD2siAiACQQNOG3QgASgChAgiAkECRhtJBEAgCUH/H0tBAkEBIAlBH0sbaiICIAlqIgogBUsNBAJAAkACQAJAIAJBAmsOAgECAAsgBCAJQQN0OgAADAILIAQgCUEEdEEEcjsAAAwBCyAEIAlBBHRBDHI2AAALIAIgBGogCyAJEBQaDAELIAUgCUH//wBLQQRBAyAJQf8HSxtqIgpNDQMgDCACNgIIAkAgBCAKaiEZIAUgCmshGiALIRsgCSEcQf8BIR1BCyEeIBMhH0GExAAhICAOISEgDEEIaiEiIA9BB0siF0EBdCAPQQRJQQJ0QQAgCUGBCEkbciAQQQN0ciAIQQBHciEjIAJBAkYgCkEDRnEgCUGAAklyIhgEfyAZIBogGyAcIB0gHiAfICAgISAiICMQhwIFIBkgGiAbIBwgHSAeIB8gICAhICIgIxCGAgsiAkEBa0GHf00EQCACIAkgCSAPQQFrQQYgFxt2a0ECa0kNAQsgDiABQYgIEBQaIAlB/x9LQQJBASAJQR9LG2oiAiAJaiIKIAVLDQQCQAJAAkACQCACQQJrDgIBAgALIAQgCUEDdDoAAAwCCyAEIAlBBHRBBHI7AAAMAQsgBCAJQQR0QQxyNgAACyACIARqIAsgCRAUGgwBCyAMKAIIIRACQCACQQFHDQACQCAJQQFNIAlBB0tyDQAgCy0AACIIIAstAAFHDQEgCUECRg0AIAstAAIgCEcNASAJQQNGDQAgCy0AAyAIRw0BIAlBBEYNACALLQAEIAhHDQEgCUEFRg0AIAstAAUgCEcNASAJQQZGDQAgCy0ABiAIRw0BCyAOIAFBiAgQFBoCQAJAAkACQCAJQf8fS0ECQQEgCUEfSxtqIgJBAmsOAgECAAsgBCAJQQN0QQFyOgAADAILIAQgCUEEdEEFcjsAAAwBCyAEIAlBBHRBDXI2AAALIAIgBGogCy0AADoAACACQQFqIQoMAgsgEEUEQCAOQQE2AoQIC0EDQQIgEBshCAJAAkACQAJAIApBBGsOAgECAAsgBCAIIAlBBHRBBEEAIBgbcnJBBHMgAkEOdGoiCDsAACAEIAhBEHY6AAIMAgsgBCACQRJ0IAlBBHRqIAhyQQhyNgAADAELIAQgAkEKdjoABCAEIAJBFnQgCUEEdGogCHJBDHI2AAALIAIgCmohCgsgCkGIf0sNAQsgBSAKa0EESA0CIAQgCmohAgJ/IA1B/wBNBEAgAiANOgAAIAJBAWoMAQsgDUH//QFNBEAgAiANOgABIAIgDUEIdkGAAXI6AAAgAkECagwBCyACQf8BOgAAIAIgDUGA/gFrOwABIAJBA2oLIQIgDkGICGohCAJAIBEgEkYEQCAIIAFBiAhqQeAbEBQaDAELIAxBCGogACANIAFBiAhqIAggAkEBaiIBIAQgBWoiCSAPIAcgExCQAiAMKAIUIgpBiX9PDQEgAiAMKAIMQQR0IAwoAghBBnRqIAwoAhBBAnRqOgAAIAwoAhghACABIApqIgEgCSABayAOQYwOaiAUIAggFiAOQbgZaiAVIBEgDSAMKAIcEIUCIgpBiH9LDQEgAEUgACAKakEET3JFBEBBACEKDAYLIAEgCmohAgsgAiAEayIKDQBBACEKDAQLIApBun9HIAUgBklyDQJBACEKDAMLQbp/QQAgBSAGSRshCgwCC0G6f0EAIAUgBkkbIQoMAQsgCkGIf0sNACAKQQAgCiAGIAZBBiADKAIcIgBBAWsgAEEHTRt2a0ECa0kbIQoLIAxBIGokACAKC4wHAQ9/IwBBEGsiDCQAIAwgAigCCDYCCCAMIAIpAgA3AwACQCAJRQ0AIAEoAgQiCSABKAIAIhFrQQN1IhchDyABKAIkQQFGBEAgASgCKCEPCyAJIBFGDQAgA0EIaiESIANBBGohEyACQQhqIRQgAkEEaiEVQQAhCQNAIBEgCUEDdGoiDi8BBEUgCSAPR3EhECAOKAIAIg0hCgJAAkACQCANQQFrIhZBAk0EQAJ/IBAgFmoiCkEDRgRAIAMoAgBBAWshCyACKAIAQQFrDAELIAMgCkECdCIKaigCACELIAIgCmooAgALIRggDSEKIAsgGEYNASAOIAtBA2oiCjYCAAsgCkEESQ0AIAIgAikCADcCBCAKQQNrIQoMAQsCfwJAAkAgCiAQRWsiDg4EBAEBAAELIAIoAgAiC0EBawwBCyACKAIAIQsgAiAOQQJ0aigCAAshCiAUIBUgFCAOQQFLGygCADYCACAVIAs2AgALIAIgCjYCAAsCQAJAIA1BBE8EQCADIAMpAgA3AgQgDUEDayEKDAELAn8CQAJAIBAgFmoiDQ4EBAEBAAELIAMoAgAiC0EBawwBCyADKAIAIQsgAyANQQJ0aigCAAshCiASIBMgEiANQQFLGygCADYCACATIAs2AgALIAMgCjYCAAsgCUEBaiIJIBdHDQALC0G6fyEJAkAgBUEDSQ0AIAEgACgC0BAgACgC1BAgAEG4AWogBEEDaiIBIAVBA2sgByAAKAK4EiAAKAIIEIkCIgpBiH9LBEAgCiEJDAELAkAgCkEYSw0AIAAoAtwFDQBBASAKIAYgBxDKARshCgsgACgCzAUEQCAAEIgCIAAgACkD0BBCIIk3A9AQQQAhCQwBCwJAAkACQAJAAkAgCg4CAAECCyAHQQNqIgogBUsNBCAEIAdBA3QgCGoiAzsAACAEIANBEHY6AAIgASAGIAcQFBogCkGIf0sNAyACIAwpAwA3AgAgAiAMKAIINgIIDAILIAVBA0YNAyAEIAYtAAA6AAMgBCAIIAdBA3RqQQJqIgE7AAAgBCABQRB2OgACIAIgDCgCCDYCCCACIAwpAwA3AgBBBCEKDAELIAAgACkD0BBCIIk3A9AQIAQgCCAKQQN0akEEaiIBOwAAIAQgAUEQdjoAAiAKQQNqIQoLIAAoAtAQIgAoAtwjQQJHDQAgAEEBNgLcIwsgCiEJCyAMQRBqJAAgCQvUAQEGfwJAIAIgAWtBrAJJDQAgA0H8E2ohByADQdATaiEIIANBpBNqIQkgACgCBCEFA0AgBUHDAUsNASAJIAQgASACEKEBIAggBCABIAEgAmpBAXYiBhChASAHIAQgBiACEKEBIAkgAxDJASIFQYh/SyAIIAMQyQEiCkGIf0tyIAUgByADEMkBIgUgCmpNIAVBiH9LcnINASAAIAEgBiADIAQQiwIgACgCACAAKAIEIgFBAnRqIAY2AgAgACABQQFqIgU2AgQgAiAGIgFrQasCSw0ACwsL/QMBBX8Cf0H05QEoAgAiAiAAQQdqQXhxIgFBB2pBeHEiA2ohAAJAIANBACAAIAJNG0UEQCAAPwBBEHRNDQEgABAMDQELQZDnAUEwNgIAQX8MAQtB9OUBIAA2AgAgAgsiAkF/RwRAIAEgAmoiAEEEa0EQNgIAIABBEGsiA0EQNgIAAkACf0Gg7wEoAgAiAQR/IAEoAggFQQALIAJGBEAgAiACQQRrKAIAQX5xayIEQQRrKAIAIQUgASAANgIIIAQgBUF+cWsiACAAKAIAakEEay0AAEEBcQRAIAAoAgQiASAAKAIIIgQ2AgggBCABNgIEIAAgAyAAayIBNgIADAMLIAJBEGsMAQsgAkEQNgIAIAIgADYCCCACIAE2AgQgAkEQNgIMQaDvASACNgIAIAJBEGoLIgAgAyAAayIBNgIACyAAIAFBfHFqQQRrIAFBAXI2AgAgAAJ/IAAoAgBBCGsiAUH/AE0EQCABQQN2QQFrDAELIAFBHSABZyIDa3ZBBHMgA0ECdGtB7gBqIAFB/x9NDQAaQT8gAUEeIANrdkECcyADQQF0a0HHAGoiASABQT9PGwsiAUEEdCIDQaDnAWo2AgQgACADQajnAWoiAygCADYCCCADIAA2AgAgACgCCCAANgIEQajvAUGo7wEpAwBCASABrYaENwMACyACQX9HC4UMAgx/AX4gASgC0AEhBwJ/QQEgASgCECABKAIMSQ0AGkEAIAEoArQBIghFDQAaQQNBAiAIKAJsGwsiCEEobCAHQQJ0akGQMWoiCSAJIAhBDGwgB0EDayIIQQJ0akGwMmogBEEBRxsgCEECSxsoAgAhDgJAIAdBBk0EQCAFIAZqIQ0CQCAGQQBMIAAoAgQiByAAKAIMIgpPcg0AIAEoAsgBIRAgDUEgayEEA0AgACgCACIRIAdBDGxqIgkoAgAhCAJAIA0gBWsiBiAJKAIIIg8gCSgCBCIMak8EQCAAIAdBAWo2AgQMAQsCQCAGIAxLBEAgCEEAIAYgDGsiDyAQTxshCAwBC0EAIQggBkUNAwsgByAKIAcgCksbIRIDQCAHIBJGDQEgESAHQQxsaiIJKAIEIgsgBk8EQCAJIAsgBms2AgQMAgsgCUEANgIEIAYgC2siBiAJKAIIIgtJBEAgCSALIAZrIgY2AgggBiAQTw0CIAogB0EBaiIHSwRAIAkgCSgCECAGajYCEAsgACAHNgIEDAILIAlBADYCCCAAIAdBAWoiBzYCBCAGIAtrIgYNAAsLIAhFDQEgBSABKAIEayIGIAEoAhwiB0GACGpLBEAgASAGQYAEIAYgB2tBgAhrIgYgBkGABE8bazYCHAsCQAJAAkAgASgC0AFBAWsOAgABAgsgASAFEP8BDAELIAEgBRCBAgsgASACIAMgBSAMIA4RAwAhCSADKQIAIRMgAyAINgIAIAMgEzcCBCAFIAxqIgogCWshByAIQQNqIQwgAigCDCEIAkACQCAEIApPBEAgBykAACETIAggBykACDcACCAIIBM3AAAgAigCDCEFIAlBEE0EQCACIAUgCWo2AgwgAigCBCEHDAMLIAcpABAhEyAFIAcpABg3ABggBSATNwAQIAlBIUgNASAFIAlqIQYgB0EQaiEHIAVBIGohCANAIAcpABAhEyAIIAcpABg3AAggCCATNwAAIAcpACAhEyAIIAcpACg3ABggCCATNwAQIAdBIGohByAIQSBqIgggBkkNAAsMAQsgBCAHTwRAIAcpAAAhEyAIIAcpAAg3AAggCCATNwAAIAggBCAHayIGaiEFIAZBEU4EQCAIQRBqIQgDQCAHKQAQIRMgCCAHKQAYNwAIIAggEzcAACAHKQAgIRMgCCAHKQAoNwAYIAggEzcAECAHQSBqIQcgCEEgaiIIIAVJDQALCyAFIQggBCEHCyAHIApPDQAgB0F/cyAKakEAIQYgCiAHa0EHcSILBEADQCAIIActAAA6AAAgCEEBaiEIIAdBAWohByAGQQFqIgYgC0cNAAsLQQdJDQADQCAIIActAAA6AAAgCCAHLQABOgABIAggBy0AAjoAAiAIIActAAM6AAMgCCAHLQAEOgAEIAggBy0ABToABSAIIActAAY6AAYgCCAHLQAHOgAHIAhBCGohCCAHQQhqIgcgCkcNAAsLIAIgAigCDCAJajYCDCACKAIEIQcgCUGAgARJDQAgAkEBNgIkIAIgByACKAIAa0EDdTYCKAsgByAMNgIAIAcgCTsBBCAPQQNrIgVBgIAETwRAIAJBAjYCJCACIAcgAigCAGtBA3U2AigLIAcgBTsBBiACIAdBCGo2AgQgCiAPaiEFIAAoAgQiByAAKAIMIgpPDQEgBSANSQ0ACwsgBSABKAIEayIAIAEoAhwiBEGACGpLBEAgASAAQYAEIAAgBGtBgAhrIgAgAEGABE8bazYCHAsCQAJAAkAgASgC0AFBAWsOAgABAgsgASAFEP8BDAELIAEgBRCBAgsgASACIAMgBSANIAVrIA4RAwAhBAwBCyABIAA2AtQBIAEgAiADIAUgBiAOEQMAIQQCQCAAKAIIIAZqIghFDQAgACgCBCIHIAAoAgwiAiACIAdJGyEBA0ACQAJAIAEgB0YEQCABIQcMAQsgCCAAKAIAIAdBDGxqIgMoAgggAygCBGoiA08NASAAIAg2AggLIAIgB0YNAgwDCyAAIAdBAWoiBzYCBCAIIANrIggNAAsLIABBADYCCCAEDwsgBAscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAKCywBAX8gACAAQYwBajYCCCAAIABBDGoiATYCBCAAIAE2AgAgAUEAQYABEBgaC6UGAQt/IwBBEGsiDCQAIAEoAhQhDyABKAIQIQ4gASgCGCEQIABBADYCECABKAIEIgogASgCACISRwRAQQEgCiASa0EDdSIKIApBAU0bIRRBACEKA0BBHyASIApBA3RqIgsoAgBnayETIAsvAQYhESAKIA5qAn8gCy8BBCILQcAATwRAQTIgC2drDAELIAtBwOQAai0AAAs6AAAgCiAQaiATOgAAIAogD2ogEUGAAU8Ef0HDACARZ2sFIBFBwOUAai0AAAs6AABBASANIBNBGEsbIQ0gCkEBaiIKIBRHDQALCyABKAIkIgpBAUYEfyAOIAEoAihqQSM6AAAgASgCJAUgCgtBAkYEQCAPIAEoAihqQTQ6AAALIARBsBFqIQEgACANNgIUIAxBIzYCDCAIIAxBDGogDiACIAkQQiEKIAQgAygC3Bs2AtwbIAAgBEHcG2ogCCAMKAIMIgsgCiACQQkgA0GwEWoiDUGAgwFBBkEBIAcQzgEiCjYCAAJAAkACQCAFIAYgBWsgAUEJIAogCCALIA4gAkGAgwFBBkEjIA1BpAogCRDMASIBQYh/TQRAIApBAkYEQCAAIAE2AhALIAxBHzYCCCAIIAxBCGogECACIAkQQiELIAwoAgghCiAEIAMoAtQbNgLUGyAAIARB1BtqIAggCiALIAJBCCADQdCDAUEFIApBHUkgBxDOASILNgIEIAEgBWoiDiAGIA5rIARBCCALIAggCiAQIAJB0IMBQQVBHCADQYQGIAkQzAEiAUGIf0sNASALQQJGBEAgACABNgIQCyAEQYQGaiEKIAxBNDYCBCAIIAxBBGogDyACIAkQQiELIAQgAygC2Bs2AtgbIAAgBEHYG2ogCCAMKAIEIg0gCyACQQkgA0GEBmoiC0HgMkEGQQEgBxDOASIDNgIIIAEgDmoiBCAGIARrIApBCSADIAggDSAPIAJB4DJBBkE0IAtBrAsgCRDMASIBQYh/Sw0CIANBAkYEQCAAIAE2AhALIAAgASAEaiAFazYCDAwDCyAAIAE2AgwMAgsgACABNgIMDAELIAAgATYCDAsgDEEQaiQAC0EBAn8jAEEQayIBJAAgACgCBCECIAAoAgBBKBAiIAFBBGogAigCCBDUASAAKAIAEBcgACgCAEEpECEgAUEQaiQACyoAIABBxgBBAEEBQQFBARAWIgAgAjcCDCAAIAE2AgggAEH0ugE2AgAgAAsxACAAQZgDakEMEBIgASgCACEBQS5BAEEBQQFBARAWIgAgATYCCCAAQfDGATYCACAAC60BAQV/IAJBAE4EfyAAQQRqIQQCQAJ/IAJFBEBBACEAQQAMAQsgAkEBakF+cSEGQQAhAANAIAQgA0ECdCIFQQRyIgdqLQAAIAEgB2ooAgBsIAQgBWotAAAgASAFaigCAGwgAGpqIQAgA0ECaiIDIAZHDQALIAJBAXENASACQQFrQX5xQQJqCyEDIAAgBCADQQJ0IgBqLQAAIAAgAWooAgBsaiEACyAAQQN2BSADCwtOACAAQZgDakEUEBIgASgCACEBIAIoAgAhAiADLQAAIQNB0QBBAEEBQQFBARAWIgAgAzoAECAAIAI2AgwgACABNgIIIABBoLkBNgIAIAALNAEBfiAAQZgDakEQEBIgASkCACECQcMAQQBBAUEBQQEQFiIAIAI3AgggAEHctgE2AgAgAAshAQF/IAAgAEEsajYCCCAAIABBDGoiATYCBCAAIAE2AgALIQEBfyAAIABBHGo2AgggACAAQQxqIgE2AgQgACABNgIAC6MBAQJ/IAEQXiEDIAAQXiECAkAgAwRAIAJFBEAgACgCABAVIAAQlwILIAEoAgAgASgCBCAAKAIAEK0BIAAgACgCACABKAIAIAEoAgQQHkECdGo2AgQMAQsgAgRAIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAEQlwIPCyAAIAEQTiAAQQRqIAFBBGoQTiAAQQhqIAFBCGoQTgsgARBPC6MBAQJ/IAEQXiEDIAAQXiECAkAgAwRAIAJFBEAgACgCABAVIAAQmAILIAEoAgAgASgCBCAAKAIAEK0BIAAgACgCACABKAIAIAEoAgQQHkECdGo2AgQMAQsgAgRAIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAEQmAIPCyAAIAEQTiAAQQRqIAFBBGoQTiAAQQhqIAFBCGoQTgsgARBPC60BAQJ/AkAgACABRg0AIAAsAAAiAkHfAEYEQCAAQQFqIAFGDQEgACwAASICQTBrQQlNBEAgAEECag8LIAJB3wBHDQEgAEECaiECA0AgASACRg0CIAIsAAAiA0Ewa0EJTQRAIAJBAWohAgwBCwsgAkEBaiAAIANB3wBGGw8LIAJBMGtBCUsNACAAIQIDQCABIAJBAWoiAkYEQCABDwsgAiwAAEEwa0EKSQ0ACwsgAAspACAAQR1BAEEBQQFBARAWIgAgAjYCDCAAIAE2AgggAEHc4AE2AgAgAAvaAQEGfyMAQSBrIgIkACACQRhqIAFBDGpBfxBFIQQgAkEQaiABQRBqQX8QRSEFIAEoAgQhAwZAIAAoAgggARAXAkACQAJAAkAgASgCECIGQQFqDgICAAELIAEgAxC1AQwCC0EBIQMDQCADIAZPDQIgASACQcEpEA4oAgAgAigCBBAQIQcgASADNgIMIAAoAgggBxAXIANBAWohAwwACwALIAEgAkEIakHmIxAOIgAoAgAgACgCBBAQGgsgBRAwIAQQMCACQSBqJAAPGSACJAAgBRAwIAQQMAkACwALqQYBDX8gB0ECcUUEQEEMQQVBICABZ2siA0EhIAJnayICIAIgA0sbIgJBHiABQQFrZ2siASAAQQsgABsiACAAIAFLGyIAIAAgAkkbIgAgAEEFTRsiACAAQQxPGw8LIARB7AVrIQ0gA0HsBWohDgJAAkAgAkF/RgRADAELIAJBAWoiC0EDcSEKQQAhAUEAIQcgAkEDTwRAIAtBfHEhDyACQQNrQXxxA0AgByAGIAhBAnRqIgEoAgBBAEdqIAEoAgRBAEdqIAEoAghBAEdqIAEoAgxBAEdqIQcgCEEEaiIIIA9HDQALQQRqIQELIAoEQANAIAcgBiABQQJ0aigCAEEAR2ohByABQQFqIQEgCUEBaiIJIApHDQALCyAAQSAgB2drIgpJBEAgAA8LIAJBAEgNACAFQQRqIRAgAkEBcSERQX4hDCALQX5xIRIgAkEBa0F+cUECaiEPIAohByAAIQsDQAJAIAUgBiACIAciCSADIAQQlQEiAUGIf0sNACABIAdJIAcgCktxDQMgDiANIAUgAiABIAMgBBCUASITQYh/Sw0AQQAhB0EAIQhBACEBAkAgAgRAA0AgECAHQQJ0IgFBBHIiFGotAAAgBiAUaigCAGwgASAQai0AACABIAZqKAIAbCAIamohCCAHQQJqIgcgEkcNAAsgCCEHIA8hASARDQELIBAgAUECdCIBai0AACABIAZqKAIAbCAHaiEICyAIQQN2IBNqIgEgDEEBaksNAyAJIAsgASAMSSIHGyELIAEgDCAHGyEMCyAJQQFqIQcgACAJRw0ACwwBC0F+IQkgACELIAUgBiACIAogAyAEEJUBIgFBiH9NBEBBfiAOIA0gBSACIAEgAyAEEJQBIgEgAUF+TxtBfiABQYl/SSIBGyEJIAogACABGyELCyAAIApGDQAgCiEHA0ACQCAFIAYgAiAHIgFBAWoiByADIAQQlQEiCEGIf0sNACABIAhPIAEgCk9xDQIgDiANIAUgAiAIIAMgBBCUASIBQYh/Sw0AIAEgCUEBaksNAiAHIAsgASAJSSIIGyELIAEgCSAIGyEJCyAAIAdHDQALCyALC1kBAX8gACAAKAJIIgFBAWsgAXI2AkggACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwsAIAAoAgwgARBcCwsAIABBCGogARAvC/QGAQl/IwBBIGsiCSQAIAAoAgghBiAAKAIMIQsgAygCHCEMAkACQAJAAkACQAJAAn8CQAJAAkAgAygCQEEBaw4CAQQACyAMQQFGDQELIAlB/wE2AgggASgChAghCiACIAFBiAgQFBogAUGECGoMAQsgAygCGCAJQf8BNgIIIAEoAoQIIQogAiABQYgIEBQaBEBBACEHDAMLIAFBhAhqCyEIQQAhByALIAZrIgtBBkE/IAgoAgBBAkYbTQ0BIAUgCUEIaiAGIAsgBRClASIGQYh/Sw0CIAYgC0YEQEEBIQcMAgsgBiALQQd2QQRqTQ0BIAkoAgghByAKQQFGBEACf0EAIQZBASAHQQBIDQAaIAFBBGohCkEAIQgCQCAFIAcEfyAHQQFqQX5xIQ4DQCAGIAUgCEECdCINaigCAEEARyAKIA1qLQAARXFyIAUgDUEEciIGaigCAEEARyAGIApqLQAARXFyIQYgCEECaiIIIA5HDQALIAdBAXENASAHQQFrQX5xQQJqBUEAC0ECdCIIaigCAEEARyAIIApqLQAARXEgBnIhBgsgBkULIQoLIAxBB0tBAXQhBiAFQYAIaiEMIAJBAEGECBAYIgggBSAHQQsgCyAHIAxB2D0gCCAFIAYQngIgDEHYPRCVASIGQYh/Sw0CIAggBSAHEJQCIQ0gBEEEakGAASAIIAcgBiAMQdg9EJQBIQYCQCAKRQ0AIAEgBSAHEJQCIgogC08NAEEDIQcgCiAGIA1qTSAGQQxqIAtPcg0BC0EAIQcgBiANaiALSQ0DCyACIAFBiAgQFBoLIAQgBzYCACAEQQA2AoQBDAILIAQgBjYChAEMAgsgBEECNgIAIAhBATYChAggBCAGNgKEASAGQYh/Sw0BCwJAAn8gACgCBCIHIAAoAgAiBkYEQCACQgA3AtwjIAJBADYC5CNBACEDQQAhAkEAIQBBACEFQQAMAQsgCUEIaiAAIAcgBmtBA3UgAUGICGogAkGICGogBEGUAWogBEGZAmogAygCHCAFIAVB1AFqEJACIAkoAhQiAEGIf0sNASAJKAIYIQUgCSgCECECIAkoAgwhAyAJKAIICyEBIAQgBTYCoAIgBCACNgKQASAEIAM2AowBIAQgATYCiAELIAQgADYCnAIgAEEAIABBiX9PGyEGCyAJQSBqJAAgBgsHACAAIAFqCwgAIABBLRAkCzUAIABBmANqQQgQEiABKAIAQQBHIQFByQBBAEEBQQFBARAWIgAgAToAByAAQcCpATYCACAACwoAIAAgAUECdGoLUwECfyMAQSBrIgEkACAALQAEQQhGBEAgAUEYaiAAKQIIEMECIAEgAUEQakHhCxAOKQIANwMIIAEoAhggASgCHCABQQhqEF0hAgsgAUEgaiQAIAILygEBBH8jAEEwayIFJAAgACACIAEQKhogAEEEaiECIAVBBGoQpwEhAQJAA0AGQCACKAIAIgQgAyAEKAIAKAIMEQEAIQQZIAUkACABEEAJAAsgBC0ABEENRw0BIAAgBCgCCDYCBCAAIARBDGoiBCAAIAQoAgAgACgCAEgbKAIANgIAIAEgAhAfIAEoAgAiBCABKAIEIgYQHiIHQQJJDQAgAigCACAEIAYgB0EBa0EBdhA4KAIARw0ACyACQQA2AgALIAEQQCAFQTBqJAALCwAgACgCCCABEFwL7wMAQbCRAUHjFxAJQbyRAUGxEUEBQQAQCEHIkQFBzg9BAUGAf0H/ABABQeCRAUHHD0EBQYB/Qf8AEAFB1JEBQcUPQQFBAEH/ARABQeyRAUH3CkECQYCAfkH//wEQAUH4kQFB7gpBAkEAQf//AxABQYSSAUGQC0EEQYCAgIB4Qf////8HEAFBkJIBQYcLQQRBAEF/EAFBmJIBQfgTQQRBgICAgHhB/////wcQAUGkkgFB7xNBBEEAQX8QAUGwkgFBowxCgICAgICAgICAf0L///////////8AEI4CQbySAUGiDEIAQn8QjgJByJIBQe0LQQQQBEHUkgFB4RVBCBAEQbgqQZcUEAVBgCtB2R8QBUHIK0EEQf0TEAJBlCxBAkGjFBACQeAsQQRBshQQAkH8LBAHQaQtQQBB3x4QAEHMLUEAQfofEABB9C1BAUGyHxAAQZwuQQJBohsQAEHELkEDQcEbEABB7C5BBEHpGxAAQZQvQQVBhhwQAEG8L0EEQZ8gEABB5C9BBUG9IBAAQcwtQQBB7BwQAEH0LUEBQcscEABBnC5BAkGuHRAAQcQuQQNBjB0QAEHsLkEEQbQeEABBlC9BBUGSHhAAQYwwQQhB8R0QAEG0MEEJQc8dEABB3DBBBkGsHBAAQYQxQQdB5CAQAAtrAQF/IwBBIGsiAiQAIAAgARCvAgJAIAEoAggQsAIEQCACIAApAgA3AxggAkEQakHvGRAOIQEgAiACKQMYNwMIIAIgASkCADcDACACQQhqIAIQmgFFDQEgAEEGENoBCyACQSBqJAAPCxAxAAsVACAAQdSTATYCACAAQQRqENgCIAALCwAgACgCDCABEBcL+QEBA38jAEEwayIDJAAgACgCDARAIANBKGogAUEUakEAEEUhAgZAIABBCGogASADQSBqQfMiEA4iBCgCACAEKAIEEBAiBBAvGSADJAAgAhAwCQALIAQgA0EYakGkIRAOIgQoAgAgBCgCBBAQGiACEDALIAAoAhAEQCABIANBEGpB+SUQDiICKAIAIAIoAgQQECECIAAoAhAgAhAXIAIgA0EIakHOKRAOIgIoAgAgAigCBBAQGgsgAUEoECIgAEEUaiABEC8gAUEpECEgACgCHARAIAEgA0H5JRAOIgEoAgAgASgCBBAQIQEgACgCHCABEBcLIANBMGokAAsXACAAIAEoAghBAnRB3OUBaigCABAOGgsHACAAQQFLCyIAIAAgAkEAQQFBAUEBEBYiACABNgIIIABBnMkBNgIAIAALMQAgAEGYA2pBDBASIAEoAgAhAUEEQQBBAUEBQQEQFiIAIAE2AgggAEGQxQE2AgAgAAsJACAAIAEQDhoLTQAgAEGYA2pBFBASIAEoAgAhASACLQAAIQIgAygCACEDQTFBAEEBQQFBARAWIgAgAzYCECAAIAI6AAwgACABNgIIIABBpMsBNgIAIAALsQIBBH8CQAJAIAFBB00EQAwBCyAALQAEIgRBA3FBAnRB4IIBaigCACAEQQR2QQxxQfCCAWooAgBqIARBIHFBBXYiBWsgBEHAAEkgBXFqQQZqIgRBiX9PBEAgAiAENgIADAILIAAoAABBp+q+aUcEQCACQXY2AgAMAgsgASAEQQNqSQRADAELAkAgASAEayIGQQNPBEAgACAEaiEEQQAhBQNAQQEhAQJAAkAgBC0AACIHQQZ2QQJrDgIBBAALIAQtAAIgBC0AAUEIdHIgB0EHcUEQdHIhAQsgASAGQQNrIgZLBEAMBAsgBUEBaiEFIAEgBGpBA2ohBCAGIAFrIgZBA08NAAsLDAELIAIgBCAAa0EDajYCACADIAVBEXStNwMADwsgAkG4fzYCAAsgA0J+NwMACyEBAX8gACgCBCIBIAAoAgBGBEAQMQALIAAgAUEEazYCBAsHACAAQQhqC3YBBH8jAEEQayIDJAAgACgCACIEIAAoAgRBABAZQdQARgRAAn8gA0EIakHhEhAOIgIoAgAhASACKAIEIQIgBCAAKAIEQQEQGSEAQX8gAkUNABogASAAwCACEOYCIgAgAWtBfyAAGwtBf0chAQsgA0EQaiQAIAELUQECfyMAQRBrIgIkACAAIAE2AgAgACABKALMAiABKALQAhAeNgIEIABBCGoQpwEhASAAKAIAIAIgATYCDEHMAmogAkEMahAfIAJBEGokACAAC5ADAQV/IwBBMGsiAiQAAkACQCAAEOMBIgMEQCADLQACIgRBCEYEQCACQShqIABBhANqQQAQOyEDIAJBIGogAEGFA2ogAC0AhQMgAUEAR3JBAXEQOyEEBkAgABAbIQYMAxkgAiQAIAQQJSADECUJAAsACyAEQQpLDQIgBEEERgRAIAMtAAMQrgFFDQMLIAJBKGoiASADKAIEELMCIAAgARBHIQUMAgsgAiACQRRqQe0SEA4pAgA3AwgCQCAAIAJBCGoQGgRAIAIgABBJIgE2AiggAUUNASAAQZgDakEMEBIgAigCKCEBQRRBAEEBQQFBARAWIgAgATYCCCAAQYTGATYCACAAIQUMAwsgAEH2ABARRQ0CIAAoAgAiASAAKAIEQQAQGUEwa0H/AXFBCUsNAiAAIAFBAWo2AgAgAiAAEEkiATYCKCABRQ0AIAAgAkEoahCyAiEFDAILDAELIAIgBjYCHCAGBEAgAQRAIAFBAToAAAsgACACQRxqELICIQULIAQQJSADECULIAJBMGokACAFC5cGAgZ/A34jAEGgAWsiAiQAIAEEQCAAQcwCahBPCyACIAJBmAFqQbQMEA4pAgA3AxgCQCAAIAJBGGoQGgRAQQAhASACQdQAaiIFIABBABAoIABB3wAQEUUNASAAQZgDakEQEBIgBSkCACEIQTNBAEEBQQFBARAWIgAgCDcCCCAAQeStATYCACAAIQEMAQsgAiACQZABakHeEhAOKQIANwMQAkACQAJAAkAgACACQRBqEBoEQCAAQQhqIQEgAEHMAmohAyACQYgBaiAAQYgDaiAAKALMAiAAKALQAhAeEEUhBiACQdQAaiAAELkCIQUgACgCCCAAKAIMEB4hBAZAA0AgABC4AgRAIAIgACAFELcCEKwBIgc2AkwgB0UNBCABIAJBzABqEB8MAQsLIAJBzABqIAAgBBAnIAIoAlBFBEAgAxC2AgsgAkEANgJIIABB0QAQEQRAIAIgABCZASIDNgJIIANFDQMLIAIgAkFAa0HYrQEQDikCADcDAAJAIAAgAhAaDQADQCACIAAQGyIDNgI4IANFDQQgASACQThqEB8gACgCACAAKAIEQQAQGSIDQdEARg0BIANB/wFxQcUARw0ACwsgAkE4aiAAIAQQJ0EAIQEgAkEANgI0IABB0QAQEUUNBCAAEJkBIQQMAxkgAiQAIAUQqwEgBhAwCQALAAsgAiACQSRqQeEZEA4pAgA3AwhBACEBIAAgAkEIahAaRQ0EIAJB1ABqIABBABAoIABB3wAQEUUNBCMAQRBrIgEkACAAQZgDakEQEBIgAUEIakGTJRAOKQMAEEggAUEQaiQAIQEMBAtBACEBDAILIAIgBDYCNCAERQ0BCyAAQcUAEBFFDQAgAkEsaiIEIABBABAoIABB3wAQEUUNACAAQZgDakEoEBIgAikCTCEIIAIoAkghASACKQI4IQkgAigCNCEDIAQpAgAhCkE0QQBBAUEBQQEQFiIAIAo3AiAgACADNgIcIAAgCTcCFCAAIAE2AhAgACAINwIIIABBoLQBNgIAIAAhAQsgBRCrASAGEDALIAJBoAFqJAAgAQuuAQEGfyMAQRBrIgMkACAAQZQBaiEFA0ACQCAAQdcAEBEiAkUNACADIABB0AAQEToADyADIAAQSSIENgIIIARFDQAgAEGYA2pBFBASIAEoAgAhBCADKAIIIQYgAy0ADyEHQRtBAEEBQQFBARAWIgIgBzoAECACIAY2AgwgAiAENgIIIAJBjJkBNgIAIAEgAjYCACADIAI2AgQgBSADQQRqEB8MAQsLIANBEGokACACC5IBAQV/QQEhAyAAKAIAIgUgACgCBCIGQQAQGSICQTBIIAJBwQBrQf8BcUEZSyACQTpPcXJFBEADQAJAQQAhAyAFIAZBABAZIgJBMEgNACACQTpJBH9BUAUgAkHBAGtB/wFxQRpPDQFBSQshAyAAIAVBAWoiBTYCACAEQSRsIANqIAJqIQQMAQsLIAEgBDYCAAsgAwueAQICfwF+IwBBEGsiAiQAIAIgATYCDANAAkAgAEHCABARBEAgAkEEaiAAELABIAIoAggNAUEAIQELIAJBEGokACABDwsgAEGYA2pBFBASIAIpAgQhBEEJIAIoAgwiAy8ABSIBQcABcUEGdiABQQh2QQNxIAFBCnZBA3EQNSIBIAQ3AgwgASADNgIIIAFByMkBNgIAIAIgATYCDAwACwALmAUBCH8jAEGAAWsiAyQAIABBADYCzKgBIABBBTYCoKgBIABCADcDkKgBIABBjICA4AA2AowoIABBADYCtKkBIABCADcD0KgBIABBmKgBakIANwMAIABBpKgBaiIFQdCCASkCADcCACAAQayoAWpB2IIBKAIANgIAAkAgAUUgAkVyDQAgAkEHTQRAIAAgATYClKgBIAAgATYCmKgBIAAgASACajYCkKgBDAELIAEoAABBt8jC4X5HBEAgACABNgKUqAEgACABNgKYqAEgACABIAJqNgKQqAEMAQsgACABKAAENgK0qQEgAEGMKGogAUEIaiIIIAJBCGsiBhDwAiIEQYh/Sw0AIANBHDYCfCADIANB/ABqIgkgA0H4AGoiCiAEIAhqIgQgASACaiIBIARrECkiAkGIf0sNACADKAJ4IgdBCU8NACAAQYQQaiADIAMoAnwgBxAyQYh/Sw0AIANBNDYCfCADIAkgCiACIARqIgIgASACaxApIgRBiH9LDQAgAygCeCIHQQpPDQAgAEGIGGogAyADKAJ8IAcQMkGIf0sNACADQSM2AnwgAyAJIAogAiAEaiICIAEgAmsQKSIEQYh/Sw0AIAMoAngiB0EKTw0AIAAgAyADKAJ8IAcQMkGIf0sNACACIARqIgJBDGoiBCABSw0AIAUgAigAACIFNgIAIAVFIAUgBk9yDQAgACACKAAEIgU2AqioASAFRSAFIAZPcg0AIAAgAigACCICNgKsqAEgAkUgAiAGT3INACAAQoGAgIAQNwPQqAEgBCAIa0GIf0sNACAAIAAoApCoASICNgKcqAEgACgClKgBIQYgACAENgKUqAEgACABNgKQqAEgACAEIAYgAmtqNgKYqAELIANBgAFqJAALqwcCBn8BfiMAQTBrIgQkACAEIAM2AiggBCACNgIsQQAhAwJAIAAgBEEoahC8Ag0AIAIEfyAAQcYAEBFBAXMFQQELIQkgAEHMABARGgJAAkACQCAEAn8CQCAAKAIAIAAoAgRBABAZIgNBMUgNACADQTlNBEAgABBJDAILIANB1QBHDQAgACABELsCDAELIAQgBEEcakGVGxAOKQIANwMIIAAgBEEIahAaBEAgAEEIaiECIAAoAgggACgCDBAeIQMDQCAEIAAQSSIBNgIUIAFFDQMgAiAEQRRqIgEQHyAAQcUAEBFFDQALIAEgACADECcgAEGYA2pBEBASIAEpAgAhCkE1QQBBAUEBQQEQFiIBIAo3AgggAUGwygE2AgAgAQwBC0EAIQMgACgCACAAKAIEQQAQGUHDAGtB/wFxQQFNBEAgAkUNBSAEKAIoDQUjAEEgayICJAAgBEEsaiIFKAIAIgMtAARBMEYEQCACIAM2AhwgBSAAQZgDakEMEBIgAigCHCgCCEEvELECNgIACwJAIABBwwAQEQRAIABByQAQESEHQQAhAyAAKAIAIgYgACgCBEEAEBkiCEExa0H/AXFBBEsNASACIAhBMGs2AhggACAGQQFqNgIAIAEEQCABQQE6AAALAkAgB0UNACAAIAEQPA0ADAILIAJBADoAFyAAIAUgAkEXaiACQRhqELQCIQMMAQtBACEDIAAoAgAiByAAKAIEIgZBABAZQcQARw0AIAcgBkEBEBkiBkH/AXFBMGsiCEEFSyAIQQNGcg0AIAIgBkEwazYCECAAIAdBAmo2AgAgAQRAIAFBAToAAAsgAkEBOgAPIAAgBSACQQ9qIAJBEGoQtAIhAwsgAkEgaiQAIAMMAQsgACABELoCCyIDNgIkAkAgA0UNACAEKAIoRQ0AIABBmANqQRAQEiAEKAIoIQIgBCgCJCEFQRxBAEEBQQFBARAWIgMgBTYCDCADIAI2AgggA0GQzAE2AgAgBCADNgIkDAILIAMNAUEAIQMMAgtBACEDDAILIAQgACADEL4CIgM2AiQgCSADRXINACAAQZgDakEQEBIgBCgCLCEBIAQoAiQhAkEZQQBBAUEBQQEQFiIDIAI2AgwgAyABNgIIIANB/MwBNgIADAELIANFDQAgBCgCLEUNACAAQZgDakEQEBIgBCgCLCEBIAQoAiQhAkEYQQBBAUEBQQEQFiIDIAI2AgwgAyABNgIIIANB8M0BNgIACyAEQTBqJAAgAwsJACAAIAE3AgALGQAgAEGYA2pBEBASIAEoAgAgAigCABCcAgs1AQF/IwBBEGsiAiQAIABBmANqQRwQEiACQQhqQbApEA4pAwAgASgCAEEAEKQBIAJBEGokAAvTAwEKfyMAQYABayIDJAAgAEEFNgKgqAEgAEIANwOQqAEgAEIANwK8qAEgAEEMNgKMKCAAQZioAWpCADcDAAJAIAFFIAJFcg0AAkAgASgAAEG2yMLhfkcEQCAAIAE2ApSoASAAIAE2ApioAQwBCyAAQYwoaiABQQRqIgkgAkEEayIEEPMCIgVBiH9LDQEgA0EcNgJ8IAMgA0H8AGoiCiADQfgAaiILIAUgCWoiBiAEIAVrIgcQKSIEQYh/Sw0BIAMoAngiCEEISw0BIABBhBBqIAMgAygCfCAIEDJBiX9PDQEgA0E0NgJ8IAMgCiALIAQgBmoiCCAHIARrIgcQKSIGQYh/Sw0BIAMoAngiDEEJSw0BIABBiBhqIAMgAygCfCAMEDJBiX9PDQEgA0EjNgJ8IAMgCiALIAYgCGogByAGaxApIgdBiH9LDQEgAygCeCIIQQlLDQEgACADIAMoAnwgCBAyQYl/Tw0BIABBATYCwKgBIAQgBWogBmogB2oiBUGIf0sNASAAIAAoApCoASIENgKcqAEgACgClKgBIQYgACAFIAlqIgU2ApSoASAAIAUgBiAEa2o2ApioAQsgAEGQqAFqIAEgAmo2AgALIANBgAFqJAAL5gEBA38jAEFAaiIBJAAgASABQThqQcMaEA4pAgA3AxgCQCAAIAFBGGoQGgRAIABB7gwQICEDDAELIAEgAUEwakHZDxAOKQIANwMQIAAgAUEQahAaBEAgABCXARogAUEoaiICIABBABAoIABB3wAQEUUNASAAIAIQlgIhAwwBCyABIAFBIGpB7RoQDikCADcDCCAAIAFBCGoQGkUNACABQShqIgIgAEEAECggASgCLEUNACAAQfAAEBFFDQAgABCXARogAiAAQQAQKCAAQd8AEBFFDQAgACACEJYCIQMLIAFBQGskACADC88OAgZ/AX4jAEGwAmsiASQAAkAgAEHMABARRQ0AAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAiAyAAKAIEIgRBABAZQf8BcUHBAGsOORMWFhQWFhYWFhYWFhYWFhYWFhYYFRYWFhYWFhYWFhIWAwECEBEPFgQHCBYJCg0OFhYWBQYWFgALDBYLIAAgA0EBajYCACABIAFBqAJqQYkMEA4pAgA3AwAgACABEDQhAgwXCyABIAFBoAJqQZEbEA4pAgA3AxAgACABQRBqEBoEQCABQQA2ApQBIAAgAUGUAWoQpQIhAgwXCyABIAFBmAJqQY0bEA4pAgA3AwggACABQQhqEBpFDRYgAUEBNgKUASAAIAFBlAFqEKUCIQIMFgsgACADQQFqNgIAIAEgAUGQAmpBzg8QDikCADcDGCAAIAFBGGoQNCECDBULIAAgA0EBajYCACABIAFBiAJqQccPEA4pAgA3AyAgACABQSBqEDQhAgwUCyAAIANBAWo2AgAgASABQYACakHFDxAOKQIANwMoIAAgAUEoahA0IQIMEwsgACADQQFqNgIAIAEgAUH4AWpB9woQDikCADcDMCAAIAFBMGoQNCECDBILIAAgA0EBajYCACABIAFB8AFqQe4KEA4pAgA3AzggACABQThqEDQhAgwRCyAAIANBAWo2AgAgASABQegBakHPKRAOKQIANwNAIAAgAUFAaxA0IQIMEAsgACADQQFqNgIAIAEgAUHgAWpBkwoQDikCADcDSCAAIAFByABqEDQhAgwPCyAAIANBAWo2AgAgASABQdgBakHIqAEQDikCADcDUCAAIAFB0ABqEDQhAgwOCyAAIANBAWo2AgAgASABQdABakGrERAOKQIANwNYIAAgAUHYAGoQNCECDA0LIAAgA0EBajYCACABIAFByAFqQckSEA4pAgA3A2AgACABQeAAahA0IQIMDAsgACADQQFqNgIAIAEgAUHAAWpBghIQDikC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AkEBayICDQALC0EAC38CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEOcCIQAgASgCAEFAags2AgAgAA8LIAEgAkH+B2s2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvwUgAAsLpAUCBn4EfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIAEpAwAhAiABKQMIIQcjAEEgayIIJAAgB0L///////8/gyEEAn4gB0IwiEL//wGDIgOnIgpBgfgAa0H9D00EQCAEQgSGIAJCPIiEIQMgCkGA+ABrrSEEAkAgAkL//////////w+DIgJCgYCAgICAgIAIWgRAIANCAXwhAwwBCyACQoCAgICAgICACFINACADQgGDIAN8IQMLQgAgAyADQv////////8HViIAGyECIACtIAR8DAELIAIgBIRQIANC//8BUnJFBEAgBEIEhiACQjyIhEKAgICAgICABIQhAkL/DwwBCyAKQf6HAUsEQEIAIQJC/w8MAQtBgPgAQYH4ACADUCIBGyIAIAprIglB8ABKBEBCACECQgAMAQsgAiEDIAQgBEKAgICAgIDAAIQgARsiBSEGAkBBgAEgCWsiAUHAAHEEQCACIAFBQGqthiEGQgAhAwwBCyABRQ0AIAYgAa0iBIYgA0HAACABa62IhCEGIAMgBIYhAwsgCCADNwMQIAggBjcDGAJAIAlBwABxBEAgBSAJQUBqrYghAkIAIQUMAQsgCUUNACAFQcAAIAlrrYYgAiAJrSIDiIQhAiAFIAOIIQULIAggAjcDACAIIAU3AwggCCkDCEIEhiAIKQMAIgNCPIiEIQICQCAAIApHIAgpAxAgCCkDGIRCAFJxrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAJCgICAgICAgAiFIAIgAkL/////////B1YiABshAiAArQshAyAIQSBqJAAgB0KAgICAgICAgIB/gyADQjSGhCAChL85AwAL+RcDEn8BfAN+IwBBsARrIgwkACAMQQA2AiwCQCABvSIZQgBTBEBBASERQboJIRMgAZoiAb0hGQwBCyAEQYAQcQRAQQEhEUG9CSETDAELQcAJ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QCAIIQ0MAQsgCCANTw0AIA0gCGshBAJAIAtFDQBBACEBIAtBBE8EQCALQXxxIQoDQCABIAdqIgIgBEEAIAItAAAiDBsgDGo6AAAgAiAEQQAgAi0AASIMGyAMajoAASACIARBACACLQACIgwbIAxqOgACIAIgBEEAIAItAAMiAhsgAmo6AAMgAUEEaiIBIApHDQALCyALQQNxIgJFDQADQCABIAdqIgogBEEAIAotAAAiChsgCmo6AAAgAUEBaiEBIAVBAWoiBSACRw0ACwsCQCAEIA1PDQAgDSEBIAhBA3EiBQRAQQAhAgNAIAMgAUECdGogAyABIARrQQJ0aigCADYCACABQQFrIQEgAkEBaiICIAVHDQALCyAIQQFrQQNJDQADQCADIAFBAnRqIAMgASAEa0ECdGooAgA2AgAgAyABQQFrIgJBAnRqIAMgAiAEa0ECdGooAgA2AgAgAyABQQJrIgJBAnRqIAMgAiAEa0ECdGooAgA2AgAgAyABQQNrIgJBAnRqIAMgAiAEa0ECdGooAgA2AgAgAUEEayIBIARLDQALCyADQQRqQQAgBEECdBAYGgtBVCANIAZBAWpLDQEaIAAgCUH/gYB4cSANQRB0QYCA/AdxcjYCACANQQFqIhFBA3EhB0EAIQVBACECQQAhASANQQNPBEAgEUF8cSEGIANBNGohCANAIAMgAkECdCIEaigCACEJIAQgCGogATYCACADIARBBHIiCmooAgAhDCAIIApqIAEgCWoiATYCACADIARBCHIiCWooAgAhCiAIIAlqIAEgDGoiATYCACADIARBDHIiBGooAgAhCSAEIAhqIAEgCmoiATYCACABIAlqIQEgAkEEaiICIAZHDQALCyAHBEADQCADIAJBAnRqIgggATYCNCACQQFqIQIgCCgCACABaiEBIAVBAWoiBSAHRw0ACwtBACECIAtBA0oEQCALQQNrIQQgA0E0aiEBIANB1AlqIQggA0HUB2ohBQNAIAEgAiAIai0AAEECdGoiByAHKAIAIgdBAWo2AgAgBSAHaiACOgAAIAEgCCACQQFyIgdqLQAAQQJ0aiIGIAYoAgAiBkEBajYCACAFIAZqIAc6AAAgASAIIAJBAnIiB2otAABBAnRqIgYgBigCACIGQQFqNgIAIAUgBmogBzoAACABIAggAkEDciIHai0AAEECdGoiBiAGKAIAIgZBAWo2AgAgBSAGaiAHOgAAIAJBBGoiAiAESA0ACwsCQCACIAtODQAgAkEBaiEBIAsgAmtBAXEEQCADIAIgA2pB1AlqLQAAQQJ0aiIIQTRqIAgoAjQiCEEBajYCACADIAhqIAI6ANQHIAEhAgsgASALRg0AIANBNGohASADQdQJaiEIIANB1AdqIQUDQCABIAIgCGotAABBAnRqIgQgBCgCACIEQQFqNgIAIAQgBWogAjoAACABIAggAkEBaiIEai0AAEECdGoiByAHKAIAIgdBAWo2AgAgBSAHaiAEOgAAIAJBAmoiAiALRw0ACwsgAEEEaiEKIABBDGohEyADKAIAIQlBACEIQQEhAgNAIBEgAiILayEBIAMgAkECdGooAgAhBwJAAkACQAJAAkACQEEBIAJ0QQF1IgxBAWsiAA4IAwIEAQQEBAAECyAHQQBMDQQgAUH/AXGtIRZBACEBIAghAiAHQQFHBEAgB0EBcSAHQf7///8HcSEEA0AgCiACQQF0aiIAIAMgASAJamoiBjEA1AdCCIYgFoRCgYCEgJCAwAB+Ihc3AAggACAXNwAAIAAgBjEA1QdCCIYgFoRCgYCEgJCAwAB+Ihc3ABggACAXNwAQIAJBEGohAiABQQJqIgEgBEcNAAtFDQULIAogAkEBdGoiACADIAEgCWpqMQDUB0IIhiAWhEKBgISAkIDAAH4iFjcACCAAIBY3AAAMBAsgB0EATA0DIAFB/wFxrSEWQQAhAiAIIQEgB0EBRwRAIAdBAXEgB0H+////B3EhBQNAIAogAUEBdCIEaiADIAIgCWpqIgYxANQHQgiGIBaEQoGAhICQgMAAfjcAACAEIBNqIAYxANUHQgiGIBaEQoGAhICQgMAAfjcAACABQQhqIQEgAkECaiICIAVHDQALRQ0ECyAKIAFBAXRqIAMgAiAJamoxANQHQgiGIBaEQoGAhICQgMAAfjcAAAwDCyAHQQBMDQJBACECIAghACAHQQFHBEAgB0EBcSAHQf7///8HcSEGA0AgCiAAQQF0aiIFIAMgAiAJamoiDi0A1AciEDoAAyAFIAE6AAIgBSAQOgABIAUgAToAACAFIA4tANUHIg46AAcgBSABOgAGIAUgDjoABSAFIAE6AAQgAEEEaiEAIAJBAmoiAiAGRw0AC0UNAwsgCiAAQQF0aiIAIAMgAiAJamotANQHIgI6AAMgACABOgACIAAgAjoAASAAIAE6AAAMAgsgB0EATA0BQQAhACAIIQUgB0EBRwRAIAdBAmsiBkECTwRAIAZBAXZBAWpBfnEhEEEAIQ4DQCAKIAVBAXRqIgIgAyAAIAlqaiIELQDUBzoAASACIAE6AAAgAiAELQDVBzoAAyACIAE6AAIgAiAELQDWBzoABSACIAE6AAQgAiAELQDXBzoAByACIAE6AAYgAEEEaiEAIAVBBGohBSAOQQJqIg4gEEcNAAsLIAZBAnFFBEAgCiAFQQF0aiICIAMgACAJamoiBC0A1Ac6AAEgAiABOgAAIAIgBC0A1Qc6AAMgAiABOgACIAVBAmohBSAAQQJqIQALIAdBAXFFDQILIAogBUEBdGoiAiADIAAgCWpqLQDUBzoAASACIAE6AAAMAQsgB0EATA0AIABBBHZBAWoiAEH8////AXEhFCAAQQNxIQ4gAUH/AXGtIRdBACEAIAxBMUkhFSAIIQQDQAJAIAxBAEwNACADIAAgCWpqMQDUB0IIhiAXhEKBgISAkIDAAH4hFiAKIARBAXRqIRBBACECQQAhAUEAIQUgFUUEQANAIBAgAUEBdGoiBiAWNwAYIAYgFjcAECAGIBY3AAggBiAWNwAAIAYgFjcAICAGIBY3ADAgBiAWNwAoIAYgFjcAOCAGIBY3AFggBiAWNwBQIAYgFjcASCAGQUBrIBY3AAAgBiAWNwB4IAYgFjcAcCAGIBY3AGggBiAWNwBgIAFBQGshASAFQQRqIgUgFEcNAAsLIA5FDQADQCAQIAFBAXRqIgUgFjcAGCAFIBY3ABAgBSAWNwAIIAUgFjcAACABQRBqIQEgAkEBaiICIA5HDQALCyAEIAxqIQQgAEEBaiIAIAdHDQALCyALQQFqIQIgByAJaiEJIAcgDGwgCGohCCALIA1HDQALCyASCyAPQRBqJAAL1lICMH8BfiMAQZAEayIKJABBuH8hCAJAIARB//8HSw0AIARBA0kEQEFsIQgMAQsCQAJAAkACQAJAIAMtAAAiBkEGdkEBaw4DAQIDAAsgBEEFSQRAQWwhCAwFC0EEIQwgAy0AASEFAn8CQAJAAkACQAJAAkAgBkEEdkEDcUECaw4CAgABCyAGQQ50QYCAD3EgBUEGdHIgAy0AAiIFQQJ2ciIOQYCACEsEQEFsIQgMCwtBBSEMIAMtAAQgBUEQdEGAgAxxIAMtAANBCHRyciIJQQVqIhwgBE0NBEFsIQgMCgsgAy0AAiAFQQh0QYAGcXIiCUEDaiIcIARNDQFBbCEIDAkLIAMtAAMgAy0AAiILQQh0QYD+AHFyIglBBGoiHCAETQ0BQWwhCAwICyAGQQZ0QcAHcSAFQQJ2ciEOQQMhDCAGQRBxRQ0BIABBzKkBaiEQIwBBEGsiBSQAAn8gAEGMKGoiDyADQQNqIg0gCRDxAiILQYh/SwRAIAsMAQtBuH8gCSALTQ0AGkG4fyAJIAtrIgZFDQAaIA8tAAIhFCAFIAsgDWoiCzYCDAJAAkAgBkEETwRAIAUgCSANakEEayIJNgIIIAUgCSgAACIJNgIAIAlBgICACE8NAUF/DAMLIAUgCzYCCCAFIAstAAAiDDYCAAJAAkACQCAGQQJrDgIBAAILIAstAAJBEHQgDHIhDAsgBSALLQABQQh0IAxqNgIAC0F/IAkgDWpBAWstAAAiCUUNAhogBSAJZyAGQQN0a0EJajYCBAwBCyAFQQggCUEYdmdBH3NrNgIEIAYgBkGIf0sNARoLIBAgBSAOIBBqIA9BBGogFBAzQWxBbCAOIAUoAgRBIEcbIAUoAgggBSgCDEcbCyAFQRBqJAAMAgsgBkEKdEGA+ABxIAVBAnRyIAtBBnZyIQ4LIABBjChqIQsgAEHMqQFqIRUgAyAMaiENIwBBQGoiByQAAkAgDkUEQEG6fyEFDAELQWwhBSAJQQJJIAkgDk9yDQACQAJAIA5BCHYiDCAJQQR0IA5uQRhsIgZB3P8AaigCAGwgBkHY/wBqKAIAaiIQQQN2IBBqIAZB0P8AaigCACAGQdT/AGooAgAgDGxqSQRAIAsgDSAJEPACIgZBiH9LBEAgBiEFDAQLIAYgCU8EQEG4fyEFDAQLIAkgBmsiD0EKSQ0DIAYgDWoiCS8AACINIAkvAAIiDGogCS8ABCIQakEGaiIUIA9LDQMgDUUEQEG4fyEFDAQLIAsoAgAgCUEGaiIFIA1qIQYgByAFNgI8AkAgDUEETwRAIAcgBkEEayIFNgI4IAcgBSgAACIFNgIwIAVBgICACEkEQEF/IQUMBgsgB0EIIAVBGHZnQR9zazYCNAwBCyAHIAU2AjggByAJLQAGIgU2AjACQAJAAkAgDUECaw4CAQACCyAJLQAIQRB0IAVyIQULIAcgCS0AB0EIdCAFajYCMAtBfyEFIAZBAWstAAAiCUUNBCAHIAlnIA1BA3RrQQlqNgI0CyAMRQRAQbh/IQUMBAsgBiAMaiEJIAcgBjYCLAJAIAxBBE8EQCAHIAlBBGsiBTYCKCAHIAUoAAAiBTYCICAFQYCAgAhJBEBBfyEFDAYLIAdBCCAFQRh2Z0Efc2s2AiQMAQsgByAGNgIoIAcgBi0AACIFNgIgAkACQAJAIAxBAmsOAgEAAgsgBi0AAkEQdCAFciEFCyAHIAYtAAFBCHQgBWo2AiALQX8hBSAJQQFrLQAAIgZFDQQgByAGZyAMQQN0a0EJajYCJAtBuH8hBSAQRQ0DIAkgEGohBiAHIAk2AhwCQCAQQQRPBEAgByAGQQRrIgU2AhggByAFKAAAIgU2AhAgBUGAgIAISQRAQX8hBQwGCyAHQQggBUEYdmdBH3NrNgIUDAELIAcgCTYCGCAHIAktAAAiBTYCEAJAAkACQCAQQQJrDgIBAAILIAktAAJBEHQgBXIhBQsgByAJLQABQQh0IAVqNgIQC0F/IQUgBkEBay0AACIJRQ0EIAcgCWcgEEEDdGtBCWo2AhQLIAcgBiAPIBRrEO8CIgVBiH9LDQMgFSAOQQNqQQJ2IgVqIhggBWoiHyAFaiEZIAtBBGohFyAOIBVqISJBEHYhHiAHQTBqECYhBSAHQSBqECYhBiAHQRBqECYhCSAHECYgBygCACEgIAcoAhAhIyAHKAIgISQgBygCMCElIAkgBSAGcnJyDQEgGSAiQQdrIitPDQEgBygCDCIaQQRqISwgBygCHCIhQQRqIS0gBygCLCIdQQRqIS4gBygCPCIbQQRqIS9BACAea0EfcSEWIAcoAgghEyAHKAIYIRQgBygCKCEQIAcoAjghDyAHKAIEIREgBygCFCEGIAcoAiQhBSAHKAI0IQ0gGCELIB8hCSAZIQwDQCAVIBcgJSANdCAWdkECdGoiEi8BADsAACASLQACISYgEi0AAyEnIAsgFyAkIAV0IBZ2QQJ0aiISLwEAOwAAIBItAAIhKCASLQADISkgCSAXICMgBnQgFnZBAnRqIhIvAQA7AAAgEi0AAiEqIBItAAMhMCAMIBcgICARdCAWdkECdGoiEi8BADsAACASLQACITEgEi0AAyESIBUgJ2oiFSAXICUgDSAmaiImdCAWdkECdGoiDS8BADsAACANLQACIScgDS0AAyEyIAsgKWoiKSAXICQgBSAoaiILdCAWdkECdGoiBS8BADsAACAFLQACIQ0gBS0AAyAJIDBqIjAgFyAjIAYgKmoiCXQgFnZBAnRqIgUvAQA7AAAgBS0AAiEqIAUtAAMhMyAMIBJqIjQgFyAgIBEgMWoiEXQgFnZBAnRqIgYvAQA7AAAgCyANaiELAkAgJiAnaiIFQSBLBEAgBSENQQMhEgwBCyAPIC9PBEAgBUEHcSENIA8gBUEDdmsiDygAACElQQAhEgwBCyAPIBtGBEBBAkEBIAVBIEYbIRIgGyEPIAUhDQwBCyAFIA8gG2sgBUEDdiIFIA8gBWsgG0kiEhsiBUEDdGshDSAPIAVrIg8oAAAhJQsgBi0AAyEmIAYtAAIhJyAJICpqIQxBAyEJAkAgC0EgSwRAIAshBUEDIQYMAQsgECAuTwRAIAtBB3EhBSAQIAtBA3ZrIhAoAAAhJEEAIQYMAQsgECAdRgRAQQJBASALQSBGGyEGIB0hECALIQUMAQsgCyAQIB1rIAtBA3YiBSAQIAVrIB1JIgYbIgtBA3RrIQUgECALayIQKAAAISQLIBEgJ2ohCyAGIBJyIRICQCAMQSBLBEAgDCEGDAELIBQgLU8EQCAMQQdxIQYgFCAMQQN2ayIUKAAAISNBACEJDAELIBQgIUYEQEECQQEgDEEgRhshCSAhIRQgDCEGDAELIAwgFCAhayAMQQN2IgYgFCAGayAhSSIJGyIMQQN0ayEGIBQgDGsiFCgAACEjCyAJIBJyIQxBAyESAkAgC0EgSwRAIAshEQwBCwJAIBMgLE8EQCALQQdxIREgC0EDdiELQQAhEgwBCyATIBpGBEAgGiETIAshEQwCCyALIBMgGmsgC0EDdiIJIBMgCWsgGkkiEhsiC0EDdGshEQsgEyALayITKAAAISALIBUgMmohFSApaiELIDAgM2ohCSAMIBJyRSArICYgNGoiDEtxDQALIAcgBTYCJCAHIA02AjQgByAGNgIUIAcgETYCBCAHIA82AjggByAQNgIoIAcgFDYCGCAHIBM2AggMAgsgCyANIAkQ8QIiBkGIf0sEQCAGIQUMAwsgBiAJTwRAQbh/IQUMAwsgCSAGayIPQQpJDQIgBiANaiIJLwAAIg0gCS8AAiIMaiAJLwAEIhBqQQZqIhQgD0sNAiANRQRAQbh/IQUMAwsgCygCACAJQQZqIgUgDWohBiAHIAU2AjwCQCANQQRPBEAgByAGQQRrIgU2AjggByAFKAAAIgU2AjAgBUGAgIAISQRAQX8hBQwFCyAHQQggBUEYdmdBH3NrNgI0DAELIAcgBTYCOCAHIAktAAYiBTYCMAJAAkACQCANQQJrDgIBAAILIAktAAhBEHQgBXIhBQsgByAJLQAHQQh0IAVqNgIwC0F/IQUgBkEBay0AACIJRQ0DIAcgCWcgDUEDdGtBCWo2AjQLIAxFBEBBuH8hBQwDCyAGIAxqIQkgByAGNgIsAkAgDEEETwRAIAcgCUEEayIFNgIoIAcgBSgAACIFNgIgIAVBgICACEkEQEF/IQUMBQsgB0EIIAVBGHZnQR9zazYCJAwBCyAHIAY2AiggByAGLQAAIgU2AiACQAJAAkAgDEECaw4CAQACCyAGLQACQRB0IAVyIQULIAcgBi0AAUEIdCAFajYCIAtBfyEFIAlBAWstAAAiBkUNAyAHIAZnIAxBA3RrQQlqNgIkC0G4fyEFIBBFDQIgCSAQaiEGIAcgCTYCHAJAIBBBBE8EQCAHIAZBBGsiBTYCGCAHIAUoAAAiBTYCECAFQYCAgAhJBEBBfyEFDAULIAdBCCAFQRh2Z0Efc2s2AhQMAQsgByAJNgIYIAcgCS0AACIFNgIQAkACQAJAIBBBAmsOAgEAAgsgCS0AAkEQdCAFciEFCyAHIAktAAFBCHQgBWo2AhALQX8hBSAGQQFrLQAAIglFDQMgByAJZyAQQQN0a0EJajYCFAsgByAGIA8gFGsQ7wIiBUGIf0sNAiAVIA5BA2pBAnYiBWoiGCAFaiIfIAVqIRkgC0EEaiEWIA4gFWohK0EQdiEsIAdBMGoQJiEFIAdBIGoQJiEGIAdBEGoQJiEJIAcQJiELIAcoAgAhICAHKAIQISMgBygCICEkIAcoAjAhJQJAAkAgCyAJIAUgBnJycg0AIBkgK0EHayItTw0AIAcoAgwiIUEEaiEuIAcoAhwiHUEEaiEvIAcoAiwiG0EEaiEmIAcoAjwiF0EEaiEnQQAgLGtBH3EhIiAHKAIIIRQgBygCGCEQIAcoAighDyAHKAI4IRogBygCBCEGIAcoAhQhBSAHKAIkIQ0gBygCNCESIBghCyAfIQkgGSEMA0AgFiAlIBJ0ICJ2QQF0aiIRLQABIRMgFSARLQAAOgAAIBYgJCANdCAidkEBdGoiES0AASEeIAsgES0AADoAACAWICMgBXQgInZBAXRqIhEtAAEhKCAJIBEtAAA6AAAgFiAgIAZ0ICJ2QQF0aiIRLQABISkgDCARLQAAOgAAIBYgJSASIBNqIhJ0ICJ2QQF0aiIRLQABIRMgFSARLQAAOgABIBYgJCANIB5qIg10ICJ2QQF0aiIRLQABIR4gCyARLQAAOgABIBYgIyAFIChqIhF0ICJ2QQF0aiIFLQABISggCSAFLQAAOgABIBYgICAGIClqIil0ICJ2QQF0aiIFLQABISogDCAFLQAAOgABIA0gHmohBgJAIBIgE2oiBUEgSwRAIAUhEkEDIR4MAQsgGiAnTwRAIAVBB3EhEiAaIAVBA3ZrIhooAAAhJUEAIR4MAQsgFyAaRgRAQQJBASAFQSBGGyEeIBchGiAFIRIMAQsgBSAaIBdrIAVBA3YiBSAaIAVrIBdJIh4bIgVBA3RrIRIgGiAFayIaKAAAISULIBEgKGohEUEDIRMCQCAGQSBLBEAgBiENQQMhBQwBCyAPICZPBEAgBkEHcSENIA8gBkEDdmsiDygAACEkQQAhBQwBCyAPIBtGBEBBAkEBIAZBIEYbIQUgGyEPIAYhDQwBCyAGIA8gG2sgBkEDdiIFIA8gBWsgG0kiBRsiBkEDdGshDSAPIAZrIg8oAAAhJAsgKSAqaiEGIAUgHnIhHgJAIBFBIEsEQCARIQUMAQsgECAvTwRAIBFBB3EhBSAQIBFBA3ZrIhAoAAAhI0EAIRMMAQsgECAdRgRAQQJBASARQSBGGyETIB0hECARIQUMAQsgESAQIB1rIBFBA3YiBSAQIAVrIB1JIhMbIhFBA3RrIQUgECARayIQKAAAISMLIBMgHnJBAyETAkAgBkEgSw0AAn8gFCAuTwRAIAZBA3YhIEEAIRMgBkEHcQwBCyAUICFGBEAgISEUDAILIAYgFCAhayAGQQN2IgYgFCAGayAhSSITGyIgQQN0awshBiAUICBrIhQoAAAhIAsgCUECaiEJIAtBAmohCyAVQQJqIRUgE3JFIC0gDEECaiIMS3ENAAsgByANNgIkIAcgEjYCNCAHIAU2AhQgByAGNgIEIAcgGjYCOCAHIA82AiggByAQNgIYIAcgFDYCCAwBCyAZIQwgHyEJIBghCwsgByAkNgIgIAcgJTYCMCAHICM2AhAgByAgNgIAIBUgGEsEQEFsIQUMAwsgCyAfSwRAQWwhBQwDC0FsIQUgCSAZSw0CIBUgB0EwaiAYIBYgLEH/AXEiBRAzIAsgB0EgaiAfIBYgBRAzIAkgB0EQaiAZIBYgBRAzIAwgByArIBYgBRAzQWxBbEFsQWxBbEFsQWxBbCAOIAcoAgRBIEcbIAcoAgggBygCDEcbIAcoAhRBIEcbIAcoAhggBygCHEcbIAcoAiRBIEcbIAcoAiggBygCLEcbIAcoAjRBIEcbIAcoAjggBygCPEcbIQUMAgsgGSEMIB8hCSAYIQsLIAcgJDYCICAHICU2AjAgByAjNgIQIAcgIDYCACAVIBhLBEBBbCEFDAELIAsgH0sEQEFsIQUMAQtBbCEFIAkgGUsNACAVIAdBMGogGCAXIB5B/wFxIgUQNiALIAdBIGogHyAXIAUQNiAJIAdBEGogGSAXIAUQNiAMIAcgIiAXIAUQNkFsQWxBbEFsQWxBbEFsQWwgDiAHKAIEQSBHGyAHKAIIIAcoAgxHGyAHKAIUQSBHGyAHKAIYIAcoAhxHGyAHKAIkQSBHGyAHKAIoIAcoAixHGyAHKAI0QSBHGyAHKAI4IAcoAjxHGyEFCyAHQUBrJAAgBQtBiH9LBEBBbCEIDAULIAAgDjYCyKkBIABBATYC0KgBIAAgAEHMqQFqIgU2AripASAFIA5qQgA3AAAMAwsgBkEwcUEQRwRAQWwhCAwECyAAKALQqAFFBEBBYiEIDAQLIAQgAy0AAiADLQABIglBCHRBgAZxciIFQQNqIhxJBEBBbCEIDAQLIAAtAI0oQQh0QYACRwRAQWwhCAwECyAAQcypAWohDSAGQQZ0QcAHcSAJQQJ2ciEMIANBA2ohCSAAQYwoaiEOIwBBEGsiBiQAAn9BuH8gBUUNABogBiAJNgIMAkACQCAFQQRPBEAgBiAFIAlqQQRrIgU2AgggBiAFKAAAIgU2AgAgBUGAgIAITw0BQX8MAwsgBiAJNgIIIAYgCS0AACILNgIAAkACQAJAIAVBAmsOAgEAAgsgCS0AAkEQdCALciELCyAGIAktAAFBCHQgC2o2AgALQX8gBSAJakEBay0AACIJRQ0CGiAGIAlnIAVBA3RrQQlqNgIEDAELIAZBCCAFQRh2Z0Efc2s2AgQLIA0gBiAMIA1qIA5BBGogDi0AAhA2QWxBbCAMIAYoAgRBIEcbIAYoAgggBigCDEcbCyAGQRBqJABBiH9LBEBBbCEIDAQLIAAgDDYCyKkBIAAgDTYCuKkBIAwgDWpCADcAAAwCC0EDIQ4gBAJ/AkACQAJAIAZBBHZBA3FBAmsOAgECAAtBASEOIAZBH3EMAgtBAiEOIAMtAAEgBkEIdEGAHnFyDAELIAMtAAIgBkEQdEGAgDxxIAMtAAFBCHRycgsiBSAOaiIcQQhqSQRAIAQgHEkEQEFsIQgMBAsgAEHMqQFqIAMgDmogBRAUIQYgACAFNgLIqQEgACAGNgK4qQEgBSAGakIANwAADAILIAAgBTYCyKkBIAAgAyAOajYCuKkBDAELQQMhHAJAAkACQAJAIAZBBHZBA3FBAmsOAgABAgsgAy0AASAGQQh0QYAecXIhBUECIRwMAgsgBEEDRgRAQWwhCAwECyADLQACIAZBEHRBgIA8cSADLQABQQh0cnIiBUGAgAhNDQFBbCEIDAMLIAZBH3EhBUEBIRwLIABBzKkBaiADIBxqLQAAIAVBCGoQGCEGIAAgBTYCyKkBIAAgBjYCuKkBIBxBAWohHAsgBCAcRg0AIAEgAmohFCAAKAK4qQEiBiAAKALIqQFqIRICQAJAIAMgHGoiDS0AACIMRQ0AIAQgHGshESAAKALUqAEhGSAAKAKcqAEhHyAAKAKYqAEhFyAAKAKUqAEhCwJ/IA1BAWogDMAiAkEATg0AGiACQX9GBEAgEUEDSA0EIA0vAAFBgP4BaiEMIA1BA2oMAQsgEUECSA0DIA0tAAEgDEEIdHJBgIACayEMIA1BAmoLIQIgAyAEaiIJIAJBBGpJDQIgAi0AACEYIApBIzYCDCACQQFqIQ8CQAJAAkACQAJAAkACQCAYQQZ2IhBBAWsOAwACAwELIA8tAAAiAkEjSw0DIABBADoAByAAIAI6AAYgAEEAOwEEIABBADYBAAwFCyAAQQRqIQ5BPyEIQQEhBUEAIQQDQAJAIARBAXQiAkGAgwFqLgEAIgNBf0YEQCAOIAhBAnRqIAQ6AAIgCEEBayEIQQEhAwwBCyAFQQAgA0EgSBshBQsgCkEQaiACaiADOwEAAkAgBEEBciICQQF0IhNBgIMBai4BACIDQX9HBEAgBUEAIANBIEgbIQUMAQsgDiAIQQJ0aiACOgACIAhBAWshCEEBIQMLIApBEGogE2ogAzsBACAEQSJHIARBAmohBA0ACyAAIAU7AQIgAEEGOwEAQQAhBEEAIQUDQAJAIAUiAkEBdEGAgwFqLwEAIgPBIgVBAEwNACAFQQFHBEAgA0H+/wFxIRNBACEFA0AgDiAEQQJ0aiACOgACA0AgBEErakE/cSIEIAhLDQALIA4gBEECdGogAjoAAgNAIARBK2pBP3EiBCAISw0ACyAFQQJqIgUgE0cNAAsLIANBAXFFDQAgDiAEQQJ0aiACOgACA0AgBEErakE/cSIEIAhLDQALCyACQQFqIQUgAkEjRw0ACyAEDQRBACEEA0AgCkEQaiAOIARBAnRqIgItAAJBAXRqIgMgAy8BACIDQQFqOwEAIAJBBiADZ0Efc2siBToAAyACIAMgBXRBQGo7AQAgBEEBaiIEQcAARw0ACwwEC0EAIRAgGQ0DQWwhCAwGCyAKQRBqIApBDGogCkEIaiAPIAkgD2sQKSIQQYh/Sw0AIAooAggiAkEJTQ0BC0FsIQgMBAsgACAKQRBqIAooAgwgAhAyGgsgCkEcNgIMIA8gEGohDwJAAkACQAJAAkACQAJAIBhBBHZBA3EiEEEBaw4DAAIDAQsgCSAPRg0DIA8tAAAiAkEcSw0DIABBADoAixAgACACOgCKECAAQQA7AYgQIABBADYBhBAMBQsgAEGIEGohDkEfIQhBASEFQQAhBANAAkAgBEEBdCICQdCDAWouAQAiA0F/RgRAIA4gCEECdGogBDoAAiAIQQFrIQhBASEDDAELIAVBACADQRBIGyEFCyAKQRBqIAJqIAM7AQAgBEEcRwRAAkAgBEEBciICQQF0IhNB0IMBai4BACIDQX9HBEAgBUEAIANBEEgbIQUMAQsgDiAIQQJ0aiACOgACIAhBAWshCEEBIQMLIApBEGogE2ogAzsBACAEQQJqIQQMAQsLIAAgBTsBhhAgAEEFOwGEEEEAIQRBACEFA0ACQCAFIgJBAXRB0IMBai8BACIDwSIFQQBMDQAgBUEBRwRAIANB/v8BcSETQQAhBQNAIA4gBEECdGogAjoAAgNAIARBF2pBH3EiBCAISw0ACyAOIARBAnRqIAI6AAIDQCAEQRdqQR9xIgQgCEsNAAsgBUECaiIFIBNHDQALCyADQQFxRQ0AIA4gBEECdGogAjoAAgNAIARBF2pBH3EiBCAISw0ACwsgAkEBaiEFIAJBHEcNAAsgBA0EQQAhBANAIApBEGogDiAEQQJ0aiICLQACQQF0aiIDIAMvAQAiA0EBajsBACACQQUgA2dBH3NrIgU6AAMgAiADIAV0QSBrOwEAIARBAWoiBEEgRw0ACwwEC0EAIRAgGQ0DQWwhCAwGCyAKQRBqIApBDGogCkEIaiAPIAkgD2sQKSIQQYh/Sw0AIAooAggiAkEITQ0BC0FsIQgMBAsgAEGEEGogCkEQaiAKKAIMIAIQMhoLIABBiBhqIQQgCkE0NgIMIA8gEGohAgJAAkACQAJAAkACQAJAIBhBAnZBA3EiA0EBaw4DAAIDAQsgAiAJRg0DIAItAAAiBEE0Sw0DIABBADoAjxggACAEOgCOGCAAQQA7AYwYIABBADYBiBgMBQsgBEGQhAFBNEEGEDIaDAQLQQAhA0FsIQggGQ0DDAYLIApBEGogCkEMaiAKQQhqIAIgCSACaxApIgNBiH9LDQAgCigCCCIFQQlNDQELQWwhCAwECyAEIApBEGogCigCDCAFEDIaCyACIANqIgQgDWsiCEGIf0sNAiAMRQ0AIABBATYC1KgBIApBQGsgAEGsqAFqKAIANgIAIAogAEGkqAFqIhkpAgA3AjggCCARRgRAQWwhCAwDCyAKIAQ2AhwCQAJAIAkgBGsiAkEETwRAIAogCUEEayIDNgIYIAogAygAACIINgIQIAhBgICACE8NAUFsIQgMBQsgCiAENgIYIAogBC0AACIINgIQAkACQAJAIAJBAmsOAgEAAgsgBC0AAkEQdCAIciEICyAKIAQtAAFBCHQgCGoiCDYCEAsgCUEBay0AACIDRQRAQWwhCAwFCyADZyACQQN0a0EJaiECIAQhAwwBCyACQYh/SwRAQWwhCAwEC0EIIAhBGHZnQR9zayECCyAKIAggAnRBAXZBHyAALwEAIgVrdjYCIAJAIAIgBWoiAkEgSw0AAn8gBEEEaiADTQRAIAogAyACQQN2ayIDNgIYIAJBB3EMAQsgAyAERgRAIAQhAwwCCyAKIAMgAyAEayACQQN2IgUgAyAFayAESRsiBWsiAzYCGCACIAVBA3RrCyECIAogAygAACIINgIQCyAKIABBBGo2AiQgCiAIIAJ0QQF2QR8gAC8BhBAiBWt2NgIoAkAgAiAFaiICQSBLDQAgCgJ/IARBBGogA00EQCAKIAMgAkEDdmsiAzYCGCACQQdxDAELIAMgBEYEQCAEIQMMAgsgCiADIAMgBGsgAkEDdiIFIAMgBWsgBEkbIgVrIgM2AhggAiAFQQN0awsiAjYCFCAKIAMoAAAiCDYCEAsgCiAAQYgQajYCLCAKIAIgAC8BiBgiCWoiBTYCFCAKIAggAnRBAXZBHyAJa3Y2AjACQCAFQSBLDQAgCgJ/IARBBGogA00EQCAKIAMgBUEDdmsiBDYCGCAFQQdxDAELIAMgBEYNASAKIAMgAyAEayAFQQN2IgIgAyACayAESRsiAmsiBDYCGCAFIAJBA3RrCzYCFCAKIAQoAAA2AhALIAogAEGMGGo2AjQgFEENayEHIBRBCGshDSABIQUDQCAFIQMgBiEEAkACQCAKKAIUIgBBIU8EQEFsIQggDEUNAQwGCwJAIAooAhgiCCAKKAIcIgZBBGoiDk8EQCAKIABBB3EiBTYCFCAKIAggAEEDdmsiCDYCGCAKIAgoAAA2AhAMAQsgBiAIRgRAIAAhBQwBCyAKIAggCCAGayAAQQN2IgIgCCACayAGSRsiAmsiCDYCGCAKIAAgAkEDdGsiBTYCFCAKIAgoAAA2AhALIAwNAQsgGSAKKQI4NwIAIBkgCigCQDYCCAwDCyAKKAIkIAooAiBBAnRqIhgtAAIiE0ECdCIRQYCFAWooAgAhCSAKKAI0IAooAjBBAnRqIhotAAIiHUECdCIQQZCGAWooAgAhDwJAAkACQCAKKAIsIAooAihBAnRqIiEtAAIiAkUEQEEAIQAMAQsgCiACIAVqIgA2AhQgCigCECAFdEEBdkEfIAJrdiEbIAJBAnRB4IoBaigCAAJAIABBIEsEQCAAIQUMAQsgCgJ/IAggDk8EQCAKIAggAEEDdmsiCDYCGCAAQQdxDAELIAYgCEYEQCAGIQggACEFDAILIAogCCAIIAZrIABBA3YiBSAIIAVrIAZJGyIFayIINgIYIAAgBUEDdGsLIgU2AhQgCiAIKAAANgIQCyAbaiEAIAJBAUcNAQsgAEEBIABrIAAgAEECSRsgExsiAgRAIAJBAnQgCmooAjghACACQQFHBEAgCiAKKAI8NgJACyAKIAooAjg2AjwgCiAANgI4DAILIAooAjghAAwBCyAKKQI4ITUgCiAANgI4IAogNTcCPAsgCSAPaiEbIBBBgIkBakEAIRACQCAdQSBJBEAgBSECDAELIAogBSAPaiICNgIUIAooAhAgBXRBAXZBHyAPa3YhEAsoAgAhHQJAIBtBGUkgAkEgS3INACAKAn8gCCAOTwRAIAogCCACQQN2ayIINgIYIAJBB3EMAQsgBiAIRgRAIAYhCAwCCyAKIAggCCAGayACQQN2IgUgCCAFayAGSRsiBWsiCDYCGCACIAVBA3RrCyICNgIUIAogCCgAADYCEAsgEUHwhwFqKAIAIRtBACERAkAgE0EQSQRAIAIhBQwBCyAKIAIgCWoiBTYCFCAKKAIQIAJ0QQF2QR8gCWt2IRELAkAgBUEgSw0AIAoCfyAIIA5PBEAgCiAIIAVBA3ZrIgg2AhggBUEHcQwBCyAGIAhGBEAgBiEIDAILIAogCCAIIAZrIAVBA3YiAiAIIAJrIAZJGyICayIINgIYIAUgAkEDdGsLIgU2AhQgCiAIKAAANgIQCyARIBtqIQIgCiAYLwEAIAooAhAiCSAFdEEBdkEfIBgtAAMiD2t2ajYCICAKIAUgD2oiDzYCFCAaLwEAIRggCiAPIBotAAMiE2oiBTYCFCAKIBggCSAPdEEBdkEfIBNrdmo2AjACQCAFQSBLDQAgCgJ/IAggDk8EQCAKIAggBUEDdmsiCDYCGCAFQQdxDAELIAYgCEYNASAKIAggCCAGayAFQQN2IgkgCCAJayAGSRsiBmsiCDYCGCAFIAZBA3RrCyIFNgIUIAogCCgAACIJNgIQCyAhLwEAIQggCiAFICEtAAMiBmo2AhQgCiAIIAkgBXRBAXZBHyAGa3ZqNgIoQbp/IQggFCADayIFIAJBCGpJDQMgAiAQIB1qIg9qIgkgBUsNAyASIARrIAJJBEBBbCEIDAQLIAxBAWshDCACIARqIQYgAiADaiICIABrIQ4gAyAJaiEFIAMhCANAIAggBCkAADcAACAEQQhqIQQgCEEIaiIIIAJJDQALAkACQAJAAkAgAiALayAASQRAIAIgF2sgAEkEQEFsIQgMCQsgHyAfIA4gC2siBGoiCCAPak8EQCACIAggDxAcGgwFCyAEIA9qIQ8gD0ECTSACIAhBACAEaxAcIARrIgIgDUtyDQEgCyEOCyAAQQdLDQEgAiAOLQAAOgAAIAIgDi0AAToAASACIA4tAAI6AAIgAiAOLQADOgADIAIgDiAAQQJ0IgBB4IsBaigCAGoiAygAADYABCADIABBgIwBaigCAGshDgwCCyACIAVPDQJBACEIIAshBCAPQQdxIg4EQANAIAIgBC0AADoAACACQQFqIQIgBEEBaiEEIAhBAWoiCCAORw0ACwsgCyAQIBFqIBtqIB1qIANqayAAakF4Sw0CA0AgAiAELQAAOgAAIAIgBC0AAToAASACIAQtAAI6AAIgAiAELQADOgADIAIgBC0ABDoABCACIAQtAAU6AAUgAiAELQAGOgAGIAIgBC0ABzoAByAEQQhqIQQgAkEIaiICIAVJDQALDAILIAIgDikAADcAAAsgDkEIaiEIIAJBCGohBCAFIAdLBEAgBCANSQRAIAQhAyAIIQIDQCADIAIpAAA3AAAgAkEIaiECIANBCGoiAyANSQ0ACyAIIA0gBGtqIQggDSEECyAEIAVPDQEDQCAEIAgtAAA6AAAgCEEBaiEIIARBAWoiBCAFSQ0ACwwBCyACIA9qIQADQCAEIAgpAAA3AAAgCEEIaiEIIARBCGoiBCAASQ0ACwsgCSIIQYl/SQ0ACwwCCyAGIQQgASEDCyASIARrIgAgFCADa0sEQEG6fyEIDAELIAQgEkcEfyADIAQgABAUIABqBSADCyABayEICyAKQZAEaiQAIAgL8S0BGH8jAEGQBGsiByQAQbh/IQUCQCAEQf//B0sNACAEQQNJBEBBbCEFDAELAkACQAJAAkACQCADLQAAIgZBBnZBAWsOAwECAwALIARBBUkEQEFsIQUMBQtBBCEMIAMtAAEhCQJ/AkACQAJAAkACQAJAIAZBBHZBA3FBAmsOAgIAAQsgBkEOdEGAgA9xIAlBBnRyIAMtAAIiBkECdnIiCUGAgAhLBEBBbCEFDAsLQQUhDCADLQAEIAZBEHRBgIAMcSADLQADQQh0cnIiCkEFaiIIIARNDQRBbCEFDAoLIAMtAAIgCUEIdEGABnFyIgpBA2oiCCAETQ0BQWwhBQwJCyADLQADIAMtAAIiDkEIdEGA/gBxciIKQQRqIgggBE0NAUFsIQUMCAsgBkEGdEHAB3EgCUECdnIhCUEDIQwgBkEQcUUNASAAQcyoAWohESADQQNqIQ8jAEGgwABrIgYkACAGQQBBgsAAEBgiBkEMOwEAAn8gBiAPIAoQ9QIiDEGIf0sEQCAMDAELQbh/IAogDE0NABpBuH8gCiAMayIORQ0AGiAGLwEAIRQgBiAMIA9qIgw2ApxAAkACQCAOQQRPBEAgBiAKIA9qQQRrIgo2AphAIAYgCigAACIKNgKQQCAKQYCAgAhPDQFBfwwDCyAGIAw2AphAIAYgDC0AACILNgKQQAJAAkACQCAOQQJrDgIBAAILIAwtAAJBEHQgC3IhCwsgBiAMLQABQQh0IAtqNgKQQAtBfyAKIA9qQQFrLQAAIgpFDQIaIAYgCmcgDkEDdGtBCWo2ApRADAELIAZBCCAKQRh2Z0Efc2s2ApRAIA4gDkGIf0sNARoLIBEgBkGQwABqIAkgEWogBkECciAUEDNBbEFsIAkgBigClEBBIEcbIAYoAphAIAYoApxARxsLIAZBoMAAaiQADAILIAZBCnRBgPgAcSAJQQJ0ciAOQQZ2ciEJCwJ/IABBzKgBaiEGIAMgDGohDkG6fyAJRQ0AGkFsIAkgCkkNABogCSAKRgRAIAYgDiAJEBQaIAkMAQsgCkEBRgRAIAYgDi0AACAJEBgaIAkMAQsgBiAJIA4gCiAJQQh2Ig4gCkEEdCAJbkEYbCIGQdz/AGooAgBsIAZB2P8AaigCAGoiCkEEdiAKaiAGQdD/AGooAgAgBkHU/wBqKAIAIA5saklBAnRBoPsAaigCABECAAsLQYh/SwRAQWwhBQwFCyAAIAk2AsioASAAIABBzKgBaiIGNgLEqAEgBiAJakIANwAADAMLIAZBMHFBEEcEQEFsIQUMBAsgACgCwKgBRQRAQWIhBQwECyAEIAMtAAIgAy0AASIJQQh0QYAGcXIiDkEDaiIISQRAQWwhBQwECyAAQcyoAWoiCiAGQQZ0QcAHcSAJQQJ2ciIGIANBA2ogDiAAQYwoahD3AkGIf0sEQEFsIQUMBAsgACAGNgLIqAEgACAKNgLEqAEgBiAKakIANwAADAILQQMhCSAEAn8CQAJAAkAgBkEEdkEDcUECaw4CAQIAC0EBIQkgBkEfcQwCC0ECIQkgAy0AASAGQQh0QYAecXIMAQsgAy0AAiAGQRB0QYCAPHEgAy0AAUEIdHJyCyIGIAlqIghBCGpJBEAgBCAISQRAQWwhBQwECyAAQcyoAWogAyAJaiAGEBQhCiAAIAY2AsioASAAIAo2AsSoASAGIApqQgA3AAAMAgsgACAGNgLIqAEgACADIAlqNgLEqAEMAQtBAyEIAkACQAJAAkAgBkEEdkEDcUECaw4CAAECCyADLQABIAZBCHRBgB5xciEGQQIhCAwCCyAEQQNGBEBBbCEFDAQLIAMtAAIgBkEQdEGAgDxxIAMtAAFBCHRyciIGQYCACE0NAUFsIQUMAwsgBkEfcSEGQQEhCAsgAEHMqAFqIAMgCGotAAAgBkEIahAYIQogACAGNgLIqAEgACAKNgLEqAEgCEEBaiEICyAEIAhGDQAgASACaiERIAAoAsSoASIKIAAoAsioAWohFAJAAkACQCADIAhqIg8tAAAiDEUEQCAAQQA2AsCoAQwBCyAEIAhrIRIgACgCwKgBIRMgACgCnKgBIRggACgCmKgBIRkgACgClKgBIQ4CfyAPQQFqIAzAIgJBAE4NABogAkF/RgRAIBJBA0gNBSAPLwABQYD+AWohDCAPQQNqDAELIBJBAkgNBCAPLQABIAxBCHRyQYCAAmshDCAPQQJqCyECIAMgBGoiCCACQQRqSQ0DIAItAAAhFSAHQSM2AgwgAkEBaiENAkACQAJAAkACQAJAAkAgFUEGdiIJQQFrDgMAAgMBCyANLQAAIgJBI0sNAyAAQQA6AAcgACACOgAGIABBADsBBCAAQQA2AQAMBQsgAEEEaiELQT8hBUEBIQZBACEEA0ACQCAEQQF0IgJBgIMBai4BACIDQX9GBEAgCyAFQQJ0aiAEOgACIAVBAWshBUEBIQMMAQsgBkEAIANBIEgbIQYLIAdBEGogAmogAzsBAAJAIARBAXIiAkEBdCIQQYCDAWouAQAiA0F/RwRAIAZBACADQSBIGyEGDAELIAsgBUECdGogAjoAAiAFQQFrIQVBASEDCyAHQRBqIBBqIAM7AQAgBEEiRyAEQQJqIQQNAAsgACAGOwECIABBBjsBAEEAIQRBACEGA0ACQCAGIgJBAXRBgIMBai8BACIDwSIGQQBMDQAgBkEBRwRAIANB/v8BcSEQQQAhBgNAIAsgBEECdGogAjoAAgNAIARBK2pBP3EiBCAFSw0ACyALIARBAnRqIAI6AAIDQCAEQStqQT9xIgQgBUsNAAsgBkECaiIGIBBHDQALCyADQQFxRQ0AIAsgBEECdGogAjoAAgNAIARBK2pBP3EiBCAFSw0ACwsgAkEBaiEGIAJBI0cNAAsgBA0EQQAhBANAIAdBEGogCyAEQQJ0aiICLQACQQF0aiIDIAMvAQAiA0EBajsBACACQQYgA2dBH3NrIgU6AAMgAiADIAV0QUBqOwEAIARBAWoiBEHAAEcNAAsMBAtBACEJIBMNA0FsIQUMBwsgB0EQaiAHQQxqIAdBCGogDSAIIA1rECkiCUGIf0sNACAHKAIIIgJBCU0NAQtBbCEFDAULIAAgB0EQaiAHKAIMIAIQMhoLIAdBHDYCDCAJIA1qIQ0CQAJAAkACQAJAAkACQCAVQQR2QQNxIglBAWsOAwACAwELIAggDUYNAyANLQAAIgJBHEsNAyAAQQA6AIsQIAAgAjoAihAgAEEAOwGIECAAQQA2AYQQDAULIABBiBBqIQtBHyEFQQEhBkEAIQQDQAJAIARBAXQiAkHQgwFqLgEAIgNBf0YEQCALIAVBAnRqIAQ6AAIgBUEBayEFQQEhAwwBCyAGQQAgA0EQSBshBgsgB0EQaiACaiADOwEAIARBHEcEQAJAIARBAXIiAkEBdCIQQdCDAWouAQAiA0F/RwRAIAZBACADQRBIGyEGDAELIAsgBUECdGogAjoAAiAFQQFrIQVBASEDCyAHQRBqIBBqIAM7AQAgBEECaiEEDAELCyAAIAY7AYYQIABBBTsBhBBBACEEQQAhBgNAAkAgBiICQQF0QdCDAWovAQAiA8EiBkEATA0AIAZBAUcEQCADQf7/AXEhEEEAIQYDQCALIARBAnRqIAI6AAIDQCAEQRdqQR9xIgQgBUsNAAsgCyAEQQJ0aiACOgACA0AgBEEXakEfcSIEIAVLDQALIAZBAmoiBiAQRw0ACwsgA0EBcUUNACALIARBAnRqIAI6AAIDQCAEQRdqQR9xIgQgBUsNAAsLIAJBAWohBiACQRxHDQALIAQNBEEAIQQDQCAHQRBqIAsgBEECdGoiAi0AAkEBdGoiAyADLwEAIgNBAWo7AQAgAkEFIANnQR9zayIFOgADIAIgAyAFdEEgazsBACAEQQFqIgRBIEcNAAsMBAtBACEJIBMNA0FsIQUMBwsgB0EQaiAHQQxqIAdBCGogDSAIIA1rECkiCUGIf0sNACAHKAIIIgJBCE0NAQtBbCEFDAULIABBhBBqIAdBEGogBygCDCACEDIaCyAAQYgYaiEDIAdBNDYCDCAJIA1qIQICQAJAAkACQAJAAkACQCAVQQJ2QQNxIgVBAWsOAwACAwELIAIgCEYNAyACLQAAIgNBNEsNAyAAQQA6AI8YIAAgAzoAjhggAEEAOwGMGCAAQQA2AYgYDAULIANBwPsAQTRBBhAyGgwEC0EAIQUgEw0DQWwhBQwHCyAHQRBqIAdBDGogB0EIaiACIAggAmsQKSIFQYh/Sw0AIAcoAggiBEEJTQ0BC0FsIQUMBQsgAyAHQRBqIAcoAgwgBBAyGgsgAiAFaiIEIA9rIgVBiH9LDQMgAEEANgLAqAEgDA0BCyAKIQQgASEDDAELIAdBATYCQCAHQoGAgIAQNwI4IAUgEkYEQEFsIQUMAgsgByAFIA9qIgI2AhwCQAJAIAggBGsiBkEETwRAIAcgCEEEayIDNgIYIAcgAygAACIFNgIQIAVBgICACE8NAUFsIQUMBAsgByACNgIYIAcgAi0AACIFNgIQAkACQAJAIAZBAmsOAgEAAgsgAi0AAkEQdCAFciEFCyAHIAItAAFBCHQgBWoiBTYCEAsgCEEBay0AACIDRQRAQWwhBQwECyAHIANnIAZBA3RrQQlqIgY2AhQgAiEDDAELIAZBiH9LBEBBbCEFDAMLQQggBUEYdmdBH3NrIQYLIAcgBSAGdEEBdkEfIAAvAQAiCGt2NgIgAkAgBiAIaiIGQSBLDQACfyACQQRqIANNBEAgByADIAZBA3ZrIgM2AhggBkEHcQwBCyADIARGBEAgAiEDDAILIAcgAyADIARrIAZBA3YiBSADIAVrIARJGyIFayIDNgIYIAYgBUEDdGsLIQYgByADKAAAIgU2AhALIAcgAEEEajYCJCAHIAUgBnRBAXZBHyAALwGEECIIa3Y2AigCQCAGIAhqIgZBIEsNACAHAn8gAkEEaiADTQRAIAcgAyAGQQN2ayIDNgIYIAZBB3EMAQsgAyAERgRAIAIhAwwCCyAHIAMgAyAEayAGQQN2IgUgAyAFayAESRsiBWsiAzYCGCAGIAVBA3RrCyIGNgIUIAcgAygAACIFNgIQCyAHIABBiBBqNgIsIAcgBiAALwGIGCIJaiIINgIUIAcgBSAGdEEBdkEfIAlrdjYCMAJAIAhBIEsNACAHAn8gAkEEaiADTQRAIAcgAyAIQQN2ayIENgIYIAhBB3EMAQsgAyAERg0BIAcgAyADIARrIAhBA3YiAiADIAJrIARJGyICayIENgIYIAggAkEDdGsLNgIUIAcgBCgAADYCEAsgByAAQYwYajYCNCARQQ1rIRogEUEIayEPIAEhBgNAAkAgBiEDIAohBCAHKAIUIgJBIEsNAAJAIAcoAhgiBSAHKAIcIgBBBGoiCk8EQCAHIAJBB3EiCDYCFCAHIAUgAkEDdmsiBTYCGCAHIAUoAAA2AhAMAQsgACAFRgRAIAIhCAwBCyAHIAUgBSAAayACQQN2IgYgBSAGayAASRsiBmsiBTYCGCAHIAIgBkEDdGsiCDYCFCAHIAUoAAA2AhALIAxFDQIgBygCJCAHKAIgQQJ0aiISLQACIhNBAnQiF0GAhQFqKAIAIQsgBygCNCAHKAIwQQJ0aiIVLQACIhtBAnQiFkGQhgFqKAIAIQ0CQAJAAkACQCAHKAIsIAcoAihBAnRqIhAtAAIiAkUEQEEAIQIMAQsgByACIAhqIgY2AhQgAkECdEGQ/gBqKAIAIAcoAhAgCHRBAXZBHyACa3ZqIQICQCAGQSBLBEAgBiEIDAELIAcCfyAFIApPBEAgByAFIAZBA3ZrIgU2AhggBkEHcQwBCyAAIAVGBEAgACEFIAYhCAwCCyAHIAUgBSAAayAGQQN2IgggBSAIayAASRsiCGsiBTYCGCAGIAhBA3RrCyIINgIUIAcgBSgAADYCEAsgAkECSw0BCyACQQEgAmsgAiACQQJHGyATGyICBEAgAkECdCAHaigCOCEJIAJBAUcEQCAHIAcoAjw2AkALIAcgBygCODYCPAwCCyAHKAI4IQkMAgsgByAHKQI4NwI8IAJBAmshCQsgByAJNgI4CyALIA1qIQIgFkGw/ABqQQAhFgJAIBtBIEkEQCAIIQYMAQsgByAIIA1qIgY2AhQgBygCECAIdEEBdkEfIA1rdiEWCygCAAJAIAJBGUkgBkEgS3INACAHAn8gBSAKTwRAIAcgBSAGQQN2ayIFNgIYIAZBB3EMAQsgACAFRgRAIAAhBQwCCyAHIAUgBSAAayAGQQN2IgIgBSACayAASRsiAmsiBTYCGCAGIAJBA3RrCyIGNgIUIAcgBSgAADYCEAsgF0HwhwFqKAIAIRdBACEIAkAgE0EQSQRAIAYhAgwBCyAHIAYgC2oiAjYCFCAHKAIQIAZ0QQF2QR8gC2t2IQgLQQNqAkAgAkEgSw0AIAcCfyAFIApPBEAgByAFIAJBA3ZrIgU2AhggAkEHcQwBCyAAIAVGBEAgACEFDAILIAcgBSAFIABrIAJBA3YiCyAFIAtrIABJGyILayIFNgIYIAIgC0EDdGsLIgI2AhQgByAFKAAANgIQCyAWaiELIAggF2ohCCAHIBIvAQAgBygCECIGIAJ0QQF2QR8gEi0AAyINa3ZqNgIgIAcgAiANaiINNgIUIBUvAQAhEiAHIA0gFS0AAyITaiICNgIUIAcgEiAGIA10QQF2QR8gE2t2ajYCMAJAIAJBIEsNACAHAn8gBSAKTwRAIAcgBSACQQN2ayIFNgIYIAJBB3EMAQsgACAFRg0BIAcgBSAFIABrIAJBA3YiBiAFIAZrIABJGyIAayIFNgIYIAIgAEEDdGsLIgI2AhQgByAFKAAAIgY2AhALIBAvAQAhACAHIAIgEC0AAyIFajYCFCAHIAAgBiACdEEBdkEfIAVrdmo2AihBun8hBSAIIAtqIgAgESADa0sNAyAUIARrIAhJBEBBbCEFDAQLIAMgCGoiAiAPSw0DIAAgA2oiBiARSw0DIBQgBCAIaiIKSQRAQWwhBQwECyAMQQFrIQwgAiAJayEFA0AgAyAEKQAANwAAIARBCGohBCADQQhqIgMgAkkNAAsCQAJAAkACQCACIA5rIAlJBEAgAiAZayAJSQRAQWwhBQwJCyAYIBggBSAOayIDaiIEIAtqTwRAIAIgBCALEBwaDAULIAIgBEEAIANrEBwgA2siAiAPSw0BIAMgC2oiC0ECTQ0BIA4hBQsgCUEHSw0BIAIgBS0AADoAACACIAUtAAE6AAEgAiAFLQACOgACIAIgBS0AAzoAAyACIAUgCUECdCIDQeCLAWooAgBqIgQoAAA2AAQgBCADQYCMAWooAgBrIQUMAgsgDiEEIAIgBk8NAgNAIAIgBC0AADoAACAEQQFqIQQgAkEBaiICIAZJDQALDAILIAIgBSkAADcAAAsgBUEIaiEFIAJBCGohBCAGIBpLBEAgBCAPSQRAIAQhAyAFIQIDQCADIAIpAAA3AAAgAkEIaiECIANBCGoiAyAPSQ0ACyAFIA8gBGtqIQUgDyEECyAEIAZPDQEDQCAEIAUtAAA6AAAgBUEBaiEFIARBAWoiBCAGSQ0ACwwBCyACIAtqIQIDQCAEIAUpAAA3AAAgBUEIaiEFIARBCGoiBCACSQ0ACwsgACIFQYl/SQ0BDAMLCyAMRQ0AQWwhBQwBC0FsIQUgBCAUSw0AIBEgAyAUIARrIgBqIgVJBEBBun8hBQwBCwJAIAQgFEYEQCADIQUMAQsgAyAEIAAQFBoLIAUgAWshBQsgB0GQBGokACAFC9YnASp/IwBBoAJrIgwkAAJAIARB//8HSwRAQbh/IQUMAQsgBEEDSQRAQWwhBQwBCwJAAkACQAJAAkAgAy0AACIGQQZ2QQFrDgMBAgMACyAEQQVJBEBBbCEFDAULQQQhESADLQABIQUCfwJAAkACQAJAAkACQCAGQQR2QQNxQQJrDgICAAELIAZBDnRBgIAPcSAFQQZ0ciADLQACIgZBAnZyIglBgIAISwRAQWwhBQwLC0EFIREgAy0ABCAGQRB0QYCADHEgAy0AA0EIdHJyIgdBBWoiCCAETQ0EQWwhBQwKCyADLQACIAVBCHRBgAZxciIHQQNqIgggBE0NAUFsIQUMCQsgAy0AAyADLQACIglBCHRBgP4AcXIiB0EEaiIIIARNDQFBbCEFDAgLIAZBBnRBwAdxIAVBAnZyIQlBAyERIAZBEHFFDQEgAEHk0AFqIRQgA0EDaiEFIwBBoMAAayIGJAAgBkEAQYLAABAYIgZBDDsBAAJ/IAYgBSAHEPoCIgtBiH9LBEAgCwwBC0G4fyAHIAtNDQAaQbp/IAkgByALayIOTQ0AGiAGLwEAIQ8gBiAFIAtqIgs2ApxAAkACQCAOQQRPBEAgBiAFIAdqQQRrIgU2AphAIAYgBSgAACIFNgKQQCAFQYCAgAhPDQFBfwwDCyAGIAs2AphAIAYgCy0AACINNgKQQAJAAkACQCAOQQJrDgIBAAILIAstAAJBEHQgDXIhDQsgBiALLQABQQh0IA1qNgKQQAtBfyAFIAdqQQFrLQAAIgVFDQIaIAYgBWcgDkEDdGtBCWo2ApRADAELIAZBCCAFQRh2Z0Efc2s2ApRACyAUIAZBkMAAaiAJIBRqIAZBAnIgDxAzQWxBbCAJIAYoApRAQSBHGyAGKAKYQCAGKAKcQEcbCyAGQaDAAGokAAwCCyAGQQp0QYD4AHEgBUECdHIgCUEGdnIhCQsCfyAAQeTQAWohBiADIBFqIQVBun8gCUUNABpBbCAHIAlPDQAaIAdBAUYEQCAGIAUtAAAgCRAYGiAJDAELIAYgCSAFIAcgCUEIdiIFIAdBBHQgCW5BGGwiBkHc/wBqKAIAbCAGQdj/AGooAgBqIgdBBHYgB2ogBkHQ/wBqKAIAIAZB1P8AaigCACAFbGpJQQJ0QZD6AGooAgARAgALC0GIf0sEQEFsIQUMBQsgACAJNgLg0AEgACAAQeTQAWoiBjYC3NABIAYgCWpCADcAAAwDCyAGQTBxQRBHBEBBbCEFDAQLIAAoAtjQAUUEQEFiIQUMBAsgBCADLQACIAMtAAEiB0EIdEGABnFyIglBA2oiCEkEQEFsIQUMBAsgAEHk0AFqIgUgBkEGdEHAB3EgB0ECdnIiBiADQQNqIAkgAEGM0ABqEPcCQYh/SwRAQWwhBQwECyAAIAY2AuDQASAAIAU2AtzQASAFIAZqQgA3AAAMAgtBAyEJIAQCfwJAAkACQCAGQQR2QQNxQQJrDgIBAgALQQEhCSAGQR9xDAILQQIhCSADLQABIAZBCHRBgB5xcgwBCyADLQACIAZBEHRBgIA8cSADLQABQQh0cnILIgYgCWoiCEEIakkEQCAEIAhJBEBBbCEFDAQLIABB5NABaiADIAlqIAYQFCEFIAAgBjYC4NABIAAgBTYC3NABIAUgBmpCADcAAAwCCyAAIAY2AuDQASAAIAMgCWo2AtzQAQwBC0EDIQgCQAJAAkACQCAGQQR2QQNxQQJrDgIAAQILIAMtAAEgBkEIdEGAHnFyIQVBAiEIDAILIARBA0YEQEFsIQUMBAsgAy0AAiAGQRB0QYCAPHEgAy0AAUEIdHJyIgVBgIAITQ0BQWwhBQwDCyAGQR9xIQVBASEICyAAQeTQAWogAyAIai0AACAFQQhqEBghBiAAIAU2AuDQASAAIAY2AtzQASAIQQFqIQgLQbh/IQUgBCAIRg0AIAEgAmohFyAAKALc0AEiCSAAKALg0AFqIRgCQAJAIAMgCGoiCy0AACICRQ0AIAQgCGshDiAAKALY0AEhCCAAKAKc0AEhICAAKAKY0AEhIyAAKAKU0AEhFCACwEEATgR/IAtBAWoFIA5BAkgNAyALLQABIAJBCHRyQYCAAmshAiALQQJqCyEGIAYgAyAEaiIHTw0CAn8gBi0AACIDQQJxBEAgBkEDaiIPIAdLDQQgBi0AAiAGLQABQQh0cgwBCyAGQQJqIg8gB0sNAyAGLQABIANBCHRBgAJxcgsgD2oiECAHQQNrSw0CAn8CQAJAAkACQCADQQZ2QQFrDgMAAgMBCyAMQQA2ApwCIBAtAAAhBCAAQQA6AAcgACAEOgAGIABBADsBBCAAQQA2AQAgEEEBagwDCyAMQQY2ApwCIABBhoAENgEAIABBBGohBkEAIQQDQCAGIARBAnRqIgVBBjoAAyAFIAQ6AAIgBUEAOwEAIAYgBEEBciINQQJ0aiIFQQY6AAMgBSANOgACIAVBADsBACAGIARBAnIiDUECdGoiBUEGOgADIAUgDToAAiAFQQA7AQAgBiAEQQNyIg1BAnRqIgVBBjoAAyAFIA06AAIgBUEAOwEAIARBBGoiBEHAAEcNAAsgEAwCCyAQIAgNARpBbCEFDAQLIAxBPzYCDCAMQRBqIAxBDGogDEGcAmogECAHIBBrECkiBEGIf0sEQEF/IQUMBAsgDCgCnAIiBkELTwRAQWwhBQwECyAAIAxBEGogDCgCDCAGEFUaIAQgEGoLIQoCQAJAAkACQAJAIANBBHZBA3FBAWsOAwACAwELIAxBADYCmAIgB0ECayAKSQRAQbh/IQUMBwsgCi0AACEEIABBADoAiyAgAEEAOwGIICAAQQA2AYQgIAAgBEEfcToAiiAgCkEBaiEKDAMLIAxBBTYCmAIgAEGAgPwoNgGEISAAQoCA9KiAgICPBTcB/CAgAEKAgOyogICAjgU3AfQgIABCgIDkqICAgI0FNwHsICAAQoCA3KiAgICMBTcB5CAgAEKAgNSogICAiwU3AdwgIABCgIDMqICAgIoFNwHUICAAQoCAxKiAgICJBTcBzCAgAEKAgLyogICAiAU3AcQgIABCgIC0qICAgIcFNwG8ICAAQoCArKiAgICGBTcBtCAgAEKAgKSogICAhQU3AawgIABCgICcqICAgIQFNwGkICAAQoCAlKiAgICDBTcBnCAgAEKAgIyogICAggU3AZQgIABCgICEqICAgIEFNwGMICAAQoWAhICAgICABTcBhCAMAgsgCA0BQWwhBQwECyAMQR82AgwgDEEQaiAMQQxqIAxBmAJqIAogByAKaxApIgRBiH9LBEBBfyEFDAQLIAwoApgCIgZBCk8EQEFsIQUMBAsgAEGEIGogDEEQaiAMKAIMIAYQVRogBCAKaiEKCwJAAkACQAJAAkACQAJAIANBAnZBA3FBAWsOAwACAwELIAxBADYClAIgCiAHQQJrTQ0DQbh/IQUMCAsgAEGHgAQ2AYgwIABBjDBqIQNBACEEA0AgAyAEQQJ0aiIGQQc6AAMgBiAEOgACIAZBADsBACADIARBAXIiBUECdGoiBkEHOgADIAYgBToAAiAGQQA7AQAgAyAEQQJyIgVBAnRqIgZBBzoAAyAGIAU6AAIgBkEAOwEAIAMgBEEDciIFQQJ0aiIGQQc6AAMgBiAFOgACIAZBADsBACAEQQRqIgRBgAFHDQALDAQLIAgNA0FsIQUMBgsgDEH/ADYCDCAMQRBqIAxBDGogDEGUAmogCiAHIAprECkiA0GIf0sEQEF/IQUMBgsgDCgClAIiBEELSQ0BQWwhBQwFCyAKLQAAIQMgAEEAOgCPMCAAIAM6AI4wIABBADsBjDAgAEEANgGIMCAKQQFqIQoMAQsgAEGIMGogDEEQaiAMKAIMIAQQVRogAyAKaiEKCyAKIAtrIgVBiH9LDQIgAkUNACAFIA5GBEBBbCEFDAMLIAUgC2ohBgJAAkAgByAKayIDQQRPBEAgB0EBay0AACIEDQFBbCEFDAULIAYtAAAhBQJAAkACQCADQQJrDgIBAAILIAYtAAJBEHQgBXIhBQsgBi0AAUEIdCAFaiEFCyAHQQFrLQAAIgRFBEBBbCEFDAULIARnIANBA3RrQQlqIQMgBiEEDAELIANBiH9LBEBBbCEFDAQLQQggBGdBH3NrIQMgB0EEayIEKAAAIQULAn8gBSADIAAvAQAiGWoiCEEgSw0AGgJ/IAZBBGogBE0EQCAIQQN2IQ4gCEEHcQwBCyAEIApGBEAgBiEEIAUMAgsgCCAEIAprIAhBA3YiByAEIAdrIApJGyIOQQN0awshCCAEIA5rIgQoAAALIRICfyASIAggAC8BhCAiEWoiDkEgSw0AGgJ/IAZBBGogBE0EQCAOQQN2IQsgDkEHcQwBCyAEIApGBEAgBiEEIBIMAgsgDiAEIAprIA5BA3YiByAEIAdrIApJGyILQQN0awshDiAEIAtrIgQoAAALIRYgDiAALwGIMCIVaiINQSBLBEBBbCEFDAMLAn8CfyAGQQRqIhwgBE0EQCANQQdxIQsgBCANQQN2awwBCyAEIApGBEAgBiEHIA0hCyAWDAILIA0gBCAKayANQQN2IgcgBCAHayAKSRsiB0EDdGsiC0EgSwRAQWwhBQwFCyAEIAdrCyIHKAAACyEdIAUgA3RBAXZBHyAZa3YhEyASIAh0QQF2QR8gEWt2IQ0gAEEEaiEkIBYgDnRBAXZBHyAVa3YhGiAAQYggaiElIBdBDGshJiAXQQhrIRIgEEEBayEhIABBjDBqIScgASEEQQEhHkEBIREDQCAJIQAgBCEDAn8CfyAHIBxPBEAgC0EDdiEEIAtBB3EMAQsgByAKRgRAIAshFiAGIQcgHQwCCyALIAcgCmsgC0EDdiIEIAcgBGsgCkkbIgRBA3RrCyEWIAcgBGsiBygAAAshHyACRQRAIAAhCSADIQQMAwsCQCAkIBNBAnRqIgktAAIiGUE/RwRAIBkhCwwBCyAPQQFqIQUCfyAPLQAAIgRB/wFHBEAgBEE/agwBC0E/IA9BA2oiBCAQSw0AGiAFLwAAIQgCfyAEIAQgEE8NABogBCAIQQFxRQ0AGiAPLQADQRB0IAhyIQggD0EEagshBSAIQQF2CyELIAUgISAFIBBJGyEPCyAlIA1BAnRqIgUtAAIiG0ECdAJ/IB8gG0EBa0EAIBsbIiggFmoiDUEgSw0AGgJ/IAcgHE8EQCANQQN2IRMgDUEHcQwBCyAHIApGBEAgBiEHIB8MAgsgDSAHIAprIA1BA3YiCCAHIAhrIApJGyITQQN0awshDSAHIBNrIgcoAAALIRNBoPoAagJ/IA0gBS0AAyIpaiIqIAktAAMiK2oiBEEgSwRAIAQhDiATDAELAkAgByAcTwRAIARBB3EhDiAEQQN2IQQMAQsgByAKRgRAIAYhByAEIQ4gEwwCCyAEIAcgCmsgBEEDdiIEIAcgBGsgCkkbIgRBA3RrIQ4LIAcgBGsiBygAAAshHSAFLwEAISwgCS8BACEtKAIAIS4gJyAaQQJ0aiIELQADISIgBC8BACEaIAQtAAIiBEH/AEYEQAJ/IA8gEE8EQCAPIQVB/wAMAQsgD0EBaiEFIA8tAAAiBEH/AUcEQCAEQf8AagwBC0H/ACAPQQNqIgkgEEsNABogBS8AACEEAn8gCSAJIBBPDQAaIAkgBEEBcUUNABogDy0AA0EQdCAEciEEIA9BBGoLIQUgBEEBdgshBCAFICEgBSAQSRshDwtBun8hBSAEQQRqIhUgC2oiBCAXIANrSw0DIBggAGsgC0kEQEFsIQUMBAsgAyALaiIIIBJLDQMgAyAEaiIEIBdLDQMgGCAAIAtqIglJBEBBbCEFDAQLIBEgHiAZGyEFIAJBAWshAiATIA10QQF2QR8gKWt2ICxqIQ0gEyAqdEEBdkEfICtrdiAtaiETIBEgHiAbIAtFchshHiAdIA50QQF2QR8gImt2IBpqIRogDiAiaiELIAggHyAWdEEBdkEfIChrdiAuaiAFIBsbIhFrIQUDQCADIAApAAA3AAAgAEEIaiEAIANBCGoiAyAISQ0ACwJAAkACQAJAIAggFGsgEUkEQCAIICNrIBFJBEBBbCEFDAkLICAgICAFIBRrIgBqIgMgFWpPBEAgCCADIBUQHBoMBQsgCCADQQAgAGsQHCAAayIIIBJLDQEgACAVaiIVQQNNDQEgFCEFCyARQQdLDQEgCCAFLQAAOgAAIAggBS0AAToAASAIIAUtAAI6AAIgCCAFLQADOgADIAggBSARQQJ0IgBB4IsBaigCAGoiAygAADYABCADIABBgIwBaigCAGshBQwCCyAUIQUgBCAITQ0CA0AgCCAFLQAAOgAAIAVBAWohBSAIQQFqIgggBEkNAAsMAgsgCCAFKQAANwAACyAFQQhqIQMgCEEIaiEFIAQgJksEQCAFIBJJBEAgBSEAIAMhCANAIAAgCCkAADcAACAIQQhqIQggAEEIaiIAIBJJDQALIAMgEiAFa2ohAyASIQULIAQgBU0NAQNAIAUgAy0AADoAACADQQFqIQMgBUEBaiIFIARJDQALDAELIAggFWohAANAIAUgAykAADcAACADQQhqIQMgBUEIaiIFIABJDQALCyALQSFJDQALIAJFDQFBbCEFDAILIAEhBAtBbCEFIAkgGEsNACAXIAQgGCAJayIAaiIFSQRAQbp/IQUMAQsCQCAJIBhGBEAgBCEFDAELIAQgCSAAEBQaCyAFIAFrIQULIAxBoAJqJAAgBQvOBAECf0G4fyEFAkAgACgCoNABIARHDQAgASAAKAKQ0AEiBkcEQCAAIAY2ApzQASAAIAE2ApDQASAAKAKU0AEhBSAAIAE2ApTQASAAIAEgBSAGa2o2ApjQAQtBfyEFAkACQEFyAn8CQAJAAkAgACgC1NABDgQAAQQFBgtBuH8hBSAEQQVHDQUgAygAAEGl6r5pRwRAIABBdjYCpNABQXYPCyAAQQU2AqTQASAAIAMoAAA2AOzQCSAAQfDQCWogAy0ABDoAACAAQQA2AqDQAQwBC0EFIAAoAqTQAUEFSQ0BGgtBdiAAKADs0AlBpeq+aUcNABogAEGw0AFqIgFCADcDACAAQgA3A6jQASAAQcjQAWpCADcDACAAQcDQAWpCADcDACAAQbjQAWpCADcDACABIAAtAPDQCSIBQQ9xQQtqNgIAQXJBACABQRBPGwsgACgCsNABQRlLGyIFQYh/Sw0CIABBAjYC1NABIABBAzYCoNABQQAPC0EBIQUgAAJ/AkACQAJAIAMtAAAiAUEGdiICQQJrDgICAAELIABBADYCoNABQQAMAgsgAy0AAiABQRB0QYCAHHFyIAMtAAFBCHRyIQULIAAgAjYC0NABIAAgBTYCoNABQQMLNgLU0AFBAA8LQQAhBgJAAkACQCAAKALQ0AEOBAABAwIDCyAAIAEgAiADIAQQgwMhBgwBC0G6fyEGIAFFIAIgBElyDQAgASADIAQQFBogBCEGCyAAQQM2AqDQASAAQQI2AtTQASAAIAEgBmo2ApDQASAGIQULIAULoCQCJH8BfiMAQRBrIhskACAAKAIAIQcgA0HwBGpBAEHwABAYIQRBVCEFAkAgB0H/AXEiBiIfQQxLDQAgA0HgB2ogBCAbQQhqIBtBDGogASACIANB4AlqEIICIiVBiH9NBEAgGygCDCIIIB9LDQEgA0GoBWohESADQaQFaiEdIABBBGohICAHQYCAgHhxISYgBkEMRiAIQQxJcSETQQAhBEEAIQIgCCEBA0AgBCIGQQFqIQQgAiIHQQFrIQIgASISQQFrIQEgAyASQQJ0aigC8ARFDQALQQAhBAJAIBJBAWoiC0ECSQ0AQQEhAiAGIAhrQXxNBEAgEkF8cSEUIANB8ARqIRgDQCAYIAJBAnQiGWooAgAhBSARIBlqIAQ2AgAgGCAZQQRqIgFqKAIAIQ8gASARaiAEIAVqIgU2AgAgGCAZQQhqIgFqKAIAIRUgASARaiAFIA9qIgQ2AgAgGCAZQQxqIgFqKAIAIQUgASARaiAEIBVqIgE2AgAgASAFaiEEIAJBBGohAiAMQQRqIgwgFEcNAAsLIBJBA3EiFUUNAANAIAMgAkECdCIFaigC8AQgBSARaiAENgIAIAJBAWohAiAEaiEEIAlBAWoiCSAVRw0ACwsgESAENgIAIBEgC0ECdGogBDYCAAJAIBsoAggiAUUNAEEAIQQgAUEBRwRAIAFBAXEgAUF+cSEFIANB4AdqIRQgA0HgBWohDwNAIBEgBCAUai0AAEECdGoiASABKAIAIgFBAWo2AgAgASAPaiAEOgAAIBEgFCAEQQFyIgJqLQAAQQJ0aiIBIAEoAgAiAUEBajYCACABIA9qIAI6AAAgBEECaiIEIAVHDQALRQ0BCyARIAMgBGotAOAHQQJ0aiIBIAEoAgAiAUEBajYCACABIANqIAQ6AOAFC0ELIB8gExshFkEAIQQgEUEANgIAAkAgC0ECSQ0AQQEhBSAIIAZBf3NqIhMEQCAWIAhBf3NqIQwgEkF+cSEPIANB8ARqIRRBACEJA0AgFCAFQQJ0IgFqKAIAIRUgASADaiAENgIAIBQgBUEBaiIGQQJ0IgFqKAIAIAEgA2ogFSAFIAxqdCAEaiIBNgIAIAYgDGp0IAFqIQQgBUECaiEFIAlBAmoiCSAPRw0ACwsgEkEBcQRAIAMgBUECdGogBDYCAAtBASEVIAhBAWoiISASayIUIBYgFGtBAWpJBEAgEkF8cSEGIBJBA3EhCCAHIBZqIQcgFCEEA0AgAyAEQTRsaiEPQQAhCUEBIQUgE0EDTwRAA0AgDyAFQQJ0IgJqIAIgA2ooAgAgBHY2AgAgDyACQQRqIgFqIAEgA2ooAgAgBHY2AgAgDyACQQhqIgFqIAEgA2ooAgAgBHY2AgAgDyACQQxqIgFqIAEgA2ooAgAgBHY2AgAgBUEEaiEFIAlBBGoiCSAGRw0ACwtBACEBIAgEQANAIA8gBUECdCICaiACIANqKAIAIAR2NgIAIAVBAWohBSABQQFqIgEgCEcNAAsLIARBAWoiBCAHRw0ACwsgEkEATA0AICEgFmshJyADQeAFaiEaA0AgAyAVIg9BAnQiAWooAgAhFyABIB1qKAIAIQogHSAPQQFqIhVBAnRqKAIAIQ4CQAJAIBQgFiAhIA9rIgVrIgFNBEAgCiAORg0CQQEgAXQhHiADIAVBNGxqIhFBASAFICdqIiIgIkEBTBsiBkECdGohIyAFQRB0QYCAgAhqISQgBiASSg0BIAUgIWohGANAICAgF0ECdGohEyAKIBpqLQAAIQ0CQCAiQQJIDQAgDSAkcq1CgYCAgBB+ISggEyEFAkACQAJAIB5BAmsOAwIAAQALICMoAgAiBUEATA0CIAVBAWtBA3ZBAWoiAUEDcSEHQQAhAkEAIQQgBUEZTwRAIAFB/P///wNxIQVBACEBA0AgEyAEQQJ0aiIIICg3ARggCCAoNwEQIAggKDcBCCAIICg3AQAgCCAoNwEgIAggKDcBMCAIICg3ASggCCAoNwE4IAggKDcBWCAIICg3AVAgCCAoNwFIIAhBQGsgKDcBACAIICg3AXggCCAoNwFwIAggKDcBaCAIICg3AWAgBEEgaiEEIAFBBGoiASAFRw0ACwsgB0UNAgNAIBMgBEECdGoiASAoNwEYIAEgKDcBECABICg3AQggASAoNwEAIARBCGohBCACQQFqIgIgB0cNAAsMAgsgEyAoNwEAIBNBCGohBQsgBSAoNwEACyAGIQcDQCAaIB0gByIIQQJ0IgFqKAIAIhBqIQIgGiAdIAhBAWoiB0ECdGooAgAiC2ohHCATIAEgEWooAgBBAnRqIQQCQAJAAkACQAJAAkBBASAWIBggCGsiBWsiAXQiGUEBaw4IAwIEAQQEBAAECyALIBBGDQQgBUEQdEGAgIAQaiEBIAsgEGtBAXEEQCAEIAItAABBCHQgAXIgDXKtQoGAgIAQfiIoNwEYIAQgKDcBECAEICg3AQggBCAoNwEAIARBIGohBCACQQFqIQILIBBBAWogC0YNBANAIAQgAi0AAEEIdCABciANcq1CgYCAgBB+Iig3ARggBCAoNwEQIAQgKDcBCCAEICg3AQAgBCACLQABQQh0IAFyIA1yrUKBgICAEH4iKDcBOCAEICg3ATAgBCAoNwEoIAQgKDcBICAEQUBrIQQgAkECaiICIBxHDQALDAQLIAsgEEYNAyAFQRB0QYCAgBBqIQEgCyAQa0EBcQRAIAQgAi0AAEEIdCABciANcq1CgYCAgBB+Iig3AQggBCAoNwEAIARBEGohBCACQQFqIQILIBBBAWogC0YNAwNAIAQgAi0AAEEIdCABciANcq1CgYCAgBB+Iig3AQggBCAoNwEAIAQgAi0AAUEIdCABciANcq1CgYCAgBB+Iig3ARggBCAoNwEQIARBIGohBCACQQJqIgIgHEcNAAsMAwsgCyAQRg0CIAVBEHRBgICAEGohCUEAIQEgCyAQa0EDcSIMBEADQCAEIAItAABBCHQgCXIgDXIiBTYBBCAEIAU2AQAgAkEBaiECIARBCGohBCABQQFqIgEgDEcNAAsLIBAgC2tBfEsNAgNAIAQgAi0AAEEIdCAJciANciIBNgEEIAQgATYBACAEIAItAAFBCHQgCXIgDXIiATYBDCAEIAE2AQggBCACLQACQQh0IAlyIA1yIgE2ARQgBCABNgEQIAQgAi0AA0EIdCAJciANciIBNgEcIAQgATYBGCAEQSBqIQQgAkEEaiICIBxHDQALDAILIAsgEEYNASAFQRB0QYCAgBBqIQxBACEBIAsgEGtBA3EiBQRAA0AgBCACLQAAQQh0IAxyIA1yNgEAIAJBAWohAiAEQQRqIQQgAUEBaiIBIAVHDQALCyAQIAtrQXxLDQEDQCAEIAItAABBCHQgDHIgDXI2AQAgBCACLQABQQh0IAxyIA1yNgEEIAQgAi0AAkEIdCAMciANcjYBCCAEIAItAANBCHQgDHIgDXI2AQwgBEEQaiEEIAJBBGoiAiAcRw0ACwwBCyALIBBGDQAgBUEQdEGAgIAQaiELQQQgAUEfcSIJdEEgayIMQQV2QQFqQQNxIRADQAJAIAlBHUsNACACLQAAQQh0IAtyIA1yrUKBgICAEH4hKEEAIQEgBCEFIBAEQANAIAUgKDcBGCAFICg3ARAgBSAoNwEIIAUgKDcBACAFQSBqIQUgAUEBaiIBIBBHDQALCyAEIBlBAnRqIQQgDEHgAEkNAANAIAUgKDcBeCAFICg3AXAgBSAoNwFoIAUgKDcBYCAFICg3AVggBSAoNwFQIAUgKDcBSCAFICg3AUAgBSAoNwE4IAUgKDcBMCAFICg3ASggBSAoNwEgIAUgKDcBGCAFICg3ARAgBSAoNwEIIAUgKDcBACAFQYABaiIFIARHDQALCyACQQFqIgIgHEcNAAsLIAggEkcNAAsgFyAeaiEXIApBAWoiCiAORw0ACwwCCyAOIBpqIQkgCiAaaiECICAgF0ECdGohBAJAAkACQAJAAkBBASABdCITQQFrDggDAgQBBAQEAAQLIAogDkYNBSAFQRB0QYCAgAhqIQEgDiAKa0EBcQRAIAQgASACLQAAcq1CgYCAgBB+Iig3ARggBCAoNwEQIAQgKDcBCCAEICg3AQAgBEEgaiEEIAJBAWohAgsgCkEBaiAORg0FA0AgBCABIAItAAByrUKBgICAEH4iKDcBGCAEICg3ARAgBCAoNwEIIAQgKDcBACAEIAEgAi0AAXKtQoGAgIAQfiIoNwE4IAQgKDcBMCAEICg3ASggBCAoNwEgIARBQGshBCACQQJqIgIgCUcNAAsMBQsgCiAORg0EIAVBEHRBgICACGohB0EAIQEgDiAKa0EDcSIFBEADQCAEIAcgAi0AAHKtQoGAgIAQfiIoNwEIIAQgKDcBACACQQFqIQIgBEEQaiEEIAFBAWoiASAFRw0ACwsgCiAOa0F8Sw0EA0AgBCAHIAItAAByrUKBgICAEH4iKDcBCCAEICg3AQAgBCAHIAItAAFyrUKBgICAEH4iKDcBGCAEICg3ARAgBCAHIAItAAJyrUKBgICAEH4iKDcBKCAEICg3ASAgBCAHIAItAANyrUKBgICAEH4iKDcBOCAEICg3ATAgBEFAayEEIAJBBGoiAiAJRw0ACwwECyAKIA5GDQMgBUEQdEGAgIAIaiEGQQAhASAOIAprQQNxIgcEQANAIAQgBiACLQAAciIFNgEEIAQgBTYBACACQQFqIQIgBEEIaiEEIAFBAWoiASAHRw0ACwsgCiAOa0F8Sw0DA0AgBCAGIAItAAByIgE2AQQgBCABNgEAIAQgBiACLQABciIBNgEMIAQgATYBCCAEIAYgAi0AAnIiATYBFCAEIAE2ARAgBCAGIAItAANyIgE2ARwgBCABNgEYIARBIGohBCACQQRqIgIgCUcNAAsMAwsgCiAORg0CIAVBEHRBgICACGohB0EAIQEgDiAKa0EHcSIFBEADQCAEIAcgAi0AAHI2AQAgAkEBaiECIARBBGohBCABQQFqIgEgBUcNAAsLIAogDmtBeEsNAgNAIAQgByACLQAAcjYBACAEIAcgAi0AAXI2AQQgBCAHIAItAAJyNgEIIAQgByACLQADcjYBDCAEIAcgAi0ABHI2ARAgBCAHIAItAAVyNgEUIAQgByACLQAGcjYBGCAEIAcgAi0AB3I2ARwgBEEgaiEEIAJBCGoiAiAJRw0ACwwCCyAKIA5GDQEgBUEQdEGAgIAIaiEIQQQgAUEfcSIFdEEgayIBQQV2QQFqQQNxIQwgBUEdSyEGIAFB4ABJIQcDQAJAIAYNACAIIAItAAByrUKBgICAEH4hKEEAIQEgBCEFIAwEQANAIAUgKDcBGCAFICg3ARAgBSAoNwEIIAUgKDcBACAFQSBqIQUgAUEBaiIBIAxHDQALCyAEIBNBAnRqIQQgBw0AA0AgBSAoNwF4IAUgKDcBcCAFICg3AWggBSAoNwFgIAUgKDcBWCAFICg3AVAgBSAoNwFIIAUgKDcBQCAFICg3ATggBSAoNwEwIAUgKDcBKCAFICg3ASAgBSAoNwEYIAUgKDcBECAFICg3AQggBSAoNwEAIAVBgAFqIgUgBEcNAAsLIAJBAWoiAiAJRw0ACwwBCwNAICAgF0ECdGohAiAkIAogGmotAAByrUKBgICAEH4hKAJAAkACQAJAIB5BAmsOAwECAAILIAIgKDcBACACQQhqIQILIAIgKDcBAAwBCyAjKAIAIgZBAEwNACAGQQFrQQN2QQFqIgVBA3EhB0EAIQFBACEEIAZBGU8EQCAFQfz///8DcSEFQQAhCQNAIAIgBEECdGoiBiAoNwEYIAYgKDcBECAGICg3AQggBiAoNwEAIAYgKDcBICAGICg3ATAgBiAoNwEoIAYgKDcBOCAGICg3AVggBiAoNwFQIAYgKDcBSCAGQUBrICg3AQAgBiAoNwF4IAYgKDcBcCAGICg3AWggBiAoNwFgIARBIGohBCAJQQRqIgkgBUcNAAsLIAdFDQADQCACIARBAnRqIgUgKDcBGCAFICg3ARAgBSAoNwEIIAUgKDcBACAEQQhqIQQgAUEBaiIBIAdHDQALCyAXIB5qIRcgCkEBaiIKIA5HDQALCyAPIBJHDQALCyAAIBZBEHQgJnIgH3JBgAJyNgIACyAlIQULIBtBEGokACAFC7HJAQIifwF+IwBBkAJrIgokAAJAIARBgIAISwRAQbh/IQ0MAQsgBEECSQRAQWwhDQwBCwJAAkACQAJAAkAgAy0AACIHQQNxIhdBAWsOAwMBAAILIAAoAojqAQ0AQWIhDQwECyAEQQVJBEBBbCENDAQLQQMhCSADKAAAIQYCQAJ/AkACQAJAIAdBAnZBA3EiB0ECaw4CAQIACyAHQQBHIRQgBkEOdkH/B3EhByAGQQR2Qf8HcSEGDAMLIAZBEnYhB0EEIQkgBkEEdkH//wBxDAELIAMtAARBCnQgBkEWdnIhB0EFIQkgBkEEdkH//w9xCyEGQQEhFAtBun8hDSABQQEgBhtFDQMgBkGAgAhLBEBBbCENDAQLIAZBBkkgFHEEQEFoIQ0MBAsgBCAHIAlqIg9JBEBBbCENDAQLQYCACCACIAJBgIAITxsiDiAGSQ0DIAACfyAFIAZBwIAIaiACT3JFBEAgACABQaCACGoiBTYCgOwBIAUgBmohDUEBDAELIAZBgYAETwRAIAAgASAOaiINIAZrIgU2AoDsAUECDAELIAAgAEGM7AFqIgU2AoDsASAFIAZqIQ1BAAs2AojsASAAIA02AoTsAQJAIAZBgQZJDQAgACgCoOsBRQ0AQQAhDQNAIA1Bw/8ASw0BIA1BgARqIQ0MAAsACwJ/IBdBA0YEQCADIAlqIQ4gACgCDCEQIBRFBEACfyAFIQ0CQAJAAn8gECgCACIMQYD+A3EEQEG4fyAHRQ0EGgJAAkACQAJAAkAgB0EETwRAQX8gByAOakEBay0AACIFRQ0HGiAHQYh/TQ0BIAcMCgsgDi0AACEJAkACQAJAIAdBAmsOAgEAAgsgDi0AAkEQdCAJciEJCyAOLQABQQh0IAlqIQkLIAcgDmpBAWstAAAiBQ0BQWwMCQtBCCAFZ0Efc2shBSAOIAdBBGsiC2oiEygAACEJIAYgDWohESAMQRB2IQggEEEEaiEMIAZBA00NAgwBCyAGIA1qIREgDEEQdiEIIBBBBGohDCAFZyAHQQN0a0EJaiEFIAZBBEkNAgsgEEEEaiEQQQAgCGtBH3EhEyAGIA1qQQNrIRUDQAJAIAtBBE4EQCAFQQdxIQcgBUEDdiEJQQAhBQwBCyALRQRAQQAhCwwECyAFIAsgBUEDdiIFIAsgDmogBWsgDkkiBRsiCUEDdGshBwsgDiALIAlrIgtqKAAAIQkgDSAVTwRAIAchBQwDCyAFBEAgByEFDAMLIA0gECAJIAd0IBN2QQJ0aiIFLwEAOwAAIA0gBS0AA2oiDSAQIAkgByAFLQACaiIHdCATdkECdGoiBS8BADsAACANIAUtAANqIQ0gByAFLQACaiIFQSBNDQALDAELAn8gB0EITgRAIAVBA3YhCSAFQQdxDAELIAtFBEBBACELDAILIAUgCyAFQQN2IgUgEyAFayAOSRsiCUEDdGsLIQUgDiALIAlrIgtqKAAAIQkLIBEgDWtBAkkNAyARQQJrIRBBACAIa0EfcSETIAVBIEsNAgNAAkAgC0EETgRAIAVBB3EhByAFQQN2IQlBACEFDAELIAtFBEBBACELDAULIAUgCyAFQQN2IgUgCyAOaiAFayAOSSIFGyIJQQN0ayEHCyAOIAsgCWsiC2ooAAAhCSAFRSANIBBNcUUEQCAHIQUMBAsgDSAMIAkgB3QgE3ZBAnRqIgUvAQA7AAAgDSAFLQADaiENIAcgBS0AAmoiBUEgTQ0ACwwCCyANIAYgDiAHIBAQ/wILDAILIA0gEEsNAANAIA0gDCAJIAV0IBN2QQJ0aiIHLwEAOwAAIAUgBy0AAmohBSANIActAANqIg0gEE0NAAsLAkAgDSARTw0AIA0gDCAJIAV0QQAgCGt2Ig5BAnRqIgctAAA6AAAgBy0AA0EBRgRAIAUgBy0AAmohBQwBCyAFQR9LDQBBICAFIAwgDkECdGotAAJqIgUgBUEgTxshBQtBbEFsIAYgBUEgRxsgCxsLDAILAn8gEC0AAQRAIAUgBiAOIAcgEBD+AgwBCyAFIAYgDiAHIBAQ/QILDAELIABBrNUBaiENIAMgCWohDiAAQajQAGohECAURQRAAn8gECAOIAcgDRCAAyINQYh/SwRAIA0MAQsgByANSwR/IAUgBiANIA5qIAcgDWsgEBD/AgVBuH8LCwwBCwJ/Qbp/IAZFDQAaQWwgB0UNABoCQCAGQQh2IgsgBiAHSwR/IAdBBHQgBm4FQQ8LQQR0IglB7OcAaigCAGwgCUHo5wBqKAIAaiIMQQV2IAxqIAlB4OcAaigCACAJQeTnAGooAgAgC2xqSQRAIBAgDiAHIA0QhQMiDUGIf0sNAUG4fyAHIA1NDQIaIAUgBiANIA5qIAcgDWsgEBD+AgwCCyAQIA4gByANEIADIg1BiH9LDQBBuH8gByANTQ0BGiAFIAYgDSAOaiAHIA1rIBAQ/QIhDQsgDQsLIAAoAojsAUECRgRAIABBjOwBaiAAKAKE7AFBgIAEa0GAgAQQFBogACgCgOwBIgdB4P8DaiAHIAZBgIAEaxAcGiAAIAAoAoDsAUHg/wNqNgKA7AEgACAAKAKE7AFBIGs2AoTsAQtBiH9LBEBBbCENDAQLIAAgBjYCiOsBIABBATYCiOoBIAAgACgCgOwBNgL46gEgF0ECRgRAIAAgAEGo0ABqNgIMCyAPIQ0gD0GIf00NAgwDC0ECIQYCfwJAAkACQCAHQQJ2QQNxQQFrDgMBAAIAC0EBIQYgB0EDdgwCCyADLwAAQQR2DAELIARBAkYEQEFsIQ0MBAtBAyEGIAMvAAAgAy0AAkEQdHJBBHYLIQdBun8hDSABRSAHQQBHcUGAgAggAiACQYCACE8bIg4gB0lyDQICfyAFIAdBwIAIaiACT3JFBEAgACABQaCACGoiDTYCgOwBQQEhDyAHIA1qDAELIAdBgYAETwRAIAAgASAOaiAHa0Hg/wNqIg02AoDsAUECIQ9BASEJIAcgDWpBgIAEawwBCyAAIABBjOwBaiINNgKA7AEgByANagshBSAAIA82AojsASAAIAU2AoTsASAEIAYgB2oiD0EgakkEQCAEIA9JBEBBbCENDAQLIAMgBmohBQJAIAkEQCANIAUgB0GAgARrIgYQFBogAEGM7AFqIAUgBmpBgIAEEBQaDAELIA0gBSAHEBQaCyAAIAc2AojrASAAIAAoAoDsATYC+OoBDAILIABBADYCiOwBIAAgBzYCiOsBIAAgAyAGaiIFNgL46gEgACAFIAdqNgKE7AEMAQsCfwJAAkACQCAHQQJ2QQNxQQFrDgMBAAIACyAHQQN2IRFBAQwCCyAEQQJGBEBBbCENDAQLIAMvAABBBHYhEUECDAELIARBBEkEQEFsIQ0MAwsgAy8AACADLQACQRB0ckEEdiERQQMLIQZBun8hDSABQQEgERtFDQEgEUGAgAhLBEBBbCENDAILIAIgEUkNAQJAAkAgAAJ/IAUgEUHAgAhqIAJPckUEQCABQaCACGohDUEBDAELIBFBgIAESw0BIABBjOwBaiENQQALNgKI7AEgACANNgKA7AEgACANIBFqNgKE7AEgDSADIAZqLQAAIBEQGBoMAQsgAEECNgKI7AEgACABQYCACCACIAJBgIAITxtqIBFrQeD/A2oiBTYCgOwBIAAgEUGAgARrIgcgBWo2AoTsASAFIAMgBmoiBS0AACAHEBgaIABBjOwBaiAFLQAAQYCABBAYGgsgACARNgKI6wEgACAAKAKA7AE2AvjqASAGQQFqIQ8LIAQgD0YEQEG4fyENDAELIAMgBGohCSAEIA9rIQsgACgC0OkBIQYgACgCtOkBIRAgACgCoOsBIRRBASEHAkAgAyAPaiIDLQAAIgVFBEBBACEFQbh/IQ0gC0EBRg0BDAILAn8gA0EBaiAFwCIEQQBODQAaIARBf0YEQCALQQNIBEBBuH8hDQwECyADLwABQYD+AWohBSADQQNqDAELIAtBAkgEQEG4fyENDAMLIAMtAAEgBUEIdHJBgIACayEFIANBAmoLIQdBuH8hDSAHQQFqIgQgCUsNASAAQRBqIAAgBy0AACIHQQZ2QSNBCSAEIAkgBGtB4OkAQfDqAEGg6wAgACgCjOoBIBQgBSAAQazVAWoiDhDzASINQYh/SwRAQWwhDQwCCyAAQZggaiAAQQhqIAdBBHZBA3FBH0EIIAQgDWoiBCAJIARrQbDvAEGw8ABB0PAAIAAoAozqASAAKAKg6wEgBSAOEPMBIg9BiH9LBEBBbCENDAILQWwhDSAAQaAwaiAAQQRqIAdBAnZBA3FBNEEJIAQgD2oiBCAJIARrQeDyAEHA9ABBgPUAIAAoAozqASAAKAKg6wEgBSAOEPMBIgdBiH9LDQEgBCAHaiADayIHIQ0gB0GIf0sNAQsgAUEARyACQQBHcSAFQQBMckUEQEG6fyENDAELIAEgBiACIAIgBksbaiAQayIEQfz//x9LIRAgCyAHayEGIAMgB2ohDAJAAkACQAJAAkACQAJAAkACQAJ/IARB/P//H00EQCAUBEBBACEQDAMLIARBgYCACEkEQEEAIRAMAwsgBUEJSARAQQAhEAwDCyAAKAIIIgNBCGohDiADKAIEIQNBACENQQAhBANAIA0gDiAEQQN0ai0AAkEWS2ohDSAEQQFqIgQgA3ZFDQALIA1BCCADa3QMAQsgBUUEQEEAIRBBAAwBCyAAKAIIIgNBCGohDyADKAIEIQNBACERQQAhBEEAIQ0DQCAEIA8gDUEDdGotAAIiDiAEIA5LGyEEIBEgDkEWS2ohESANQQFqIg0gA3ZFDQALIBBBACAEQRpPGyEQIBFBCCADa3QLIBQEQCAAQQA2AqDrAQwCC0ETSyEUCyAAQQA2AqDrASAURQ0BCwJ/IAAoAojsASINQQFGBEAgACgCgOwBDAELIAEgAmoLIRogCiAAKAL46gEiBDYCjAIgACgChOwBIQggBUUEQCABIQIMBwsgACgCuOkBIRYgACgCtOkBIRggACgCsOkBIQ4gAEEBNgKM6gEgCiAAQbTQAWooAgA2ApwBIAogAEGs0AFqIicpAgA3ApQBQWwhDSAHIAtGDQcgCiAMNgJ0IAogDEEEajYCeAJAIAZBBE8EQCAKIAwgBkEEayIEaiICNgJwIAogAigAACICNgJoIAJBgICACEkgBkGIf0tyDQlBCCACQRh2Z0Efc2shAwwBCyAKIAw2AnAgCiAMLQAAIgI2AmgCQAJAAkAgBkECaw4CAQACCyAMLQACQRB0IAJyIQILIAogDC0AAUEIdCACaiICNgJoCyAJQQFrLQAAIgNFDQggCiADZyAGQQN0a0EJaiIDNgJsQQAhBAsgCiACQQAgACgCACIGKAIEIgcgA2oiA2t2IAdBAnRBkPkAaigCAHEiCTYCfAJAIANBIEsNAAJ/IARBBE4EQCAKIAwgBCADQQN2ayIEajYCcCADQQdxDAELIARFBEBBACEEDAILIAogDCAEIAQgA0EDdiICIAQgDGogAmsgDEkbIgJrIgRqNgJwIAMgAkEDdGsLIQMgCiAEIAxqKAAAIgI2AmgLIAVBCEghByAKIAZBCGoiITYCgAEgCiACQQAgACgCCCIGKAIEIgsgA2oiA2t2IAtBAnRBkPkAaigCAHEiFTYChAECQCADQSBLDQACfyAEQQROBEAgCiAMIAQgA0EDdmsiBGo2AnAgA0EHcQwBCyAERQRAQQAhBAwCCyAKIAwgBCAEIANBA3YiAiAEIAxqIAJrIAxJGyICayIEajYCcCADIAJBA3RrCyEDIAogBCAMaigAACICNgJoCyAFQQggBxshHiABIA5rIR0gCiAGQQhqIiI2AogBIAogACgCBCIHKAIEIgYgA2oiAzYCbEEAIREgCiAGQQJ0QZD5AGooAgAgAkEAIANrdnEiFDYCjAEgA0EhTwRAIAogB0EIajYCkAEMBQsgBEEETgRAIAogA0EHcSIGNgJsIAogDCAEIANBA3ZrIgRqIgI2AnAgCiACKAAAIgI2AmgMAgsgBEUEQEEAIQQgAyEGDAILIAogAyAEIANBA3YiAiAEIAxqIAJrIAxJGyICQQN0ayIGNgJsIAogDCAEIAJrIgRqIgI2AnAgAigAACECIAogB0EIajYCkAEgCiACNgJoIAZBIEsNAwwCCyAAKAKI7AFBAkYEQCAQIRFBACEDIwBBgAFrIggkACAIIAAiCSgC+OoBIgQ2AmwgAiABIg1qIRcgACgChOwBIQsCQAJAIAUiD0UEQCABIQIMAQsgCSgCuOkBIRMgCSgCtOkBIRUgCSgCsOkBIRAgCUEBNgKM6gEgCCAJQbTQAWooAgA2AmggCCAJQazQAWoiGikCADcCYCAGRQRAQWwhAwwCCyAIIAw2AkAgCCAMQQRqNgJEAn8CQCAGQQRPBEAgCCAMIAZBBGsiA2oiADYCPCAIIAAoAAAiADYCNCAAQYCAgAhPDQFBbCEDDAQLIAggDDYCPCAIIAwtAAAiADYCNAJAAkACQCAGQQJrDgIBAAILIAwtAAJBEHQgAHIhAAsgCCAMLQABQQh0IABqIgA2AjQLIAYgDGpBAWstAAAiAUUEQEFsIQMMBAsgAWcgBkEDdGtBCWoMAQsgBkGIf0sEQEFsIQMMAwtBCCAAQRh2Z0Efc2sLIQEgCCAAQQAgASAJKAIAIgEoAgQiAmoiB2t2IAJBAnRBkPkAaigCAHEiAjYCSAJAIAdBIEsNACAIAn8gA0EETgRAIAggDCADIAdBA3ZrIgNqNgI8IAdBB3EMAQsgA0UEQEEAIQMMAgsgCCAMIAMgAyAHQQN2IgAgAyAMaiAAayAMSRsiAGsiA2o2AjwgByAAQQN0awsiBzYCOCAIIAMgDGooAAAiADYCNAsgCCABQQhqIgU2AkwgCCAAQQAgCSgCCCIBKAIEIgYgB2oiB2t2IAZBAnRBkPkAaigCAHEiBjYCUAJAIAdBIEsNAAJ/IANBBE4EQCAIIAwgAyAHQQN2ayIDajYCPCAHQQdxDAELIANFBEBBACEDDAILIAggDCADIAMgB0EDdiIAIAMgDGogAGsgDEkbIgBrIgNqNgI8IAcgAEEDdGsLIQcgCCADIAxqKAAAIgA2AjQLIAggAUEIaiIWNgJUIAggAEEAIAcgCSgCBCIBKAIEIhJqIg5rdiASQQJ0QZD5AGooAgBxIgc2AlgCQCAOQSBLDQACfyADQQROBEAgCCAMIAMgDkEDdmsiA2o2AjwgDkEHcQwBCyADRQRAQQAhAwwCCyAIIAwgAyADIA5BA3YiACADIAxqIABrIAxJGyIAayIDajYCPCAOIABBA3RrCyEOIAggAyAMaigAACIANgI0CyAIIAFBCGoiATYCXCABIAdBA3RqIgEtAAIhEiAFIAJBA3RqIgItAAIhFCABLQADIRggAS8BACEeIAEoAgQhASAWIAZBA3RqIgUtAAMhGSACLQADIR0gBS8BACEcIAIvAQAhGyAFKAIEIRYgAigCBCEHAkAgBS0AAiIFQQJPBEAgAyAMaiEGIAUgDmohAiAAIA50IQ4CQCARRSAFQRlJckUEQCAOQQUgBWt2QQV0IBZqAkAgAkEFayIFQSBLDQAgA0EETgRAIAggDCADIAVBA3ZrIgNqIgA2AjwgCCAAKAAAIgA2AjQgBUEHcSEFDAELIANFBEBBACEDDAELIAggDCADIAMgBUEDdiIAIAYgAGsgDEkbIgJrIgNqIgA2AjwgCCAAKAAAIgA2AjQgBSACQQN0ayEFCyAIIAVBBWoiBjYCOCAAIAV0QRt2aiEFDAELIA5BACAFa3YgFmohBSACQSBLBEAgAiEGDAELIAgCfyADQQROBEAgCCACQQdxIgY2AjggCCAMIAMgAkEDdmsiA2oiADYCPCAAKAAADAELIANFBEBBACEDIAIhBgwCCyAIIAIgAyACQQN2IgAgBiAAayAMSRsiAEEDdGsiBjYCOCAIIAwgAyAAayIDaiIANgI8IAAoAAALIgA2AjQLIAggCCkCYDcCZAwBCyAHRSECIAVFBEAgCEHgAGoiBiACQQJ0aigCACEFIAggBiAHQQBHQQJ0aigCADYCZCAOIQYMAQsgCCAOQQFqIgY2AjgCQAJAIBYgACAOdEEfdmogAmoiAkEDRgRAQQEgCCgCYEEBayICIAJBAU0bIQUMAQtBASACQQJ0IAhqKAJgIgUgBUEBTRshBSACQQFGDQELIAggCCgCZDYCaAsgCCAIKAJgNgJkCyAIIAU2AmAgEgRAIAAgBnRBACASa3YgAWohASAGIBJqIQYLAkAgEiAUakEUSSAGQSBLcg0AIANBBE4EQCAIIAwgAyAGQQN2ayIDaiIANgI8IAggACgAACIANgI0IAZBB3EhBgwBCyADRQRAQQAhAwwBCyAIIAwgAyADIAZBA3YiACADIAxqIABrIAxJGyICayIDaiIANgI8IAggACgAACIANgI0IAYgAkEDdGshBgsgFARAIAAgBnRBACAUa3YgB2ohByAGIBRqIQYLAkAgBkEgSwRAIAYhDgwBCyADQQROBEAgCCAGQQdxIg42AjggCCAMIAMgBkEDdmsiA2oiADYCPCAIIAAoAAAiADYCNAwBCyADRQRAQQAhAyAGIQ4MAQsgCCAMIAMgAyAGQQN2IgAgAyAMaiAAayAMSRsiAmsiA2oiADYCPCAIIAAoAAAiADYCNCAGIAJBA3RrIQ4LIAggHUECdEGQ+QBqKAIAIABBACAOIB1qIgJrdnEgG2o2AkggCCAYQQJ0QZD5AGooAgAgAEEAIAIgGGoiBmt2cSAeajYCWAJAIAZBIEsNACADIAxqIQIgA0EETgRAIAggAiAGQQN2ayIANgI8IAggACgAACIANgI0IAZBB3EhBgwBCyADRQ0AIAggAiADIAZBA3YiACACIABrIAxJGyICayIANgI8IAggACgAACIANgI0IAYgAkEDdGshBgsgCEHgAGohDCAIIAYgGWoiAjYCOCAIIBlBAnRBkPkAaigCACAAQQAgAmt2cSAcajYCUAJAAkAgCyAEIAdqIgZJBEAgCyEOIA0hAgwBCyAIQeAAaiEUIA0hAgNAIAZBIGshACAIIAc2AnAgCCABNgJ0IAggBTYCeAJAAkACQCAGIAtLDQAgAiABIAdqIgNqIABLDQAgA0EgaiAXIAJrTQ0BCyAIIAgoAng2AjAgCCAIKQNwNwMoIAIgFyAAIAhBKGogCEHsAGogCyAQIBUgExDyASEDDAELIAIgB2ohACAEKQAAISggAiAEKQAINwAIIAIgKDcAAAJAIAdBEUkNACAEKQAQISggAiAEKQAYNwAYIAIgKDcAECAHQRBrQRFIDQAgBEEQaiEHIAJBIGohBANAIAcpABAhKCAEIAcpABg3AAggBCAoNwAAIAcpACAhKCAEIAcpACg3ABggBCAoNwAQIAdBIGohByAEQSBqIgQgAEkNAAsLIAAgBWshByAIIAY2AmwgACAQayAFSQRAIAAgFWsgBUkEQEFsIQMMBwsgEyATIAcgEGsiBGoiBiABak8EQCAAIAYgARAcGgwCCyAAIAZBACAEaxAcIAggASAEaiIBNgJ0IBAhByAEayEACyAFQRBPBEAgBykAACEoIAAgBykACDcACCAAICg3AAAgAUERSA0BIAAgAWohBCAAQRBqIQEDQCAHKQAQISggASAHKQAYNwAIIAEgKDcAACAHKQAgISggASAHKQAoNwAYIAEgKDcAECAHQSBqIQcgAUEgaiIBIARJDQALDAELAkAgBUEHTQRAIAAgBy0AADoAACAAIActAAE6AAEgACAHLQACOgACIAAgBy0AAzoAAyAAIAcgBUECdCIBQeCLAWooAgBqIgQoAAA2AAQgBCABQYCMAWooAgBrIQcgCCgCdCEBDAELIAAgBykAADcAAAsgAUEJSQ0AIAAgAWohBSAAQQhqIgQgB0EIaiIHa0EPTARAA0AgBCAHKQAANwAAIAdBCGohByAEQQhqIgQgBUkNAAwCCwALIAcpAAAhKCAEIAcpAAg3AAggBCAoNwAAIAFBGUgNACAAQRhqIQEDQCAHKQAQISggASAHKQAYNwAIIAEgKDcAACAHKQAgISggASAHKQAoNwAYIAEgKDcAECAHQSBqIQcgAUEgaiIBIAVJDQALCyADQYh/Sw0EIAIgA2ohAiAPQQFrIg9FDQICQCAIKAI4IgBBIEsEQCAAIQQMAQsgCCgCPCIBIAgoAkRPBEAgCCAAQQdxIgQ2AjggCCABIABBA3ZrIgA2AjwgCCAAKAAANgI0DAELIAgoAkAiAyABRgRAIAAhBAwBCyAIIAAgASADayAAQQN2IgAgASAAayADSRsiAEEDdGsiBDYCOCAIIAEgAGsiADYCPCAIIAAoAAA2AjQLIAgoAkwgCCgCSEEDdGoiAC0AAiEGIAgoAlwgCCgCWEEDdGoiAS0AAiESIAgoAlQgCCgCUEEDdGoiAy0AAyEWIAEtAAMhGCAALQADIRkgAy8BACEdIAEvAQAhHiAALwEAIRwgAygCBCEFIAAoAgQhByABKAIEIQECfwJAIAMtAAIiA0ECTwRAIAMgBGohACAIKAI0Ig4gBHQhBAJAIBFFIANBGUlyRQRAIARBBSADa3ZBBXQgBWoCQCAAQQVrIgBBIEsEQCAAIQUMAQsgCAJ/IAgoAjwiAyAIKAJETwRAIAggAEEHcSIFNgI4IAggAyAAQQN2ayIANgI8IAAoAAAMAQsgCCgCQCIEIANGBEAgACEFDAILIAggACADIARrIABBA3YiACADIABrIARJGyIAQQN0ayIFNgI4IAggAyAAayIANgI8IAAoAAALIg42AjQLIAVBBWohBCAOIAV0QRt2aiEFDAELIARBACADa3YgBWohBSAAQSBLBEAgACEEDAELIAgoAjwiAyAIKAJETwRAIAggAEEHcSIENgI4IAggAyAAQQN2ayIANgI8IAggACgAADYCNAwBCyAIKAJAIgQgA0YEQCAAIQQMAQsgCCAAIAMgBGsgAEEDdiIAIAMgAGsgBEkbIgBBA3RrIgQ2AjggCCADIABrIgA2AjwgCCAAKAAANgI0CyAIIAgoAmQ2AmgMAQsgB0UhACADRQRAIBQgAEECdGooAgAhBSAUIAdBAEdBAnRqDAILIAgoAjQgBHQhAyAEQQFqIQQCQCAAIAVqIANBH3ZqIgBBA0YEQEEBIAgoAmBBAWsiACAAQQFNGyEFDAELQQEgAEECdCAIaigCYCIDIANBAU0bIQUgAEEBRg0BCyAIIAgoAmQ2AmgLIAwLKAIAIQAgCCAFNgJgIAggADYCZCASBEAgCCgCNCAEdEEAIBJrdiABaiEBIAQgEmohBAsCQCAGIBJqQRRJBEAgBCEADAELIARBIEsEQCAEIQAMAQsgCCgCPCIDIAgoAkRPBEAgCCAEQQdxIgA2AjggCCADIARBA3ZrIgM2AjwgCCADKAAANgI0DAELIAgoAkAiACADRgRAIAQhAAwBCyAIIAQgAyAAayAEQQN2IgQgAyAEayAASRsiBEEDdGsiADYCOCAIIAMgBGsiAzYCPCAIIAMoAAA2AjQLIAYEQCAIKAI0IAB0QQAgBmt2IAdqIQcgACAGaiEACwJAIABBIEsEQCAAIQMMAQsgCCgCPCIEIAgoAkRPBEAgCCAAQQdxIgM2AjggCCAEIABBA3ZrIgA2AjwgCCAAKAAANgI0DAELIAgoAkAiAyAERgRAIAAhAwwBCyAIIAAgBCADayAAQQN2IgAgBCAAayADSRsiAEEDdGsiAzYCOCAIIAQgAGsiADYCPCAIIAAoAAA2AjQLIAggGUECdEGQ+QBqKAIAIAgoAjQiBEEAIAMgGWoiAGt2cSAcajYCSCAIIBhBAnRBkPkAaigCACAEQQAgACAYaiIAa3ZxIB5qNgJYAkAgAEEgSwRAIAAhAwwBCyAIAn8gCCgCPCIGIAgoAkRPBEAgCCAAQQdxIgM2AjggCCAGIABBA3ZrIgA2AjwgACgAAAwBCyAIKAJAIgMgBkYEQCAAIQMMAgsgCCAAIAYgA2sgAEEDdiIAIAYgAGsgA0kbIgBBA3RrIgM2AjggCCAGIABrIgA2AjwgACgAAAsiBDYCNAsgCCADIBZqIgA2AjggCCAWQQJ0QZD5AGooAgAgBEEAIABrdnEgHWo2AlAgCCgCbCIEIAdqIgYgCSgChOwBIg5NDQALCyAPQQBMBEBBbCEDDAMLAkAgBCAORgRAIAIhBgwBC0G6fyEDIA4gBGsiCyAXIAJrSw0DIAIgC2ohBgJAAkAgC0EITgRAIAIgBGsiAEF5SA0BCyALQQBMDQEDQCACIAQtAAA6AAAgBEEBaiEEIAJBAWoiAiAGSQ0ACwwBCyACIA5qIRICQCACIAtqAn8gAEFvSwRAIAQhACACDAELIAQhACACIAZBIGsiDiACSQ0AGiAEKQAAISggAiAEKQAINwAIIAIgKDcAACAOIAJrIhRBEU4EQCACQRBqIQAgBCEDA0AgAykAECEoIAAgAykAGDcACCAAICg3AAAgAykAICEoIAAgAykAKDcAGCAAICg3ABAgA0EgaiEDIABBIGoiACAOSQ0ACwsgBCAUaiEAIA4LIg5rIhRBB3EiFkUEQCAOIQIMAQtBACEDIA4hAgNAIAIgAC0AADoAACACQQFqIQIgAEEBaiEAIANBAWoiAyAWRw0ACwsgDiASayAEakF4Sw0AIA4gFGohAwNAIAIgAC0AADoAACACIAAtAAE6AAEgAiAALQACOgACIAIgAC0AAzoAAyACIAAtAAQ6AAQgAiAALQAFOgAFIAIgAC0ABjoABiACIAAtAAc6AAcgAEEIaiEAIAJBCGoiAiADRw0ACwsgByALayEHCyAIIAlBjOwBaiIANgJsIAlBADYCiOwBIAlBjOwFaiELIAggBzYCcCAIIAE2AnQgCCAFNgJ4AkACQAJAIAdBgIAESg0AIAYgASAHaiIDaiAXQSBrSw0AIANBIGogFyAGa00NAQsgCCAIKAJ4NgIgIAggCCkDcDcDGCAGIBcgCEEYaiAIQewAaiALIBAgFSATEFYhAwwBCyAAIAdqIQ4gBiAHaiECIAApAAAhKCAGIAApAAg3AAggBiAoNwAAAkAgB0ERSQ0AIAkpAJzsASEoIAYgCUGk7AFqKQAANwAYIAYgKDcAECAHQRBrQRFIDQAgCUGc7AFqIQcgBkEgaiEEA0AgBykAECEoIAQgBykAGDcACCAEICg3AAAgBykAICEoIAQgBykAKDcAGCAEICg3ABAgB0EgaiEHIARBIGoiBCACSQ0ACwsgAiAFayEHIAggDjYCbCACIBBrIAVJBEAgAiAVayAFSQRAQWwhAwwFCyATIBMgByAQayIAaiIEIAFqTwRAIAIgBCABEBwaDAILIAIgBEEAIABrEBwgCCAAIAFqIgE2AnQgECEHIABrIQILIAVBEE8EQCAHKQAAISggAiAHKQAINwAIIAIgKDcAACABQRFIDQEgASACaiEAIAJBEGohAQNAIAcpABAhKCABIAcpABg3AAggASAoNwAAIAcpACAhKCABIAcpACg3ABggASAoNwAQIAdBIGohByABQSBqIgEgAEkNAAsMAQsCQCAFQQdNBEAgAiAHLQAAOgAAIAIgBy0AAToAASACIActAAI6AAIgAiAHLQADOgADIAIgByAFQQJ0IgBB4IsBaigCAGoiASgAADYABCABIABBgIwBaigCAGshBwwBCyACIAcpAAA3AAALIAgoAnQiAEEJSQ0AIAAgAmohBCACQQhqIgEgB0EIaiIHa0EPTARAA0AgASAHKQAANwAAIAdBCGohByABQQhqIgEgBEkNAAwCCwALIAcpAAAhKCABIAcpAAg3AAggASAoNwAAIABBGUgNACACQRhqIQEDQCAHKQAQISggASAHKQAYNwAIIAEgKDcAACAHKQAgISggASAHKQAoNwAYIAEgKDcAECAHQSBqIQcgAUEgaiIBIARJDQALCyADQYh/Sw0CIAMgBmohAiAPQQFrIg9FDQACQCAIKAI4IgBBIEsEQCAAIQEMAQsgCCgCPCIDIAgoAkRPBEAgCCAAQQdxIgE2AjggCCADIABBA3ZrIgA2AjwgCCAAKAAANgI0DAELIAgoAkAiASADRgRAIAAhAQwBCyAIIAAgAyABayAAQQN2IgAgAyAAayABSRsiAEEDdGsiATYCOCAIIAMgAGsiADYCPCAIIAAoAAA2AjQLIBdBIGshHSAIQeAAaiEUA0AgCCgCTCAIKAJIQQN0aiIALQACIQYgCCgCXCAIKAJYQQN0aiIDLQACIQ4gCCgCVCAIKAJQQQN0aiIFLQADIRYgAy0AAyEYIAAtAAMhGSAFLwEAIR4gAy8BACEcIAAvAQAhGyAFKAIEIRIgACgCBCEHIAMoAgQhBAJ/AkAgBS0AAiIAQQJPBEAgACABaiEDIAgoAjQiBSABdCEBAkAgEUUgAEEZSXJFBEAgAUEFIABrdkEFdCASagJAIANBBWsiAUEgSwRAIAEhAAwBCyAIAn8gCCgCPCIDIAgoAkRPBEAgCCABQQdxIgA2AjggCCADIAFBA3ZrIgE2AjwgASgAAAwBCyAIKAJAIgAgA0YEQCABIQAMAgsgCCABIAMgAGsgAUEDdiIBIAMgAWsgAEkbIgFBA3RrIgA2AjggCCADIAFrIgE2AjwgASgAAAsiBTYCNAsgAEEFaiEBIAUgAHRBG3ZqIQAMAQsgAUEAIABrdiASaiEAIANBIEsEQCADIQEMAQsgCCgCPCIFIAgoAkRPBEAgCCADQQdxIgE2AjggCCAFIANBA3ZrIgM2AjwgCCADKAAANgI0DAELIAgoAkAiASAFRgRAIAMhAQwBCyAIIAMgBSABayADQQN2IgMgBSADayABSRsiA0EDdGsiATYCOCAIIAUgA2siAzYCPCAIIAMoAAA2AjQLIAggCCgCZDYCaAwBCyAHRSEDIABFBEAgFCADQQJ0aigCACEAIBQgB0EAR0ECdGoMAgsgCCgCNCABdCEAIAFBAWohAQJAIAMgEmogAEEfdmoiA0EDRgRAQQEgCCgCYEEBayIAIABBAU0bIQAMAQtBASADQQJ0IAhqKAJgIgAgAEEBTRshACADQQFGDQELIAggCCgCZDYCaAsgDAsoAgAhAyAIIAA2AmAgCCADNgJkIA4EQCAIKAI0IAF0QQAgDmt2IARqIQQgASAOaiEBCwJAIAYgDmpBFEkEQCABIQMMAQsgAUEgSwRAIAEhAwwBCyAIKAI8IgUgCCgCRE8EQCAIIAFBB3EiAzYCOCAIIAUgAUEDdmsiATYCPCAIIAEoAAA2AjQMAQsgCCgCQCIDIAVGBEAgASEDDAELIAggASAFIANrIAFBA3YiASAFIAFrIANJGyIBQQN0ayIDNgI4IAggBSABayIBNgI8IAggASgAADYCNAsgBgRAIAgoAjQgA3RBACAGa3YgB2ohByADIAZqIQMLAkAgA0EgSwRAIAMhBQwBCyAIKAI8IgEgCCgCRE8EQCAIIANBB3EiBTYCOCAIIAEgA0EDdmsiATYCPCAIIAEoAAA2AjQMAQsgCCgCQCIFIAFGBEAgAyEFDAELIAggAyABIAVrIANBA3YiAyABIANrIAVJGyIDQQN0ayIFNgI4IAggASADayIBNgI8IAggASgAADYCNAsgCCAZQQJ0QZD5AGooAgAgCCgCNCIBQQAgBSAZaiIDa3ZxIBtqNgJIIAggGEECdEGQ+QBqKAIAIAFBACADIBhqIgNrdnEgHGo2AlgCQCADQSBLBEAgAyEFDAELIAgCfyAIKAI8IgYgCCgCRE8EQCAIIANBB3EiBTYCOCAIIAYgA0EDdmsiATYCPCABKAAADAELIAgoAkAiBSAGRgRAIAMhBQwCCyAIIAMgBiAFayADQQN2IgEgBiABayAFSRsiAUEDdGsiBTYCOCAIIAYgAWsiATYCPCABKAAACyIBNgI0CyAIIAUgFmoiAzYCOCAIIBZBAnRBkPkAaigCACABQQAgA2t2cSAeajYCUCAIIAc2AnAgCCAENgJ0IAggADYCeAJAAkACQCAIKAJsIgUgB2oiBiALSw0AIAIgBCAHaiIDaiAdSw0AIANBIGogFyACa00NAQsgCCAIKAJ4NgIQIAggCCkDcDcDCCACIBcgCEEIaiAIQewAaiALIBAgFSATEFYhAwwBCyACIAdqIQEgBSkAACEoIAIgBSkACDcACCACICg3AAACQCAHQRFJDQAgBSkAECEoIAIgBSkAGDcAGCACICg3ABAgB0EQa0ERSA0AIAVBEGohByACQSBqIQUDQCAHKQAQISggBSAHKQAYNwAIIAUgKDcAACAHKQAgISggBSAHKQAoNwAYIAUgKDcAECAHQSBqIQcgBUEgaiIFIAFJDQALCyABIABrIQcgCCAGNgJsIAEgEGsgAEkEQCABIBVrIABJBEBBbCEDDAYLIBMgEyAHIBBrIgVqIgYgBGpPBEAgASAGIAQQHBoMAgsgASAGQQAgBWsQHCAIIAQgBWoiBDYCdCAQIQcgBWshAQsgAEEQTwRAIAcpAAAhKCABIAcpAAg3AAggASAoNwAAIARBEUgNASABIARqIQAgAUEQaiEBA0AgBykAECEoIAEgBykAGDcACCABICg3AAAgBykAICEoIAEgBykAKDcAGCABICg3ABAgB0EgaiEHIAFBIGoiASAASQ0ACwwBCwJAIABBB00EQCABIActAAA6AAAgASAHLQABOgABIAEgBy0AAjoAAiABIActAAM6AAMgASAHIABBAnQiAEHgiwFqKAIAaiIEKAAANgAEIAQgAEGAjAFqKAIAayEHDAELIAEgBykAADcAAAsgCCgCdCIAQQlJDQAgACABaiEFIAFBCGoiBCAHQQhqIgdrQQ9MBEADQCAEIAcpAAA3AAAgB0EIaiEHIARBCGoiBCAFSQ0ADAILAAsgBykAACEoIAQgBykACDcACCAEICg3AAAgAEEZSA0AIAFBGGohAQNAIAcpABAhKCABIAcpABg3AAggASAoNwAAIAcpACAhKCABIAcpACg3ABggASAoNwAQIAdBIGohByABQSBqIgEgBUkNAAsLIANBiH9LDQMgAiADaiECIA9BAWsiD0UNASAIKAI4IgFBIEsNACAIKAI8IgMgCCgCRE8EQCAIIAFBB3EiADYCOCAIIAMgAUEDdmsiATYCPCAIIAEoAAA2AjQgACEBDAELIAMgCCgCQCIARg0AIAggASADIABrIAFBA3YiASADIAFrIABJGyIAQQN0ayIBNgI4IAggAyAAayIA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IApBjAJqIBcgDiAYIBYQViEGDAELIAQgGWohCyAEIAlqIQMgEygCCCECIBkpAAAhKCAJIBkpAAg3AAggCSAoNwAAAkAgBEERSQ0AIAwpAAAhKCAJIAwpAAg3ABggCSAoNwAQIARBEGtBEUgNACAJQSBqIQQgDCEVA0AgFSkAECEoIAQgFSkAGDcACCAEICg3AAAgFSkAICEoIAQgFSkAKDcAGCAEICg3ABAgFUEgaiEVIARBIGoiBCADSQ0ACwsgAyACayEEIAogCzYCjAIgAyAOayACSQRAIAIgAyAYa0sNCSAWIBYgBCAOayIEaiILIBJqTwRAIAMgCyASEBwaDAILIAQgEmohEiADIAtBACAEaxAcIARrIQMgDiEECyACQRBPBEAgBCkAACEoIAMgBCkACDcACCADICg3AAAgEkERSA0BIAMgEmohAiADQRBqIQMDQCAEKQAQISggAyAEKQAYNwAIIAMgKDcAACAEKQAgISggAyAEKQAoNwAYIAMgKDcAECAEQSBqIQQgA0EgaiIDIAJJDQALDAELAkAgAkEHTQRAIAMgBC0AADoAACADIAQtAAE6AAEgAyAELQACOgACIAMgBC0AAzoAAyADIAQgAkECdCICQeCLAWooAgBqIgQoAAA2AAQgBCACQYCMAWooAgBrIQQMAQsgAyAEKQAANwAACyASQQlJDQAgAyASaiELIANBCGoiAiAEQQhqIgRrQQ9MBEADQCACIAQpAAA3AAAgBEEIaiEEIAJBCGoiAiALSQ0ADAILAAsgBCkAACEoIAIgBCkACDcACCACICg3AAAgEkEZSA0AIANBGGohAwNAIAQpABAhKCADIAQpABg3AAggAyAoNwAAIAQpACAhKCADIAQpACg3ABggAyAoNwAQIARBIGohBCADQSBqIgMgC0kNAAsLIAZBiH9LBEAgBiENDAgLIBMgBzYCCCATIBQ2AgQgEyAPNgIAIA8gHWohBCAXIQggBiAJagwDCyAVQSBrIQYCQAJAIAggFUkNACACIBMoAgQiCyAEaiIJaiAGSw0AIAlBIGogGiACa00NAQsgCiATKAIINgJQIAogEykCADcDSCACIBogBiAKQcgAaiAKQYwCaiAIIA4gGCAWEPIBIQkMAgsgAiAEaiESIBMoAgghBiADKQAAISggAiADKQAINwAIIAIgKDcAAAJAIARB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IAEoAmAgASgCXCIGIAEoAlgiBSABKAJUIgcgASgCUCIIIAEoAkwiCSABKAJIIgogASgCRCILIAEoAkAiDCABKAI8Ig0gASgCOCIOIAEoAjQiDyABKAIwIhAgASgCLCIRIAEoAigiEiABKAIkIhMgASgCICIUIAEoAhwiFSABKAIYIhYgASgCFCIXIAEoAhAiGCABKAIMIAEoAgggASgCBCABKAIAampqampqampqampqampqampqampqampqampqampqampqamoiBEGAIE8EfyABIAEoAgAgBEELdmdBH3MiAnZBAWoiBDYCACABIAEoAgQgAnZBAWoiGTYCBCABIAEoAgggAnZBAWoiGjYCCCABIAEoAgwgAnZBAWoiGzYCDCABIAYgAnZBAWoiBjYCXCABIAUgAnZBAWoiBTYCWCABIAcgAnZBAWoiBzYCVCABIAggAnZBAWoiCDYCUCABIAkgAnZBAWoiCTYCTCABIAogAnZBAWoiCjYCSCABIAsgAnZBAWoiCzYCRCABIAwgAnZBAWoiDDYCQCABIA0gAnZBAWoiDTYCPCABIA4gAnZBAWoiDjYCOCABIA8gAnZBAWoiDzYCNCABIBAgAnZBAWoiEDYCMCABIBEgAnZBAWoiETYCLCABIBIgAnZBAWoiEjYCKCABIBMgAnZBAWoiEzYCJCABIBQgAnZBAWoiFDYCICABIBUgAnZBAWoiFTYCHCABIBYgAnZBAWoiFjYCGCABIBcgAnZBAWoiFzYCFCABIBggAnZBAWoiGDYCECABIAEoAmAgAnZBAWoiHDYCYCABIAEoAmQgAnZBAWoiHjYCZCABIAEoAmggAnZBAWoiHzYCaCABIAEoAmwgAnZBAWoiIDYCbCABIAEoAnAgAnZBAWoiITYCcCABIAEoAnQgAnZBAWoiIjYCdCABIAEoAnggAnZBAWoiIzYCeCABIAEoAnwgAnZBAWoiJDYCfCABIAEoAoABIAJ2QQFqIiU2AoABIAEgASgChAEgAnZBAWoiJjYChAEgASABKAKIASACdkEBaiInNgKIASABIAEoAowBIAJ2QQFqIgE2AowBIAEgJyAmICUgJCAjICIgISAgIB8gHiAcIAYgBSAHIAggCSAKIAsgDCANIA4gDyAQIBEgEiATIBQgFSAWIBcgGCAbIBogBCAZampqampqampqampqampqampqampqampqampqampqampqamoFIAQLNgIcAkAgACgCCCICKALQASACKALMASACKALIASACKALEASACKALAASACKAK8ASACKAK4ASACKAK0ASACKAKwASACKAKsASACKAKoASACKAKkASACKAKgASACKAKcASACKAKYASACKAKUASACKAKQASACKAKMASACKAKIASACKAKEASACKAKAASACKAJ8IAIoAnggAigCdCACKAJwIAIoAmwgAigCaCACKAJkIAIoAmAgAigCXCACKAJYIAIoAlQgAigCUCACKAJMIAIoAkggAigCRCACKAJAIAIoAjwgAigCOCACKAI0IAIoAjAgAigCLCACKAIoIAIoAiQgAigCICACKAIcIAIoAhggAigCFCACKAIQIAIoAgwgAigCCCACKAIEIAIoAgBqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqIgRBgCBJDQAgBEELdmdBH3MhBUEAIQFBACEEA0AgAiABQQJ0aiIGIAYoAgAgBXZBAWoiBzYCACAEIAdqIQQgAUE0Rg0BIAYgBigCBCAFdkEBaiIHNgIEIAYgBigCCCAFdkEBaiIINgIIIAYgBigCDCAFdkEBaiIGNgIMIAYgCCAEIAdqamohBCABQQRqIQEMAAsACyAAIAQ2AiAgACgCDCIBKAJ8IAEoAnggASgCdCABKAJwIAEoAmwgASgCaCABKAJkIAEoAmAiAiABKAJcIgYgASgCWCIFIAEoAlQiByABKAJQIgggASgCTCIJIAEoAkgiCiABKAJEIgsgASgCQCIMIAEoAjwiDSABKAI4Ig4gASgCNCIPIAEoAjAiECABKAIsIhEgASgCKCISIAEoAiQiEyABKAIgIhQgASgCHCIVIAEoAhgiFiABKAIUIhcgASgCECIYIAEoAgwiGSABKAIIIhogASgCBCIbIAEoAgAiHGpqampqampqampqampqampqampqampqampqampqamoiBEGAIEkNACABIAIgBEELdmdBH3MiAnZBAWoiBDYCYCABIAYgAnZBAWoiBjYCXCABIAUgAnZBAWoiBTYCWCABIAcgAnZBAWoiBzYCVCABIAggAnZBAWoiCDYCUCABIAkgAnZBAWoiCTYCTCABIAogAnZBAWoiCjYCSCABIAsg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ayAHSxsgACgCGBsiFCAAKAIMIhxPBEAgACABIAIgAyAEEP4BDwsgAigCACIGQQAgBiAFIBRrIglJIgcbIQVBACAGIAcbIR0gAigCBCIGQQAgBiAJSSIJGyEOQQAgBiAJGyEgAkAgAyAAKALMASIGIAZFakEBaiIhaiIPQQFqIgggAyAEaiISQQhrIhlPDQAgACgCCCIVIBwgFCAUIBxJGyIQaiEeIAsgEGohHyAUIBVqISMgACgCXCEMIAtBAmohJCASQSBrIRdBICAAKALAASIEayETQcAAIARrrSEnQQQgACgCyAEiACAAQQVrQQNPG0EFayEYA0AgA0GAAWohFiADQQFqIQkgFSALIAwCfwJAAkACQAJAAkAgGA4EAAECAwQLIAMpAAFCgICA2Mub741PfiAniKchESADKQAAQoCAgNjLm++NT34gJ4inDAQLIAMpAAFCgIDs/Mub741PfiAniKchESADKQAAQoCA7PzLm++NT34gJ4inDAMLIAMpAAFCgMaV/cub741PfiAniKchESADKQAAQoDGlf3Lm++NT34gJ4inDAILIAMpAAFC48iVvcub741PfiAniKchESADKQAAQuPIlb3Lm++NT34gJ4inDAELIAMoAAFBsfPd8XlsIBN2IREgAygAAEGx893xeWwgE3YLIgpBAnRqKAIAIgAgEEkbIRogBSALaiElICEhBiADIQcCfwNAIAghDSAVIAsgECAPIgQgJWsiCEsiJhshIgJ/IAVFIBAgCGtBBElyRQRAIAggImooAAAMAQsgBCgAAEEBcwsgDCAKQQJ0aiAHIAtrIg82AgAgBCgAACIKRgRAQQVBBCAEQQFrLQAAIAggImoiBkEBay0AAEYiABshCiAGIABrIQggBCAAayEHIB4gEiAmGyEbQQEhFiAFIQ0gDgwCCwJAAkAgACAUSQ0AIAcoAAAgACAaaigAAEcNACAJIQQMAQsgDCARQQJ0aiIHKAIAIQACfwJAAkACQAJAAkAgGA4EAQIDBAALIApBsfPd8XlsIBN2DAQLIAQpAABCgICA2Mub741PfiAniKcMAwsgBCkAAEKAgOz8y5vvjU9+ICeIpwwCCyAEKQAAQoDGlf3Lm++NT34gJ4inDAELIAQpAABC48iVvcub741PfiAniKcLIQogByAJIAtrIg82AgACQCAAIBRJDQAgCSgAACAVIAsgACAQSRsiGiAAaigAAEcNACAKIREgCSEHDAELIAwgCkECdGooAgAhAAJ/AkACQAJAAkACQCAYDgQBAgMEAAsgDSgAAEGx893xeWwgE3YMBAsgDSkAAEKAgIDYy5vvjU9+ICeIpwwDCyANKQAAQoCA7PzLm++NT34gJ4inDAILIA0pAABCgMaV/cub741PfiAniKcMAQsgDSkAAELjyJW9y5vvjU9+ICeIpwshESAVIAsgACAQSRshGiAGIA1qIQggBCAGaiIPIBZPBEAgFkGAAWohFiAGQQFqIQYLIA0hCSAEIQcgCCAZSQ0BDAQLCyAeIBIgACAcSSIGGyEbIA8gAGsiDUEDaiEWQQQhCgJ/AkAgACAaaiIIICMgHyAGGyIJTSADIAdPcg0AA0AgB0EBayIGLQAAIAhBAWsiAC0AAEcNASAKQQFqIQogACAJSwRAIAAhCCAGIgcgA0sNAQsLIAAhCCAGIQcgBAwBCyAECyEJIAULIQYgByAKaiAIIApqIBIgGyAfEA8gCmohDiAHIANrIQUgASgCDCEAAkACQCAHIBdNBEAgAykAACEoIAAgAykACDcACCAAICg3AAAgASgCDCEEIAVBEE0EQCABIAQgBWo2AgwgASgCBCEADAMLIAMpABAhKCAEIAMpABg3ABggBCAoNwAQIAVBIUgNASAEIAVqIQggA0EQaiEAIARBIGohAwNAIAApABAhKCADIAApABg3AAggAyAoNwAAIAApACAhKCADIAApACg3ABggAyAoNwAQIABBIGohACADQSBqIgMgCEkNAAsMAQsgAyAXTQRAIAMpAAAhKCAAIAMpAAg3AAggACAoNwAAIAAgFyADayIIaiEEIAhBEU4EQCAAQRBqIQADQCADKQAQISggACADKQAYNwAIIAAgKDcAACADKQAgISggACADKQAoNwAYIAAgKDcAECADQSBqIQMgAEEgaiIAIARJDQALCyAXIQMgBCEACyADIAdPDQBBACEKIAMhBCAHIANrQQdxIggEQANAIAAgBC0AADoAACAAQQFqIQAgBEEBaiEEIApBAWoiCiAIRw0ACwsgAyAHa0F4Sw0AA0AgACAELQAAOgAAIAAgBC0AAToAASAAIAQtAAI6AAIgACAELQADOgADIAAgBC0ABDoABCAAIAQtAAU6AAUgACAELQAGOgAGIAAg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agUgBAsgBmsLQQRqIQoCQCAAIANNBEAgACEFDAELIAAhCSAHIQQgACEFIA0gEEwNAANAIAlBAWsiBS0AACAEQQFrIgQtAABHBEAgCSEFDAILIApBAWohCiADIAVPDQEgBSEJIAQgE0sNAAsLIAAgB2siBkEDaiEJIAUgA2shCCABKAIMIQACQAJAIAUgC00EQCADKQAAISUgACADKQAINwAIIAAgJTcAACABKAIMIQQgCEEQTQRAIAEgBCAIajYCDCABKAIEIQAMAwsgAykAECElIAQgAykAGDcAGCAEICU3ABAgCEEhSA0BIAQgCGohByADQRBqIQAgBEEgaiEDA0AgACkAECElIAMgACkAGDcACCADICU3AAAgACkAICElIAMgACkAKDcAGCADICU3ABAgAEEgaiEAIANBIGoiAyAHSQ0ACwwBCyADIAtNBEAgAykAACElIAAgAykACDcACCAAICU3AAAgACALIANrIgdqIQQgB0ERTgRAIABBEGohAANAIAMpABAhJSAAIAMpABg3AAggACAlNwAAIAMpACAhJSAAIAMpACg3ABggACAlNwAQIANBIGohAyAAQSBqIgAgBEkNAAsLIAshAyAEIQALIAMgBU8NAEEAIQ0gAyEEIAUgA2tBB3EiBwRAA0AgACAELQAAOgAAIABBAWohACAEQQFqIQQgDUEBaiINIAdHDQALCyADIAVrQXhLDQADQCAAIAQtAAA6AAAgACAELQABOgABIAAgBC0AAjoAAiAAIAQtAAM6AAMgACAELQAEOgAEIAAgBC0ABToABSAAIAQtAAY6AAYgACAELQAHOgAHIABBCGohACAEQQhqIgQgBUcNAAsLIAEgASgCDCAIajYCDCABKAIEIQAgCEGAgARJDQAgAUEBNgIkIAEgACABKAIAa0EDdTYCKAsgACAJNgIAIAAgCDsBBCAMIQggBiEMIApBA2siA0H//wNNDQELIAFBAjYCJCABIAAgASgCAGtBA3U2AiggBiEMCyAAIAM7AQYgASAAQQhqIgM2AgQCQCAFIApqIgAgEksNACAUIBEgHWopAABCgMaV/cub741PfiAmiKdBAnRqIBFBAmo2AgAgFCAAQQJrIgQpAABCgMaV/cub741PfiAmiKdBAnRqIAQgD2s2AgAgDCEFIAghBANAAkAgBCEMIAUhBCAZIAAgD2siCCAMayIFa0EDSQ0AIAUgHiAPIAUgEEkiBRtqIgYoAAAgACgAAEcNACAAQQRqIAZBBGogDiAXIA4gBRsgExAPIQYgACALTQRAIAApAAAhJSABKAIMIgMgACkACDcACCADICU3AAAgASgCBCEDCyADQQE2AgAgA0EAOwEEIAZBAWoiBUGAgARPBEAgAUECNgIkIAEgAyABKAIAa0EDdTYCKAsgAyAFOwEGIAEgA0EIaiIDNgIEIBQgACkAAEKAxpX9y5vvjU9+ICaIp0ECdGogCDYCACAMIQUgBCEIIAZBBGogAGoiACASTQ0BDAILCyAMIQggBCEMCyAAIQMgACAYaiIGIBJNDQALDAILIAZFIARBHUtyRQRAQQQgBHQhBUEAIQADQCAAQUBrIgAgBUkNAAsLIBIgAyAYaiIGSQRAIAMhAAwCCyAPQQJqIR0gCyAWaiEeIA5BAWshHyAOQQNrIRUgDkEgayELIBBBAWshGSADIAkgGkZqIQBBOCAEa60hJ0HAACAHa60hJgNAIBwgACkAAEKAgOz8y5vvjU9+IiUgJ4inIgRBBnZB/P//H3FqKAIAIgogBHMhByAAQYACaiEFIBghCQJAAkACfwNAIBQgJSAmiKdBAnRqIhEoAgAhDSAGIgQpAAAhJSARIAAgD2siETYCAAJAIBkgESAMa0EBaiIGa0EDSQ0AIBYgBiAba2ogBiAPaiAGIBBJIgYbIiAoAAAgACgAAUcNACAAQQVqICBBBGogDiAXIA4gBhsgExAPIQcgAEEBaiIFIANrIQkgASgCDCEEAkACQCAFIAtNBEAgAykAACElIAQgAykACDcACCAEICU3AAAgASgCDCEEIAlBEE0EQCABIAQgCWo2AgwgASgCBCEADAMLIAMpABAhJSAEIAMpABg3ABggBCAlNwAQIAlBIUgNASAEIAlqIQYgA0EQaiEAIARBIGohAwNAIAApABAhJSADIAApABg3AAggAyAlNwAAIAApACAhJSADIAApACg3ABggAyAlNwAQIABBIGohACADQSBqIgMgBkkNAAsMAQsgAyALTQRAIAMpAAAhJSAEIAMpAAg3AAggBCAlNwAAIAQgCyADayIKaiEGIApBEU4EQCAEQRBqIQQDQCADKQAQISUgBCADKQAYNwAIIAQgJTcAACADKQAgISUgBCADKQAoNwAYIAQgJTcAECADQSBqIQMgBEEgaiIEIAZJDQALCyAGIQQgCyEDCyADIAVPDQAgACADa0EAIQAgBSADa0EHcSIKBEADQCAEIAMtAAA6AAAgBEEBaiEEIANBAWohAyAAQQFqIgAgCkcNAAsLQQdJDQADQCAEIAMtAAA6AAAgBCADLQABOgABIAQgAy0AAjoAAiAEIAMtAAM6AAMgBCADLQAEOgAEIAQgAy0ABToABSAEIAMtAAY6AAYgBCADLQAHOgAHIARBCGohBCADQQhqIgMgBUcNAAsLIAEgASgCDCAJajYCDCABKAIEIQAgCUGAgARJDQAgAUEBNgIkIAEgACABKAIAa0EDdTYCKAsgB0EEaiEKIABBATYCACAAIAk7AQQgDCEGIAdBAWoiA0H//wNLDQMMBAsCQCAHQf8BcQ0AIApBCHYiBiAhTQ0AIAYgFmoiBygAACAAKAAARyANIBBLcg0AIABBBGogB0EEaiAOIBcgExAPQQRqIQogESAGIBtqayEGIAAhBQJAIAAgA00NAANAIABBAWsiBS0AACAHQQFrIgctAABHBEAgACEFDAILIApBAWohCiADIAVPDQEgBSEAIAcgGksNAAsLIAZBA2ohCSAFIANrIQggASgCDCEAAkACQCAFIAtNBEAgAykAACElIAAgAykACDcACCAAICU3AAAgASgCDCEEIAhBEE0EQCABIAQgCGo2AgwgASgCBCEADAMLIAMpABAhJSAEIAMpABg3ABggBCAlNwAQIAhBIUgNASAEIAhqIQcgA0EQaiEAIARBIGohAwNAIAApABAhJSADIAApABg3AAggAyAlNwAAIAApACAhJSADIAApACg3ABggAyAlNwAQIABBIGohACADQSBqIgMgB0kNAAsMAQsgAyALTQRAIAMpAAAhJSAAIAMpAAg3AAggACAlNwAAIAAgCyADayIHaiEEIAdBEU4EQCAAQRBqIQADQCADKQAQISUgACADKQAYNwAIIAAgJTcAACADKQAgISUgACADKQAoNwAYIAAgJTcAECADQSBqIQMgAEEgaiIAIARJDQALCyALIQMgBCEACyADIAVPDQBBACENIAMhBCAFIANrQQdxIgcEQANAIAAgBC0AADoAACAAQQFqIQAgBEEBaiEEIA1BAWoiDSAHRw0ACwsgAyAFa0F4Sw0AA0AgACAELQAAOgAAIAAgBC0A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IAMgBU8NASAFIQAgByAaSw0ACwsgBkEDaiEJIAUgA2shCCABKAIMIQACQAJAIAUgC00EQCADKQAAISUgACADKQAINwAIIAAgJTcAACABKAIMIQQgCEEQTQRAIAEgBCAIajYCDCABKAIEIQAMAwsgAykAECElIAQgAykAGDcAGCAEICU3ABAgCEEhSA0BIAQgCGohByADQRBqIQAgBEEgaiEDA0AgACkAECElIAMgACkAGDcACCADICU3AAAgACkAICElIAMgACkAKDcAGCADICU3ABAgAEEgaiEAIANBIGoiAyAHSQ0ACwwBCyADIAtNBEAgAykAACElIAAgAykACDcACCAAICU3AAAgACALIANrIgdqIQQgB0ERTgRAIABBEGohAANAIAMpABAhJSAAIAMpABg3AAggACAlNwAAIAMpACAhJSAAIAMpACg3ABggACAlNwAQIANBIGohAyAAQSBqIgAgBEkNAAsLIAshAyAEIQALIAMgBU8NAEEAIQ0gAyEEIAUgA2tBB3EiBwRAA0AgACAELQAAOgAAIABBAWohACAEQQFqIQQgDUEBaiINIAdHDQALCyADIAVrQXhLDQADQCAAIAQtAAA6AAAgACAELQABOgABIAAgBC0AAjoAAiAAIAQtAAM6AAMgACAELQAEOgAEIAAgBC0ABToABSAAIAQtAAY6AAYgACAELQAHOgAHIABBCGohACAEQQhqIgQgBUcNAAsLIAEgASgCDCAIajYCDCABKAIEIQAgCEGAgARJDQAgAUEBNgIkIAEgACABKAIAa0EDdTYCKAsgACAJNgIAIAAgCDsBBCAMIQggBiEMIApBA2siA0H//wNNDQQMAwsCQAJAIA0gEE0NACANIA9qIgcoAAAgACgAAEcNACAHQQRqIQUgAEEEaiIGIBVPBEAgBiEEDAILIAYiBCgAACIIIAUoAAAiCUcEQCAIIAlzaEEDdgwECwNAIAVBBGohBSAEQQRqIgQgFU8NAiAEKAAAIgggBSgAACIJRg0ACyAEIAggCXNoQQN2aiAGawwDCyASIAQgCSAEIAVPIgBqIglqIgZJBEAgAyEADAcLIAUgAEEIdGohBSAcICVCgICA2Mub741PfiIlICeIpyIAQQZ2Qfz//x9xaigCACIKIABzIQcgBCEADAELCwJAIAQgH08NACAFLwAAIAQvAABHDQAgBUECaiEFIARBAmohBAsgBCAOSQR/IAQgBS0AACAELQAARmoFIAQLIAZrC0EEaiEKAkAgACADTQRAIAAhBQwBCyAAIQkgByEEIAAhBSANIBBMDQADQCAJQQFrIgUtAAAgBEEBayIELQAARwRAIAkhBQwCCyAKQQFqIQogAyAFTw0BIAUhCSAEIBNLDQALCyAAIAdrIgZBA2ohCSAFIANrIQggASgCDCEAAkACQCAFIAtNBEAgAykAACElIAAgAykACDcACCAAICU3AAAgASgCDCEEIAhBEE0EQCABIAQgCGo2AgwgASgCBCEADAMLIAMpABAhJSAEIAMpABg3ABggBCAlNwAQIAhBIUgNASAEIAhqIQcgA0EQaiEAIARBIGohAwNAIAApABAhJSADIAApABg3AAggAyAlNwAAIAApACAhJSADIAApACg3ABggAyAlNwAQIABBIGohACADQSBqIgMgB0kNAAsMAQsgAyALTQRAIAMpAAAhJSAAIAMpAAg3AAggACAlNwAAIAAgCyADayIHaiEEIAdBEU4EQCAAQRBqIQADQCADKQAQISUgACADKQAYNwAIIAAgJTcAACADKQAgISUgACADKQAoNwAYIAAgJTcAECADQSBqIQMgAEEgaiIAIARJDQALCyALIQMgBCEACyADIAVPDQBBACENIAMhBCAFIANrQQdxIgcEQANAIAAgBC0AADoAACAAQQFqIQAgBEEBaiEEIA1BAWoiDSAHRw0ACwsgAyAFa0F4Sw0AA0AgACAELQAAOgAAIAAgBC0AAToAASAAIAQtAAI6AAIgACAELQADOgADIAAgBC0ABDoABCAAIAQtAAU6AAUgACAELQAGOgAGIAAgBC0ABzoAByAAQQhqIQAgBEEIaiIEIAVHDQALCyABIAEoAgwgCGo2AgwgASgCBCEAIAhBgIAESQ0AIAFBATYCJCABIAAgASgCAGtBA3U2AigLIAAgCTYCACAAIAg7AQQgDCEIIAYhDCAKQQNrIgNB//8DTQ0BCyABQQI2AiQgASAAIAEoAgBrQQN1NgIoIAYhDAsgACADOwEGIAEgAEEIaiIDNgIEAkAgBSAKaiIAIBJLDQAgFCARIB1qKQAAQoCAgNjLm++NT34gJoinQQJ0aiARQQJqNgIAIBQgAEECayIEKQAAQoCAgNjLm++NT34gJoinQQJ0aiAE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BiAXSQ0ACwwCCwJAIBJFDQAgCEEeSQRAQQQgCHQhBkEAIQADQCAAQUBrIgAgBkkNAAsLIAVBHUsNAEEEIAV0IQZBACEAA0AgAEFAayIAIAZJDQALCyADIAkgCkZqIgYgF08NASANIBNqISAgDEEgayENIAxBAWshGiAMQQNrIRIgD0EBayEdQTggBWutISpBOCAIa60hKEHAACARa60hJkHAACALa60hJwNAIBUgBikAACIlQuPIlb3Lm++NT34iKSAniKdBAnRqIgAoAgAhCiAZICVCgIDs/Mub741PfiIrICaIp0ECdGoiESgCACEJIB8gKSAoiKciG0EGdkH8//8fcWooAgAhBSAiICsgKoinIiFBBnZB/P//H3FqKAIAIQggESAGIA5rIhE2AgAgACARNgIAAkACQAJAAkAgHSARQQFqIgsgBGsiAGtBA0kNACATIAAgFmtqIAAgDmogACAPSSIAGyIeKAAAIAYoAAFHDQAgBkEFaiAeQQRqIAwgFCAMIAAbIBAQDyEKIAZBAWoiBSADayEJIAEoAgwhAAJAAkAgBSANTQRAIAMpAAAhJSAAIAMpAAg3AAggACAlNwAAIAEoAgwhACAJQRBNBEAgASAAIAlqNgIMIAEoAgQhAwwDCyADKQAQISUgACADKQAYNwAYIAAgJTcAECAJQSFIDQEgACAJaiEGIANBEGohAyAAQSBqIQADQCADKQAQISUgACADKQAYNwAIIAAgJTcAACADKQAgISUgACADKQAoNwAYIAAgJTcAECADQSBqIQMgAEEgaiIAIAZJDQALDAELIAMgDU0EQCADKQAAISUgACADKQAINwAIIAAgJTcAACAAIA0gA2siC2ohCCALQRFOBEAgAEEQaiEAA0AgAykAECElIAAgAykAGDcACCAAICU3AAAgAykAICElIAAgAykAKDcAGCAAICU3ABAgA0EgaiEDIABBIGoiACAISQ0ACwsgDSEDIAghAAsgAyAFTw0AIAYgA2tBACEGIAUgA2tBB3EiCwRAA0AgACADLQAAOgAAIABBAWohACADQQFqIQMgBkEBaiIGIAtHDQALC0EHSQ0AA0AgACADLQAAOgAAIAAgAy0AAToAASAAIAMtAAI6AAIgACADLQADOgADIAAgAy0ABDoABCAAIAMtAAU6AAUgACADLQAGOgAGIAAgAy0ABzoA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BSEHIAlBBGogA2oiAyEGIAMgF00NAQwCCwsgBCEHIAUhBCADIQYLIAYgF0kNAAsMAQsCQCASRQ0AIAhBHkkEQEEEIAh0IQZBACEAA0AgAEFAayIAIAZJDQALCyAFQR1LDQBBBCAFdCEGQQAhAANAIABBQGsiACAGSQ0ACwsgAyAJIApGaiIGIBdPDQAgDSATaiEgIAxBIGshDSAMQQFrIRogDEEDayESIA9BAWshHUE4IAVrrSEqQTggCGutIShBwAAgEWutISZBwAAgC2utIScDQCAVIAYpAAAiJULjyJW9y5vvjU9+IikgJ4inQQJ0aiIAKAIAIQogGSAlQoCAgNjLm++NT34iKyAmiKdBAnRqIhEoAgAhCSAfICkgKIinIhtBBnZB/P//H3FqKAIAIQUgIiArICqIpyIhQQZ2Qfz//x9xaigCACEIIBEgBiAOayIRNgIAIAAgETYCAAJAAkACQAJAIB0gEUEBaiILIARrIgBrQQNJDQAgEyAAIBZraiAAIA5qIAAgD0kiABsiHigAACAGKAABRw0AIAZBBWogHkEEaiAMIBQgDCAAGyAQEA8hCiAGQQFqIgUgA2shCSABKAIMIQACQAJAIAUgDU0EQCADKQAAISUgACADKQAINwAIIAAgJTcAACABKAIMIQAgCUEQTQRAIAEgACAJajYCDCABKAIEIQMMAwsgAykAECElIAAgAykAGDcAGCAAICU3ABAgCUEhSA0BIAAgCWohBiADQRBqIQMgAEEgaiEAA0AgAykAECElIAAgAykAGDcACCAAICU3AAAgAykAICElIAAgAykAKDcAGCAAICU3ABAgA0EgaiEDIABBIGoiACAGSQ0ACwwBCyADIA1NBEAgAykAACElIAAgAykACDcACCAAICU3AAAgACANIANrIgtqIQggC0ERTgRAIABBEGohAANAIAMpABAhJSAAIAMpABg3AAggACAlNwAAIAMpACAhJSAAIAMpACg3ABggACAlNwAQIANBIGohAyAAQSBqIgAgCEkNAAsLIA0hAyAIIQALIAMgBU8NACAGIANrQQAhBiAFIANrQQdxIgsEQANAIAAgAy0AADoAACAAQQFqIQAgA0EBaiEDIAZBAWoiBiALRw0ACwtBB0kNAANAIAAgAy0AADoAACAAIAMtAAE6AAEgACADLQACOgACIAAgAy0AAzoA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dGogBjYCACAVICVC48iVvcub741PfiAniKdBAnRqIAY2AgAgBCEIIAUhByAJQQRqIANqIgMhBiADIBdNDQEMAgsLIAQhByAFIQQgAyEGCyAGIBdJDQALCyACIAc2AgQgAiAENgIAIAwgA2sLVwEBfyMAQRBrIgIkACABIAJBCGpBsicQDiIBKAIAIAEoAgQQECEBIAAoAgggARAXIAEgAkH0IxAOIgEoAgAgASgCBBAQIQEgACgCDCABEBcgAkEQaiQACz0BAX8jAEEQayICJAAgAEEIaiABIAJBCGpB+yIQDiIAKAIAIAAoAgQQECIAEC8gAEHdABAkGiACQRBqJAALNwEBfyMAQRBrIgIkACABIAJBCGpB8yUQDiIBKAIAIAEoAgQQECEBIAAoAgggARAXIAJBEGokAAu5AgECfyMAQTBrIgMkACABQSgQIiAAQRBqIAEQLyABQSkQISAAKAIIIgIEQCACIAEgAigCACgCFBEAAAsgACgCICICQQFxBEAgASADQShqQbIKEA4iAigCACACKAIEEBAaIAAoAiAhAgsgAkECcQR/IAEgA0EgakHSFRAOIgIoAgAgAigCBBAQGiAAKAIgBSACC0EEcQRAIAEgA0EYakHBCxAOIgIoAgAgAigCBBAQGgsCQCABAn8CQAJAIAAtACRBAWsOAgABAwsgA0EUaiECIANBEGpBvCUQDgwBCyADQQxqIQIgA0EIakG4JRAOCygCACACKAIAEBAaCyAAKAIYIgIEQCACIAEQFwsgACgCHARAIAEgA0H5JRAOIgEoAgAgASgCBBAQIQEgACgCHCABEBcLIANBMGokAAtdAQJ/IwBBEGsiAyQAAkAgACgCCCICRQ0AIAIgASACKAIAKAIQEQAAIAAoAgggARBcDQAgASADQQhqQc4pEA4iAigCACACKAIEEBAaCyAAKAIMIAEQFyADQRBqJAALVQEBfyMAQRBrIgIkACAAKAIIIAEQFyABIAJBCGpBkCUQDiIBKAIAIAEoAgQQECAAKAIMIAAoAhAQECACQY4lEA4iACgCACAAKAIEEBAaIAJBEGokAAsbACABIAAoAgggACgCDBAQIQEgACgCECABEBcLRQEBfyMAQRBrIgIkACABIAJBCGpB/goQDiIBKAIAIAEoAgQQECIBQSgQIiAAKAIIIAFBE0EAEC0gAUEpECEg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QRBrIgIkACABIAJBCGpBiAgQDiIBKAIAIAEoAgQQECEBIAAoAggiACABIAAoAgAoAhARAAAgAkEQaiQACzcBAX8jAEEQayICJAAgASACQQhqQYsjEA4iASgCACABKAIEEBAhASAAKAIIIAEQFyACQRBqJAALZAECfyMAQRBrIgIkACAALQAMRQRAIAEgAkEIakGCKRAOIgMoAgAgAygCBBAQGgsgASACQZQLEA4iASgCACABKAIEEBAiAUEoECIgACgCCCABQRNBABAtIAFBKRAhIAJBEGokAAs0ACABIAAoAgggACgCDBAQIgFBKBAiIAAoAhAgARAXIAFBKRAhIAEgACgCFCAAKAIYEBAaC00BAX8jAEEQayICJAAgASACQQhqQawaEA4iASgCACABKAIEEBAhASAAKAIIIAEQFyABIAJBqhoQDiIAKAIAIAAoAgQQEBogAkEQaiQAC10BAX8jAEEQayICJAAgACgCCCABEBcgASACQQhqQbEaEA4iASgCACABKAIEEBAhASAAKAIMIgAEQCAAIAEQFwsgASACQaoaEA4iACgCACAAKAIEEBAaIAJBEGokAAuoAQEDfyMAQSBrIgMkACABKAIAIAEoAgQiBEUEQBAxAAsgBGpBAWssAABB3QBHBEAgASADQRhqQc4pEA4iAigCACACKAIEEBAaCyABIANBEGpBuBoQDiIBKAIAIAEoAgQQECEBIAAoAgwiAgRAIAIgARAXCyABIANBCGpBqhoQDiIBKAIAIAEoAgQQECEBIAAoAggiACABIAAoAgAoAhQRAAAgA0EgaiQACxYAIAAoAggiACABIAAoAgAoAhARAAALXQECfyMAQRBrIgIkAAJAIAAoAgwgARA+RQRAIAAoAgwgARBDRQ0BCyABIAJBCGpBjiUQDiIDKAIAIAMoAgQQEBoLIAAoAgwiACABIAAoAgAoAhQRAAAgAkEQaiQAC5sBAQJ/IwBBIGsiAiQAIAAoAgwiAyABIAMoAgAoAhARAAAgAQJ/AkAgACgCDCABED5FBEAgACgCDCABEENFDQELIAJBHGohAyACQRhqQZElEA4MAQsgAkEUaiEDIAJBEGpBzikQDgsoAgAgAygCABAQIQEgACgCCCABEBcgASACQQhqQbkkEA4iACgCACAAKAIEEBAaIAJBIGokAAsfACABIAAoAgggACgCDBAQQSAQJCEBIAAoAhAgARAXC1MBAn8jAEEQayICJAAgAC0AEEUEQCACQQhqIABBEGpBARA7IQMGQCAAKAIMIgAgASAAKAIAKAIUEQAAGSACJAAgAxAlCQALIAMQJQsgAkEQaiQAC1MBAn8jAEEQayICJAAgAC0AEEUEQCACQQhqIABBEGpBARA7IQMGQCAAKAIMIgAgASAAKAIAKAIQEQAAGSACJAAgAxAlCQALIAMQJQsgAkEQaiQAC1cBAn8jAEEQayICJAAgAC0AEEUEQCACQQhqIABBEGpBARA7IQMGQCAAKAIMIgAgASAAKAIAKAIMEQEAIQAZIAIkACADECUJAAsgAxAlCyACQRBqJAAgAAtMAQN/IwBBEGsiAiQAIAAtABBFBEAgAkEIaiAAQRBqQQEQOyEEBkAgACgCDCABEEMhAxkgAiQAIAQQJQkACyAEECULIAJBEGokACADC0wBA38jAEEQayICJAAgAC0AEEUEQCACQQhqIABBEGpBARA7IQQGQCAAKAIMIAEQPiEDGSACJAAgBBAlCQALIAQQJQsgAkEQaiQAIAMLTAEDfyMAQRBrIgIkACAALQAQRQRAIAJBCGogAEEQakEBEDshBAZAIAAoAgwgARBcIQMZIAIkACAEECUJAAsgBBAlCyACQRBqJAAgAwuUAQECfyMAQRBrIgMkACAAKAIMQQRPBEAgAUEoECIgASAAKAIIIAAoAgwQEEEpECELAkAgACgCECICLQAAQe4ARgRAIAEQpAIgA0EIaiAAKAIQQQFqIAAoAhRBAWsQKikDABAuGgwBCyABIAIgACgCFBAQGgsgACgCDCICQQNNBEAgASAAKAIIIAIQEBoLIANBEGokAAs2AQF/IwBBEGsiAiQAIAEgAkEIakGuFUHDFSAALQAHGxAOIgAoAgAgACgCBBAQGiACQRBqJAAL2QEBBX8jAEEwayICJAAgACgCDEEITwRAIAAoAgghBSACQSxqIQNBACEAA0AgAEEIRkUEQCADQVBBqX8gACAFaiIELAABIgZBMGtBCkkbIAZqQQlBACAELAAAIgRBMGtBCk8bIARqQQR0ajoAACADQQFqIQMgAEECaiEADAELCyACQSxqIAMQ1QEgAkIANwMgIAJCADcDGCACQgA3AxAgAiACKgIsuzkDACABIAJBCGogAkEQaiIAIABBGEGqFSACEO8BECoiACgCACAAKAIEEBAaCyACQTBqJAAL3wEBBX8jAEFAaiICJAAgACgCDEEQTwRAIAAoAgghBSACQThqIQNBACEAA0AgAEEQRkUEQCADQVBBqX8gACAFaiIELAABIgZBMGtBCkkbIAZqQQlBACAELAAAIgRBMGtBCk8bIARqQQR0ajoAACADQQFqIQMgAEECaiEADAELCyACQThqIAMQ1QEgAkIANwMoIAJCADcDICACQgA3AxggAkIANwMQIAIgAisDODkDACABIAJBCGogAkEQaiIAIABBIEHsGSACEO8BECoiACgCACAAKAIEEBAaCyACQUBrJAAL2gEBBX8jAEHgAGsiAiQAIAAoAgxBIE8EQCAAKAIIIQUgAkHQAGohA0EAIQADQCAAQSBGRQRAIANBUEGpfyAAIAVqIgQsAAEiBkEwa0EKSRsgBmpBCUEAIAQsAAAiBEEwa0EKTxsgBGpBBHRqOgAAIANBAWohAyAAQQJqIQAMAQsLIAJB0ABqIAMQ1QEgAkEgaiIAQQBBKhAYGiACIAIpA1A3AwAgAiACKQNYNwMIIAEgAkEYaiAAIABBKkHwGiACEO8BECoiACgCACAAKAIEEBAaCyACQeAAaiQAC00BAX8jAEEQayICJAAgASACQQhqQfIiEA4iASgCACABKAIEEBAhASAAKAIIIAEQFyABIAJBySUQDiIAKAIAIAAoAgQQEBogAkEQaiQAC1sBAX8jAEEQayICJAAgASACQQhqQakaEA4iASgCACABKAIEEBAhASAAKAIIIgAtAARBNEYEQCAAIAEQrgILIAEgAkGKCBAOIgAoAgAgACgCBBAQGiACQRBqJAALaQEBfyMAQRBrIgIkACABQSgQIiAAKAIIIAEQFyABQSkQIQJAIAAoAgwtAABB7gBGBEAgARCkAiACQQhqIAAoAgxBAWogACgCEEEBaxAqKQMAEC4aDAELIAEgACkCDBAuGgsgAkEQaiQACzUBAX8gACgCDCABEFsgASgCDCICIAAoAgxJBEAgACgCCCACEFoiACABIAAoAgAoAhQRAAALCzUBAX8gACgCDCABEFsgASgCDCICIAAoAgxJBEAgACgCCCACEFoiACABIAAoAgAoAhARAAALCzgBAX8gACgCDCABEFsgASgCDCICIAAoAgxJBH8gACgCCCACEFoiACABIAAoAgAoAgwRAQAFIAALCy0BAn8gACgCDCABEFsgASgCDCIDIAAoAgxJBH8gACgCCCADEFogARBDBSACCwstAQJ/IAAoAgwgARBbIAEoAgwiAyAAKAIMSQR/IAAoAgggAxBaIAEQPgUgAgsLLQECfyAAKAIMIAEQWyABKAIMIgMgACgCDEkEfyAAKAIIIAMQWiABEFwFIAILC3ABAn8jAEEgayICJAAgAkEYaiABQRRqQQAQRSEDBkAgAEEIaiABIAJBEGpB8yIQDiIAKAIAIAAoAgQQECIAEC8ZIAIkACADEDAJAAsgACACQQhqQaQhEA4iACgCACAAKAIEEBAaIAMQMCACQSBqJAALJAECfyAAKAIEIgAQTUEBaiIBECMiAgR/IAIgACABEBQFQQALCxQAIAAoAgggARAXIAAoAgwgARAXC3cBAn8jAEEQayIDJAACQCAAKAIIIgItAARBC0YEQCACKAIIEKcCDQELAkAgAiABED5FBEAgACgCCCABEENFDQELIAEgA0EIakGOJRAOIgIoAgAgAigCBBAQGgsgACgCCCIAIAEgACgCACgCFBEAAAsgA0EQaiQAC/MBAQJ/IwBBMGsiAiQAIAECfwJAIAAoAggiAy0ABEELRgRAIAMoAggQpwINAQsgAyABIAMoAgAoAhARAAAgACgCCCABED4EQCABIAJBKGpBzikQDiIDKAIAIAMoAgQQEBoLAkAgACgCCCABED5FBEAgACgCCCABEENFDQELIAEgAkEgakGRJRAOIgAoAgAgACgCBBAQGgsgAkEcaiEAIAJBGGpBxiQQDgwBCyACQQxqIQAgASACQRBqQeAiEA4iASgCACABKAIEEBAgAygCDCADKAIQEBAaIAJBCGpBpCEQDgsoAgAgACgCABAQGiACQTBqJAALpgEBAn8jAEEgayICJAAgAC0AEEUEQCACQRhqIABBEGpBARA7IQMGQAJAIAJBEGogACgCCCAAKAIMIAEQqAIgAigCFCIARQ0AAkAgACABED5FBEAgAigCFCABEENFDQELIAEgAkEIakGOJRAOIgAoAgAgACgCBBAQGgsgAigCFCIAIAEgACgCACgCFBEAAAsZIAIkACADECUJAAsgAxAlCyACQSBqJAAL8AEBAn8jAEEwayICJAAgAC0AEEUEQCACQShqIABBEGpBARA7IQMCQAJA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C0EBOgAAQQAhAQwBCyADKAKoBCABSwRAIAMgATYCqAQLIAMgATYCrAQLIAMgATYC+AVBACEBIAUNASADKAKsBCAJayIBIAMoAqQESQRAIAtBAToAAEEAIQEMAgsgAygCqAQgAUsEQCADIAE2AqgECyADIAE2AqwEDAELIAMgBjYCsAQgA0IANwL0BQsgA0EBNgLgBSADIAE2AvwFIANCADcDkARBRCECIARFDQBBACESIB0hFCAhISggBEEBRgRAIAMpA8gEQgF9IUwgAygCvAEhBCADKALcAUEAIQEgAygC2AEiBQRAIExC/wFWIExC/4EEVmogTEL+////D1ZqIQELIB1BEkkEQEG6fyECDAILQQBKQQJ0QSBBACAFQQBHIExBASAEdK1YcSIFG3IgAUEGdHIhBkEAIQIgLygCAEUEQCAhQajqvmk2AABBBCECCyACICFqIAY6AAAgAkEBciESIAVFBEAgEiAhaiAEQQN0QdAAazoAACACQQJyIRILAkACQAJAAkACQCABQQFrDgMBAgMACyAFRQ0DIBIgIWogTDwAACASQQFqIRIMAwsgEiAhaiBMp0GAAms7AAAgEkECaiESDAILIBIgIWogTD4AACASQQRqIRIMAQsgEiAhaiBMNwAAIBJBCHIhEgsgA0ECNgIAIBIgIWohKCAdIBJrIRRBAiEECyAPBEACQCADKALAEUEARyADKALYECIBIBpHciIGRQRAIAMoAuQQIQEgAygC6BAhBSADKALgECECDAELIAMgAygC5BAiBTYC6BAgAyADQdwQaiIEKAIAIgI2AuAQIAMgASACayIBNgLkECAEIBogAWs2AgAgASAFa0EHSw0AIAMgATYC6BAgASEFCyADIA8gGmoiBDYC2BAgBCACIAVqTSABIAJqIBpNckUEQCADIAQgAmsiAiABIAEgAkobNgLoEAsgBgRAIAMgATYC9BAgA0EANgLAEQsCQCADKAKMAkEBRw0AAkAgGiADKAKQBiIBRgRAIAMoApwGIQEgAygCoAYhBSADKAKYBiECDAELIAMgAygCnAYiBTYCoAYgAyADKAKUBiICNgKYBiADIAEgAmsiATYCnAYgAyAaIAFrNgKUBiABIAVrQQdLDQAgAyABNgKgBiABIQULIAMgBDYCkAYgBCACIAVqTSABIAJqIBpNcg0AIAMgBCACayICIAEgASACShs2AqAGCyADKAK8ASEBIAMoAsQEIRAgAygC3AEEQCA1IBogDxCSAQsgA0HkBWohHkEBIAF0ITEgA0GoFGohGyADQYAVaiE2IAhBnAFqITwgCEEMaiE9IANB3BBqITIgA0HUFGohHCAoIQ4DQCAaIQwgFEEGSQRAQbp/IQIMAwsCfyAMIA8gECI3IA8gEEkbIhBqIhogMigCACIBayIEQYCAgIB6TQRAIAMoAvAQDAELIAMgAygCoAQ2AqgEIAMgAygC7BBBAWo2AuwQIDIgDEEBIAMoAsABIAMoAtQBQQVLa3QiAkEBIAMoArwBdCIEIAIgBEsbIAwgAWsiASACQQFrcSIEakECIAIgAkECTRtBACAEQQJJG2oiAms2AgAgAyABIAJrIgIgAygC4BBqNgLgECADQQIgAygC6BAiASACayABIAJBAmoiBEkbNgLoECADQQIgAygC5BAiASACayABIARJGzYC5BAgAygCtBFBASADKALEAXQgAhDIASADKALUASEBAkACQCADKALEEQ0AIAFBAUYNASABQQNrQQJLDQAgAygCvAJBAUYNAQtBASADKALAAXQhBiADKAK8ESELIAFBBkYEQEEAIQVBACEHIAZBEEgNASAGQRBtIQkDQCALIAVBAnRqIgFBASABKAIAIgYgAmtBACAEIAZNGyAGQQFGGzYCACABQQEgASgCBCIGIAJrQQAgBCAGTRsgBkEBRhs2AgQgAUEBIAEoAggiBiACa0EAIAQgBk0bIAZBAUYbNgIIIAFBASABKAIMIgYgAmtBACAEIAZNGyAGQQFGGzYCDCABQQEgASgCECIGIAJrQQAgBCAGTRsgBkEBRhs2AhAgAUEBIAEoAhQiBiACa0EAIAQgBk0bIAZBAUYbNgIUIAFBASABKAIYIgYgAmtBACAEIAZNGyAGQQFGGzYCGCABQQEgASgCHCIGIAJrQQAgBCAGTRsgBkEBRhs2AhwgAUEBIAEoAiAiBiACa0EAIAQgBk0bIAZBAUYbNgIgIAFBASABKAIkIgYgAmtBACAEIAZNGyAGQQFGGzYCJCABQQEgASgCKCIGIAJrQQAgBCAGTRsgBkEBRhs2AiggAUEBIAEoAiwiBiACa0EAIAQgBk0bIAZBAUYbNgIsIAFBASABKAIwIgYgAmtBACAEIAZNGyAGQQFGGzYCMCABQQEgASgCNCIGIAJrQQAgBCAGTRsgBkEBRhs2AjQgAUEBIAEoAjgiBiACa0EAIAQgBk0bIAZBAUYbNgI4IAFBASABKAI8IgEgAmtBACABIARPGyABQQFGGzYCPCAFQRBqIQUgB0EBaiIHIAlHDQALDAELIAsgBiACEMgBCyADKAL4ECIBBEAgOygCAEEBIAF0IAIQyAELIAMoAqQEIgEgAygCqARLBEAgAyABNgKoBAsgA0EANgKMEiADQQA2AvAQIAMgAygC9BAiASACayICQQAgASACTxs2AvQQIBogMigCACIBayEEQQALIQICQCACIDFqIARPBEAgAiADKALkEEYNAQtBACECIANBADYCjBIgA0EANgLwEAsCQCAMIAFrIgQgAiAxak0EQCADKALoECEBDAELIAMoAugQIgEgBCAxayICSQRAIAMgAjYC6BAgAiEBCyABIAMoAuQQSwRAIAMgATYC5BALIANBADYCjBIgA0EANgLwEAsgASADKAL0EEsEQCADIAE2AvQQCyAPIDdNIRkCQAJAAkACQCADKALsAQRAIAMgDCAQEMsBIgJBiH9LDQcgAg0CAkAgAygC3AUNACADKALoBSADKALkBWtBH0sNACADKALwBSADKALsBWtBCUsNACAMIBAQygFFDQAgDiAMLQAAOgADIA4gEEENdjoAAiAOIBBBA3QgGXJBAnI7AABBBCECDAQLAkACQCAeIAMoAtAQIAMoAtQQIC8gCEEIaiADKAK4EhCiAiICQYh/Sw0AIAgoAghBAkYhJyAOIBRqIS0gAygC1BAiFkGQDmohPiAWQbwZaiE/IBZBjAhqIUAgFkEEaiEzIBZBjA5qIUEgFkG4GWohQiAWQYgIaiFDIAMoAugFIjhBCGshRCADKALsASE5IAMoAvwFIR8gAygC+AUhIyADKAL0BSEkIAMoAvAFIUUgAygC7AUhIiADKAK4EiETIAMoAtAQITRBASEsIBZBighqIUYgFkG6GWohRyAWQY4OaiFIIA4hCyAMISkgAygC5AUiKiEEAkADQEEAIQlBgIABQcgBQQAgJxsiAWshSUGACCABayFKIAtBA2ohFSBFICJrITogLSALa0EDayEwQQAhCgNAAn8gKiA4RgRAQQEhICA6DAELIAQgCkEDdGoiAiBERiEgIAIvAQQhASAKQQFqIQogOiADKAKM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KAK86QEhBwwQCyADKALk6wEiBEUEQCAcKAIADAILIAMoApDrAQ0ZIAMoAtzrASAEIAlBCGogCUEUahDOAiIEDRQMFgsgA0EBNgK06wEgA0IANwPQ6wEgA0IANwLk6wEgA0EANgLY6wEgA0EANgLA6wEgICAJKAIQNgIIICAgCSkCCDcCAEEACyADKALs6gEQmwEhBgJAIAMoAqzrAUUNACADKAKo6wEiBEUNACADKAKY6wFFDQAgCSADKALc6QEiBTYCMCAEKAIEQQFrIhUgCUEwakEEEOUBp3EhByAEKAIAIQQDQCAEIAdBAnRqKAIAIhBFDQEgBSAQKAKo1QEiI0cEQCAHIBVxQQFqIQcgIw0BCwsCQCADKAKU6wEiBEUNACAEKAK41QEhByAEKAK01QEhBQJAAkACQCAEKAIAIhUEQCAFRQ0CIAcgFSAFEQAADAELIAVFDQILIAcgBCAFEQAADAILIBUQFQsgBBAVCyADQQA2ApTrASADQX82AqTrASADIBA2ApjrASADIAMoAtzpATYCnOsBCyAGQYl/TwRAIApBBEkEQCAGIQQMGwsgBiEEIBIoAAAiB0HblcEWaiIOQQJLDRoCfwJAAkACQCADKAKk6wFBAWoOAwIAAQALIAMoApTrASIBBEACQCABKAK41QEhBCABKAK01QEhAgJAAkAgASgCACIGBEAgAkUNASAEIAYgAhEAACAEIAEgAhEAAAwDCyACRQ0BIAQgASACEQAADAILIAYQFQsgARAVCwtBACEFIANBADYCpOsBIANCADcClOsBQQAMAgsgA0EANgKk6wELIAMoApjrASIBRQRAQQAhBUEADAELIAEoAgQhBSABKAIICyEGQUAhBCADKAKQ6wENGgJAIAMoAuDrASIIIAdB4JXBFmoiB0YiAg0AIAMoAtzrASEBAkACQAJAIAhBBWsOAwABAgMLIAEEQCABKAIAEBUgASgCMBAVIAEoAjwQFSABEBULDAILIAEEQCABKAIAEBUgASgCHBAVIAEoAigQFSABEBULDAELIAEEQCABKAIAIggEQCAIKALEqQEgCCAIKALAqQERAAALIAEoAiQiCARAIAEoAmQgCCABKAJgEQAACyABKAIwIggEQCABKAJkIAggASgCYBEAAAsgASgCZCABIAEoAmARAAALCwJAAkACQAJAAkACQCAODgMB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AEcNACAFQQJqIQUgCEECaiEICyAEIAhLBH8gCCAFLQAAIAgtAABGagUgCAsgAmsLIBZqIgJJBEAgACALQQN0aiIFIAI2AgQgBSAYIA1rNgIAIAIgDWogESACIBEgDWtLGyERIAtBAWohCyACQYAgSw0CIAIiByADaiAERg0CCyAbIA0gEnFBA3RqIQUCQAJAIAIgHGotAAAgAiADai0AAEkEQCAQIA02AgAgDSAPSw0BIBdBDGohEAwECyAGIA02AgAgDSAPSwRAIAUhBiACIQwMAgsgF0EMaiEGDAMLIAIhCSAFQQRqIhAhBQsgCkEBayIKRQ0BIAUoAgAiDSAOTw0ACwsgBkEANgIAIBBBADYCACABIBFBCGs2AhwLIBdBEGokACALC3YBAn8jAEEgayICJAAGQAZAIAJBGGohAyACQQxqIAFBBGogASgCABDtAiEBGAEgAyABIAARAAAZIAIkACABLAALQQBIBEAgASgCABAVCwkACyACKAIcIAJBADYCHCABLAALQQBIBEAgASgCABAVCyACQSBqJAALxxUBGH8jAEEQayIcJAACQCABKAIEIg8gASgCHCINaiADSw0AAn8gAyAPayIJIA1NBEAgCQwBCwNAIAEgDSAPaiAEIAlBA0EBED0gDWoiDSAJSQ0ACyADIAEoAgQiD2sLIQwgASAJNgIcIAEoAhAiCSAMQQEgASgCuAF0IghrIAkgDCAJayAISxsgASgCGBshDiABKAK8ASEdIAEoAlwgAygAACIQQbHz3fF5bEEgIAEoAsABa3ZBAnRqIh4oAgAhDUH/HyABKALMASIJIAlB/x9PGyETIAdBAWshCSAPIAEoAgwiEmohGSABKAIIIhYgEmohGiABKAJkIR8gASgCxAEhGwJAIAZBfEsEQAwBCyAMIBJrIRQgBEEBayEXIARBA2shESADQQNqIQggDCAOayEYIAwCfyAGQQNGBEAgBSgCAEEBawwBCyAFIAZBAnRqKAIACyIHayEKAkACfwJAAkAgFCAHQQFrIhVLBEAgCiAOSQ0EIAMgB2soAAAgEHNB////B3ENBCAIIAdrIQcgCCARTwRAIAghCwwDCyAIKAAAIgsgBygAACIKRw0BIAghCwNAIAdBBGohByALQQRqIgsgEU8NAyALKAAAIgogBygAACIQRg0ACyALIAogEHNoQQN2aiAIawwDCyAKIBJrQXxLIBUgGE9yDQMgCiAWaiIHKAAAIBBzQf///wdxDQMgCCAHQQNqIAQgGiAZEA8MAgsgCiALc2hBA3YMAQsCQCALIBdPDQAgBy8AACALLwAARw0AIAdBAmohByALQQJqIQsLIAQgC0sEfyALIActAAAgCy0AAEZqBSALCyAIawtBACELQQNqIgcgCU0NACAAIAc2AgRBASELIABBATYCACAHIBNLDQIgByIJIANqIARGDQILIAwCfyAGQQFqIgdBA0cEQCAFIAdBAnRqKAIADAELIAUoAgBBAWsLIgdrIQoCQCAJAn8gFCAHQQFrIhBNBEAgECAYTwRAIAkhBwwDCyAKIBJrQXxLBEAgCSEHDAMLIAogFmoiBygAACADKAAAc0H///8HcQRAIAkhBwwDCyAIIAdBA2ogBCAaIBkQDwwBCyAKIA5JBEAgCSEHDAILIAMgB2soAAAgAygAAHNB////B3EEQCAJIQcMAgsgCCAHayEKAkAgCCARTwRAIAghBwwBCyAIKAAAIgcgCigAACIQRgRAIAghBwNAIApBBGohCiAHQQRqIgcgEU8NAiAHKAAAIhAgCigAACIVRg0ACyAHIBAgFXNoQQN2aiAIawwCCyAHIBBzaEEDdgwBCwJAIAcgF08NACAKLwAAIAcvAABHDQAgCkECaiEKIAdBAmohBwsgBCAHSwR/IAcgCi0AACAHLQAARmoFIAcLIAhrC0EDaiIHTwRAIAkhBwwBCyAAIAtBA3RqIgkgBzYCBCAJQQI2AgAgC0EBaiELIAMgB2ogBEYgByATS3INAgsgDAJ/IAZBAmoiBkEDRwRAIAUgBkECdGooAgAMAQsgBSgCAEEBawsiBmshBSAHAn8gFCAGQQFrIglNBEAgCSAYTwRAIAchCQwDCyAFIBJrQXxLBEAgByEJDAMLIAUgFmoiBSgAACADKAAAc0H///8HcQRAIAchCQwDCyAIIAVBA2ogBCAaIBkQDwwBCyAFIA5JBEAgByEJDAILIAMgBmsoAAAgAygAAHNB////B3EEQCAHIQkMAgsgCCAGayEFAkAgCCARTwRAIAghBgwBCyAIKAAAIgYgBSgAACIJRgRAIAghBgNAIAVBBGohBSAGQQRqIgYgEU8NAiAGKAAAIgkgBSgAACIKRg0ACyAGIAkgCnNoQQN2aiAIawwCCyAGIAlzaEEDdgwBCwJAIAYgF08NACAFLwAAIAYvAABHDQAgBUECaiEFIAZBAmohBgsgBCAGSwR/IAYgBS0AACAGLQAARmoFIAYLIAhrC0EDaiIJTwRAIAchCQwBCyAAIAtBA3RqIgUgCTYCBCAFQQM2AgAgC0EBaiELIAMgCWogBEYgCSATS3INAQtBASAOIA5BAU0bIRQgAQJ/AkAgCUECSw0AQSAgASgCIGshBiADKAAAIQ4gASgCYCEKAkAgAigCACIFIAxPDQAgDCAFIghrQQNxIhEEQEEAIQcDQCAKIAggD2ooAABBgPqerQNsIAZ2QQJ0aiAINgIAIAhBAWohCCAHQQFqIgcgEUcNAAsLIAUgDGtBfEsNAANAIAogCCAPaigAAEGA+p6tA2wgBnZBAnRqIAg2AgAgCiAPIAhBAWoiBWooAABBgPqerQNsIAZ2QQJ0aiAFNgIAIAogDyAIQQJqIgVqKAAAQYD6nq0DbCAGdkECdGogBTYCACAKIA8gCEEDaiIFaigAAEGA+p6tA2wgBnZBAnRqIAU2AgAgCEEEaiIIIAxJDQALCyACIAw2AgAgCiAOQYD6nq0DbCAGdkECdGooAgAiAiAUSQ0AIAwgAmsiBUH//w9LDQACfwJAAkAgAiASTwRAIAIgD2ohBiADIARBA2siAk8EQCADIQgMAwsgBigAACIHIA5HDQEgAyEIA0AgBkEEaiEGIAhBBGoiCCACTw0DIAgoAAAiByAGKAAAIgpGDQALIAggByAKc2hBA3ZqIANrDAMLIAMgAiAWaiAEIBogGRAPDAILIAcgDnNoQQN2DAELAkAgCCAEQQFrTw0AIAYvAAAgCC8AAEcNACAGQQJqIQYgCEECaiEICyAEIAhLBH8gCCAGLQAAIAgtAABGagUgCAsgA2sLIghBA0kNACAAIAg2AgQgACAFQQNqNgIAIAggE00EQEEBIQsgCCEJIAMgCGogBEcNAQtBASELIAxBAWoMAQsgDEEJaiEKIB8gDEF/IB1BAWt0QX9zIhNxQQN0aiIRQQRqIQcgHiAMNgIAAkAgDSAUSQ0AIAwgE2siAkEAIAIgDE0bIRdBASAbdCEYIAxBA2ohHSAEQQFrIR4gBEEDayEQQQAhDEEAIQIDQCADIAwgAiACIAxLGyIOaiEFAn8CQCASIA0gDmpNBEAgDSAPaiAOaiEGIAUgEE8EQCAFIQgMAgsgBSIIKAAAIhsgBigAACIVRwRAIBUgG3NoQQN2IA5qIQggDwwDCwNAIAZBBGohBiAIQQRqIgggEE8NAiAIKAAAIhsgBigAACIVRg0ACyAIIBUgG3NoQQN2aiAFayAOaiEIIA8MAgsgFiAPIAUgDSAWaiAOaiAEIBogGRAPIA5qIgggDWogEkkbDAELAkAgCCAeTw0AIAYvAAAgCC8AAEcNACAGQQJqIQYgCEECaiEICyAEIAhLBH8gCCAGLQAAIAgtAABGagUgCAsgBWsgDmohCCAPCyEFIAggCUsEQCAAIAtBA3RqIgYgCDYCBCAGIB0gDWs2AgAgCCANaiAKIAggCiANa0sbIQogC0EBaiELIAhBgCBLDQIgCCEJIAMgCGogBEYNAgsgHyANIBNxQQN0aiEGAkACQCAFIA1qIAhqLQAAIAMgCGotAABJBEAgESANNgIAIA0gF0sNASAcQQxqIREMBAsgByANNgIAIA0gF0sEQCAGIQcgCCECDAILIBxBDGohBwwDCyAIIQwgBkEEaiIRIQYLIBhBAWsiGEUNASAGKAIAIg0gFE8NAAsLIAdBADYCACARQQA2AgAgCkEIaws2AhwLIBxBEGokACALC9YQARh/IwBBEGsiGiQAAkAgASgCBCIQIAEoAhwiDGogA0sNAAJ/IAMgEGsiAiAMTQRAIAIMAQsDQCABIAwgEGogBCACQQRBARA9IAxqIgwgAkkNAAsgAyABKAIEIhBrCyEJIAEgAjYCHCABKAIQIgIgCUEBIAEoArgBdCIIayACIAkgAmsgCEsbIAEoAhgbIQ8gASgCvAEhGyABKAJcIAMoAAAiDkGx893xeWxBICABKALAAWt2QQJ0aiIcKAIAIQwgB0EBayEHIBAgASgCDCISaiEYIAEoAggiFyASaiEZIAEoAmQhHyABKALEASEdAkAgBkF8SwRADAELIAEoAswBIghB/x9JIQsgCSASayERIAhB/x8gCxshFCAEQQFrIRUgBEEDayENIANBBGohCCAJIA9rIRYgCQJ/IAZBA0YEQCAFKAIAQQFrDAELIAUgBkECdGooAgALIgJrIQoCQAJ/AkACQCARIAJBAWsiE0sEQEEAIQsgCiAPSQ0EIA4gAyACaygAAEcNBCAIIAJrIQsgCCANTwRAIAghAgwDCyAIKAAAIgIgCygAACIKRw0BIAghAgNAIAtBBGohCyACQQRqIgIgDU8NAyACKAAAIgogCygAACIORg0ACyACIAogDnNoQQN2aiAIawwDC0EAIQsgCiASa0F8SyATIBZPcg0DIA4gCiAXaiICKAAARw0DIAggAkEEaiAEIBkgGBAPDAILIAIgCnNoQQN2DAELAkAgAiAVTw0AIAsvAAAgAi8AAEcNACALQQJqIQsgAkECaiECCyACIARJBH8gAiALLQAAIAItAABGagUgAgsgCGsLQQAhC0EEaiICIAdNDQAgACACNgIEQQEhCyAAQQE2AgAgAiAUSw0CIAIiByADaiAERg0CCyAJAn8gBkEBaiICQQNHBEAgBSACQQJ0aigCAAwBCyAFKAIAQQFrCyICayEKAkAgBwJ/IBEgAkEBayIOTQRAIA4gFk8EQCAHIQIMAwsgCiASa0F8SwRAIAchAgwDCyADKAAAIAogF2oiAigAAEcEQCAHIQIMAwsgCCACQQRqIAQgGSAYEA8MAQsgCiAPSQRAIAchAgwCCyADKAAAIAMgAmsoAABHBEAgByECDAILIAggAmshCgJAIAggDU8EQCAIIQIMAQsgCCgAACICIAooAAAiDkYEQCAIIQIDQCAKQQRqIQogAkEEaiICIA1PDQIgAigAACIOIAooAAAiE0YNAAsgAiAOIBNzaEEDdmogCGsMAgsgAiAOc2hBA3YMAQsCQCACIBVPDQAgCi8AACACLwAARw0AIApBAmohCiACQQJqIQILIAIgBEkEfyACIAotAAAgAi0AAEZqBSACCyAIawtBBGoiAk8EQCAHIQIMAQsgACALQQN0aiIHIAI2AgQgB0ECNgIAIAtBAWohCyACIANqIARGIAIgFEtyDQILIAkCfyAGQQJqIgZBA0cEQCAFIAZBAnRqKAIADAELIAUoAgBBAWsLIgZrIQUgAgJ/IBEgBkEBayIHTQRAIAcgFk8EQCACIQcMAwsgBSASa0F8SwRAIAIhBwwDCyADKAAAIAUgF2oiBSgAAEcEQCACIQcMAwsgCCAFQQRqIAQgGSAYEA8MAQsgBSAPSQRAIAIhBwwCCyADKAAAIAMgBmsoAABHBEAgAiEHDAILIAggBmshBQJAIAggDU8EQCAIIQYMAQsgCCgAACIGIAUoAAAiB0YEQCAIIQYDQCAFQQRqIQUgBkEEaiIGIA1PDQIgBigAACIHIAUoAAAiCkYNAAsgBiAHIApzaEEDdmogCGsMAgsgBiAHc2hBA3YMAQsCQCAGIBVPDQAgBS8AACAGLwAARw0AIAVBAmohBSAGQQJqIQYLIAQgBksEfyAGIAUtAAAgBi0AAEZqBSAGCyAIawtBBGoiB08EQCACIQcMAQsgACALQQN0aiICIAc2AgQgAkEDNgIAIAtBAWohCyADIAdqIARGIAcgFEtyDQELIAlBCWohCiAfIAlBfyAbQQFrdEF/cyIUcUEDdGoiEUEEaiEIIBwgCTYCAAJAIAxBASAPIA9BAU0bIhtJDQAgCSAUayICQQAgAiAJTRshFUEBIB10IRYgCUEDaiEcIARBAWshHSAEQQNrIQ5BACECQQAhDwNAIAMgAiAPIAIgD0kbIg1qIQYCfwJAIBIgDCANak0EQCAMIBBqIA1qIQkgBiAOTwRAIAYhBQwCCyAGIgUoAAAiEyAJKAAAIh5HBEAgEyAec2hBA3YgDWohBSAQDAMLA0AgCUEEaiEJIAVBBGoiBSAOTw0CIAUoAAAiEyAJKAAAIh5GDQALIAUgEyAec2hBA3ZqIAZrIA1qIQUgEAwCCyAXIBAgBiAMIBdqIA1qIAQgGSAYEA8gDWoiBSAMaiASSRsMAQsCQCAFIB1PDQAgCS8AACAFLwAARw0AIAlBAmohCSAFQQJqIQULIAQgBUsEfyAFIAktAAAgBS0AAEZqBSAFCyAGayANaiEFIBALIQYgBSAHSwRAIAAgC0EDdGoiByAFNgIEIAcgHCAMazYCACAFIAxqIAogBSAKIAxrSxshCiALQQFqIQsgBUGAIEsNAiAFIQcgAyAFaiAERg0CCyAfIAwgFHFBA3RqIQkCQAJAIAYgDGogBWotAAAgAyAFai0AAEkEQCARIAw2AgAgDCAVSw0BIBpBDGohEQwECyAIIAw2AgAgDCAVSwRAIAkhCCAFIQ8MAgsgGkEMaiEIDAMLIAUhAiAJQQRqIhEhCQsgFkEBayIWRQ0BIAkoAgAiDCAbTw0ACwsgCEEANgIAIBFBADYCACABIApBCGs2AhwLIBpBEGokACALC+UQAhh/AX4jAEEQayIaJAACQCABKAIEIhAgASgCHCIMaiADSw0AAn8gAyAQayICIAxNBEAgAgwBCwNAIAEgDCAQaiAEIAJBBUEBED0gDGoiDCACSQ0ACyADIAEoAgQiEGsLIQkgASACNgIcIAEoAhAiAiAJQQEgASgCuAF0IghrIAIgCSACayAISxsgASgCGBshDyABKAK8ASEbIAEoAlwgAykAACIgQoCAgNjLm++NT35BwAAgASgCwAFrrYinQQJ0aiIcKAIAIQwgB0EBayEHIBAgASgCDCISaiEYIAEoAggiFyASaiEZIAEoAmQhHyABKALEASEdAkAgBkF8SwRADAELIAEoAswBIghB/x9JIQsgCSASayERIAhB/x8gCxshFCAgpyEOIARBAWshFSAEQQNrIQ0gA0EEaiEIIAkgD2shFiAJAn8gBkEDRgRAIAUoAgBBAWsMAQsgBSAGQQJ0aigCAAsiAmshCgJAAn8CQAJAIBEgAkEBayITSwRAQQAhCyAKIA9JDQQgAyACaygAACAORw0EIAggAmshCyAIIA1PBEAgCCECDAMLIAsoAAAiAiAgQiCIpyIKRw0BIAghAgNAIAtBBGohCyACQQRqIgIgDU8NAyACKAAAIgogCygAACIORg0ACyACIAogDnNoQQN2aiAIawwDC0EAIQsgCiASa0F8SyATIBZPcg0DIAogF2oiAigAACAORw0DIAggAkEEaiAEIBkgGBAPDAILIAIgCnNoQQN2DAELAkAgAiAVTw0AIAsvAAAgAi8AAEcNACALQQJqIQsgAkECaiECCyACIARJBH8gAiALLQAAIAItAABGagUgAgsgCGsLQQAhC0EEaiICIAdNDQAgACACNgIEQQEhCyAAQQE2AgAgAiAUSw0CIAIiByADaiAERg0CCyAJAn8gBkEBaiICQQNHBEAgBSACQQJ0aigCAAwBCyAFKAIAQQFrCyICayEKAkAgBwJ/IBEgAkEBayIOTQRAIA4gFk8EQCAHIQIMAwsgCiASa0F8SwRAIAchAgwDCyADKAAAIAogF2oiAigAAEcEQCAHIQIMAwsgCCACQQRqIAQgGSAYEA8MAQsgCiAPSQRAIAchAgwCCyADKAAAIAMgAmsoAABHBEAgByECDAILIAggAmshCgJAIAggDU8EQCAIIQIMAQsgCCgAACICIAooAAAiDkYEQCAIIQIDQCAKQQRqIQogAkEEaiICIA1PDQIgAigAACIOIAooAAAiE0YNAAsgAiAOIBNzaEEDdmogCGsMAgsgAiAOc2hBA3YMAQsCQCACIBVPDQAgCi8AACACLwAARw0AIApBAmohCiACQQJqIQILIAIgBEkEfyACIAotAAAgAi0AAEZqBSACCyAIawtBBGoiAk8EQCAHIQIMAQsgACALQQN0aiIHIAI2AgQgB0ECNgIAIAtBAWohCyACIANqIARGIAIgFEtyDQILIAkCfyAGQQJqIgZBA0cEQCAFIAZBAnRqKAIADAELIAUoAgBBAWsLIgZrIQUgAgJ/IBEgBkEBayIHTQRAIAcgFk8EQCACIQcMAwsgBSASa0F8SwRAIAIhBwwDCyADKAAAIAUgF2oiBSgAAEcEQCACIQcMAwsgCCAFQQRqIAQgGSAYEA8MAQsgBSAPSQRAIAIhBwwCCyADKAAAIAMgBmsoAABHBEAgAiEHDAILIAggBmshBQJAIAggDU8EQCAIIQYMAQsgCCgAACIGIAUoAAAiB0YEQCAIIQYDQCAFQQRqIQUgBkEEaiIGIA1PDQIgBigAACIHIAUoAAAiCkYNAAsgBiAHIApzaEEDdmogCGsMAgsgBiAHc2hBA3YMAQsCQCAGIBVPDQAgBS8AACAGLwAARw0AIAVBAmohBSAGQQJqIQYLIAQgBksEfyAGIAUtAAAgBi0AAEZqBSAGCyAIawtBBGoiB08EQCACIQcMAQsgACALQQN0aiICIAc2AgQgAkEDNgIAIAtBAWohCyADIAdqIARGIAcgFEtyDQELIAlBCWohCiAfIAlBfyAbQQFrdEF/cyIUcUEDdGoiEUEEaiEIIBwgCTYCAAJAIAxBASAPIA9BAU0bIhtJDQAgCSAUayICQQAgAiAJTRshFUEBIB10IRYgCUEDaiEcIARBAWshHSAEQQNrIQ5BACECQQAhDwNAIAMgAiAPIAIgD0kbIg1qIQYCfwJAIBIgDCANak0EQCAMIBBqIA1qIQkgBiAOTwRAIAYhBQwCCyAGIgUoAAAiEyAJKAAAIh5HBEAgEyAec2hBA3YgDWohBSAQDAMLA0AgCUEEaiEJIAVBBGoiBSAOTw0CIAUoAAAiEyAJKAAAIh5GDQALIAUgEyAec2hBA3ZqIAZrIA1qIQUgEAwCCyAXIBAgBiAMIBdqIA1qIAQgGSAYEA8gDWoiBSAMaiASSRsMAQsCQCAFIB1PDQAgCS8AACAFLwAARw0AIAlBAmohCSAFQQJqIQULIAQgBUsEfyAFIAktAAAgBS0AAEZqBSAFCyAGayANaiEFIBALIQYgBSAHSwRAIAAgC0EDdGoiByAFNgIEIAcgHCAMazYCACAFIAxqIAogBSAKIAxrSxshCiALQQFqIQsgBUGAIEsNAiAFIQcgAyAFaiAERg0CCyAfIAwgFHFBA3RqIQkCQAJAIAYgDGogBWotAAAgAyAFai0AAEkEQCARIAw2AgAgDCAVSw0BIBpBDGohEQwECyAIIAw2AgAgDCAVSwRAIAkhCCAFIQ8MAgsgGkEMaiEIDAMLIAUhAiAJQQRqIhEhCQsgFkEBayIWRQ0BIAkoAgAiDCAbTw0ACwsgCEEANgIAIBFBADYCACABIApBCGs2AhwLIBpBEGokACALC+UQAhh/AX4jAEEQayIaJAACQCABKAIEIhAgASgCHCIMaiADSw0AAn8gAyAQayICIAxNBEAgAgwBCwNAIAEgDCAQaiAEIAJBBkEBED0gDGoiDCACSQ0ACyADIAEoAgQiEGsLIQkgASACNgIcIAEoAhAiAiAJQQEgASgCuAF0IghrIAIgCSACayAISxsgASgCGBshDyABKAK8ASEbIAEoAlwgAykAACIgQoCA7PzLm++NT35BwAAgASgCwAFrrYinQQJ0aiIcKAIAIQwgB0EBayEHIBAgASgCDCISaiEYIAEoAggiFyASaiEZIAEoAmQhHyABKALEASEdAkAgBkF8SwRADAELIAEoAswBIghB/x9JIQsgCSASayERIAhB/x8gCxshFCAgpyEOIARBAWshFSAEQQNrIQ0gA0EEaiEIIAkgD2shFiAJAn8gBkEDRgRAIAUoAgBBAWsMAQsgBSAGQQJ0aigCAAsiAmshCgJAAn8CQAJAIBEgAkEBayITSwRAQQAhCyAKIA9JDQQgAyACaygAACAORw0EIAggAmshCyAIIA1PBEAgCCECDAMLIAsoAAAiAiAgQiCIpyIKRw0BIAghAgNAIAtBBGohCyACQQRqIgIgDU8NAyACKAAAIgogCygAACIORg0ACyACIAogDnNoQQN2aiAIawwDC0EAIQsgCiASa0F8SyATIBZPcg0DIAogF2oiAigAACAORw0DIAggAkEEaiAEIBkgGBAPDAILIAIgCnNoQQN2DAELAkAgAiAVTw0AIAsvAAAgAi8AAEcNACALQQJqIQsgAkECaiECCyACIARJBH8gAiALLQAAIAItAABGagUgAgsgCGsLQQAhC0EEaiICIAdNDQAgACACNgIEQQEhCyAAQQE2AgAgAiAUSw0CIAIiByADaiAERg0CCyAJAn8gBkEBaiICQQNHBEAgBSACQQJ0aigCAAwBCyAFKAIAQQFrCyICayEKAkAgBwJ/IBEgAkEBayIOTQRAIA4gFk8EQCAHIQIMAwsgCiASa0F8SwRAIAchAgwDCyADKAAAIAogF2oiAigAAEcEQCAHIQIMAwsgCCACQQRqIAQgGSAYEA8MAQsgCiAPSQRAIAchAgwCCyADKAAAIAMgAmsoAABHBEAgByECDAILIAggAmshCgJAIAggDU8EQCAIIQIMAQsgCCgAACICIAooAAAiDkYEQCAIIQIDQCAKQQRqIQogAkEEaiICIA1PDQIgAigAACIOIAooAAAiE0YNAAsgAiAOIBNzaEEDdmogCGsMAgsgAiAOc2hBA3YMAQsCQCACIBVPDQAgCi8AACACLwAARw0AIApBAmohCiACQQJqIQILIAIgBEkEfyACIAotAAAgAi0AAEZqBSACCyAIawtBBGoiAk8EQCAHIQIMAQsgACALQQN0aiIHIAI2AgQgB0ECNgIAIAtBAWohCyACIANqIARGIAIgFEtyDQILIAkCfyAGQQJqIgZBA0cEQCAFIAZBAnRqKAIADAELIAUoAgBBAWsLIgZrIQUgAgJ/IBEgBkEBayIHTQRAIAcgFk8EQCACIQcMAwsgBSASa0F8SwRAIAIhBwwDCyADKAAAIAUgF2oiBSgAAEcEQCACIQcMAwsgCCAFQQRqIAQgGSAYEA8MAQsgBSAPSQRAIAIhBwwCCyADKAAAIAMgBmsoAABHBEAgAiEHDAILIAggBmshBQJAIAggDU8EQCAIIQYMAQsgCCgAACIGIAUoAAAiB0YEQCAIIQYDQCAFQQRqIQUgBkEEaiIGIA1PDQIgBigAACIHIAUoAAAiCkYNAAsgBiAHIApzaEEDdmogCGsMAgsgBiAHc2hBA3YMAQsCQCAGIBVPDQAgBS8AACAGLwAARw0AIAVBAmohBSAGQQJqIQYLIAQgBksEfyAGIAUtAAAgBi0AAEZqBSAGCyAIawtBBGoiB08EQCACIQcMAQsgACALQQN0aiICIAc2AgQgAkEDNgIAIAtBAWohCyADIAdqIARGIAcgFEtyDQELIAlBCWohCiAfIAlBfyAbQQFrdEF/cyIUcUEDdGoiEUEEaiEIIBwgCTYCAAJAIAxBASAPIA9BAU0bIhtJDQAgCSAUayICQQAgAiAJTRshFUEBIB10IRYgCUEDaiEcIARBAWshHSAEQQNrIQ5BACECQQAhDwNAIAMgAiAPIAIgD0kbIg1qIQYCfwJAIBIgDCANak0EQCAMIBBqIA1qIQkgBiAOTwRAIAYhBQwCCyAGIgUoAAAiEyAJKAAAIh5HBEAgEyAec2hBA3YgDWohBSAQDAMLA0AgCUEEaiEJIAVBBGoiBSAOTw0CIAUoAAAiEyAJKAAAIh5GDQALIAUgEyAec2hBA3ZqIAZrIA1qIQUgEAwCCyAXIBAgBiAMIBdqIA1qIAQgGSAYEA8gDWoiBSAMaiASSRsMAQsCQCAFIB1PDQAgCS8AACAFLwAARw0AIAlBAmohCSAFQQJqIQULIAQgBUsEfyAFIAktAAAgBS0AAEZqBSAFCyAGayANaiEFIBALIQYgBSAHSwRAIAAgC0EDdGoiByAFNgIEIAcgHCAMazYCACAFIAxqIAogBSAKIAxrSxshCiALQQFqIQsgBUGAIEsNAiAFIQcgAyAFaiAERg0CCyAfIAwgFHFBA3RqIQkCQAJAIAYgDGogBWotAAAgAyAFai0AAEkEQCARIAw2AgAgDCAVSw0BIBpBDGohEQwECyAIIAw2AgAgDCAVSwRAIAkhCCAFIQ8MAgsgGkEMaiEIDAMLIAUhAiAJQQRqIhEhCQsgFkEBayIWRQ0BIAkoAgAiDCAbTw0ACwsgCEEANgIAIBFBADYCACABIApBCGs2AhwLIBpBEGokACALC/QXAR9/IwBBEGsiHyQAAkAgASgCBCIOIAEoAhwiCGogA0sNAAJ/IAMgDmsiCSAITQRAIAkMAQsDQCABIAggDmogBCAJQQNBABA9IAhqIgggCUkNAAsgAyABKAIEIg5rCyEMIAEgCTYCHCABKAJcIAMoAAAiEUGx893xeWxBICABKALAAWt2QQJ0aiIgKAIAIQ8gASgCZCEjIAEoArwBISEgASgCtAEiFSgCECEaIBUoArwBISUgASgCECIJIAxBASABKAK4AXQiCGsgCSAMIAlrIAhLGyABKAIYGyIQIBUoAgAiHCAVKAIEIiRrIiJrIR1B/x8gASgCzAEiCSAJQf8fTxshEiAHQQFrIQkgDiABKAIMIhNqIR4gASgCxAEhGyAVKALAASEmAkAgBkF8SwRADAELIAwgE2shFiAkIB1rIRcgBEEBayEYIARBA2shDSADQQNqIQggDCAaIB1qayEZIAwCfyAGQQNGBEAgBSgCAEEBawwBCyAFIAZBAnRqKAIACyIHayEKAkACfwJAAkAgFiAHQQFrIhRLBEAgCiAQSQ0EIAMgB2soAAAgEXNB////B3ENBCAIIAdrIQsgCCANTwRAIAghBwwDCyAIKAAAIgcgCygAACIKRw0BIAghBwNAIAtBBGohCyAHQQRqIgcgDU8NAyAHKAAAIgogCygAACIRRg0ACyAHIAogEXNoQQN2aiAIawwDCyAKIBNrQXxLIBQgGU9yDQMgCiAXaiIHKAAAIBFzQf///wdxDQMgCCAHQQNqIAQgHCAeEA8MAgsgByAKc2hBA3YMAQsCQCAHIBhPDQAgCy8AACAHLwAARw0AIAtBAmohCyAHQQJqIQcLIAQgB0sEfyAHIAstAAAgBy0AAEZqBSAHCyAIawtBACELQQNqIgcgCU0NACAAIAc2AgRBASELIABBATYCACAHIBJLDQIgByIJIANqIARGDQILIAwCfyAGQQFqIgdBA0cEQCAFIAdBAnRqKAIADAELIAUoAgBBAWsLIgdrIQoCQCAJAn8gFiAHQQFrIhFNBEAgESAZTwRAIAkhBwwDCyAKIBNrQXxLBEAgCSEHDAMLIAogF2oiBygAACADKAAAc0H///8HcQRAIAkhBwwDCyAIIAdBA2ogBCAcIB4QDwwBCyAKIBBJBEAgCSEHDAILIAMgB2soAAAgAygAAHNB////B3EEQCAJIQcMAgsgCCAHayEKAkAgCCANTwRAIAghBwwBCyAIKAAAIgcgCigAACIRRgRAIAghBwNAIApBBGohCiAHQQRqIgcgDU8NAiAHKAAAIhEgCigAACIURg0ACyAHIBEgFHNoQQN2aiAIawwCCyAHIBFzaEEDdgwBCwJAIAcgGE8NACAKLwAAIAcvAABHDQAgCkECaiEKIAdBAmohBwsgBCAHSwR/IAcgCi0AACAHLQAARmoFIAcLIAhrC0EDaiIHTwRAIAkhBwwBCyAAIAtBA3RqIgkgBzYCBCAJQQI2AgAgC0EBaiELIAMgB2ogBEYgByASS3INAgsgDAJ/IAZBAmoiBkEDRwRAIAUgBkECdGooAgAMAQsgBSgCAEEBawsiBmshBSAHAn8gFiAGQQFrIglNBEAgCSAZTwRAIAchCQwDCyAFIBNrQXxLBEAgByEJDAMLIAUgF2oiBSgAACADKAAAc0H///8HcQRAIAchCQwDCyAIIAVBA2ogBCAcIB4QDwwBCyAFIBBJBEAgByEJDAILIAMgBmsoAAAgAygAAHNB////B3EEQCAHIQkMAgsgCCAGayEFAkAgCCANTwRAIAghBgwBCyAIKAAAIgYgBSgAACIJRgRAIAghBgNAIAVBBGohBSAGQQRqIgYgDU8NAiAGKAAAIgkgBSgAACIKRg0ACyAGIAkgCnNoQQN2aiAIawwCCyAGIAlzaEEDdgwBCwJAIAYgGE8NACAFLwAAIAYvAABHDQAgBUECaiEFIAZBAmohBgsgBCAGSwR/IAYgBS0AACAGLQAARmoFIAYLIAhrC0EDaiIJTwRAIAchCQwBCyAAIAtBA3RqIgUgCTYCBCAFQQM2AgAgC0EBaiELIAMgCWogBEYgCSASS3INAQtBASAQIBBBAU0bIRMgAQJ/AkAgCUECSw0AQSAgASgCIGshByADKAAAIRAgASgCYCENAkAgAigCACIGIAxPDQAgDCAGIghrQQNxIgoEQEEAIQUDQCANIAggDmooAABBgPqerQNsIAd2QQJ0aiAINgIAIAhBAWohCCAFQQFqIgUgCkcNAAsLIAYgDGtBfEsNAANAIA0gCCAOaigAAEGA+p6tA2wgB3ZBAnRqIAg2AgAgDSAOIAhBAWoiBWooAABBgPqerQNsIAd2QQJ0aiAFNgIAIA0gDiAIQQJqIgVqKAAAQYD6nq0DbCAHdkECdGogBTYCACANIA4gCEEDaiIFaigAAEGA+p6tA2wgB3ZBAnRqIAU2AgAgCEEEaiIIIAxJDQALCyACIAw2AgAgDSAQQYD6nq0DbCAHdkECdGooAgAiAiATSQ0AIAwgAmsiBUH//w9LDQAgAiAOaiEGAn8CQCADIARBA2siAk8EQCADIQgMAQsgECAGKAAAIgdGBEAgAyEIA0AgBkEEaiEGIAhBBGoiCCACTw0CIAgoAAAiByAGKAAAIg1GDQALIAggByANc2hBA3ZqIANrDAILIAcgEHNoQQN2DAELAkAgCCAEQQFrTw0AIAYvAAAgCC8AAEcNACAGQQJqIQYgCEECaiEICyAEIAhLBH8gCCAGLQAAIAgtAABGagUgCAsgA2sLIghBA0kNACAAIAg2AgQgACAFQQNqNgIAIAggEk0EQEEBIQsgCCEJIAMgCGogBEcNAQtBASELIAxBAWoMAQsgDEEJaiESICMgDEF/ICFBAWt0QX9zIhZxQQN0aiEKQQEgG3QhAiAgIAw2AgACQAJAAkAgDyATSQRAIApCADcCAAwBCyAMIBZrIgVBACAFIAxNGyEXIApBBGohByAMQQNqIREgBEEBayEgIARBA2shGEEAIQ1BACEQA0AgDiAPaiIhIA0gECANIBBJGyIZaiEGIAkCfwJAIAMgGWoiBSAYTwRAIAUhCAwBCyAFIggoAAAiGyAGKAAAIhRHBEAgFCAbc2hBA3YMAgsDQCAGQQRqIQYgCEEEaiIIIBhPDQEgCCgAACIbIAYoAAAiFEYNAAsgCCAUIBtzaEEDdmogBWsMAQsCQCAIICBPDQAgBi8AACAILwAARw0AIAZBAmohBiAIQQJqIQgLIAQgCEsEfyAIIAYtAAAgCC0AAEZqBSAICyAFawsgGWoiBUkEQCAAIAtBA3RqIgYgBTYCBCAGIBEgD2s2AgAgBSAPaiASIAUgEiAPa0sbIRIgC0EBaiELIAMgBWogBEYgBUGAIEtyDQMgBSEJCyAjIA8gFnFBA3RqIQYCQAJAAkAgBSAhai0AACADIAVqLQAASQRAIAogDzYCACAPIBdLDQEgH0EMaiEKDAMLIAcgDzYCACAPIBdLBEAgBiEHIAUhEAwCCyAfQQxqIQcMAgsgBSENIAZBBGoiCiEGCyACQQFrIgJFDQAgBigCACIPIBNPDQELCyAHQQA2AgAgCkEANgIAIAJFDQILIBUoAlwgAygAAEGx893xeWxBICAma3ZBAnRqKAIAIgYgGk0NASAiQX8gJUEBa3RBf3MiB2sgGiAiIBprIAdLGyENIA4gHWohECAVKAJkIQogDEEDaiEMQQAhDkEAIQ8DQCAJIAMgDiAPIA4gD0kbIgVqIAYgJGoiCCAFaiAEIBwgHhAPIAVqIgVJBEAgACALQQN0aiIJIAU2AgQgCSAMIAYgHWoiCWs2AgAgBSAJaiASIAUgEiAJa0sbIRIgC0EBaiELIAVBgCBLDQMgBSIJIANqIARGDQMLIAYgDU0NAiACQQFrIgJFDQIgBSAOIAggBiAQaiAFIAZqICJJGyAFai0AACADIAVqLQAASSIIGyEOIA8gBSAIGyEPIAogBiAHcUEDdGogCEECdGooAgAiBiAaSw0ACwwBCyAHQQA2AgAgCkEANgIACyASQQhrCzYCHAsgH0EQaiQAIAsLlhMBIH8jAEEQayIiJAACQCABKAIEIhUgASgCHCIIaiADSw0AAn8gAyAVayICIAhNBEAgAgwBCwNAIAEgCCAVaiAEIAJBBEEAED0gCGoiCCACSQ0ACyADIAEoAgQiFWsLIQ0gASACNgIcIAEoAlwgAygAACIOQbHz3fF5bEEgIAEoAsABa3ZBAnRqIhYoAgAhDCABKAJkISQgASgCvAEhECABKAK0ASIXKAIQIRsgFygCvAEhJiABKAIQIgggDUEBIAEoArgBdCICayAIIA0gCGsgAksbIAEoAhgbIhwgFygCACIfIBcoAgQiJWsiI2shICAHQQFrIQIgFSABKAIMIhFqISEgASgCxAEhEiAXKALAASEnAkAgBkF8SwRADAELIAEoAswBIglB/x9JIQggDSARayEYICUgIGshGSAJQf8fIAgbIRogBEEBayEdIARBA2shDyADQQRqIQggDSAbICBqayEeIA0CfyAGQQNGBEAgBSgCAEEBawwBCyAFIAZBAnRqKAIACyIHayEJAkACfwJAAkAgGCAHQQFrIgtLBEAgCSAcSQ0EIA4gAyAHaygAAEcNBCAIIAdrIQogCCAPTwRAIAghBwwDCyAIKAAAIgsgCigAACIHRw0BIAghBwNAIApBBGohCiAHQQRqIgcgD08NAyAHKAAAIgkgCigAACILRg0ACyAHIAkgC3NoQQN2aiAIawwDCyAJIBFrQXxLIAsgHk9yDQMgDiAJIBlqIgcoAABHDQMgCCAHQQRqIAQgHyAhEA8MAgsgByALc2hBA3YMAQsCQCAHIB1PDQAgCi8AACAHLwAARw0AIApBAmohCiAHQQJqIQcLIAQgB0sEfyAHIAotAAAgBy0AAEZqBSAHCyAIawtBACEKQQRqIgcgAk0NACAAIAc2AgRBASEKIABBATYCACAHIBpLDQIgByICIANqIARGDQILIA0CfyAGQQFqIgdBA0cEQCAFIAdBAnRqKAIADAELIAUoAgBBAWsLIgdrIQkCQCACAn8gGCAHQQFrIgtNBEAgCyAeTwRAIAIhBwwDCyAJIBFrQXxLBEAgAiEHDAMLIAMoAAAgCSAZaiIHKAAARwRAIAIhBwwDCyAIIAdBBGogBCAfICEQDwwBCyAJIBxJBEAgAiEHDAILIAMoAAAgAyAHaygAAEcEQCACIQcMAgsgCCAHayEOAkAgCCAPTwRAIAghBwwBCyAIKAAAIgsgDigAACIHRgRAIAghBwNAIA5BBGohDiAHQQRqIgcgD08NAiAHKAAAIgkgDigAACILRg0ACyAHIAkgC3NoQQN2aiAIawwCCyAHIAtzaEEDdgwBCwJAIAcgHU8NACAOLwAAIAcvAABHDQAgDkECaiEOIAdBAmohBwsgBCAHSwR/IAcgDi0AACAHLQAARmoFIAcLIAhrC0EEaiIHTwRAIAIhBwwBCyAAIApBA3RqIgIgBzYCBCACQQI2AgAgCkEBaiEKIAMgB2ogBEYgByAaS3INAgsgDQJ/IAZBAmoiAkEDRwRAIAUgAkECdGooAgAMAQsgBSgCAEEBawsiBmshBSAHAn8gGCAGQQFrIgJNBEAgAiAeTwRAIAchAgwDCyAFIBFrQXxLBEAgByECDAMLIAMoAAAgBSAZaiICKAAARwRAIAchAgwDCyAIIAJBBGogBCAfICEQDwwBCyAFIBxJBEAgByECDAILIAMoAAAgAyAGaygAAEcEQCAHIQIMAgsgCCAGayEFAkAgCCAPTwRAIAghBgwBCyAIKAAAIgYgBSgAACICRgRAIAghBgNAIAVBBGohBSAGQQRqIgYgD08NAiAGKAAAIgsgBSgAACICRg0ACyAGIAIgC3NoQQN2aiAIawwCCyACIAZzaEEDdgwBCwJAIAYgHU8NACAFLwAAIAYvAABHDQAgBUECaiEFIAZBAmohBgsgBCAGSwR/IAYgBS0AACAGLQAARmoFIAYLIAhrC0EEaiICTwRAIAchAgwBCyAAIApBA3RqIgUgAjYCBCAFQQM2AgAgCkEBaiEKIAIgA2ogBEYgAiAaS3INAQsgDUEJaiETICQgDUF/IBBBAWt0QX9zIhFxQQN0aiEUQQEgEnQhDyAWIA02AgACQAJAAkBBASAcIBxBAU0bIh0gDEsEQCAUQgA3AgAMAQsgDSARayIFQQAgBSANTRshGCAUQQRqIQsgDUEDaiEeIARBAWshDiAEQQNrIRlBACEHQQAhBgNAIAwgFWoiFiAHIAYgBiAHSxsiGmohCSACAn8CQCADIBpqIgUgGU8EQCAFIQgMAQsgBSIIKAAAIhAgCSgAACISRwRAIBAgEnNoQQN2DAILA0AgCUEEaiEJIAhBBGoiCCAZTw0BIAgoAAAiECAJKAAAIhJGDQALIAggECASc2hBA3ZqIAVrDAELAkAgCCAOTw0AIAkvAAAgCC8AAEcNACAJQQJqIQkgCEECaiEICyAEIAhLBH8gCCAJLQAAIAgtAABGagUgCAsgBWsLIBpqIgVJBEAgACAKQQN0aiICIAU2AgQgAiAeIAxrNgIAIAUgDGogEyAFIBMgDGtLGyETIApBAWohCiADIAVqIARGIAVBgCBLcg0DIAUhAgsgJCAMIBFxQQN0aiEJAkACQAJAIAUgFmotAAAgAyAFai0AAEkEQCAUIAw2AgAgDCAYSw0BICJBDGohFAwDCyALIAw2AgAgDCAYSwRAIAkhCyAFIQYMAgsgIkEMaiELDAILIAUhByAJQQRqIhQhCQsgD0EBayIPRQ0AIAkoAgAiDCAdTw0BCwsgC0EANgIAIBRBADYCACAPRQ0CCyAXKAJcIAMoAABBsfPd8XlsQSAgJ2t2QQJ0aigCACIJIBtNDQEgI0F/ICZBAWt0QX9zIhZrIBsgIyAbayAWSxshECAVICBqIRIgFygCZCELIA1BA2ohCEEAIQxBACEGA0AgAiADIAwgBiAGIAxLGyIFaiAJICVqIgcgBWogBCAfICEQDyAFaiIFSQRAIAAgCkEDdGoiAiAFNgIEIAIgCCAJICBqIgJrNgIAIAIgBWogEyAFIBMgAmtLGyETIApBAWohCiAFQYAgSw0DIAUiAiADaiAERg0DCyAJIBBNDQIgD0EBayIPRQ0CIAUgDCAHIAkgEmogBSAJaiAjSRsgBWotAAAgAyAFai0AAEkiBxshDCAGIAUgBxshBiALIAkgFnFBA3RqIAdBAnRqKAIAIgkgG0sNAAsMAQsgC0EANgIAIBRBADYCAAsgASATQQhrNgIcCyAiQRBqJAAgCgugEwIgfwJ+IwBBEGsiIiQAAkAgASgCBCIVIAEoAhwiCGogA0sNAAJ/IAMgFWsiAiAITQRAIAIMAQsDQCABIAggFWogBCACQQVBABA9IAhqIgggAkkNAAsgAyABKAIEIhVrCyENIAEgAjYCHCABKAJcIAMpAAAiKEKAgIDYy5vvjU9+IilBwAAgASgCwAFrrYinQQJ0aiIWKAIAIQwgASgCZCEkIAEoArwBIRAgASgCtAEiFygCECEbIBcoArwBISYgASgCECIIIA1BASABKAK4AXQiAmsgCCANIAhrIAJLGyABKAIYGyIcIBcoAgAiHyAXKAIEIiVrIiNrISAgB0EBayECIBUgASgCDCIRaiEhIAEoAsQBIRIgFygCwAEhJwJAIAZBfEsEQAwBCyABKALMASIJQf8fSSEIIA0gEWshGCAlICBrIRkgCUH/HyAIGyEaICinIQkgBEEBayEdIARBA2shDyADQQRqIQggDSAbICBqayEeIA0CfyAGQQNGBEAgBSgCAEEBawwBCyAFIAZBAnRqKAIACyIHayEOAkACfwJAAkAgGCAHQQFrIgtLBEAgDiAcSQ0EIAMgB2soAAAgCUcNBCAIIAdrIQogCCAPTwRAIAghBwwDCyAKKAAAIgsgKEIgiKciB0cNASAIIQcDQCAKQQRqIQogB0EEaiIHIA9PDQMgBygAACIJIAooAAAiC0YNAAsgByAJIAtzaEEDdmogCGsMAwsgDiARa0F8SyALIB5Pcg0DIA4gGWoiBygAACAJRw0DIAggB0EEaiAEIB8gIRAPDAILIAcgC3NoQQN2DAELAkAgByAdTw0AIAovAAAgBy8AAEcNACAKQQJqIQogB0ECaiEHCyAEIAdLBH8gByAKLQAAIActAABGagUgBwsgCGsLQQAhCkEEaiIHIAJNDQAgACAHNgIEQQEhCiAAQQE2AgAgByAaSw0CIAciAiADaiAERg0CCyANAn8gBkEBaiIHQQNHBEAgBSAHQQJ0aigCAAwBCyAFKAIAQQFrCyIHayEJAkAgAgJ/IBggB0EBayILTQRAIAsgHk8EQCACIQcMAwsgCSARa0F8SwRAIAIhBwwDCyADKAAAIAkgGWoiBygAAEcEQCACIQcMAwsgCCAHQQRqIAQgHyAhEA8MAQsgCSAcSQRAIAIhBwwCCyADKAAAIAMgB2soAABHBEAgAiEHDAILIAggB2shDgJAIAggD08EQCAIIQcMAQsgCCgAACILIA4oAAAiB0YEQCAIIQcDQCAOQQRqIQ4gB0EEaiIHIA9PDQIgBygAACIJIA4oAAAiC0YNAAsgByAJIAtzaEEDdmogCGsMAgsgByALc2hBA3YMAQsCQCAHIB1PDQAgDi8AACAHLwAARw0AIA5BAmohDiAHQQJqIQcLIAQgB0sEfyAHIA4tAAAgBy0AAEZqBSAHCyAIawtBBGoiB08EQCACIQcMAQsgACAKQQN0aiICIAc2AgQgAkECNgIAIApBAWohCiADIAdqIARGIAcgGktyDQILIA0CfyAGQQJqIgJBA0cEQCAFIAJBAnRqKAIADAELIAUoAgBBAWsLIgZrIQUgBwJ/IBggBkEBayICTQRAIAIgHk8EQCAHIQIMAwsgBSARa0F8SwRAIAchAgwDCyADKAAAIAUgGWoiAigAAEcEQCAHIQIMAwsgCCACQQRqIAQgHyAhEA8MAQsgBSAcSQRAIAchAgwCCyADKAAAIAMgBmsoAABHBEAgByECDAILIAggBmshBQJAIAggD08EQCAIIQYMAQsgCCgAACIGIAUoAAAiAkYEQCAIIQYDQCAFQQRqIQUgBkEEaiIGIA9PDQIgBigAACILIAUoAAAiAkYNAAsgBiACIAtzaEEDdmogCGsMAgsgAiAGc2hBA3YMAQsCQCAGIB1PDQAgBS8AACAGLwAARw0AIAVBAmohBSAGQQJqIQYLIAQgBksEfyAGIAUtAAAgBi0AAEZqBSAGCyAIawtBBGoiAk8EQCAHIQIMAQsgACAKQQN0aiIFIAI2AgQgBUEDNgIAIApBAWohCiACIANqIARGIAIgGktyDQELIA1BCWohEyAkIA1BfyAQQQFrdEF/cyIRcUEDdGohFEEBIBJ0IQ8gFiANNgIAAkACQAJAQQEgHCAcQQFNGyIdIAxLBEAgFEIANwIADAELIA0gEWsiBUEAIAUgDU0bIRggFEEEaiELIA1BA2ohHiAEQQFrIQ4gBEEDayEZQQAhB0EAIQYDQCAMIBVqIhYgByAGIAYgB0sbIhpqIQkgAgJ/AkAgAyAaaiIFIBlPBEAgBSEIDAELIAUiCCgAACIQIAkoAAAiEkcEQCAQIBJzaEEDdgwCCwNAIAlBBGohCSAIQQRqIgggGU8NASAIKAAAIhAgCSgAACISRg0ACyAIIBAgEnNoQQN2aiAFawwBCwJAIAggDk8NACAJLwAAIAgvAABHDQAgCUECaiEJIAhBAmohCAsgBCAISwR/IAggCS0AACAILQAARmoFIAgLIAVrCyAaaiIFSQRAIAAgCkEDdGoiAiAFNgIEIAIgHiAMazYCACAFIAxqIBMgBSATIAxrSxshEyAKQQFqIQogAyAFaiAERiAFQYAgS3INAyAFIQILICQgDCARcUEDdGohCQJAAkACQCAFIBZqLQAAIAMgBWotAABJBEAgFCAMNgIAIAwgGEsNASAiQQxqIRQMAwsgCyAMNgIAIAwgGEsEQCAJIQsgBSEGDAILICJBDGohCwwCCyAFIQcgCUEEaiIUIQkLIA9BAWsiD0UNACAJKAIAIgwgHU8NAQsLIAtBADYCACAUQQA2AgAgD0UNAgsgFygCXCApQcAAICdrrYinQQJ0aigCACIJIBtNDQEgI0F/ICZBAWt0QX9zIhZrIBsgIyAbayAWSxshECAVICBqIRIgFygCZCELIA1BA2ohCEEAIQxBACEGA0AgAiADIAwgBiAGIAxLGyIFaiAJICVqIgcgBWogBCAfICEQDyAFaiIFSQRAIAAgCkEDdGoiAiAFNgIEIAIgCCAJICBqIgJrNgIAIAIgBWogEyAFIBMgAmtLGyETIApBAWohCiAFQYAgSw0DIAUiAiADaiAERg0DCyAJIBBNDQIgD0EBayIPRQ0CIAUgDCAHIAkgEmogBSAJaiAjSRsgBWotAAAgAyAFai0AAEkiBxshDCAGIAUgBxshBiALIAkgFnFBA3RqIAdBAnRqKAIAIgkgG0sNAAsMAQsgC0EANgIAIBRBADYCAAsgASATQQhrNgIcCyAiQRBqJAAgCgugEwIgfwJ+IwBBEGsiIiQAAkAgASgCBCIVIAEoAhwiCGogA0sNAAJ/IAMgFWsiAiAITQRAIAIMAQsDQCABIAggFWogBCACQQZBABA9IAhqIgggAkkNAAsgAyABKAIEIhVrCyENIAEgAjYCHCABKAJcIAMpAAAiKEKAgOz8y5vvjU9+IilBwAAgASgCwAFrrYinQQJ0aiIWKAIAIQwgASgCZCEkIAEoArwBIRAgASgCtAEiFygCECEbIBcoArwBISYgASgCECIIIA1BASABKAK4AXQiAmsgCCANIAhrIAJLGyABKAIYGyIcIBcoAgAiHyAXKAIEIiVrIiNrISAgB0EBayECIBUgASgCDCIRaiEhIAEoAsQBIRIgFygCwAEhJwJAIAZBfEsEQAwBCyABKALMASIJQf8fSSEIIA0gEWshGCAlICBrIRkgCUH/HyAIGyEaICinIQkgBEEBayEdIARBA2shDyADQQRqIQggDSAbICBqayEeIA0CfyAGQQNGBEAgBSgCAEEBawwBCyAFIAZBAnRqKAIACyIHayEOAkACfwJAAkAgGCAHQQFrIgtLBEAgDiAcSQ0EIAMgB2soAAAgCUcNBCAIIAdrIQogCCAPTwRAIAghBwwDCyAKKAAAIgsgKEIgiKciB0cNASAIIQcDQCAKQQRqIQogB0EEaiIHIA9PDQMgBygAACIJIAooAAAiC0YNAAsgByAJIAtzaEEDdmogCGsMAwsgDiARa0F8SyALIB5Pcg0DIA4gGWoiBygAACAJRw0DIAggB0EEaiAEIB8gIRAPDAILIAcgC3NoQQN2DAELAkAgByAdTw0AIAovAAAgBy8AAEcNACAKQQJqIQogB0ECaiEHCyAEIAdLBH8gByAKLQAAIActAABGagUgBwsgCGsLQQAhCkEEaiIHIAJNDQAgACAHNgIEQQEhCiAAQQE2AgAgByAaSw0CIAciAiADaiAERg0CCyANAn8gBkEBaiIHQQNHBEAgBSAHQQJ0aigCAAwBCyAFKAIAQQFrCyIHayEJAkAgAgJ/IBggB0EBayILTQRAIAsgHk8EQCACIQcMAwsgCSARa0F8SwRAIAIhBwwDCyADKAAAIAkgGWoiBygAAEcEQCACIQcMAwsgCCAHQQRqIAQgHyAhEA8MAQsgCSAcSQRAIAIhBwwCCyADKAAAIAMgB2soAABHBEAgAiEHDAILIAggB2shDgJAIAggD08EQCAIIQcMAQsgCCgAACILIA4oAAAiB0YEQCAIIQcDQCAOQQRqIQ4gB0EEaiIHIA9PDQIgBygAACIJIA4oAAAiC0YNAAsgByAJIAtzaEEDdmogCGsMAgsgByALc2hBA3YMAQsCQCAHIB1PDQAgDi8AACAHLwAARw0AIA5BAmohDiAHQQJqIQcLIAQgB0sEfyAHIA4tAAAgBy0AAEZqBSAHCyAIawtBBGoiB08EQCACIQcMAQsgACAKQQN0aiICIAc2AgQgAkECNgIAIApBAWohCiADIAdqIARGIAcgGktyDQILIA0CfyAGQQJqIgJBA0cEQCAFIAJBAnRqKAIADAELIAUoAgBBAWsLIgZrIQUgBwJ/IBggBkEBayICTQRAIAIgHk8EQCAHIQIMAwsgBSARa0F8SwRAIAchAgwDCyADKAAAIAUgGWoiAigAAEcEQCAHIQIMAwsgCCACQQRqIAQgHyAhEA8MAQsgBSAcSQRAIAchAgwCCyADKAAAIAMgBmsoAABHBEAgByECDAILIAggBmshBQJAIAggD08EQCAIIQYMAQsgCCgAACIGIAUoAAAiAkYEQCAIIQYDQCAFQQRqIQUgBkEEaiIGIA9PDQIgBigAACILIAUoAAAiAkYNAAsgBiACIAtzaEEDdmogCGsMAgsgAiAGc2hBA3YMAQsCQCAGIB1PDQAgBS8AACAGLwAARw0AIAVBAmohBSAGQQJqIQYLIAQgBksEfyAGIAUtAAAgBi0AAEZqBSAGCyAIawtBBGoiAk8EQCAHIQIMAQsgACAKQQN0aiIFIAI2AgQgBUEDNgIAIApBAWohCiACIANqIARGIAIgGktyDQELIA1BCWohEyAkIA1BfyAQQQFrdEF/cyIRcUEDdGohFEEBIBJ0IQ8gFiANNgIAAkACQAJAQQEgHCAcQQFNGyIdIAxLBEAgFEIANwIADAELIA0gEWsiBUEAIAUgDU0bIRggFEEEaiELIA1BA2ohHiAEQQFrIQ4gBEEDayEZQQAhB0EAIQYDQCAMIBVqIhYgByAGIAYgB0sbIhpqIQkgAgJ/AkAgAyAaaiIFIBlPBEAgBSEIDAELIAUiCCgAACIQIAkoAAAiEkcEQCAQIBJzaEEDdgwCCwNAIAlBBGohCSAIQQRqIgggGU8NASAIKAAAIhAgCSgAACISRg0ACyAIIBAgEnNoQQN2aiAFawwBCwJAIAggDk8NACAJLwAAIAgvAABHDQAgCUECaiEJIAhBAmohCAsgBCAISwR/IAggCS0AACAILQAARmoFIAgLIAVrCyAaaiIFSQRAIAAgCkEDdGoiAiAFNgIEIAIgHiAMazYCACAFIAxqIBMgBSATIAxrSxshEyAKQQFqIQogAyAFaiAERiAFQYAgS3INAyAFIQILICQgDCARcUEDdGohCQJAAkACQCAFIBZqLQAAIAMgBWotAABJBEAgFCAMNgIAIAwgGEsNASAiQQxqIRQMAwsgCyAMNgIAIAwgGEsEQCAJIQsgBSEGDAILICJBDGohCwwCCyAFIQcgCUEEaiIUIQkLIA9BAWsiD0UNACAJKAIAIgwgHU8NAQsLIAtBADYCACAUQQA2AgAgD0UNAgsgFygCXCApQcAAICdrrYinQQJ0aigCACIJIBtNDQEgI0F/ICZBAWt0QX9zIhZrIBsgIyAbayAWSxshECAVICBqIRIgFygCZCELIA1BA2ohCEEAIQxBACEGA0AgAiADIAwgBiAGIAxLGyIFaiAJICVqIgcgBWogBCAfICEQDyAFaiIFSQRAIAAgCkEDdGoiAiAFNgIEIAIgCCAJICBqIgJrNgIAIAIgBWogEyAFIBMgAmtLGyETIApBAWohCiAFQYAgSw0DIAUiAiADaiAERg0DCyAJIBBNDQIgD0EBayIPRQ0CIAUgDCAHIAkgEmogBSAJaiAjSRsgBWotAAAgAyAFai0AAEkiBxshDCAGIAUgBxshBiALIAkgFnFBA3RqIAdBAnRqKAIAIgkgG0sNAAsMAQsgC0EANgIAIBRBADYCAAsgASATQQhrNgIcCyAiQRBqJAAgCgsRACAAIAEgAiADIARBABD1AQvVHQIdfwJ+IwBBEGsiDCQAIAIoAgQhDSACKAIAIQ4gAEEANgLcASAAKALEASELQQRBBiAAKALIASIFIAVBBk8bIgUgBUEETRshFyADIAAoAgQiECAAKAIMIhVqIhggA0ZqIQUCQCAAKAIcIgcgB0EIIAMgBGoiCUEPayIfIAcgEGoiBmsiBCAEQQhPG0EAIAYgCUEQayITTRtqIg9PDQBBGCAAKAIkIgRrIQhBOCAEa60hIyAAKQNQIiKnIQogC0EETQRAIBdBBWshBANAIAcgEGohBiAAIAdBB3FBAnRqAn8CQAJAAkAgBA4CAAECCyAGKQAAQoCAgNjLm++NT34gIoUgI4inDAILIAYpAABCgIDs/Mub741PfiAihSAjiKcMAQsgBigAAEGx893xeWwgCnMgCHYLNgIsIAdBAWoiByAPRw0ACwwBCyALQQVGBEAgF0EFayEEA0AgByAQaiEGIAAgB0EHcUECdGoCfwJAAkACQCAEDgIAAQILIAYpAABCgICA2Mub741PfiAihSAjiKcMAgsgBikAAEKAgOz8y5vvjU9+ICKFICOIpwwBCyAGKAAAQbHz3fF5bCAKcyAIdgs2AiwgB0EBaiIHIA9HDQALDAELIBdBBWshBANAIAcgEGohBiAAIAdBB3FBAnRqAn8CQAJAAkAgBA4CAQIACyAGKAAAQbHz3fF5bCAKcyAIdgwCCyAGKQAAQoCAgNjLm++NT34gIoUgI4inDAELIAYpAABCgIDs/Mub741PfiAihSAjiKcLNgIsIAdBAWoiByAPRw0ACwsgBSATSQRAQQRBBiALIAtBBk8bIgQgBEEETRshESAAKAIIIhYgACgCEGohICAVIBZqIRogCUEBayEhIAlBA2shHSAJQSBrIRkgFUEBayEbQQEgACgCuAF0IRQgF0EEayEcA0AgBUEBaiEIAn9BACAbIAUgEGsiB0EBaiILIA5rIgprQQNJDQAaQQAgDiALIAAoAhAiBiALIBRrIAYgCyAGayAUSxsgACgCGBtrSw0AGkEAIAgoAAAgCiAWIBAgCiAVSSIKG2oiBigAAEcNABogBUEFaiAGQQRqIAkgGiAJIAobIBgQD0EEagshBCAMQf+T69wDNgIMAkACQAJ/AkACQAJAIBxBAWsOAgECAAsCQAJAAkAgEUEFaw4CAQIACyAAIAUgCSAMQQxqEGoMBAsgACAFIAkgDEEMahBpDAMLIAAgBSAJIAxBDGoQaAwCCwJAAkACQCARQQVrDgIBAgALIAAgBSAJIAxBDGoQZwwDCyAAIAUgCSAMQQxqEGYMAgsgACAFIAkgDEEMahBlDAELAkACQAJAIBFBBWsOAgECAAsgACAFIAkgDEEMahBkDAILIAAgBSAJIAxBDGoQYwwBCyAAIAUgCSAMQQxqEGILIgsgBCAEIAtJIgQbIgtBBE8EQCAFIAggBBshCiAMKAIMQQEgBBshBAJAIAUgE08NAANAIAdBAWohDyAFQQFqIQYCQCAERQRAQQAhBAwBCyAbIA8gDmsiEmtBA0kNACAOIA8gACgCECIIIA8gFGsgCCAPIAhrIBRLGyAAKAIYG2tLDQAgBigAACASIBYgECASIBVJIhIbaiIIKAAARw0AIAVBBWogCEEEaiAJIBogCSASGyAYEA8iCEF7Sw0AIARnIAtBA2xqQR5rIAhBBGoiCEEDbE4NAEEBIQQgBiEKIAghCwsgDEH/k+vcAzYCCAJ/AkACfwJAAkACQCAcQQFrDgIBAgALAkACQAJAIBFBBWsOAgECAAsgACAGIAkgDEEIahBqDAQLIAAgBiAJIAxBCGoQaQwDCyAAIAYgCSAMQQhqEGgMAgsCQAJAAkAgEUEFaw4CAQIACyAAIAYgCSAMQQhqEGcMAwsgACAGIAkgDEEIahBmDAILIAAgBiAJIAxBCGoQZQwBCwJAAkACQCARQQVrDgIBAgALIAAgBiAJIAxBCGoQZAwCCyAAIAYgCSAMQQhqEGMMAQsgACAGIAkgDEEIahBiCyISQQRJDQAgDCgCCCIIZyASQQJ0akEfayAEZyALQQJ0akEba0wNACAPIQcgBiEFIBIhCyAIDAELIAYgE08NAiAHQQJqIQcgBUECaiEGAkAgBEUEQEEAIQQMAQsgGyAHIA5rIg9rQQNJDQAgDiAHIAAoAhAiCCAHIBRrIAggByAIayAUSxsgACgCGBtrSw0AIAYoAAAgDyAWIBAgDyAVSSIPG2oiCCgAAEcNACAFQQZqIAhBBGogCSAaIAkgDxsgGBAPIgVBe0sNACAEZyALQQJ0akEeayAFQQRqIgVBAnRODQBBASEEIAYhCiAFIQsLIAxB/5Pr3AM2AgQCfwJAAkACQCAcQQFrDgIBAgALAkACQAJAIBFBBWsOAgECAAsgACAGIAkgDEEEahBqDAQLIAAgBiAJIAxBBGoQaQwDCyAAIAYgCSAMQQRqEGgMAgsCQAJAAkAgEUEFaw4CAQIACyAAIAYgCSAMQQRqEGcMAwsgACAGIAkgDEEEahBmDAILIAAgBiAJIAxBBGoQZQwBCwJAAkACQCARQQVrDgIBAgALIAAgBiAJIAxBBGoQZAwCCyAAIAYgCSAMQQRqEGMMAQsgACAGIAkgDEEEahBiCyIIQQRJDQIgDCgCBCIPZyAIQQJ0akEfayAEZyALQQJ0akEYa0wNAiAGIQUgCCELIA8LIQQgBSEKIAUgE0kNAAsLAn8gBEEESQRAIA4hCCANDAELIARBA2shCAJAIAMgCk8NACAWIBAgCiAEIBBqa0EDaiIFIBVJIgYbIAVqIgUgICAYIAYbIg1NDQADQCAKQQFrIgYtAAAgBUEBayIFLQAARw0BIAtBAWohCyADIAZJBEAgBiEKIAUgDUsNAQsLIAYhCgsgDgshBiAKIANrIQ8gASgCDCEFAkACQCAKIBlNBEAgAykAACEiIAUgAykACDcACCAFICI3AAAgASgCDCENIA9BEE0EQCABIA0gD2o2AgwgASgCBCEFDAMLIAMpABAhIiANIAMpABg3ABggDSAiNwAQIA9BIUgNASANIA9qIQ4gA0EQaiEFIA1BIGohAwNAIAUpABAhIiADIAUpABg3AAggAyAiNwAAIAUpACAhIiADIAUpACg3ABggAyAiNwAQIAVBIGohBSADQSBqIgMgDkkNAAsMAQsgAyAZTQRAIAMpAAAhIiAFIAMpAAg3AAggBSAiNwAAIAUgGSADayINaiEOIA1BEU4EQCAFQRBqIQUDQCADKQAQISIgBSADKQAYNwAIIAUgIjcAACADKQAgISIgBSADKQAoNwAYIAUgIjcAECADQSBqIQMgBUEgaiIFIA5JDQALCyAOIQUgGSEDCyADIApPDQBBACEOIAMhByAKIANrQQdxIg0EQANAIAUgBy0AADoAACAFQQFqIQUgB0EBaiEHIA5BAWoiDiANRw0ACwsgAyAKa0F4Sw0AA0AgBSAHLQAAOgAAIAUgBy0AAToAASAFIActAAI6AAIgBSAHLQADOgADIAUgBy0ABDoABCAFIActAAU6AAUgBSAHLQAGOgAGIAUgBy0ABzoAByAFQQhqIQUgB0EIaiIHIApHDQALCyABIAEoAgwgD2o2AgwgASgCBCEFIA9BgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgBDYCACAFIA87AQQgC0EDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgQ2AgQgCiALaiEDIAAoAtwBBEAgACgCHCIFIAVBCCAfIAUgEGoiCmsiDiAOQQhPG0EAIAogE00baiINSQRAQRggACgCJCIOayEKQTggDmutISMgACkDUCIipyEOA0AgBSAQaiELIAAgBUEHcUECdGoCfwJAAkACQCAXQQVrDgIBAgALIAsoAABBsfPd8XlsIA5zIAp2DAILIAspAABCgICA2Mub741PfiAihSAjiKcMAQsgCykAAEKAgOz8y5vvjU9+ICKFICOIpws2AiwgBUEBaiIFIA1HDQALCyAAQQA2AtwBCyAGIQ0gCCEOIBMgAyIFSQ0CA0AgBiEOIAghBiAbIAMgEGsiCCAOayIKa0EDSQ0CIA4gCCAAKAIQIgUgCCAUayAFIAggBWsgFEsbIAAoAhgba0sNAiADKAAAIBYgECAKIBVJIg0bIApqIgUoAABHDQIgBUEEaiIKIQcgA0EEaiIIIQUgCgJ/AkAgCCAaIAkgDRsiEiAKa2oiDSAJIAkgDUsbIh5BA2siDyAITQ0AIAgoAAAiCyAKKAAAIg1HBEAgCyANc2hBA3YMAgsDQCAHQQRqIQcgBUEEaiIFIA9PDQEgBSgAACILIAcoAAAiDUYNAAsgBSALIA1zaEEDdmogCGsMAQsCQCAFIB5BAWtPDQAgBy8AACAFLwAARw0AIAdBAmohByAFQQJqIQULIAUgHkkEfyAFIActAAAgBS0AAEZqBSAFCyAIawsiC2ogEkYEQCAYIQcgCCALaiIKIQUCfwJAIAogHU8NACAKKAAAIg0gBygAACIIRwRAIAggDXNoQQN2DAILA0AgB0EEaiEHIAVBBGoiBSAdTw0BIAUoAAAiDSAHKAAAIghGDQALIAUgCCANc2hBA3ZqIAprDAELAkAgBSAhTw0AIAcvAAAgBS8AAEcNACAHQQJqIQcgBUECaiEFCyAFIAlJBH8gBSAHLQAAIAUtAABGagUgBQsgCmsLIAtqIQsLIAMgGU0EQCADKQAAISIgASgCDCIEIAMpAAg3AAggBCAiNwAAIAEoAgQhBAsgBEEBNgIAIARBADsBBCALQQFqIgVBgIAETwRAIAFBAjYCJCABIAQgASgCAGtBA3U2AigLIAQgBTsBBiABIARBCGoiBDYCBCAOIQggBiENIAtBBGogA2oiAyEFIAMgE00NAAsMAgsgACAFIANrIgRB/xFLNgLcASAEQQh2IAVqQQFqIQUMAQsgDiENIAYhDiADIQULIAUgE0kNAAsLIAIgDTYCBCACIA42AgAgDEEQaiQAIAkgA2sLmRoCHX8CfiMAQRBrIg4kACACKAIEIQwgAigCACELIABBADYC3AEgACgCxAEhD0EEQQYgACgCyAEiCSAJQQZPGyIJIAlBBE0bIRUgAyAAKAIEIhAgACgCDCISaiIYIANGaiEFAkAgACgCHCIGIAZBCCADIARqIgpBD2siHyAGIBBqIgRrIgkgCUEITxtBACAEIApBEGsiEU0baiIETw0AQRggACgCJCIHayEJQTggB2utISIgACkDUCIjpyEHIA9BBE0EQCAVQQVrIQ0DQCAGIBBqIQggACAGQQdxQQJ0agJ/AkACQAJAIA0OAgABAgsgCCkAAEKAgIDYy5vvjU9+ICOFICKIpwwCCyAIKQAAQoCA7PzLm++NT34gI4UgIoinDAELIAgoAABBsfPd8XlsIAdzIAl2CzYCLCAGQQFqIgYgBEcNAAsMAQsgD0EFRgRAIBVBBWshDQNAIAYgEGohCCAAIAZBB3FBAnRqAn8CQAJAAkAgDQ4CAAECCyAIKQAAQoCAgNjLm++NT34gI4UgIoinDAILIAgpAABCgIDs/Mub741PfiAjhSAiiKcMAQsgCCgAAEGx893xeWwgB3MgCXYLNgIsIAZBAWoiBiAERw0ACwwBCyAVQQVrIQ0DQCAGIBBqIQggACAGQQdxQQJ0agJ/AkACQAJAIA0OAgECAAsgCCgAAEGx893xeWwgB3MgCXYMAgsgCCkAAEKAgIDYy5vvjU9+ICOFICKIpwwBCyAIKQAAQoCA7PzLm++NT34gI4UgIoinCzYCLCAGQQFqIgYgBEcNAAsLIAUgEUkEQEEEQQYgDyAPQQZPGyIEIARBBE0bIRMgACgCCCIWIAAoAhBqISAgEiAWaiEZIApBAWshISAKQQNrIR0gCkEgayEXIBJBAWshGkEBIAAoArgBdCEUIBVBBGshHgNAIAVBAWohDQJ/QQAgGiAFIBBrIgZBAWoiCSALayIHa0EDSQ0AGkEAIAsgCSAAKAIQIgggCSAUayAIIAkgCGsgFEsbIAAoAhgba0sNABpBACANKAAAIBYgECAHIBJJIgkbIAdqIgcoAABHDQAaIAVBBWogB0EEaiAKIBkgCiAJGyAYEA9BBGoLIQQgDkH/k+vcAzYCDAJAAkACfwJAAkACQCAeQQFrDgIBAgALAkACQAJAIBNBBWsOAgECAAsgACAFIAogDkEMahBqDAQLIAAgBSAKIA5BDGoQaQwDCyAAIAUgCiAOQQxqEGgMAgsCQAJAAkAgE0EFaw4CAQIACyAAIAUgCiAOQQxqEGcMAwsgACAFIAogDkEMahBmDAILIAAgBSAKIA5BDGoQZQwBCwJAAkACQCATQQVrDgIBAgALIAAgBSAKIA5BDGoQZAwCCyAAIAUgCiAOQQxqEGMMAQsgACAFIAogDkEMahBiCyIIIAQgBCAISSIIGyIHQQRPBEAgBSANIAgbIgkhBCAOKAIMQQEgCBsiDSEPIAchCAJAIAUgEU8NAANAIAZBAWohBiAFQQFqIQQCQCANRQRAQQAhDQwBCyAaIAYgC2siCGtBA0kNACALIAYgACgCECIPIAYgFGsgDyAGIA9rIBRLGyAAKAIYG2tLDQAgBCgAACAIIBYgECAIIBJJIggbaiIPKAAARw0AIAVBBWogD0EEaiAKIBkgCiAIGyAYEA8iBUF7Sw0AIA1nIAdBA2xqQR5rIAVBBGoiBUEDbE4NAEEBIQ0gBCEJIAUhBwsgDkH/k+vcAzYCCAJAAn8CQAJAAkAgHkEBaw4CAQIACwJAAkACQCATQQVrDgIBAgALIAAgBCAKIA5BCGoQagwECyAAIAQgCiAOQQhqEGkMAwsgACAEIAogDkEIahBoDAILAkACQAJAIBNBBWsOAgECAAsgACAEIAogDkEIahBnDAMLIAAgBCAKIA5BCGoQZgwCCyAAIAQgCiAOQQhqEGUMAQsCQAJAAkAgE0EFaw4CAQIACyAAIAQgCiAOQQhqEGQMAgsgACAEIAogDkEIahBjDAELIAAgBCAKIA5BCGoQYgsiCEEESQ0AIA4oAggiD2cgCEECdGpBH2sgDWcgB0ECdGpBG2tMDQAgCCEHIA8hDSAEIgUhCSAFIBFJDQEMAgsLIAkhBCANIQ8gByEICwJ/IA9BBEkEQCALIQcgDAwBCyAPQQNrIQcCQCADIARPDQAgFiAQIAQgDyAQamtBA2oiCSASSSIMGyAJaiIFICAgGCAMGyIMTQ0AA0AgBEEBayIJLQAAIAVBAWsiBS0AAEcNASAIQQFqIQggAyAJSQRAIAkhBCAFIAxLDQELCyAJIQQLIAsLIQkgBCADayEMIAEoAgwhBQJAAkAgBCAXTQRAIAMpAAAhIiAFIAMpAAg3AAggBSAiNwAAIAEoAgwhCyAMQRBNBEAgASALIAxqNgIMIAEoAgQhBQwDCyADKQAQISIgCyADKQAYNwAYIAsgIjcAECAMQSFIDQEgCyAMaiEGIANBEGohBSALQSBqIQMDQCAFKQAQISIgAyAFKQAYNwAIIAMgIjcAACAFKQAgISIgAyAFKQAoNwAYIAMgIjcAECAFQSBqIQUgA0EgaiIDIAZJDQALDAELIAMgF00EQCADKQAAISIgBSADKQAINwAIIAUgIjcAACAFIBcgA2siBmohCyAGQRFOBEAgBUEQaiEFA0AgAykAECEiIAUgAykAGDcACCAFICI3AAAgAykAICEiIAUgAykAKDcAGCAFICI3ABAgA0EgaiEDIAVBIGoiBSALSQ0ACwsgCyEFIBchAwsgAyAETw0AQQAhCyADIQYgBCADa0EHcSINBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiALQQFqIgsgDUcNAAsLIAMgBGtBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAERw0ACwsgASABKAIMIAxqNgIMIAEoAgQhBSAMQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIA82AgAgBSAMOwEEIAhBA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiINNgIEIAQgCGohAyAAKALcAQRAIAAoAhwiBSAFQQggHyAFIBBqIgRrIgsgC0EITxtBACAEIBFNG2oiC0kEQEEYIAAoAiQiBGshDEE4IARrrSEiIAApA1AiI6chCANAIAUgEGohBCAAIAVBB3FBAnRqAn8CQAJAAkAgFUEFaw4CAQIACyAEKAAAQbHz3fF5bCAIcyAMdgwCCyAEKQAAQoCAgNjLm++NT34gI4UgIoinDAELIAQpAABCgIDs/Mub741PfiAjhSAiiKcLNgIsIAVBAWoiBSALRw0ACwsgAEEANgLcAQsgCSEMIAchCyARIAMiBUkNAgNAIAkhCyAHIQkgGiADIBBrIgQgC2siB2tBA0kNAiALIAQgACgCECIFIAQgFGsgBSAEIAVrIBRLGyAAKAIYG2tLDQIgAygAACAWIBAgByASSSIEGyAHaiIHKAAARw0CIAdBBGoiDCEGIANBBGoiByEFIAwCfwJAIAcgGSAKIAQbIgggDGtqIgQgCiAEIApJGyIEQQNrIg8gB00NACAHKAAAIhsgDCgAACIcRwRAIBsgHHNoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSAPTw0BIAUoAAAiGyAGKAAAIhxGDQALIAUgGyAcc2hBA3ZqIAdrDAELAkAgBSAEQQFrTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAEIAVLBH8gBSAGLQAAIAUtAABGagUgBQsgB2sLIgRqIAhGBEAgGCEGIAQgB2oiByEFAn8CQCAHIB1PDQAgBygAACIMIAYoAAAiCEcEQCAIIAxzaEEDdgwCCwNAIAZBBGohBiAFQQRqIgUgHU8NASAFKAAAIgwgBigAACIIRg0ACyAFIAggDHNoQQN2aiAHawwBCwJAIAUgIU8NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSAKSQR/IAUgBi0AACAFLQAARmoFIAULIAdrCyAEaiEECyADIBdNBEAgAykAACEiIAEoAgwiByADKQAINwAIIAcgIjcAACABKAIEIQ0LIA1BATYCACANQQA7AQQgBEEBaiIHQYCABE8EQCABQQI2AiQgASANIAEoAgBrQQN1NgIoCyANIAc7AQYgASANQQhqIg02AgQgCyEHIAkhDCAEQQRqIANqIgMhBSADIBFNDQALDAILIAAgBSADayIEQf8RSzYC3AEgBEEIdiAFakEBaiEFDAELIAshDCAJIQsgAyEFCyAFIBFJDQALCyACIAw2AgQgAiALNgIAIA5BEGokACAKIANrC5YWAh1/An4jAEEQayIPJAAgAigCBCEGIAIoAgAhCiAAQQA2AtwBIAAoAsQBIQlBBEEGIAAoAsgBIgUgBUEGTxsiBSAFQQRNGyEOIAMgACgCBCIQIAAoAgwiEmoiFiADRmohBQJAIAAoAhwiCCAIQQggAyAEaiINQQ9rIhwgCCAQaiIHayIEIARBCE8bQQAgByANQRBrIhNNG2oiC08NAEEYIAAoAiQiBGshDEE4IARrrSEjIAApA1AiIqchESAJQQRNBEAgDkEFayEEA0AgCCAQaiEHIAAgCEEHcUECdGoCfwJAAkACQCAEDgIAAQILIAcpAABCgICA2Mub741PfiAihSAjiKcMAgsgBykAAEKAgOz8y5vvjU9+ICKFICOIpwwBCyAHKAAAQbHz3fF5bCARcyAMdgs2AiwgCEEBaiIIIAtHDQALDAELIAlBBUYEQCAOQQVrIQQDQCAIIBBqIQcgACAIQQdxQQJ0agJ/AkACQAJAIAQOAgABAgsgBykAAEKAgIDYy5vvjU9+ICKFICOIpwwCCyAHKQAAQoCA7PzLm++NT34gIoUgI4inDAELIAcoAABBsfPd8XlsIBFzIAx2CzYCLCAIQQFqIgggC0cNAAsMAQsgDkEFayEEA0AgCCAQaiEHIAAgCEEHcUECdGoCfwJAAkACQCAEDgIBAgALIAcoAABBsfPd8XlsIBFzIAx2DAILIAcpAABCgICA2Mub741PfiAihSAjiKcMAQsgBykAAEKAgOz8y5vvjU9+ICKFICOIpws2AiwgCEEBaiIIIAtHDQALCyAFIBNJBEBBBEEGIAkgCUEGTxsiBCAEQQRNGyEXIAAoAggiFCAAKAIQaiEdIBIgFGohGCANQQFrIR4gDUEDayEZIA1BIGshESASQQFrIRpBASAAKAK4AXQhFSAOQQVrIR8gDkEEayEgA0ACQAJ/AkACQAJAIBogBSAQa0EBaiIJIAprIgdrQQNJDQAgCiAJIAAoAhAiBCAJIBVrIAQgCSAEayAVSxsgACgCGBtrSw0AIAVBAWoiBCgAACAUIBAgByASSSIJGyAHaiIHKAAARw0AIAVBBWogB0EEaiANIBggDSAJGyAWEA9BBGohDkEBIQwMAQsgD0H/k+vcAzYCDAJ/AkACQAJAICBBAWsOAgECAAsCQAJAAkAgF0EFaw4CAQIACyAAIAUgDSAPQQxqEGoMBAsgACAFIA0gD0EMahBpDAMLIAAgBSANIA9BDGoQaAwCCwJAAkACQCAXQQVrDgIBAgALIAAgBSANIA9BDGoQZwwDCyAAIAUgDSAPQQxqEGYMAgsgACAFIA0gD0EMahBlDAELAkACQAJAIBdBBWsOAgECAAsgACAFIA0gD0EMahBkDAILIAAgBSANIA9BDGoQYwwBCyAAIAUgDSAPQQxqEGILIg5BA00EQCAAIAUgA2siBEH/EUs2AtwBIARBCHYgBWpBAWohBQwECyAPKAIMIgxBBE8NASAFIQQLIAohCSAGDAELIAxBA2shCQJAAkAgAyAFTw0AIBQgECAFIAwgEGprQQNqIgcgEkkiBBsgB2oiBiAdIBYgBBsiB00NAANAIAVBAWsiBC0AACAGQQFrIgYtAABHDQEgDkEBaiEOIAMgBE8NAiAEIQUgBiAHSw0ACwwBCyAFIQQLIAoLIQcgBCADayELIAEoAgwhBQJAAkAgBCARTQRAIAMpAAAhIiAFIAMpAAg3AAggBSAiNwAAIAEoAgwhBiALQRBNBEAgASAGIAtqNgIMIAEoAgQhBQwDCyADKQAQISIgBiADKQAYNwAYIAYgIjcAECALQSFIDQEgBiALaiEKIANBEGohBSAGQSBqIQMDQCAFKQAQISIgAyAFKQAYNwAIIAMgIjcAACAFKQAgISIgAyAFKQAoNwAYIAMgIjcAECAFQSBqIQUgA0EgaiIDIApJDQALDAELIAMgEU0EQCADKQAAISIgBSADKQAINwAIIAUgIjcAACAFIBEgA2siBmohCiAGQRFOBEAgBUEQaiEFA0AgAykAECEiIAUgAykAGDcACCAFICI3AAAgAykAICEiIAUgAykAKDcAGCAFICI3ABAgA0EgaiEDIAVBIGoiBSAKSQ0ACwsgCiEFIBEhAwsgAyAETw0AQQAhCCADIQYgBCADa0EHcSIKBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiAIQQFqIgggCkcNAAsLIAMgBGtBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAERw0ACwsgASABKAIMIAtqNgIMIAEoAgQhBSALQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAw2AgAgBSALOwEEIA5BA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiIINgIEIAQgDmohAyAAKALcAQRAIAAoAhwiBSAFQQggHCAFIBBqIgprIgQgBEEITxtBACAKIBNNG2oiDEkEQEEYIAAoAiQiBGshCkE4IARrrSEjIAApA1AiIqchBANAIAUgEGohBiAAIAVBB3FBAnRqAn8CQAJAAkAgHw4CAQIACyAGKAAAQbHz3fF5bCAEcyAKdgwCCyAGKQAAQoCAgNjLm++NT34gIoUgI4inDAELIAYpAABCgIDs/Mub741PfiAihSAjiKcLNgIsIAVBAWoiBSAMRw0ACwsgAEEANgLcAQsgByEGIAkhCiATIAMiBUkNAANAAkAgByEKIAkhByAaIAMgEGsiBiAKayIFa0EDSQ0AIAogBiAAKAIQIgQgBiAVayAEIAYgBGsgFUsbIAAoAhgba0sNACADKAAAIBQgECAFIBJJIgsbIAVqIgQoAABHDQAgBEEEaiIJIQYgA0EEaiIMIQUgCQJ/AkAgDCAYIA0gCxsiISAJa2oiBCANIAQgDUkbIhtBA2siDiAMTQ0AIAwoAAAiCyAJKAAAIgRHBEAgBCALc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIA5PDQEgBSgAACILIAYoAAAiBEYNAAsgBSAEIAtzaEEDdmogDGsMAQsCQCAFIBtBAWtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgG0kEfyAFIAYtAAAgBS0AAEZqBSAFCyAMawsiBGogIUYEQCAWIQYgBCAMaiIJIQUCfwJAIAkgGU8NACAJKAAAIgsgBigAACIMRwRAIAsgDHNoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSAZTw0BIAUoAAAiCyAGKAAAIgxGDQALIAUgCyAMc2hBA3ZqIAlrDAELAkAgBSAeTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIA1JBH8gBSAGLQAAIAUtAABGagUgBQsgCWsLIARqIQQLIAMgEU0EQCADKQAAISIgASgCDCIFIAMpAAg3AAggBSAiNwAAIAEoAgQhCAsgCEEBNgIAIAhBADsBBCAEQQFqIgVBgIAETwRAIAFBAjYCJCABIAggASgCAGtBA3U2AigLIAggBTsBBiABIAhBCGoiCDYCBCAKIQkgByEGIARBBGogA2oiAyEFIAMgE00NAQwCCwsgCiEGIAchCiADIQULIAUgE0kNAAsLIAIgBjYCBCACIAo2AgAgD0EQaiQAIA0gA2sLxRQCGn8BfiMAQRBrIg8kACACKAIEIQ4gAigCACELIABBADYC3AEgAyAAKAIEIhEgACgCDCITaiIWIANGaiIFIAMgBGoiDEEIayIUSQRAIAAoAggiFSAAKAIQaiEdIBMgFWohGCAMQQFrIR4gDEEDayEcIAxBIGshFyATQQFrIRlBASAAKAK4AXQhEkEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bQQRrIRoDQCAFQQFqIQZBACEKAkAgGSAFIBFrIgRBAWoiByALayIIa0EDSQ0AIAsgByAAKAIQIgkgByASayAJIAcgCWsgEksbIAAoAhgba0sNACAGKAAAIBUgESAIIBNJIgcbIAhqIggoAABHDQAgBUEFaiAIQQRqIAwgGCAMIAcbIBYQD0EEaiEKCyAPQf+T69wDNgIMAkACQAJ/AkACQAJAIBpBAWsOAgECAAsgACAFIAwgD0EMahD4AQwCCyAAIAUgDCAPQQxqEPcBDAELIAAgBSAMIA9BDGoQ9gELIgkgCiAJIApLIgcbIglBBE8EQCAFIAYgBxshBiAPKAIMQQEgBxshCgJAIAUgFE8NAANAIARBAWohCCAFQQFqIQcCQCAKRQRAQQAhCgwBCyAZIAggC2siDWtBA0kNACALIAggACgCECIQIAggEmsgECAIIBBrIBJLGyAAKAIYG2tLDQAgBygAACANIBUgESANIBNJIg0baiIQKAAARw0AIAVBBWogEEEEaiAMIBggDCANGyAWEA8iDUF7Sw0AIApnIAlBA2xqQR5rIA1BBGoiDUEDbE4NAEEBIQogByEGIA0hCQsgD0H/k+vcAzYCCAJ/AkACfwJAAkACQCAaQQFrDgIBAgALIAAgByAMIA9BCGoQ+AEMAgsgACAHIAwgD0EIahD3AQwBCyAAIAcgDCAPQQhqEPYBCyINQQRJDQAgDygCCCIQZyANQQJ0akEfayAKZyAJQQJ0akEba0wNACAIIQQgECEKIA0hCSAHDAELIAcgFE8NAiAEQQJqIQQgBUECaiEHAkAgCkUEQEEAIQoMAQsgGSAEIAtrIghrQQNJDQAgCyAEIAAoAhAiDSAEIBJrIA0gBCANayASSxsgACgCGBtrSw0AIAcoAAAgCCAVIBEgCCATSSIIG2oiDSgAAEcNACAFQQZqIA1BBGogDCAYIAwgCBsgFhAPIgVBe0sNACAKZyAJQQJ0akEeayAFQQRqIgVBAnRODQBBASEKIAchBiAFIQkLIA9B/5Pr3AM2AgQCfwJAAkACQCAaQQFrDgIBAgALIAAgByAMIA9BBGoQ+AEMAgsgACAHIAwgD0EEahD3AQwBCyAAIAcgDCAPQQRqEPYBCyIIQQRJDQIgDygCBCINZyAIQQJ0akEfayAKZyAJQQJ0akEYa0wNAiANIQogCCEJIAcLIgUhBiAFIBRJDQALCwJ/IApBBEkEQCALIQggDgwBCyAKQQNrIQgCQCADIAZPDQAgFSARIAYgCiARamtBA2oiBCATSSIHGyAEaiIFIB0gFiAHGyIHTQ0AA0AgBkEBayIELQAAIAVBAWsiBS0AAEcNASAJQQFqIQkgAyAESQRAIAQhBiAFIAdLDQELCyAEIQYLIAsLIQcgBiADayEOIAEoAgwhBQJAAkAgBiAXTQRAIAMpAAAhHyAFIAMpAAg3AAggBSAfNwAAIAEoAgwhBCAOQRBNBEAgASAEIA5qNgIMIAEoAgQhBQwDCyADKQAQIR8gBCADKQAYNwAYIAQgHzcAECAOQSFIDQEgBCAOaiELIANBEGohBSAEQSBqIQMDQCAFKQAQIR8gAyAFKQAYNwAIIAMgHzcAACAFKQAgIR8gAyAFKQAoNwAYIAMgHzcAECAFQSBqIQUgA0EgaiIDIAtJDQALDAELIAMgF00EQCADKQAAIR8gBSADKQAINwAIIAUgHzcAACAFIBcgA2siC2ohBCALQRFOBEAgBUEQaiEFA0AgAykAECEfIAUgAykAGDcACCAFIB83AAAgAykAICEfIAUgAykAKDcAGCAFIB83ABAgA0EgaiEDIAVBIGoiBSAESQ0ACwsgBCEFIBchAwsgAyAGTw0AQQAhCyAGIAMiBGtBB3EiDQRAA0AgBSAELQAAOgAAIAVBAWohBSAEQQFqIQQgC0EBaiILIA1HDQALCyADIAZrQXhLDQADQCAFIAQtAAA6AAAgBSAELQABOgABIAUgBC0AAjoAAiAFIAQtAAM6AAMgBSAELQAEOgAEIAUgBC0ABToABSAFIAQtAAY6AAYgBSAELQAHOgAHIAVBCGohBSAEQQhqIgQgBkcNAAsLIAEgASgCDCAOajYCDCABKAIEIQUgDkGAgARJDQAgAUEBNgIkIAEgBSABKAIAa0EDdTYCKAsgBSAKNgIAIAUgDjsBBCAJQQNrIgNBgIAETwRAIAFBAjYCJCABIAUgASgCAGtBA3U2AigLIAUgAzsBBiABIAVBCGoiCjYCBCAGIAlqIQMgACgC3AEEQCAAQQA2AtwBCyAHIQ4gCCELIBQgAyIFSQ0CA0AgByELIAghByAZIAMgEWsiBCALayIFa0EDSQ0CIAsgBCAAKAIQIgYgBCASayAGIAQgBmsgEksbIAAoAhgba0sNAiADKAAAIBUgESAFIBNJIgkbIAVqIgQoAABHDQIgBEEEaiIIIQQgA0EEaiIGIQUgCAJ/AkAgBiAYIAwgCRsiDiAIa2oiCSAMIAkgDEkbIglBA2siDSAGTQ0AIAYoAAAiECAIKAAAIhtHBEAgECAbc2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIA1PDQEgBSgAACIQIAQoAAAiG0YNAAsgBSAQIBtzaEEDdmogBmsMAQsCQCAFIAlBAWtPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgCUkEfyAFIAQtAAAgBS0AAEZqBSAFCyAGawsiCWogDkYEQCAWIQQgBiAJaiIGIQUCfwJAIAYgHE8NACAGKAAAIgggBCgAACIORwRAIAggDnNoQQN2DAILA0AgBEEEaiEEIAVBBGoiBSAcTw0BIAUoAAAiCCAEKAAAIg5GDQALIAUgCCAOc2hBA3ZqIAZrDAELAkAgBSAeTw0AIAQvAAAgBS8AAEcNACAEQQJqIQQgBUECaiEFCyAFIAxJBH8gBSAELQAAIAUtAABGagUgBQsgBmsLIAlqIQkLIAMgF00EQCADKQAAIR8gASgCDCIEIAMpAAg3AAggBCAfNwAAIAEoAgQhCgsgCkEBNgIAIApBADsBBCAJQQFqIgRBgIAETwRAIAFBAjYCJCABIAogASgCAGtBA3U2AigLIAogBDsBBiABIApBCGoiCjYCBCALIQggByEOIAlBBGogA2oiAyEFIAMgFE0NAAsMAgsgACAFIANrIgRB/xFLNgLcASAEQQh2IAVqQQFqIQUMAQsgCyEOIAchCyADIQULIAUgFEkNAAsLIAIgDjYCBCACIAs2AgAgD0EQaiQAIAwgA2sLvBQCGn8BfiMAQRBrIg8kACACKAIEIQ4gAigCACELIABBADYC3AEgAyAAKAIEIhEgACgCDCITaiIWIANGaiIFIAMgBGoiDEEIayIUSQRAIAAoAggiFSAAKAIQaiEdIBMgFWohGCAMQQFrIR4gDEEDayEcIAxBIGshFyATQQFrIRlBASAAKAK4AXQhEkEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bQQRrIRoDQCAFQQFqIQZBACEKAkAgGSAFIBFrIgRBAWoiByALayIIa0EDSQ0AIAsgByAAKAIQIgkgByASayAJIAcgCWsgEksbIAAoAhgba0sNACAGKAAAIBUgESAIIBNJIgcbIAhqIggoAABHDQAgBUEFaiAIQQRqIAwgGCAMIAcbIBYQD0EEaiEKCyAPQf+T69wDNgIMAkACQAJ/AkACQAJAIBpBAWsOAgECAAsgACAFIAwgD0EMahBtDAILIAAgBSAMIA9BDGoQbAwBCyAAIAUgDCAPQQxqEGsLIgkgCiAJIApLIgcbIglBBE8EQCAFIAYgBxshBiAPKAIMQQEgBxshCgJAIAUgFE8NAANAIARBAWohCCAFQQFqIQcCQCAKRQRAQQAhCgwBCyAZIAggC2siDWtBA0kNACALIAggACgCECIQIAggEmsgECAIIBBrIBJLGyAAKAIYG2tLDQAgBygAACANIBUgESANIBNJIg0baiIQKAAARw0AIAVBBWogEEEEaiAMIBggDCANGyAWEA8iDUF7Sw0AIApnIAlBA2xqQR5rIA1BBGoiDUEDbE4NAEEBIQogByEGIA0hCQsgD0H/k+vcAzYCCAJ/AkACfwJAAkACQCAaQQFrDgIBAgALIAAgByAMIA9BCGoQbQwCCyAAIAcgDCAPQQhqEGwMAQsgACAHIAwgD0EIahBrCyINQQRJDQAgDygCCCIQZyANQQJ0akEfayAKZyAJQQJ0akEba0wNACAIIQQgECEKIA0hCSAHDAELIAcgFE8NAiAEQQJqIQQgBUECaiEHAkAgCkUEQEEAIQoMAQsgGSAEIAtrIghrQQNJDQAgCyAEIAAoAhAiDSAEIBJrIA0gBCANayASSxsgACgCGBtrSw0AIAcoAAAgCCAVIBEgCCATSSIIG2oiDSgAAEcNACAFQQZqIA1BBGogDCAYIAwgCBsgFhAPIgVBe0sNACAKZyAJQQJ0akEeayAFQQRqIgVBAnRODQBBASEKIAchBiAFIQkLIA9B/5Pr3AM2AgQCfwJAAkACQCAaQQFrDgIBAgALIAAgByAMIA9BBGoQbQwCCyAAIAcgDCAPQQRqEGwMAQsgACAHIAwgD0EEahBrCyIIQQRJDQIgDygCBCINZyAIQQJ0akEfayAKZyAJQQJ0akEYa0wNAiANIQogCCEJIAcLIgUhBiAFIBRJDQALCwJ/IApBBEkEQCALIQggDgwBCyAKQQNrIQgCQCADIAZPDQAgFSARIAYgCiARamtBA2oiBCATSSIHGyAEaiIFIB0gFiAHGyIHTQ0AA0AgBkEBayIELQAAIAVBAWsiBS0AAEcNASAJQQFqIQkgAyAESQRAIAQhBiAFIAdLDQELCyAEIQYLIAsLIQcgBiADayEOIAEoAgwhBQJAAkAgBiAXTQRAIAMpAAAhHyAFIAMpAAg3AAggBSAfNwAAIAEoAgwhBCAOQRBNBEAgASAEIA5qNgIMIAEoAgQhBQwDCyADKQAQIR8gBCADKQAYNwAYIAQgHzcAECAOQSFIDQEgBCAOaiELIANBEGohBSAEQSBqIQMDQCAFKQAQIR8gAyAFKQAYNwAIIAMgHzcAACAFKQAgIR8gAyAFKQAoNwAYIAMgHzcAECAFQSBqIQUgA0EgaiIDIAtJDQALDAELIAMgF00EQCADKQAAIR8gBSADKQAINwAIIAUgHzcAACAFIBcgA2siC2ohBCALQRFOBEAgBUEQaiEFA0AgAykAECEfIAUgAykAGDcACCAFIB83AAAgAykAICEfIAUgAykAKDcAGCAFIB83ABAgA0EgaiEDIAVBIGoiBSAESQ0ACwsgBCEFIBchAwsgAyAGTw0AQQAhCyAGIAMiBGtBB3EiDQRAA0AgBSAELQAAOgAAIAVBAWohBSAEQQFqIQQgC0EBaiILIA1HDQALCyADIAZrQXhLDQADQCAFIAQtAAA6AAAgBSAELQABOgABIAUgBC0AAjoAAiAFIAQtAAM6AAMgBSAELQAEOgAEIAUgBC0ABToABSAFIAQtAAY6AAYgBSAELQAHOgAHIAVBCGohBSAEQQhqIgQgBkcNAAsLIAEgASgCDCAOajYCDCABKAIEIQUgDkGAgARJDQAgAUEBNgIkIAEgBSABKAIAa0EDdTYCKAsgBSAKNgIAIAUgDjsBBCAJQQNrIgNBgIAETwRAIAFBAjYCJCABIAUgASgCAGtBA3U2AigLIAUgAzsBBiABIAVBCGoiCjYCBCAGIAlqIQMgACgC3AEEQCAAQQA2AtwBCyAHIQ4gCCELIBQgAyIFSQ0CA0AgByELIAghByAZIAMgEWsiBCALayIFa0EDSQ0CIAsgBCAAKAIQIgYgBCASayAGIAQgBmsgEksbIAAoAhgba0sNAiADKAAAIBUgESAFIBNJIgkbIAVqIgQoAABHDQIgBEEEaiIIIQQgA0EEaiIGIQUgCAJ/AkAgBiAYIAwgCRsiDiAIa2oiCSAMIAkgDEkbIglBA2siDSAGTQ0AIAYoAAAiECAIKAAAIhtHBEAgECAbc2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIA1PDQEgBSgAACIQIAQoAAAiG0YNAAsgBSAQIBtzaEEDdmogBmsMAQsCQCAFIAlBAWtPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgCUkEfyAFIAQtAAAgBS0AAEZqBSAFCyAGawsiCWogDkYEQCAWIQQgBiAJaiIGIQUCfwJAIAYgHE8NACAGKAAAIgggBCgAACIORwRAIAggDnNoQQN2DAILA0AgBEEEaiEEIAVBBGoiBSAcTw0BIAUoAAAiCCAEKAAAIg5GDQALIAUgCCAOc2hBA3ZqIAZrDAELAkAgBSAeTw0AIAQvAAAgBS8AAEcNACAEQQJqIQQgBUECaiEFCyAFIAxJBH8gBSAELQAAIAUtAABGagUgBQsgBmsLIAlqIQkLIAMgF00EQCADKQAAIR8gASgCDCIEIAMpAAg3AAggBCAfNwAAIAEoAgQhCgsgCkEBNgIAIApBADsBBCAJQQFqIgRBgIAETwRAIAFBAjYCJCABIAogASgCAGtBA3U2AigLIAogBDsBBiABIApBCGoiCjYCBCALIQggByEOIAlBBGogA2oiAyEFIAMgFE0NAAsMAgsgACAFIANrIgRB/xFLNgLcASAEQQh2IAVqQQFqIQUMAQsgCyEOIAchCyADIQULIAUgFEkNAAsLIAIgDjYCBCACIAs2AgAgD0EQaiQAIAwgA2sLlRICGn8BfiMAQRBrIg8kACACKAIEIQkgAigCACEKIABBADYC3AEgAyAAKAIEIhAgACgCDCIRaiIWIANGaiIFIAMgBGoiDUEIayITSQRAIAAoAggiFCAAKAIQaiEdIBEgFGohFyANQQFrIR4gDUEDayEbIA1BIGshFSARQQFrIRhBASAAKAK4AXQhEkEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bQQRrIRwDQCAFQQFqIQtBACEGAkAgGCAFIBBrIgRBAWoiDCAKayIHa0EDSQ0AIAogDCAAKAIQIgggDCASayAIIAwgCGsgEksbIAAoAhgba0sNACALKAAAIBQgECAHIBFJIgwbIAdqIgcoAABHDQAgBUEFaiAHQQRqIA0gFyANIAwbIBYQD0EEaiEGCyAPQf+T69wDNgIMAkACQAJ/AkACQAJAIBxBAWsOAgECAAsgACAFIA0gD0EMahBtDAILIAAgBSANIA9BDGoQbAwBCyAAIAUgDSAPQQxqEGsLIgggBiAGIAhJIggbIgdBBE8EQCAFIAsgCBsiDCEGIA8oAgxBASAIGyILIQ4gByEIAkAgBSATTw0AA0AgBEEBaiEEIAVBAWohBgJAIAtFBEBBACELDAELIBggBCAKayIIa0EDSQ0AIAogBCAAKAIQIg4gBCASayAOIAQgDmsgEksbIAAoAhgba0sNACAGKAAAIAggFCAQIAggEUkiCBtqIg4oAABHDQAgBUEFaiAOQQRqIA0gFyANIAgbIBYQDyIFQXtLDQAgC2cgB0EDbGpBHmsgBUEEaiIFQQNsTg0AQQEhCyAGIQwgBSEHCyAPQf+T69wDNgIIAkACfwJAAkACQCAcQQFrDgIBAgALIAAgBiANIA9BCGoQbQwCCyAAIAYgDSAPQQhqEGwMAQsgACAGIA0gD0EIahBrCyIIQQRJDQAgDygCCCIOZyAIQQJ0akEfayALZyAHQQJ0akEba0wNACAIIQcgDiELIAYiBSEMIAUgE0kNAQwCCwsgDCEGIAshDiAHIQgLAn8gDkEESQRAIAohByAJDAELIA5BA2shBwJAIAMgBk8NACAUIBAgBiAOIBBqa0EDaiIEIBFJIgwbIARqIgUgHSAWIAwbIgxNDQADQCAGQQFrIgQtAAAgBUEBayIFLQAARw0BIAhBAWohCCADIARJBEAgBCEGIAUgDEsNAQsLIAQhBgsgCgshDCAGIANrIQkgASgCDCEFAkACQCAGIBVNBEAgAykAACEfIAUgAykACDcACCAFIB83AAAgASgCDCEEIAlBEE0EQCABIAQgCWo2AgwgASgCBCEFDAMLIAMpABAhHyAEIAMpABg3ABggBCAfNwAQIAlBIUgNASAEIAlqIQogA0EQaiEFIARBIGohAwNAIAUpABAhHyADIAUpABg3AAggAyAfNwAAIAUpACAhHyADIAUpACg3ABggAyAfNwAQIAVBIGohBSADQSBqIgMgCkkNAAsMAQsgAyAVTQRAIAMpAAAhHyAFIAMpAAg3AAggBSAfNwAAIAUgFSADayIKaiEEIApBEU4EQCAFQRBqIQUDQCADKQAQIR8gBSADKQAYNwAIIAUgHzcAACADKQAgIR8gBSADKQAoNwAYIAUgHzcAECADQSBqIQMgBUEgaiIFIARJDQALCyAEIQUgFSEDCyADIAZPDQBBACEKIAYgAyIEa0EHcSILBEADQCAFIAQtAAA6AAAgBUEBaiEFIARBAWohBCAKQQFqIgogC0cNAAsLIAMgBmtBeEsNAANAIAUgBC0AADoAACAFIAQtAAE6AAEgBSAELQACOgACIAUgBC0AAzoAAyAFIAQtAAQ6AAQgBSAELQAFOgAFIAUgBC0ABjoABiAFIAQtAAc6AAcgBUEIaiEFIARBCGoiBCAGRw0ACwsgASABKAIMIAlqNgIMIAEoAgQhBSAJQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIA42AgAgBSAJOwEEIAhBA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiILNgIEIAYgCGohAyAAKALcAQRAIABBADYC3AELIAwhCSAHIQogEyADIgVJDQIDQCAMIQogByEMIBggAyAQayIEIAprIgdrQQNJDQIgCiAEIAAoAhAiBSAEIBJrIAUgBCAFayASSxsgACgCGBtrSw0CIAMoAAAgFCAQIAcgEUkiBhsgB2oiBCgAAEcNAiAEQQRqIgkhBCADQQRqIgchBSAJAn8CQCAHIBcgDSAGGyIIIAlraiIGIA0gBiANSRsiBkEDayIOIAdNDQAgBygAACIZIAkoAAAiGkcEQCAZIBpzaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgDk8NASAFKAAAIhkgBCgAACIaRg0ACyAFIBkgGnNoQQN2aiAHawwBCwJAIAUgBkEBa08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSAGSQR/IAUgBC0AACAFLQAARmoFIAULIAdrCyIGaiAIRgRAIBYhBCAGIAdqIgchBQJ/AkAgByAbTw0AIAcoAAAiCSAEKAAAIghHBEAgCCAJc2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIBtPDQEgBSgAACIJIAQoAAAiCEYNAAsgBSAIIAlzaEEDdmogB2sMAQsCQCAFIB5PDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgDUkEfyAFIAQtAAAgBS0AAEZqBSAFCyAHawsgBmohBgsgAyAVTQRAIAMpAAAhHyABKAIMIgQgAykACDcACCAEIB83AAAgASgCBCELCyALQQE2AgAgC0EAOwEEIAZBAWoiBEGAgARPBEAgAUECNgIkIAEgCyABKAIAa0EDdTYCKAsgCyAEOwEGIAEgC0EIaiILNgIEIAohByAMIQkgBkEEaiADaiIDIQUgAyATTQ0ACwwCCyAAIAUgA2siBEH/EUs2AtwBIARBCHYgBWpBAWohBQwBCyAKIQkgDCEKIAMhBQsgBSATSQ0ACwsgAiAJNgIEIAIgCjYCACAPQRBqJAAgDSADawsDAAALqA8CGn8BfiMAQRBrIg8kACACKAIEIQYgAigCACEIIABBADYC3AEgAyAAKAIEIhAgACgCDCIRaiIVIANGaiIFIAMgBGoiDEEIayIWSQRAIAAoAggiEyAAKAIQaiEbIBEgE2ohFyAMQQFrIRwgDEEDayEYIAxBIGshEiARQQFrIRlBASAAKAK4AXQhFEEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bQQRrIR0DQAJAAn8CQAJAAkAgGSAFIBBrQQFqIgkgCGsiDWtBA0kNACAIIAkgACgCECIEIAkgFGsgBCAJIARrIBRLGyAAKAIYG2tLDQAgBUEBaiIHKAAAIA0gEyAQIA0gEUkiDRtqIgQoAABHDQAgBUEFaiAEQQRqIAwgFyAMIA0bIBUQD0EEaiEOQQEhCgwBCyAPQf+T69wDNgIMAn8CQAJAAkAgHUEBaw4CAQIACyAAIAUgDCAPQQxqEG0MAgsgACAFIAwgD0EMahBsDAELIAAgBSAMIA9BDGoQawsiDkEDTQRAIAAgBSADayIEQf8RSzYC3AEgBEEIdiAFakEBaiEFDAQLIA8oAgwiCkEETw0BIAUhBwsgCCEJIAYMAQsgCkEDayEJAkACQCADIAVPDQAgEyAQIAUgCiAQamtBA2oiDSARSSIEGyANaiIGIBsgFSAEGyIETQ0AA0AgBUEBayIHLQAAIAZBAWsiBi0AAEcNASAOQQFqIQ4gAyAHTw0CIAchBSAEIAZJDQALDAELIAUhBwsgCAshDSAHIANrIQsgASgCDCEFAkACQCAHIBJNBEAgAykAACEfIAUgAykACDcACCAFIB83AAAgASgCDCEIIAtBEE0EQCABIAggC2o2AgwgASgCBCEFDAMLIAMpABAhHyAIIAMpABg3ABggCCAfNwAQIAtBIUgNASAIIAtqIQQgA0EQaiEFIAhBIGohAwNAIAUpABAhHyADIAUpABg3AAggAyAfNwAAIAUpACAhHyADIAUpACg3ABggAyAfNwAQIAVBIGohBSADQSBqIgMgBEkNAAsMAQsgAyASTQRAIAMpAAAhHyAFIAMpAAg3AAggBSAfNwAAIAUgEiADayIIaiEEIAhBEU4EQCAFQRBqIQUDQCADKQAQIR8gBSADKQAYNwAIIAUgHzcAACADKQAgIR8gBSADKQAoNwAYIAUgHzcAECADQSBqIQMgBUEgaiIFIARJDQALCyAEIQUgEiEDCyADIAdPDQBBACEEIAMhBiAHIANrQQdxIggEQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIARBAWoiBCAIRw0ACwsgAyAHa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIAdHDQALCyABIAEoAgwgC2o2AgwgASgCBCEFIAtBgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgCjYCACAFIAs7AQQgDkEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgQ2AgQgByAOaiEDIAAoAtwBBEAgAEEANgLcAQsgDSEGIAkhCCAWIAMiBUkNAANAAkAgDSEIIAkhDSAZIAMgEGsiCSAIayIGa0EDSQ0AIAggCSAAKAIQIgUgCSAUayAFIAkgBWsgFEsbIAAoAhgba0sNACADKAAAIBMgECAGIBFJIgcbIAZqIgUoAABHDQAgBUEEaiIJIQYgA0EEaiIKIQUgCQJ/AkAgCiAXIAwgBxsiHiAJa2oiByAMIAcgDEkbIhpBA2siDiAKTQ0AIAooAAAiCyAJKAAAIgdHBEAgByALc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIA5PDQEgBSgAACILIAYoAAAiB0YNAAsgBSAHIAtzaEEDdmogCmsMAQsCQCAFIBpBAWtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgGkkEfyAFIAYtAAAgBS0AAEZqBSAFCyAKawsiB2ogHkYEQCAVIQYgByAKaiIJIQUCfwJAIAkgGE8NACAJKAAAIgsgBigAACIKRwRAIAogC3NoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSAYTw0BIAUoAAAiCyAGKAAAIgpGDQALIAUgCiALc2hBA3ZqIAlrDAELAkAgBSAcTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAxJBH8gBSAGLQAAIAUtAABGagUgBQsgCWsLIAdqIQcLIAMgEk0EQCADKQAAIR8gASgCDCIEIAMpAAg3AAggBCAfNwAAIAEoAgQhBAsgBEEBNgIAIARBADsBBCAHQQFqIgVBgIAETwRAIAFBAjYCJCABIAQgASgCAGtBA3U2AigLIAQgBTsBBiABIARBCGoiBDYCBCAIIQkgDSEGIAdBBGogA2oiAyEFIAMgFk0NAQwCCwsgCCEGIA0hCCADIQULIAUgFkkNAAsLIAIgBjYCBCACIAg2AgAgD0EQaiQAIAwgA2sL1BUCHX8CfiMAQRBrIg4kACACKAIEIQYgAigCACEJIAAoArQBIgUoAgAhFSAFKAIEIRYgBSgCDCEHIABBADYC3AEgACgCxAEhDEEEQQYgACgCyAEiBSAFQQZPGyIFIAVBBE0bIRMgAyADIAAoAgQiDyAAKAIMIhJqIhdrIAcgFmoiHCAVa0ZqIQUCQCAAKAIcIgggCEEIIAMgBGoiDUEPayIdIAggD2oiB2siBCAEQQhPG0EAIAcgDUEQayIUTRtqIgpPDQBBGCAAKAIkIgRrIQtBOCAEa60hIyAAKQNQIiKnIRAgDEEETQRAIBNBBWshBANAIAggD2ohByAAIAhBB3FBAnRqAn8CQAJAAkAgBA4CAAECCyAHKQAAQoCAgNjLm++NT34gIoUgI4inDAILIAcpAABCgIDs/Mub741PfiAihSAjiKcMAQsgBygAAEGx893xeWwgEHMgC3YLNgIsIAhBAWoiCCAKRw0ACwwBCyAMQQVGBEAgE0EFayEEA0AgCCAPaiEHIAAgCEEHcUECdGoCfwJAAkACQCAEDgIAAQILIAcpAABCgICA2Mub741PfiAihSAjiKcMAgsgBykAAEKAgOz8y5vvjU9+ICKFICOIpwwBCyAHKAAAQbHz3fF5bCAQcyALdgs2AiwgCEEBaiIIIApHDQALDAELIBNBBWshBANAIAggD2ohByAAIAhBB3FBAnRqAn8CQAJAAkAgBA4CAQIACyAHKAAAQbHz3fF5bCAQcyALdgwCCyAHKQAAQoCAgNjLm++NT34gIoUgI4inDAELIAcpAABCgIDs/Mub741PfiAihSAjiKcLNgIsIAhBAWoiCCAKRw0ACwsgBSAUSQRAQQRBBiAMIAxBBk8bIgQgBEEETRshGCANQQFrIR4gDUEDayEZIA1BIGshECAWIBYgFWsgEmoiH2shGiATQQVrISADQAJAAn8CQAJAAkAgBSAJIA9qa0EBaiIEIBJrQXxLDQAgFiAEIB9raiAEIA9qIAQgEkkiDBsiBygAACAFQQFqIgQoAABHDQAgBUEFaiAHQQRqIA0gFSANIAwbIBcQD0EEaiERQQEhCwwBCyAOQf+T69wDNgIMAn8CQAJAAkAgE0EFaw4CAQIACwJAAkACQCAYQQVrDgIBAgALIAAgBSANIA5BDGoQdgwECyAAIAUgDSAOQQxqEHUMAwsgACAFIA0gDkEMahB0DAILAkACQAJAIBhBBWsOAgECAAsgACAFIA0gDkEMahBzDAMLIAAgBSANIA5BDGoQcgwCCyAAIAUgDSAOQQxqEHEMAQsCQAJAAkAgGEEFaw4CAQIACyAAIAUgDSAOQQxqEHAMAgsgACAFIA0gDkEMahBvDAELIAAgBSANIA5BDGoQbgsiEUEDTQRAIAAgBSADayIEQf8PSzYC3AEgBEEIdiAFakEBaiEFDAQLIA4oAgwiC0EETw0BIAUhBAsgCSEMIAYMAQsgC0EDayEMAkACQCADIAVPDQAgGiAPIAUgCyAPamtBA2oiByASSSIEGyAHaiIGIBwgFyAEGyIHTQ0AA0AgBUEBayIELQAAIAZBAWsiBi0AAEcNASARQQFqIREgAyAETw0CIAQhBSAGIAdLDQALDAELIAUhBAsgCQshByAEIANrIQogASgCDCEFAkACQCAEIBBNBEAgAykAACEiIAUgAykACDcACCAFICI3AAAgASgCDCEGIApBEE0EQCABIAYgCmo2AgwgASgCBCEFDAMLIAMpABAhIiAGIAMpABg3ABggBiAiNwAQIApBIUgNASAGIApqIQkgA0EQaiEFIAZBIGohAwNAIAUpABAhIiADIAUpABg3AAggAyAiNwAAIAUpACAhIiADIAUpACg3ABggAyAiNwAQIAVBIGohBSADQSBqIgMgCUkNAAsMAQsgAyAQTQRAIAMpAAAhIiAFIAMpAAg3AAggBSAiNwAAIAUgECADayIGaiEJIAZBEU4EQCAFQRBqIQUDQCADKQAQISIgBSADKQAYNwAIIAUgIjcAACADKQAgISIgBSADKQAoNwAYIAUgIjcAECADQSBqIQMgBUEgaiIFIAlJDQALCyAJIQUgECEDCyADIARPDQBBACEIIAMhBiAEIANrQQdxIgkEQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIAhBAWoiCCAJRw0ACwsgAyAEa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIARHDQALCyABIAEoAgwgCmo2AgwgASgCBCEFIApBgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgCzYCACAFIAo7AQQgEUEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgg2AgQgBCARaiEDIAAoAtwBBEAgACgCHCIFIAVBCCAdIAUgD2oiCWsiBCAEQQhPG0EAIAkgFE0baiILSQRAQRggACgCJCIEayEJQTggBGutISMgACkDUCIipyEEA0AgBSAPaiEGIAAgBUEHcUECdGoCfwJAAkACQCAgDgIBAgALIAYoAABBsfPd8XlsIARzIAl2DAILIAYpAABCgICA2Mub741PfiAihSAjiKcMAQsgBikAAEKAgOz8y5vvjU9+ICKFICOIpws2AiwgBUEBaiIFIAtHDQALCyAAQQA2AtwBCyAHIQYgDCEJIBQgAyIFSQ0AA0ACQCAHIQkgDCEHIAMgCSAPamsiBCASa0F8Sw0AIBogDyAEIBJJIgobIARqIgQoAAAgAygAAEcNACAEQQRqIgwhBiADQQRqIgshBSAMAn8CQCALIBUgDSAKGyIhIAxraiIEIA0gBCANSRsiG0EDayIRIAtNDQAgCygAACIKIAwoAAAiBEcEQCAEIApzaEEDdgwCCwNAIAZBBGohBiAFQQRqIgUgEU8NASAFKAAAIgogBigAACIERg0ACyAFIAQgCnNoQQN2aiALawwBCwJAIAUgG0EBa08NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSAbSQR/IAUgBi0AACAFLQAARmoFIAULIAtrCyIEaiAhRgRAIBchBiAEIAtqIgwhBQJ/AkAgDCAZTw0AIAwoAAAiCiAGKAAAIgtHBEAgCiALc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBlPDQEgBSgAACIKIAYoAAAiC0YNAAsgBSAKIAtzaEEDdmogDGsMAQsCQCAFIB5PDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgDUkEfyAFIAYtAAAgBS0AAEZqBSAFCyAMawsgBGohBAsgAyAQTQRAIAMpAAAhIiABKAIMIgUgAykACDcACCAFICI3AAAgASgCBCEICyAIQQE2AgAgCEEAOwEEIARBAWoiBUGAgARPBEAgAUECNgIkIAEgCCABKAIAa0EDdTYCKAsgCCAFOwEGIAEgCEEIaiIINgIEIAkhDCAHIQYgBEEEaiADaiIDIQUgAyAUTQ0BDAILCyAJIQYgByEJIAMhBQsgBSAUSQ0ACwsgAiAGNgIEIAIgCTYCACAOQRBqJAAgDSADawuPHAIhfwJ+IwBBEGsiDSQAIAIoAgQhDCACKAIAIQsgACgCtAEiBSgCACEVIAUoAgQhFiAFKAIMIQUgAEEANgLcASAAKALEASEPQQRBBiAAKALIASIIIAhBBk8bIgggCEEETRshFyADIAMgACgCBCIQIAAoAgwiEmoiG2sgBSAWaiIiIBVrRmohBQJAIAAoAhwiBiAGQQggAyAEaiIJQQ9rIiMgBiAQaiIEayIIIAhBCE8bQQAgBCAJQRBrIhNNG2oiBE8NAEEYIAAoAiQiB2shCEE4IAdrrSEmIAApA1AiJ6chCiAPQQRNBEAgF0EFayEOA0AgBiAQaiEHIAAgBkEHcUECdGoCfwJAAkACQCAODgIAAQILIAcpAABCgICA2Mub741PfiAnhSAmiKcMAgsgBykAAEKAgOz8y5vvjU9+ICeFICaIpwwBCyAHKAAAQbHz3fF5bCAKcyAIdgs2AiwgBkEBaiIGIARHDQALDAELIA9BBUYEQCAXQQVrIQ4DQCAGIBBqIQcgACAGQQdxQQJ0agJ/AkACQAJAIA4OAgABAgsgBykAAEKAgIDYy5vvjU9+ICeFICaIpwwCCyAHKQAAQoCA7PzLm++NT34gJ4UgJoinDAELIAcoAABBsfPd8XlsIApzIAh2CzYCLCAGQQFqIgYgBEcNAAsMAQsgF0EFayEOA0AgBiAQaiEHIAAgBkEHcUECdGoCfwJAAkACQCAODgIBAgALIAcoAABBsfPd8XlsIApzIAh2DAILIAcpAABCgICA2Mub741PfiAnhSAmiKcMAQsgBykAAEKAgOz8y5vvjU9+ICeFICaIpws2AiwgBkEBaiIGIARHDQALCyAFIBNJBEBBBEEGIA8gD0EGTxsiBCAEQQRNGyEUIAlBIGshGCAWIBYgFWsgEmoiH2shICAJQQFrISEgCUEDayEcA0AgBUEBaiEIAn9BACAFIAsgEGoiGWtBAWoiBCASa0F8Sw0AGkEAIBYgBCAfa2ogBCAQaiAEIBJJIgQbIgcoAAAgCCgAAEcNABogBUEFaiAHQQRqIAkgFSAJIAQbIBsQD0EEagshBiANQf+T69wDNgIMAkACQAJ/AkACQAJAIBdBBGsiJEEBaw4CAQIACwJAAkACQCAUQQVrDgIBAgALIAAgBSAJIA1BDGoQdgwECyAAIAUgCSANQQxqEHUMAwsgACAFIAkgDUEMahB0DAILAkACQAJAIBRBBWsOAgECAAsgACAFIAkgDUEMahBzDAMLIAAgBSAJIA1BDGoQcgwCCyAAIAUgCSANQQxqEHEMAQsCQAJAAkAgFEEFaw4CAQIACyAAIAUgCSANQQxqEHAMAgsgACAFIAkgDUEMahBvDAELIAAgBSAJIA1BDGoQbgsiBCAGIAQgBksiBBsiDkEETwRAIAUgCCAEGyEHIA0oAgxBASAEGyERAkAgBSATTw0AA0ACQCAFQQFqIgggGWsiBCASa0F8Sw0AIBYgBCAfa2ogBCAQaiAEIBJJIg8bIgQoAAAgCCgAAEcNACAEQQRqIgYhBCAFQQVqIgohBSAGAn8CQCAKIBUgCSAPGyIaIAZraiIPIAkgCSAPSxsiD0EDayIlIApNDQAgCigAACIdIAYoAAAiHkcEQCAdIB5zaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgJU8NASAFKAAAIh0gBCgAACIeRg0ACyAFIB0gHnNoQQN2aiAKawwBCwJAIAUgD0EBa08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSAPSQR/IAUgBC0AACAFLQAARmoFIAULIAprCyIPaiAaRgRAIBshBCAKIA9qIgohBQJ/AkAgCiAcTw0AIAooAAAiBiAEKAAAIhpHBEAgBiAac2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIBxPDQEgBSgAACIGIAQoAAAiGkYNAAsgBSAGIBpzaEEDdmogCmsMAQsCQCAFICFPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgCUkEfyAFIAQtAAAgBS0AAEZqBSAFCyAKawsgD2ohDwsgD0F7Sw0AIBFnIA5BA2xqQR5rIA9BBGoiBEEDbE4NAEEBIREgCCEHIAQhDgsgDUH/k+vcAzYCCAJ/AkACQAJAICRBAWsOAgECAAsCQAJAAkAgFEEFaw4CAQIACyAAIAggCSANQQhqEHYMBAsgACAIIAkgDUEIahB1DAMLIAAgCCAJIA1BCGoQdAwCCwJAAkACQCAUQQVrDgIBAgALIAAgCCAJIA1BCGoQcwwDCyAAIAggCSANQQhqEHIMAgsgACAIIAkgDUEIahBxDAELAkACQAJAIBRBBWsOAgECAAsgACAIIAkgDUEIahBwDAILIAAgCCAJIA1BCGoQbwwBCyAAIAggCSANQQhqEG4LIgRBBEkNASANKAIIIgVnIARBAnRqQR9rIBFnIA5BAnRqQRtrTA0BIAQhDiAFIREgCCIFIQcgBSATRw0ACyATIQcLAn8gEUEESQRAIAshCiAMDAELIBFBA2shCgJAIAMgB08NACAgIBAgByAQIBFqa0EDaiIEIBJJIggbIARqIgUgIiAbIAgbIghNDQADQCAHQQFrIgQtAAAgBUEBayIFLQAARw0BIA5BAWohDiADIARJBEAgBCEHIAUgCEsNAQsLIAQhBwsgCwshCCAHIANrIQsgASgCDCEFAkACQCAHIBhNBEAgAykAACEmIAUgAykACDcACCAFICY3AAAgASgCDCEEIAtBEE0EQCABIAQgC2o2AgwgASgCBCEFDAMLIAMpABAhJiAEIAMpABg3ABggBCAmNwAQIAtBIUgNASAEIAtqIQwgA0EQaiEFIARBIGohAwNAIAUpABAhJiADIAUpABg3AAggAyAmNwAAIAUpACAhJiADIAUpACg3ABggAyAmNwAQIAVBIGohBSADQSBqIgMgDEkNAAsMAQsgAyAYTQRAIAMpAAAhJiAFIAMpAAg3AAggBSAmNwAAIAUgGCADayIMaiEEIAxBEU4EQCAFQRBqIQUDQCADKQAQISYgBSADKQAYNwAIIAUgJjcAACADKQAgISYgBSADKQAoNwAYIAUgJjcAECADQSBqIQMgBUEgaiIFIARJDQALCyAEIQUgGCEDCyADIAdPDQBBACEEIAMhBiAHIANrQQdxIgwEQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIARBAWoiBCAMRw0ACwsgAyAHa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIAdHDQALCyABIAEoAgwgC2o2AgwgASgCBCEFIAtBgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgETYCACAFIAs7AQQgDkEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgQ2AgQgByAOaiEDIAAoAtwBBEAgACgCHCIFIAVBCCAjIAUgEGoiC2siByAHQQhPG0EAIAsgE00baiIHSQRAQRggACgCJCILayEMQTggC2utISYgACkDUCInpyEOA0AgBSAQaiELIAAgBUEHcUECdGoCfwJAAkACQCAXQQVrDgIBAgALIAsoAABBsfPd8XlsIA5zIAx2DAILIAspAABCgICA2Mub741PfiAnhSAmiKcMAQsgCykAAEKAgOz8y5vvjU9+ICeFICaIpws2AiwgBUEBaiIFIAdHDQALCyAAQQA2AtwBCyAIIQwgCiELIBMgAyIFSQ0CA0AgCCELIAohCCADIAsgEGprIgUgEmtBfEsNAiAgIBAgBSASSSIHGyAFaiIFKAAAIAMoAABHDQIgBUEEaiIKIQYgA0EEaiIMIQUgCgJ/AkAgDCAVIAkgBxsiDiAKa2oiByAJIAcgCUkbIgdBA2siESAMTQ0AIAwoAAAiDyAKKAAAIhlHBEAgDyAZc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBFPDQEgBSgAACIPIAYoAAAiGUYNAAsgBSAPIBlzaEEDdmogDGsMAQsCQCAFIAdBAWtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgB0kEfyAFIAYtAAAgBS0AAEZqBSAFCyAMawsiB2ogDkYEQCAbIQYgByAMaiIMIQUCfwJAIAwgHE8NACAMKAAAIgogBigAACIORwRAIAogDnNoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSAcTw0BIAUoAAAiCiAGKAAAIg5GDQALIAUgCiAOc2hBA3ZqIAxrDAELAkAgBSAhTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAlJBH8gBSAGLQAAIAUtAABGagUgBQsgDGsLIAdqIQcLIAMgGE0EQCADKQAAISYgASgCDCIEIAMpAAg3AAggBCAmNwAAIAEoAgQhBAsgBEEBNgIAIARBADsBBCAHQQFqIgVBgIAETwRAIAFBAjYCJCABIAQgASgCAGtBA3U2AigLIAQgBTsBBiABIARBCGoiBDYCBCALIQogCCEMIAdBBGogA2oiAyEFIAMgE00NAAsMAgsgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMAQsgCyEMIAghCyADIQULIAUgE0kNAAsLIAIgDDYCBCACIAs2AgAgDUEQaiQAIAkgA2sLBAAjAAukHwIifwJ+IwBBEGsiCyQAIAIoAgQhDyACKAIAIQ0gACgCtAEiBSgCACEWIAUoAgQhFyAFKAIMIQUgAEEANgLcASAAKALEASEOQQRBBiAAKALIASIGIAZBBk8bIgYgBkEETRshGCADIAMgACgCBCIQIAAoAgwiE2oiGWsgBSAXaiIkIBZrRmohBQJAIAAoAhwiBiAGQQggAyAEaiIHQQ9rIiUgBiAQaiIEayIJIAlBCE8bQQAgBCAHQRBrIhVNG2oiBE8NAEEYIAAoAiQiCGshCUE4IAhrrSEnIAApA1AiKKchDCAOQQRNBEAgGEEFayEKA0AgBiAQaiEIIAAgBkEHcUECdGoCfwJAAkACQCAKDgIAAQILIAgpAABCgICA2Mub741PfiAohSAniKcMAgsgCCkAAEKAgOz8y5vvjU9+ICiFICeIpwwBCyAIKAAAQbHz3fF5bCAMcyAJdgs2AiwgBkEBaiIGIARHDQALDAELIA5BBUYEQCAYQQVrIQoDQCAGIBBqIQggACAGQQdxQQJ0agJ/AkACQAJAIAoOAgABAgsgCCkAAEKAgIDYy5vvjU9+ICiFICeIpwwCCyAIKQAAQoCA7PzLm++NT34gKIUgJ4inDAELIAgoAABBsfPd8XlsIAxzIAl2CzYCLCAGQQFqIgYgBEcNAAsMAQsgGEEFayEKA0AgBiAQaiEIIAAgBkEHcUECdGoCfwJAAkACQCAKDgIBAgALIAgoAABBsfPd8XlsIAxzIAl2DAILIAgpAABCgICA2Mub741PfiAohSAniKcMAQsgCCkAAEKAgOz8y5vvjU9+ICiFICeIpws2AiwgBkEBaiIGIARHDQALCyAFIBVJBEBBBEEGIA4gDkEGTxsiBCAEQQRNGyEUIAdBIGshGiAXIBcgFmsgE2oiHWshICAHQQFrISEgB0EDayEcA0AgBUEBaiEJAn9BACAFIA0gEGoiImtBAWoiBCATa0F8Sw0AGkEAIBcgBCAda2ogBCAQaiAEIBNJIgQbIggoAAAgCSgAAEcNABogBUEFaiAIQQRqIAcgFiAHIAQbIBkQD0EEagshBiALQf+T69wDNgIMAkACQAJ/AkACQAJAIBhBBGsiI0EBaw4CAQIACwJAAkACQCAUQQVrDgIBAgALIAAgBSAHIAtBDGoQdgwECyAAIAUgByALQQxqEHUMAwsgACAFIAcgC0EMahB0DAILAkACQAJAIBRBBWsOAgECAAsgACAFIAcgC0EMahBzDAMLIAAgBSAHIAtBDGoQcgwCCyAAIAUgByALQQxqEHEMAQsCQAJAAkAgFEEFaw4CAQIACyAAIAUgByALQQxqEHAMAgsgACAFIAcgC0EMahBvDAELIAAgBSAHIAtBDGoQbgsiCiAGIAYgCkkiBBsiCEEETwRAIAUgCSAEGyEJIAsoAgxBASAEGyERAkAgBSAVTw0AA0ACQCAFQQFqIgQgImsiBiATa0F8Sw0AIBcgBiAda2ogBiAQaiAGIBNJIg4bIgYoAAAgBCgAAEcNACAGQQRqIhIhCiAFQQVqIgwhBiASAn8CQCAMIBYgByAOGyIbIBJraiIOIAcgByAOSxsiDkEDayImIAxNDQAgDCgAACIeIBIoAAAiH0cEQCAeIB9zaEEDdgwCCwNAIApBBGohCiAGQQRqIgYgJk8NASAGKAAAIh4gCigAACIfRg0ACyAGIB4gH3NoQQN2aiAMawwBCwJAIAYgDkEBa08NACAKLwAAIAYvAABHDQAgCkECaiEKIAZBAmohBgsgBiAOSQR/IAYgCi0AACAGLQAARmoFIAYLIAxrCyIOaiAbRgRAIBkhCiAMIA5qIgwhBgJ/AkAgDCAcTw0AIAwoAAAiEiAKKAAAIhtHBEAgEiAbc2hBA3YMAgsDQCAKQQRqIQogBkEEaiIGIBxPDQEgBigAACISIAooAAAiG0YNAAsgBiASIBtzaEEDdmogDGsMAQsCQCAGICFPDQAgCi8AACAGLwAARw0AIApBAmohCiAGQQJqIQYLIAYgB0kEfyAGIAotAAAgBi0AAEZqBSAGCyAMawsgDmohDgsgDkF7Sw0AIBFnIAhBA2xqQR5rIA5BBGoiBkEDbE4NAEEBIREgBCEJIAYhCAsgC0H/k+vcAzYCCAJ/AkACfwJAAkACQCAjQQFrDgIBAgALAkACQAJAIBRBBWsOAgECAAsgACAEIAcgC0EIahB2DAQLIAAgBCAHIAtBCGoQdQwDCyAAIAQgByALQQhqEHQMAgsCQAJAAkAgFEEFaw4CAQIACyAAIAQgByALQQhqEHMMAwsgACAEIAcgC0EIahByDAILIAAgBCAHIAtBCGoQcQwBCwJAAkACQCAUQQVrDgIBAgALIAAgBCAHIAtBCGoQcAwCCyAAIAQgByALQQhqEG8MAQsgACAEIAcgC0EIahBuCyIGQQRJDQAgCygCCCIMZyAGQQJ0akEfayARZyAIQQJ0akEba0wNACAMIREgBiEIIAQMAQsgBCAVTw0CAkAgBUECaiIEICJrIgYgE2tBfEsNACAXIAYgHWtqIAYgEGogBiATSSIGGyIMKAAAIAQoAABHDQAgBUEGaiAMQQRqIAcgFiAHIAYbIBkQDyIFQXtLDQAgEWcgCEECdGpBHmsgBUEEaiIFQQJ0Tg0AQQEhESAEIQkgBSEICyALQf+T69wDNgIEAn8CQAJAAkAgI0EBaw4CAQIACwJAAkACQCAUQQVrDgIBAgALIAAgBCAHIAtBBGoQdgwECyAAIAQgByALQQRqEHUMAwsgACAEIAcgC0EEahB0DAILAkACQAJAIBRBBWsOAgECAAsgACAEIAcgC0EEahBzDAMLIAAgBCAHIAtBBGoQcgwCCyAAIAQgByALQQRqEHEMAQsCQAJAAkAgFEEFaw4CAQIACyAAIAQgByALQQRqEHAMAgsgACAEIAcgC0EEahBvDAELIAAgBCAHIAtBBGoQbgsiBkEESQ0CIAsoAgQiDGcgBkECdGpBH2sgEWcgCEECdGpBGGtMDQIgDCERIAYhCCAECyIFIQkgBSAVSQ0ACwsCfyARQQRJBEAgDSEMIA8MAQsgEUEDayEMAkAgAyAJTw0AICAgECAJIBAgEWprQQNqIgQgE0kiBhsgBGoiBSAkIBkgBhsiBk0NAANAIAlBAWsiBC0AACAFQQFrIgUtAABHDQEgCEEBaiEIIAMgBEkEQCAEIQkgBSAGSw0BCwsgBCEJCyANCyEEIAkgA2shDSABKAIMIQUCQAJAIAkgGk0EQCADKQAAIScgBSADKQAINwAIIAUgJzcAACABKAIMIQYgDUEQTQRAIAEgBiANajYCDCABKAIEIQUMAwsgAykAECEnIAYgAykAGDcAGCAGICc3ABAgDUEhSA0BIAYgDWohDyADQRBqIQUgBkEgaiEDA0AgBSkAECEnIAMgBSkAGDcACCADICc3AAAgBSkAICEnIAMgBSkAKDcAGCADICc3ABAgBUEgaiEFIANBIGoiAyAPSQ0ACwwBCyADIBpNBEAgAykAACEnIAUgAykACDcACCAFICc3AAAgBSAaIANrIg9qIQYgD0ERTgRAIAVBEGohBQNAIAMpABAhJyAFIAMpABg3AAggBSAnNwAAIAMpACAhJyAFIAMpACg3ABggBSAnNwAQIANBIGohAyAFQSBqIgUgBkkNAAsLIAYhBSAaIQMLIAMgCU8NAEEAIQogCSADIgZrQQdxIg8EQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIApBAWoiCiAPRw0ACwsgAyAJa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIAlHDQALCyABIAEoAgwgDWo2AgwgASgCBCEFIA1BgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgETYCACAFIA07AQQgCEEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgo2AgQgCCAJaiEDIAAoAtwBBEAgACgCHCIFIAVBCCAlIAUgEGoiBmsiDSANQQhPG0EAIAYgFU0baiINSQRAQRggACgCJCIGayEJQTggBmutIScgACkDUCIopyEIA0AgBSAQaiEGIAAgBUEHcUECdGoCfwJAAkACQCAYQQVrDgIBAgALIAYoAABBsfPd8XlsIAhzIAl2DAILIAYpAABCgICA2Mub741PfiAohSAniKcMAQsgBikAAEKAgOz8y5vvjU9+ICiFICeIpws2AiwgBUEBaiIFIA1HDQALCyAAQQA2AtwBCyAEIQ8gDCENIBUgAyIFSQ0CA0AgBCENIAwhBCADIA0gEGprIgUgE2tBfEsNAiAgIBAgBSATSSIIGyAFaiIFKAAAIAMoAABHDQIgBUEEaiIPIQYgA0EEaiIJIQUgDwJ/AkAgCSAWIAcgCBsiDCAPa2oiCCAHIAcgCEsbIghBA2siESAJTQ0AIAkoAAAiEiAPKAAAIg5HBEAgDiASc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBFPDQEgBSgAACISIAYoAAAiDkYNAAsgBSAOIBJzaEEDdmogCWsMAQsCQCAFIAhBAWtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgCEkEfyAFIAYtAAAgBS0AAEZqBSAFCyAJawsiCGogDEYEQCAZIQYgCCAJaiIJIQUCfwJAIAkgHE8NACAJKAAAIg8gBigAACIMRwRAIAwgD3NoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSAcTw0BIAUoAAAiDyAGKAAAIgxGDQALIAUgDCAPc2hBA3ZqIAlrDAELAkAgBSAhTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAdJBH8gBSAGLQAAIAUtAABGagUgBQsgCWsLIAhqIQgLIAMgGk0EQCADKQAAIScgASgCDCIFIAMpAAg3AAggBSAnNwAAIAEoAgQhCgsgCkEBNgIAIApBADsBBCAIQQFqIgVBgIAETwRAIAFBAjYCJCABIAogASgCAGtBA3U2AigLIAogBTsBBiABIApBCGoiCjYCBCANIQwgBCEPIAhBBGogA2oiAyEFIAMgFU0NAAsMAgsgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMAQsgDSEPIAQhDSADIQULIAUgFUkNAAsLIAIgDzYCBCACIA02AgAgC0EQaiQAIAcgA2sL1BUCHX8CfiMAQRBrIg4kACACKAIEIQYgAigCACEJIAAoArQBIgUoAgAhFSAFKAIEIRYgBSgCDCEHIABBADYC3AEgACgCxAEhDEEEQQYgACgCyAEiBSAFQQZPGyIFIAVBBE0bIRMgAyADIAAoAgQiDyAAKAIMIhJqIhdrIAcgFmoiHCAVa0ZqIQUCQCAAKAIcIgggCEEIIAMgBGoiDUEPayIdIAggD2oiB2siBCAEQQhPG0EAIAcgDUEQayIUTRtqIgpPDQBBGCAAKAIkIgRrIQtBOCAEa60hIyAAKQNQIiKnIRAgDEEETQRAIBNBBWshBANAIAggD2ohByAAIAhBB3FBAnRqAn8CQAJAAkAgBA4CAAECCyAHKQAAQoCAgNjLm++NT34gIoUgI4inDAILIAcpAABCgIDs/Mub741PfiAihSAjiKcMAQsgBygAAEGx893xeWwgEHMgC3YLNgIsIAhBAWoiCCAKRw0ACwwBCyAMQQVGBEAgE0EFayEEA0AgCCAPaiEHIAAgCEEHcUECdGoCfwJAAkACQCAEDgIAAQILIAcpAABCgICA2Mub741PfiAihSAjiKcMAgsgBykAAEKAgOz8y5vvjU9+ICKFICOIpwwBCyAHKAAAQbHz3fF5bCAQcyALdgs2AiwgCEEBaiIIIApHDQALDAELIBNBBWshBANAIAggD2ohByAAIAhBB3FBAnRqAn8CQAJAAkAgBA4CAQIACyAHKAAAQbHz3fF5bCAQcyALdgwCCyAHKQAAQoCAgNjLm++NT34gIoUgI4inDAELIAcpAABCgIDs/Mub741PfiAihSAjiKcLNgIsIAhBAWoiCCAKRw0ACwsgBSAUSQRAQQRBBiAMIAxBBk8bIgQgBEEETRshGCANQQFrIR4gDUEDayEZIA1BIGshECAWIBYgFWsgEmoiH2shGiATQQVrISADQAJAAn8CQAJAAkAgBSAJIA9qa0EBaiIEIBJrQXxLDQAgFiAEIB9raiAEIA9qIAQgEkkiDBsiBygAACAFQQFqIgQoAABHDQAgBUEFaiAHQQRqIA0gFSANIAwbIBcQD0EEaiERQQEhCwwBCyAOQf+T69wDNgIMAn8CQAJAAkAgE0EFaw4CAQIACwJAAkACQCAYQQVrDgIBAgALIAAgBSANIA5BDGoQfwwECyAAIAUgDSAOQQxqEH4MAwsgACAFIA0gDkEMahB9DAILAkACQAJAIBhBBWsOAgECAAsgACAFIA0gDkEMahB8DAMLIAAgBSANIA5BDGoQewwCCyAAIAUgDSAOQQxqEHoMAQsCQAJAAkAgGEEFaw4CAQIACyAAIAUgDSAOQQxqEHkMAgsgACAFIA0gDkEMahB4DAELIAAgBSANIA5BDGoQdwsiEUEDTQRAIAAgBSADayIEQf8PSzYC3AEgBEEIdiAFakEBaiEFDAQLIA4oAgwiC0EETw0BIAUhBAsgCSEMIAYMAQsgC0EDayEMAkACQCADIAVPDQAgGiAPIAUgCyAPamtBA2oiByASSSIEGyAHaiIGIBwgFyAEGyIHTQ0AA0AgBUEBayIELQAAIAZBAWsiBi0AAEcNASARQQFqIREgAyAETw0CIAQhBSAGIAdLDQALDAELIAUhBAsgCQshByAEIANrIQogASgCDCEFAkACQCAEIBBNBEAgAykAACEiIAUgAykACDcACCAFICI3AAAgASgCDCEGIApBEE0EQCABIAYgCmo2AgwgASgCBCEFDAMLIAMpABAhIiAGIAMpABg3ABggBiAiNwAQIApBIUgNASAGIApqIQkgA0EQaiEFIAZBIGohAwNAIAUpABAhIiADIAUpABg3AAggAyAiNwAAIAUpACAhIiADIAUpACg3ABggAyAiNwAQIAVBIGohBSADQSBqIgMgCUkNAAsMAQsgAyAQTQRAIAMpAAAhIiAFIAMpAAg3AAggBSAiNwAAIAUgECADayIGaiEJIAZBEU4EQCAFQRBqIQUDQCADKQAQISIgBSADKQAYNwAIIAUgIjcAACADKQAgISIgBSADKQAoNwAYIAUgIjcAECADQSBqIQMgBUEgaiIFIAlJDQALCyAJIQUgECEDCyADIARPDQBBACEIIAMhBiAEIANrQQdxIgkEQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIAhBAWoiCCAJRw0ACwsgAyAEa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIARHDQALCyABIAEoAgwgCmo2AgwgASgCBCEFIApBgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgCzYCACAFIAo7AQQgEUEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgg2AgQgBCARaiEDIAAoAtwBBEAgACgCHCIFIAVBCCAdIAUgD2oiCWsiBCAEQQhPG0EAIAkgFE0baiILSQRAQRggACgCJCIEayEJQTggBGutISMgACkDUCIipyEEA0AgBSAPaiEGIAAgBUEHcUECdGoCfwJAAkACQCAgDgIBAgALIAYoAABBsfPd8XlsIARzIAl2DAILIAYpAABCgICA2Mub741PfiAihSAjiKcMAQsgBikAAEKAgOz8y5vvjU9+ICKFICOIpws2AiwgBUEBaiIFIAtHDQALCyAAQQA2AtwBCyAHIQYgDCEJIBQgAyIFSQ0AA0ACQCAHIQkgDCEHIAMgCSAPamsiBCASa0F8Sw0AIBogDyAEIBJJIgobIARqIgQoAAAgAygAAEcNACAEQQRqIgwhBiADQQRqIgshBSAMAn8CQCALIBUgDSAKGyIhIAxraiIEIA0gBCANSRsiG0EDayIRIAtNDQAgCygAACIKIAwoAAAiBEcEQCAEIApzaEEDdgwCCwNAIAZBBGohBiAFQQRqIgUgEU8NASAFKAAAIgogBigAACIERg0ACyAFIAQgCnNoQQN2aiALawwBCwJAIAUgG0EBa08NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSAbSQR/IAUgBi0AACAFLQAARmoFIAULIAtrCyIEaiAhRgRAIBchBiAEIAtqIgwhBQJ/AkAgDCAZTw0AIAwoAAAiCiAGKAAAIgtHBEAgCiALc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBlPDQEgBSgAACIKIAYoAAAiC0YNAAsgBSAKIAtzaEEDdmogDGsMAQsCQCAFIB5PDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgDUkEfyAFIAYtAAAgBS0AAEZqBSAFCyAMawsgBGohBAsgAyAQTQRAIAMpAAAhIiABKAIMIgUgAykACDcACCAFICI3AAAgASgCBCEICyAIQQE2AgAgCEEAOwEEIARBAWoiBUGAgARPBEAgAUECNgIkIAEgCCABKAIAa0EDdTYCKAsgCCAFOwEGIAEgCEEIaiIINgIEIAkhDCAHIQYgBEEEaiADaiIDIQUgAyAUTQ0BDAILCyAJIQYgByEJIAMhBQsgBSAUSQ0ACwsgAiAGNgIEIAIgCTYCACAOQRBqJAAgDSADawuPHAIhfwJ+IwBBEGsiDSQAIAIoAgQhDCACKAIAIQsgACgCtAEiBSgCACEVIAUoAgQhFiAFKAIMIQUgAEEANgLcASAAKALEASEPQQRBBiAAKALIASIIIAhBBk8bIgggCEEETRshFyADIAMgACgCBCIQIAAoAgwiEmoiG2sgBSAWaiIiIBVrRmohBQJAIAAoAhwiBiAGQQggAyAEaiIJQQ9rIiMgBiAQaiIEayIIIAhBCE8bQQAgBCAJQRBrIhNNG2oiBE8NAEEYIAAoAiQiB2shCEE4IAdrrSEmIAApA1AiJ6chCiAPQQRNBEAgF0EFayEOA0AgBiAQaiEHIAAgBkEHcUECdGoCfwJAAkACQCAODgIAAQILIAcpAABCgICA2Mub741PfiAnhSAmiKcMAgsgBykAAEKAgOz8y5vvjU9+ICeFICaIpwwBCyAHKAAAQbHz3fF5bCAKcyAIdgs2AiwgBkEBaiIGIARHDQALDAELIA9BBUYEQCAXQQVrIQ4DQCAGIBBqIQcgACAGQQdxQQJ0agJ/AkACQAJAIA4OAgABAgsgBykAAEKAgIDYy5vvjU9+ICeFICaIpwwCCyAHKQAAQoCA7PzLm++NT34gJ4UgJoinDAELIAcoAABBsfPd8XlsIApzIAh2CzYCLCAGQQFqIgYgBEcNAAsMAQsgF0EFayEOA0AgBiAQaiEHIAAgBkEHcUECdGoCfwJAAkACQCAODgIBAgALIAcoAABBsfPd8XlsIApzIAh2DAILIAcpAABCgICA2Mub741PfiAnhSAmiKcMAQsgBykAAEKAgOz8y5vvjU9+ICeFICaIpws2AiwgBkEBaiIGIARHDQALCyAFIBNJBEBBBEEGIA8gD0EGTxsiBCAEQQRNGyEUIAlBIGshGCAWIBYgFWsgEmoiH2shICAJQQFrISEgCUEDayEcA0AgBUEBaiEIAn9BACAFIAsgEGoiGWtBAWoiBCASa0F8Sw0AGkEAIBYgBCAfa2ogBCAQaiAEIBJJIgQbIgcoAAAgCCgAAEcNABogBUEFaiAHQQRqIAkgFSAJIAQbIBsQD0EEagshBiANQf+T69wDNgIMAkACQAJ/AkACQAJAIBdBBGsiJEEBaw4CAQIACwJAAkACQCAUQQVrDgIBAgALIAAgBSAJIA1BDGoQfwwECyAAIAUgCSANQQxqEH4MAwsgACAFIAkgDUEMahB9DAILAkACQAJAIBRBBWsOAgECAAsgACAFIAkgDUEMahB8DAMLIAAgBSAJIA1BDGoQewwCCyAAIAUgCSANQQxqEHoMAQsCQAJAAkAgFEEFaw4CAQIACyAAIAUgCSANQQxqEHkMAgsgACAFIAkgDUEMahB4DAELIAAgBSAJIA1BDGoQdwsiBCAGIAQgBksiBBsiDkEETwRAIAUgCCAEGyEHIA0oAgxBASAEGyERAkAgBSATTw0AA0ACQCAFQQFqIgggGWsiBCASa0F8Sw0AIBYgBCAfa2ogBCAQaiAEIBJJIg8bIgQoAAAgCCgAAEcNACAEQQRqIgYhBCAFQQVqIgohBSAGAn8CQCAKIBUgCSAPGyIaIAZraiIPIAkgCSAPSxsiD0EDayIlIApNDQAgCigAACIdIAYoAAAiHkcEQCAdIB5zaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgJU8NASAFKAAAIh0gBCgAACIeRg0ACyAFIB0gHnNoQQN2aiAKawwBCwJAIAUgD0EBa08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSAPSQR/IAUgBC0AACAFLQAARmoFIAULIAprCyIPaiAaRgRAIBshBCAKIA9qIgohBQJ/AkAgCiAcTw0AIAooAAAiBiAEKAAAIhpHBEAgBiAac2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIBxPDQEgBSgAACIGIAQoAAAiGkYNAAsgBSAGIBpzaEEDdmogCmsMAQsCQCAFICFPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgCUkEfyAFIAQtAAAgBS0AAEZqBSAFCyAKawsgD2ohDwsgD0F7Sw0AIBFnIA5BA2xqQR5rIA9BBGoiBEEDbE4NAEEBIREgCCEHIAQhDgsgDUH/k+vcAzYCCAJ/AkACQAJAICRBAWsOAgECAAsCQAJAAkAgFEEFaw4CAQIACyAAIAggCSANQQhqEH8MBAsgACAIIAkgDUEIahB+DAMLIAAgCCAJIA1BCGoQfQwCCwJAAkACQCAUQQVrDgIBAgALIAAgCCAJIA1BCGoQfAwDCyAAIAggCSANQQhqEHsMAgsgACAIIAkgDUEIahB6DAELAkACQAJAIBRBBWsOAgECAAsgACAIIAkgDUEIahB5DAILIAAgCCAJIA1BCGoQeAwBCyAAIAggCSANQQhqEHcLIgRBBEkNASANKAIIIgVnIARBAnRqQR9rIBFnIA5BAnRqQRtrTA0BIAQhDiAFIREgCCIFIQcgBSATRw0ACyATIQcLAn8gEUEESQRAIAshCiAMDAELIBFBA2shCgJAIAMgB08NACAgIBAgByAQIBFqa0EDaiIEIBJJIggbIARqIgUgIiAbIAgbIghNDQADQCAHQQFrIgQtAAAgBUEBayIFLQAARw0BIA5BAWohDiADIARJBEAgBCEHIAUgCEsNAQsLIAQhBwsgCwshCCAHIANrIQsgASgCDCEFAkACQCAHIBhNBEAgAykAACEmIAUgAykACDcACCAFICY3AAAgASgCDCEEIAtBEE0EQCABIAQgC2o2AgwgASgCBCEFDAMLIAMpABAhJiAEIAMpABg3ABggBCAmNwAQIAtBIUgNASAEIAtqIQwgA0EQaiEFIARBIGohAwNAIAUpABAhJiADIAUpABg3AAggAyAmNwAAIAUpACAhJiADIAUpACg3ABggAyAmNwAQIAVBIGohBSADQSBqIgMgDEkNAAsMAQsgAyAYTQRAIAMpAAAhJiAFIAMpAAg3AAggBSAmNwAAIAUgGCADayIMaiEEIAxBEU4EQCAFQRBqIQUDQCADKQAQISYgBSADKQAYNwAIIAUgJjcAACADKQAgISYgBSADKQAoNwAYIAUgJjcAECADQSBqIQMgBUEgaiIFIARJDQALCyAEIQUgGCEDCyADIAdPDQBBACEEIAMhBiAHIANrQQdxIgwEQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIARBAWoiBCAMRw0ACwsgAyAHa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIAdHDQALCyABIAEoAgwgC2o2AgwgASgCBCEFIAtBgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgETYCACAFIAs7AQQgDkEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgQ2AgQgByAOaiEDIAAoAtwBBEAgACgCHCIFIAVBCCAjIAUgEGoiC2siByAHQQhPG0EAIAsgE00baiIHSQRAQRggACgCJCILayEMQTggC2utISYgACkDUCInpyEOA0AgBSAQaiELIAAgBUEHcUECdGoCfwJAAkACQCAXQQVrDgIBAgALIAsoAABBsfPd8XlsIA5zIAx2DAILIAspAABCgICA2Mub741PfiAnhSAmiKcMAQsgCykAAEKAgOz8y5vvjU9+ICeFICaIpws2AiwgBUEBaiIFIAdHDQALCyAAQQA2AtwBCyAIIQwgCiELIBMgAyIFSQ0CA0AgCCELIAohCCADIAsgEGprIgUgEmtBfEsNAiAgIBAgBSASSSIHGyAFaiIFKAAAIAMoAABHDQIgBUEEaiIKIQYgA0EEaiIMIQUgCgJ/AkAgDCAVIAkgBxsiDiAKa2oiByAJIAcgCUkbIgdBA2siESAMTQ0AIAwoAAAiDyAKKAAAIhlHBEAgDyAZc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBFPDQEgBSgAACIPIAYoAAAiGUYNAAsgBSAPIBlzaEEDdmogDGsMAQsCQCAFIAdBAWtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgB0kEfyAFIAYtAAAgBS0AAEZqBSAFCyAMawsiB2ogDkYEQCAbIQYgByAMaiIMIQUCfwJAIAwgHE8NACAMKAAAIgogBigAACIORwRAIAogDnNoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSAcTw0BIAUoAAAiCiAGKAAAIg5GDQALIAUgCiAOc2hBA3ZqIAxrDAELAkAgBSAhTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAlJBH8gBSAGLQAAIAUtAABGagUgBQsgDGsLIAdqIQcLIAMgGE0EQCADKQAAISYgASgCDCIEIAMpAAg3AAggBCAmNwAAIAEoAgQhBAsgBEEBNgIAIARBADsBBCAHQQFqIgVBgIAETwRAIAFBAjYCJCABIAQgASgCAGtBA3U2AigLIAQgBTsBBiABIARBCGoiBDYCBCALIQogCCEMIAdBBGogA2oiAyEFIAMgE00NAAsMAgsgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMAQsgCyEMIAghCyADIQULIAUgE0kNAAsLIAIgDDYCBCACIAs2AgAgDUEQaiQAIAkgA2sLEAAjACAAa0FwcSIAJAAgAAukHwIifwJ+IwBBEGsiCyQAIAIoAgQhDyACKAIAIQ0gACgCtAEiBSgCACEWIAUoAgQhFyAFKAIMIQUgAEEANgLcASAAKALEASEOQQRBBiAAKALIASIGIAZBBk8bIgYgBkEETRshGCADIAMgACgCBCIQIAAoAgwiE2oiGWsgBSAXaiIkIBZrRmohBQJAIAAoAhwiBiAGQQggAyAEaiIHQQ9rIiUgBiAQaiIEayIJIAlBCE8bQQAgBCAHQRBrIhVNG2oiBE8NAEEYIAAoAiQiCGshCUE4IAhrrSEnIAApA1AiKKchDCAOQQRNBEAgGEEFayEKA0AgBiAQaiEIIAAgBkEHcUECdGoCfwJAAkACQCAKDgIAAQILIAgpAABCgICA2Mub741PfiAohSAniKcMAgsgCCkAAEKAgOz8y5vvjU9+ICiFICeIpwwBCyAIKAAAQbHz3fF5bCAMcyAJdgs2AiwgBkEBaiIGIARHDQALDAELIA5BBUYEQCAYQQVrIQoDQCAGIBBqIQggACAGQQdxQQJ0agJ/AkACQAJAIAoOAgABAgsgCCkAAEKAgIDYy5vvjU9+ICiFICeIpwwCCyAIKQAAQoCA7PzLm++NT34gKIUgJ4inDAELIAgoAABBsfPd8XlsIAxzIAl2CzYCLCAGQQFqIgYgBEcNAAsMAQsgGEEFayEKA0AgBiAQaiEIIAAgBkEHcUECdGoCfwJAAkACQCAKDgIBAgALIAgoAABBsfPd8XlsIAxzIAl2DAILIAgpAABCgICA2Mub741PfiAohSAniKcMAQsgCCkAAEKAgOz8y5vvjU9+ICiFICeIpws2AiwgBkEBaiIGIARHDQALCyAFIBVJBEBBBEEGIA4gDkEGTxsiBCAEQQRNGyEUIAdBIGshGiAXIBcgFmsgE2oiHWshICAHQQFrISEgB0EDayEcA0AgBUEBaiEJAn9BACAFIA0gEGoiImtBAWoiBCATa0F8Sw0AGkEAIBcgBCAda2ogBCAQaiAEIBNJIgQbIggoAAAgCSgAAEcNABogBUEFaiAIQQRqIAcgFiAHIAQbIBkQD0EEagshBiALQf+T69wDNgIMAkACQAJ/AkACQAJAIBhBBGsiI0EBaw4CAQIACwJAAkACQCAUQQVrDgIBAgALIAAgBSAHIAtBDGoQfwwECyAAIAUgByALQQxqEH4MAwsgACAFIAcgC0EMahB9DAILAkACQAJAIBRBBWsOAgECAAsgACAFIAcgC0EMahB8DAMLIAAgBSAHIAtBDGoQewwCCyAAIAUgByALQQxqEHoMAQsCQAJAAkAgFEEFaw4CAQIACyAAIAUgByALQQxqEHkMAgsgACAFIAcgC0EMahB4DAELIAAgBSAHIAtBDGoQdwsiCiAGIAYgCkkiBBsiCEEETwRAIAUgCSAEGyEJIAsoAgxBASAEGyERAkAgBSAVTw0AA0ACQCAFQQFqIgQgImsiBiATa0F8Sw0AIBcgBiAda2ogBiAQaiAGIBNJIg4bIgYoAAAgBCgAAEcNACAGQQRqIhIhCiAFQQVqIgwhBiASAn8CQCAMIBYgByAOGyIbIBJraiIOIAcgByAOSxsiDkEDayImIAxNDQAgDCgAACIeIBIoAAAiH0cEQCAeIB9zaEEDdgwCCwNAIApBBGohCiAGQQRqIgYgJk8NASAGKAAAIh4gCigAACIfRg0ACyAGIB4gH3NoQQN2aiAMawwBCwJAIAYgDkEBa08NACAKLwAAIAYvAABHDQAgCkECaiEKIAZBAmohBgsgBiAOSQR/IAYgCi0AACAGLQAARmoFIAYLIAxrCyIOaiAbRgRAIBkhCiAMIA5qIgwhBgJ/AkAgDCAcTw0AIAwoAAAiEiAKKAAAIhtHBEAgEiAbc2hBA3YMAgsDQCAKQQRqIQogBkEEaiIGIBxPDQEgBigAACISIAooAAAiG0YNAAsgBiASIBtzaEEDdmogDGsMAQsCQCAGICFPDQAgCi8AACAGLwAARw0AIApBAmohCiAGQQJqIQYLIAYgB0kEfyAGIAotAAAgBi0AAEZqBSAGCyAMawsgDmohDgsgDkF7Sw0AIBFnIAhBA2xqQR5rIA5BBGoiBkEDbE4NAEEBIREgBCEJIAYhCAsgC0H/k+vcAzYCCAJ/AkACfwJAAkACQCAjQQFrDgIBAgALAkACQAJAIBRBBWsOAgECAAsgACAEIAcgC0EIahB/DAQLIAAgBCAHIAtBCGoQfgwDCyAAIAQgByALQQhqEH0MAgsCQAJAAkAgFEEFaw4CAQIACyAAIAQgByALQQhqEHwMAwsgACAEIAcgC0EIahB7DAILIAAgBCAHIAtBCGoQegwBCwJAAkACQCAUQQVrDgIBAgALIAAgBCAHIAtBCGoQeQwCCyAAIAQgByALQQhqEHgMAQsgACAEIAcgC0EIahB3CyIGQQRJDQAgCygCCCIMZyAGQQJ0akEfayARZyAIQQJ0akEba0wNACAMIREgBiEIIAQMAQsgBCAVTw0CAkAgBUECaiIEICJrIgYgE2tBfEsNACAXIAYgHWtqIAYgEGogBiATSSIGGyIMKAAAIAQoAABHDQAgBUEGaiAMQQRqIAcgFiAHIAYbIBkQDyIFQXtLDQAgEWcgCEECdGpBHmsgBUEEaiIFQQJ0Tg0AQQEhESAEIQkgBSEICyALQf+T69wDNgIEAn8CQAJAAkAgI0EBaw4CAQIACwJAAkACQCAUQQVrDgIBAgALIAAgBCAHIAtBBGoQfwwECyAAIAQgByALQQRqEH4MAwsgACAEIAcgC0EEahB9DAILAkACQAJAIBRBBWsOAgECAAsgACAEIAcgC0EEahB8DAMLIAAgBCAHIAtBBGoQewwCCyAAIAQgByALQQRqEHoMAQsCQAJAAkAgFEEFaw4CAQIACyAAIAQgByALQQRqEHkMAgsgACAEIAcgC0EEahB4DAELIAAgBCAHIAtBBGoQdwsiBkEESQ0CIAsoAgQiDGcgBkECdGpBH2sgEWcgCEECdGpBGGtMDQIgDCERIAYhCCAECyIFIQkgBSAVSQ0ACwsCfyARQQRJBEAgDSEMIA8MAQsgEUEDayEMAkAgAyAJTw0AICAgECAJIBAgEWprQQNqIgQgE0kiBhsgBGoiBSAkIBkgBhsiBk0NAANAIAlBAWsiBC0AACAFQQFrIgUtAABHDQEgCEEBaiEIIAMgBEkEQCAEIQkgBSAGSw0BCwsgBCEJCyANCyEEIAkgA2shDSABKAIMIQUCQAJAIAkgGk0EQCADKQAAIScgBSADKQAINwAIIAUgJzcAACABKAIMIQYgDUEQTQRAIAEgBiANajYCDCABKAIEIQUMAwsgAykAECEnIAYgAykAGDcAGCAGICc3ABAgDUEhSA0BIAYgDWohDyADQRBqIQUgBkEgaiEDA0AgBSkAECEnIAMgBSkAGDcACCADICc3AAAgBSkAICEnIAMgBSkAKDcAGCADICc3ABAgBUEgaiEFIANBIGoiAyAPSQ0ACwwBCyADIBpNBEAgAykAACEnIAUgAykACDcACCAFICc3AAAgBSAaIANrIg9qIQYgD0ERTgRAIAVBEGohBQNAIAMpABAhJyAFIAMpABg3AAggBSAnNwAAIAMpACAhJyAFIAMpACg3ABggBSAnNwAQIANBIGohAyAFQSBqIgUgBkkNAAsLIAYhBSAaIQMLIAMgCU8NAEEAIQogCSADIgZrQQdxIg8EQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIApBAWoiCiAPRw0ACwsgAyAJa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIAlHDQALCyABIAEoAgwgDWo2AgwgASgCBCEFIA1BgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgETYCACAFIA07AQQgCEEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgo2AgQgCCAJaiEDIAAoAtwBBEAgACgCHCIFIAVBCCAlIAUgEGoiBmsiDSANQQhPG0EAIAYgFU0baiINSQRAQRggACgCJCIGayEJQTggBmutIScgACkDUCIopyEIA0AgBSAQaiEGIAAgBUEHcUECdGoCfwJAAkACQCAYQQVrDgIBAgALIAYoAABBsfPd8XlsIAhzIAl2DAILIAYpAABCgICA2Mub741PfiAohSAniKcMAQsgBikAAEKAgOz8y5vvjU9+ICiFICeIpws2AiwgBUEBaiIFIA1HDQALCyAAQQA2AtwBCyAEIQ8gDCENIBUgAyIFSQ0CA0AgBCENIAwhBCADIA0gEGprIgUgE2tBfEsNAiAgIBAgBSATSSIIGyAFaiIFKAAAIAMoAABHDQIgBUEEaiIPIQYgA0EEaiIJIQUgDwJ/AkAgCSAWIAcgCBsiDCAPa2oiCCAHIAcgCEsbIghBA2siESAJTQ0AIAkoAAAiEiAPKAAAIg5HBEAgDiASc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBFPDQEgBSgAACISIAYoAAAiDkYNAAsgBSAOIBJzaEEDdmogCWsMAQsCQCAFIAhBAWtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgCEkEfyAFIAYtAAAgBS0AAEZqBSAFCyAJawsiCGogDEYEQCAZIQYgCCAJaiIJIQUCfwJAIAkgHE8NACAJKAAAIg8gBigAACIMRwRAIAwgD3NoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSAcTw0BIAUoAAAiDyAGKAAAIgxGDQALIAUgDCAPc2hBA3ZqIAlrDAELAkAgBSAhTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAdJBH8gBSAGLQAAIAUtAABGagUgBQsgCWsLIAhqIQgLIAMgGk0EQCADKQAAIScgASgCDCIFIAMpAAg3AAggBSAnNwAAIAEoAgQhCgsgCkEBNgIAIApBADsBBCAIQQFqIgVBgIAETwRAIAFBAjYCJCABIAogASgCAGtBA3U2AigLIAogBTsBBiABIApBCGoiCjYCBCANIQwgBCEPIAhBBGogA2oiAyEFIAMgFU0NAAsMAgsgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMAQsgDSEPIAQhDSADIQULIAUgFUkNAAsLIAIgDzYCBCACIA02AgAgC0EQaiQAIAcgA2sLoBUCGX8CfiMAQRBrIg0kACACKAIEIRUgAigCACETIABBADYC3AEgEyADIAAoAgQiECAAKAIMIgdqIhggA0ZqIgUgEGsiCCAHIAhBASAAKAK4AXQiCmsgByAIIAdrIApLGyAAKAIYG2siB0shFiAHIBVJIRkgACgCxAEhCUEEQQYgACgCyAEiByAHQQZPGyIHIAdBBE0bIQgCQCAAKAIcIgYgBkEIIAMgBGoiDEEPayIbIAYgEGoiBGsiByAHQQhPG0EAIAQgDEEQayISTRtqIgdPDQBBGCAAKAIkIgRrIQpBOCAEa60hHiAAKQNQIh+nIQ4gCUEETQRAIAhBBWshCwNAIAYgEGohBCAAIAZBB3FBAnRqAn8CQAJAAkAgCw4CAAECCyAEKQAAQoCAgNjLm++NT34gH4UgHoinDAILIAQpAABCgIDs/Mub741PfiAfhSAeiKcMAQsgBCgAAEGx893xeWwgDnMgCnYLNgIsIAZBAWoiBiAHRw0ACwwBCyAJQQVGBEAgCEEFayELA0AgBiAQaiEEIAAgBkEHcUECdGoCfwJAAkACQCALDgIAAQILIAQpAABCgICA2Mub741PfiAfhSAeiKcMAgsgBCkAAEKAgOz8y5vvjU9+IB+FIB6IpwwBCyAEKAAAQbHz3fF5bCAOcyAKdgs2AiwgBkEBaiIGIAdHDQALDAELIAhBBWshCwNAIAYgEGohBCAAIAZBB3FBAnRqAn8CQAJAAkAgCw4CAQIACyAEKAAAQbHz3fF5bCAOcyAKdgwCCyAEKQAAQoCAgNjLm++NT34gH4UgHoinDAELIAQpAABCgIDs/Mub741PfiAfhSAeiKcLNgIsIAZBAWoiBiAHRw0ACwtBACATIBYbIQdBACAVIBkbIQogBSASSQRAQQRBBiAJIAlBBk8bIgQgBEEETRshFyAMQSBrIQ4gDEEBayEaIAxBA2shFCAIQQVrIRwgCEEEayEdA0ACQAJ/An8CQAJAIAdFDQAgBUEBaiIEIAdrKAAAIAUoAAFHDQAgBUEFaiIIIAdrIQYgCCAUTwRAIAghBQwCCyAIIgUoAAAiCyAGKAAAIglHBEAgCSALc2hBA3YMAwsDQCAGQQRqIQYgBUEEaiIFIBRPDQIgBSgAACILIAYoAAAiCUYNAAsgBSAJIAtzaEEDdmogCGsMAgsgDUH/k+vcAzYCDAJ/AkACQAJAIB1BAWsOAgECAAsCQAJAAkAgF0EFaw4CAQIACyAAIAUgDCANQQxqEIgBDAQLIAAgBSAMIA1BDGoQhwEMAwsgACAFIAwgDUEMahCGAQwCCwJAAkACQCAXQQVrDgIBAgALIAAgBSAMIA1BDGoQhQEMAwsgACAFIAwgDUEMahCEAQwCCyAAIAUgDCANQQxqEIMBDAELAkACQAJAIBdBBWsOAgECAAsgACAFIAwgDUEMahCCAQwCCyAAIAUgDCANQQxqEIEBDAELIAAgBSAMIA1BDGoQgAELIgtBA00EQCAAIAUgA2siBEH/D0s2AtwBIARBCHYgBWpBAWohBQwECyANKAIMIhFBBEkEQCAFIQQgBwwDCwJAIAMgBU8EQCAFIQQMAQsgBSEEIAVBAyARayIIaiAYTQ0AA0AgBUEBayIELQAAIAQgCGoiCi0AAEcEQCAFIQQMAgsgC0EBaiELIAMgBE8NASAEIQUgCiAYSw0ACwsgByEKIBFBA2sMAgsCQCAFIBpPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgDEkEfyAFIAYtAAAgBS0AAEZqBSAFCyAIawtBBGohC0EBIREgBwshCCAEIANrIQ8gASgCDCEFAkACQCAEIA5NBEAgAykAACEeIAUgAykACDcACCAFIB43AAAgASgCDCEHIA9BEE0EQCABIAcgD2o2AgwgASgCBCEFDAMLIAMpABAhHiAHIAMpABg3ABggByAeNwAQIA9BIUgNASAHIA9qIQkgA0EQaiEFIAdBIGohBgNAIAUpABAhHiAGIAUpABg3AAggBiAeNwAAIAUpACAhHiAGIAUpACg3ABggBiAeNwAQIAVBIGohBSAGQSBqIgYgCUkNAAsMAQsgAyAOTQRAIAMpAAAhHiAFIAMpAAg3AAggBSAeNwAAIAUgDiADayIGaiEHIAZBEU4EQCAFQRBqIQUDQCADKQAQIR4gBSADKQAYNwAIIAUgHjcAACADKQAgIR4gBSADKQAoNwAYIAUgHjcAECADQSBqIQMgBUEgaiIFIAdJDQALCyAHIQUgDiEDCyADIARPDQBBACEJIAQgAyIGa0EHcSIHBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiAJQQFqIgkgB0cNAAsLIAMgBGtBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAERw0ACwsgASABKAIMIA9qNgIMIAEoAgQhBSAPQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIBE2AgAgBSAPOwEEIAtBA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiIJNgIEIAAoAtwBBEAgACgCHCIFIAVBCCAbIAUgEGoiA2siByAHQQhPG0EAIAMgEk0baiIHSQRAQRggACgCJCIDayEPQTggA2utIR4gACkDUCIfpyERA0AgBSAQaiEDIAAgBUEHcUECdGoCfwJAAkACQCAcDgIBAgALIAMoAABBsfPd8XlsIBFzIA92DAILIAMpAABCgICA2Mub741PfiAfhSAeiKcMAQsgAykAAEKAgOz8y5vvjU9+IB+FIB6Ipws2AiwgBUEBaiIFIAdHDQALCyAAQQA2AtwBCyAEIAtqIQMgCkUEQCAIIQcgAyEFDAELIAohBCAIIQcgEiADIgVJDQADQCAEIQcgCCEEIAMoAAAgAyAHaygAAEcEQCAHIQogBCEHIAMhBQwCCyADQQRqIgggB2shBgJ/AkAgCCAUTwRAIAghBQwBCyAIIgUoAAAiCiAGKAAAIgtHBEAgCiALc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBRPDQEgBSgAACIKIAYoAAAiC0YNAAsgBSAKIAtzaEEDdmogCGsMAQsCQCAFIBpPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgDEkEfyAFIAYtAAAgBS0AAEZqBSAFCyAIawshBSADIA5NBEAgAykAACEeIAEoAgwiCCADKQAINwAIIAggHjcAACABKAIEIQkLIAlBATYCACAJQQA7AQQgBUEBaiIIQYCABE8EQCABQQI2AiQgASAJIAEoAgBrQQN1NgIoCyAJIAg7AQYgASAJQQhqIgk2AgQgBUEEaiADaiEDIARFBEAgBCEKIAMhBQwCCyAHIQggBCEKIBIgAyIFTw0ACwsgBSASSQ0ACwsgAiAHIBNBACAWGyAHGzYCACACIAogEyAVQQAgGRsiACAHGyAAIBYbIAobNgIEIA1BEGokACAMIANrC6caAht/An4jAEEQayIMJAAgAigCBCEXIAIoAgAhFiAAQQA2AtwBIBYgAyAAKAIEIg8gACgCDCIFaiIcIANGaiIGIA9rIgggBSAIQQEgACgCuAF0IgdrIAUgCCAFayAHSxsgACgCGBtrIgVLIRggBSAXSSEdIAAoAsQBIQ1BBEEGIAAoAsgBIgUgBUEGTxsiBSAFQQRNGyEUAkAgACgCHCIFIAVBCCADIARqIgtBD2siHyAFIA9qIgRrIgggCEEITxtBACAEIAtBEGsiEE0baiIITw0AQRggACgCJCIEayEHQTggBGutISAgACkDUCIhpyEJIA1BBE0EQCAUQQVrIQoDQCAFIA9qIQQgACAFQQdxQQJ0agJ/AkACQAJAIAoOAgABAgsgBCkAAEKAgIDYy5vvjU9+ICGFICCIpwwCCyAEKQAAQoCA7PzLm++NT34gIYUgIIinDAELIAQoAABBsfPd8XlsIAlzIAd2CzYCLCAFQQFqIgUgCEcNAAsMAQsgDUEFRgRAIBRBBWshCgNAIAUgD2ohBCAAIAVBB3FBAnRqAn8CQAJAAkAgCg4CAAECCyAEKQAAQoCAgNjLm++NT34gIYUgIIinDAILIAQpAABCgIDs/Mub741PfiAhhSAgiKcMAQsgBCgAAEGx893xeWwgCXMgB3YLNgIsIAVBAWoiBSAIRw0ACwwBCyAUQQVrIQoDQCAFIA9qIQQgACAFQQdxQQJ0agJ/AkACQAJAIAoOAgECAAsgBCgAAEGx893xeWwgCXMgB3YMAgsgBCkAAEKAgIDYy5vvjU9+ICGFICCIpwwBCyAEKQAAQoCA7PzLm++NT34gIYUgIIinCzYCLCAFQQFqIgUgCEcNAAsLQQAgFiAYGyEJQQAgFyAdGyEKIAYgEEkEQEEEQQYgDSANQQZPGyIEIARBBE0bIRIgC0EgayEVIAtBAWshGSALQQNrIRMgFEEEayEeA0BBACAJayERIAZBAWohDQJ/QQAgCUUNABpBACANIAlrKAAAIAYoAAFHDQAaIAZBBWoiCCARaiEEAn8CQCAIIBNPBEAgCCEFDAELIAgiBSgAACIHIAQoAAAiDkcEQCAHIA5zaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgE08NASAFKAAAIgcgBCgAACIORg0ACyAFIAcgDnNoQQN2aiAIawwBCwJAIAUgGU8NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSALSQR/IAUgBC0AACAFLQAARmoFIAULIAhrC0EEagshBSAMQf+T69wDNgIMAkACfwJAAkACQCAeQQFrDgIBAgALAkACQAJAIBJBBWsOAgECAAsgACAGIAsgDEEMahCIAQwECyAAIAYgCyAMQQxqEIcBDAMLIAAgBiALIAxBDGoQhgEMAgsCQAJAAkAgEkEFaw4CAQIACyAAIAYgCyAMQQxqEIUBDAMLIAAgBiALIAxBDGoQhAEMAgsgACAGIAsgDEEMahCDAQwBCwJAAkACQCASQQVrDgIBAgALIAAgBiALIAxBDGoQggEMAgsgACAGIAsgDEEMahCBAQwBCyAAIAYgCyAMQQxqEIABCyIEIAUgBCAFSyIEGyIHQQRPBEAgBiANIAQbIg0hBSAMKAIMQQEgBBsiCCEEIAchDgJAIAYgEE8NAANAIAZBAWohBQJAIAhFBEBBACEIDAELIAlFDQAgBSgAACAFIBFqKAAARw0AIAZBBWoiDiARaiEEIAhnIAdBA2xqQR5rAn8CQAJAIA4gE08EQCAOIQYMAQsgDiIGKAAAIhogBCgAACIbRwRAIBogG3NoQQN2QQRyDAMLA0AgBEEEaiEEIAZBBGoiBiATTw0BIAYoAAAiGiAEKAAAIhtGDQALIAYgGiAbc2hBA3ZqIQYMAQsCQCAGIBlPDQAgBC8AACAGLwAARw0AIARBAmohBCAGQQJqIQYLIAYgC08NACAGIAQtAAAgBi0AAEZqIQYLIAYgDmsiBEF7Sw0BIARBBGoLIgZBA2xODQBBASEIIAUhDSAGIQcLIAxB/5Pr3AM2AggCQAJ/AkACQAJAIB5BAWsOAgECAAsCQAJAAkAgEkEFaw4CAQIACyAAIAUgCyAMQQhqEIgBDAQLIAAgBSALIAxBCGoQhwEMAwsgACAFIAsgDEEIahCGAQwCCwJAAkACQCASQQVrDgIBAgALIAAgBSALIAxBCGoQhQEMAwsgACAFIAsgDEEIahCEAQwCCyAAIAUgCyAMQQhqEIMBDAELAkACQAJAIBJBBWsOAgECAAsgACAFIAsgDEEIahCCAQwCCyAAIAUgCyAMQQhqEIEBDAELIAAgBSALIAxBCGoQgAELIg5BBEkNACAMKAIIIgRnIA5BAnRqQR9rIAhnIAdBAnRqQRtrTA0AIAUhBiAOIQcgBCEIIAUhDSAFIBBJDQEMAgsLIA0hBSAIIQQgByEOCwJ/IARBBEkEQCAFIQcgCSENIAoMAQsCQCADIAVPBEAgBSEHDAELIAUhByAFQQMgBGsiCGogHE0NAANAIAVBAWsiBy0AACAHIAhqIgYtAABHBEAgBSEHDAILIA5BAWohDiADIAdPDQEgByEFIAYgHEsNAAsLIARBA2shDSAJCyEIIAcgA2shCiABKAIMIQUCQAJAIAcgFU0EQCADKQAAISAgBSADKQAINwAIIAUgIDcAACABKAIMIQYgCkEQTQRAIAEgBiAKajYCDCABKAIEIQUMAwsgAykAECEgIAYgAykAGDcAGCAGICA3ABAgCkEhSA0BIAYgCmohCSADQRBqIQUgBkEgaiEGA0AgBSkAECEgIAYgBSkAGDcACCAGICA3AAAgBSkAICEgIAYgBSkAKDcAGCAGICA3ABAgBUEgaiEFIAZBIGoiBiAJSQ0ACwwBCyADIBVNBEAgAykAACEgIAUgAykACDcACCAFICA3AAAgBSAVIANrIglqIQYgCUERTgRAIAVBEGohBQNAIAMpABAhICAFIAMpABg3AAggBSAgNwAAIAMpACAhICAFIAMpACg3ABggBSAgNwAQIANBIGohAyAFQSBqIgUgBkkNAAsLIAYhBSAVIQMLIAMgB08NAEEAIQkgByADIgZrQQdxIhEEQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIAlBAWoiCSARRw0ACwsgAyAHa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIAdHDQALCyABIAEoAgwgCmo2AgwgASgCBCEFIApBgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgBDYCACAFIAo7AQQgDkEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgQ2AgQgACgC3AEEQCAAKAIcIgUgBUEIIB8gBSAPaiIDayIGIAZBCE8bQQAgAyAQTRtqIglJBEBBGCAAKAIkIgNrIQpBOCADa60hICAAKQNQIiGnIREDQCAFIA9qIQMgACAFQQdxQQJ0agJ/AkACQAJAIBRBBWsOAgECAAsgAygAAEGx893xeWwgEXMgCnYMAgsgAykAAEKAgIDYy5vvjU9+ICGFICCIpwwBCyADKQAAQoCA7PzLm++NT34gIYUgIIinCzYCLCAFQQFqIgUgCUcNAAsLIABBADYC3AELIAcgDmohAyAIRQRAIAghCiANIQkgAyEGDAILIAghCiANIQkgECADIgZJDQEDQCAIIQkgDSEIIAMoAAAgAyAJaygAAEcEQCAJIQogCCEJIAMhBgwDCyADQQRqIgcgCWshBgJ/AkAgByATTwRAIAchBQwBCyAHIgUoAAAiCiAGKAAAIg1HBEAgCiANc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBNPDQEgBSgAACIKIAYoAAAiDUYNAAsgBSAKIA1zaEEDdmogB2sMAQsCQCAFIBlPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgC0kEfyAFIAYtAAAgBS0AAEZqBSAFCyAHawshBSADIBVNBEAgAykAACEgIAEoAgwiBCADKQAINwAIIAQgIDcAACABKAIEIQQLIARBATYCACAEQQA7AQQgBUEBaiIGQYCABE8EQCABQQI2AiQgASAEIAEoAgBrQQN1NgIoCyAEIAY7AQYgASAEQQhqIgQ2AgQgBUEEaiADaiEDIAhFBEAgCCEKIAMhBgwDCyAJIQ0gCCEKIBAgAyIGTw0ACwwBCyAAIAYgA2siBEH/D0s2AtwBIARBCHYgBmpBAWohBgsgBiAQSQ0ACwsgAiAJIBZBACAYGyAJGzYCACACIAogFiAXQQAgHRsiACAJGyAAIBgbIAobNgIEIAxBEGokACALIANrCwYAIAAkAAvIHgIcfwJ+IwBBEGsiCyQAIAIoAgQhGiACKAIAIRggAEEANgLcASAYIAMgACgCBCITIAAoAgwiCWoiHiADRmoiBSATayIHIAkgB0EBIAAoArgBdCIGayAJIAcgCWsgBksbIAAoAhgbayIJSyEbIAkgGkkhHyAAKALEASEIQQRBBiAAKALIASIJIAlBBk8bIgkgCUEETRshFQJAIAAoAhwiBiAGQQggAyAEaiIKQQ9rIiAgBiATaiIEayIJIAlBCE8bQQAgBCAKQRBrIhFNG2oiCU8NAEEYIAAoAiQiBGshB0E4IARrrSEhIAApA1AiIqchDCAIQQRNBEAgFUEFayENA0AgBiATaiEEIAAgBkEHcUECdGoCfwJAAkACQCANDgIAAQILIAQpAABCgICA2Mub741PfiAihSAhiKcMAgsgBCkAAEKAgOz8y5vvjU9+ICKFICGIpwwBCyAEKAAAQbHz3fF5bCAMcyAHdgs2AiwgBkEBaiIGIAlHDQALDAELIAhBBUYEQCAVQQVrIQ0DQCAGIBNqIQQgACAGQQdxQQJ0agJ/AkACQAJAIA0OAgABAgsgBCkAAEKAgIDYy5vvjU9+ICKFICGIpwwCCyAEKQAAQoCA7PzLm++NT34gIoUgIYinDAELIAQoAABBsfPd8XlsIAxzIAd2CzYCLCAGQQFqIgYgCUcNAAsMAQsgFUEFayENA0AgBiATaiEEIAAgBkEHcUECdGoCfwJAAkACQCANDgIBAgALIAQoAABBsfPd8XlsIAxzIAd2DAILIAQpAABCgICA2Mub741PfiAihSAhiKcMAQsgBCkAAEKAgOz8y5vvjU9+ICKFICGIpws2AiwgBkEBaiIGIAlHDQALC0EAIBggGxshDEEAIBogHxshDSAFIBFJBEBBBEEGIAggCEEGTxsiBCAEQQRNGyEQIApBIGshFiAKQQFrIRkgCkEDayESIBVBBGshHANAQQAgDGshFyAFQQFqIQcCf0EAIAxFDQAaQQAgByAMaygAACAFKAABRw0AGiAFQQVqIgkgF2ohBAJ/AkAgCSASTwRAIAkhBgwBCyAJIgYoAAAiCCAEKAAAIg5HBEAgCCAOc2hBA3YMAgsDQCAEQQRqIQQgBkEEaiIGIBJPDQEgBigAACIIIAQoAAAiDkYNAAsgBiAIIA5zaEEDdmogCWsMAQsCQCAGIBlPDQAgBC8AACAGLwAARw0AIARBAmohBCAGQQJqIQYLIAYgCkkEfyAGIAQtAAAgBi0AAEZqBSAGCyAJawtBBGoLIQYgC0H/k+vcAzYCDAJAAn8CQAJAAkAgHEEBaw4CAQIACwJAAkACQCAQQQVrDgIBAgALIAAgBSAKIAtBDGoQiAEMBAsgACAFIAogC0EMahCHAQwDCyAAIAUgCiALQQxqEIYBDAILAkACQAJAIBBBBWsOAgECAAsgACAFIAogC0EMahCFAQwDCyAAIAUgCiALQQxqEIQBDAILIAAgBSAKIAtBDGoQgwEMAQsCQAJAAkAgEEEFaw4CAQIACyAAIAUgCiALQQxqEIIBDAILIAAgBSAKIAtBDGoQgQEMAQsgACAFIAogC0EMahCAAQsiBCAGIAQgBksiBBsiDkEETwRAIAUgByAEGyEJIAsoAgxBASAEGyEEAkAgBSARTw0AA0AgBUEBaiEIAkAgBEUEQEEAIQQMAQsgDEUNACAIKAAAIAggF2ooAABHDQAgBUEFaiIPIBdqIQcgBGcgDkEDbGpBHmsCfwJAAkAgDyASTwRAIA8hBgwBCyAPIgYoAAAiFCAHKAAAIh1HBEAgFCAdc2hBA3ZBBHIMAwsDQCAHQQRqIQcgBkEEaiIGIBJPDQEgBigAACIUIAcoAAAiHUYNAAsgBiAUIB1zaEEDdmohBgwBCwJAIAYgGU8NACAHLwAAIAYvAABHDQAgB0ECaiEHIAZBAmohBgsgBiAKTw0AIAYgBy0AACAGLQAARmohBgsgBiAPayIHQXtLDQEgB0EEagsiBkEDbE4NAEEBIQQgCCEJIAYhDgsgC0H/k+vcAzYCCAJ/AkACfwJAAkACQCAcQQFrDgIBAgALAkACQAJAIBBBBWsOAgECAAsgACAIIAogC0EIahCIAQwECyAAIAggCiALQQhqEIcBDAMLIAAgCCAKIAtBCGoQhgEMAgsCQAJAAkAgEEEFaw4CAQIACyAAIAggCiALQQhqEIUBDAMLIAAgCCAKIAtBCGoQhAEMAgsgACAIIAogC0EIahCDAQwBCwJAAkACQCAQQQVrDgIBAgALIAAgCCAKIAtBCGoQggEMAgsgACAIIAogC0EIahCBAQwBCyAAIAggCiALQQhqEIABCyIGQQRJDQAgCygCCCIHZyAGQQJ0akEfayAEZyAOQQJ0akEba0wNACAIIQUgBiEOIAcMAQsgCCARTw0CIAVBAmohBwJAIARFBEBBACEEDAELIAxFDQAgBygAACAHIBdqKAAARw0AIAVBBmoiCCAXaiEGIARnIA5BAnRqQR5rAn8CQAJAIAggEk8EQCAIIQUMAQsgCCIFKAAAIg8gBigAACIURwRAIA8gFHNoQQN2QQRyDAMLA0AgBkEEaiEGIAVBBGoiBSASTw0BIAUoAAAiDyAGKAAAIhRGDQALIAUgDyAUc2hBA3ZqIQUMAQsCQCAFIBlPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgCk8NACAFIAYtAAAgBS0AAEZqIQULIAUgCGsiBUF7Sw0BIAVBBGoLIgVBAnRODQBBASEEIAchCSAFIQ4LIAtB/5Pr3AM2AgQCfwJAAkACQCAcQQFrDgIBAgALAkACQAJAIBBBBWsOAgECAAsgACAHIAogC0EEahCIAQwECyAAIAcgCiALQQRqEIcBDAMLIAAgByAKIAtBBGoQhgEMAgsCQAJAAkAgEEEFaw4CAQIACyAAIAcgCiALQQRqEIUBDAMLIAAgByAKIAtBBGoQhAEMAgsgACAHIAogC0EEahCDAQwBCwJAAkACQCAQQQVrDgIBAgALIAAgByAKIAtBBGoQggEMAgsgACAHIAogC0EEahCBAQwBCyAAIAcgCiALQQRqEIABCyIGQQRJDQIgCygCBCIIZyAGQQJ0akEfayAEZyAOQQJ0akEYa0wNAiAHIQUgBiEOIAgLIQQgBSEJIAUgEUkNAAsLAn8gBEEESQRAIAkhCCANIQcgDAwBCwJAIAMgCU8EQCAJIQgMAQtBAyAEayIFIAkiCGogHk0NAANAIAlBAWsiCC0AACAFIAhqIgctAABHBEAgCSEIDAILIA5BAWohDiADIAhPDQEgCCEJIAcgHksNAAsLIAwhByAEQQNrCyEJIAggA2shDSABKAIMIQUCQAJAIAggFk0EQCADKQAAISEgBSADKQAINwAIIAUgITcAACABKAIMIQYgDUEQTQRAIAEgBiANajYCDCABKAIEIQUMAwsgAykAECEhIAYgAykAGDcAGCAGICE3ABAgDUEhSA0BIAYgDWohDCADQRBqIQUgBkEgaiEGA0AgBSkAECEhIAYgBSkAGDcACCAGICE3AAAgBSkAICEhIAYgBSkAKDcAGCAGICE3ABAgBUEgaiEFIAZBIGoiBiAMSQ0ACwwBCyADIBZNBEAgAykAACEhIAUgAykACDcACCAFICE3AAAgBSAWIANrIgxqIQYgDEERTgRAIAVBEGohBQNAIAMpABAhISAFIAMpABg3AAggBSAhNwAAIAMpACAhISAFIAMpACg3ABggBSAhNwAQIANBIGohAyAFQSBqIgUgBkkNAAsLIAYhBSAWIQMLIAMgCE8NAEEAIQwgCCADIgZrQQdxIg8EQANAIAUgBi0AADoAACAFQQFqIQUgBkEBaiEGIAxBAWoiDCAPRw0ACwsgAyAIa0F4Sw0AA0AgBSAGLQAAOgAAIAUgBi0AAToAASAFIAYtAAI6AAIgBSAGLQADOgADIAUgBi0ABDoABCAFIAYtAAU6AAUgBSAGLQAGOgAGIAUgBi0ABzoAByAFQQhqIQUgBkEIaiIGIAhHDQALCyABIAEoAgwgDWo2AgwgASgCBCEFIA1BgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgBDYCACAFIA07AQQgDkEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgQ2AgQgACgC3AEEQCAAKAIcIgUgBUEIICAgBSATaiIDayIGIAZBCE8bQQAgAyARTRtqIgxJBEBBGCAAKAIkIgNrIQ1BOCADa60hISAAKQNQIiKnIQ8DQCAFIBNqIQMgACAFQQdxQQJ0agJ/AkACQAJAIBVBBWsOAgECAAsgAygAAEGx893xeWwgD3MgDXYMAgsgAykAAEKAgIDYy5vvjU9+ICKFICGIpwwBCyADKQAAQoCA7PzLm++NT34gIoUgIYinCzYCLCAFQQFqIgUgDEcNAAsLIABBADYC3AELIAggDmohAyAHRQRAIAchDSAJIQwgAyEFDAILIAchDSAJIQwgESADIgVJDQEDQCAHIQwgCSEHIAMoAAAgAyAMaygAAEcEQCAMIQ0gByEMIAMhBQwDCyADQQRqIgkgDGshBgJ/AkAgCSASTwRAIAkhBQwBCyAJIgUoAAAiDSAGKAAAIghHBEAgCCANc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBJPDQEgBSgAACINIAYoAAAiCEYNAAsgBSAIIA1zaEEDdmogCWsMAQsCQCAFIBlPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgCkkEfyAFIAYtAAAgBS0AAEZqBSAFCyAJawshBSADIBZNBEAgAykAACEhIAEoAgwiBCADKQAINwAIIAQgITcAACABKAIEIQQLIARBATYCACAEQQA7AQQgBUEBaiIJQYCABE8EQCABQQI2AiQgASAEIAEoAgBrQQN1NgIoCyAEIAk7AQYgASAEQQhqIgQ2AgQgBUEEaiADaiEDIAdFBEAgByENIAMhBQwDCyAMIQkgByENIBEgAyIFTw0ACwwBCyAAIAUgA2siBEH/D0s2AtwBIARBCHYgBWpBAWohBQsgBSARSQ0ACwsgAiAMIBhBACAbGyAMGzYCACACIA0gGCAaQQAgHxsiACAMGyAAIBsbIA0bNgIEIAtBEGokACAKIANrC/AOAhp/AX4jAEEQayIPJAAgAigCBCEGIAIoAgAhCCAAKAK0ASIFKAIAIRMgBSgCBCEUIAUoAgwhBSAAQQA2AtwBIAMgAyAAKAIEIhAgACgCDCIRaiIVayAFIBRqIhogE2tGaiIFIAMgBGoiC0EIayIWSQRAIAtBAWshGyALQQNrIRcgC0EgayESIBQgFCATayARaiIcayEYQQRBBiAAKALIASIEIARBBk8bIgQgBEEETRtBBGshHQNAAkACfwJAAkACQCAFIAggEGprQQFqIgQgEWtBfEsNACAUIAQgHGtqIAQgEGogBCARSSINGyIEKAAAIAVBAWoiBygAAEcNACAFQQVqIARBBGogCyATIAsgDRsgFRAPQQRqIQ5BASEJDAELIA9B/5Pr3AM2AgwCfwJAAkACQCAdQQFrDgIBAgALIAAgBSALIA9BDGoQiwEMAgsgACAFIAsgD0EMahCKAQwBCyAAIAUgCyAPQQxqEIkBCyIOQQNNBEAgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMBAsgDygCDCIJQQRPDQEgBSEHCyAIIQwgBgwBCyAJQQNrIQwCQAJAIAMgBU8NACAYIBAgBSAJIBBqa0EDaiINIBFJIgQbIA1qIgYgGiAVIAQbIgRNDQADQCAFQQFrIgctAAAgBkEBayIGLQAARw0BIA5BAWohDiADIAdPDQIgByEFIAQgBkkNAAsMAQsgBSEHCyAICyENIAcgA2shCiABKAIMIQUCQAJAIAcgEk0EQCADKQAAIR8gBSADKQAINwAIIAUgHzcAACABKAIMIQggCkEQTQRAIAEgCCAKajYCDCABKAIEIQUMAwsgAykAECEfIAggAykAGDcAGCAIIB83ABAgCkEhSA0BIAggCmohBCADQRBqIQUgCEEgaiEDA0AgBSkAECEfIAMgBSkAGDcACCADIB83AAAgBSkAICEfIAMgBSkAKDcAGCADIB83ABAgBUEgaiEFIANBIGoiAyAESQ0ACwwBCyADIBJNBEAgAykAACEfIAUgAykACDcACCAFIB83AAAgBSASIANrIghqIQQgCEERTgRAIAVBEGohBQNAIAMpABAhHyAFIAMpABg3AAggBSAfNwAAIAMpACAhHyAFIAMpACg3ABggBSAfNwAQIANBIGohAyAFQSBqIgUgBEkNAAsLIAQhBSASIQMLIAMgB08NAEEAIQQgAyEGIAcgA2tBB3EiCARAA0AgBSAGLQAAOgAAIAVBAWohBSAGQQFqIQYgBEEBaiIEIAhHDQALCyADIAdrQXhLDQADQCAFIAYtAAA6AAAgBSAGLQABOgABIAUgBi0AAjoAAiAFIAYtAAM6AAMgBSAGLQAEOgAEIAUgBi0ABToABSAFIAYtAAY6AAYgBSAGLQAHOgAHIAVBCGohBSAGQQhqIgYgB0cNAAsLIAEgASgCDCAKajYCDCABKAIEIQUgCkGAgARJDQAgAUEBNgIkIAEgBSABKAIAa0EDdTYCKAsgBSAJNgIAIAUgCjsBBCAOQQNrIgNBgIAETwRAIAFBAjYCJCABIAUgASgCAGtBA3U2AigLIAUgAzsBBiABIAVBCGoiBDYCBCAHIA5qIQMgACgC3AEEQCAAQQA2AtwBCyANIQYgDCEIIBYgAyIFSQ0AA0ACQCANIQggDCENIAMgCCAQamsiBSARa0F8Sw0AIBggECAFIBFJIgcbIAVqIgUoAAAgAygAAEcNACAFQQRqIgwhBiADQQRqIgkhBSAMAn8CQCAJIBMgCyAHGyIeIAxraiIHIAsgByALSRsiGUEDayIOIAlNDQAgCSgAACIKIAwoAAAiB0cEQCAHIApzaEEDdgwCCwNAIAZBBGohBiAFQQRqIgUgDk8NASAFKAAAIgogBigAACIHRg0ACyAFIAcgCnNoQQN2aiAJawwBCwJAIAUgGUEBa08NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSAZSQR/IAUgBi0AACAFLQAARmoFIAULIAlrCyIHaiAeRgRAIBUhBiAHIAlqIgwhBQJ/AkAgDCAXTw0AIAwoAAAiCiAGKAAAIglHBEAgCSAKc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBdPDQEgBSgAACIKIAYoAAAiCUYNAAsgBSAJIApzaEEDdmogDGsMAQsCQCAFIBtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgC0kEfyAFIAYtAAAgBS0AAEZqBSAFCyAMawsgB2ohBwsgAyASTQRAIAMpAAAhHyABKAIMIgQgAykACDcACCAEIB83AAAgASgCBCEECyAEQQE2AgAgBEEAOwEEIAdBAWoiBUGAgARPBEAgAUECNgIkIAEgBCABKAIAa0EDdTYCKAsgBCAFOwEGIAEgBEEIaiIENgIEIAghDCANIQYgB0EEaiADaiIDIQUgAyAWTQ0BDAILCyAIIQYgDSEIIAMhBQsgBSAWSQ0ACwsgAiAGNgIEIAIgCDYCACAPQRBqJAAgCyADawuYFAIffwF+IwBBEGsiECQAIAIoAgQhCiACKAIAIQsgACgCtAEiBSgCACEVIAUoAgQhFiAFKAIMIQUgAEEANgLcASADIAMgACgCBCITIAAoAgwiEmoiGGsgBSAWaiIeIBVrRmoiBSADIARqIgxBCGsiFEkEQEEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bIR8gDEEgayEXIBYgFiAVayASaiIaayEbIAxBAWshHCAMQQNrIRkDQCAFQQFqIQZBACEEAkAgBSALIBNqIiBrQQFqIgggEmtBfEsNACAWIAggGmtqIAggE2ogCCASSSIJGyIIKAAAIAYoAABHDQAgBUEFaiAIQQRqIAwgFSAMIAkbIBgQD0EEaiEECyAQQf+T69wDNgIMAkACQAJ/AkACQAJAIB9BBGsiIUEBaw4CAQIACyAAIAUgDCAQQQxqEIsBDAILIAAgBSAMIBBBDGoQigEMAQsgACAFIAwgEEEMahCJAQsiByAEIAQgB0kiBBsiDUEETwRAIAUgBiAEGyEGIBAoAgxBASAEGyERAkAgBSAUTw0AA0ACQCAFQQFqIgQgIGsiCCASa0F8Sw0AIBYgCCAaa2ogCCATaiAIIBJJIg4bIggoAAAgBCgAAEcNACAIQQRqIgghByAFQQVqIgkhBSAIAn8CQCAJIBUgDCAOGyIiIAhraiIOIAwgDCAOSxsiHUEDayIjIAlNDQAgCSgAACIPIAgoAAAiDkcEQCAOIA9zaEEDdgwCCwNAIAdBBGohByAFQQRqIgUgI08NASAFKAAAIg8gBygAACIORg0ACyAFIA4gD3NoQQN2aiAJawwBCwJAIAUgHUEBa08NACAHLwAAIAUvAABHDQAgB0ECaiEHIAVBAmohBQsgBSAdSQR/IAUgBy0AACAFLQAARmoFIAULIAlrCyIPaiAiRgRAIBghByAJIA9qIgghBQJ/AkAgCCAZTw0AIAgoAAAiDiAHKAAAIglHBEAgCSAOc2hBA3YMAgsDQCAHQQRqIQcgBUEEaiIFIBlPDQEgBSgAACIOIAcoAAAiCUYNAAsgBSAJIA5zaEEDdmogCGsMAQsCQCAFIBxPDQAgBy8AACAFLwAARw0AIAdBAmohByAFQQJqIQULIAUgDEkEfyAFIActAAAgBS0AAEZqBSAFCyAIawsgD2ohDwsgD0F7Sw0AIBFnIA1BA2xqQR5rIA9BBGoiBUEDbE4NAEEBIREgBCEGIAUhDQsgEEH/k+vcAzYCCAJ/AkACQAJAICFBAWsOAgECAAsgACAEIAwgEEEIahCLAQwCCyAAIAQgDCAQQQhqEIoBDAELIAAgBCAMIBBBCGoQiQELIgdBBEkNASAQKAIIIgVnIAdBAnRqQR9rIBFnIA1BAnRqQRtrTA0BIAchDSAFIREgBCIFIQYgBSAURw0ACyAUIQYLAn8gEUEESQRAIAshCSAKDAELIBFBA2shCQJAIAMgBk8NACAbIBMgBiARIBNqa0EDaiIFIBJJIgQbIAVqIgUgHiAYIAQbIghNDQADQCAGQQFrIgQtAAAgBUEBayIFLQAARw0BIA1BAWohDSADIARJBEAgBCEGIAUgCEsNAQsLIAQhBgsgCwshCCAGIANrIQogASgCDCEFAkACQCAGIBdNBEAgAykAACEkIAUgAykACDcACCAFICQ3AAAgASgCDCELIApBEE0EQCABIAogC2o2AgwgASgCBCEFDAMLIAMpABAhJCALIAMpABg3ABggCyAkNwAQIApBIUgNASAKIAtqIQQgA0EQaiEFIAtBIGohAwNAIAUpABAhJCADIAUpABg3AAggAyAkNwAAIAUpACAhJCADIAUpACg3ABggAyAkNwAQIAVBIGohBSADQSBqIgMgBEkNAAsMAQsgAyAXTQRAIAMpAAAhJCAFIAMpAAg3AAggBSAkNwAAIAUgFyADayILaiEEIAtBEU4EQCAFQRBqIQUDQCADKQAQISQgBSADKQAYNwAIIAUgJDcAACADKQAgISQgBSADKQAoNwAYIAUgJDcAECADQSBqIQMgBUEgaiIFIARJDQALCyAEIQUgFyEDCyADIAZPDQBBACEHIAYgAyIEa0EHcSILBEADQCAFIAQtAAA6AAAgBUEBaiEFIARBAWohBCAHQQFqIgcgC0cNAAsLIAMgBmtBeEsNAANAIAUgBC0AADoAACAFIAQtAAE6AAEgBSAELQACOgACIAUgBC0AAzoAAyAFIAQtAAQ6AAQgBSAELQAFOgAFIAUgBC0ABjoABiAFIAQtAAc6AAcgBUEIaiEFIARBCGoiBCAGRw0ACwsgASABKAIMIApqNgIMIAEoAgQhBSAKQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIBE2AgAgBSAKOwEEIA1BA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiIHNgIEIAYgDWohAyAAKALcAQRAIABBADYC3AELIAghCiAJIQsgFCADIgVJDQIDQCAIIQsgCSEIIAMgCyATamsiBCASa0F8Sw0CIBsgEyAEIBJJIgYbIARqIgQoAAAgAygAAEcNAiAEQQRqIgkhBCADQQRqIgohBSAJAn8CQCAKIBUgDCAGGyIOIAlraiIGIAwgBiAMSRsiD0EDayIRIApNDQAgCigAACINIAkoAAAiBkcEQCAGIA1zaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgEU8NASAFKAAAIg0gBCgAACIGRg0ACyAFIAYgDXNoQQN2aiAKawwBCwJAIAUgD0EBa08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSAPSQR/IAUgBC0AACAFLQAARmoFIAULIAprCyIGaiAORgRAIBghBCAGIApqIgkhBQJ/AkAgCSAZTw0AIAkoAAAiDSAEKAAAIgpHBEAgCiANc2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIBlPDQEgBSgAACINIAQoAAAiCkYNAAsgBSAKIA1zaEEDdmogCWsMAQsCQCAFIBxPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgDEkEfyAFIAQtAAAgBS0AAEZqBSAFCyAJawsgBmohBgsgAyAXTQRAIAMpAAAhJCABKAIMIgQgAykACDcACCAEICQ3AAAgASgCBCEHCyAHQQE2AgAgB0EAOwEEIAZBAWoiBEGAgARPBEAgAUECNgIkIAEgByABKAIAa0EDdTYCKAsgByAEOwEGIAEgB0EIaiIHNgIEIAshCSAIIQogBkEEaiADaiIDIQUgAyAUTQ0ACwwCCyAAIAUgA2siBEH/D0s2AtwBIARBCHYgBWpBAWohBQwBCyALIQogCCELIAMhBQsgBSAUSQ0ACwsgAiAKNgIEIAIgCzYCACAQQRBqJAAgDCADawufFgIgfwF+IwBBEGsiDiQAIAIoAgQhDCACKAIAIQ0gACgCtAEiBSgCACEUIAUoAgQhFSAFKAIMIQUgAEEANgLcASADIAMgACgCBCITIAAoAgwiEmoiF2sgBSAVaiIiIBRrRmoiBSADIARqIgtBCGsiFkkEQEEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bISMgC0EgayEYIBUgFSAUayASaiIbayEeIAtBAWshHyALQQNrIRoDQCAFQQFqIQZBACEEAkAgBSANIBNqIiBrQQFqIgcgEmtBfEsNACAVIAcgG2tqIAcgE2ogByASSSIHGyIJKAAAIAYoAABHDQAgBUEFaiAJQQRqIAsgFCALIAcbIBcQD0EEaiEECyAOQf+T69wDNgIMAkACQAJ/AkACQAJAICNBBGsiIUEBaw4CAQIACyAAIAUgCyAOQQxqEIsBDAILIAAgBSALIA5BDGoQigEMAQsgACAFIAsgDkEMahCJAQsiCCAEIAQgCEkiBBsiCUEETwRAIAUgBiAEGyEGIA4oAgxBASAEGyEQAkAgBSAWTw0AA0ACQCAFQQFqIgcgIGsiBCASa0F8Sw0AIBUgBCAba2ogBCATaiAEIBJJIg8bIgQoAAAgBygAAEcNACAEQQRqIhEhCCAFQQVqIgohBCARAn8CQCAKIBQgCyAPGyIZIBFraiIPIAsgCyAPSxsiD0EDayIkIApNDQAgCigAACIcIBEoAAAiHUcEQCAcIB1zaEEDdgwCCwNAIAhBBGohCCAEQQRqIgQgJE8NASAEKAAAIhwgCCgAACIdRg0ACyAEIBwgHXNoQQN2aiAKawwBCwJAIAQgD0EBa08NACAILwAAIAQvAABHDQAgCEECaiEIIARBAmohBAsgBCAPSQR/IAQgCC0AACAELQAARmoFIAQLIAprCyIPaiAZRgRAIBchCCAKIA9qIgohBAJ/AkAgCiAaTw0AIAooAAAiESAIKAAAIhlHBEAgESAZc2hBA3YMAgsDQCAIQQRqIQggBEEEaiIEIBpPDQEgBCgAACIRIAgoAAAiGUYNAAsgBCARIBlzaEEDdmogCmsMAQsCQCAEIB9PDQAgCC8AACAELwAARw0AIAhBAmohCCAEQQJqIQQLIAQgC0kEfyAEIAgtAAAgBC0AAEZqBSAECyAKawsgD2ohDwsgD0F7Sw0AIBBnIAlBA2xqQR5rIA9BBGoiBEEDbE4NAEEBIRAgByEGIAQhCQsgDkH/k+vcAzYCCAJ/AkACfwJAAkACQCAhQQFrDgIBAgALIAAgByALIA5BCGoQiwEMAgsgACAHIAsgDkEIahCKAQwBCyAAIAcgCyAOQQhqEIkBCyIEQQRJDQAgDigCCCIKZyAEQQJ0akEfayAQZyAJQQJ0akEba0wNACAKIRAgBCEJIAcMAQsgByAWTw0CAkAgBUECaiIHICBrIgQgEmtBfEsNACAVIAQgG2tqIAQgE2ogBCASSSIEGyIKKAAAIAcoAABHDQAgBUEGaiAKQQRqIAsgFCALIAQbIBcQDyIEQXtLDQAgEGcgCUECdGpBHmsgBEEEaiIEQQJ0Tg0AQQEhECAHIQYgBCEJCyAOQf+T69wDNgIEAn8CQAJAAkAgIUEBaw4CAQIACyAAIAcgCyAOQQRqEIsBDAILIAAgByALIA5BBGoQigEMAQsgACAHIAsgDkEEahCJAQsiBEEESQ0CIA4oAgQiCmcgBEECdGpBH2sgEGcgCUECdGpBGGtMDQIgCiEQIAQhCSAHCyIFIQYgBSAWSQ0ACwsCfyAQQQRJBEAgDSEKIAwMAQsgEEEDayEKAkAgAyAGTw0AIB4gEyAGIBAgE2prQQNqIgQgEkkiBxsgBGoiBSAiIBcgBxsiB00NAANAIAZBAWsiBC0AACAFQQFrIgUtAABHDQEgCUEBaiEJIAMgBEkEQCAEIQYgBSAHSw0BCwsgBCEGCyANCyEHIAYgA2shDSABKAIMIQUCQAJAIAYgGE0EQCADKQAAISUgBSADKQAINwAIIAUgJTcAACABKAIMIQQgDUEQTQRAIAEgBCANajYCDCABKAIEIQUMAwsgAykAECElIAQgAykAGDcAGCAEICU3ABAgDUEhSA0BIAQgDWohDCADQRBqIQUgBEEgaiEDA0AgBSkAECElIAMgBSkAGDcACCADICU3AAAgBSkAICElIAMgBSkAKDcAGCADICU3ABAgBUEgaiEFIANBIGoiAyAMSQ0ACwwBCyADIBhNBEAgAykAACElIAUgAykACDcACCAFICU3AAAgBSAYIANrIgxqIQQgDEERTgRAIAVBEGohBQNAIAMpABAhJSAFIAMpABg3AAggBSAlNwAAIAMpACAhJSAFIAMpACg3ABggBSAlNwAQIANBIGohAyAFQSBqIgUgBEkNAAsLIAQhBSAYIQMLIAMgBk8NAEEAIQggBiADIgRrQQdxIgwEQANAIAUgBC0AADoAACAFQQFqIQUgBEEBaiEEIAhBAWoiCCAMRw0ACwsgAyAGa0F4Sw0AA0AgBSAELQAAOgAAIAUgBC0AAToAASAFIAQtAAI6AAIgBSAELQADOgADIAUgBC0ABDoABCAFIAQtAAU6AAUgBSAELQAGOgAGIAUgBC0ABzoAByAFQQhqIQUgBEEIaiIEIAZHDQALCyABIAEoAgwgDWo2AgwgASgCBCEFIA1BgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgEDYCACAFIA07AQQgCUEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgg2AgQgBiAJaiEDIAAoAtwBBEAgAEEANgLcAQsgByEMIAohDSAWIAMiBUkNAgNAIAchDSAKIQcgAyANIBNqayIEIBJrQXxLDQIgHiATIAQgEkkiCRsgBGoiBCgAACADKAAARw0CIARBBGoiDCEEIANBBGoiBiEFIAwCfwJAIAYgFCALIAkbIgogDGtqIgkgCyAJIAtJGyIJQQNrIhAgBk0NACAGKAAAIhEgDCgAACIPRwRAIA8gEXNoQQN2DAILA0AgBEEEaiEEIAVBBGoiBSAQTw0BIAUoAAAiESAEKAAAIg9GDQALIAUgDyARc2hBA3ZqIAZrDAELAkAgBSAJQQFrTw0AIAQvAAAgBS8AAEcNACAEQQJqIQQgBUECaiEFCyAFIAlJBH8gBSAELQAAIAUtAABGagUgBQsgBmsLIglqIApGBEAgFyEEIAYgCWoiBiEFAn8CQCAGIBpPDQAgBigAACIMIAQoAAAiCkcEQCAKIAxzaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgGk8NASAFKAAAIgwgBCgAACIKRg0ACyAFIAogDHNoQQN2aiAGawwBCwJAIAUgH08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSALSQR/IAUgBC0AACAFLQAARmoFIAULIAZrCyAJaiEJCyADIBhNBEAgAykAACElIAEoAgwiBCADKQAINwAIIAQgJTcAACABKAIEIQgLIAhBATYCACAIQQA7AQQgCUEBaiIEQYCABE8EQCABQQI2AiQgASAIIAEoAgBrQQN1NgIoCyAIIAQ7AQYgASAIQQhqIgg2AgQgDSEKIAchDCAJQQRqIANqIgMhBSADIBZNDQALDAILIAAgBSADayIEQf8PSzYC3AEgBEEIdiAFakEBaiEFDAELIA0hDCAHIQ0gAyEFCyAFIBZJDQALCyACIAw2AgQgAiANNgIAIA5BEGokACALIANrC/AOAhp/AX4jAEEQayIPJAAgAigCBCEGIAIoAgAhCCAAKAK0ASIFKAIAIRMgBSgCBCEUIAUoAgwhBSAAQQA2AtwBIAMgAyAAKAIEIhAgACgCDCIRaiIVayAFIBRqIhogE2tGaiIFIAMgBGoiC0EIayIWSQRAIAtBAWshGyALQQNrIRcgC0EgayESIBQgFCATayARaiIcayEYQQRBBiAAKALIASIEIARBBk8bIgQgBEEETRtBBGshHQNAAkACfwJAAkACQCAFIAggEGprQQFqIgQgEWtBfEsNACAUIAQgHGtqIAQgEGogBCARSSINGyIEKAAAIAVBAWoiBygAAEcNACAFQQVqIARBBGogCyATIAsgDRsgFRAPQQRqIQ5BASEJDAELIA9B/5Pr3AM2AgwCfwJAAkACQCAdQQFrDgIBAgALIAAgBSALIA9BDGoQjgEMAgsgACAFIAsgD0EMahCNAQwBCyAAIAUgCyAPQQxqEIwBCyIOQQNNBEAgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMBAsgDygCDCIJQQRPDQEgBSEHCyAIIQwgBgwBCyAJQQNrIQwCQAJAIAMgBU8NACAYIBAgBSAJIBBqa0EDaiINIBFJIgQbIA1qIgYgGiAVIAQbIgRNDQADQCAFQQFrIgctAAAgBkEBayIGLQAARw0BIA5BAWohDiADIAdPDQIgByEFIAQgBkkNAAsMAQsgBSEHCyAICyENIAcgA2shCiABKAIMIQUCQAJAIAcgEk0EQCADKQAAIR8gBSADKQAINwAIIAUgHzcAACABKAIMIQggCkEQTQRAIAEgCCAKajYCDCABKAIEIQUMAwsgAykAECEfIAggAykAGDcAGCAIIB83ABAgCkEhSA0BIAggCmohBCADQRBqIQUgCEEgaiEDA0AgBSkAECEfIAMgBSkAGDcACCADIB83AAAgBSkAICEfIAMgBSkAKDcAGCADIB83ABAgBUEgaiEFIANBIGoiAyAESQ0ACwwBCyADIBJNBEAgAykAACEfIAUgAykACDcACCAFIB83AAAgBSASIANrIghqIQQgCEERTgRAIAVBEGohBQNAIAMpABAhHyAFIAMpABg3AAggBSAfNwAAIAMpACAhHyAFIAMpACg3ABggBSAfNwAQIANBIGohAyAFQSBqIgUgBEkNAAsLIAQhBSASIQMLIAMgB08NAEEAIQQgAyEGIAcgA2tBB3EiCARAA0AgBSAGLQAAOgAAIAVBAWohBSAGQQFqIQYgBEEBaiIEIAhHDQALCyADIAdrQXhLDQADQCAFIAYtAAA6AAAgBSAGLQABOgABIAUgBi0AAjoAAiAFIAYtAAM6AAMgBSAGLQAEOgAEIAUgBi0ABToABSAFIAYtAAY6AAYgBSAGLQAHOgAHIAVBCGohBSAGQQhqIgYgB0cNAAsLIAEgASgCDCAKajYCDCABKAIEIQUgCkGAgARJDQAgAUEBNgIkIAEgBSABKAIAa0EDdTYCKAsgBSAJNgIAIAUgCjsBBCAOQQNrIgNBgIAETwRAIAFBAjYCJCABIAUgASgCAGtBA3U2AigLIAUgAzsBBiABIAVBCGoiBDYCBCAHIA5qIQMgACgC3AEEQCAAQQA2AtwBCyANIQYgDCEIIBYgAyIFSQ0AA0ACQCANIQggDCENIAMgCCAQamsiBSARa0F8Sw0AIBggECAFIBFJIgcbIAVqIgUoAAAgAygAAEcNACAFQQRqIgwhBiADQQRqIgkhBSAMAn8CQCAJIBMgCyAHGyIeIAxraiIHIAsgByALSRsiGUEDayIOIAlNDQAgCSgAACIKIAwoAAAiB0cEQCAHIApzaEEDdgwCCwNAIAZBBGohBiAFQQRqIgUgDk8NASAFKAAAIgogBigAACIHRg0ACyAFIAcgCnNoQQN2aiAJawwBCwJAIAUgGUEBa08NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSAZSQR/IAUgBi0AACAFLQAARmoFIAULIAlrCyIHaiAeRgRAIBUhBiAHIAlqIgwhBQJ/AkAgDCAXTw0AIAwoAAAiCiAGKAAAIglHBEAgCSAKc2hBA3YMAgsDQCAGQQRqIQYgBUEEaiIFIBdPDQEgBSgAACIKIAYoAAAiCUYNAAsgBSAJIApzaEEDdmogDGsMAQsCQCAFIBtPDQAgBi8AACAFLwAARw0AIAZBAmohBiAFQQJqIQULIAUgC0kEfyAFIAYtAAAgBS0AAEZqBSAFCyAMawsgB2ohBwsgAyASTQRAIAMpAAAhHyABKAIMIgQgAykACDcACCAEIB83AAAgASgCBCEECyAEQQE2AgAgBEEAOwEEIAdBAWoiBUGAgARPBEAgAUECNgIkIAEgBCABKAIAa0EDdTYCKAsgBCAFOwEGIAEgBEEIaiIENgIEIAghDCANIQYgB0EEaiADaiIDIQUgAyAWTQ0BDAILCyAIIQYgDSEIIAMhBQsgBSAWSQ0ACwsgAiAGNgIEIAIgCDYCACAPQRBqJAAgCyADawuYFAIffwF+IwBBEGsiECQAIAIoAgQhCiACKAIAIQsgACgCtAEiBSgCACEVIAUoAgQhFiAFKAIMIQUgAEEANgLcASADIAMgACgCBCITIAAoAgwiEmoiGGsgBSAWaiIeIBVrRmoiBSADIARqIgxBCGsiFEkEQEEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bIR8gDEEgayEXIBYgFiAVayASaiIaayEbIAxBAWshHCAMQQNrIRkDQCAFQQFqIQZBACEEAkAgBSALIBNqIiBrQQFqIgggEmtBfEsNACAWIAggGmtqIAggE2ogCCASSSIJGyIIKAAAIAYoAABHDQAgBUEFaiAIQQRqIAwgFSAMIAkbIBgQD0EEaiEECyAQQf+T69wDNgIMAkACQAJ/AkACQAJAIB9BBGsiIUEBaw4CAQIACyAAIAUgDCAQQQxqEI4BDAILIAAgBSAMIBBBDGoQjQEMAQsgACAFIAwgEEEMahCMAQsiByAEIAQgB0kiBBsiDUEETwRAIAUgBiAEGyEGIBAoAgxBASAEGyERAkAgBSAUTw0AA0ACQCAFQQFqIgQgIGsiCCASa0F8Sw0AIBYgCCAaa2ogCCATaiAIIBJJIg4bIggoAAAgBCgAAEcNACAIQQRqIgghByAFQQVqIgkhBSAIAn8CQCAJIBUgDCAOGyIiIAhraiIOIAwgDCAOSxsiHUEDayIjIAlNDQAgCSgAACIPIAgoAAAiDkcEQCAOIA9zaEEDdgwCCwNAIAdBBGohByAFQQRqIgUgI08NASAFKAAAIg8gBygAACIORg0ACyAFIA4gD3NoQQN2aiAJawwBCwJAIAUgHUEBa08NACAHLwAAIAUvAABHDQAgB0ECaiEHIAVBAmohBQsgBSAdSQR/IAUgBy0AACAFLQAARmoFIAULIAlrCyIPaiAiRgRAIBghByAJIA9qIgghBQJ/AkAgCCAZTw0AIAgoAAAiDiAHKAAAIglHBEAgCSAOc2hBA3YMAgsDQCAHQQRqIQcgBUEEaiIFIBlPDQEgBSgAACIOIAcoAAAiCUYNAAsgBSAJIA5zaEEDdmogCGsMAQsCQCAFIBxPDQAgBy8AACAFLwAARw0AIAdBAmohByAFQQJqIQULIAUgDEkEfyAFIActAAAgBS0AAEZqBSAFCyAIawsgD2ohDwsgD0F7Sw0AIBFnIA1BA2xqQR5rIA9BBGoiBUEDbE4NAEEBIREgBCEGIAUhDQsgEEH/k+vcAzYCCAJ/AkACQAJAICFBAWsOAgECAAsgACAEIAwgEEEIahCOAQwCCyAAIAQgDCAQQQhqEI0BDAELIAAgBCAMIBBBCGoQjAELIgdBBEkNASAQKAIIIgVnIAdBAnRqQR9rIBFnIA1BAnRqQRtrTA0BIAchDSAFIREgBCIFIQYgBSAURw0ACyAUIQYLAn8gEUEESQRAIAshCSAKDAELIBFBA2shCQJAIAMgBk8NACAbIBMgBiARIBNqa0EDaiIFIBJJIgQbIAVqIgUgHiAYIAQbIghNDQADQCAGQQFrIgQtAAAgBUEBayIFLQAARw0BIA1BAWohDSADIARJBEAgBCEGIAUgCEsNAQsLIAQhBgsgCwshCCAGIANrIQogASgCDCEFAkACQCAGIBdNBEAgAykAACEkIAUgAykACDcACCAFICQ3AAAgASgCDCELIApBEE0EQCABIAogC2o2AgwgASgCBCEFDAMLIAMpABAhJCALIAMpABg3ABggCyAkNwAQIApBIUgNASAKIAtqIQQgA0EQaiEFIAtBIGohAwNAIAUpABAhJCADIAUpABg3AAggAyAkNwAAIAUpACAhJCADIAUpACg3ABggAyAkNwAQIAVBIGohBSADQSBqIgMgBEkNAAsMAQsgAyAXTQRAIAMpAAAhJCAFIAMpAAg3AAggBSAkNwAAIAUgFyADayILaiEEIAtBEU4EQCAFQRBqIQUDQCADKQAQISQgBSADKQAYNwAIIAUgJDcAACADKQAgISQgBSADKQAoNwAYIAUgJDcAECADQSBqIQMgBUEgaiIFIARJDQALCyAEIQUgFyEDCyADIAZPDQBBACEHIAYgAyIEa0EHcSILBEADQCAFIAQtAAA6AAAgBUEBaiEFIARBAWohBCAHQQFqIgcgC0cNAAsLIAMgBmtBeEsNAANAIAUgBC0AADoAACAFIAQtAAE6AAEgBSAELQACOgACIAUgBC0AAzoAAyAFIAQtAAQ6AAQgBSAELQAFOgAFIAUgBC0ABjoABiAFIAQtAAc6AAcgBUEIaiEFIARBCGoiBCAGRw0ACwsgASABKAIMIApqNgIMIAEoAgQhBSAKQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIBE2AgAgBSAKOwEEIA1BA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiIHNgIEIAYgDWohAyAAKALcAQRAIABBADYC3AELIAghCiAJIQsgFCADIgVJDQIDQCAIIQsgCSEIIAMgCyATamsiBCASa0F8Sw0CIBsgEyAEIBJJIgYbIARqIgQoAAAgAygAAEcNAiAEQQRqIgkhBCADQQRqIgohBSAJAn8CQCAKIBUgDCAGGyIOIAlraiIGIAwgBiAMSRsiD0EDayIRIApNDQAgCigAACINIAkoAAAiBkcEQCAGIA1zaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgEU8NASAFKAAAIg0gBCgAACIGRg0ACyAFIAYgDXNoQQN2aiAKawwBCwJAIAUgD0EBa08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSAPSQR/IAUgBC0AACAFLQAARmoFIAULIAprCyIGaiAORgRAIBghBCAGIApqIgkhBQJ/AkAgCSAZTw0AIAkoAAAiDSAEKAAAIgpHBEAgCiANc2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIBlPDQEgBSgAACINIAQoAAAiCkYNAAsgBSAKIA1zaEEDdmogCWsMAQsCQCAFIBxPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgDEkEfyAFIAQtAAAgBS0AAEZqBSAFCyAJawsgBmohBgsgAyAXTQRAIAMpAAAhJCABKAIMIgQgAykACDcACCAEICQ3AAAgASgCBCEHCyAHQQE2AgAgB0EAOwEEIAZBAWoiBEGAgARPBEAgAUECNgIkIAEgByABKAIAa0EDdTYCKAsgByAEOwEGIAEgB0EIaiIHNgIEIAshCSAIIQogBkEEaiADaiIDIQUgAyAUTQ0ACwwCCyAAIAUgA2siBEH/D0s2AtwBIARBCHYgBWpBAWohBQwBCyALIQogCCELIAMhBQsgBSAUSQ0ACwsgAiAKNgIEIAIgCzYCACAQQRBqJAAgDCADawufFgIgfwF+IwBBEGsiDiQAIAIoAgQhDCACKAIAIQ0gACgCtAEiBSgCACEUIAUoAgQhFSAFKAIMIQUgAEEANgLcASADIAMgACgCBCITIAAoAgwiEmoiF2sgBSAVaiIiIBRrRmoiBSADIARqIgtBCGsiFkkEQEEEQQYgACgCyAEiBCAEQQZPGyIEIARBBE0bISMgC0EgayEYIBUgFSAUayASaiIbayEeIAtBAWshHyALQQNrIRoDQCAFQQFqIQZBACEEAkAgBSANIBNqIiBrQQFqIgcgEmtBfEsNACAVIAcgG2tqIAcgE2ogByASSSIHGyIJKAAAIAYoAABHDQAgBUEFaiAJQQRqIAsgFCALIAcbIBcQD0EEaiEECyAOQf+T69wDNgIMAkACQAJ/AkACQAJAICNBBGsiIUEBaw4CAQIACyAAIAUgCyAOQQxqEI4BDAILIAAgBSALIA5BDGoQjQEMAQsgACAFIAsgDkEMahCMAQsiCCAEIAQgCEkiBBsiCUEETwRAIAUgBiAEGyEGIA4oAgxBASAEGyEQAkAgBSAWTw0AA0ACQCAFQQFqIgcgIGsiBCASa0F8Sw0AIBUgBCAba2ogBCATaiAEIBJJIg8bIgQoAAAgBygAAEcNACAEQQRqIhEhCCAFQQVqIgohBCARAn8CQCAKIBQgCyAPGyIZIBFraiIPIAsgCyAPSxsiD0EDayIkIApNDQAgCigAACIcIBEoAAAiHUcEQCAcIB1zaEEDdgwCCwNAIAhBBGohCCAEQQRqIgQgJE8NASAEKAAAIhwgCCgAACIdRg0ACyAEIBwgHXNoQQN2aiAKawwBCwJAIAQgD0EBa08NACAILwAAIAQvAABHDQAgCEECaiEIIARBAmohBAsgBCAPSQR/IAQgCC0AACAELQAARmoFIAQLIAprCyIPaiAZRgRAIBchCCAKIA9qIgohBAJ/AkAgCiAaTw0AIAooAAAiESAIKAAAIhlHBEAgESAZc2hBA3YMAgsDQCAIQQRqIQggBEEEaiIEIBpPDQEgBCgAACIRIAgoAAAiGUYNAAsgBCARIBlzaEEDdmogCmsMAQsCQCAEIB9PDQAgCC8AACAELwAARw0AIAhBAmohCCAEQQJqIQQLIAQgC0kEfyAEIAgtAAAgBC0AAEZqBSAECyAKawsgD2ohDwsgD0F7Sw0AIBBnIAlBA2xqQR5rIA9BBGoiBEEDbE4NAEEBIRAgByEGIAQhCQsgDkH/k+vcAzYCCAJ/AkACfwJAAkACQCAhQQFrDgIBAgALIAAgByALIA5BCGoQjgEMAgsgACAHIAsgDkEIahCNAQwBCyAAIAcgCyAOQQhqEIwBCyIEQQRJDQAgDigCCCIKZyAEQQJ0akEfayAQZyAJQQJ0akEba0wNACAKIRAgBCEJIAcMAQsgByAWTw0CAkAgBUECaiIHICBrIgQgEmtBfEsNACAVIAQgG2tqIAQgE2ogBCASSSIEGyIKKAAAIAcoAABHDQAgBUEGaiAKQQRqIAsgFCALIAQbIBcQDyIEQXtLDQAgEGcgCUECdGpBHmsgBEEEaiIEQQJ0Tg0AQQEhECAHIQYgBCEJCyAOQf+T69wDNgIEAn8CQAJAAkAgIUEBaw4CAQIACyAAIAcgCyAOQQRqEI4BDAILIAAgByALIA5BBGoQjQEMAQsgACAHIAsgDkEEahCMAQsiBEEESQ0CIA4oAgQiCmcgBEECdGpBH2sgEGcgCUECdGpBGGtMDQIgCiEQIAQhCSAHCyIFIQYgBSAWSQ0ACwsCfyAQQQRJBEAgDSEKIAwMAQsgEEEDayEKAkAgAyAGTw0AIB4gEyAGIBAgE2prQQNqIgQgEkkiBxsgBGoiBSAiIBcgBxsiB00NAANAIAZBAWsiBC0AACAFQQFrIgUtAABHDQEgCUEBaiEJIAMgBEkEQCAEIQYgBSAHSw0BCwsgBCEGCyANCyEHIAYgA2shDSABKAIMIQUCQAJAIAYgGE0EQCADKQAAISUgBSADKQAINwAIIAUgJTcAACABKAIMIQQgDUEQTQRAIAEgBCANajYCDCABKAIEIQUMAwsgAykAECElIAQgAykAGDcAGCAEICU3ABAgDUEhSA0BIAQgDWohDCADQRBqIQUgBEEgaiEDA0AgBSkAECElIAMgBSkAGDcACCADICU3AAAgBSkAICElIAMgBSkAKDcAGCADICU3ABAgBUEgaiEFIANBIGoiAyAMSQ0ACwwBCyADIBhNBEAgAykAACElIAUgAykACDcACCAFICU3AAAgBSAYIANrIgxqIQQgDEERTgRAIAVBEGohBQNAIAMpABAhJSAFIAMpABg3AAggBSAlNwAAIAMpACAhJSAFIAMpACg3ABggBSAlNwAQIANBIGohAyAFQSBqIgUgBEkNAAsLIAQhBSAYIQMLIAMgBk8NAEEAIQggBiADIgRrQQdxIgwEQANAIAUgBC0AADoAACAFQQFqIQUgBEEBaiEEIAhBAWoiCCAMRw0ACwsgAyAGa0F4Sw0AA0AgBSAELQAAOgAAIAUgBC0AAToAASAFIAQtAAI6AAIgBSAELQADOgADIAUgBC0ABDoABCAFIAQtAAU6AAUgBSAELQAGOgAGIAUgBC0ABzoAByAFQQhqIQUgBEEIaiIEIAZHDQALCyABIAEoAgwgDWo2AgwgASgCBCEFIA1BgIAESQ0AIAFBATYCJCABIAUgASgCAGtBA3U2AigLIAUgEDYCACAFIA07AQQgCUEDayIDQYCABE8EQCABQQI2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAM7AQYgASAFQQhqIgg2AgQgBiAJaiEDIAAoAtwBBEAgAEEANgLcAQsgByEMIAohDSAWIAMiBUkNAgNAIAchDSAKIQcgAyANIBNqayIEIBJrQXxLDQIgHiATIAQgEkkiCRsgBGoiBCgAACADKAAARw0CIARBBGoiDCEEIANBBGoiBiEFIAwCfwJAIAYgFCALIAkbIgogDGtqIgkgCyAJIAtJGyIJQQNrIhAgBk0NACAGKAAAIhEgDCgAACIPRwRAIA8gEXNoQQN2DAILA0AgBEEEaiEEIAVBBGoiBSAQTw0BIAUoAAAiESAEKAAAIg9GDQALIAUgDyARc2hBA3ZqIAZrDAELAkAgBSAJQQFrTw0AIAQvAAAgBS8AAEcNACAEQQJqIQQgBUECaiEFCyAFIAlJBH8gBSAELQAAIAUtAABGagUgBQsgBmsLIglqIApGBEAgFyEEIAYgCWoiBiEFAn8CQCAGIBpPDQAgBigAACIMIAQoAAAiCkcEQCAKIAxzaEEDdgwCCwNAIARBBGohBCAFQQRqIgUgGk8NASAFKAAAIgwgBCgAACIKRg0ACyAFIAogDHNoQQN2aiAGawwBCwJAIAUgH08NACAELwAAIAUvAABHDQAgBEECaiEEIAVBAmohBQsgBSALSQR/IAUgBC0AACAFLQAARmoFIAULIAZrCyAJaiEJCyADIBhNBEAgAykAACElIAEoAgwiBCADKQAINwAIIAQgJTcAACABKAIEIQgLIAhBATYCACAIQQA7AQQgCUEBaiIEQYCABE8EQCABQQI2AiQgASAIIAEoAgBrQQN1NgIoCyAIIAQ7AQYgASAIQQhqIgg2AgQgDSEKIAchDCAJQQRqIANqIgMhBSADIBZNDQALDAILIAAgBSADayIEQf8PSzYC3AEgBEEIdiAFakEBaiEFDAELIA0hDCAHIQ0gAyEFCyAFIBZJDQALCyACIAw2AgQgAiANNgIAIA5BEGokACALIANrC58WAiB/AX4jAEEQayIOJAAgAigCBCEMIAIoAgAhDSAAKAK0ASIFKAIAIRQgBSgCBCEVIAUoAgwhBSAAQQA2AtwBIAMgAyAAKAIEIhMgACgCDCISaiIXayAFIBVqIiIgFGtGaiIFIAMgBGoiC0EIayIWSQRAQQRBBiAAKALIASIEIARBBk8bIgQgBEEETRshIyALQSBrIRggFSAVIBRrIBJqIhtrIR4gC0EBayEfIAtBA2shGgNAIAVBAWohBkEAIQQCQCAFIA0gE2oiIGtBAWoiByASa0F8Sw0AIBUgByAba2ogByATaiAHIBJJIgcbIgkoAAAgBigAAEcNACAFQQVqIAlBBGogCyAUIAsgBxsgFxAPQQRqIQQLIA5B/5Pr3AM2AgwCQAJAAn8CQAJAAkAgI0EEayIhQQFrDgIBAgALIAAgBSALIA5BDGoQ/AEMAgsgACAFIAsgDkEMahD7AQwBCyAAIAUgCyAOQQxqEPoBCyIIIAQgBCAISSIEGyIJQQRPBEAgBSAGIAQbIQYgDigCDEEBIAQbIRACQCAFIBZPDQADQAJAIAVBAWoiByAgayIEIBJrQXxLDQAgFSAEIBtraiAEIBNqIAQgEkkiDxsiBCgAACAHKAAARw0AIARBBGoiESEIIAVBBWoiCiEEIBECfwJAIAogFCALIA8bIhkgEWtqIg8gCyALIA9LGyIPQQNrIiQgCk0NACAKKAAAIhwgESgAACIdRwRAIBwgHXNoQQN2DAILA0AgCEEEaiEIIARBBGoiBCAkTw0BIAQoAAAiHCAIKAAAIh1GDQALIAQgHCAdc2hBA3ZqIAprDAELAkAgBCAPQQFrTw0AIAgvAAAgBC8AAEcNACAIQQJqIQggBEECaiEECyAEIA9JBH8gBCAILQAAIAQtAABGagUgBAsgCmsLIg9qIBlGBEAgFyEIIAogD2oiCiEEAn8CQCAKIBpPDQAgCigAACIRIAgoAAAiGUcEQCARIBlzaEEDdgwCCwNAIAhBBGohCCAEQQRqIgQgGk8NASAEKAAAIhEgCCgAACIZRg0ACyAEIBEgGXNoQQN2aiAKawwBCwJAIAQgH08NACAILwAAIAQvAABHDQAgCEECaiEIIARBAmohBAsgBCALSQR/IAQgCC0AACAELQAARmoFIAQLIAprCyAPaiEPCyAPQXtLDQAgEGcgCUEDbGpBHmsgD0EEaiIEQQNsTg0AQQEhECAHIQYgBCEJCyAOQf+T69wDNgIIAn8CQAJ/AkACQAJAICFBAWsOAgECAAsgACAHIAsgDkEIahD8AQwCCyAAIAcgCyAOQQhqEPsBDAELIAAgByALIA5BCGoQ+gELIgRBBEkNACAOKAIIIgpnIARBAnRqQR9rIBBnIAlBAnRqQRtrTA0AIAohECAEIQkgBwwBCyAHIBZPDQICQCAFQQJqIgcgIGsiBCASa0F8Sw0AIBUgBCAba2ogBCATaiAEIBJJIgQbIgooAAAgBygAAEcNACAFQQZqIApBBGogCyAUIAsgBBsgFxAPIgRBe0sNACAQZyAJQQJ0akEeayAEQQRqIgRBAnRODQBBASEQIAchBiAEIQkLIA5B/5Pr3AM2AgQCfwJAAkACQCAhQQFrDgIBAgALIAAgByALIA5BBGoQ/AEMAgsgACAHIAsgDkEEahD7AQwBCyAAIAcgCyAOQQRqEPoBCyIEQQRJDQIgDigCBCIKZyAEQQJ0akEfayAQZyAJQQJ0akEYa0wNAiAKIRAgBCEJIAcLIgUhBiAFIBZJDQALCwJ/IBBBBEkEQCANIQogDAwBCyAQQQNrIQoCQCADIAZPDQAgHiATIAYgECATamtBA2oiBCASSSIHGyAEaiIFICIgFyAHGyIHTQ0AA0AgBkEBayIELQAAIAVBAWsiBS0AAEcNASAJQQFqIQkgAyAESQRAIAQhBiAFIAdLDQELCyAEIQYLIA0LIQcgBiADayENIAEoAgwhBQJAAkAgBiAYTQRAIAMpAAAhJSAFIAMpAAg3AAggBSAlNwAAIAEoAgwhBCANQRBNBEAgASAEIA1qNgIMIAEoAgQhBQwDCyADKQAQISUgBCADKQAYNwAYIAQgJTcAECANQSFIDQEgBCANaiEMIANBEGohBSAEQSBqIQMDQCAFKQAQISUgAyAFKQAYNwAIIAMgJTcAACAFKQAgISUgAyAFKQAoNwAYIAMgJTcAECAFQSBqIQUgA0EgaiIDIAxJDQALDAELIAMgGE0EQCADKQAAISUgBSADKQAINwAIIAUgJTcAACAFIBggA2siDGohBCAMQRFOBEAgBUEQaiEFA0AgAykAECElIAUgAykAGDcACCAFICU3AAAgAykAICElIAUgAykAKDcAGCAFICU3ABAgA0EgaiEDIAVBIGoiBSAESQ0ACwsgBCEFIBghAwsgAyAGTw0AQQAhCCAGIAMiBGtBB3EiDARAA0AgBSAELQAAOgAAIAVBAWohBSAEQQFqIQQgCEEBaiIIIAxHDQALCyADIAZrQXhLDQADQCAFIAQtAAA6AAAgBSAELQABOgABIAUgBC0AAjoAAiAFIAQtAAM6AAMgBSAELQAEOgAEIAUgBC0ABToABSAFIAQtAAY6AAYgBSAELQAHOgAHIAVBCGohBSAEQQhqIgQgBkcNAAsLIAEgASgCDCANajYCDCABKAIEIQUgDUGAgARJDQAgAUEBNgIkIAEgBSABKAIAa0EDdTYCKAsgBSAQNgIAIAUgDTsBBCAJQQNrIgNBgIAETwRAIAFBAjYCJCABIAUgASgCAGtBA3U2AigLIAUgAzsBBiABIAVBCGoiCDYCBCAGIAlqIQMgACgC3AEEQCAAQQA2AtwBCyAHIQwgCiENIBYgAyIFSQ0CA0AgByENIAohByADIA0gE2prIgQgEmtBfEsNAiAeIBMgBCASSSIJGyAEaiIEKAAAIAMoAABHDQIgBEEEaiIMIQQgA0EEaiIGIQUgDAJ/AkAgBiAUIAsgCRsiCiAMa2oiCSALIAkgC0kbIglBA2siECAGTQ0AIAYoAAAiESAMKAAAIg9HBEAgDyARc2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIBBPDQEgBSgAACIRIAQoAAAiD0YNAAsgBSAPIBFzaEEDdmogBmsMAQsCQCAFIAlBAWtPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgCUkEfyAFIAQtAAAgBS0AAEZqBSAFCyAGawsiCWogCkYEQCAXIQQgBiAJaiIGIQUCfwJAIAYgGk8NACAGKAAAIgwgBCgAACIKRwRAIAogDHNoQQN2DAILA0AgBEEEaiEEIAVBBGoiBSAaTw0BIAUoAAAiDCAEKAAAIgpGDQALIAUgCiAMc2hBA3ZqIAZrDAELAkAgBSAfTw0AIAQvAAAgBS8AAEcNACAEQQJqIQQgBUECaiEFCyAFIAtJBH8gBSAELQAAIAUtAABGagUgBQsgBmsLIAlqIQkLIAMgGE0EQCADKQAAISUgASgCDCIEIAMpAAg3AAggBCAlNwAAIAEoAgQhCAsgCEEBNgIAIAhBADsBBCAJQQFqIgRBgIAETwRAIAFBAjYCJCABIAggASgCAGtBA3U2AigLIAggBDsBBiABIAhBCGoiCDYCBCANIQogByEMIAlBBGogA2oiAyEFIAMgFk0NAAsMAgsgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMAQsgDSEMIAchDSADIQULIAUgFkkNAAsLIAIgDDYCBCACIA02AgAgDkEQaiQAIAsgA2sLrA4CFX8BfiMAQRBrIg4kACACKAIEIRMgAigCACEQIABBADYC3AFBACAQIBAgAyAAKAIEIgggACgCDCIHaiIVIANGaiIFIAhrIgggByAIQQEgACgCuAF0IglrIAcgCCAHayAJSxsgACgCGBtrIghLIhYbIQdBACATIAggE0kiGBshCSADIARqIgxBCGsiFCAFSwRAIAxBIGshDyAMQQFrIRcgDEEDayERQQRBBiAAKALIASIEIARBBk8bIgQgBEEETRtBBGshGQNAAkACfwJ/AkACQCAHRQ0AIAVBAWoiBCAHaygAACAFKAABRw0AIAVBBWoiCCAHayEGIAggEU8EQCAIIQUMAgsgCCIFKAAAIgogBigAACILRwRAIAogC3NoQQN2DAMLA0AgBkEEaiEGIAVBBGoiBSARTw0CIAUoAAAiCiAGKAAAIgtGDQALIAUgCiALc2hBA3ZqIAhrDAILIA5B/5Pr3AM2AgwCfwJAAkACQCAZQQFrDgIBAgALIAAgBSAMIA5BDGoQkQEMAgsgACAFIAwgDkEMahCQAQwBCyAAIAUgDCAOQQxqEI8BCyILQQNNBEAgACAFIANrIgRB/w9LNgLcASAEQQh2IAVqQQFqIQUMBAsgDigCDCISQQRJBEAgBSEEIAcMAwsCQCADIAVPBEAgBSEEDAELIAUhBCAFQQMgEmsiCGogFU0NAANAIAVBAWsiBC0AACAEIAhqIgktAABHBEAgBSEEDAILIAtBAWohCyADIARPDQEgBCEFIAkgFUsNAAsLIAchCSASQQNrDAILAkAgBSAXTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAxJBH8gBSAGLQAAIAUtAABGagUgBQsgCGsLQQRqIQtBASESIAcLIQggBCADayENIAEoAgwhBQJAAkAgBCAPTQRAIAMpAAAhGiAFIAMpAAg3AAggBSAaNwAAIAEoAgwhByANQRBNBEAgASAHIA1qNgIMIAEoAgQhBQwDCyADKQAQIRogByADKQAYNwAYIAcgGjcAECANQSFIDQEgByANaiEKIANBEGohBSAHQSBqIQYDQCAFKQAQIRogBiAFKQAYNwAIIAYgGjcAACAFKQAgIRogBiAFKQAoNwAYIAYgGjcAECAFQSBqIQUgBkEgaiIGIApJDQALDAELIAMgD00EQCADKQAAIRogBSADKQAINwAIIAUgGjcAACAFIA8gA2siBmohByAGQRFOBEAgBUEQaiEFA0AgAykAECEaIAUgAykAGDcACCAFIBo3AAAgAykAICEaIAUgAykAKDcAGCAFIBo3ABAgA0EgaiEDIAVBIGoiBSAHSQ0ACwsgByEFIA8hAwsgAyAETw0AQQAhCiADIQYgBCADa0EHcSIHBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiAKQQFqIgogB0cNAAsLIAMgBGtBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAERw0ACwsgASABKAIMIA1qNgIMIAEoAgQhBSANQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIBI2AgAgBSANOwEEIAtBA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiIKNgIEIAAoAtwBBEAgAEEANgLcAQsgBCALaiEDIAlFBEAgCCEHIAMhBQwBCyAJIQQgCCEHIBQgAyIFSQ0AA0AgBCEHIAghBCADKAAAIAMgB2soAABHBEAgByEJIAghByADIQUMAgsgA0EEaiIIIAdrIQYCfwJAIAggEU8EQCAIIQUMAQsgCCIFKAAAIgkgBigAACILRwRAIAkgC3NoQQN2DAILA0AgBkEEaiEGIAVBBGoiBSARTw0BIAUoAAAiCSAGKAAAIgtGDQALIAUgCSALc2hBA3ZqIAhrDAELAkAgBSAXTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAxJBH8gBSAGLQAAIAUtAABGagUgBQsgCGsLIQUgAyAPTQRAIAMpAAAhGiABKAIMIgggAykACDcACCAIIBo3AAAgASgCBCEKCyAKQQE2AgAgCkEAOwEEIAVBAWoiCEGAgARPBEAgAUECNgIkIAEgCiABKAIAa0EDdTYCKAsgCiAIOwEGIAEgCkEIaiIKNgIEIAVBBGogA2ohAyAERQRAIAQhCSADIQUMAgsgByEIIAQhCSAUIAMiBU8NAAsLIAUgFEkNAAsLIAIgByAQQQAgFhsgBxs2AgAgAiAJIBAgE0EAIBgbIgAgBxsgACAWGyAJGzYCBCAOQRBqJAAgDCADawuaEgIXfwF+IwBBEGsiDiQAIAIoAgQhFCACKAIAIRMgAEEANgLcAUEAIBMgEyADIAAoAgQiCCAAKAIMIgVqIhggA0ZqIgYgCGsiCCAFIAhBASAAKAK4AXQiB2sgBSAIIAVrIAdLGyAAKAIYG2siBUsiGRshCUEAIBQgBSAUSSIbGyEKIAMgBGoiDUEIayIQIAZLBEAgDUEgayERIA1BAWshFSANQQNrIQ9BBEEGIAAoAsgBIgQgBEEGTxsiBCAEQQRNG0EEayEaA0BBACEFQQAgCWshEiAGQQFqIQwCQCAJRQ0AIAwgCWsoAAAgBigAAUcNACAGQQVqIgggEmohBAJ/AkAgCCAPTwRAIAghBQwBCyAIIgUoAAAiByAEKAAAIgtHBEAgByALc2hBA3YMAgsDQCAEQQRqIQQgBUEEaiIFIA9PDQEgBSgAACIHIAQoAAAiC0YNAAsgBSAHIAtzaEEDdmogCGsMAQsCQCAFIBVPDQAgBC8AACAFLwAARw0AIARBAmohBCAFQQJqIQULIAUgDUkEfyAFIAQtAAAgBS0AAEZqBSAFCyAIawtBBGohBQsgDkH/k+vcAzYCDAJAAn8CQAJAAkAgGkEBaw4CAQIACyAAIAYgDSAOQQxqEJEBDAILIAAgBiANIA5BDGoQkAEMAQsgACAGIA0gDkEMahCPAQsiBCAFIAQgBUsiBBsiB0EETwRAIAYgDCAEGyIMIQUgDigCDEEBIAQbIgghBCAHIQsCQCAGIBBPDQADQCAGQQFqIQUCQCAIRQRAQQAhCAwBCyAJRQ0AIAUoAAAgBSASaigAAEcNACAGQQVqIgsgEmohBCAIZyAHQQNsakEeawJ/AkACQCALIA9PBEAgCyEGDAELIAsiBigAACIWIAQoAAAiF0cEQCAWIBdzaEEDdkEEcgwDCwNAIARBBGohBCAGQQRqIgYgD08NASAGKAAAIhYgBCgAACIXRg0ACyAGIBYgF3NoQQN2aiEGDAELAkAgBiAVTw0AIAQvAAAgBi8AAEcNACAEQQJqIQQgBkECaiEGCyAGIA1PDQAgBiAELQAAIAYtAABGaiEGCyAGIAtrIgRBe0sNASAEQQRqCyIGQQNsTg0AQQEhCCAFIQwgBiEHCyAOQf+T69wDNgIIAkACfwJAAkACQCAaQQFrDgIBAgALIAAgBSANIA5BCGoQkQEMAgsgACAFIA0gDkEIahCQAQwBCyAAIAUgDSAOQQhqEI8BCyILQQRJDQAgDigCCCIEZyALQQJ0akEfayAIZyAHQQJ0akEba0wNACAFIQYgCyEHIAQhCCAFIQwgBSAQSQ0BDAILCyAMIQUgCCEEIAchCwsCfyAEQQRJBEAgBSEHIAkhDCAKDAELAkAgAyAFTwRAIAUhBwwBCyAFIQcgBUEDIARrIghqIBhNDQADQCAFQQFrIgctAAAgByAIaiIGLQAARwRAIAUhBwwCCyALQQFqIQsgAyAHTw0BIAchBSAGIBhLDQALCyAEQQNrIQwgCQshCCAHIANrIQogASgCDCEFAkACQCAHIBFNBEAgAykAACEcIAUgAykACDcACCAFIBw3AAAgASgCDCEGIApBEE0EQCABIAYgCmo2AgwgASgCBCEFDAMLIAMpABAhHCAGIAMpABg3ABggBiAcNwAQIApBIUgNASAGIApqIQkgA0EQaiEFIAZBIGohBgNAIAUpABAhHCAGIAUpABg3AAggBiAcNwAAIAUpACAhHCAGIAUpACg3ABggBiAcNwAQIAVBIGohBSAGQSBqIgYgCUkNAAsMAQsgAyARTQRAIAMpAAAhHCAFIAMpAAg3AAggBSAcNwAAIAUgESADayIJaiEGIAlBEU4EQCAFQRBqIQUDQCADKQAQIRwgBSADKQAYNwAIIAUgHDcAACADKQAgIRwgBSADKQAoNwAYIAUgHDcAECADQSBqIQMgBUEgaiIFIAZJDQALCyAGIQUgESEDCyADIAdPDQBBACEJIAcgAyIGa0EHcSISBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiAJQQFqIgkgEkcNAAsLIAMgB2tBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAHRw0ACwsgASABKAIMIApqNgIMIAEoAgQhBSAKQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAQ2AgAgBSAKOwEEIAtBA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiIENgIEIAAoAtwBBEAgAEEANgLcAQsgByALaiEDIAhFBEAgCCEKIAwhCSADIQYMAgsgCCEKIAwhCSAQIAMiBkkNAQNAIAghCSAMIQggAygAACADIAlrKAAARwRAIAkhCiAIIQkgAyEGDAMLIANBBGoiByAJayEGAn8CQCAHIA9PBEAgByEFDAELIAciBSgAACIKIAYoAAAiDEcEQCAKIAxzaEEDdgwCCwNAIAZBBGohBiAFQQRqIgUgD08NASAFKAAAIgogBigAACIMRg0ACyAFIAogDHNoQQN2aiAHawwBCwJAIAUgFU8NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSANSQR/IAUgBi0AACAFLQAARmoFIAULIAdrCyEFIAMgEU0EQCADKQAAIRwgASgCDCIEIAMpAAg3AAggBCAcNwAAIAEoAgQhBAsgBEEBNgIAIARBADsBBCAFQQFqIgZBgIAETwRAIAFBAjYCJCABIAQgASgCAGtBA3U2AigLIAQgBjsBBiABIARBCGoiBDYCBCAFQQRqIANqIQMgCEUEQCAIIQogAyEGDAMLIAkhDCAIIQogECADIgZPDQALDAELIAAgBiADayIEQf8PSzYC3AEgBEEIdiAGakEBaiEGCyAGIBBJDQALCyACIAkgE0EAIBkbIAkbNgIAIAIgCiATIBRBACAbGyIAIAkbIAAgGRsgChs2AgQgDkEQaiQAIA0gA2sLohUCGH8BfiMAQRBrIg0kACACKAIEIRcgAigCACEVIABBADYC3AFBACAVIBUgAyAAKAIEIgggACgCDCIKaiIaIANGaiIFIAhrIgcgCiAHQQEgACgCuAF0IghrIAogByAKayAISxsgACgCGBtrIghLIhsbIQpBACAXIAggF0kiHBshDiADIARqIgxBCGsiEiAFSwRAIAxBIGshEyAMQQFrIRYgDEEDayEQQQRBBiAAKALIASIEIARBBk8bIgQgBEEETRtBBGshGANAQQAhBkEAIAprIRQgBUEBaiELAkAgCkUNACALIAprKAAAIAUoAAFHDQAgBUEFaiIIIBRqIQQCfwJAIAggEE8EQCAIIQYMAQsgCCIGKAAAIgkgBCgAACIHRwRAIAcgCXNoQQN2DAILA0AgBEEEaiEEIAZBBGoiBiAQTw0BIAYoAAAiCSAEKAAAIgdGDQALIAYgByAJc2hBA3ZqIAhrDAELAkAgBiAWTw0AIAQvAAAgBi8AAEcNACAEQQJqIQQgBkECaiEGCyAGIAxJBH8gBiAELQAAIAYtAABGagUgBgsgCGsLQQRqIQYLIA1B/5Pr3AM2AgwCQAJ/AkACQAJAIBhBAWsOAgECAAsgACAFIAwgDUEMahCRAQwCCyAAIAUgDCANQQxqEJABDAELIAAgBSAMIA1BDGoQjwELIgQgBiAEIAZLIgQbIg9BBE8EQCAFIAsgBBshCCANKAIMQQEgBBshBAJAIAUgEk8NAANAIAVBAWohCwJAIARFBEBBACEEDAELIApFDQAgCygAACALIBRqKAAARw0AIAVBBWoiCSAUaiEHIARnIA9BA2xqQR5rAn8CQAJAIAkgEE8EQCAJIQYMAQsgCSIGKAAAIhkgBygAACIRRwRAIBEgGXNoQQN2QQRyDAMLA0AgB0EEaiEHIAZBBGoiBiAQTw0BIAYoAAAiGSAHKAAAIhFGDQALIAYgESAZc2hBA3ZqIQYMAQsCQCAGIBZPDQAgBy8AACAGLwAARw0AIAdBAmohByAGQQJqIQYLIAYgDE8NACAGIActAAAgBi0AAEZqIQYLIAYgCWsiB0F7Sw0BIAdBBGoLIgZBA2xODQBBASEEIAshCCAGIQ8LIA1B/5Pr3AM2AggCfwJAAn8CQAJAAkAgGEEBaw4CAQIACyAAIAsgDCANQQhqEJEBDAILIAAgCyAMIA1BCGoQkAEMAQsgACALIAwgDUEIahCPAQsiBkEESQ0AIA0oAggiB2cgBkECdGpBH2sgBGcgD0ECdGpBG2tMDQAgCyEFIAYhDyAHDAELIAsgEk8NAiAFQQJqIQkCQCAERQRAQQAhBAwBCyAKRQ0AIAkoAAAgCSAUaigAAEcNACAFQQZqIgcgFGohBiAEZyAPQQJ0akEeawJ/AkACQCAHIBBPBEAgByEFDAELIAciBSgAACIRIAYoAAAiC0cEQCALIBFzaEEDdkEEcgwDCwNAIAZBBGohBiAFQQRqIgUgEE8NASAFKAAAIhEgBigAACILRg0ACyAFIAsgEXNoQQN2aiEFDAELAkAgBSAWTw0AIAYvAAAgBS8AAEcNACAGQQJqIQYgBUECaiEFCyAFIAxPDQAgBSAGLQAAIAUtAABGaiEFCyAFIAdrIgVBe0sNASAFQQRqCyIFQQJ0Tg0AQQEhBCAJIQggBSEPCyANQf+T69wDNgIEAn8CQAJAAkAgGEEBaw4CAQIACyAAIAkgDCANQQRqEJEBDAILIAAgCSAMIA1BBGoQkAEMAQsgACAJIAwgDUEEahCPAQsiBkEESQ0CIA0oAgQiB2cgBkECdGpBH2sgBGcgD0ECdGpBGGtMDQIgCSEFIAYhDyAHCyEEIAUhCCAFIBJJDQALCwJ/IARBBEkEQCAIIQkgDiEHIAoMAQsCQCADIAhPBEAgCCEJDAELQQMgBGsiByAIIglqIBpNDQADQCAIQQFrIgktAAAgByAJaiIFLQAARwRAIAghCQwCCyAPQQFqIQ8gAyAJTw0BIAkhCCAFIBpLDQALCyAKIQcgBEEDawshCCAJIANrIQsgASgCDCEFAkACQCAJIBNNBEAgAykAACEdIAUgAykACDcACCAFIB03AAAgASgCDCEGIAtBEE0EQCABIAYgC2o2AgwgASgCBCEFDAMLIAMpABAhHSAGIAMpABg3ABggBiAdNwAQIAtBIUgNASAGIAtqIQogA0EQaiEFIAZBIGohBgNAIAUpABAhHSAGIAUpABg3AAggBiAdNwAAIAUpACAhHSAGIAUpACg3ABggBiAdNwAQIAVBIGohBSAGQSBqIgYgCkkNAAsMAQsgAyATTQRAIAMpAAAhHSAFIAMpAAg3AAggBSAdNwAAIAUgEyADayIGaiEKIAZBEU4EQCAFQRBqIQUDQCADKQAQIR0gBSADKQAYNwAIIAUgHTcAACADKQAgIR0gBSADKQAoNwAYIAUgHTcAECADQSBqIQMgBUEgaiIFIApJDQALCyAKIQUgEyEDCyADIAlPDQBBACEKIAkgAyIGa0EHcSIOBEADQCAFIAYtAAA6AAAgBUEBaiEFIAZBAWohBiAKQQFqIgogDkcNAAsLIAMgCWtBeEsNAANAIAUgBi0AADoAACAFIAYtAAE6AAEgBSAGLQACOgACIAUgBi0AAzoAAyAFIAYtAAQ6AAQgBSAGLQAFOgAFIAUgBi0ABjoABiAFIAYtAAc6AAcgBUEIaiEFIAZBCGoiBiAJRw0ACwsgASABKAIMIAtqNgIMIAEoAgQhBSALQYCABEkNACABQQE2AiQgASAFIAEoAgBrQQN1NgIoCyAFIAQ2AgAgBSALOwEEIA9BA2siA0GAgARPBEAgAUECNgIkIAEgBSABKAIAa0EDdTYCKAsgBSADOwEGIAEgBUEIaiIENgIEIAAoAtwBBEAgAEEANgLcAQsgCSAPaiEDIAdFBEAgByEOIAghCiADIQUMAgsgByEOIAghCiASIAMiBUkNAQNAIAchCiAIIQcgAygAACADIAprKAAARwRAIAohDiAHIQogAyEFDAMLIANBBGoiCCAKayEGAn8CQCAIIBBPBEAgCCEFDAELIAgiBSgAACIJIAYoAAAiDkcEQCAJIA5zaEEDdgwCCwNAIAZBBGohBiAFQQRqIgUgEE8NASAFKAAAIgkgBigAACIORg0ACyAFIAkgDnNoQQN2aiAIawwBCwJAIAUgFk8NACAGLwAAIAUvAABHDQAgBkECaiEGIAVBAmohBQsgBSAMSQR/IAUgBi0AACAFLQAARmoFIAULIAhrCyEFIAMgE00EQCADKQAAIR0gASgCDCIEIAMpAAg3AAggBCAdNwAAIAEoAgQhBAsgBEEBNgIAIARBADsBBCAFQQFqIghBgIAETwRAIAFBAjYCJCABIAQgASgCAGtBA3U2AigLIAQgCDsBBiABIARBCGoiBDYCBCAFQQRqIANqIQMgB0UEQCAHIQ4gAyEFDAMLIAohCCAHIQ4gEiADIgVPDQALDAELIAAgBSADayIEQf8PSzYC3AEgBEEIdiAFakEBaiEFCyAFIBJJDQALCyACIAogFUEAIBsbIAobNgIAIAIgDiAVIBdBACAcGyIAIAobIAAgGxsgDhs2AgQgDUEQaiQAIAwgA2sLC/TZAS0AQYAIC4Uqb3BlcmF0b3J+AHsuLi59AG9wZXJhdG9yfHwAb3BlcmF0b3J8AE9wZXJhdGlvbiBtYWRlIG5vIHByb2dyZXNzIG92ZXIgbXVsdGlwbGUgY2FsbHMsIGR1ZSB0byBpbnB1dCBiZWluZyBlbXB0eQBBbGxvY2F0aW9uIGVycm9yIDogbm90IGVub3VnaCBtZW1vcnkAIGltYWdpbmFyeQBUeQBueAAgY29tcGxleABEeAAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHR3AHRocm93AHpzdGQgY29kZWMgZXJyb3I6IG91dHB1dCBidWZmZXIgb3ZlcmZsb3cAb3BlcmF0b3IgbmV3AER3AER2AFR1AENvbnRleHQgc2hvdWxkIGJlIGluaXQgZmlyc3QAIGNvbnN0AGNvbnN0X2Nhc3QAcmVpbnRlcnByZXRfY2FzdABzdGF0aWNfY2FzdABkeW5hbWljX2Nhc3QAdW5zaWduZWQgc2hvcnQAIG5vZXhjZXB0AHVuc2lnbmVkIGludABfQml0SW50AGZyZWVfcmVzdWx0AG9wZXJhdG9yIGNvX2F3YWl0AHN0cnVjdAAgcmVzdHJpY3QAU3JjIHNpemUgaXMgaW5jb3JyZWN0AG9iamNfb2JqZWN0AGZsb2F0AF9GbG9hdABzdGQ6Om51bGxwdHJfdAB3Y2hhcl90AGNoYXI4X3QAY2hhcjE2X3QAdWludDY0X3QAY2hhcjMyX3QAVXQAVHQAU3QAZGVjb21wcmVzcwBVbnN1cHBvcnRlZCBjb21iaW5hdGlvbiBvZiBwYXJhbWV0ZXJzAHRoaXMAZ3MAcmVxdWlyZXMAQ2Fubm90IGNyZWF0ZSBEaWN0aW9uYXJ5IGZyb20gcHJvdmlkZWQgc2FtcGxlcwBUcwBudWxscHRyAHNyAFVua25vd24gZnJhbWUgZGVzY3JpcHRvcgBvcGVyYXRvcgBhbGxvY2F0b3IAenN0ZCBjb2RlYyBlcnJvcjogY29udGVudCBzaXplIGVycm9yAFVuc3VwcG9ydGVkIGZyYW1lIHBhcmFtZXRlcgBVbnN1cHBvcnRlZCBwYXJhbWV0ZXIAenN0ZCBjb2RlYyBlcnJvcjogY2Fubm90IGFsbG9jYXRlIG91dHB1dCBidWZmZXIAenN0ZCBjb2RlYyBlcnJvcjogY291bGQgbm90IGV4cGFuZCBvdXRwdXQgYnVmZmVyAE9wZXJhdGlvbiBvbiBOVUxMIGRlc3RpbmF0aW9uIGJ1ZmZlcgB1bnNpZ25lZCBjaGFyAHJxAHNwAGZwAFRwACBhdXRvAG9iamNwcm90bwBzbwBEbwBzdGQ6OmV4Y2VwdGlvbgBIZWFkZXIgb2YgTGl0ZXJhbHMnIGJsb2NrIGRvZXNuJ3QgcmVzcGVjdCBmb3JtYXQgc3BlY2lmaWNhdGlvbgB1bmlvbgBkbgBuYW4AVG4ARG4AUmVzdG9yZWQgZGF0YSBkb2Vzbid0IG1hdGNoIGNoZWNrc3VtAGVudW0AYmFzaWNfaW9zdHJlYW0AYmFzaWNfb3N0cmVhbQBiYXNpY19pc3RyZWFtAHVsAHRsAGJvb2wAT3BlcmF0aW9uIG1hZGUgbm8gcHJvZ3Jlc3Mgb3ZlciBtdWx0aXBsZSBjYWxscywgZHVlIHRvIG91dHB1dCBidWZmZXIgYmVpbmcgZnVsbABEZXN0aW5hdGlvbiBidWZmZXIgaXMgdG9vIHNtYWxsAFNwZWNpZmllZCBtYXhTeW1ib2xWYWx1ZSBpcyB0b28gc21hbGwAaWwAc3RyaW5nIGxpdGVyYWwAVWwAeXB0bmsAVGsAcGkAbGkAd29ya1NwYWNlIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoAERpY3Rpb25hcnkgbWlzbWF0Y2gARGVzdGluYXRpb24gYnVmZmVyIGlzIHdyb25nAFNvdXJjZSBidWZmZXIgaXMgd3JvbmcAdW5zaWduZWQgbG9uZyBsb25nAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBBbiBJL08gZXJyb3Igb2NjdXJyZWQgd2hlbiByZWFkaW5nL3NlZWtpbmcARnJhbWUgcmVxdWlyZXMgdG9vIG11Y2ggbWVtb3J5IGZvciBkZWNvZGluZwBfX3V1aWRvZgBpbmYAaGFsZgAlYWYAdHJ1ZQBvcGVyYXRvciBkZWxldGUAZmFsc2UAZGVjbHR5cGUAIHZvbGF0aWxlAGxvbmcgZG91YmxlAF9ibG9ja19pbnZva2UARnJhbWUgaW5kZXggaXMgdG9vIGxhcmdlAFVuc3VwcG9ydGVkIG1heCBTeW1ib2wgVmFsdWUgOiB0b28gbGFyZ2UAT3BlcmF0aW9uIG5vdCBhdXRob3JpemVkIGF0IGN1cnJlbnQgcHJvY2Vzc2luZyBzdGFnZQBCbG9jay1sZXZlbCBleHRlcm5hbCBzZXF1ZW5jZSBwcm9kdWNlciByZXR1cm5lZCBhbiBlcnJvciBjb2RlAFVuc3BlY2lmaWVkIGVycm9yIGNvZGUAVGUAc3RkAFBhcmFtZXRlciBpcyBvdXQgb2YgYm91bmQAdm9pZABFeHRlcm5hbCBzZXF1ZW5jZXMgYXJlIG5vdCB2YWxpZAB0YWJsZUxvZyByZXF1aXJlcyB0b28gbXVjaCBtZW1vcnkgOiB1bnN1cHBvcnRlZABWZXJzaW9uIG5vdCBzdXBwb3J0ZWQARGljdGlvbmFyeSBpcyBjb3JydXB0ZWQATm8gZXJyb3IgZGV0ZWN0ZWQARGF0YSBjb3JydXB0aW9uIGRldGVjdGVkAHBsZWRnZWQgYnVmZmVyIHN0YWJpbGl0eSBjb25kaXRpb24gaXMgbm90IHJlc3BlY3RlZAAndW5uYW1lZABzdGQ6OmJhZF9hbGxvYwBtYwBVYgAnbGFtYmRhACVhAGJhc2ljXwBvcGVyYXRvcl4Ab3BlcmF0b3IgbmV3W10Ab3BlcmF0b3JbXQBvcGVyYXRvciBkZWxldGVbXQBwaXhlbCB2ZWN0b3JbAHNaAF9fX19aAGZwVAAkVFQAJFQAclEAc1AARE8Ac3JOAF9HTE9CQUxfX04ATkFOACROAGZMACVMYUwAVWE5ZW5hYmxlX2lmSQBJTkYAUkUAT0UAYjFFAGIwRQBEQwBvcGVyYXRvcj8AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4Ab3BlcmF0b3I+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+ADxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ACwgc3RkOjphbGxvY2F0b3I8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4Ab3BlcmF0b3I+PgBvcGVyYXRvcjw9PgBvcGVyYXRvci0+AG9wZXJhdG9yfD0Ab3BlcmF0b3I9AG9wZXJhdG9yXj0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4+PQBvcGVyYXRvcj09AG9wZXJhdG9yPD0Ab3BlcmF0b3I8PD0Ab3BlcmF0b3IvPQBvcGVyYXRvci09AG9wZXJhdG9yKz0Ab3BlcmF0b3IqPQBvcGVyYXRvciY9AG9wZXJhdG9yJT0Ab3BlcmF0b3IhPQBvcGVyYXRvcjwAdGVtcGxhdGU8AGlkPABvcGVyYXRvcjw8AC48ACI8AFthYmk6ACBbZW5hYmxlX2lmOgBzdGQ6OgB1bnNpZ25lZCBfX2ludDEyOABfX2Zsb2F0MTI4AGRlY2ltYWwxMjgAZGVjaW1hbDY0AGRlY2ltYWwzMgAwAG9wZXJhdG9yLwBvcGVyYXRvci4Ac2l6ZW9mLi4uAG9wZXJhdG9yLQAtaW4tAG9wZXJhdG9yLS0Ab3BlcmF0b3IsAG9wZXJhdG9yKwBvcGVyYXRvcisrAG9wZXJhdG9yKgBvcGVyYXRvci0+KgA6OioAb3BlcmF0b3IuKgAgZGVjbHR5cGUoYXV0bykAKG51bGwpAChhbm9ueW1vdXMgbmFtZXNwYWNlKQBFcnJvciAoZ2VuZXJpYykAb3BlcmF0b3IoKQAgKAAnYmxvY2stbGl0ZXJhbCcAb3BlcmF0b3ImAG9wZXJhdG9yJiYAICYmACAmAG9wZXJhdG9yJQA+IgBvcGVyYXRvciEAdGhyb3cgAG5vZXhjZXB0IAAgYXQgb2Zmc2V0IAB0aGlzIAAgcmVxdWlyZXMgAG9wZXJhdG9yIAByZWZlcmVuY2UgdGVtcG9yYXJ5IGZvciAAdGVtcGxhdGUgcGFyYW1ldGVyIG9iamVjdCBmb3IgAHR5cGVpbmZvIGZvciAAdGhyZWFkLWxvY2FsIHdyYXBwZXIgcm91dGluZSBmb3IgAHRocmVhZC1sb2NhbCBpbml0aWFsaXphdGlvbiByb3V0aW5lIGZvciAAdHlwZWluZm8gbmFtZSBmb3IgAGNvbnN0cnVjdGlvbiB2dGFibGUgZm9yIABndWFyZCB2YXJpYWJsZSBmb3IgAFZUVCBmb3IgAGNvdmFyaWFudCByZXR1cm4gdGh1bmsgdG8gAG5vbi12aXJ0dWFsIHRodW5rIHRvIABpbnZvY2F0aW9uIGZ1bmN0aW9uIGZvciBibG9jayBpbiAAYWxpZ25vZiAAc2l6ZW9mIAA+IHR5cGVuYW1lIABpbml0aWFsaXplciBmb3IgbW9kdWxlIAA6OmZyaWVuZCAAdHlwZWlkIAB1bnNpZ25lZCAAID8gACAtPiAAID0gAHpzdGQgY29kZWMgZXJyb3I6IAAgOiAAc2l6ZW9mLi4uIAAgLi4uIAAsIABvcGVyYXRvciIiIAB8FgAAOBUAAHBwcAB8FgAAOBUAAARJAABwcHBpAAAAALBIAAB2cABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAACRLAAD3FAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAACRLAABAFQAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAACRLAACIFQAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAAAkSwAA0BUAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAJEsAABwWAABOMTBlbXNjcmlwdGVuM3ZhbEUAACRLAABoFgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAAAkSwAAhBYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAJEsAAKwWAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAACRLAADUFgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAkSwAA/BYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXRFRQAAJEsAACQXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUAACRLAABMFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAkSwAAdBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWxFRQAAJEsAAJwXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUAACRLAADEFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJeEVFAAAkSwAA7BcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXlFRQAAJEsAABQYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lmRUUAACRLAAA8GAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZEVFAAAkSwAAZBgAAAAAAAAhAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAAKgAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMQAAADIAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADkAQZQyCwk6AAAAOwAAADwAQbAyC90xPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAABMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAwAAAAUAAAACAAAAAwAAABUAAAASAAAAEwAAAAMAAAAFAAAABAAAAAQAAAAVAAAAEwAAABQAAAAEAAAABQAAAAgAAAAEAAAAFQAAABMAAAAUAAAABAAAAAUAAAAQAAAABQAAABYAAAAUAAAAFQAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABgAAAAUAAAAQAAAABQAAABYAAAAWAAAAFwAAAAYAAAAFAAAAIAAAAAUAAAAWAAAAFgAAABYAAAAEAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAMAAAAFAAAAAgAAAAMAAAASAAAAEQAAABIAAAAFAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEAAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABAAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAAQAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEAAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABAAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAAAAAAGs4BwANsgcAnPIHAHBkCABgrgoAsHELADCqDAAAAAAAAAgAAAAHAABqBgAAAAYAAK0FAABqBQAAMQUAAAAFAADUBAAArQQAAIoEAABqBAAATAQAADEEAAAXBAAAAAQAAOkDAADUAwAAwAMAAK0DAACbAwAAigMAAHkDAABqAwAAWwMAAEwDAAA+AwAAMQMAACQDAAAXAwAACwMAAAADAAD0AgAA6QIAAN4CAADUAgAAygIAAMACAAC2AgAArQIAAKQCAACbAgAAkgIAAIoCAACCAgAAeQIAAHICAABqAgAAYgIAAFsCAABTAgAATAIAAEUCAAA+AgAANwIAADECAAAqAgAAJAIAAB4CAAAXAgAAEQIAAAsCAAAFAgAAAAIAAPoBAAD0AQAA7wEAAOkBAADkAQAA3gEAANkBAADUAQAAzwEAAMoBAADFAQAAwAEAALsBAAC2AQAAsgEAAK0BAACoAQAApAEAAJ8BAACbAQAAlwEAAJIBAACOAQAAigEAAIYBAACCAQAAfgEAAHkBAAB1AQAAcgEAAG4BAABqAQAAZgEAAGIBAABeAQAAWwEAAFcBAABTAQAAUAEAAEwBAABJAQAARQEAAEIBAAA+AQAAOwEAADcBAAA0AQAAMQEAAC4BAAAqAQAAJwEAACQBAAAhAQAAHgEAABoBAAAXAQAAFAEAABEBAAAOAQAACwEAAAgBAAAFAQAAAgEAAAABAAD9AAAA+gAAAPcAAAD0AAAA8QAAAO8AAADsAAAA6QAAAOYAAADkAAAA4QAAAN4AAADcAAAA2QAAANcAAADUAAAA0QAAAM8AAADMAAAAygAAAMcAAADFAAAAwgAAAMAAAAC+AAAAuwAAALkAAAC2AAAAtAAAALIAAACvAAAArQAAAKsAAACoAAAApgAAAKQAAACiAAAAnwAAAJ0AAACbAAAAmQAAAJcAAACVAAAAkgAAAJAAAACOAAAAjAAAAIoAAACIAAAAhgAAAIQAAACCAAAAgAAAAH4AAAB7AAAAeQAAAHcAAAB1AAAAcwAAAHIAAABwAAAAbgAAAGwAAABqAAAAaAAAAGYAAABkAAAAYgAAAGAAAABeAAAAXQAAAFsAAABZAAAAVwAAAFUAAABTAAAAUgAAAFAAAABOAAAATAAAAEoAAABJAAAARwAAAEUAAABDAAAAQgAAAEAAAAA+AAAAPQAAADsAAAA5AAAANwAAADYAAAA0AAAAMgAAADEAAAAvAAAALgAAACwAAAAqAAAAKQAAACcAAAAlAAAAJAAAACIAAAAhAAAAHwAAAB4AAAAcAAAAGgAAABkAAAAXAAAAFgAAABQAAAATAAAAEQAAABAAAAAOAAAADQAAAAsAAAAKAAAACAAAAAcAAAAFAAAABAAAAAIAAAABAAAAAQABAAEAAQABAAEAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA/////////////wAAAAAAAAQAAwACAAIAAgACAAIAAgACAAIAAgACAAIAAQABAAEAAgACAAIAAgACAAIAAgACAAIAAwACAAEAAQABAAEAAQD//////////wAAAAAAAAAAAQAEAAMAAgACAAIAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQD//////////////////wAAAAAAAFx3d18s97j1EsR6ayZfk4TMDHPKqa1Htt6xTxFLu2Ww0J86jH5OWDQFa+JqfOGXTgSmmbxD1wM6TwTEIiQEzc6eJSSFxXbedsrqrVv2KIWcKXUJ4gY3VoaJ2HWjX0cC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AAAAgAAAAAABAEGU/gALbQEAAAADAAAABwAAAA8AAAAfAAAAPwAAAH8AAAD/AAAA/wEAAP8DAAD/BwAA/w8AAP8fAAD/PwAA/38AAP//AAD//wEA//8DAP//BwD//w8A//8fAP//PwD//38A////AP///wH///8DAQAAAAEAQZD/AAs1AQAAAAIAAAADAAAABAAAAAcAAAAIAAAADwAAABAAAAAfAAAAIAAAAD8AAABAAAAAfwAAAIAAQdj/AAsNAQAAAAEAAAACAAAAAgBB8P8AC+kCAQAAAAEAAAACAAAAAgAAACYAAACCAAAAIQUAAEoAAABnCAAAJgAAAMABAACAAAAASQUAAEoAAAC+CAAAKQAAACwCAACAAAAASQUAAEoAAAC+CAAALwAAAMoCAACAAAAAigUAAEoAAACECQAANQAAAHMDAACAAAAAnQUAAEoAAACgCQAAPQAAAIEDAACAAAAA6wUAAEsAAAA+CgAARAAAAJ4DAACAAAAATQYAAEsAAACqCgAASwAAALMDAACAAAAAwQYAAE0AAAAfDQAATQAAAFMEAACAAAAAIwgAAFEAAACmDwAAVAAAAJkEAACAAAAASwkAAFcAAACxEgAAWAAAANoEAACAAAAAbwkAAF0AAAAjFAAAVAAAAEUFAACAAAAAVAoAAGoAAACMFAAAagAAAK8FAACAAAAAdgkAAHwAAABOEAAAfAAAANICAACAAAAAYwcAAJEAAACQBwAAkgAAAAEAAAAEAAAACABB5IIBC5YCAQAAAAIAAAAEAAAAAAAAAAIAAAAEAAAACAAAAAQAAwACAAIAAgACAAIAAgACAAIAAgACAAIAAQABAAEAAgACAAIAAgACAAIAAgACAAIAAwACAAEAAQABAAEAAQD//////////wAAAAAAAAAAAQABAAEAAQABAAEAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA/////////////wAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AQcCFAQtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAE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AGIAAABjAAAAZAAAAJ4AAABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxNkZsb2F0TGl0ZXJhbEltcGxJZEVFAMxKAAC4VQAAbEsAAAAAAABgVgAAXQAAAF4AAABfAAAAYAAAAJ8AAABiAAAAYwAAAGQAAACgAAAATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTZGbG9hdExpdGVyYWxJbXBsSWVFRQDMSgAAKFYAAGxLAAAAAAAAzFYAAF0AAABeAAAAXwAAAGAAAAChAAAAYgAAAGMAAABkAAAAogAAAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTEzU3RyaW5nTGl0ZXJhbEUAAADMSgAAmFYAAGxLAAB2AAAAAAAAADxXAABdAAAAXgAAAF8AAABgAAAAowAAAGIAAABjAAAAZAAAAKQAAABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxNVVubmFtZWRUeXBlTmFtZUUAzEoAAAhXAABsSwAAAAAAALRXAABdAAAAXgAAAF8AAABgAAAApQAAAGIAAABjAAAAZAAAAKYAAABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUyNlN5bnRoZXRpY1RlbXBsYXRlUGFyYW1OYW1lRQAAzEoAAHRXAABsSwAAAAAAAChYAABdAAAAXgAAAF8AAABgAAAApwAAAKgAAABjAAAAZAAAAKkAAABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUyMVR5cGVUZW1wbGF0ZVBhcmFtRGVjbEUAAADMSgAA7FcAAGxLAAAAAAAAqFgAAF0AAABeAAAAXwAAAGAAAACqAAAAqwAAAGMAAABkAAAArAAAAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTMyQ29uc3RyYWluZWRUeXBlVGVtcGxhdGVQYXJhbURlY2xFAAAAAMxKAABgWAAAbEsAAAAAAAAgWQAAXQAAAF4AAABfAAAAYAAAAK0AAACuAAAAYwAAAGQAAACvAAAATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMjROb25UeXBlVGVtcGxhdGVQYXJhbURlY2xFAAAAAMxKAADgWAAAbEsA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\");\n\n// src/zstd.ts\nvar DEFAULT_CLEVEL = 1;\nvar MAX_CLEVEL = 22;\nvar emscriptenModule;\nvar init = () => zstd_codec_default({ noInitialRun: true, wasmBinary: zstd_codec_default2 });\nvar Zstd = class Zstd2 {\n  static codecId = \"zstd\";\n  static DEFAULT_CLEVEL = DEFAULT_CLEVEL;\n  static MAX_CLEVEL = MAX_CLEVEL;\n  level;\n  constructor(level = DEFAULT_CLEVEL) {\n    if (!Number.isInteger(level)) {\n      throw Error(`Invalid acceleration \"${level}\". Must be a positive integer.`);\n    }\n    this.level = level;\n  }\n  static fromConfig({ level }) {\n    return new Zstd2(level);\n  }\n  async encode(data) {\n    if (!emscriptenModule) {\n      emscriptenModule = init();\n    }\n    let level = this.level;\n    if (level <= 0) {\n      level = DEFAULT_CLEVEL;\n    }\n    if (level > MAX_CLEVEL) {\n      level = MAX_CLEVEL;\n    }\n    const module = await emscriptenModule;\n    const view = module.compress(data, level);\n    const result = new Uint8Array(view);\n    module.free_result();\n    return result;\n  }\n  async decode(data, out) {\n    if (!emscriptenModule) {\n      emscriptenModule = init();\n    }\n    const module = await emscriptenModule;\n    try {\n      const view = module.decompress(data);\n      const result = new Uint8Array(view);\n      module.free_result();\n      if (out !== void 0) {\n        out.set(result);\n        return out;\n      }\n      return result;\n    } catch (err) {\n      throw new Error(module.getExceptionMessage(err).toString());\n    }\n  }\n};\nvar zstd_default = Zstd;\nexport {\n  zstd_default as default\n};\n"],"names":["Renderer","canvas","projected_line_vert_default","projected_line_frag_default","mesh_vert_default","scalar_image_frag_default","points_vert_default","points_frag_default","wireframe_vert_default","wireframe_frag_default","volume_vert_default","volume_frag_default","label_image_frag_default","depth_frag_default","points_depth_frag_default","shaderCode","projectedLineVertexShader","projectedLineFragmentShader","pointsVertexShader","pointsFragmentShader","wireframeVertexShader","wireframeFragmentShader","meshVertexShader","scalarImageFragmentShader","labelImage","volumeVertexShader","volumeFragmentShader","depthFragmentShader","pointsDepthFragmentShader","Levels","Colors","getMode","nodeEnv","NODE_ENV","Logger","level","moduleName","message","params","args","timestamp","color","tag","output","WebGLShaderProgram","gl","vertexShaderSource","fragmentShaderSource","program","shaders","error","shader","name","value","location","info","type","exhaustiveCheck","numUniforms","i","SUPPORTED_UNIFORM_TYPES","source","parameter","SUPPORTED_UNIFORM_TYPES_","pragmaInjectDefines","WebGLShaderPrograms","code","replaceSourceDefines","defines","definesSource","key","nextLineNumber","sourceToInject","counters","generateID","prefix","Node","EPSILON","ARRAY_TYPE","degree","toRadian","a","create","out","glMatrix.ARRAY_TYPE","fromMat4","fromValues","m00","m01","m02","m10","m11","m12","m20","m21","m22","invert","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","a30","a31","a32","a33","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","det","multiply","b","b0","b1","b2","b3","translate","v","x","y","z","fromScaling","fromRotationTranslationScale","q","s","w","x2","y2","z2","xx","xy","xz","yy","yz","zz","wx","wy","wz","sx","sy","sz","perspectiveNO","fovy","aspect","near","far","f","nf","perspective","orthoNO","left","right","bottom","top","lr","bt","ortho","targetTo","eye","target","up","eyex","eyey","eyez","upx","upy","upz","z0","z1","len","x0","x1","equals","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a14","a15","b4","b5","b6","b7","b8","b9","b12","b13","b14","b15","glMatrix.EPSILON","clone","length","copy","set","add","subtract","scale","scaleAndAdd","squaredDistance","normalize","dot","cross","ax","ay","az","bx","by","bz","transformMat4","m","transformQuat","qx","qy","qz","qw","vx","vy","vz","tx","ty","tz","zero","sub","vec","stride","offset","count","fn","arg","l","setAxisAngle","axis","rad","aw","bw","slerp","t","omega","cosom","sinom","scale0","scale1","fromMat3","fTrace","fRoot","j","k","vec4.clone","vec4.copy","vec4.normalize","tmpvec3","vec3.create","xUnitVec3","vec3.fromValues","yUnitVec3","vec3.dot","vec3.cross","vec3.len","vec3.normalize","temp1","temp2","c","d","matr","mat3.create","view","distance","squaredLength","lerp","exactEquals","Box3","min","max","vec3.clone","p","matrix","corners","tmp","vec3.transformMat4","GeometryAttributeIndex","Geometry","vertexData","indexData","primitive","attr","acc","curr","box","point","WebGLBuffers","geometry","buffers","vao","vboType","vbo","attributes","strideBytes","idx","eboType","ebo","isTextureUnpackRowAlignment","bufferToDataType","buffer","textureChannelCount","texture","textureBytesPerChannel","textureStorageBytes","bytesPerTexel","levels","width","height","depth","total","textureDefaultValueRange","Texture","data","WebGLTextures","index","textureId","format","dataType","textureType","id","bytes","minFilter","maxFilter","filter","dataFormat","mode","Box2","vec2.clone","vec2.fromValues","vec2.exactEquals","WebGLState","cap","src","dst","enabled","flag","func","clampedBox","ref","mask","WebGLDepthTarget","textureUnit","axisDirection","mat4.fromScaling","mat4.create","WebGLRenderer","viewport","layer","viewportBox","surfaceBox","viewportEquals","viewportIntersects","viewportRect","frustum","occludingLayers","nonOccludingLayers","layers","camera","members","object","coverageGroup","stencilTestEnabled","blendingMode","wireframeProgram","modelView","mat4.multiply","projection","resolution","objectUniforms","allUniforms","uniformName","mvp","mvpInverse","mat4.invert","inverseModelView","cameraPositionView","vec4.fromValues","cameraPositionModel","vec4.transformMat4","vec4.create","newViewport","comparePriority","priorityA","priorityB","ChunkQueue","maxConcurrent","chunk","running","item","controller","promise","err","cpuChunkBytes","cpuChunkCount","setChunkData","clearChunkData","chunkMemoryStats","almostEqual","epsilon","AxisComponent","sliceAxesFor","orientation","orientationRotation","axes","u","forward","basis","mat3.fromValues","rotation","quat.fromMat3","quat.create","quat.normalize","chunkDataTypes","isChunkData","ChunkData","supportedDataTypeNames","dtype","coordToIndex","lod","coord","worldToTexCoordForChunk","translation","centerShift","component","mat4.translate","clamp","INTERNAL_POLICY_KEY","ChunkStoreView","store","policy","dimensions","uDim","vDim","uLod0","vLod0","vec2.squaredLength","fallbackLOD","currentLOD","currentLODChunks","lowResChunks","state","sliceCoords","viewBounds2D","virtualUnitsPerScreenPixel","lodFactor","lodChanged","sliceBounds","currentTimeIndex","resetChunkViewState","viewBoundsCenter2D","vec2.create","vec2.lerp","viewBounds3D","channels","prefetchAabb","lodsToVisit","isCurrent","isFallback","chunkBox","isInBounds","prefetch","priority","viewProjection","markVolumeChunkVisible","isFallbackLOD","isCurrentLOD","foundAny","viewState","newPolicy","sourceAdjusted","desiredLOD","lowestResLOD","minPolicyLOD","maxPolicyLOD","numTimePoints","windowSize","squareDistance","normalizedDistance","orderKey","isVisible","isPrefetch","isChannelInSlice","_","bounds","dim","xLod","yLod","zLod","xCount","yCount","zCount","xStride","yStride","zStride","xTran","yTran","zTran","xMin","xMax","yMin","yMax","zMin","zMax","timeIndex","callback","range","grid","zi","yPlane","yi","xRow","xi","tDim","wDim","wLod","sliceValue","wShape","wScale","wTran","wPoint","chunkDepth","wChunk","newBounds","vec2.equals","mat4.equals","newC","uLod","vLod","pad","vec3.subtract","vec3.add","center","axisCenter","du","dv","ChunkStore","chunksT","chunksC","numLods","chunkWidth","chunkHeight","chunksX","chunksY","chunksZ","lodArr","tArr","cArr","zOffset","yArr","yOffset","xArr","xOffset","affectedChunks","_viewState","anyVisible","anyPrefetch","minPriority","orderKeyForMinPriority","xDim","yDim","rx","ry","tLod","prevTLod","cLod","prevCLod","Texture3D","DEFAULT_MAX_CONCURRENT_REQUESTS","DEFAULT_MAX_GPU_UPLOADS_PER_UPDATE","ChunkManager","uploadTexture","disposeTexture","getGpuResidentBytes","memoryLimitBytes","maxConcurrentRequests","maxGpuUploadsPerUpdate","candidates","updatedChunks","committedBytes","victims","signal","byRankDescending","pendingBytes","candidate","victim","bytesPerElement","chunks","pending","limit","Stats","container","event","showPanel","addPanel","panel","beginTime","prevTime","frames","fpsPanel","msPanel","memPanel","time","memory","fg","bg","round","PR","WIDTH","HEIGHT","TEXT_X","TEXT_Y","GRAPH_X","GRAPH_Y","GRAPH_WIDTH","GRAPH_HEIGHT","context","maxValue","createStats","stats","eventTypes","isEventType","EventContext","EventDispatcher","element","listener","e","MIN_APPROACH_RATE","Ray","origin","direction","plane","approachRate","vec3.scaleAndAdd","Viewport","props","clientX","clientY","client","canvasRect","devicePixelRatio","canvasX","canvasY","canvasHeight","relativeX","relativeY","position","rect","clipPos","aspectRatio","validateNewViewport","existingViewports","existing","elementDescription","validateViewportProps","viewportProps","parseViewportProps","config","PixelSizeObserver","elements","onChange","DEFAULT_MEMORY_LIMIT_MB","Idetik","sizeDependents","perf","overlay","memoryLimitMB","dt","mergeInit","storeOverrides","requestOverrides","resolve","root","path","base","resolved","handleResponse","response","FetchStore","#fetch","#overrides","#useSuffixRequest","url","options","request","#buildRequest","init","href","#fetchSuffix","rangeInit","suffixLength","headRequest","contentLength","ZarritaError","NotFoundError","InvalidMetadataError","UnknownCodecError","codec","CodecPipelineError","parts","UnsupportedError","feature","unimplementedEncode","codecName","BitroundCodec","configuration","_meta","meta","arr","isArrayBufferLike","BoolArray","#bytes","byteOffset","ByteStringArray","#encoder","chars","values","encoded","UnicodeStringArray","#data","str","result","assertSharedArrayBufferAvailable","createBuffer","byteLength","useShared","jsonDecodeObject","cause","byteswapInplace","numFlips","endByteIndex","getCtr","match","kind","ctr","getStrides","shape","order","rank","assert","step","createChunkKeyEncoder","separator","chunkCoords","coerceDtype","endian","rest","isFixedScaleOffsetConfig","v2ToV3ArrayMetadata","codecs","astype","castTarget","isDataType","dimensionNames","v2ToV3GroupMetadata","query","isBoolean","isString","isBigint","isObject","isShardingCodec","ensureCorrectScalar","metadata","isFloat","mapping","rethrowUnless","errors","ErrorClass","expression","msg","decompress","LITTLE_ENDIAN_OS","systemIsLittleEndian","TypedArray","BytesCodec","#stride","#TypedArray","#BYTES_PER_ELEMENT","#shape","#endian","sample","decodedSize","SPECIAL_FLOATS","FLOAT_BYTES","isFloatType","isBigintType","hexToFloat","hex","byteWidth","int","buf","parseJsonScalar","SUPPORTED","INT_BOUNDS","BIGINT_BOUNDS","parseScalarMapEntries","entries","srcType","tgtType","tgt","scalarMapLookup","entry","roundNearestEven","floor","ceil","nearestAway","getRoundingFn","makeIntRangeCheck","lo","hi","outOfRange","makeBigintRangeCheck","CastValueCodec","#encodedType","#arrayTypeCtr","#decodeValue","#encodeFillValue","arrayType","encodedType","rounding","decodeMapEntries","encodeMapEntries","buildConverter","fillValue","input","sourceType","targetType","mapEntries","srcIsFloat","srcIsBigint","dstIsFloat","dstIsBigint","baseFn","check","mapped","Crc32cCodec","assertCOrFContiguous","n","DeltaCodec","#ctr","_config","GzipCodec","throwOnNanReplacer","_key","sortKeysReplacer","sorted","JsonCodec","#encoderConfig","#decoderConfig","encoding","skipkeys","ensure_ascii","check_circular","allow_nan","sort_keys","indent","strict","separators","replacerFunctions","items","replacer","newValue","subReplacer","jsonStr","chr","fullStr","ScaleOffsetCodec","#scale","#offset","ShuffleCodec","shuffle","unshuffle","elementSize","nElements","byte","proxy","prop","emptyLike","convertArrayOrder","nDims","size","srcData","outData","srcIdx","outIdx","getOrder","matchesOrder","TransposeCodec","#order","#inverseOrder","inverseOrder","VLenUTF8","#strides","decoder","pos","itemLength","ZlibCodec","createDefaultRegistry","blosc","lz4","zstd","gzip","zlib","registry","createCodecPipeline","chunkMetadata","codecsPromise","getCodecs","loadCodecs","runStep","applyEncodedSize","chunkMeta","promises","Codec","arrayToArray","arrayToBytes","bytesToBytes","currentMeta","isTypedArrayLikeMeta","MAX_BIG_UINT","createShardedChunkGetter","shardShape","encodeShardKey","shardingConfig","getRange","indexShape","indexCodec","rawIndexSize","cache","chunkCoord","shardCoord","shardPath","linearOffset","sel","Location","Group","#metadata","getArrayOrder","CONTEXT_MARKER","createContext","sharedContext","nativeOrder","chunkKey","chunkPath","opts","maybeBytes","applyExtensions","extensions","ext","extendArray","array","maybeExtend","exts","VERSION_COUNTER","createVersionCounter","versionCounts","getCounts","counts","version","loadAttrs","metaBytes","openV2","loc","attrs","openArrayV2","openGroupV2","Array","_openV3","metaDoc","openV3","node","open","versionMax","openPrimary","openSecondary","resolveFileHandleForPath","dirs","fname","dir","WebFileSystemStore","#root","fh","openGroup","zarr.open","openArray","openArrayFromParams","rootLocation","arrayLocation","createZarrArrayParams","arrayPath","zarrVersion","processChunk","receivedData","receivedShape","receivedStride","spec","sliceReceivedChunk","targetShape","chunkIndex","dimIndices","receivedSpatialShape","cOffsetInSource","tOffsetInSource","compactSize","cStride","tStride","srcOffset","receivedExactShape","compactData","destOffset","zStart","srcStart","srcEnd","DEFAULT_WORKER_COUNT","workerPool","messageId","workerId","pendingMessages","canceledMessages","getWorkerInstance","worker","instance","handleWorkerMessage","success","workerInstance","handleWorkerError","workerIndex","failedWorkerId","replacementWorker","createWorker","WorkerKernel","getLeastBusyWorker","fetchAndProcessChunkInWorker","zarrParams","sliceSpec","reject","abortListener","ensureWorkerPool","terminateWorkerPool","fetchAndProcessChunk","arrayParams","rawChunk","OmeZarrImageLoader","inferSourceDimensionMap","bytesPerElementForDtype","rowAlignment","BYTES_PER_ELEMENT","image","arrays","numAxes","xIndex","findDimensionIndex","yIndex","makeSourceDimension","lods","dataset","isVoxelCenterConvention","dims","zIndex","findDimensionIndexSafe","cIndex","tIndex","compareDimensions","expected","actual","util","assertIs","_arg","assertNever","_x","obj","validKeys","filtered","keys","checker","val","joinValues","objectUtil","first","second","ZodParsedType","getParsedType","ZodIssueCode","ZodError","issues","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","el","formErrors","firstEl","errorMap","_ctx","overrideErrorMap","defaultErrorMap","getErrorMap","makeIssue","errorMaps","issueData","fullPath","fullIssue","errorMessage","maps","map","addIssueToContext","ctx","overrideMap","ParseStatus","status","results","arrayValue","INVALID","pairs","syncPairs","pair","finalObject","DIRTY","OK","isAborted","isDirty","isValid","isAsync","errorUtil","ParseInputLazyPath","parent","handleResult","processCreateParams","invalid_type_error","required_error","description","iss","ZodType","maybeAsyncResult","getIssueProperties","setError","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","def","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","transform","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","dateRegex","timeRegexSource","secondsRegexSource","secondsQuantifier","timeRegex","datetimeRegex","regex","isValidIP","ip","isValidJWT","jwt","alg","header","base64","decoded","isValidCidr","ZodString","tooBig","tooSmall","validation","minLength","maxLength","ch","floatSafeRemainder","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","schema","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","defaultError","augmentation","merging","newField","createZodEnum","handleResults","unionErrors","childCtx","dirty","types","mergeValues","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","merged","itemIndex","schemas","ZodMap","keyType","valueType","finalMap","ZodSet","finalizeSet","parsedSet","minSize","maxSize","ZodLazy","getter","ZodLiteral","ZodEnum","expectedValues","enumValues","newDef","opt","ZodNativeEnum","nativeEnumValues","promisified","effect","checkCtx","processed","executeRefinement","inner","preprocess","newCtx","ZodNaN","inResult","freeze","stringType","numberType","booleanType","anyType","objectType","literalType","enumType","Image","z.object","z.array","z.string","z.any","z.literal","z.number","z.enum","z.boolean","Plate","Well","versions","versionsSet","maybeGetVersion","ome","getVersion","omeZarrToZarrVersion","omeVersion","removeProperty","objCopy","loadOmeZarrPlate","zarr.FetchStore","zarr.Location","group","parsePlate","adaptPlateV04ToV05","PlateV04","platev04","adaptWellV04ToV05","wellv04","parseWell","WellV04","loadOmeZarrWell","fullUrl","loadOmeroChannels","parseOmeZarrImage","loadOmeroDefaults","adaptImageV04ToV05","imagev04","parseImage","ImageV04","OmeZarrImageSource","adaptedOmeImage","images","loader","Layer","opacity","blendMode","occludes","_event","_context","newState","prevState","ProjectedLineGeometry","vertices","closed","vec3.equals","current","previous","next","indices","WireframeGeometry","edgeSet","wireframeIndices","addEdge","i0","i1","i2","WORLD_UP","TrsTransform","quat.multiply","quat.copy","quat.clone","vec3.copy","vec3.multiply","mat4.targetTo","mat3.fromMat4","mat4.fromRotationTranslationScale","Color","r","g","colorLike","RenderableObject","stale","programName","ProjectedLineRenderable","AxesLayer","makeAxis","end","ALL_CATEGORIES","createExplorationPolicy","overrides","createImageSourcePolicy","mergeProps","createPlaybackPolicy","createNoPrefetchPolicy","validatePolicyProps","priorityMap","cat","MAX_CHANNELS","validateChannel","visible","contrastLimits","validateContrastLimits","validateChannels","channelProps","validateChannelPropsCount","sourceChannelCount","PlaneGeometry","widthSegments","heightSegments","vertex","gridX","gridY","gridX1","gridY1","segmentW","segmentH","iy","ix","normals","uvs","ImageRenderable","textureToShader","channelIndex","property","newChannel","Plane","normal","vec3.length","inv","vec3.scale","handlePointPickingEvent","pointerDownPos","pickAtRay","onPickValue","dragThreshold","pointerUpPos","vec2.distance","ray","RenderablePool","bin","disposer","ImageLayer","layerOptions","worldViewRect","imageRenderable","visibleChunksResident","orderedByLOD","nonVisibleChunks","channel","firstChunk","planeNormal","vec3.transformQuat","world","pooled","poolKeyForImageRenderable","local","preferCurrentLOD","localPos","uIdx","vIdx","texel","debug","BoxGeometry","depthSegments","wSeg","hSeg","dSeg","axisU","axisV","axisW","udir","vdir","faceWidth","faceHeight","faceDepth","wdir","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","vertexPosition","VolumeRenderable","textureIndex","newProgramName","dataTypeToVolumeShader","loadedAndVisibleTextures","colors","valueOffset","valueScale","channelOpacity","samplerUniforms","numTotalChannels","uniforms","desiredChannelIndex","firstTextureIndex","INTERACTIVE_STEP_SIZE_SCALE","VolumeLayer","volume","poolKey","poolKeyForChunk","chunksToRender","currentTime","groupedChunks","groupBySpatialIndex","worldSize","vec3.set","originOffset","isCameraMoving","volumes","sortBackToFront","spatialKey","grouped","objects","cameraPosition","depths","vec3.squaredDistance","Texture2D","defaultColorCycle","validateLookupTable","lookupTable","validateCycle","cycle","validateColorMap","signedDataTypes","unsignedDataTypes","validateImageData","imageData","labelTextureToShader","LabelImageRenderable","colorMap","validated","numColors","LabelLayer","outlineSelected","labelRenderable","label","Texture2DArray","MARKER_INDEX","PointsRenderable","points","getMarkerAtlas","markerAtlas","createMarkerAtlas","square","circle","triangle","sprites","numMarkers","marker","sprite","Frustum","Camera","projectionInverse","viewPos","vec4.scale","worldPos","Spherical","radius","phi","theta","MOUSE_BUTTON_NONE","MOUSE_BUTTON_LEFT","MOUSE_BUTTON_MIDDLE","ORBIT_SPEED","PAN_SPEED","ZOOM_SPEED","DEFAULT_DAMPING_FACTOR","DAMPING_FPS","OrbitControls","damping","dx","dy","doOrbit","doPan","speed","delta","vec3.sub","vec3.zero","DEFAULT_ASPECT_RATIO","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_NEAR","DEFAULT_FAR","OrthographicCamera","factor","inverseFactor","topLeft","bottomRight","frameAspectRatio","viewportHalfWidth","viewportHalfHeight","mat4.ortho","LEFT_MOUSE_BUTTON","PanZoomControls","_delta","posBeforeZoom","zoomFactor","posAfterZoom","DEFAULT_FOV","MIN_FOV","MAX_FOV","PerspectiveCamera","fov","mat4.perspective","glMatrix.toRadian","__toBinary","table","c0","c1","c2","c3","blosc_codec","moduleArg","aa","ba","ca","ea","fa","A","B","D","E","F","G","ha","ia","ja","ka","la","ma","na","H","J","oa","pa","L","qa","ra","sa","ta","M","ua","va","xa","N","O","P","Q","R","ya","S","za","T","h","Aa","Ba","U","Ca","Da","Ea","Fa","V","Ga","Ha","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ua","Ta","W","Va","Wa","Xa","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","jb","ib","kb","lb","X","nb","C","Ia","K","Ja","da","Ka","ob","mb","Y","Z","pb","qb","blosc_codec_default","blosc_codec_default2","COMPRESSORS","emscriptenModule","Blosc","Blosc2","clevel","cname","blocksize","module","blosc_default","lz4_codec","I","wa","lz4_codec_default","lz4_codec_default2","DEFAULT_ACCELERATION","MAX_BUFFER_SIZE","LZ4","LZ42","acceleration","lz4_default","zstd_codec","moduleRtn","rb","sb","zstd_codec_default","zstd_codec_default2","DEFAULT_CLEVEL","MAX_CLEVEL","Zstd","Zstd2","zstd_default"],"mappings":"gPAMO,MAAeA,EAAS,CACZ,QACT,OAAS,EACT,QAAU,EAER,iBAAmB,EAS7B,YAAYC,EAA2B,CACrC,KAAK,QAAUA,EACf,KAAK,mBAAA,CACP,CAEO,YAAmB,CAAC,CAIpB,YAAmB,CACxB,KAAK,mBAAA,EACL,KAAK,OAAO,KAAK,OAAQ,KAAK,OAAO,CACvC,CAEQ,oBAAqB,CAC3B,KAAK,OAAS,KAAK,OAAO,YAAc,OAAO,iBAC/C,KAAK,QAAU,KAAK,OAAO,aAAe,OAAO,iBAE7C,KAAK,OAAO,QAAU,KAAK,SAAQ,KAAK,OAAO,MAAQ,KAAK,QAC5D,KAAK,OAAO,SAAW,KAAK,UAAS,KAAK,OAAO,OAAS,KAAK,QACrE,CAEA,IAAc,QAAS,CACrB,OAAO,KAAK,OACd,CAEA,IAAW,OAAQ,CACjB,OAAO,KAAK,MACd,CAEA,IAAW,QAAS,CAClB,OAAO,KAAK,OACd,CAEA,IAAW,iBAAkB,CAC3B,OAAO,KAAK,gBACd,CASF,CCjEA,IAAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[20,21,22,23,24,25,26,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,83,84,85,86,87,88,89,129,130,131,132]}