From 33bbeca173c0ef4d5811b10b8216ae5e598bfa71 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Sat, 23 Nov 2024 10:42:35 -0500 Subject: [PATCH 01/16] ENH: create-itk-wasm output --- itkcuberille/CMakeLists.txt | 15 ++ itkcuberille/README.md | 3 + itkcuberille/cuberille/CMakeLists.txt | 4 + itkcuberille/cuberille/cuberille.cxx | 93 +++++++++ itkcuberille/itk_wasm_env.bash | 25 +++ itkcuberille/package.json | 42 ++++ itkcuberille/pixi.toml | 270 ++++++++++++++++++++++++++ itkcuberille/pnpm-workspace.yaml | 2 + 8 files changed, 454 insertions(+) create mode 100644 itkcuberille/CMakeLists.txt create mode 100644 itkcuberille/README.md create mode 100644 itkcuberille/cuberille/CMakeLists.txt create mode 100644 itkcuberille/cuberille/cuberille.cxx create mode 100644 itkcuberille/itk_wasm_env.bash create mode 100644 itkcuberille/package.json create mode 100644 itkcuberille/pixi.toml create mode 100644 itkcuberille/pnpm-workspace.yaml diff --git a/itkcuberille/CMakeLists.txt b/itkcuberille/CMakeLists.txt new file mode 100644 index 0000000..6bf5aff --- /dev/null +++ b/itkcuberille/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.16) +project(itkwasm-cuberille LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 20) + +find_package(ITK REQUIRED COMPONENTS + WebAssemblyInterface +) +include(${ITK_USE_FILE}) + +enable_testing() + +# Begin create-itk-wasm added pipelines. +add_subdirectory(cuberille) +# End create-itk-wasm added pipelines. diff --git a/itkcuberille/README.md b/itkcuberille/README.md new file mode 100644 index 0000000..3924480 --- /dev/null +++ b/itkcuberille/README.md @@ -0,0 +1,3 @@ +# itkwasm-cuberille + +Cuberille implicit surface polygonization diff --git a/itkcuberille/cuberille/CMakeLists.txt b/itkcuberille/cuberille/CMakeLists.txt new file mode 100644 index 0000000..28e1758 --- /dev/null +++ b/itkcuberille/cuberille/CMakeLists.txt @@ -0,0 +1,4 @@ +add_executable(cuberille cuberille.cxx) +target_link_libraries(cuberille PUBLIC ${ITK_LIBRARIES}) + +add_test(NAME cuberille-help COMMAND cuberille --help) diff --git a/itkcuberille/cuberille/cuberille.cxx b/itkcuberille/cuberille/cuberille.cxx new file mode 100644 index 0000000..bb1baa8 --- /dev/null +++ b/itkcuberille/cuberille/cuberille.cxx @@ -0,0 +1,93 @@ +/*========================================================================= + + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ + +#include "itkPipeline.h" +#include "itkInputImage.h" +#include "itkOutputMesh.h" +#include "itkSupportInputImageTypes.h" + +template +int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) +{ + using ImageType = TImage; + constexpr unsigned int Dimension = ImageType::ImageDimension; + using PixelType = typename ImageType::PixelType; using MeshType = itk::Mesh; + + + pipeline.get_option("image")->required()->type_name("INPUT_IMAGE"); + + bool quadrilateralFaces = false; + pipeline.add_flag("--quadrilateral-faces", quadrilateralFaces, "Generate quadrilateral faces instead of triangle faces."); + + bool verticesNotProjectedToIsoSurface = false; + pipeline.add_flag("--vertices-not-projected-to-iso-surface", verticesNotProjectedToIsoSurface, "Do not project the vertices to the iso-surface."); + + bool imagePixelToCellData = false; + pipeline.add_flag("--image-pixel-to-cell-data", imagePixelToCellData, "Whether the adjacent input pixel value should be saved as cell data in the output mesh."); + + double projectVertexSurfaceDistanceThreshold = 0.5; + pipeline.add_option("--project-vertex-surface-distance-threshold", projectVertexSurfaceDistanceThreshold, "Threshold for the distance from the iso-surface during vertex projection in pixel units. Smaller is smoother but takes longer."); + + double projectVertexStepLength = -1.0; + pipeline.add_option("--project-vertex-step-length", projectVertexStepLength, "Initial step length for vertex projection in physical units. Default is max spacing * 0.25."); + + double projectVertexStepLengthRelaxationFactor = 0.95; + pipeline.add_option("--project-vertex-step-length-relaxation-factor", projectVertexStepLengthRelaxationFactor, "The step length relaxation factor during vertex projection. The step length is multiplied by this factor each iteration to allow convergence, [0.0, 1.0]."); + + uint32_t projectVertexMaximumNumberOfSteps = 50; + pipeline.add_option("--project-vertex-maximum-number-of-steps", projectVertexMaximumNumberOfSteps, "The maximum number of steps used during vertex projection."); + + bool generateQuadrilateralFaces = false; + pipeline.add_flag("--generate-quadrilateral-faces", generateQuadrilateralFaces, "Generate quadrilateral faces instead of triangle faces."); + + itk::wasm::OutputMesh mesh; + pipeline.add_option("mesh", mesh, "Output mesh.")->required()->type_name("OUTPUT_MESH"); + + ITK_WASM_PARSE(pipeline); + + // Pipeline code goes here + + return EXIT_SUCCESS; +} + +template +class PipelineFunctor +{ +public: + int operator()(itk::wasm::Pipeline &pipeline) + { + using ImageType = TImage; + + itk::wasm::InputImage image; + pipeline.add_option("image", image, "Input image")->type_name("INPUT_IMAGE"); + + ITK_WASM_PRE_PARSE(pipeline); + + typename ImageType::ConstPointer imageRef = image.Get(); + return cuberille(pipeline, imageRef); + } +}; + +int main(int argc, char * argv[]) +{ + itk::wasm::Pipeline pipeline("cuberille", "Create a mesh from an image via cuberille implicit surface polygonization.", argc, argv); + + return itk::wasm::SupportInputImageTypes + ::Dimensions<2U, 3U>("image", pipeline); +} diff --git a/itkcuberille/itk_wasm_env.bash b/itkcuberille/itk_wasm_env.bash new file mode 100644 index 0000000..a4df02c --- /dev/null +++ b/itkcuberille/itk_wasm_env.bash @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +function die() { + echo "$1" + exit 1 +} + +export ITK_WASM_TEST_DATA_HASH=${ITK_WASM_TEST_DATA_HASH:-$(cat package.json | jq -e -r '."itk-wasm"."test-data-hash"')} +export ITK_WASM_TEST_DATA_URLS=${ITK_WASM_TEST_DATA_URLS:-$(cat package.json | jq -e -r '."itk-wasm"."test-data-urls" | join(" ")')} + +export ITK_WASM_ITK_REPOSITORY=${ITK_WASM_ITK_REPOSITORY:-"https://github.com/thewtex/ITK"} +export ITK_WASM_ITK_BRANCH=${ITK_WASM_ITK_BRANCH:-"itkwasm-2024-05-20-5db055d7ad3b-4"} + +export ITK_WASM_NATIVE_WORKSPACE=${ITK_WASM_NATIVE_WORKSPACE:-$(pwd)/native} + +export ITK_WASM_ITK_SOURCE_DIR=${ITK_WASM_ITK_SOURCE_DIR:-${ITK_WASM_NATIVE_WORKSPACE}/ITK} +export ITK_WASM_ITK_BUILD_DIR=${ITK_WASM_ITK_BUILD_DIR:-${ITK_WASM_NATIVE_WORKSPACE}/ITK-build} +mkdir -p ${ITK_WASM_ITK_BUILD_DIR} || die "Could not create ITK build directory" + +export ITK_WASM_WEBASSEMBLY_INTERFACE_REPOSITORY=${ITK_WASM_WEBASSEMBLY_INTERFACE_REPOSITORY:-"https://github.com/InsightSoftwareConsortium/ITK-Wasm"} +export ITK_WASM_WEBASSEMBLY_INTERFACE_BRANCH=${ITK_WASM_WEBASSEMBLY_INTERFACE_BRANCH:-"main"} + +export ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR=${ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR:-${ITK_WASM_NATIVE_WORKSPACE}/ITK-Wasm} +export ITK_WASM_WEBASSEMBLY_INTERFACE_BUILD_DIR=${ITK_WASM_WEBASSEMBLY_INTERFACE_BUILD_DIR:-${ITK_WASM_NATIVE_WORKSPACE}/ITK-Wasm-build} +mkdir -p ${ITK_WASM_WEBASSEMBLY_INTERFACE_BUILD_DIR} || die "Could not create ITK-Wasm build directory" diff --git a/itkcuberille/package.json b/itkcuberille/package.json new file mode 100644 index 0000000..b1d0d22 --- /dev/null +++ b/itkcuberille/package.json @@ -0,0 +1,42 @@ +{ + "name": "itkwasm-cuberille-build", + "version": "0.1.0", + "private": true, + "description": "Scripts to generate itkwasm-cuberille ITK-Wasm artifacts.", + "type": "module", + "itk-wasm": { + "test-data-hash": "bafkreidnoz54py66bn56uq6itwkfgngflaqilflfvwkxlps4ycmygstzja", + "test-data-urls": [ + "https://github.com/InsightSoftwareConsortium/ITK-Wasm/releases/download/itk-wasm-v1.0.0-b.179/sample-data.tar.gz", + "https://bafybeidxatrsrrphfmntdyze6ec3jbiak527wj3kalwjptv4bimpcnzxdq.ipfs.w3s.link/ipfs/bafybeidxatrsrrphfmntdyze6ec3jbiak527wj3kalwjptv4bimpcnzxdq/sample-data.tar.gz" + ], + "package-description": "Cuberille implicit surface polygonization", + "typescript-package-name": "@itk-wasm/cuberille", + "python-package-name": "itkwasm-cuberille", + "repository": "https://github.com/InsightSoftwareConsortium/ITKCuberille" + }, + "license": "Apache-2.0", + "scripts": { + "build": "pnpm build:gen:typescript && pnpm build:gen:python", + "build:emscripten": "itk-wasm pnpm-script build:emscripten", + "build:emscripten:debug": "itk-wasm pnpm-script build:emscripten:debug", + "build:wasi": "itk-wasm pnpm-script build:wasi", + "build:wasi:debug": "itk-wasm pnpm-script build:wasi:debug", + "build:python:wasi": "echo 'No build:python:wasi script required with pixi'", + "bindgen:typescript": "itk-wasm pnpm-script bindgen:typescript", + "bindgen:python": "itk-wasm pnpm-script bindgen:python", + "build:gen:typescript": "itk-wasm pnpm-script build:gen:typescript", + "build:gen:python": "itk-wasm pnpm-script build:gen:python", + "test": "pixi run download-test-data && pnpm build:gen:python", + "test:wasi": "itk-wasm pnpm-script test:wasi" + }, + "devDependencies": { + "@itk-wasm/dam": "^1.1.1", + "itk-wasm": "1.0.0-b.182" + }, + "author": "Matt McCormick ", + "repository": { + "type": "git", + "url": "https://github.com/InsightSoftwareConsortium/ITKCuberille" + } +} \ No newline at end of file diff --git a/itkcuberille/pixi.toml b/itkcuberille/pixi.toml new file mode 100644 index 0000000..d30b9db --- /dev/null +++ b/itkcuberille/pixi.toml @@ -0,0 +1,270 @@ +[project] +authors = ["Matt McCormick "] +channels = ["conda-forge"] +description = "Cuberille implicit surface polygonization" +name = "itkwasm-cuberille" +platforms = ["win-64", "linux-64", "linux-aarch64", "osx-arm64"] +version = "0.1.0" + +[environments] +native = ["native"] +python = ["python"] + +[dependencies] +python = "3.12.*" +pnpm = ">=9.12.1,<10" +hatch = ">=1.13.0,<2" +pip = ">=24.2,<25" + +[target.win-64.dependencies] +m2w64-jq = ">=1.6.0,<2" + +[target.unix.dependencies] +jq = ">=1.7.1,<2" + +[activation] +scripts = ["itk_wasm_env.bash"] + +[tasks.build] +depends-on = ["build-native", "build-typescript", "build-python"] +description = "Build the project" + +[tasks.test] +cmd = "pnpm run test" +depends-on = ["download-test-data", "test-native", "test-python"] +description = "Run tests" + +[tasks.publish] +depends-on = ["publish-typescript", "publish-python-wasi", "publish-python-emscripten", "publish-python-dispatch"] +description = "Synchronize package versions" + +[tasks.version-sync] +depends-on = ["version-sync-typescript", "version-sync-python-wasi", "version-sync-python-emscripten", "version-sync-python-dispatch"] +description = "Synchronize package versions" + +[tasks.pack-test-data] +cmd = "npx dam pack test/data test/data.tar.gz" +depends-on = ["install-typescript"] +outputs = ["test/data.tar.gz"] +description = "Pack the data into a tarball for upload and print CID for package.json" + +[tasks.download-test-data] +cmd = "npx dam download test/data test/data.tar.gz $ITK_WASM_TEST_DATA_HASH $ITK_WASM_TEST_DATA_URLS" +depends-on = ["install-typescript"] +outputs = ["test/data.tar.gz"] +description = "Download test data" + +[tasks.install-typescript] +cmd = "pnpm install" +description = "Install typescript dependencies" + +[tasks.build-typescript] +cmd = "pnpm run build:gen:typescript" +depends-on = ["install-typescript"] +description = "Build typescript components" + +[tasks.test-typescript] +cmd = "pnpm test" +depends-on = ["download-test-data"] +cwd = "typescript" +description = "Test typescript components" + +[tasks.version-sync-typescript] +cmd = '''version=$(cat package.json | jq .version) && + jq ".version = $version" typescript/package.json > typescript/package.json.tmp && + mv typescript/package.json.tmp typescript/package.json''' + +[tasks.publish-typescript] +cmd = "pnpm publish --filter \"{typescript}\"" + +[feature.python.dependencies] +pytest = ">=8.3.3,<9" + +[feature.python.pypi-dependencies] +pyodide-py = ">=0.26.3, <0.27" +pytest-pyodide = ">=0.58.3, <0.59" +itkwasm = ">=1.0b180, <2" + +[tasks.build-python] +cmd = "pnpm run build:gen:python" +depends-on = ["install-typescript"] +description = "Build python components" + +[feature.python.tasks.download-pyodide] +cmd = '''curl -L https://github.com/pyodide/pyodide/releases/download/0.26.3/pyodide-0.26.3.tar.bz2 -o pyodide.tar.bz2 && + tar xjf pyodide.tar.bz2 && + rm pyodide.tar.bz2''' +outputs = ["pyodide"] +description = "Download Pyodide" + +[feature.python.tasks.test-wasi] +cmd = "pytest" +cwd = "python/itkwasm-cuberille-wasi" +description = "Run tests for itkwasm-cuberille-wasi" + +[feature.python.tasks.serve-emscripten] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + echo \"\nVisit http://localhost:8877/console.html\n\" && + python -m http.server --directory=./dist/pyodide 8877''' +cwd = "python/itkwasm-cuberille-emscripten" +depends-on = ["download-pyodide"] +description = "Serve itkwasm-cuberille-emscripten for development" + +[feature.python.tasks.test-emscripten] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + pytest --dist-dir=./dist/pyodide --rt=chrome''' +cwd = "python/itkwasm-cuberille-emscripten" +depends-on = ["download-pyodide"] +description = "Run tests for itkwasm-cuberille-emscripten" + +[feature.python.tasks.serve-dispatch] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + echo \"\nVisit http://localhost:8877/console.html\n\" && + python -m http.server --directory=./dist/pyodide 8877''' +cwd = "python/itkwasm-cuberille" +depends-on = ["download-pyodide"] +description = "Serve itkwasm-cuberille for development" + +[feature.python.tasks.test-dispatch] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + cd ../itkwasm-cuberille-emscripten && + hatch build -t wheel ./dist/pyodide/ && + cd ../itkwasm-cuberille && + cp ../itkwasm-cuberille-emscripten/dist/pyodide/*_emscripten*.whl ./dist/pyodide/ && + pytest --dist-dir=./dist/pyodide --rt=chrome''' +cwd = "python/itkwasm-cuberille" +depends-on = ["download-pyodide"] +description = "Run python tests for itkwasm-cuberille" + +[feature.python.tasks.test-python] +depends-on = ["test-wasi", "test-emscripten", "test-dispatch"] +description = "Run tests for all Python packages" + +[tasks.version-sync-python-wasi] +cmd = '''version=$(cat ../../package.json | jq -r .version) && + echo "version is $version" && + hatch version $version''' +cwd = "python/itkwasm-cuberille-wasi" + +[tasks.version-sync-python-emscripten] +cmd = '''version=$(cat ../../package.json | jq -r .version) && + hatch version $version''' +cwd = "python/itkwasm-cuberille-emscripten" + +[tasks.version-sync-python-dispatch] +cmd = '''version=$(cat ../../package.json | jq -r .version) && + hatch version $version''' +cwd = "python/itkwasm-cuberille" + +[tasks.publish-python-user-check] +cmd = "if [ -n \"$HATCH_INDEX_USER\"]; then echo \"HATCH_INDEX_USER is set\"; else echo \"HATCH_INDEX_USER is not set\"; exit 1; fi" + +[tasks.publish-python-wasi] +cmd = '''hatch build && + hatch publish''' +cwd = "python/itkwasm-cuberille-wasi" + +[tasks.publish-python-emscripten] +cmd = '''hatch build && + hatch publish''' +cwd = "python/itkwasm-cuberille-emscripten" + +[tasks.publish-python-dispatch] +cmd = '''hatch build && + hatch publish''' +cwd = "python/itkwasm-cuberille" +[feature.native.tasks.clone-itk] +cmd = ["stat", "$ITK_WASM_ITK_SOURCE_DIR", ">/dev/null", "||", + "git", "clone", + "--depth=10", + "--branch=$ITK_WASM_ITK_BRANCH", + "$ITK_WASM_ITK_REPOSITORY", + "$ITK_WASM_ITK_SOURCE_DIR"] +# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs +outputs = ["native/ITK/LICENSE"] +description = "Fetch ITK's source code" + +[feature.native.tasks.configure-itk] +cmd = '''cmake -B$ITK_WASM_ITK_BUILD_DIR -S$ITK_WASM_ITK_SOURCE_DIR -GNinja + -DCMAKE_CXX_STANDARD:STRING=20 + -DCMAKE_BUILD_TYPE:STRING=Debug + -DBUILD_EXAMPLES:BOOL=OFF + -DBUILD_TESTING:BOOL=OFF + -DBUILD_SHARED_LIBS:BOOL=OFF + -DBUILD_STATIC_LIBS:BOOL=ON + -DITK_LEGACY_REMOVE:BOOL=ON + -DITK_BUILD_DEFAULT_MODULES:BOOL=ON + -DITKGroup_IO:BOOL=ON + -DH5_HAVE_GETPWUID:BOOL=OFF + -DModule_MeshToPolyData:BOOL=ON + -DDO_NOT_BUILD_ITK_TEST_DRIVER:BOOL=ON + -DOPJ_USE_THREAD:BOOL=OFF + -DNO_FLOAT_EXCEPTIONS:BOOL=ON + -DITK_MSVC_STATIC_RUNTIME_LIBRARY=ON''' +depends-on = ["clone-itk"] +# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs +# outputs = ["$ITK_WASM_ITK_BUILD_DIR/CMakeFiles/"] +outputs = ["native/ITK-build/CMakeFiles/**"] +description = "Configure ITK" + +[feature.native.tasks.build-itk] +cmd = "cmake --build $ITK_WASM_ITK_BUILD_DIR" +depends-on = ["configure-itk"] +outputs = ["native/ITK-build/**"] +description = "Build ITK" + +[feature.native.tasks.clone-itk-wasm] +cmd = ["stat", "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR", ">/dev/null", "||", + "git", "clone", + "--depth=10", + "--branch=$ITK_WASM_WEBASSEMBLY_INTERFACE_BRANCH", + "$ITK_WASM_WEBASSEMBLY_INTERFACE_REPOSITORY", + "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR"] +# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs +outputs = ["native/ITK-Wasm/LICENSE"] +description = "Fetch ITK's source code" + +[feature.native.tasks.configure-itk-wasm] +cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build + -S$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm + -GNinja + -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR + -DBUILD_TESTING:BOOL=OFF + -DCMAKE_CXX_STANDARD:STRING=20 + -DCMAKE_BUILD_TYPE:STRING=Debug''' +depends-on = ["build-itk", "clone-itk-wasm"] +outputs = ["native/ITK-Wasm-build/CMakeFiles/"] +description = "Configure ITK-Wasm" + +[feature.native.tasks.build-itk-wasm] +cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build" +depends-on = ["configure-itk-wasm"] +description = "Build ITK-Wasm" + +[feature.native.tasks.configure-native] +cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build -S. -GNinja + -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR + -DBUILD_TESTING:BOOL=ON + -DCMAKE_CXX_STANDARD:STRING=20 + -DCMAKE_BUILD_TYPE:STRING=Debug''' +depends-on = ["build-itk-wasm"] +description = "Configure native build" + +[feature.native.tasks.build-native] +cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" +depends-on = ["configure-native"] +description = "Build native binaries" + +[feature.native.tasks.test-native] +cmd = "ctest --test-dir $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" +depends-on = ["build-native"] +description = "Test native binaries" + diff --git a/itkcuberille/pnpm-workspace.yaml b/itkcuberille/pnpm-workspace.yaml new file mode 100644 index 0000000..27c86b7 --- /dev/null +++ b/itkcuberille/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'typescript' From 3d9da10f3ff411bfc9ee0cf9f1ec9959f88f4f69 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Sat, 23 Nov 2024 21:31:19 -0500 Subject: [PATCH 02/16] ENH: Organize wasm modules for ITK remote module --- CMakeLists.txt | 6 +- itkcuberille/pixi.toml | 270 ----------------- itkcuberille/pnpm-workspace.yaml | 2 - itkcuberille/package.json => package.json | 0 pnpm-workspace.yaml | 2 + pyproject.toml | 273 +++++++++++++++++- {itkcuberille => wasm}/CMakeLists.txt | 0 {itkcuberille => wasm}/README.md | 0 .../cuberille/CMakeLists.txt | 0 .../cuberille/cuberille.cxx | 0 {itkcuberille => wasm}/itk_wasm_env.bash | 0 11 files changed, 279 insertions(+), 274 deletions(-) delete mode 100644 itkcuberille/pixi.toml delete mode 100644 itkcuberille/pnpm-workspace.yaml rename itkcuberille/package.json => package.json (100%) create mode 100644 pnpm-workspace.yaml rename {itkcuberille => wasm}/CMakeLists.txt (100%) rename {itkcuberille => wasm}/README.md (100%) rename {itkcuberille => wasm}/cuberille/CMakeLists.txt (100%) rename {itkcuberille => wasm}/cuberille/cuberille.cxx (100%) rename {itkcuberille => wasm}/itk_wasm_env.bash (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index e17b384..3acbec5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,9 +2,13 @@ cmake_minimum_required(VERSION 3.16.3) project(Cuberille) if(NOT ITK_SOURCE_DIR) - find_package(ITK 4.10 REQUIRED) + find_package(ITK 5.2 REQUIRED) list(APPEND CMAKE_MODULE_PATH ${ITK_CMAKE_DIR}) include(ITKModuleExternal) + if(WASI OR EMSCRIPTEN) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + add_subdirectory(wasm) + endif() else() itk_module_impl() endif() diff --git a/itkcuberille/pixi.toml b/itkcuberille/pixi.toml deleted file mode 100644 index d30b9db..0000000 --- a/itkcuberille/pixi.toml +++ /dev/null @@ -1,270 +0,0 @@ -[project] -authors = ["Matt McCormick "] -channels = ["conda-forge"] -description = "Cuberille implicit surface polygonization" -name = "itkwasm-cuberille" -platforms = ["win-64", "linux-64", "linux-aarch64", "osx-arm64"] -version = "0.1.0" - -[environments] -native = ["native"] -python = ["python"] - -[dependencies] -python = "3.12.*" -pnpm = ">=9.12.1,<10" -hatch = ">=1.13.0,<2" -pip = ">=24.2,<25" - -[target.win-64.dependencies] -m2w64-jq = ">=1.6.0,<2" - -[target.unix.dependencies] -jq = ">=1.7.1,<2" - -[activation] -scripts = ["itk_wasm_env.bash"] - -[tasks.build] -depends-on = ["build-native", "build-typescript", "build-python"] -description = "Build the project" - -[tasks.test] -cmd = "pnpm run test" -depends-on = ["download-test-data", "test-native", "test-python"] -description = "Run tests" - -[tasks.publish] -depends-on = ["publish-typescript", "publish-python-wasi", "publish-python-emscripten", "publish-python-dispatch"] -description = "Synchronize package versions" - -[tasks.version-sync] -depends-on = ["version-sync-typescript", "version-sync-python-wasi", "version-sync-python-emscripten", "version-sync-python-dispatch"] -description = "Synchronize package versions" - -[tasks.pack-test-data] -cmd = "npx dam pack test/data test/data.tar.gz" -depends-on = ["install-typescript"] -outputs = ["test/data.tar.gz"] -description = "Pack the data into a tarball for upload and print CID for package.json" - -[tasks.download-test-data] -cmd = "npx dam download test/data test/data.tar.gz $ITK_WASM_TEST_DATA_HASH $ITK_WASM_TEST_DATA_URLS" -depends-on = ["install-typescript"] -outputs = ["test/data.tar.gz"] -description = "Download test data" - -[tasks.install-typescript] -cmd = "pnpm install" -description = "Install typescript dependencies" - -[tasks.build-typescript] -cmd = "pnpm run build:gen:typescript" -depends-on = ["install-typescript"] -description = "Build typescript components" - -[tasks.test-typescript] -cmd = "pnpm test" -depends-on = ["download-test-data"] -cwd = "typescript" -description = "Test typescript components" - -[tasks.version-sync-typescript] -cmd = '''version=$(cat package.json | jq .version) && - jq ".version = $version" typescript/package.json > typescript/package.json.tmp && - mv typescript/package.json.tmp typescript/package.json''' - -[tasks.publish-typescript] -cmd = "pnpm publish --filter \"{typescript}\"" - -[feature.python.dependencies] -pytest = ">=8.3.3,<9" - -[feature.python.pypi-dependencies] -pyodide-py = ">=0.26.3, <0.27" -pytest-pyodide = ">=0.58.3, <0.59" -itkwasm = ">=1.0b180, <2" - -[tasks.build-python] -cmd = "pnpm run build:gen:python" -depends-on = ["install-typescript"] -description = "Build python components" - -[feature.python.tasks.download-pyodide] -cmd = '''curl -L https://github.com/pyodide/pyodide/releases/download/0.26.3/pyodide-0.26.3.tar.bz2 -o pyodide.tar.bz2 && - tar xjf pyodide.tar.bz2 && - rm pyodide.tar.bz2''' -outputs = ["pyodide"] -description = "Download Pyodide" - -[feature.python.tasks.test-wasi] -cmd = "pytest" -cwd = "python/itkwasm-cuberille-wasi" -description = "Run tests for itkwasm-cuberille-wasi" - -[feature.python.tasks.serve-emscripten] -cmd = '''mkdir -p dist/pyodide && - cp -r ../../pyodide dist/ && - hatch build -t wheel ./dist/pyodide/ && - echo \"\nVisit http://localhost:8877/console.html\n\" && - python -m http.server --directory=./dist/pyodide 8877''' -cwd = "python/itkwasm-cuberille-emscripten" -depends-on = ["download-pyodide"] -description = "Serve itkwasm-cuberille-emscripten for development" - -[feature.python.tasks.test-emscripten] -cmd = '''mkdir -p dist/pyodide && - cp -r ../../pyodide dist/ && - hatch build -t wheel ./dist/pyodide/ && - pytest --dist-dir=./dist/pyodide --rt=chrome''' -cwd = "python/itkwasm-cuberille-emscripten" -depends-on = ["download-pyodide"] -description = "Run tests for itkwasm-cuberille-emscripten" - -[feature.python.tasks.serve-dispatch] -cmd = '''mkdir -p dist/pyodide && - cp -r ../../pyodide dist/ && - hatch build -t wheel ./dist/pyodide/ && - echo \"\nVisit http://localhost:8877/console.html\n\" && - python -m http.server --directory=./dist/pyodide 8877''' -cwd = "python/itkwasm-cuberille" -depends-on = ["download-pyodide"] -description = "Serve itkwasm-cuberille for development" - -[feature.python.tasks.test-dispatch] -cmd = '''mkdir -p dist/pyodide && - cp -r ../../pyodide dist/ && - hatch build -t wheel ./dist/pyodide/ && - cd ../itkwasm-cuberille-emscripten && - hatch build -t wheel ./dist/pyodide/ && - cd ../itkwasm-cuberille && - cp ../itkwasm-cuberille-emscripten/dist/pyodide/*_emscripten*.whl ./dist/pyodide/ && - pytest --dist-dir=./dist/pyodide --rt=chrome''' -cwd = "python/itkwasm-cuberille" -depends-on = ["download-pyodide"] -description = "Run python tests for itkwasm-cuberille" - -[feature.python.tasks.test-python] -depends-on = ["test-wasi", "test-emscripten", "test-dispatch"] -description = "Run tests for all Python packages" - -[tasks.version-sync-python-wasi] -cmd = '''version=$(cat ../../package.json | jq -r .version) && - echo "version is $version" && - hatch version $version''' -cwd = "python/itkwasm-cuberille-wasi" - -[tasks.version-sync-python-emscripten] -cmd = '''version=$(cat ../../package.json | jq -r .version) && - hatch version $version''' -cwd = "python/itkwasm-cuberille-emscripten" - -[tasks.version-sync-python-dispatch] -cmd = '''version=$(cat ../../package.json | jq -r .version) && - hatch version $version''' -cwd = "python/itkwasm-cuberille" - -[tasks.publish-python-user-check] -cmd = "if [ -n \"$HATCH_INDEX_USER\"]; then echo \"HATCH_INDEX_USER is set\"; else echo \"HATCH_INDEX_USER is not set\"; exit 1; fi" - -[tasks.publish-python-wasi] -cmd = '''hatch build && - hatch publish''' -cwd = "python/itkwasm-cuberille-wasi" - -[tasks.publish-python-emscripten] -cmd = '''hatch build && - hatch publish''' -cwd = "python/itkwasm-cuberille-emscripten" - -[tasks.publish-python-dispatch] -cmd = '''hatch build && - hatch publish''' -cwd = "python/itkwasm-cuberille" -[feature.native.tasks.clone-itk] -cmd = ["stat", "$ITK_WASM_ITK_SOURCE_DIR", ">/dev/null", "||", - "git", "clone", - "--depth=10", - "--branch=$ITK_WASM_ITK_BRANCH", - "$ITK_WASM_ITK_REPOSITORY", - "$ITK_WASM_ITK_SOURCE_DIR"] -# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs -outputs = ["native/ITK/LICENSE"] -description = "Fetch ITK's source code" - -[feature.native.tasks.configure-itk] -cmd = '''cmake -B$ITK_WASM_ITK_BUILD_DIR -S$ITK_WASM_ITK_SOURCE_DIR -GNinja - -DCMAKE_CXX_STANDARD:STRING=20 - -DCMAKE_BUILD_TYPE:STRING=Debug - -DBUILD_EXAMPLES:BOOL=OFF - -DBUILD_TESTING:BOOL=OFF - -DBUILD_SHARED_LIBS:BOOL=OFF - -DBUILD_STATIC_LIBS:BOOL=ON - -DITK_LEGACY_REMOVE:BOOL=ON - -DITK_BUILD_DEFAULT_MODULES:BOOL=ON - -DITKGroup_IO:BOOL=ON - -DH5_HAVE_GETPWUID:BOOL=OFF - -DModule_MeshToPolyData:BOOL=ON - -DDO_NOT_BUILD_ITK_TEST_DRIVER:BOOL=ON - -DOPJ_USE_THREAD:BOOL=OFF - -DNO_FLOAT_EXCEPTIONS:BOOL=ON - -DITK_MSVC_STATIC_RUNTIME_LIBRARY=ON''' -depends-on = ["clone-itk"] -# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs -# outputs = ["$ITK_WASM_ITK_BUILD_DIR/CMakeFiles/"] -outputs = ["native/ITK-build/CMakeFiles/**"] -description = "Configure ITK" - -[feature.native.tasks.build-itk] -cmd = "cmake --build $ITK_WASM_ITK_BUILD_DIR" -depends-on = ["configure-itk"] -outputs = ["native/ITK-build/**"] -description = "Build ITK" - -[feature.native.tasks.clone-itk-wasm] -cmd = ["stat", "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR", ">/dev/null", "||", - "git", "clone", - "--depth=10", - "--branch=$ITK_WASM_WEBASSEMBLY_INTERFACE_BRANCH", - "$ITK_WASM_WEBASSEMBLY_INTERFACE_REPOSITORY", - "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR"] -# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs -outputs = ["native/ITK-Wasm/LICENSE"] -description = "Fetch ITK's source code" - -[feature.native.tasks.configure-itk-wasm] -cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build - -S$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm - -GNinja - -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR - -DBUILD_TESTING:BOOL=OFF - -DCMAKE_CXX_STANDARD:STRING=20 - -DCMAKE_BUILD_TYPE:STRING=Debug''' -depends-on = ["build-itk", "clone-itk-wasm"] -outputs = ["native/ITK-Wasm-build/CMakeFiles/"] -description = "Configure ITK-Wasm" - -[feature.native.tasks.build-itk-wasm] -cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build" -depends-on = ["configure-itk-wasm"] -description = "Build ITK-Wasm" - -[feature.native.tasks.configure-native] -cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build -S. -GNinja - -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR - -DBUILD_TESTING:BOOL=ON - -DCMAKE_CXX_STANDARD:STRING=20 - -DCMAKE_BUILD_TYPE:STRING=Debug''' -depends-on = ["build-itk-wasm"] -description = "Configure native build" - -[feature.native.tasks.build-native] -cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" -depends-on = ["configure-native"] -description = "Build native binaries" - -[feature.native.tasks.test-native] -cmd = "ctest --test-dir $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" -depends-on = ["build-native"] -description = "Test native binaries" - diff --git a/itkcuberille/pnpm-workspace.yaml b/itkcuberille/pnpm-workspace.yaml deleted file mode 100644 index 27c86b7..0000000 --- a/itkcuberille/pnpm-workspace.yaml +++ /dev/null @@ -1,2 +0,0 @@ -packages: - - 'typescript' diff --git a/itkcuberille/package.json b/package.json similarity index 100% rename from itkcuberille/package.json rename to package.json diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..9aef6d7 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'wasm/typescript' diff --git a/pyproject.toml b/pyproject.toml index 5aa2364..232f767 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ readme = "README.rst" license = {file = "LICENSE"} authors = [ { name = "Dan Meuller" }, - { name = "Matthew M. McCormick", email = "matt.mccormick@kitware.com" }, + { name = "Matthew M. McCormick", email = "matt@mmmccormick.com" }, ] keywords = [ "itk", @@ -114,3 +114,274 @@ minimum-version = "0.8.2" # The build directory. Defaults to a temporary directory, but can be set. build-dir = "build/{wheel_tag}" + +[tool.pixi.project] +authors = ["Matt McCormick "] +channels = ["conda-forge"] +description = "Cuberille implicit surface polygonization to generate meshes from images." +name = "itkwasm-cuberille" +platforms = ["win-64", "linux-64", "linux-aarch64", "osx-arm64"] +version = "0.1.0" + +[environments] +native = ["native"] +python = ["python"] + +[dependencies] +python = "3.12.*" +pnpm = ">=9.12.1,<10" +hatch = ">=1.13.0,<2" +pip = ">=24.2,<25" + +[target.win-64.dependencies] +m2w64-jq = ">=1.6.0,<2" + +[target.unix.dependencies] +jq = ">=1.7.1,<2" + +[activation] +scripts = ["wasm/itk_wasm_env.bash"] + +[tasks.build] +depends-on = ["build-native", "build-typescript", "build-python"] +description = "Build the project" + +[tasks.test] +cmd = "pnpm run test" +depends-on = ["download-test-data", "test-native", "test-python"] +description = "Run tests" + +[tasks.publish] +depends-on = ["publish-typescript", "publish-python-wasi", "publish-python-emscripten", "publish-python-dispatch"] +description = "Synchronize package versions" + +[tasks.version-sync] +depends-on = ["version-sync-typescript", "version-sync-python-wasi", "version-sync-python-emscripten", "version-sync-python-dispatch"] +description = "Synchronize package versions" + +[tasks.pack-test-data] +cmd = "npx dam pack test/data test/data.tar.gz" +depends-on = ["install-typescript"] +outputs = ["test/data.tar.gz"] +description = "Pack the data into a tarball for upload and print CID for package.json" + +[tasks.download-test-data] +cmd = "npx dam download test/data test/data.tar.gz $ITK_WASM_TEST_DATA_HASH $ITK_WASM_TEST_DATA_URLS" +depends-on = ["install-typescript"] +outputs = ["test/data.tar.gz"] +description = "Download test data" + +[tasks.install-typescript] +cmd = "pnpm install" +description = "Install typescript dependencies" + +[tasks.build-typescript] +cmd = "pnpm run build:gen:typescript" +depends-on = ["install-typescript"] +description = "Build typescript components" + +[tasks.test-typescript] +cmd = "pnpm test" +depends-on = ["download-test-data"] +cwd = "typescript" +description = "Test typescript components" + +[tasks.version-sync-typescript] +cmd = '''version=$(cat package.json | jq .version) && + jq ".version = $version" typescript/package.json > typescript/package.json.tmp && + mv typescript/package.json.tmp typescript/package.json''' + +[tasks.publish-typescript] +cmd = "pnpm publish --filter \"{typescript}\"" + +[feature.python.dependencies] +pytest = ">=8.3.3,<9" + +[feature.python.pypi-dependencies] +pyodide-py = ">=0.26.4, <0.27" +pytest-pyodide = ">=0.58.3, <0.59" +itkwasm = ">=1.0b180, <2" + +[tasks.build-python] +cmd = "pnpm run build:gen:python" +depends-on = ["install-typescript"] +description = "Build python components" + +[feature.python.tasks.download-pyodide] +cmd = '''curl -L https://github.com/pyodide/pyodide/releases/download/0.26.4/pyodide-0.26.4.tar.bz2 -o pyodide.tar.bz2 && + tar xjf pyodide.tar.bz2 && + rm pyodide.tar.bz2''' +outputs = ["pyodide"] +description = "Download Pyodide" + +[feature.python.tasks.test-wasi] +cmd = "pytest" +cwd = "python/itkwasm-cuberille-wasi" +description = "Run tests for itkwasm-cuberille-wasi" + +[feature.python.tasks.serve-emscripten] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + echo \"\nVisit http://localhost:8877/console.html\n\" && + python -m http.server --directory=./dist/pyodide 8877''' +cwd = "python/itkwasm-cuberille-emscripten" +depends-on = ["download-pyodide"] +description = "Serve itkwasm-cuberille-emscripten for development" + +[feature.python.tasks.test-emscripten] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + pytest --dist-dir=./dist/pyodide --rt=chrome''' +cwd = "python/itkwasm-cuberille-emscripten" +depends-on = ["download-pyodide"] +description = "Run tests for itkwasm-cuberille-emscripten" + +[feature.python.tasks.serve-dispatch] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + echo \"\nVisit http://localhost:8877/console.html\n\" && + python -m http.server --directory=./dist/pyodide 8877''' +cwd = "python/itkwasm-cuberille" +depends-on = ["download-pyodide"] +description = "Serve itkwasm-cuberille for development" + +[feature.python.tasks.test-dispatch] +cmd = '''mkdir -p dist/pyodide && + cp -r ../../pyodide dist/ && + hatch build -t wheel ./dist/pyodide/ && + cd ../itkwasm-cuberille-emscripten && + hatch build -t wheel ./dist/pyodide/ && + cd ../itkwasm-cuberille && + cp ../itkwasm-cuberille-emscripten/dist/pyodide/*_emscripten*.whl ./dist/pyodide/ && + pytest --dist-dir=./dist/pyodide --rt=chrome''' +cwd = "python/itkwasm-cuberille" +depends-on = ["download-pyodide"] +description = "Run python tests for itkwasm-cuberille" + +[feature.python.tasks.test-python] +depends-on = ["test-wasi", "test-emscripten", "test-dispatch"] +description = "Run tests for all Python packages" + +[tasks.version-sync-python-wasi] +cmd = '''version=$(cat ../../package.json | jq -r .version) && + echo "version is $version" && + hatch version $version''' +cwd = "python/itkwasm-cuberille-wasi" + +[tasks.version-sync-python-emscripten] +cmd = '''version=$(cat ../../package.json | jq -r .version) && + hatch version $version''' +cwd = "python/itkwasm-cuberille-emscripten" + +[tasks.version-sync-python-dispatch] +cmd = '''version=$(cat ../../package.json | jq -r .version) && + hatch version $version''' +cwd = "python/itkwasm-cuberille" + +[tasks.publish-python-user-check] +cmd = "if [ -n \"$HATCH_INDEX_USER\"]; then echo \"HATCH_INDEX_USER is set\"; else echo \"HATCH_INDEX_USER is not set\"; exit 1; fi" + +[tasks.publish-python-wasi] +cmd = '''hatch build && + hatch publish''' +cwd = "python/itkwasm-cuberille-wasi" + +[tasks.publish-python-emscripten] +cmd = '''hatch build && + hatch publish''' +cwd = "python/itkwasm-cuberille-emscripten" + +[tasks.publish-python-dispatch] +cmd = '''hatch build && + hatch publish''' +cwd = "python/itkwasm-cuberille" +[feature.native.tasks.clone-itk] +cmd = ["stat", "$ITK_WASM_ITK_SOURCE_DIR", ">/dev/null", "||", + "git", "clone", + "--depth=10", + "--branch=$ITK_WASM_ITK_BRANCH", + "$ITK_WASM_ITK_REPOSITORY", + "$ITK_WASM_ITK_SOURCE_DIR"] +# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs +outputs = ["native/ITK/LICENSE"] +description = "Fetch ITK's source code" + +[feature.native.tasks.configure-itk] +cmd = '''cmake -B$ITK_WASM_ITK_BUILD_DIR -S$ITK_WASM_ITK_SOURCE_DIR -GNinja + -DCMAKE_CXX_STANDARD:STRING=20 + -DCMAKE_BUILD_TYPE:STRING=Debug + -DBUILD_EXAMPLES:BOOL=OFF + -DBUILD_TESTING:BOOL=OFF + -DBUILD_SHARED_LIBS:BOOL=OFF + -DBUILD_STATIC_LIBS:BOOL=ON + -DITK_LEGACY_REMOVE:BOOL=ON + -DITK_BUILD_DEFAULT_MODULES:BOOL=ON + -DITKGroup_IO:BOOL=ON + -DH5_HAVE_GETPWUID:BOOL=OFF + -DModule_MeshToPolyData:BOOL=ON + -DDO_NOT_BUILD_ITK_TEST_DRIVER:BOOL=ON + -DOPJ_USE_THREAD:BOOL=OFF + -DNO_FLOAT_EXCEPTIONS:BOOL=ON + -DITK_MSVC_STATIC_RUNTIME_LIBRARY=ON''' +depends-on = ["clone-itk"] +# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs +# outputs = ["$ITK_WASM_ITK_BUILD_DIR/CMakeFiles/"] +outputs = ["native/ITK-build/CMakeFiles/**"] +description = "Configure ITK" + +[feature.native.tasks.build-itk] +cmd = "cmake --build $ITK_WASM_ITK_BUILD_DIR" +depends-on = ["configure-itk"] +outputs = ["native/ITK-build/**"] +description = "Build ITK" + +[feature.native.tasks.clone-itk-wasm] +cmd = ["stat", "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR", ">/dev/null", "||", + "git", "clone", + "--depth=10", + "--branch=$ITK_WASM_WEBASSEMBLY_INTERFACE_BRANCH", + "$ITK_WASM_WEBASSEMBLY_INTERFACE_REPOSITORY", + "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR"] +# Note: pixi does not seem to reliably support activation environmental variables in task inputs / outputs +outputs = ["native/ITK-Wasm/LICENSE"] +description = "Fetch ITK's source code" + +[feature.native.tasks.configure-itk-wasm] +cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build + -S$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm + -GNinja + -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR + -DBUILD_TESTING:BOOL=OFF + -DCMAKE_CXX_STANDARD:STRING=20 + -DCMAKE_BUILD_TYPE:STRING=Debug''' +depends-on = ["build-itk", "clone-itk-wasm"] +outputs = ["native/ITK-Wasm-build/CMakeFiles/"] +description = "Configure ITK-Wasm" + +[feature.native.tasks.build-itk-wasm] +cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build" +depends-on = ["configure-itk-wasm"] +description = "Build ITK-Wasm" + +[feature.native.tasks.configure-native] +cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build -S. -GNinja + -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR + -DBUILD_TESTING:BOOL=ON + -DCMAKE_CXX_STANDARD:STRING=20 + -DCMAKE_BUILD_TYPE:STRING=Debug''' +depends-on = ["build-itk-wasm"] +description = "Configure native build" + +[feature.native.tasks.build-native] +cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" +depends-on = ["configure-native"] +description = "Build native binaries" + +[feature.native.tasks.test-native] +cmd = "ctest --test-dir $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" +depends-on = ["build-native"] +description = "Test native binaries" + diff --git a/itkcuberille/CMakeLists.txt b/wasm/CMakeLists.txt similarity index 100% rename from itkcuberille/CMakeLists.txt rename to wasm/CMakeLists.txt diff --git a/itkcuberille/README.md b/wasm/README.md similarity index 100% rename from itkcuberille/README.md rename to wasm/README.md diff --git a/itkcuberille/cuberille/CMakeLists.txt b/wasm/cuberille/CMakeLists.txt similarity index 100% rename from itkcuberille/cuberille/CMakeLists.txt rename to wasm/cuberille/CMakeLists.txt diff --git a/itkcuberille/cuberille/cuberille.cxx b/wasm/cuberille/cuberille.cxx similarity index 100% rename from itkcuberille/cuberille/cuberille.cxx rename to wasm/cuberille/cuberille.cxx diff --git a/itkcuberille/itk_wasm_env.bash b/wasm/itk_wasm_env.bash similarity index 100% rename from itkcuberille/itk_wasm_env.bash rename to wasm/itk_wasm_env.bash From 1a59539936c46d5ce0279e9ea435aec195b608a6 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Sat, 23 Nov 2024 22:13:32 -0500 Subject: [PATCH 03/16] ENH: Build wasm pipeline skeleton --- .gitignore | 7 + pixi.lock | 5136 ++++++++++++++++++++++++++++++++++ pnpm-lock.yaml | 1114 ++++++++ pyproject.toml | 84 +- wasm/cuberille/cuberille.cxx | 3 + 5 files changed, 6302 insertions(+), 42 deletions(-) create mode 100644 .gitignore create mode 100644 pixi.lock create mode 100644 pnpm-lock.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..584b5b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.pixi/ +emscripten-build/ +native/ +node_modules/ +python/ +typescript/ +wasi-build/ \ No newline at end of file diff --git a/pixi.lock b/pixi.lock new file mode 100644 index 0000000..d1f8d64 --- /dev/null +++ b/pixi.lock @@ -0,0 +1,5136 @@ +version: 5 +environments: + default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + indexes: + - https://pypi.org/simple + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-43.0.3-py312hda17c39_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.9-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pnpm-9.14.2-h6417eb3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.5.4-h0f3a69f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + - pypi: https://files.pythonhosted.org/packages/f3/8a/6388ca285140894109b17f8ae912ce7d13f69c8216af0b5c0e45adca6676/itk_core-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/11/61/cfd1cc04d2cd6c603c0abcd1f4bc0d65bff6ee9b84ebcbd828277b807887/itk_io-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/9e/3e/3757f304c704f2f0294a6b8340fcf2be244038be07da4cccf390fa678a9f/numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + linux-aarch64: + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.8.30-hcefe29a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py312hac81daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-43.0.3-py312he723553_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/dbus-1.13.6-h12b9eeb_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.6.4-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.7.1-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.82.2-hc486b8e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.9-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.44-h070dd5b_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pnpm-9.14.2-hbf5023e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.7-h5d932e8_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/secretstorage-3.3.3-py312h8025657_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/uv-0.5.4-h2016286_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h86ecc28_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312hb698573_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + - pypi: https://files.pythonhosted.org/packages/6e/5c/eeaa8d362f97ecbb832d6e88cab4d3c13afd602a01befb4d38712afacf4f/itk_core-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/d6/79/acd142f3052c408eb41f5e6934b954decb49b6129370262647cfda343208/itk_io-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/5e/da/1a429ae58b3b6c364eeec93bf044c532f2ff7b48a52e41050896cf15d5b1/numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jq-1.7.1-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh534df25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/oniguruma-6.9.9-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pnpm-9.14.2-h7c8fa8f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.5.4-h668ec48_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + - pypi: https://files.pythonhosted.org/packages/60/be/5e7d2f70bb03a8ef78ca076c22d0e3c633b330be1ca310a6dcebfefaaea3/itk_core-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/51/61/45c8709b872d28bb37c0cdbf9f1cd87772f0a0198564d7af39f0d98438f6/itk_io-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/54/4a/765b4607f0fecbb239638d610d04ec0a0ded9b4951c56dc68cef79026abf/numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl + win-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-jq-1.6-h301d43c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-oniguruma-6.9.5-h301d43c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pnpm-9.14.2-haa868a1_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/uv-0.5.4-ha08ef0e_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + - pypi: https://files.pythonhosted.org/packages/fd/35/1fbc801f430858f1054c6b64e5d8316b9a319c2eaca2b6723c98ee7a0358/itk_core-5.4.0-cp311-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1d/5d/e542c16e7647a544fd51ced24c6ca8d8c154a4f62d42bcd6bfa65b5c1a12/itk_io-5.4.0-cp311-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl + native: + channels: + - url: https://conda.anaconda.org/conda-forge/ + indexes: + - https://pypi.org/simple + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-43.0.3-py312hda17c39_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.9-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pnpm-9.14.2-h6417eb3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.5.4-h0f3a69f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + - pypi: https://files.pythonhosted.org/packages/f3/8a/6388ca285140894109b17f8ae912ce7d13f69c8216af0b5c0e45adca6676/itk_core-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/11/61/cfd1cc04d2cd6c603c0abcd1f4bc0d65bff6ee9b84ebcbd828277b807887/itk_io-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/9e/3e/3757f304c704f2f0294a6b8340fcf2be244038be07da4cccf390fa678a9f/numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + linux-aarch64: + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.8.30-hcefe29a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py312hac81daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-43.0.3-py312he723553_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/dbus-1.13.6-h12b9eeb_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.6.4-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.7.1-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.82.2-hc486b8e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.9-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.44-h070dd5b_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pnpm-9.14.2-hbf5023e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.7-h5d932e8_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/secretstorage-3.3.3-py312h8025657_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/uv-0.5.4-h2016286_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h86ecc28_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312hb698573_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + - pypi: https://files.pythonhosted.org/packages/6e/5c/eeaa8d362f97ecbb832d6e88cab4d3c13afd602a01befb4d38712afacf4f/itk_core-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/d6/79/acd142f3052c408eb41f5e6934b954decb49b6129370262647cfda343208/itk_io-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/5e/da/1a429ae58b3b6c364eeec93bf044c532f2ff7b48a52e41050896cf15d5b1/numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jq-1.7.1-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh534df25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/oniguruma-6.9.9-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pnpm-9.14.2-h7c8fa8f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.5.4-h668ec48_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + - pypi: https://files.pythonhosted.org/packages/60/be/5e7d2f70bb03a8ef78ca076c22d0e3c633b330be1ca310a6dcebfefaaea3/itk_core-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/51/61/45c8709b872d28bb37c0cdbf9f1cd87772f0a0198564d7af39f0d98438f6/itk_io-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/54/4a/765b4607f0fecbb239638d610d04ec0a0ded9b4951c56dc68cef79026abf/numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl + win-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-jq-1.6-h301d43c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-oniguruma-6.9.5-h301d43c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pnpm-9.14.2-haa868a1_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/uv-0.5.4-ha08ef0e_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + - pypi: https://files.pythonhosted.org/packages/fd/35/1fbc801f430858f1054c6b64e5d8316b9a319c2eaca2b6723c98ee7a0358/itk_core-5.4.0-cp311-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1d/5d/e542c16e7647a544fd51ced24c6ca8d8c154a4f62d42bcd6bfa65b5c1a12/itk_io-5.4.0-cp311-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl + python: + channels: + - url: https://conda.anaconda.org/conda-forge/ + indexes: + - https://pypi.org/simple + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-43.0.3-py312hda17c39_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.9-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pnpm-9.14.2-h6417eb3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.5.4-h0f3a69f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + - pypi: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/66/033e58a50fd9ec9df00a8671c74f1f3a320564c6415a4ed82a1c651654ba/greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b3/88/b6deb8736da63acd3b39855ec56c7672277a9594b77656a7a598cea49ed9/hypothesis-6.119.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/8a/6388ca285140894109b17f8ae912ce7d13f69c8216af0b5c0e45adca6676/itk_core-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/11/61/cfd1cc04d2cd6c603c0abcd1f4bc0d65bff6ee9b84ebcbd828277b807887/itk_io-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/7f/17/ddc4e1c2a1f25425696b6f5904abde09af852b7ea85e0af52f175adaf056/itkwasm-1.0b184-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/3e/3757f304c704f2f0294a6b8340fcf2be244038be07da4cccf390fa678a9f/numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b5/d8/bacfdfd89f2cb50583fa5a5b851bb940d7750a86388e125f759d8ffd9681/playwright-1.49.0-py3-none-manylinux1_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1d/0d/95993c08c721ec68892547f2117e8f9dfbcef2ca71e098533541b4a54d5f/pyee-12.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2e/4a/970d2604a72e9d44904533b5438135187aa3b08b8d6fc75e5404cd8a1dd1/pyodide_py-0.26.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a6/9f/e24389ffe2b703194c36c2763d8c1402cb6c8ac84be8fe1bd16f9315b444/pytest_pyodide-0.58.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/91/08/10cff8463b3510b78f9e3dcef6b37c542b06d71ed1240a8940ba0c75d3bc/selenium-4.26.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9b/87/ce70db7cae60e67851eb94e1a2127d4abb573d3866d2efd302ceb0d4d2a5/tblib-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/83/ec3196c360afffbc5b342ead48d1eb7393dd74fa70bca75d33905a86f211/trio-0.27.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/48/be/a9ae5f50cad5b6f85bd2574c2c923730098530096e170c1ce7452394d7aa/trio_websocket-0.11.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5e/24/806c5bd1b5e30c83cc9d182795edebfbfe24483f82fb18823b309a6656b5/wasmtime-27.0.1-py3-none-manylinux1_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl + linux-aarch64: + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.8.30-hcefe29a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py312hac81daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-43.0.3-py312he723553_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/dbus-1.13.6-h12b9eeb_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.6.4-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.7.1-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.82.2-hc486b8e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.9-h31becfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.44-h070dd5b_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pnpm-9.14.2-hbf5023e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.7-h5d932e8_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/secretstorage-3.3.3-py312h8025657_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/uv-0.5.4-h2016286_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h86ecc28_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312hb698573_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + - pypi: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/d4/c8c04958870f482459ab5956c2942c4ec35cac7fe245527f1039837c17a9/greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/b3/88/b6deb8736da63acd3b39855ec56c7672277a9594b77656a7a598cea49ed9/hypothesis-6.119.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/5c/eeaa8d362f97ecbb832d6e88cab4d3c13afd602a01befb4d38712afacf4f/itk_core-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/d6/79/acd142f3052c408eb41f5e6934b954decb49b6129370262647cfda343208/itk_io-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/7f/17/ddc4e1c2a1f25425696b6f5904abde09af852b7ea85e0af52f175adaf056/itkwasm-1.0b184-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5e/da/1a429ae58b3b6c364eeec93bf044c532f2ff7b48a52e41050896cf15d5b1/numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/58/99/8570be7aca5f9b3ad5d836c33f11fe683fff2364fcfd076b6d0b5335966d/playwright-1.49.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/1d/0d/95993c08c721ec68892547f2117e8f9dfbcef2ca71e098533541b4a54d5f/pyee-12.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2e/4a/970d2604a72e9d44904533b5438135187aa3b08b8d6fc75e5404cd8a1dd1/pyodide_py-0.26.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a6/9f/e24389ffe2b703194c36c2763d8c1402cb6c8ac84be8fe1bd16f9315b444/pytest_pyodide-0.58.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/91/08/10cff8463b3510b78f9e3dcef6b37c542b06d71ed1240a8940ba0c75d3bc/selenium-4.26.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9b/87/ce70db7cae60e67851eb94e1a2127d4abb573d3866d2efd302ceb0d4d2a5/tblib-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/83/ec3196c360afffbc5b342ead48d1eb7393dd74fa70bca75d33905a86f211/trio-0.27.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/48/be/a9ae5f50cad5b6f85bd2574c2c923730098530096e170c1ce7452394d7aa/trio_websocket-0.11.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3a/57/cd877b4797be239b4433f89a5a85c7bf2c5319dd91c7777b1867bebb664e/wasmtime-27.0.1-py3-none-manylinux2014_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jq-1.7.1-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh534df25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/oniguruma-6.9.9-h93a5062_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pnpm-9.14.2-h7c8fa8f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.5.4-h668ec48_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + - pypi: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7d/ec/bad1ac26764d26aa1353216fcbfa4670050f66d445448aafa227f8b16e80/greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl + - pypi: https://files.pythonhosted.org/packages/b3/88/b6deb8736da63acd3b39855ec56c7672277a9594b77656a7a598cea49ed9/hypothesis-6.119.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/be/5e7d2f70bb03a8ef78ca076c22d0e3c633b330be1ca310a6dcebfefaaea3/itk_core-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/51/61/45c8709b872d28bb37c0cdbf9f1cd87772f0a0198564d7af39f0d98438f6/itk_io-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/7f/17/ddc4e1c2a1f25425696b6f5904abde09af852b7ea85e0af52f175adaf056/itkwasm-1.0b184-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/54/4a/765b4607f0fecbb239638d610d04ec0a0ded9b4951c56dc68cef79026abf/numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e2/e5/fd4f1bdfa0dab6c929a73de9f181d3e00b97cd56db9d9a49e80ac30cee38/playwright-1.49.0-py3-none-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/1d/0d/95993c08c721ec68892547f2117e8f9dfbcef2ca71e098533541b4a54d5f/pyee-12.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2e/4a/970d2604a72e9d44904533b5438135187aa3b08b8d6fc75e5404cd8a1dd1/pyodide_py-0.26.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a6/9f/e24389ffe2b703194c36c2763d8c1402cb6c8ac84be8fe1bd16f9315b444/pytest_pyodide-0.58.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/91/08/10cff8463b3510b78f9e3dcef6b37c542b06d71ed1240a8940ba0c75d3bc/selenium-4.26.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9b/87/ce70db7cae60e67851eb94e1a2127d4abb573d3866d2efd302ceb0d4d2a5/tblib-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/83/ec3196c360afffbc5b342ead48d1eb7393dd74fa70bca75d33905a86f211/trio-0.27.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/48/be/a9ae5f50cad5b6f85bd2574c2c923730098530096e170c1ce7452394d7aa/trio_websocket-0.11.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/d8/38d1af31c1787e09642354c81215920a5bf59722a6786ed7e9622fd1f033/wasmtime-27.0.1-py3-none-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl + win-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-jq-1.6-h301d43c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/m2w64-oniguruma-6.9.5-h301d43c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pnpm-9.14.2-haa868a1_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/uv-0.5.4-ha08ef0e_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + - pypi: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/43/21/a5d9df1d21514883333fc86584c07c2b49ba7c602e670b174bd73cfc9c7f/greenlet-3.1.1-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b3/88/b6deb8736da63acd3b39855ec56c7672277a9594b77656a7a598cea49ed9/hypothesis-6.119.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/35/1fbc801f430858f1054c6b64e5d8316b9a319c2eaca2b6723c98ee7a0358/itk_core-5.4.0-cp311-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1d/5d/e542c16e7647a544fd51ced24c6ca8d8c154a4f62d42bcd6bfa65b5c1a12/itk_io-5.4.0-cp311-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7f/17/ddc4e1c2a1f25425696b6f5904abde09af852b7ea85e0af52f175adaf056/itkwasm-1.0b184-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/50/cb04aadb200dc50c2013220dc10370a0c4024853122872c13071b4170440/playwright-1.49.0-py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1d/0d/95993c08c721ec68892547f2117e8f9dfbcef2ca71e098533541b4a54d5f/pyee-12.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2e/4a/970d2604a72e9d44904533b5438135187aa3b08b8d6fc75e5404cd8a1dd1/pyodide_py-0.26.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a6/9f/e24389ffe2b703194c36c2763d8c1402cb6c8ac84be8fe1bd16f9315b444/pytest_pyodide-0.58.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/91/08/10cff8463b3510b78f9e3dcef6b37c542b06d71ed1240a8940ba0c75d3bc/selenium-4.26.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9b/87/ce70db7cae60e67851eb94e1a2127d4abb573d3866d2efd302ceb0d4d2a5/tblib-3.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3c/83/ec3196c360afffbc5b342ead48d1eb7393dd74fa70bca75d33905a86f211/trio-0.27.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/48/be/a9ae5f50cad5b6f85bd2574c2c923730098530096e170c1ce7452394d7aa/trio_websocket-0.11.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/14/6f/f6b99d9ab1511398686e00d2a26371d99a7949531514379d731b3b7e6309/wasmtime-27.0.1-py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl +packages: +- kind: conda + name: _libgcc_mutex + version: '0.1' + build: conda_forge + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + md5: d7c89558ba9fa0495403155b64376d81 + license: None + purls: [] + size: 2562 + timestamp: 1578324546067 +- kind: conda + name: _openmp_mutex + version: '4.5' + build: 2_gnu + build_number: 16 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + md5: 73aaf86a425cc6e73fcf236a5a46396d + depends: + - _libgcc_mutex 0.1 conda_forge + - libgomp >=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 23621 + timestamp: 1650670423406 +- kind: conda + name: _openmp_mutex + version: '4.5' + build: 2_gnu + build_number: 16 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 + sha256: 3702bef2f0a4d38bd8288bbe54aace623602a1343c2cfbefd3fa188e015bebf0 + md5: 6168d71addc746e8f2b8d57dfd2edcea + depends: + - libgomp >=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 23712 + timestamp: 1650670790230 +- kind: conda + name: anyio + version: 4.6.2.post1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.6.2.post1-pyhd8ed1ab_0.conda + sha256: 4b54b7ce79d818e3cce54ae4d552dba51b7afac160ceecdefd04b3917a37c502 + md5: 688697ec5e9588bdded167d19577625b + depends: + - exceptiongroup >=1.0.2 + - idna >=2.8 + - python >=3.9 + - sniffio >=1.1 + - typing_extensions >=4.1 + constrains: + - uvloop >=0.21.0b1 + - trio >=0.26.1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/anyio?source=hash-mapping + size: 109864 + timestamp: 1728935803440 +- kind: pypi + name: attrs + version: 24.2.0 + url: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl + sha256: 81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2 + requires_dist: + - importlib-metadata ; python_full_version < '3.8' + - cloudpickle ; platform_python_implementation == 'CPython' and extra == 'benchmark' + - hypothesis ; extra == 'benchmark' + - mypy>=1.11.1 ; python_full_version >= '3.9' and platform_python_implementation == 'CPython' and extra == 'benchmark' + - pympler ; extra == 'benchmark' + - pytest-codspeed ; extra == 'benchmark' + - pytest-mypy-plugins ; python_full_version >= '3.9' and python_full_version < '3.13' and platform_python_implementation == 'CPython' and extra == 'benchmark' + - pytest-xdist[psutil] ; extra == 'benchmark' + - pytest>=4.3.0 ; extra == 'benchmark' + - cloudpickle ; platform_python_implementation == 'CPython' and extra == 'cov' + - coverage[toml]>=5.3 ; extra == 'cov' + - hypothesis ; extra == 'cov' + - mypy>=1.11.1 ; python_full_version >= '3.9' and platform_python_implementation == 'CPython' and extra == 'cov' + - pympler ; extra == 'cov' + - pytest-mypy-plugins ; python_full_version >= '3.9' and python_full_version < '3.13' and platform_python_implementation == 'CPython' and extra == 'cov' + - pytest-xdist[psutil] ; extra == 'cov' + - pytest>=4.3.0 ; extra == 'cov' + - cloudpickle ; platform_python_implementation == 'CPython' and extra == 'dev' + - hypothesis ; extra == 'dev' + - mypy>=1.11.1 ; python_full_version >= '3.9' and platform_python_implementation == 'CPython' and extra == 'dev' + - pre-commit ; extra == 'dev' + - pympler ; extra == 'dev' + - pytest-mypy-plugins ; python_full_version >= '3.9' and python_full_version < '3.13' and platform_python_implementation == 'CPython' and extra == 'dev' + - pytest-xdist[psutil] ; extra == 'dev' + - pytest>=4.3.0 ; extra == 'dev' + - cogapp ; extra == 'docs' + - furo ; extra == 'docs' + - myst-parser ; extra == 'docs' + - sphinx ; extra == 'docs' + - sphinx-notfound-page ; extra == 'docs' + - sphinxcontrib-towncrier ; extra == 'docs' + - towncrier<24.7 ; extra == 'docs' + - cloudpickle ; platform_python_implementation == 'CPython' and extra == 'tests' + - hypothesis ; extra == 'tests' + - mypy>=1.11.1 ; python_full_version >= '3.9' and platform_python_implementation == 'CPython' and extra == 'tests' + - pympler ; extra == 'tests' + - pytest-mypy-plugins ; python_full_version >= '3.9' and python_full_version < '3.13' and platform_python_implementation == 'CPython' and extra == 'tests' + - pytest-xdist[psutil] ; extra == 'tests' + - pytest>=4.3.0 ; extra == 'tests' + - mypy>=1.11.1 ; python_full_version >= '3.9' and platform_python_implementation == 'CPython' and extra == 'tests-mypy' + - pytest-mypy-plugins ; python_full_version >= '3.9' and python_full_version < '3.13' and platform_python_implementation == 'CPython' and extra == 'tests-mypy' + requires_python: '>=3.7' +- kind: conda + name: backports + version: '1.0' + build: pyhd8ed1ab_4 + build_number: 4 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_4.conda + sha256: 31b51537ce7d2ba8b5b3d0095f1813711884304ac1701bc55938ca75f6c82e19 + md5: 67bdebbc334513034826e9b63f769d4c + depends: + - python >=3 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6989 + timestamp: 1722295637981 +- kind: conda + name: backports.tarfile + version: 1.2.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhd8ed1ab_0.conda + sha256: 703cc1cb72e395272ce043ae9e2bad6184eeb2371a20a75cb502a5513592d2eb + md5: 5a4c7e2a240a0092a9571d084fe8bc86 + depends: + - backports + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/backports-tarfile?source=hash-mapping + size: 32752 + timestamp: 1730879020495 +- kind: conda + name: bzip2 + version: 1.0.8 + build: h2466b09_7 + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda + sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b + md5: 276e7ffe9ffe39688abc665ef0f45596 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 54927 + timestamp: 1720974860185 +- kind: conda + name: bzip2 + version: 1.0.8 + build: h4bc722e_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 252783 + timestamp: 1720974456583 +- kind: conda + name: bzip2 + version: 1.0.8 + build: h68df207_7 + build_number: 7 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h68df207_7.conda + sha256: 2258b0b33e1cb3a9852d47557984abb6e7ea58e3d7f92706ec1f8e879290c4cb + md5: 56398c28220513b9ea13d7b450acfb20 + depends: + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 189884 + timestamp: 1720974504976 +- kind: conda + name: bzip2 + version: 1.0.8 + build: h99b78c6_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + sha256: adfa71f158cbd872a36394c56c3568e6034aa55c623634b37a4836bd036e6b91 + md5: fc6948412dbbbe9a4c9ddbbcfe0a79ab + depends: + - __osx >=11.0 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 122909 + timestamp: 1720974522888 +- kind: conda + name: ca-certificates + version: 2024.8.30 + build: h56e8100_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.8.30-h56e8100_0.conda + sha256: 0fcac3a7ffcc556649e034a1802aedf795e64227eaa7194d207b01eaf26454c4 + md5: 4c4fd67c18619be5aa65dc5b6c72e490 + license: ISC + purls: [] + size: 158773 + timestamp: 1725019107649 +- kind: conda + name: ca-certificates + version: 2024.8.30 + build: hbcca054_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + sha256: afee721baa6d988e27fef1832f68d6f32ac8cc99cdf6015732224c2841a09cea + md5: c27d1c142233b5bc9ca570c6e2e0c244 + license: ISC + purls: [] + size: 159003 + timestamp: 1725018903918 +- kind: conda + name: ca-certificates + version: 2024.8.30 + build: hcefe29a_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.8.30-hcefe29a_0.conda + sha256: 2a2d827bee3775a85f0f1b2f2089291475c4416336d1b3a8cbce2964db547af8 + md5: 70e57e8f59d2c98f86b49c69e5074be5 + license: ISC + purls: [] + size: 159106 + timestamp: 1725020043153 +- kind: conda + name: ca-certificates + version: 2024.8.30 + build: hf0a4a13_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda + sha256: 2db1733f4b644575dbbdd7994a8f338e6ef937f5ebdb74acd557e9dda0211709 + md5: 40dec13fd8348dbe303e57be74bd3d35 + license: ISC + purls: [] + size: 158482 + timestamp: 1725019034582 +- kind: conda + name: certifi + version: 2024.8.30 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.8.30-pyhd8ed1ab_0.conda + sha256: 7020770df338c45ac6b560185956c32f0a5abf4b76179c037f115fc7d687819f + md5: 12f7d00853807b0531775e9be891cb11 + depends: + - python >=3.7 + license: ISC + purls: + - pkg:pypi/certifi?source=hash-mapping + size: 163752 + timestamp: 1725278204397 +- kind: conda + name: cffi + version: 1.17.1 + build: py312h06ac9bb_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457 + md5: a861504bbea4161a9170b85d4d2be840 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 294403 + timestamp: 1725560714366 +- kind: conda + name: cffi + version: 1.17.1 + build: py312h0fad829_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + sha256: 8d91a0d01358b5c3f20297c6c536c5d24ccd3e0c2ddd37f9d0593d0f0070226f + md5: 19a5456f72f505881ba493979777b24e + depends: + - __osx >=11.0 + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 281206 + timestamp: 1725560813378 +- kind: conda + name: cffi + version: 1.17.1 + build: py312h4389bb4_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda + sha256: ac007bf5fd56d13e16d95eea036433012f2e079dc015505c8a79efebbad1fcbc + md5: 08310c1a22ef957d537e547f8d484f92 + depends: + - pycparser + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 288142 + timestamp: 1725560896359 +- kind: conda + name: cffi + version: 1.17.1 + build: py312hac81daf_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.17.1-py312hac81daf_0.conda + sha256: 1162e3ca039e7ca7c0e78f0a020ed1bde968096841b663e3f393c966eb82f0f0 + md5: 1a256e5581b1099e9295cb84d53db3ea + depends: + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 312892 + timestamp: 1725561779888 +- kind: conda + name: click + version: 8.1.7 + build: unix_pyh707e725_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda + sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec + md5: f3ad426304898027fc619827ff428eca + depends: + - __unix + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 84437 + timestamp: 1692311973840 +- kind: conda + name: click + version: 8.1.7 + build: win_pyh7428d3b_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-win_pyh7428d3b_0.conda + sha256: 90236b113b9a20041736e80b80ee965167f9aac0468315c55e2bad902d673fb0 + md5: 3549ecbceb6cd77b91a105511b7d0786 + depends: + - __win + - colorama + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 85051 + timestamp: 1692312207348 +- kind: conda + name: colorama + version: 0.4.6 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + md5: 3faab06a954c2a04039983f2c4a50d99 + depends: + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/colorama?source=hash-mapping + size: 25170 + timestamp: 1666700778190 +- kind: conda + name: cryptography + version: 43.0.3 + build: py312hda17c39_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-43.0.3-py312hda17c39_0.conda + sha256: ba9e5aced2e7dc0bbc48f60bf38f514839424a01975fb2aed30e9246c2f82c7c + md5: 2abada8c216dd6e32514535a3fa245d4 + depends: + - __glibc >=2.17,<3.0.a0 + - cffi >=1.12 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 + license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT + license_family: BSD + purls: + - pkg:pypi/cryptography?source=hash-mapping + size: 1488388 + timestamp: 1729286882127 +- kind: conda + name: cryptography + version: 43.0.3 + build: py312he723553_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-43.0.3-py312he723553_0.conda + sha256: bd9cc8410bf31ac8b90d63dda92d5810af16c3841ca6dd09be9b7f9c5c7688ba + md5: bfacbf2e4560c7d6416d40f573961918 + depends: + - cffi >=1.12 + - libgcc >=13 + - openssl >=3.3.2,<4.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 + license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT + license_family: BSD + purls: + - pkg:pypi/cryptography?source=hash-mapping + size: 1480456 + timestamp: 1729287055014 +- kind: conda + name: dbus + version: 1.13.6 + build: h12b9eeb_3 + build_number: 3 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/dbus-1.13.6-h12b9eeb_3.tar.bz2 + sha256: 5fe76bdf27a142cfb9da0fb3197c562e528d2622b573765bee5c9904cf5e6b6b + md5: f3d63805602166bac09386741e00935e + depends: + - expat >=2.4.2,<3.0a0 + - libgcc-ng >=9.4.0 + - libglib >=2.70.2,<3.0a0 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 672759 + timestamp: 1640113663539 +- kind: conda + name: dbus + version: 1.13.6 + build: h5008d03_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5 + md5: ecfff944ba3960ecb334b9a2663d708d + depends: + - expat >=2.4.2,<3.0a0 + - libgcc-ng >=9.4.0 + - libglib >=2.70.2,<3.0a0 + license: GPL-2.0-or-later + license_family: GPL + purls: [] + size: 618596 + timestamp: 1640112124844 +- kind: conda + name: distlib + version: 0.3.9 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_0.conda + sha256: 300b2e714f59403df0560174f5ef6c19db8b4a3b74a7244862cf771f07dee8fb + md5: fe521c1608280cc2803ebd26dc252212 + depends: + - python 2.7|>=3.6 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/distlib?source=hash-mapping + size: 276214 + timestamp: 1728557312342 +- kind: conda + name: editables + version: '0.5' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_0.conda + sha256: de160a7494e7bc72360eea6a29cbddf194d0a79f45ff417a4de20e6858cf79a9 + md5: 9873878e2a069bc358b69e9a29c1ecd5 + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/editables?source=hash-mapping + size: 10988 + timestamp: 1705857085102 +- kind: conda + name: exceptiongroup + version: 1.2.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_0.conda + sha256: e0edd30c4b7144406bb4da975e6bb97d6bc9c0e999aa4efe66ae108cada5d5b5 + md5: d02ae936e42063ca46af6cdad2dbd1e0 + depends: + - python >=3.7 + license: MIT and PSF-2.0 + purls: + - pkg:pypi/exceptiongroup?source=hash-mapping + size: 20418 + timestamp: 1720869435725 +- kind: conda + name: expat + version: 2.6.4 + build: h5888daf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda + sha256: 1848c7db9e264e3b8036ee133d570dd880422983cd20dd9585a505289606d276 + md5: 1d6afef758879ef5ee78127eb4cd2c4a + depends: + - __glibc >=2.17,<3.0.a0 + - libexpat 2.6.4 h5888daf_0 + - libgcc >=13 + license: MIT + license_family: MIT + purls: [] + size: 138145 + timestamp: 1730967050578 +- kind: conda + name: expat + version: 2.6.4 + build: h5ad3122_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.6.4-h5ad3122_0.conda + sha256: 13905ad49c2f43776bac0e464ffd3c9ec10ef35cc7dd7e187af6f66f843fa29a + md5: e8f1d587055376ea2419cc78696abd0b + depends: + - libexpat 2.6.4 h5ad3122_0 + - libgcc >=13 + license: MIT + license_family: MIT + purls: [] + size: 130354 + timestamp: 1730967212801 +- kind: conda + name: filelock + version: 3.16.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_0.conda + sha256: 1da766da9dba05091af87977922fe60dc7464091a9ccffb3765d403189d39be4 + md5: 916f8ec5dd4128cd5f207a3c4c07b2c6 + depends: + - python >=3.7 + license: Unlicense + purls: + - pkg:pypi/filelock?source=hash-mapping + size: 17357 + timestamp: 1726613593584 +- kind: pypi + name: greenlet + version: 3.1.1 + url: https://files.pythonhosted.org/packages/43/21/a5d9df1d21514883333fc86584c07c2b49ba7c602e670b174bd73cfc9c7f/greenlet-3.1.1-cp312-cp312-win_amd64.whl + sha256: 7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01 + requires_dist: + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - objgraph ; extra == 'test' + - psutil ; extra == 'test' + requires_python: '>=3.7' +- kind: pypi + name: greenlet + version: 3.1.1 + url: https://files.pythonhosted.org/packages/66/d4/c8c04958870f482459ab5956c2942c4ec35cac7fe245527f1039837c17a9/greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + sha256: f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79 + requires_dist: + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - objgraph ; extra == 'test' + - psutil ; extra == 'test' + requires_python: '>=3.7' +- kind: pypi + name: greenlet + version: 3.1.1 + url: https://files.pythonhosted.org/packages/7d/ec/bad1ac26764d26aa1353216fcbfa4670050f66d445448aafa227f8b16e80/greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl + sha256: 4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d + requires_dist: + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - objgraph ; extra == 'test' + - psutil ; extra == 'test' + requires_python: '>=3.7' +- kind: pypi + name: greenlet + version: 3.1.1 + url: https://files.pythonhosted.org/packages/f1/66/033e58a50fd9ec9df00a8671c74f1f3a320564c6415a4ed82a1c651654ba/greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl + sha256: 1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9 + requires_dist: + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - objgraph ; extra == 'test' + - psutil ; extra == 'test' + requires_python: '>=3.7' +- kind: conda + name: h11 + version: 0.14.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2 + sha256: 817d2c77d53afe3f3d9cf7f6eb8745cdd8ea76c7adaa9d7ced75c455a2c2c085 + md5: b21ed0883505ba1910994f1df031a428 + depends: + - python >=3 + - typing_extensions + license: MIT + license_family: MIT + purls: + - pkg:pypi/h11?source=hash-mapping + size: 48251 + timestamp: 1664132995560 +- kind: conda + name: h2 + version: 4.1.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2 + sha256: bfc6a23849953647f4e255c782e74a0e18fe16f7e25c7bb0bc57b83bb6762c7a + md5: b748fbf7060927a6e82df7cb5ee8f097 + depends: + - hpack >=4.0,<5 + - hyperframe >=6.0,<7 + - python >=3.6.1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/h2?source=hash-mapping + size: 46754 + timestamp: 1634280590080 +- kind: conda + name: hatch + version: 1.13.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hatch-1.13.0-pyhd8ed1ab_0.conda + sha256: 675b0304b129a4dbc39b8e6f337cea51adebef20508a656f43b6e6b43d9cf458 + md5: b8a6437f94d29aef00decdbe1174be27 + depends: + - click >=8.0.6 + - hatchling >=1.24.2 + - httpx >=0.22.0 + - hyperlink >=21.0.0 + - keyring >=23.5.0 + - packaging >=23.2 + - pexpect >=4.8,<5 + - platformdirs >=2.5.0 + - python >=3.8 + - rich >=11.2.0 + - shellingham >=1.4.0 + - tomli-w >=1.0 + - tomlkit >=0.11.1 + - userpath >=1.7,<2 + - uv >=0.1.35 + - virtualenv >=20.26.1 + - zstandard <1.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hatch?source=hash-mapping + size: 177173 + timestamp: 1728879212263 +- kind: conda + name: hatchling + version: 1.26.3 + build: pypyhff2d567_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.26.3-pypyhff2d567_0.conda + sha256: bcd1e3b68ed11c11c974c890341ec03784354c68f6e2fcc518eb3ce8e90d452a + md5: 31c57e2a780803fd44aba9b726398058 + depends: + - editables >=0.3 + - importlib-metadata + - packaging >=21.3 + - pathspec >=0.10.1 + - pluggy >=1.0.0 + - python >=3.7 + - python >=3.8 + - tomli >=1.2.2 + - trove-classifiers + license: MIT + license_family: MIT + purls: + - pkg:pypi/hatchling?source=hash-mapping + size: 56816 + timestamp: 1731469419003 +- kind: conda + name: hpack + version: 4.0.0 + build: pyh9f0ad1d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2 + sha256: 5dec948932c4f740674b1afb551223ada0c55103f4c7bf86a110454da3d27cb8 + md5: 914d6646c4dbb1fd3ff539830a12fd71 + depends: + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/hpack?source=hash-mapping + size: 25341 + timestamp: 1598856368685 +- kind: conda + name: httpcore + version: 1.0.7 + build: pyh29332c3_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + sha256: c84d012a245171f3ed666a8bf9319580c269b7843ffa79f26468842da3abd5df + md5: 2ca8e6dbc86525c8b95e3c0ffa26442e + depends: + - python >=3.8 + - h11 >=0.13,<0.15 + - h2 >=3,<5 + - sniffio 1.* + - anyio >=3.0,<5.0 + - certifi + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 48959 + timestamp: 1731707562362 +- kind: conda + name: httpx + version: 0.27.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.27.2-pyhd8ed1ab_0.conda + sha256: 1a33f160548bf447e15c0273899d27e4473f1d5b7ca1441232ec2d9d07c56d03 + md5: 7e9ac3faeebdbd7b53b462c41891e7f7 + depends: + - anyio + - certifi + - httpcore 1.* + - idna + - python >=3.8 + - sniffio + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/httpx?source=hash-mapping + size: 65085 + timestamp: 1724778453275 +- kind: conda + name: hyperframe + version: 6.0.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2 + sha256: e374a9d0f53149328134a8d86f5d72bca4c6dcebed3c0ecfa968c02996289330 + md5: 9f765cbfab6870c8435b9eefecd7a1f4 + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hyperframe?source=hash-mapping + size: 14646 + timestamp: 1619110249723 +- kind: conda + name: hyperlink + version: 21.0.0 + build: pyhd3deb0d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hyperlink-21.0.0-pyhd3deb0d_0.tar.bz2 + sha256: 026cb82ada41be9ee2836a2ace526e85c4603e77617887c41c6e62c9bde798b3 + md5: 1303beb57b40f8f4ff6fb1bb23bf0553 + depends: + - idna >=2.6 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/hyperlink?source=hash-mapping + size: 72732 + timestamp: 1610092261086 +- kind: pypi + name: hypothesis + version: 6.119.4 + url: https://files.pythonhosted.org/packages/b3/88/b6deb8736da63acd3b39855ec56c7672277a9594b77656a7a598cea49ed9/hypothesis-6.119.4-py3-none-any.whl + sha256: 333958da7855048850c3d2b6a929d44a3c89ca9eafcfddcacc3570140915eba5 + requires_dist: + - attrs>=22.2.0 + - sortedcontainers>=2.1.0,<3.0.0 + - exceptiongroup>=1.0.0 ; python_full_version < '3.11' + - black>=19.10b0 ; extra == 'all' + - click>=7.0 ; extra == 'all' + - crosshair-tool>=0.0.77 ; extra == 'all' + - django>=4.2 ; extra == 'all' + - dpcontracts>=0.4 ; extra == 'all' + - hypothesis-crosshair>=0.0.18 ; extra == 'all' + - lark>=0.10.1 ; extra == 'all' + - libcst>=0.3.16 ; extra == 'all' + - numpy>=1.19.3 ; extra == 'all' + - pandas>=1.1 ; extra == 'all' + - pytest>=4.6 ; extra == 'all' + - python-dateutil>=1.4 ; extra == 'all' + - pytz>=2014.1 ; extra == 'all' + - redis>=3.0.0 ; extra == 'all' + - rich>=9.0.0 ; extra == 'all' + - tzdata>=2024.2 ; (sys_platform == 'emscripten' and extra == 'all') or (sys_platform == 'win32' and extra == 'all') + - click>=7.0 ; extra == 'cli' + - black>=19.10b0 ; extra == 'cli' + - rich>=9.0.0 ; extra == 'cli' + - libcst>=0.3.16 ; extra == 'codemods' + - hypothesis-crosshair>=0.0.18 ; extra == 'crosshair' + - crosshair-tool>=0.0.77 ; extra == 'crosshair' + - python-dateutil>=1.4 ; extra == 'dateutil' + - django>=4.2 ; extra == 'django' + - dpcontracts>=0.4 ; extra == 'dpcontracts' + - black>=19.10b0 ; extra == 'ghostwriter' + - lark>=0.10.1 ; extra == 'lark' + - numpy>=1.19.3 ; extra == 'numpy' + - pandas>=1.1 ; extra == 'pandas' + - pytest>=4.6 ; extra == 'pytest' + - pytz>=2014.1 ; extra == 'pytz' + - redis>=3.0.0 ; extra == 'redis' + - tzdata>=2024.2 ; (sys_platform == 'emscripten' and extra == 'zoneinfo') or (sys_platform == 'win32' and extra == 'zoneinfo') + requires_python: '>=3.9' +- kind: conda + name: icu + version: '75.1' + build: he02047a_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e + md5: 8b189310083baabfb622af68fd9d3ae3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 12129203 + timestamp: 1720853576813 +- kind: conda + name: icu + version: '75.1' + build: hf9b3779_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda + sha256: 813298f2e54ef087dbfc9cc2e56e08ded41de65cff34c639cc8ba4e27e4540c9 + md5: 268203e8b983fddb6412b36f2024e75c + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 12282786 + timestamp: 1720853454991 +- kind: conda + name: icu + version: '75.1' + build: hfee45f7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + sha256: 9ba12c93406f3df5ab0a43db8a4b4ef67a5871dfd401010fbe29b218b2cbe620 + md5: 5eb22c1d7b3fc4abb50d92d621583137 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 11857802 + timestamp: 1720853997952 +- kind: conda + name: idna + version: '3.10' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_0.conda + sha256: 8c57fd68e6be5eecba4462e983aed7e85761a519aab80e834bbd7794d4b545b2 + md5: 7ba2ede0e7c795ff95088daf0dc59753 + depends: + - python >=3.6 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/idna?source=hash-mapping + size: 49837 + timestamp: 1726459583613 +- kind: conda + name: importlib-metadata + version: 8.5.0 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda + sha256: 7194700ce1a5ad2621fd68e894dd8c1ceaff9a38723e6e0e5298fdef13017b1c + md5: 54198435fce4d64d8a89af22573012a8 + depends: + - python >=3.8 + - zipp >=0.5 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-metadata?source=hash-mapping + size: 28646 + timestamp: 1726082927916 +- kind: conda + name: importlib_resources + version: 6.4.5 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_0.conda + sha256: 2cb9db3e40033c3df72d3defc678a012840378fd55a67e4351363d4b321a0dc1 + md5: c808991d29b9838fb4d96ce8267ec9ec + depends: + - python >=3.8 + - zipp >=3.1.0 + constrains: + - importlib-resources >=6.4.5,<6.4.6.0a0 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-resources?source=hash-mapping + size: 32725 + timestamp: 1725921462405 +- kind: conda + name: iniconfig + version: 2.0.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + md5: f800d2da156d08e289b14e87e43c1ae5 + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/iniconfig?source=hash-mapping + size: 11101 + timestamp: 1673103208955 +- kind: pypi + name: itk-core + version: 5.4.0 + url: https://files.pythonhosted.org/packages/60/be/5e7d2f70bb03a8ef78ca076c22d0e3c633b330be1ca310a6dcebfefaaea3/itk_core-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + sha256: 21c7b5c451f73c8073eb3b5dd85f7c654399cdc25dd51669bfbbafa611aa4649 + requires_dist: + - numpy + requires_python: '>=3.8' +- kind: pypi + name: itk-core + version: 5.4.0 + url: https://files.pythonhosted.org/packages/6e/5c/eeaa8d362f97ecbb832d6e88cab4d3c13afd602a01befb4d38712afacf4f/itk_core-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + sha256: b6af0e82dae0efa95ad87f36ccd55a955383b34a6bd8a036894fb96a3933615a + requires_dist: + - numpy + requires_python: '>=3.8' +- kind: pypi + name: itk-core + version: 5.4.0 + url: https://files.pythonhosted.org/packages/f3/8a/6388ca285140894109b17f8ae912ce7d13f69c8216af0b5c0e45adca6676/itk_core-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + sha256: 8ca83de9c269e6b20648f2391aa2bf96903b8ed645c3d8cd40d90b939dda439e + requires_dist: + - numpy + requires_python: '>=3.8' +- kind: pypi + name: itk-core + version: 5.4.0 + url: https://files.pythonhosted.org/packages/fd/35/1fbc801f430858f1054c6b64e5d8316b9a319c2eaca2b6723c98ee7a0358/itk_core-5.4.0-cp311-abi3-win_amd64.whl + sha256: 6affe6986927fd176c176f5464d9ea9e737b85d8745f5c4129da910fd16235cb + requires_dist: + - numpy + requires_python: '>=3.8' +- kind: pypi + name: itk-io + version: 5.4.0 + url: https://files.pythonhosted.org/packages/11/61/cfd1cc04d2cd6c603c0abcd1f4bc0d65bff6ee9b84ebcbd828277b807887/itk_io-5.4.0-cp311-abi3-manylinux_2_28_x86_64.whl + sha256: 393d711f9edb248aed402e7fc9613045536dbd6b45fc8db638a28d0a409fe974 + requires_dist: + - itk-core==5.4.0 + requires_python: '>=3.8' +- kind: pypi + name: itk-io + version: 5.4.0 + url: https://files.pythonhosted.org/packages/1d/5d/e542c16e7647a544fd51ced24c6ca8d8c154a4f62d42bcd6bfa65b5c1a12/itk_io-5.4.0-cp311-abi3-win_amd64.whl + sha256: 8c0eacb3aa100e4b369a673bb0e65c3c48c411bc4b716069bce4cee8c3f9e1cc + requires_dist: + - itk-core==5.4.0 + requires_python: '>=3.8' +- kind: pypi + name: itk-io + version: 5.4.0 + url: https://files.pythonhosted.org/packages/51/61/45c8709b872d28bb37c0cdbf9f1cd87772f0a0198564d7af39f0d98438f6/itk_io-5.4.0-cp311-abi3-macosx_11_0_arm64.whl + sha256: d969a2ab2775b2ace36edee274ffe4839b21c7ccd634844082028f9f373dfedb + requires_dist: + - itk-core==5.4.0 + requires_python: '>=3.8' +- kind: pypi + name: itk-io + version: 5.4.0 + url: https://files.pythonhosted.org/packages/d6/79/acd142f3052c408eb41f5e6934b954decb49b6129370262647cfda343208/itk_io-5.4.0-cp311-abi3-manylinux_2_28_aarch64.whl + sha256: 11a34ac45b960aa883e1758ead15c5394814964573c93d736fc04f021c18cd22 + requires_dist: + - itk-core==5.4.0 + requires_python: '>=3.8' +- kind: pypi + name: itkwasm + version: 1.0b184 + url: https://files.pythonhosted.org/packages/7f/17/ddc4e1c2a1f25425696b6f5904abde09af852b7ea85e0af52f175adaf056/itkwasm-1.0b184-py3-none-any.whl + sha256: 41e2c1102fa6fad2559edfc43c864acbb1bcbe1087ffd6519a8f13f770a6bc61 + requires_dist: + - importlib-metadata ; python_full_version < '3.10' + - numpy + - platformdirs ; sys_platform != 'emscripten' + - typing-extensions + - wasmtime>=27.0.1 ; sys_platform != 'emscripten' + requires_python: '>=3.9' +- kind: conda + name: jaraco.classes + version: 3.4.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhd8ed1ab_1.conda + sha256: 538b1c6df537a36c63fd0ed83cb1c1c25b07d8d3b5e401991fdaff261a4b5b4d + md5: 7b756504d362cbad9b73a50a5455cafd + depends: + - more-itertools + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jaraco-classes?source=hash-mapping + size: 12223 + timestamp: 1713939433204 +- kind: conda + name: jaraco.context + version: 5.3.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-5.3.0-pyhd8ed1ab_1.conda + sha256: 9e2aeacb1aed3ab4fc5883a357e8a874e12f687af300f8708ec12de2995e17d2 + md5: 72d7ad2dcd0f37eccb2ee35a1c8f6aaa + depends: + - backports.tarfile + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jaraco-context?source=hash-mapping + size: 12456 + timestamp: 1714372284922 +- kind: conda + name: jaraco.functools + version: 4.0.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.0.0-pyhd8ed1ab_0.conda + sha256: d2e866fd22a48eaa2f795b6a3b0bf16f066293322ce04dd65cca36267160ead6 + md5: 547670a612fd335eaa5ffbf0fa75cb64 + depends: + - more-itertools + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jaraco-functools?source=hash-mapping + size: 15192 + timestamp: 1701695329516 +- kind: conda + name: jeepney + version: 0.8.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.8.0-pyhd8ed1ab_0.tar.bz2 + sha256: 16639759b811866d63315fe1391f6fb45f5478b823972f4d3d9f0392b7dd80b8 + md5: 9800ad1699b42612478755a2d26c722d + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jeepney?source=hash-mapping + size: 36895 + timestamp: 1649085298891 +- kind: conda + name: jq + version: 1.7.1 + build: h31becfc_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/jq-1.7.1-h31becfc_0.conda + sha256: 53437ca79e28003faac8058f6c025c83a819e122d3a0fb70624e6da0f77ab126 + md5: 397702b2c1e53f0f0312d2b170d2e699 + depends: + - libgcc-ng >=12 + - oniguruma 6.9.* + - oniguruma >=6.9.9,<6.10.0a0 + license: MIT + license_family: MIT + purls: [] + size: 334346 + timestamp: 1702502754422 +- kind: conda + name: jq + version: 1.7.1 + build: h93a5062_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/jq-1.7.1-h93a5062_0.conda + sha256: e530cf5800e937bce7847a023a998db504e333a928b469c45a1752535593e762 + md5: dbf665694fb28d86d77cca18e5dd530c + depends: + - oniguruma 6.9.* + - oniguruma >=6.9.9,<6.10.0a0 + license: MIT + license_family: MIT + purls: [] + size: 317604 + timestamp: 1702501287237 +- kind: conda + name: jq + version: 1.7.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/jq-1.7.1-hd590300_0.conda + sha256: a04a1603e405ea9ae5c4a492a8e361086cb441a91ef7299bd4bf3eca0b485b6d + md5: 80814f94713e35df60aad6c4b235de87 + depends: + - libgcc-ng >=12 + - oniguruma 6.9.* + - oniguruma >=6.9.9,<6.10.0a0 + license: MIT + license_family: MIT + purls: [] + size: 318956 + timestamp: 1702500793203 +- kind: conda + name: keyring + version: 25.5.0 + build: pyh534df25_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh534df25_0.conda + sha256: d4a5b92e82dfd1b60ea882618ecf9333ab0c2d6a16a36edbbe0d3102cc157081 + md5: a0ed4210b80d1c9b4737774c22e222a6 + depends: + - __osx + - importlib-metadata >=4.11.4 + - importlib_resources + - jaraco.classes + - jaraco.context + - jaraco.functools + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/keyring?source=hash-mapping + size: 37437 + timestamp: 1730056689995 +- kind: conda + name: keyring + version: 25.5.0 + build: pyh7428d3b_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyh7428d3b_0.conda + sha256: 9199708fb578b7150bfd7c37fbb6b876f0432e2514a623148be29b96b8705afe + md5: 872fd60cb5aef19f8c83dfc6753e0385 + depends: + - __win + - importlib-metadata >=4.11.4 + - importlib_resources + - jaraco.classes + - jaraco.context + - jaraco.functools + - python >=3.8 + - pywin32-ctypes >=0.2.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/keyring?source=hash-mapping + size: 37357 + timestamp: 1730056956899 +- kind: conda + name: keyring + version: 25.5.0 + build: pyha804496_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/keyring-25.5.0-pyha804496_0.conda + sha256: f9a0b7838db9366fba0b9917fe8d0654377ebf8959e904f963e12ff76a5cc9ba + md5: a36af57a05ceaed6827adc5e4ba81267 + depends: + - __linux + - importlib-metadata >=4.11.4 + - importlib_resources + - jaraco.classes + - jaraco.context + - jaraco.functools + - jeepney >=0.4.2 + - python >=3.8 + - secretstorage >=3.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/keyring?source=hash-mapping + size: 37056 + timestamp: 1730056658373 +- kind: conda + name: ld_impl_linux-64 + version: '2.43' + build: h712a8e2_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe + md5: 048b02e3962f066da18efe3a21b77672 + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - binutils_impl_linux-64 2.43 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 669211 + timestamp: 1729655358674 +- kind: conda + name: ld_impl_linux-aarch64 + version: '2.43' + build: h80caac9_2 + build_number: 2 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.43-h80caac9_2.conda + sha256: 80ec7e8f006196808fac5bd4b3773a652847f97bbf08044cd87731424ac64f8b + md5: fcbde5ea19d55468953bf588770c0501 + constrains: + - binutils_impl_linux-aarch64 2.43 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 698245 + timestamp: 1729655345825 +- kind: conda + name: libcxx + version: 19.1.4 + build: ha82da77_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.4-ha82da77_0.conda + sha256: 342896ebc1d6acbf022ca6df006a936b9a472579e91e3c502cb1f52f218b78e9 + md5: a2d3d484d95889fccdd09498d8f6bf9a + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 520678 + timestamp: 1732060258949 +- kind: conda + name: libexpat + version: 2.6.4 + build: h286801f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + sha256: e42ab5ace927ee7c84e3f0f7d813671e1cf3529f5f06ee5899606630498c2745 + md5: 38d2656dd914feb0cab8c629370768bf + depends: + - __osx >=11.0 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 64693 + timestamp: 1730967175868 +- kind: conda + name: libexpat + version: 2.6.4 + build: h5888daf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26 + md5: db833e03127376d461e1e13e76f09b6c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 73304 + timestamp: 1730967041968 +- kind: conda + name: libexpat + version: 2.6.4 + build: h5ad3122_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.4-h5ad3122_0.conda + sha256: f42e758009ba9db90d1fe7992bc3e60d0c52f71fb20923375d2c44ae69a5a2b3 + md5: f1b3fab36861b3ce945a13f0dfdfc688 + depends: + - libgcc >=13 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 72345 + timestamp: 1730967203789 +- kind: conda + name: libexpat + version: 2.6.4 + build: he0c23c2_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda + sha256: 0c0447bf20d1013d5603499de93a16b6faa92d7ead870d96305c0f065b6a5a12 + md5: eb383771c680aa792feb529eaf9df82f + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + purls: [] + size: 139068 + timestamp: 1730967442102 +- kind: conda + name: libffi + version: 3.4.2 + build: h3422bc3_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca + md5: 086914b672be056eb70fd4285b6783b6 + license: MIT + license_family: MIT + purls: [] + size: 39020 + timestamp: 1636488587153 +- kind: conda + name: libffi + version: 3.4.2 + build: h3557bc0_5 + build_number: 5 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 + sha256: 7e9258a102480757fe3faeb225a3ca04dffd10fecd2a958c65cdb4cdf75f2c3c + md5: dddd85f4d52121fab0a8b099c5e06501 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 59450 + timestamp: 1636488255090 +- kind: conda + name: libffi + version: 3.4.2 + build: h7f98852_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + purls: [] + size: 58292 + timestamp: 1636488182923 +- kind: conda + name: libffi + version: 3.4.2 + build: h8ffe710_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5 + md5: 2c96d1b6915b408893f9472569dee135 + depends: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + license: MIT + license_family: MIT + purls: [] + size: 42063 + timestamp: 1636489106777 +- kind: conda + name: libgcc + version: 14.2.0 + build: h77fa898_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569 + md5: 3cb76c3f10d3bc7f1105b2fc9db984df + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 14.2.0 h77fa898_1 + - libgcc-ng ==14.2.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 848745 + timestamp: 1729027721139 +- kind: conda + name: libgcc + version: 14.2.0 + build: he277a41_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-14.2.0-he277a41_1.conda + sha256: 5d56757ccad208c79214395b00d006d8d18929a4ba49c47bd9460789a7620943 + md5: 511b511c5445e324066c3377481bcab8 + depends: + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==14.2.0=*_1 + - libgomp 14.2.0 he277a41_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 535243 + timestamp: 1729089435134 +- kind: conda + name: libgcc-ng + version: 14.2.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7 + md5: e39480b9ca41323497b05492a63bc35b + depends: + - libgcc 14.2.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54142 + timestamp: 1729027726517 +- kind: conda + name: libgcc-ng + version: 14.2.0 + build: he9431aa_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-14.2.0-he9431aa_1.conda + sha256: 9b5cf168a6c7361cae869cb74b716766ee7c6d6b3f6172b32ba9bf91135efdc4 + md5: 0694c249c61469f2c0f7e2990782af21 + depends: + - libgcc 14.2.0 he277a41_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54104 + timestamp: 1729089444587 +- kind: conda + name: libglib + version: 2.82.2 + build: h2ff4ddf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.82.2-h2ff4ddf_0.conda + sha256: 49ee9401d483a76423461c50dcd37f91d070efaec7e4dc2828d8cdd2ce694231 + md5: 13e8e54035ddd2b91875ba399f0f7c04 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - pcre2 >=10.44,<10.45.0a0 + constrains: + - glib 2.82.2 *_0 + license: LGPL-2.1-or-later + purls: [] + size: 3931898 + timestamp: 1729191404130 +- kind: conda + name: libglib + version: 2.82.2 + build: hc486b8e_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.82.2-hc486b8e_0.conda + sha256: 6797d24de7acd298f81a86078c64e4f3fea6d551a3e8892205c9e72a37a7cc3c + md5: 47f6d85fe47b865e56c539f2ba5f4dad + depends: + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - pcre2 >=10.44,<10.45.0a0 + constrains: + - glib 2.82.2 *_0 + license: LGPL-2.1-or-later + purls: [] + size: 4020802 + timestamp: 1729191545578 +- kind: conda + name: libgomp + version: 14.2.0 + build: h77fa898_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63 + md5: cc3573974587f12dda90d96e3e55a702 + depends: + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 460992 + timestamp: 1729027639220 +- kind: conda + name: libgomp + version: 14.2.0 + build: he277a41_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-14.2.0-he277a41_1.conda + sha256: 5aa53874a5e57a00f2e0c2e2910684eb674429cd5fcb803619b226a73e89aedf + md5: 376f0e73abbda6d23c0cb749adc195ef + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 463521 + timestamp: 1729089357313 +- kind: conda + name: libiconv + version: '1.17' + build: h31becfc_2 + build_number: 2 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda + sha256: a30e09d089cb75a0d5b8e5c354694c1317da98261185ed65aa3793e741060614 + md5: 9a8eb13f14de7d761555a98712e6df65 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + purls: [] + size: 705787 + timestamp: 1702684557134 +- kind: conda + name: libiconv + version: '1.17' + build: hd590300_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + md5: d66573916ffcf376178462f1b61c941e + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + purls: [] + size: 705775 + timestamp: 1702682170569 +- kind: conda + name: libnsl + version: 2.0.1 + build: h31becfc_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda + sha256: fd18c2b75d7411096428d36a70b36b1a17e31f7b8956b6905d145792d49e97f8 + md5: c14f32510f694e3185704d89967ec422 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 34501 + timestamp: 1697358973269 +- kind: conda + name: libnsl + version: 2.0.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 33408 + timestamp: 1697359010159 +- kind: conda + name: libsqlite + version: 3.47.0 + build: h2466b09_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.47.0-h2466b09_1.conda + sha256: 3342d6fe787f5830f7e8466d9c65c914bfd8d67220fb5673041b338cbba47afe + md5: 5b1f36012cc3d09c4eb9f24ad0e2c379 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Unlicense + purls: [] + size: 892175 + timestamp: 1730208431651 +- kind: conda + name: libsqlite + version: 3.47.0 + build: hadc24fc_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.0-hadc24fc_1.conda + sha256: 8a9aadf996a2399f65b679c6e7f29139d5059f699c63e6d7b50e20db10c00508 + md5: b6f02b52a174e612e89548f4663ce56a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 875349 + timestamp: 1730208050020 +- kind: conda + name: libsqlite + version: 3.47.0 + build: hbaaea75_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.0-hbaaea75_1.conda + sha256: 5a96caa566c11e5a5ebdcdb86a0759a7fb27d3c5f42e6a0fd0d6023c1e935d9e + md5: 07a14fbe439eef078cc479deca321161 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 837683 + timestamp: 1730208293578 +- kind: conda + name: libsqlite + version: 3.47.0 + build: hc4a20ef_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.47.0-hc4a20ef_1.conda + sha256: 73e143fdb966b61cd25ab804d416d87dfce43ac684e0fac3ad8b1450796331ab + md5: a6b185aac10d08028340858f77231b23 + depends: + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 1041855 + timestamp: 1730208187962 +- kind: conda + name: libstdcxx + version: 14.2.0 + build: h3f4de04_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-14.2.0-h3f4de04_1.conda + sha256: 519556d2c93f1b487091ce046d62e762286177f4a670ec10e16005177d0bcab3 + md5: 37f489acd39e22b623d2d1e5ac6d195c + depends: + - libgcc 14.2.0 he277a41_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3816794 + timestamp: 1729089463404 +- kind: conda + name: libstdcxx + version: 14.2.0 + build: hc0a3c3a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462 + md5: 234a5554c53625688d51062645337328 + depends: + - libgcc 14.2.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3893695 + timestamp: 1729027746910 +- kind: conda + name: libstdcxx-ng + version: 14.2.0 + build: h4852527_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8 + md5: 8371ac6457591af2cf6159439c1fd051 + depends: + - libstdcxx 14.2.0 hc0a3c3a_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54105 + timestamp: 1729027780628 +- kind: conda + name: libstdcxx-ng + version: 14.2.0 + build: hf1166c9_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-14.2.0-hf1166c9_1.conda + sha256: 9f97461bd55a2745a7a0941f3502a047f15bfe7bb2952dc7fb204b3202f866fd + md5: 0e75771b8a03afae5a2c6ce71bc733f5 + depends: + - libstdcxx 14.2.0 h3f4de04_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 54133 + timestamp: 1729089498541 +- kind: conda + name: libuuid + version: 2.38.1 + build: h0b41bf4_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 33601 + timestamp: 1680112270483 +- kind: conda + name: libuuid + version: 2.38.1 + build: hb4cce97_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda + sha256: 616277b0c5f7616c2cdf36f6c316ea3f9aa5bb35f2d4476a349ab58b9b91675f + md5: 000e30b09db0b7c775b21695dff30969 + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 35720 + timestamp: 1680113474501 +- kind: conda + name: libuv + version: 1.49.2 + build: h7ab814d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + sha256: 0e5176af1e788ad5006cf261c4ea5a288a935fda48993b0240ddd2e562dc3d02 + md5: 4bc348e3a1a74d20a3f9beb866d75e0a + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 410500 + timestamp: 1729322654121 +- kind: conda + name: libuv + version: 1.49.2 + build: h86ecc28_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.49.2-h86ecc28_0.conda + sha256: adf4eca89339ac7780f2394e7e6699be81259eb91f79f9d9fdf2c1bc6b26f210 + md5: 1899e1ec2be63386c41c4db31d3056af + depends: + - libgcc >=13 + license: MIT + license_family: MIT + purls: [] + size: 627484 + timestamp: 1729322575379 +- kind: conda + name: libuv + version: 1.49.2 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + sha256: a35cd81cd1a9add11024097da83cc06b0aae83186fe4124b77710876f37d8f31 + md5: 070e3c9ddab77e38799d5c30b109c633 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + purls: [] + size: 884647 + timestamp: 1729322566955 +- kind: conda + name: libxcrypt + version: 4.4.36 + build: h31becfc_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda + sha256: 6b46c397644091b8a26a3048636d10b989b1bf266d4be5e9474bf763f828f41f + md5: b4df5d7d4b63579d081fd3a4cf99740e + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 114269 + timestamp: 1702724369203 +- kind: conda + name: libxcrypt + version: 4.4.36 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 100393 + timestamp: 1702724383534 +- kind: conda + name: libzlib + version: 1.3.1 + build: h2466b09_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda + sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402 + md5: 41fbfac52c601159df6c01f875de31b9 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 55476 + timestamp: 1727963768015 +- kind: conda + name: libzlib + version: 1.3.1 + build: h8359307_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b + md5: 369964e85dc26bfe78f41399b366c435 + depends: + - __osx >=11.0 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 46438 + timestamp: 1727963202283 +- kind: conda + name: libzlib + version: 1.3.1 + build: h86ecc28_2 + build_number: 2 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.1-h86ecc28_2.conda + sha256: 5a2c1eeef69342e88a98d1d95bff1603727ab1ff4ee0e421522acd8813439b84 + md5: 08aad7cbe9f5a6b460d0976076b6ae64 + depends: + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 66657 + timestamp: 1727963199518 +- kind: conda + name: libzlib + version: 1.3.1 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 60963 + timestamp: 1727963148474 +- kind: conda + name: m2w64-gcc-libgfortran + version: 5.3.0 + build: '6' + build_number: 6 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 + sha256: 9de95a7996d5366ae0808eef2acbc63f9b11b874aa42375f55379e6715845dc6 + md5: 066552ac6b907ec6d72c0ddab29050dc + depends: + - m2w64-gcc-libs-core + - msys2-conda-epoch ==20160418 + license: GPL, LGPL, FDL, custom + purls: [] + size: 350687 + timestamp: 1608163451316 +- kind: conda + name: m2w64-gcc-libs + version: 5.3.0 + build: '7' + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 + sha256: 3bd1ab02b7c89a5b153a17be03b36d833f1517ff2a6a77ead7c4a808b88196aa + md5: fe759119b8b3bfa720b8762c6fdc35de + depends: + - m2w64-gcc-libgfortran + - m2w64-gcc-libs-core + - m2w64-gmp + - m2w64-libwinpthread-git + - msys2-conda-epoch ==20160418 + license: GPL3+, partial:GCCRLE, partial:LGPL2+ + purls: [] + size: 532390 + timestamp: 1608163512830 +- kind: conda + name: m2w64-gcc-libs-core + version: 5.3.0 + build: '7' + build_number: 7 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 + sha256: 58afdfe859ed2e9a9b1cc06bc408720cb2c3a6a132e59d4805b090d7574f4ee0 + md5: 4289d80fb4d272f1f3b56cfe87ac90bd + depends: + - m2w64-gmp + - m2w64-libwinpthread-git + - msys2-conda-epoch ==20160418 + license: GPL3+, partial:GCCRLE, partial:LGPL2+ + purls: [] + size: 219240 + timestamp: 1608163481341 +- kind: conda + name: m2w64-gmp + version: 6.1.0 + build: '2' + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 + sha256: 7e3cd95f554660de45f8323fca359e904e8d203efaf07a4d311e46d611481ed1 + md5: 53a1c73e1e3d185516d7e3af177596d9 + depends: + - msys2-conda-epoch ==20160418 + license: LGPL3 + purls: [] + size: 743501 + timestamp: 1608163782057 +- kind: conda + name: m2w64-jq + version: '1.6' + build: h301d43c_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-jq-1.6-h301d43c_0.tar.bz2 + sha256: d722a8c06f44dfb5f357608e6e1d40d1f1c926316bbee5d1e71d93823554646b + md5: 209cbf1b222dc774cb29ce57796500b3 + depends: + - m2w64-gcc-libs + - m2w64-oniguruma + license: MIT + license_family: MIT + purls: [] + size: 424702 + timestamp: 1591860215369 +- kind: conda + name: m2w64-libwinpthread-git + version: 5.0.0.4634.697f757 + build: '2' + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 + sha256: f63a09b2cae7defae0480f1740015d6235f1861afa6fe2e2d3e10bd0d1314ee0 + md5: 774130a326dee16f1ceb05cc687ee4f0 + depends: + - msys2-conda-epoch ==20160418 + license: MIT, BSD + purls: [] + size: 31928 + timestamp: 1608166099896 +- kind: conda + name: m2w64-oniguruma + version: 6.9.5 + build: h301d43c_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-oniguruma-6.9.5-h301d43c_0.tar.bz2 + sha256: 523edeac9788aa61243bd2ceb7b8bdb1a86b68c9f7f1aeb933085893d2886cc3 + md5: 61c9b808f92724106a63dd7b50979d6b + depends: + - m2w64-gcc-libs + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 426599 + timestamp: 1591828659130 +- kind: conda + name: markdown-it-py + version: 3.0.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + md5: 93a8e71256479c62074356ef6ebf501b + depends: + - mdurl >=0.1,<1 + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/markdown-it-py?source=hash-mapping + size: 64356 + timestamp: 1686175179621 +- kind: conda + name: mdurl + version: 0.1.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + sha256: 64073dfb6bb429d52fff30891877b48c7ec0f89625b1bf844905b66a81cce6e1 + md5: 776a8dd9e824f77abac30e6ef43a8f7a + depends: + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/mdurl?source=hash-mapping + size: 14680 + timestamp: 1704317789138 +- kind: conda + name: more-itertools + version: 10.5.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.5.0-pyhd8ed1ab_0.conda + sha256: 2315b7dba237e16b0e1b601725a8e03e062421e0be28d8a25dc35dd9bd93a342 + md5: 3364591bebd600979606791e1dff7cb6 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/more-itertools?source=hash-mapping + size: 57345 + timestamp: 1725630183289 +- kind: conda + name: msys2-conda-epoch + version: '20160418' + build: '1' + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + sha256: 99358d58d778abee4dca82ad29fb58058571f19b0f86138363c260049d4ac7f1 + md5: b0309b72560df66f71a9d5e34a5efdfa + purls: [] + size: 3227 + timestamp: 1608166968312 +- kind: conda + name: ncurses + version: '6.5' + build: h7bae524_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + sha256: 27d0b9ff78ad46e1f3a6c96c479ab44beda5f96def88e2fe626e0a49429d8afc + md5: cb2b0ea909b97b3d70cd3921d1445e1a + depends: + - __osx >=11.0 + license: X11 AND BSD-3-Clause + purls: [] + size: 802321 + timestamp: 1724658775723 +- kind: conda + name: ncurses + version: '6.5' + build: hcccb83c_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.5-hcccb83c_1.conda + sha256: acad4cf1f57b12ee1e42995e6fac646fa06aa026529f05eb8c07eb0a84a47a84 + md5: 91d49c85cacd92caa40cf375ef72a25d + depends: + - libgcc-ng >=12 + license: X11 AND BSD-3-Clause + purls: [] + size: 924472 + timestamp: 1724658573518 +- kind: conda + name: ncurses + version: '6.5' + build: he02047a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a + md5: 70caf8bb6cf39a0b6b7efc885f51c0fe + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: X11 AND BSD-3-Clause + purls: [] + size: 889086 + timestamp: 1724658547447 +- kind: conda + name: nodejs + version: 22.11.0 + build: h57928b3_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/nodejs-22.11.0-h57928b3_0.conda + sha256: b182be51b98ee410d9065c2e202dfb86bb7cb6f1db958790e34836bb99e9ad4b + md5: 902548b1eaf4fec280a98c13c3d8cf3e + license: MIT + license_family: MIT + purls: [] + size: 25685624 + timestamp: 1731917625548 +- kind: conda + name: nodejs + version: 22.11.0 + build: h8374285_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-22.11.0-h8374285_0.conda + sha256: 6368bdcbf057da1e4be5f457dde2a2fabbb389a5185c571d4175f06529340bbb + md5: 99f27727173302a7172ff76dabe8596c + depends: + - __glibc >=2.28,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libuv >=1.49.2,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - zlib + license: MIT + license_family: MIT + purls: [] + size: 21847436 + timestamp: 1731925818400 +- kind: conda + name: nodejs + version: 22.11.0 + build: haa7c7e9_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-22.11.0-haa7c7e9_0.conda + sha256: 304a2bf558f262a8e29f6b6abcc5fabde3b31d903bc699381b1b57f41e7c34d0 + md5: 34da600f0addaef949d28953e23482b4 + depends: + - __osx >=11.0 + - icu >=75.1,<76.0a0 + - libcxx >=18 + - libuv >=1.49.2,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - zlib + license: MIT + license_family: MIT + purls: [] + size: 14965601 + timestamp: 1731936621771 +- kind: conda + name: nodejs + version: 22.11.0 + build: hf235a45_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.11.0-hf235a45_0.conda + sha256: b90c26267d12d5dd97ef09b4393235be3a3cbe5eef07c5a2ada4230623f0b0b1 + md5: 64cd0bde7dffac5baa4d9fb0ac3ae713 + depends: + - __glibc >=2.28,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libuv >=1.49.2,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - zlib + license: MIT + license_family: MIT + purls: [] + size: 21336234 + timestamp: 1731921762943 +- kind: pypi + name: numpy + version: 2.1.3 + url: https://files.pythonhosted.org/packages/54/4a/765b4607f0fecbb239638d610d04ec0a0ded9b4951c56dc68cef79026abf/numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl + sha256: 13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958 + requires_python: '>=3.10' +- kind: pypi + name: numpy + version: 2.1.3 + url: https://files.pythonhosted.org/packages/5e/da/1a429ae58b3b6c364eeec93bf044c532f2ff7b48a52e41050896cf15d5b1/numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + sha256: 8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512 + requires_python: '>=3.10' +- kind: pypi + name: numpy + version: 2.1.3 + url: https://files.pythonhosted.org/packages/9e/3e/3757f304c704f2f0294a6b8340fcf2be244038be07da4cccf390fa678a9f/numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b + requires_python: '>=3.10' +- kind: pypi + name: numpy + version: 2.1.3 + url: https://files.pythonhosted.org/packages/a6/84/fa11dad3404b7634aaab50733581ce11e5350383311ea7a7010f464c0170/numpy-2.1.3-cp312-cp312-win_amd64.whl + sha256: 0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a + requires_python: '>=3.10' +- kind: conda + name: oniguruma + version: 6.9.9 + build: h31becfc_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/oniguruma-6.9.9-h31becfc_0.conda + sha256: e21b1822736959ba434ebce452ee86844a11d918c8b1c48c71f15e9a932fd571 + md5: 475018b8e0b8720c985a185427f5bf13 + depends: + - libgcc-ng >=12 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 250005 + timestamp: 1697487236819 +- kind: conda + name: oniguruma + version: 6.9.9 + build: h93a5062_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/oniguruma-6.9.9-h93a5062_0.conda + sha256: 66632aeef5b74e15746161db8fa8b5150a191ab05823d7d2f1587bdf96674c7b + md5: 770c654e0d5bfa3aa1e6ac5440815cda + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 223231 + timestamp: 1697485732214 +- kind: conda + name: oniguruma + version: 6.9.9 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/oniguruma-6.9.9-hd590300_0.conda + sha256: dec1c78df7670d34880f71f75ac716f082d087494b4a2c6a90d5d75a82c933ed + md5: 77dab674d16c1525ebe65e67de30de0d + depends: + - libgcc-ng >=12 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 246869 + timestamp: 1697485543293 +- kind: conda + name: openssl + version: 3.4.0 + build: h2466b09_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-h2466b09_0.conda + sha256: e03045a0837e01ff5c75e9273a572553e7522290799807f918c917a9826a6484 + md5: d0d805d9b5524a14efb51b3bff965e83 + depends: + - ca-certificates + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 8491156 + timestamp: 1731379715927 +- kind: conda + name: openssl + version: 3.4.0 + build: h39f12f2_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h39f12f2_0.conda + sha256: bd1d58ced46e75efa3b842c61642fd12272c69e9fe4d7261078bc082153a1d53 + md5: df307bbc703324722df0293c9ca2e418 + depends: + - __osx >=11.0 + - ca-certificates + license: Apache-2.0 + license_family: Apache + purls: [] + size: 2935176 + timestamp: 1731377561525 +- kind: conda + name: openssl + version: 3.4.0 + build: h86ecc28_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.4.0-h86ecc28_0.conda + sha256: 64dbbdd6384fa56338124783197f7ad9048c989a02264bcd2e07355e3570f113 + md5: b2f202b5bddafac824eb610b65dde98f + depends: + - ca-certificates + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 3474825 + timestamp: 1731379200886 +- kind: conda + name: openssl + version: 3.4.0 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-hb9d3cd8_0.conda + sha256: 814b9dff1847b132c676ee6cc1a8cb2d427320779b93e1b6d76552275c128705 + md5: 23cc74f77eb99315c0360ec3533147a9 + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 2947466 + timestamp: 1731377666602 +- kind: pypi + name: outcome + version: 1.3.0.post0 + url: https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl + sha256: e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b + requires_dist: + - attrs>=19.2.0 + requires_python: '>=3.7' +- kind: conda + name: packaging + version: '24.2' + build: pyhff2d567_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhff2d567_1.conda + sha256: 74843f871e5cd8a1baf5ed8c406c571139c287141efe532f8ffbdafa3664d244 + md5: 8508b703977f4c4ada34d657d051972c + depends: + - python >=3.8 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/packaging?source=hash-mapping + size: 60380 + timestamp: 1731802602808 +- kind: conda + name: pathspec + version: 0.12.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda + sha256: 4e534e66bfe8b1e035d2169d0e5b185450546b17e36764272863e22e0370be4d + md5: 17064acba08d3686f1135b5ec1b32b12 + depends: + - python >=3.7 + license: MPL-2.0 + license_family: MOZILLA + purls: + - pkg:pypi/pathspec?source=hash-mapping + size: 41173 + timestamp: 1702250135032 +- kind: conda + name: pcre2 + version: '10.44' + build: h070dd5b_2 + build_number: 2 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.44-h070dd5b_2.conda + sha256: e9f4b912e48514771d477f2ee955f59d4ff4ef799c3d4d16e4d0f335ce91df67 + md5: 94022de9682cb1a0bb18a99cbc3541b3 + depends: + - bzip2 >=1.0.8,<2.0a0 + - libgcc-ng >=12 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 884590 + timestamp: 1723488793100 +- kind: conda + name: pcre2 + version: '10.44' + build: hba22ea6_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda + sha256: 1087716b399dab91cc9511d6499036ccdc53eb29a288bebcb19cf465c51d7c0d + md5: df359c09c41cd186fffb93a2d87aa6f5 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - libgcc-ng >=12 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 952308 + timestamp: 1723488734144 +- kind: conda + name: pexpect + version: 4.9.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + sha256: 90a09d134a4a43911b716d4d6eb9d169238aff2349056f7323d9db613812667e + md5: 629f3203c99b32e0988910c93e77f3b6 + depends: + - ptyprocess >=0.5 + - python >=3.7 + license: ISC + purls: + - pkg:pypi/pexpect?source=hash-mapping + size: 53600 + timestamp: 1706113273252 +- kind: conda + name: pip + version: 24.3.1 + build: pyh8b19718_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_0.conda + sha256: 499313e72e20225f84c2e9690bbaf5b952c8d7e0bf34b728278538f766b81628 + md5: 5dd546fe99b44fda83963d15f84263b7 + depends: + - python >=3.8,<3.13.0a0 + - setuptools + - wheel + license: MIT + license_family: MIT + purls: + - pkg:pypi/pip?source=hash-mapping + size: 1243168 + timestamp: 1730203795600 +- kind: conda + name: platformdirs + version: 4.3.6 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda + sha256: c81bdeadc4adcda216b2c7b373f0335f5c78cc480d1d55d10f21823590d7e46f + md5: fd8f2b18b65bbf62e8f653100690c8d2 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/platformdirs?source=hash-mapping + size: 20625 + timestamp: 1726613611845 +- kind: pypi + name: playwright + version: 1.49.0 + url: https://files.pythonhosted.org/packages/05/50/cb04aadb200dc50c2013220dc10370a0c4024853122872c13071b4170440/playwright-1.49.0-py3-none-win_amd64.whl + sha256: 34d28a2c2d46403368610be4339898dc9c34eb9f7c578207b4715c49743a072a + requires_dist: + - greenlet==3.1.1 + - pyee==12.0.0 + requires_python: '>=3.9' +- kind: pypi + name: playwright + version: 1.49.0 + url: https://files.pythonhosted.org/packages/58/99/8570be7aca5f9b3ad5d836c33f11fe683fff2364fcfd076b6d0b5335966d/playwright-1.49.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + sha256: 7f12d2aecdb41fc25a624cb15f3e8391c252ebd81985e3d5c1c261fe93779345 + requires_dist: + - greenlet==3.1.1 + - pyee==12.0.0 + requires_python: '>=3.9' +- kind: pypi + name: playwright + version: 1.49.0 + url: https://files.pythonhosted.org/packages/b5/d8/bacfdfd89f2cb50583fa5a5b851bb940d7750a86388e125f759d8ffd9681/playwright-1.49.0-py3-none-manylinux1_x86_64.whl + sha256: 68d94beffb3c9213e3ceaafa66171affd9a5d9162e0c8a3eed1b1132c2e57598 + requires_dist: + - greenlet==3.1.1 + - pyee==12.0.0 + requires_python: '>=3.9' +- kind: pypi + name: playwright + version: 1.49.0 + url: https://files.pythonhosted.org/packages/e2/e5/fd4f1bdfa0dab6c929a73de9f181d3e00b97cd56db9d9a49e80ac30cee38/playwright-1.49.0-py3-none-macosx_11_0_arm64.whl + sha256: e453f02c4e5cc2db7e9759c47e7425f32e50ac76c76b7eb17c69eed72f01c4d8 + requires_dist: + - greenlet==3.1.1 + - pyee==12.0.0 + requires_python: '>=3.9' +- kind: conda + name: pluggy + version: 1.5.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.5.0-pyhd8ed1ab_0.conda + sha256: 33eaa3359948a260ebccf9cdc2fd862cea5a6029783289e13602d8e634cd9a26 + md5: d3483c8fc2dc2cc3f5cf43e26d60cabf + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pluggy?source=hash-mapping + size: 23815 + timestamp: 1713667175451 +- kind: conda + name: pnpm + version: 9.14.2 + build: h6417eb3_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pnpm-9.14.2-h6417eb3_0.conda + sha256: 7699456da4c0c5b1ec722abc495e1242991234516ea5d0155df5cdc83478d037 + md5: 1ee0be73dec7f15ec1a8a913e130c8fa + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - nodejs >=22.6.0,<23.0a0 + license: MIT + license_family: MIT + purls: [] + size: 3419377 + timestamp: 1732119718321 +- kind: conda + name: pnpm + version: 9.14.2 + build: h7c8fa8f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pnpm-9.14.2-h7c8fa8f_0.conda + sha256: 0a44e29beeea86a6f3f250207e8ccdfb58e11aeec782a6bd3ebf7bbc850fd4c5 + md5: 0cc54919bc6aaff1d343cac3c72ca7f1 + depends: + - __osx >=11.0 + - libcxx >=18 + - nodejs >=22.11.0,<23.0a0 + license: MIT + license_family: MIT + purls: [] + size: 3388792 + timestamp: 1732119947642 +- kind: conda + name: pnpm + version: 9.14.2 + build: haa868a1_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pnpm-9.14.2-haa868a1_0.conda + sha256: 20822d43476b207591f07d7ceb383c343405706d4f95d0b54b5ffb9bf8a1c5dc + md5: 2ee74b91635affb5e25ef8fa7f1802c1 + depends: + - nodejs >=22.11.0,<23.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + purls: [] + size: 3456335 + timestamp: 1732120603164 +- kind: conda + name: pnpm + version: 9.14.2 + build: hbf5023e_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/pnpm-9.14.2-hbf5023e_0.conda + sha256: 0e5e7d9d08ea7ccc2521887a80e2f8e2001032324c47ad0bc70d43b1f63169ea + md5: 4cc38533abc1fb8d1a8f6dfeb9c0332b + depends: + - libgcc >=13 + - libstdcxx >=13 + - nodejs >=22.6.0,<23.0a0 + license: MIT + license_family: MIT + purls: [] + size: 3362491 + timestamp: 1732119779108 +- kind: conda + name: ptyprocess + version: 0.7.0 + build: pyhd3deb0d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + md5: 359eeb6536da0e687af562ed265ec263 + depends: + - python + license: ISC + purls: + - pkg:pypi/ptyprocess?source=hash-mapping + size: 16546 + timestamp: 1609419417991 +- kind: conda + name: pycparser + version: '2.22' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda + sha256: 406001ebf017688b1a1554b49127ca3a4ac4626ec0fd51dc75ffa4415b720b64 + md5: 844d9eb3b43095b031874477f7d70088 + depends: + - python >=3.8 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pycparser?source=hash-mapping + size: 105098 + timestamp: 1711811634025 +- kind: pypi + name: pyee + version: 12.0.0 + url: https://files.pythonhosted.org/packages/1d/0d/95993c08c721ec68892547f2117e8f9dfbcef2ca71e098533541b4a54d5f/pyee-12.0.0-py3-none-any.whl + sha256: 7b14b74320600049ccc7d0e0b1becd3b4bd0a03c745758225e31a59f4095c990 + requires_dist: + - typing-extensions + - build ; extra == 'dev' + - flake8 ; extra == 'dev' + - flake8-black ; extra == 'dev' + - pytest ; extra == 'dev' + - black ; extra == 'dev' + - isort ; extra == 'dev' + - jupyter-console ; extra == 'dev' + - mkdocs ; extra == 'dev' + - mkdocs-include-markdown-plugin ; extra == 'dev' + - mkdocstrings[python] ; extra == 'dev' + - sphinx ; extra == 'dev' + - toml ; extra == 'dev' + - tox ; extra == 'dev' + - trio ; extra == 'dev' + - twine ; extra == 'dev' + - twisted ; extra == 'dev' + - validate-pyproject[all] ; extra == 'dev' + - trio ; python_full_version >= '3.7' and extra == 'dev' + - trio-typing ; python_full_version >= '3.7' and extra == 'dev' + - pytest-asyncio ; python_full_version >= '3.4' and extra == 'dev' + - pytest-trio ; python_full_version >= '3.7' and extra == 'dev' + requires_python: '>=3.8' +- kind: conda + name: pygments + version: 2.18.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.18.0-pyhd8ed1ab_0.conda + sha256: 78267adf4e76d0d64ea2ffab008c501156c108bb08fecb703816fb63e279780b + md5: b7f5c092b8f9800150d998a71b76d5a1 + depends: + - python >=3.8 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pygments?source=hash-mapping + size: 879295 + timestamp: 1714846885370 +- kind: pypi + name: pyodide-py + version: 0.26.4 + url: https://files.pythonhosted.org/packages/2e/4a/970d2604a72e9d44904533b5438135187aa3b08b8d6fc75e5404cd8a1dd1/pyodide_py-0.26.4-py3-none-any.whl + sha256: a5bc814aba54a25f3292b91de44ff05629c941d5c27483f43d9e85775a6bf158 + requires_python: '>=3.12' +- kind: pypi + name: pysocks + version: 1.7.1 + url: https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl + sha256: 2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5 + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' +- kind: conda + name: pytest + version: 8.3.3 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.3-pyhd8ed1ab_0.conda + sha256: e99376d0068455712109d233f5790458ff861aeceb458bfda74e353338e4d815 + md5: c03d61f31f38fdb9facf70c29958bf7a + depends: + - colorama + - exceptiongroup >=1.0.0rc8 + - iniconfig + - packaging + - pluggy <2,>=1.5 + - python >=3.8 + - tomli >=1 + constrains: + - pytest-faulthandler >=2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pytest?source=hash-mapping + size: 258293 + timestamp: 1725977334143 +- kind: pypi + name: pytest-asyncio + version: 0.24.0 + url: https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl + sha256: a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b + requires_dist: + - pytest>=8.2,<9 + - sphinx>=5.3 ; extra == 'docs' + - sphinx-rtd-theme>=1.0 ; extra == 'docs' + - coverage>=6.2 ; extra == 'testing' + - hypothesis>=5.7.1 ; extra == 'testing' + requires_python: '>=3.8' +- kind: pypi + name: pytest-pyodide + version: 0.58.4 + url: https://files.pythonhosted.org/packages/a6/9f/e24389ffe2b703194c36c2763d8c1402cb6c8ac84be8fe1bd16f9315b444/pytest_pyodide-0.58.4-py3-none-any.whl + sha256: e8799464f0db5c8c281a1e9b4b8a4b38f015183679d47f09e140c4004a8d2ccc + requires_dist: + - hypothesis + - pexpect + - playwright + - pytest + - pytest-asyncio + - selenium + - tblib>=3 + - build ; extra == 'test' + - pytest-cov ; extra == 'test' + - requests ; extra == 'test' + requires_python: '>=3.10' +- kind: conda + name: python + version: 3.12.7 + build: h5d932e8_0_cpython + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.12.7-h5d932e8_0_cpython.conda + sha256: 25570873d92d4d9490c6db780cc85e6c28bd3ff61dc1ece79f602cf82bc73bc1 + md5: e6cab21bb5787270388939cf41cc5f43 + depends: + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-aarch64 >=2.36.1 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + purls: [] + size: 13762126 + timestamp: 1728057461028 +- kind: conda + name: python + version: 3.12.7 + build: h739c21a_0_cpython + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda + sha256: 45d7ca2074aa92594bd2f91a9003b338cc1df8a46b9492b7fc8167110783c3ef + md5: e0d82e57ebb456077565e6d82cd4a323 + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + purls: [] + size: 12975439 + timestamp: 1728057819519 +- kind: conda + name: python + version: 3.12.7 + build: hc5c86c4_0_cpython + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + sha256: 674be31ff152d9f0e0fe16959a45e3803a730fc4f54d87df6a9ac4e6a698c41d + md5: 0515111a9cdf69f83278f7c197db9807 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + purls: [] + size: 31574780 + timestamp: 1728059777603 +- kind: conda + name: python + version: 3.12.7 + build: hce54a09_0_cpython + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.12.7-hce54a09_0_cpython.conda + sha256: 2308cfa9ec563360d29ced7fd13a6b60b9a7b3cf8961a95c78c69f486211d018 + md5: 21f1f7c6ccf6b747c5086d2422c230e1 + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + purls: [] + size: 15987537 + timestamp: 1728057382072 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 + md5: 0424ae29b104430108f5218a66db7260 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6238 + timestamp: 1723823388266 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.12-5_cp312.conda + sha256: 5ccdad9981753cc4a2d126e356673a21c0cd5b34e209cb8d476a3947d4ad9b39 + md5: 62b20f305498284a07dc6c45fd0e5c87 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6329 + timestamp: 1723823366253 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda + sha256: 49d624e4b809c799d2bf257b22c23cf3fc4460f5570d9a58e7ad86350aeaa1f4 + md5: b76f9b1c862128e56ac7aa8cd2333de9 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6278 + timestamp: 1723823099686 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda + sha256: 9486662af81a219e96d343449eff242f38d7c5128ced5ce5acf85857265058d6 + md5: e8681f534453af7afab4cd2bc1423eec + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6730 + timestamp: 1723823139725 +- kind: conda + name: pywin32-ctypes + version: 0.2.3 + build: py312h2e8e312_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py312h2e8e312_1.conda + sha256: 3e3b97740b4ec2f54debf7bfdbaa9a81a7aabd4549051b926de91d05304c4948 + md5: c5f1cb65c56ec74687801960f8a31eb5 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pywin32-ctypes?source=hash-mapping + size: 57449 + timestamp: 1727282288065 +- kind: conda + name: readline + version: '8.2' + build: h8228510_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + md5: 47d31b792659ce70f470b5c82fdfb7a4 + depends: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 281456 + timestamp: 1679532220005 +- kind: conda + name: readline + version: '8.2' + build: h8fc344f_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda + sha256: 4c99f7417419734e3797d45bc355e61c26520e111893b0d7087a01a7fbfbe3dd + md5: 105eb1e16bf83bfb2eb380a48032b655 + depends: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 294092 + timestamp: 1679532238805 +- kind: conda + name: readline + version: '8.2' + build: h92ec313_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 + md5: 8cbb776a2f641b943d413b3e19df71f4 + depends: + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 250351 + timestamp: 1679532511311 +- kind: conda + name: rich + version: 13.9.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_0.conda + sha256: c009488fc07fd5557434c9c1ad32ab1dd50241d6a766e4b2b4125cd6498585a8 + md5: bcf8cc8924b5d20ead3d122130b8320b + depends: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.8 + - typing_extensions >=4.0.0,<5.0.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/rich?source=hash-mapping + size: 185481 + timestamp: 1730592349978 +- kind: conda + name: secretstorage + version: 3.3.3 + build: py312h7900ff3_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py312h7900ff3_3.conda + sha256: c6d5d0bc7fb6cbfa3b8be8f2399a3c1308b3392a4e20bd1a0f29a828fda5ab20 + md5: 4840da9db2808db946a0d979603c6de4 + depends: + - cryptography + - dbus + - jeepney >=0.6 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/secretstorage?source=hash-mapping + size: 31601 + timestamp: 1725915741329 +- kind: conda + name: secretstorage + version: 3.3.3 + build: py312h8025657_3 + build_number: 3 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/secretstorage-3.3.3-py312h8025657_3.conda + sha256: fd6bc45ba0c6bb097ad98037ad8d2ddf2449f28c2eedf57dfff54eeceefe90c6 + md5: 4ae02e3717828f5e92dfae068845afdd + depends: + - cryptography + - dbus + - jeepney >=0.6 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/secretstorage?source=hash-mapping + size: 31394 + timestamp: 1725917363210 +- kind: pypi + name: selenium + version: 4.26.1 + url: https://files.pythonhosted.org/packages/91/08/10cff8463b3510b78f9e3dcef6b37c542b06d71ed1240a8940ba0c75d3bc/selenium-4.26.1-py3-none-any.whl + sha256: 1db3f3a0cd5bb07624fa8a3905a6fdde1595a42185a0617077c361dc53d104fb + requires_dist: + - urllib3[socks]>=1.26,<3 + - trio~=0.17 + - trio-websocket~=0.9 + - certifi>=2021.10.8 + - typing-extensions~=4.9 + - websocket-client~=1.8 + requires_python: '>=3.8' +- kind: conda + name: setuptools + version: 75.6.0 + build: pyhff2d567_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-75.6.0-pyhff2d567_0.conda + sha256: eeec4645f70ce0ed03348397dced9d218a650a42df98592419af61d2689163ed + md5: 68d7d406366926b09a6a023e3d0f71d7 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/setuptools?source=hash-mapping + size: 774304 + timestamp: 1732216189406 +- kind: conda + name: shellingham + version: 1.5.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_0.conda + sha256: 3c49a0a101c41b7cf6ac05a1872d7a1f91f1b6d02eecb4a36b605a19517862bb + md5: d08db09a552699ee9e7eec56b4eb3899 + depends: + - python >=3.7 + license: MIT + license_family: MIT + purls: + - pkg:pypi/shellingham?source=hash-mapping + size: 14568 + timestamp: 1698144516278 +- kind: conda + name: sniffio + version: 1.3.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_0.conda + sha256: bc12100b2d8836b93c55068b463190505b8064d0fc7d025e89f20ebf22fe6c2b + md5: 490730480d76cf9c8f8f2849719c6e2b + depends: + - python >=3.7 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/sniffio?source=hash-mapping + size: 15064 + timestamp: 1708953086199 +- kind: pypi + name: sortedcontainers + version: 2.4.0 + url: https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl + sha256: a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0 +- kind: pypi + name: tblib + version: 3.0.0 + url: https://files.pythonhosted.org/packages/9b/87/ce70db7cae60e67851eb94e1a2127d4abb573d3866d2efd302ceb0d4d2a5/tblib-3.0.0-py3-none-any.whl + sha256: 80a6c77e59b55e83911e1e607c649836a69c103963c5f28a46cbeef44acf8129 + requires_python: '>=3.8' +- kind: conda + name: tk + version: 8.6.13 + build: h194ca79_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda + sha256: 7fa27cc512d3a783f38bd16bbbffc008807372499d5b65d089a8e43bde9db267 + md5: f75105e0585851f818e0009dd1dde4dc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3351802 + timestamp: 1695506242997 +- kind: conda + name: tk + version: 8.6.13 + build: h5083fa2_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 + md5: b50a57ba89c32b62428b71a875291c9b + depends: + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3145523 + timestamp: 1699202432999 +- kind: conda + name: tk + version: 8.6.13 + build: h5226925_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1 + md5: fc048363eb8f03cd1737600a5d08aafe + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: TCL + license_family: BSD + purls: [] + size: 3503410 + timestamp: 1699202577803 +- kind: conda + name: tk + version: 8.6.13 + build: noxft_h4845f30_101 + build_number: 101 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: d453b98d9c83e71da0741bb0ff4d76bc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3318875 + timestamp: 1699202167581 +- kind: conda + name: tomli + version: 2.1.0 + build: pyhff2d567_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.1.0-pyhff2d567_0.conda + sha256: 354b8a64d4f3311179d85aefc529ca201a36afc1af090d0010c46be7b79f9a47 + md5: 3fa1089b4722df3a900135925f4519d9 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli?source=hash-mapping + size: 18741 + timestamp: 1731426862834 +- kind: conda + name: tomli-w + version: 1.1.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.1.0-pyhd8ed1ab_0.conda + sha256: 25b88bb2c4e79be642d8e5b5738781404055cd596403a20511e6fa30f0c71585 + md5: 2c5eb5b3a0fd2c4787d8162f57da2a20 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli-w?source=hash-mapping + size: 12323 + timestamp: 1728405537678 +- kind: conda + name: tomlkit + version: 0.13.2 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.2-pyha770c72_0.conda + sha256: 2ccfe8dafdc1f1af944bca6bdf28fa97b5fa6125d84b8895a4e918a020853c12 + md5: 0062a5f3347733f67b0f33ca48cc21dd + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomlkit?source=hash-mapping + size: 37279 + timestamp: 1723631592742 +- kind: pypi + name: trio + version: 0.27.0 + url: https://files.pythonhosted.org/packages/3c/83/ec3196c360afffbc5b342ead48d1eb7393dd74fa70bca75d33905a86f211/trio-0.27.0-py3-none-any.whl + sha256: 68eabbcf8f457d925df62da780eff15ff5dc68fd6b367e2dde59f7aaf2a0b884 + requires_dist: + - attrs>=23.2.0 + - sortedcontainers + - idna + - outcome + - sniffio>=1.3.0 + - cffi>=1.14 ; implementation_name != 'pypy' and os_name == 'nt' + - exceptiongroup ; python_full_version < '3.11' + requires_python: '>=3.8' +- kind: pypi + name: trio-websocket + version: 0.11.1 + url: https://files.pythonhosted.org/packages/48/be/a9ae5f50cad5b6f85bd2574c2c923730098530096e170c1ce7452394d7aa/trio_websocket-0.11.1-py3-none-any.whl + sha256: 520d046b0d030cf970b8b2b2e00c4c2245b3807853ecd44214acd33d74581638 + requires_dist: + - trio>=0.11 + - wsproto>=0.14 + - exceptiongroup ; python_full_version < '3.11' + requires_python: '>=3.7' +- kind: conda + name: trove-classifiers + version: 2024.10.21.16 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2024.10.21.16-pyhd8ed1ab_0.conda + sha256: 591e4ffdc95660b9e596c15b65cad35a70b36235f02dbd089ccc198dd5af0e71 + md5: 501f6d3288160a31d99a2f1321e77393 + depends: + - python >=3.7 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/trove-classifiers?source=hash-mapping + size: 18429 + timestamp: 1729552033760 +- kind: conda + name: typing_extensions + version: 4.12.2 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_0.conda + sha256: 0fce54f8ec3e59f5ef3bb7641863be4e1bf1279623e5af3d3fa726e8f7628ddb + md5: ebe6952715e1d5eb567eeebf25250fa7 + depends: + - python >=3.8 + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/typing-extensions?source=hash-mapping + size: 39888 + timestamp: 1717802653893 +- kind: conda + name: tzdata + version: 2024b + build: hc8b5060_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf + md5: 8ac3367aafb1cc0a068483c580af8015 + license: LicenseRef-Public-Domain + purls: [] + size: 122354 + timestamp: 1728047496079 +- kind: conda + name: ucrt + version: 10.0.22621.0 + build: h57928b3_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda + sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450 + md5: 6797b005cd0f439c4c5c9ac565783700 + constrains: + - vs2015_runtime >=14.29.30037 + license: LicenseRef-MicrosoftWindowsSDK10 + purls: [] + size: 559710 + timestamp: 1728377334097 +- kind: pypi + name: urllib3 + version: 2.2.3 + url: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl + sha256: ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac + requires_dist: + - brotli>=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli' + - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli' + - h2>=4,<5 ; extra == 'h2' + - pysocks>=1.5.6,!=1.5.7,<2.0 ; extra == 'socks' + - zstandard>=0.18.0 ; extra == 'zstd' + requires_python: '>=3.8' +- kind: conda + name: userpath + version: 1.7.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/userpath-1.7.0-pyhd8ed1ab_0.tar.bz2 + sha256: c8cbddd625340e1b00b53bafabc764526ee85f7ddb91018424bab0eea057796d + md5: 5bf074c9253a3bf914becfc50757406f + depends: + - click + - python >=3.6 + license: MIT + license_family: MIT + purls: + - pkg:pypi/userpath?source=hash-mapping + size: 17423 + timestamp: 1632758637093 +- kind: conda + name: uv + version: 0.5.4 + build: h0f3a69f_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/uv-0.5.4-h0f3a69f_0.conda + sha256: 826c427524d1930d66bdbbe9f2a380d46abc02e06b4b9870e4c5eb661a292156 + md5: ecce7c2d83da66eaabf8ba4961a4c828 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + constrains: + - __glibc >=2.17 + license: Apache-2.0 OR MIT + purls: [] + size: 10061197 + timestamp: 1732159190433 +- kind: conda + name: uv + version: 0.5.4 + build: h2016286_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/uv-0.5.4-h2016286_0.conda + sha256: 96ac8fc95afa6b255f11e5d21bb96e1c7dc5223aec007ec89dd6990137e2b02c + md5: 266981251555beca6b129dc8f418f816 + depends: + - libgcc >=13 + - libstdcxx >=13 + constrains: + - __glibc >=2.17 + license: Apache-2.0 OR MIT + purls: [] + size: 9403836 + timestamp: 1732159320584 +- kind: conda + name: uv + version: 0.5.4 + build: h668ec48_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.5.4-h668ec48_0.conda + sha256: 85b61a53c0f39339c67a4f11b708fa1f59ad5f0a85d907f3c5ff001c88914b31 + md5: baad04fb088c4c66acf74a870bdb4536 + depends: + - __osx >=11.0 + - libcxx >=18 + constrains: + - __osx >=11.0 + license: Apache-2.0 OR MIT + purls: [] + size: 8942315 + timestamp: 1732160450871 +- kind: conda + name: uv + version: 0.5.4 + build: ha08ef0e_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/uv-0.5.4-ha08ef0e_0.conda + sha256: 493bece8c71254c2f9002fe5f53dd71265ce38d9dee2842286120e86acc2e523 + md5: 9fc38b02b5c4fa1be9a42c1b951d98e1 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 OR MIT + purls: [] + size: 10797785 + timestamp: 1732160258909 +- kind: conda + name: vc + version: '14.3' + build: ha32ba9b_23 + build_number: 23 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-ha32ba9b_23.conda + sha256: 986ddaf8feec2904eac9535a7ddb7acda1a1dfb9482088fdb8129f1595181663 + md5: 7c10ec3158d1eb4ddff7007c9101adb0 + depends: + - vc14_runtime >=14.38.33135 + track_features: + - vc14 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 17479 + timestamp: 1731710827215 +- kind: conda + name: vc14_runtime + version: 14.42.34433 + build: he29a5d6_23 + build_number: 23 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.42.34433-he29a5d6_23.conda + sha256: c483b090c4251a260aba6ff3e83a307bcfb5fb24ad7ced872ab5d02971bd3a49 + md5: 32b37d0cfa80da34548501cdc913a832 + depends: + - ucrt >=10.0.20348.0 + constrains: + - vs2015_runtime 14.42.34433.* *_23 + license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime + license_family: Proprietary + purls: [] + size: 754247 + timestamp: 1731710681163 +- kind: conda + name: virtualenv + version: 20.27.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.27.1-pyhd8ed1ab_0.conda + sha256: 189b935224732267df10dc116bce0835bd76fcdb20c30f560591c92028d513b0 + md5: dae21509d62aa7bf676279ced3edcb3f + depends: + - distlib <1,>=0.3.7 + - filelock <4,>=3.12.2 + - platformdirs <5,>=3.9.1 + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/virtualenv?source=hash-mapping + size: 2965442 + timestamp: 1730204927840 +- kind: conda + name: vs2015_runtime + version: 14.42.34433 + build: hdffcdeb_23 + build_number: 23 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.42.34433-hdffcdeb_23.conda + sha256: 568ce8151eaae256f1cef752fc78651ad7a86ff05153cc7a4740b52ae6536118 + md5: 5c176975ca2b8366abad3c97b3cd1e83 + depends: + - vc14_runtime >=14.42.34433 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 17572 + timestamp: 1731710685291 +- kind: pypi + name: wasmtime + version: 27.0.1 + url: https://files.pythonhosted.org/packages/14/6f/f6b99d9ab1511398686e00d2a26371d99a7949531514379d731b3b7e6309/wasmtime-27.0.1-py3-none-win_amd64.whl + sha256: e691aafe8881a872a69a52822f24c209f54fe6f06154d1dfadd977ee86374169 + requires_dist: + - importlib-resources>=5.10 + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pycparser ; extra == 'testing' + - pytest-mypy ; extra == 'testing' + - componentize-py ; extra == 'testing' + requires_python: '>=3.9' +- kind: pypi + name: wasmtime + version: 27.0.1 + url: https://files.pythonhosted.org/packages/3a/57/cd877b4797be239b4433f89a5a85c7bf2c5319dd91c7777b1867bebb664e/wasmtime-27.0.1-py3-none-manylinux2014_aarch64.whl + sha256: dac4e2232cc44b6bfc290f84ff9244621b7e99ee1da4036afb83113dd93b13bf + requires_dist: + - importlib-resources>=5.10 + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pycparser ; extra == 'testing' + - pytest-mypy ; extra == 'testing' + - componentize-py ; extra == 'testing' + requires_python: '>=3.9' +- kind: pypi + name: wasmtime + version: 27.0.1 + url: https://files.pythonhosted.org/packages/5e/24/806c5bd1b5e30c83cc9d182795edebfbfe24483f82fb18823b309a6656b5/wasmtime-27.0.1-py3-none-manylinux1_x86_64.whl + sha256: 99339ed56b7bc4d280bcb0d5527725a7cfe51c269941cf888f57b46f05c249a6 + requires_dist: + - importlib-resources>=5.10 + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pycparser ; extra == 'testing' + - pytest-mypy ; extra == 'testing' + - componentize-py ; extra == 'testing' + requires_python: '>=3.9' +- kind: pypi + name: wasmtime + version: 27.0.1 + url: https://files.pythonhosted.org/packages/6e/d8/38d1af31c1787e09642354c81215920a5bf59722a6786ed7e9622fd1f033/wasmtime-27.0.1-py3-none-macosx_11_0_arm64.whl + sha256: 1082442529d06c5c50fb9377dbb599460c175f98ca0d332625bf76661c7309b4 + requires_dist: + - importlib-resources>=5.10 + - coverage ; extra == 'testing' + - pytest ; extra == 'testing' + - pycparser ; extra == 'testing' + - pytest-mypy ; extra == 'testing' + - componentize-py ; extra == 'testing' + requires_python: '>=3.9' +- kind: pypi + name: websocket-client + version: 1.8.0 + url: https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl + sha256: 17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 + requires_dist: + - sphinx>=6.0 ; extra == 'docs' + - sphinx-rtd-theme>=1.1.0 ; extra == 'docs' + - myst-parser>=2.0.0 ; extra == 'docs' + - python-socks ; extra == 'optional' + - wsaccel ; extra == 'optional' + - websockets ; extra == 'test' + requires_python: '>=3.8' +- kind: conda + name: wheel + version: 0.45.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_0.conda + sha256: 24f6851a336a50c53d6b50b142c1654872494a62528d57c3ff40240cbd8b13be + md5: bdb2f437ce62fd2f1fef9119a37a12d9 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/wheel?source=hash-mapping + size: 62998 + timestamp: 1732339880578 +- kind: pypi + name: wsproto + version: 1.2.0 + url: https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl + sha256: b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736 + requires_dist: + - h11>=0.9.0,<1 + requires_python: '>=3.7.0' +- kind: conda + name: xz + version: 5.2.6 + build: h166bdaf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + md5: 2161070d867d1b1204ea749c8eec4ef0 + depends: + - libgcc-ng >=12 + license: LGPL-2.1 and GPL-2.0 + purls: [] + size: 418368 + timestamp: 1660346797927 +- kind: conda + name: xz + version: 5.2.6 + build: h57fd34a_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + sha256: 59d78af0c3e071021cfe82dc40134c19dab8cdf804324b62940f5c8cd71803ec + md5: 39c6b54e94014701dd157f4f576ed211 + license: LGPL-2.1 and GPL-2.0 + purls: [] + size: 235693 + timestamp: 1660346961024 +- kind: conda + name: xz + version: 5.2.6 + build: h8d14728_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + sha256: 54d9778f75a02723784dc63aff4126ff6e6749ba21d11a6d03c1f4775f269fe0 + md5: 515d77642eaa3639413c6b1bc3f94219 + depends: + - vc >=14.1,<15 + - vs2015_runtime >=14.16.27033 + license: LGPL-2.1 and GPL-2.0 + purls: [] + size: 217804 + timestamp: 1660346976440 +- kind: conda + name: xz + version: 5.2.6 + build: h9cdd2b7_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 + sha256: 93f58a7b393adf41fa007ac8c55978765e957e90cd31877ece1e5a343cb98220 + md5: 83baad393a31d59c20b63ba4da6592df + depends: + - libgcc-ng >=12 + license: LGPL-2.1 and GPL-2.0 + purls: [] + size: 440555 + timestamp: 1660348056328 +- kind: conda + name: zipp + version: 3.21.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_0.conda + sha256: 232a30e4b0045c9de5e168dda0328dc0e28df9439cdecdfb97dd79c1c82c4cec + md5: fee389bf8a4843bd7a2248ce11b7f188 + depends: + - python >=3.8 + license: MIT + license_family: MIT + purls: + - pkg:pypi/zipp?source=hash-mapping + size: 21702 + timestamp: 1731262194278 +- kind: conda + name: zlib + version: 1.3.1 + build: h8359307_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + sha256: 58f8860756680a4831c1bf4f294e2354d187f2e999791d53b1941834c4b37430 + md5: e3170d898ca6cb48f1bb567afb92f775 + depends: + - __osx >=11.0 + - libzlib 1.3.1 h8359307_2 + license: Zlib + license_family: Other + purls: [] + size: 77606 + timestamp: 1727963209370 +- kind: conda + name: zlib + version: 1.3.1 + build: h86ecc28_2 + build_number: 2 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.1-h86ecc28_2.conda + sha256: b4f649aa3ecdae384d5dad7074e198bff120edd3dfb816588e31738fc6d627b1 + md5: bc230abb5d21b63ff4799b0e75204783 + depends: + - libgcc >=13 + - libzlib 1.3.1 h86ecc28_2 + license: Zlib + license_family: Other + purls: [] + size: 95582 + timestamp: 1727963203597 +- kind: conda + name: zlib + version: 1.3.1 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + sha256: 5d7c0e5f0005f74112a34a7425179f4eb6e73c92f5d109e6af4ddeca407c92ab + md5: c9f075ab2f33b3bbee9e62d4ad0a6cd8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib 1.3.1 hb9d3cd8_2 + license: Zlib + license_family: Other + purls: [] + size: 92286 + timestamp: 1727963153079 +- kind: conda + name: zstandard + version: 0.23.0 + build: py312h15fbf35_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + sha256: d00ca25c1e28fd31199b26a94f8c96574475704a825d244d7a6351ad3745eeeb + md5: a4cde595509a7ad9c13b1a3809bcfe51 + depends: + - __osx >=11.0 + - cffi >=1.11 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 330788 + timestamp: 1725305806565 +- kind: conda + name: zstandard + version: 0.23.0 + build: py312h7606c53_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312h7606c53_1.conda + sha256: 3e0c718aa18dcac7f080844dbe0aea41a9cea75083019ce02e8a784926239826 + md5: a92cc3435b2fd6f51463f5a4db5c50b1 + depends: + - cffi >=1.11 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 320624 + timestamp: 1725305934189 +- kind: conda + name: zstandard + version: 0.23.0 + build: py312hb698573_1 + build_number: 1 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstandard-0.23.0-py312hb698573_1.conda + sha256: 2681c2a249752bdc7978e59ee2f34fcdfcbfda80029b84b8e5fec8dbc9e3af25 + md5: ffcb8e97e62af42075e0e5f46bb9856e + depends: + - cffi >=1.11 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 392496 + timestamp: 1725305808244 +- kind: conda + name: zstandard + version: 0.23.0 + build: py312hef9b889_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + sha256: b97015e146437283f2213ff0e95abdc8e2480150634d81fbae6b96ee09f5e50b + md5: 8b7069e9792ee4e5b4919a7a306d2e67 + depends: + - __glibc >=2.17,<3.0.a0 + - cffi >=1.11 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=hash-mapping + size: 419552 + timestamp: 1725305670210 +- kind: conda + name: zstd + version: 1.5.6 + build: h02f22dd_0 + subdir: linux-aarch64 + url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.6-h02f22dd_0.conda + sha256: 484f9d0722c77685ae379fbff3ccd662af9ead7e59eb39cd6d0c677cdf25ff6c + md5: be8d5f8cf21aed237b8b182ea86b3dd6 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 539937 + timestamp: 1714723130243 +- kind: conda + name: zstd + version: 1.5.6 + build: h0ea2cb4_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda + sha256: 768e30dc513568491818fb068ee867c57c514b553915536da09e5d10b4ebf3c3 + md5: 9a17230f95733c04dc40a2b1e5491d74 + depends: + - libzlib >=1.2.13,<2.0.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 349143 + timestamp: 1714723445995 +- kind: conda + name: zstd + version: 1.5.6 + build: ha6fb4c9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + md5: 4d056880988120e29d75bfff282e0f45 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 554846 + timestamp: 1714722996770 +- kind: conda + name: zstd + version: 1.5.6 + build: hb46c0d2_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + sha256: 2d4fd1ff7ee79cd954ca8e81abf11d9d49954dd1fef80f27289e2402ae9c2e09 + md5: d96942c06c3e84bfcc5efb038724a7fd + depends: + - __osx >=11.0 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 405089 + timestamp: 1714723101397 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..6c4aad6 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1114 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@itk-wasm/dam': + specifier: ^1.1.1 + version: 1.1.1 + itk-wasm: + specifier: 1.0.0-b.182 + version: 1.0.0-b.182 + +packages: + + '@ipld/car@5.3.3': + resolution: {integrity: sha512-4vgV5Ml4HCJ2iTx7vYhu0ui+Xxo1HQTtVeYgD+JKd5Wij8TlOFZnxOSickqpLcuf1fdGEStgqVItx15UWfzDYA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/dag-cbor@9.2.2': + resolution: {integrity: sha512-uIEOuruCqKTP50OBWwgz4Js2+LhiBQaxc57cnP71f45b1mHEAo1OCR1Zn/TbvSW/mV1x+JqhacIktkKyaYqhCw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/dag-json@10.2.3': + resolution: {integrity: sha512-itacv1j1hvYgLox2B42Msn70QLzcr0MEo5yGIENuw2SM/lQzq9bmBiMky+kDsIrsqqblKTXcHBZnnmK7D4a6ZQ==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/dag-pb@4.1.3': + resolution: {integrity: sha512-ueULCaaSCcD+dQga6nKiRr+RSeVgdiYiEPKVUu5iQMNYDN+9osd0KpR3UDd9uQQ+6RWuv9L34SchfEwj7YIbOA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/unixfs@3.0.0': + resolution: {integrity: sha512-Tj3/BPOlnemcZQ2ETIZAO8hqAs9KNzWyX5J9+JCL9jDwvYwjxeYjqJ3v+9DusNvTBmJhZnGVP6ijUHrsuOLp+g==} + + '@itk-wasm/dam@1.1.1': + resolution: {integrity: sha512-7+9L3lrLMKF4y6B6qjs8GqfbpxT0waOJUM14NdMNEA6M+BoBS8fdHREhQHo2s7QMA5O7I+Jv7m+dyqlisGnbdQ==} + hasBin: true + + '@multiformats/blake2@1.0.13': + resolution: {integrity: sha512-T1Kzya0wjj85CaVeRSpJ858EnSvW1pw94GSitxYf84VsNdv5XYbJ6QG8y26Ft1bVALzrUCmqkQrR53QHSyu6RA==} + + '@multiformats/murmur3@1.1.3': + resolution: {integrity: sha512-wAPLUErGR8g6Lt+bAZn6218k9YQPym+sjszsXL6o4zfxbA22P+gxWZuuD9wDbwL55xrKO5idpcuQUX7/E3oHcw==} + + '@multiformats/murmur3@2.1.8': + resolution: {integrity: sha512-6vId1C46ra3R1sbJUOFCZnsUIveR9oF20yhPmAFxPm0JfrX3/ZRCgP3YDrBzlGoEppOXnA9czHeYc0T9mB6hbA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@multiformats/sha3@2.0.17': + resolution: {integrity: sha512-7ik6pk178qLO2cpNucgf48UnAOBMkq/2H92DP4SprZOJqM9zqbVaKS7XyYW6UvhRsDJ3wi921fYv1ihTtQHLtA==} + + '@perma/map@1.0.3': + resolution: {integrity: sha512-Bf5njk0fnJGTFE2ETntq0N1oJ6YdCPIpTDn3R3KYZJQdeYSOCNL7mBrFlGnbqav8YQhJA/p81pvHINX9vAtHkQ==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@thewtex/zstddec@0.2.1': + resolution: {integrity: sha512-1yTu7m/qU1nsJy4mCZAB3GAhczsClhw+WIXK0oe598eHcvefH16WLOYN4Uko7K2/Ttz9KEBvvT7WFrZD41ShgA==} + + '@types/emscripten@1.39.13': + resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} + + '@types/node@22.9.3': + resolution: {integrity: sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==} + + '@web3-storage/car-block-validator@1.2.0': + resolution: {integrity: sha512-KKQ/M5WtpH/JlkX+bQYKzdG4azmSF495T7vpewje2xh7MBh1d94/BLblxCcLM/larWvXDxOkbAyTTdlECAAuUw==} + + actor@2.3.1: + resolution: {integrity: sha512-ST/3wnvcP2tKDXnum7nLCLXm+/rsf8vPocXH2Fre6D8FQwNkGDd4JEitBlXj007VQJfiGYRQvXqwOBZVi+JtRg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + + blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + + buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + cborg@4.2.6: + resolution: {integrity: sha512-77vo4KlSwfjCIXcyZUVei4l2gdjesSCeYSx4U/Upwix7pcWZq8uw21sVRpjwn7mjEi//ieJPTj1MRWDHmud1Rg==} + hasBin: true + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comlink@4.4.2: + resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + decompress-tar@4.1.1: + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} + engines: {node: '>=4'} + + decompress-tarbz2@4.1.1: + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} + engines: {node: '>=4'} + + decompress-targz@4.1.1: + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} + engines: {node: '>=4'} + + decompress-unzip@4.0.1: + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} + engines: {node: '>=4'} + + decompress@4.2.1: + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} + engines: {node: '>=4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + file-type@3.9.0: + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} + engines: {node: '>=0.10.0'} + + file-type@5.2.0: + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} + engines: {node: '>=4'} + + file-type@6.2.0: + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} + engines: {node: '>=4'} + + files-from-path@1.1.1: + resolution: {integrity: sha512-M2JDH/0gHqIsdwTnp8IBMWEYUUiHe9ei0ZMTXLxqKFcGxJF4Ki+nicw2k8HP5KGEzPLTyJ81XwLmP8l8rKa6qg==} + engines: {node: '>=18'} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + get-stream@2.3.1: + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} + engines: {node: '>=0.10.0'} + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hamt-sharding@3.0.6: + resolution: {integrity: sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + interface-blockstore@5.3.1: + resolution: {integrity: sha512-nhgrQnz6yUQEqxTFLhlOBurQOy5lWlwCpgFmZ3GTObTVTQS9RZjK/JTozY6ty9uz2lZs7VFJSqwjWAltorJ4Vw==} + + interface-store@6.0.2: + resolution: {integrity: sha512-KSFCXtBlNoG0hzwNa0RmhHtrdhzexp+S+UY2s0rWTBJyfdEIgn6i6Zl9otVqrcFYbYrneBT7hbmHQ8gE0C3umA==} + + ipfs-car@1.2.0: + resolution: {integrity: sha512-A++1UesxqwfNv14NmFxr4MHi+vD9rR6SWr87MU9o0315Mzqys48pEefL8rlCAA9cw2qKYeT/ZPYVtqIMAr6U1Q==} + engines: {node: '>=18'} + hasBin: true + + ipfs-unixfs-exporter@13.6.1: + resolution: {integrity: sha512-pYPI4oBTWao2//sFzAL0pURyojn79q/u5BuK6L5/nVbVUQVw6DcVP5uB1ySdWlTM2H+0Zlhp9+OL9aJBRIICpg==} + + ipfs-unixfs@11.2.0: + resolution: {integrity: sha512-J8FN1qM5nfrDo8sQKQwfj0+brTg1uBfZK2vY9hxci33lcl3BFrsELS9+1+4q/8tO1ASKfxZO8W3Pi2O4sVX2Lg==} + + is-natural-number@4.0.1: + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} + + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + it-filter@3.1.1: + resolution: {integrity: sha512-TOXmVuaSkxlLp2hXKoMTra0WMZMKVFxE3vSsbIA+PbADNCBAHhjJ/lM31vBOUTddHMO34Ku++vU8T9PLlBxQtg==} + + it-last@3.0.6: + resolution: {integrity: sha512-M4/get95O85u2vWvWQinF8SJUc/RPC5bWTveBTYXvlP2q5TF9Y+QhT3nz+CRCyS2YEc66VJkyl/da6WrJ0wKhw==} + + it-map@3.1.1: + resolution: {integrity: sha512-9bCSwKD1yN1wCOgJ9UOl+46NQtdatosPWzxxUk2NdTLwRPXLh+L7iwCC9QKsbgM60RQxT/nH8bKMqm3H/o8IHQ==} + + it-merge@3.0.5: + resolution: {integrity: sha512-2l7+mPf85pyRF5pqi0dKcA54E5Jm/2FyY5GsOaN51Ta0ipC7YZ3szuAsH8wOoB6eKY4XsU4k2X+mzPmFBMayEA==} + + it-parallel@3.0.8: + resolution: {integrity: sha512-URLhs6eG4Hdr4OdvgBBPDzOjBeSSmI+Kqex2rv/aAyYClME26RYHirLVhZsZP5M+ZP6M34iRlXk8Wlqtezuqpg==} + + it-peekable@3.0.5: + resolution: {integrity: sha512-JWQOGMt6rKiPcY30zUVMR4g6YxkpueTwHVE7CMs/aGqCf4OydM6w+7ZM3PvmO1e0TocjuR4aL8xyZWR46cTqCQ==} + + it-pipe@3.0.1: + resolution: {integrity: sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + it-pushable@3.2.3: + resolution: {integrity: sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==} + + it-stream-types@2.0.2: + resolution: {integrity: sha512-Rz/DEZ6Byn/r9+/SBCuJhpPATDF9D+dz5pbgSUyBsCDtza6wtNATrz/jz1gDyNanC3XdLboriHnOC925bZRBww==} + + itk-wasm@1.0.0-b.182: + resolution: {integrity: sha512-OIbrbXosSM3ks4iJv0AApWu3SDZab8vpbzG8pyLtzKw8VouYLoQ2r2HnmLo4+mUWZ4UOSJuqflZnsVnOXw50mw==} + hasBin: true + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + make-dir@1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} + engines: {node: '>=4'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + multiformats@13.3.1: + resolution: {integrity: sha512-QxowxTNwJ3r5RMctoGA5p13w5RbRT2QDkoM+yFlqfLiioBp78nhDjnRLvmSBI9+KAqN4VdgOVWM9c0CHd86m3g==} + + multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + + murmurhash3js-revisited@3.0.0: + resolution: {integrity: sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==} + engines: {node: '>=8.0.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + p-defer@4.0.1: + resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} + engines: {node: '>=12'} + + p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} + + p-timeout@6.1.3: + resolution: {integrity: sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==} + engines: {node: '>=14.16'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + progress-events@1.0.1: + resolution: {integrity: sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + protons-runtime@5.5.0: + resolution: {integrity: sha512-EsALjF9QsrEk6gbCx3lmfHxVN0ah7nG3cY7GySD4xf4g8cr7g543zB88Foh897Sr1RQJ9yDCUsoT1i1H/cVUFA==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + rabin-rs@2.1.0: + resolution: {integrity: sha512-5y72gAXPzIBsAMHcpxZP8eMDuDT98qMP1BqSDHRbHkJJXEgWIN1lA47LxUqzsK6jknOJtgfkQr9v+7qMlFDm6g==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + seek-bzip@1.0.6: + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} + hasBin: true + + sparse-array@1.3.2: + resolution: {integrity: sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + strip-dirs@2.1.0: + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + + tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + + uint8-varint@2.0.4: + resolution: {integrity: sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==} + + uint8arraylist@2.4.8: + resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} + + uint8arrays@3.1.1: + resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} + + uint8arrays@5.1.0: + resolution: {integrity: sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==} + + unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + + wasm-feature-detect@1.8.0: + resolution: {integrity: sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + +snapshots: + + '@ipld/car@5.3.3': + dependencies: + '@ipld/dag-cbor': 9.2.2 + cborg: 4.2.6 + multiformats: 13.3.1 + varint: 6.0.0 + + '@ipld/dag-cbor@9.2.2': + dependencies: + cborg: 4.2.6 + multiformats: 13.3.1 + + '@ipld/dag-json@10.2.3': + dependencies: + cborg: 4.2.6 + multiformats: 13.3.1 + + '@ipld/dag-pb@4.1.3': + dependencies: + multiformats: 13.3.1 + + '@ipld/unixfs@3.0.0': + dependencies: + '@ipld/dag-pb': 4.1.3 + '@multiformats/murmur3': 2.1.8 + '@perma/map': 1.0.3 + actor: 2.3.1 + multiformats: 13.3.1 + protobufjs: 7.4.0 + rabin-rs: 2.1.0 + + '@itk-wasm/dam@1.1.1': + dependencies: + axios: 1.7.7 + commander: 10.0.1 + decompress: 4.2.1 + files-from-path: 1.1.1 + ipfs-car: 1.2.0 + tar: 6.2.1 + transitivePeerDependencies: + - debug + + '@multiformats/blake2@1.0.13': + dependencies: + blakejs: 1.2.1 + multiformats: 9.9.0 + + '@multiformats/murmur3@1.1.3': + dependencies: + multiformats: 9.9.0 + murmurhash3js-revisited: 3.0.0 + + '@multiformats/murmur3@2.1.8': + dependencies: + multiformats: 13.3.1 + murmurhash3js-revisited: 3.0.0 + + '@multiformats/sha3@2.0.17': + dependencies: + js-sha3: 0.8.0 + multiformats: 9.9.0 + + '@perma/map@1.0.3': + dependencies: + '@multiformats/murmur3': 2.1.8 + murmurhash3js-revisited: 3.0.0 + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@thewtex/zstddec@0.2.1': {} + + '@types/emscripten@1.39.13': {} + + '@types/node@22.9.3': + dependencies: + undici-types: 6.19.8 + + '@web3-storage/car-block-validator@1.2.0': + dependencies: + '@multiformats/blake2': 1.0.13 + '@multiformats/murmur3': 1.1.3 + '@multiformats/sha3': 2.0.17 + multiformats: 9.9.0 + uint8arrays: 3.1.1 + + actor@2.3.1: {} + + asynckit@0.4.0: {} + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + bl@1.2.3: + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + blakejs@1.2.1: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + buffer-alloc-unsafe@1.1.0: {} + + buffer-alloc@1.2.0: + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + + buffer-crc32@0.2.13: {} + + buffer-fill@1.0.0: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + cborg@4.2.6: {} + + chalk@5.3.0: {} + + chownr@2.0.0: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comlink@4.4.2: {} + + commander@10.0.1: {} + + commander@11.1.0: {} + + commander@2.20.3: {} + + core-util-is@1.0.3: {} + + decompress-tar@4.1.1: + dependencies: + file-type: 5.2.0 + is-stream: 1.1.0 + tar-stream: 1.6.2 + + decompress-tarbz2@4.1.1: + dependencies: + decompress-tar: 4.1.1 + file-type: 6.2.0 + is-stream: 1.1.0 + seek-bzip: 1.0.6 + unbzip2-stream: 1.4.3 + + decompress-targz@4.1.1: + dependencies: + decompress-tar: 4.1.1 + file-type: 5.2.0 + is-stream: 1.1.0 + + decompress-unzip@4.0.1: + dependencies: + file-type: 3.9.0 + get-stream: 2.3.1 + pify: 2.3.0 + yauzl: 2.10.0 + + decompress@4.2.1: + dependencies: + decompress-tar: 4.1.1 + decompress-tarbz2: 4.1.1 + decompress-targz: 4.1.1 + decompress-unzip: 4.0.1 + graceful-fs: 4.2.11 + make-dir: 1.3.0 + pify: 2.3.0 + strip-dirs: 2.1.0 + + delayed-stream@1.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + eventemitter3@5.0.1: {} + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + file-type@3.9.0: {} + + file-type@5.2.0: {} + + file-type@6.2.0: {} + + files-from-path@1.1.1: + dependencies: + graceful-fs: 4.2.11 + + follow-redirects@1.15.9: {} + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fs-constants@1.0.0: {} + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + get-stream@2.3.1: + dependencies: + object-assign: 4.1.1 + pinkie-promise: 2.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + graceful-fs@4.2.11: {} + + hamt-sharding@3.0.6: + dependencies: + sparse-array: 1.3.2 + uint8arrays: 5.1.0 + + ieee754@1.2.1: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + interface-blockstore@5.3.1: + dependencies: + interface-store: 6.0.2 + multiformats: 13.3.1 + + interface-store@6.0.2: {} + + ipfs-car@1.2.0: + dependencies: + '@ipld/car': 5.3.3 + '@ipld/dag-cbor': 9.2.2 + '@ipld/dag-json': 10.2.3 + '@ipld/dag-pb': 4.1.3 + '@ipld/unixfs': 3.0.0 + '@web3-storage/car-block-validator': 1.2.0 + files-from-path: 1.1.1 + ipfs-unixfs-exporter: 13.6.1 + multiformats: 13.3.1 + sade: 1.8.1 + varint: 6.0.0 + + ipfs-unixfs-exporter@13.6.1: + dependencies: + '@ipld/dag-cbor': 9.2.2 + '@ipld/dag-json': 10.2.3 + '@ipld/dag-pb': 4.1.3 + '@multiformats/murmur3': 2.1.8 + hamt-sharding: 3.0.6 + interface-blockstore: 5.3.1 + ipfs-unixfs: 11.2.0 + it-filter: 3.1.1 + it-last: 3.0.6 + it-map: 3.1.1 + it-parallel: 3.0.8 + it-pipe: 3.0.1 + it-pushable: 3.2.3 + multiformats: 13.3.1 + p-queue: 8.0.1 + progress-events: 1.0.1 + + ipfs-unixfs@11.2.0: + dependencies: + protons-runtime: 5.5.0 + uint8arraylist: 2.4.8 + + is-natural-number@4.0.1: {} + + is-stream@1.1.0: {} + + isarray@1.0.0: {} + + it-filter@3.1.1: + dependencies: + it-peekable: 3.0.5 + + it-last@3.0.6: {} + + it-map@3.1.1: + dependencies: + it-peekable: 3.0.5 + + it-merge@3.0.5: + dependencies: + it-pushable: 3.2.3 + + it-parallel@3.0.8: + dependencies: + p-defer: 4.0.1 + + it-peekable@3.0.5: {} + + it-pipe@3.0.1: + dependencies: + it-merge: 3.0.5 + it-pushable: 3.2.3 + it-stream-types: 2.0.2 + + it-pushable@3.2.3: + dependencies: + p-defer: 4.0.1 + + it-stream-types@2.0.2: {} + + itk-wasm@1.0.0-b.182: + dependencies: + '@itk-wasm/dam': 1.1.1 + '@thewtex/zstddec': 0.2.1 + '@types/emscripten': 1.39.13 + axios: 1.7.7 + chalk: 5.3.0 + comlink: 4.4.2 + commander: 11.1.0 + fs-extra: 11.2.0 + glob: 8.1.0 + markdown-table: 3.0.4 + mime-types: 2.1.35 + wasm-feature-detect: 1.8.0 + transitivePeerDependencies: + - debug + + js-sha3@0.8.0: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + long@5.2.3: {} + + make-dir@1.3.0: + dependencies: + pify: 3.0.0 + + markdown-table@3.0.4: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + + mri@1.2.0: {} + + multiformats@13.3.1: {} + + multiformats@9.9.0: {} + + murmurhash3js-revisited@3.0.0: {} + + object-assign@4.1.1: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + p-defer@4.0.1: {} + + p-queue@8.0.1: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.3 + + p-timeout@6.1.3: {} + + pend@1.2.0: {} + + pify@2.3.0: {} + + pify@3.0.0: {} + + pinkie-promise@2.0.1: + dependencies: + pinkie: 2.0.4 + + pinkie@2.0.4: {} + + process-nextick-args@2.0.1: {} + + progress-events@1.0.1: {} + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.9.3 + long: 5.2.3 + + protons-runtime@5.5.0: + dependencies: + uint8-varint: 2.0.4 + uint8arraylist: 2.4.8 + uint8arrays: 5.1.0 + + proxy-from-env@1.1.0: {} + + rabin-rs@2.1.0: {} + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + seek-bzip@1.0.6: + dependencies: + commander: 2.20.3 + + sparse-array@1.3.2: {} + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + strip-dirs@2.1.0: + dependencies: + is-natural-number: 4.0.1 + + tar-stream@1.6.2: + dependencies: + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + readable-stream: 2.3.8 + to-buffer: 1.1.1 + xtend: 4.0.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + through@2.3.8: {} + + to-buffer@1.1.1: {} + + uint8-varint@2.0.4: + dependencies: + uint8arraylist: 2.4.8 + uint8arrays: 5.1.0 + + uint8arraylist@2.4.8: + dependencies: + uint8arrays: 5.1.0 + + uint8arrays@3.1.1: + dependencies: + multiformats: 9.9.0 + + uint8arrays@5.1.0: + dependencies: + multiformats: 13.3.1 + + unbzip2-stream@1.4.3: + dependencies: + buffer: 5.7.1 + through: 2.3.8 + + undici-types@6.19.8: {} + + universalify@2.0.1: {} + + util-deprecate@1.0.2: {} + + varint@6.0.0: {} + + wasm-feature-detect@1.8.0: {} + + wrappy@1.0.2: {} + + xtend@4.0.2: {} + + yallist@4.0.0: {} + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 diff --git a/pyproject.toml b/pyproject.toml index 232f767..6b3a5c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -123,103 +123,103 @@ name = "itkwasm-cuberille" platforms = ["win-64", "linux-64", "linux-aarch64", "osx-arm64"] version = "0.1.0" -[environments] +[tool.pixi.environments] native = ["native"] python = ["python"] -[dependencies] +[tool.pixi.dependencies] python = "3.12.*" pnpm = ">=9.12.1,<10" hatch = ">=1.13.0,<2" pip = ">=24.2,<25" -[target.win-64.dependencies] +[tool.pixi.target.win-64.dependencies] m2w64-jq = ">=1.6.0,<2" -[target.unix.dependencies] +[tool.pixi.target.unix.dependencies] jq = ">=1.7.1,<2" -[activation] +[tool.pixi.activation] scripts = ["wasm/itk_wasm_env.bash"] -[tasks.build] +[tool.pixi.tasks.build] depends-on = ["build-native", "build-typescript", "build-python"] description = "Build the project" -[tasks.test] +[tool.pixi.tasks.test] cmd = "pnpm run test" depends-on = ["download-test-data", "test-native", "test-python"] description = "Run tests" -[tasks.publish] +[tool.pixi.tasks.publish] depends-on = ["publish-typescript", "publish-python-wasi", "publish-python-emscripten", "publish-python-dispatch"] description = "Synchronize package versions" -[tasks.version-sync] +[tool.pixi.tasks.version-sync] depends-on = ["version-sync-typescript", "version-sync-python-wasi", "version-sync-python-emscripten", "version-sync-python-dispatch"] description = "Synchronize package versions" -[tasks.pack-test-data] +[tool.pixi.tasks.pack-test-data] cmd = "npx dam pack test/data test/data.tar.gz" depends-on = ["install-typescript"] outputs = ["test/data.tar.gz"] description = "Pack the data into a tarball for upload and print CID for package.json" -[tasks.download-test-data] +[tool.pixi.tasks.download-test-data] cmd = "npx dam download test/data test/data.tar.gz $ITK_WASM_TEST_DATA_HASH $ITK_WASM_TEST_DATA_URLS" depends-on = ["install-typescript"] outputs = ["test/data.tar.gz"] description = "Download test data" -[tasks.install-typescript] +[tool.pixi.tasks.install-typescript] cmd = "pnpm install" description = "Install typescript dependencies" -[tasks.build-typescript] +[tool.pixi.tasks.build-typescript] cmd = "pnpm run build:gen:typescript" depends-on = ["install-typescript"] description = "Build typescript components" -[tasks.test-typescript] +[tool.pixi.tasks.test-typescript] cmd = "pnpm test" depends-on = ["download-test-data"] cwd = "typescript" description = "Test typescript components" -[tasks.version-sync-typescript] +[tool.pixi.tasks.version-sync-typescript] cmd = '''version=$(cat package.json | jq .version) && jq ".version = $version" typescript/package.json > typescript/package.json.tmp && mv typescript/package.json.tmp typescript/package.json''' -[tasks.publish-typescript] +[tool.pixi.tasks.publish-typescript] cmd = "pnpm publish --filter \"{typescript}\"" -[feature.python.dependencies] +[tool.pixi.feature.python.dependencies] pytest = ">=8.3.3,<9" -[feature.python.pypi-dependencies] +[tool.pixi.feature.python.pypi-dependencies] pyodide-py = ">=0.26.4, <0.27" pytest-pyodide = ">=0.58.3, <0.59" itkwasm = ">=1.0b180, <2" -[tasks.build-python] +[tool.pixi.tasks.build-python] cmd = "pnpm run build:gen:python" depends-on = ["install-typescript"] description = "Build python components" -[feature.python.tasks.download-pyodide] +[tool.pixi.feature.python.tasks.download-pyodide] cmd = '''curl -L https://github.com/pyodide/pyodide/releases/download/0.26.4/pyodide-0.26.4.tar.bz2 -o pyodide.tar.bz2 && tar xjf pyodide.tar.bz2 && rm pyodide.tar.bz2''' outputs = ["pyodide"] description = "Download Pyodide" -[feature.python.tasks.test-wasi] +[tool.pixi.feature.python.tasks.test-wasi] cmd = "pytest" cwd = "python/itkwasm-cuberille-wasi" description = "Run tests for itkwasm-cuberille-wasi" -[feature.python.tasks.serve-emscripten] +[tool.pixi.feature.python.tasks.serve-emscripten] cmd = '''mkdir -p dist/pyodide && cp -r ../../pyodide dist/ && hatch build -t wheel ./dist/pyodide/ && @@ -229,7 +229,7 @@ cwd = "python/itkwasm-cuberille-emscripten" depends-on = ["download-pyodide"] description = "Serve itkwasm-cuberille-emscripten for development" -[feature.python.tasks.test-emscripten] +[tool.pixi.feature.python.tasks.test-emscripten] cmd = '''mkdir -p dist/pyodide && cp -r ../../pyodide dist/ && hatch build -t wheel ./dist/pyodide/ && @@ -238,7 +238,7 @@ cwd = "python/itkwasm-cuberille-emscripten" depends-on = ["download-pyodide"] description = "Run tests for itkwasm-cuberille-emscripten" -[feature.python.tasks.serve-dispatch] +[tool.pixi.feature.python.tasks.serve-dispatch] cmd = '''mkdir -p dist/pyodide && cp -r ../../pyodide dist/ && hatch build -t wheel ./dist/pyodide/ && @@ -248,7 +248,7 @@ cwd = "python/itkwasm-cuberille" depends-on = ["download-pyodide"] description = "Serve itkwasm-cuberille for development" -[feature.python.tasks.test-dispatch] +[tool.pixi.feature.python.tasks.test-dispatch] cmd = '''mkdir -p dist/pyodide && cp -r ../../pyodide dist/ && hatch build -t wheel ./dist/pyodide/ && @@ -261,44 +261,44 @@ cwd = "python/itkwasm-cuberille" depends-on = ["download-pyodide"] description = "Run python tests for itkwasm-cuberille" -[feature.python.tasks.test-python] +[tool.pixi.feature.python.tasks.test-python] depends-on = ["test-wasi", "test-emscripten", "test-dispatch"] description = "Run tests for all Python packages" -[tasks.version-sync-python-wasi] +[tool.pixi.tasks.version-sync-python-wasi] cmd = '''version=$(cat ../../package.json | jq -r .version) && echo "version is $version" && hatch version $version''' cwd = "python/itkwasm-cuberille-wasi" -[tasks.version-sync-python-emscripten] +[tool.pixi.tasks.version-sync-python-emscripten] cmd = '''version=$(cat ../../package.json | jq -r .version) && hatch version $version''' cwd = "python/itkwasm-cuberille-emscripten" -[tasks.version-sync-python-dispatch] +[tool.pixi.tasks.version-sync-python-dispatch] cmd = '''version=$(cat ../../package.json | jq -r .version) && hatch version $version''' cwd = "python/itkwasm-cuberille" -[tasks.publish-python-user-check] +[tool.pixi.tasks.publish-python-user-check] cmd = "if [ -n \"$HATCH_INDEX_USER\"]; then echo \"HATCH_INDEX_USER is set\"; else echo \"HATCH_INDEX_USER is not set\"; exit 1; fi" -[tasks.publish-python-wasi] +[tool.pixi.tasks.publish-python-wasi] cmd = '''hatch build && hatch publish''' cwd = "python/itkwasm-cuberille-wasi" -[tasks.publish-python-emscripten] +[tool.pixi.tasks.publish-python-emscripten] cmd = '''hatch build && hatch publish''' cwd = "python/itkwasm-cuberille-emscripten" -[tasks.publish-python-dispatch] +[tool.pixi.tasks.publish-python-dispatch] cmd = '''hatch build && hatch publish''' cwd = "python/itkwasm-cuberille" -[feature.native.tasks.clone-itk] +[tool.pixi.feature.native.tasks.clone-itk] cmd = ["stat", "$ITK_WASM_ITK_SOURCE_DIR", ">/dev/null", "||", "git", "clone", "--depth=10", @@ -309,7 +309,7 @@ cmd = ["stat", "$ITK_WASM_ITK_SOURCE_DIR", ">/dev/null", "||", outputs = ["native/ITK/LICENSE"] description = "Fetch ITK's source code" -[feature.native.tasks.configure-itk] +[tool.pixi.feature.native.tasks.configure-itk] cmd = '''cmake -B$ITK_WASM_ITK_BUILD_DIR -S$ITK_WASM_ITK_SOURCE_DIR -GNinja -DCMAKE_CXX_STANDARD:STRING=20 -DCMAKE_BUILD_TYPE:STRING=Debug @@ -332,13 +332,13 @@ depends-on = ["clone-itk"] outputs = ["native/ITK-build/CMakeFiles/**"] description = "Configure ITK" -[feature.native.tasks.build-itk] +[tool.pixi.feature.native.tasks.build-itk] cmd = "cmake --build $ITK_WASM_ITK_BUILD_DIR" depends-on = ["configure-itk"] outputs = ["native/ITK-build/**"] description = "Build ITK" -[feature.native.tasks.clone-itk-wasm] +[tool.pixi.feature.native.tasks.clone-itk-wasm] cmd = ["stat", "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR", ">/dev/null", "||", "git", "clone", "--depth=10", @@ -349,7 +349,7 @@ cmd = ["stat", "$ITK_WASM_WEBASSEMBLY_INTERFACE_SOURCE_DIR", ">/dev/null", "||", outputs = ["native/ITK-Wasm/LICENSE"] description = "Fetch ITK's source code" -[feature.native.tasks.configure-itk-wasm] +[tool.pixi.feature.native.tasks.configure-itk-wasm] cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build -S$ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm -GNinja @@ -361,12 +361,12 @@ depends-on = ["build-itk", "clone-itk-wasm"] outputs = ["native/ITK-Wasm-build/CMakeFiles/"] description = "Configure ITK-Wasm" -[feature.native.tasks.build-itk-wasm] +[tool.pixi.feature.native.tasks.build-itk-wasm] cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/ITK-Wasm-build" depends-on = ["configure-itk-wasm"] description = "Build ITK-Wasm" -[feature.native.tasks.configure-native] +[tool.pixi.feature.native.tasks.configure-native] cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build -S. -GNinja -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR -DBUILD_TESTING:BOOL=ON @@ -375,12 +375,12 @@ cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build -S. -GNinja depends-on = ["build-itk-wasm"] description = "Configure native build" -[feature.native.tasks.build-native] +[tool.pixi.feature.native.tasks.build-native] cmd = "cmake --build $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" depends-on = ["configure-native"] description = "Build native binaries" -[feature.native.tasks.test-native] +[tool.pixi.feature.native.tasks.test-native] cmd = "ctest --test-dir $ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build" depends-on = ["build-native"] description = "Test native binaries" diff --git a/wasm/cuberille/cuberille.cxx b/wasm/cuberille/cuberille.cxx index bb1baa8..9124b49 100644 --- a/wasm/cuberille/cuberille.cxx +++ b/wasm/cuberille/cuberille.cxx @@ -16,6 +16,9 @@ * *=========================================================================*/ +#include "itkMesh.h" + +#include "itkMeshJSON.h" #include "itkPipeline.h" #include "itkInputImage.h" #include "itkOutputMesh.h" From 848d1835cc6d0dbc7f49d182b4969dee1c269c3e Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 26 Nov 2024 08:58:54 -0500 Subject: [PATCH 04/16] ENH: Constrain Pixi native build ITK modules --- pyproject.toml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6b3a5c6..a9601f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -318,8 +318,20 @@ cmd = '''cmake -B$ITK_WASM_ITK_BUILD_DIR -S$ITK_WASM_ITK_SOURCE_DIR -GNinja -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_STATIC_LIBS:BOOL=ON -DITK_LEGACY_REMOVE:BOOL=ON - -DITK_BUILD_DEFAULT_MODULES:BOOL=ON - -DITKGroup_IO:BOOL=ON + -DITK_BUILD_DEFAULT_MODULES:BOOL=OFF + -DITKGroup_Core:BOOL=OFF + -DModule_ITKCommon:BOOL=ON + -DModule_ITKImageFunction:BOOL=ON + -DModule_ITKImageGradient:BOOL=ON + -DModule_ITKMesh:BOOL=ON + -DModule_ITKConnectedComponents:BOOL=ON + -DModule_ITKIOImageBase:BOOL=ON + -DModule_ITKQuadEdgeMesh:BOOL=ON + -DModule_ITKQuadEdgeMeshFiltering:BOOL=ON + -DModule_ITKThresholding:BOOL=ON + -DModule_ITKTestKernel:BOOL=ON + -DModule_ITKIOTransformBase:BOOL=ON + -DModule_ITKIOMeshBase:BOOL=ON -DH5_HAVE_GETPWUID:BOOL=OFF -DModule_MeshToPolyData:BOOL=ON -DDO_NOT_BUILD_ITK_TEST_DRIVER:BOOL=ON From 4e368dcc200becbb61452149593618240dc45ea0 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 26 Nov 2024 10:07:02 -0500 Subject: [PATCH 05/16] ENH: cuberille pipeline implementation and native tests --- .gitignore | 5 +++- CMakeLists.txt | 3 +- pyproject.toml | 1 + wasm/CMakeLists.txt | 8 ++++++ wasm/cuberille/CMakeLists.txt | 34 ++++++++++++++++++++++ wasm/cuberille/cuberille.cxx | 53 ++++++++++++++++++++++++++--------- 6 files changed, 89 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 584b5b7..5c029c2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,7 @@ native/ node_modules/ python/ typescript/ -wasi-build/ \ No newline at end of file +wasi-build/ +pyodide/ +test/data.tar.gz +test/data/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 3acbec5..d55a398 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,8 @@ if(NOT ITK_SOURCE_DIR) find_package(ITK 5.2 REQUIRED) list(APPEND CMAKE_MODULE_PATH ${ITK_CMAKE_DIR}) include(ITKModuleExternal) - if(WASI OR EMSCRIPTEN) + option(BUILD_ITK_WASM_PIPELINES "Build for WebAssembly pipelines" OFF) + if(WASI OR EMSCRIPTEN OR BUILD_ITK_WASM_PIPELINES) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_subdirectory(wasm) endif() diff --git a/pyproject.toml b/pyproject.toml index a9601f0..5f56a40 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -382,6 +382,7 @@ description = "Build ITK-Wasm" cmd = '''cmake -B$ITK_WASM_NATIVE_WORKSPACE/itkwasm-cuberille-build -S. -GNinja -DITK_DIR:PATH=$ITK_WASM_ITK_BUILD_DIR -DBUILD_TESTING:BOOL=ON + -DBUILD_ITK_WASM_PIPELINES:BOOL=ON -DCMAKE_CXX_STANDARD:STRING=20 -DCMAKE_BUILD_TYPE:STRING=Debug''' depends-on = ["build-itk-wasm"] diff --git a/wasm/CMakeLists.txt b/wasm/CMakeLists.txt index 6bf5aff..777f622 100644 --- a/wasm/CMakeLists.txt +++ b/wasm/CMakeLists.txt @@ -3,8 +3,16 @@ project(itkwasm-cuberille LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) +set(io_components) +if (NOT WASI AND NOT EMSCRIPTEN) + set(io_components + ITKIOMeta + ITKIOMeshVTK) +endif() + find_package(ITK REQUIRED COMPONENTS WebAssemblyInterface + ${io_components} ) include(${ITK_USE_FILE}) diff --git a/wasm/cuberille/CMakeLists.txt b/wasm/cuberille/CMakeLists.txt index 28e1758..e7888d7 100644 --- a/wasm/cuberille/CMakeLists.txt +++ b/wasm/cuberille/CMakeLists.txt @@ -2,3 +2,37 @@ add_executable(cuberille cuberille.cxx) target_link_libraries(cuberille PUBLIC ${ITK_LIBRARIES}) add_test(NAME cuberille-help COMMAND cuberille --help) + +add_test(NAME cuberille-defaults + COMMAND cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/fuel.mha + ${CMAKE_CURRENT_BINARY_DIR}/cuberille-defaults.vtk) + +add_test(NAME cuberille-convergence-options + COMMAND cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/fuel.mha + ${CMAKE_CURRENT_BINARY_DIR}/cuberille-convergence-options.vtk + --surface-distance-threshold 0.2 + --step-length 0.24 + --step-relaxation-factor 0.95 + --max-steps 100) + +add_test(NAME cuberille-no-projection + COMMAND cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/fuel.mha + ${CMAKE_CURRENT_BINARY_DIR}/cuberille-no-projection.vtk + --surface-distance-threshold 0.2 + --step-length 0.24 + --step-relaxation-factor 0.95 + --max-steps 100 + --no-projection) + +add_test(NAME cuberille-quadrilateral-faces + COMMAND cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/fuel.mha + ${CMAKE_CURRENT_BINARY_DIR}/cuberille-quadrilateral-faces.vtk + --surface-distance-threshold 0.2 + --step-length 0.24 + --step-relaxation-factor 0.95 + --max-steps 100 + --quadrilateral-faces) \ No newline at end of file diff --git a/wasm/cuberille/cuberille.cxx b/wasm/cuberille/cuberille.cxx index 9124b49..0007ac2 100644 --- a/wasm/cuberille/cuberille.cxx +++ b/wasm/cuberille/cuberille.cxx @@ -24,46 +24,72 @@ #include "itkOutputMesh.h" #include "itkSupportInputImageTypes.h" +#include "itkCuberilleImageToMeshFilter.h" +#include "itkLinearInterpolateImageFunction.h" +#include "itkBSplineInterpolateImageFunction.h" +#include "itkWindowedSincInterpolateImageFunction.h" + template int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) { using ImageType = TImage; constexpr unsigned int Dimension = ImageType::ImageDimension; - using PixelType = typename ImageType::PixelType; using MeshType = itk::Mesh; - + using PixelType = typename ImageType::PixelType; + using MeshType = itk::Mesh; pipeline.get_option("image")->required()->type_name("INPUT_IMAGE"); + double isoSurfaceValue = 1.0; + pipeline.add_flag("--iso-surface-value", isoSurfaceValue, "Value of the iso-surface for which to generate the mesh. Pixels equal to or greater than this value are considered to lie on the surface or inside the resultant mesh."); + bool quadrilateralFaces = false; pipeline.add_flag("--quadrilateral-faces", quadrilateralFaces, "Generate quadrilateral faces instead of triangle faces."); bool verticesNotProjectedToIsoSurface = false; - pipeline.add_flag("--vertices-not-projected-to-iso-surface", verticesNotProjectedToIsoSurface, "Do not project the vertices to the iso-surface."); + pipeline.add_flag("--no-projection", verticesNotProjectedToIsoSurface, "Do not project the vertices to the iso-surface."); bool imagePixelToCellData = false; pipeline.add_flag("--image-pixel-to-cell-data", imagePixelToCellData, "Whether the adjacent input pixel value should be saved as cell data in the output mesh."); - double projectVertexSurfaceDistanceThreshold = 0.5; - pipeline.add_option("--project-vertex-surface-distance-threshold", projectVertexSurfaceDistanceThreshold, "Threshold for the distance from the iso-surface during vertex projection in pixel units. Smaller is smoother but takes longer."); + double projectVertexSurfaceDistanceThreshold = 0.2; + pipeline.add_option("--surface-distance-threshold", projectVertexSurfaceDistanceThreshold, "Threshold for the distance from the iso-surface during vertex projection in pixel units. Smaller is smoother but takes longer."); double projectVertexStepLength = -1.0; - pipeline.add_option("--project-vertex-step-length", projectVertexStepLength, "Initial step length for vertex projection in physical units. Default is max spacing * 0.25."); + pipeline.add_option("--step-length", projectVertexStepLength, "Initial step length for vertex projection in physical units. Default is max spacing * 0.25."); double projectVertexStepLengthRelaxationFactor = 0.95; - pipeline.add_option("--project-vertex-step-length-relaxation-factor", projectVertexStepLengthRelaxationFactor, "The step length relaxation factor during vertex projection. The step length is multiplied by this factor each iteration to allow convergence, [0.0, 1.0]."); + pipeline.add_option("--step-relaxation-factor", projectVertexStepLengthRelaxationFactor, "The step length relaxation factor during vertex projection. The step length is multiplied by this factor each iteration to allow convergence, [0.0, 1.0].")->check(CLI::Range(0.0, 1.0)); uint32_t projectVertexMaximumNumberOfSteps = 50; - pipeline.add_option("--project-vertex-maximum-number-of-steps", projectVertexMaximumNumberOfSteps, "The maximum number of steps used during vertex projection."); - - bool generateQuadrilateralFaces = false; - pipeline.add_flag("--generate-quadrilateral-faces", generateQuadrilateralFaces, "Generate quadrilateral faces instead of triangle faces."); + pipeline.add_option("--max-steps", projectVertexMaximumNumberOfSteps, "The maximum number of steps used during vertex projection."); itk::wasm::OutputMesh mesh; pipeline.add_option("mesh", mesh, "Output mesh.")->required()->type_name("OUTPUT_MESH"); ITK_WASM_PARSE(pipeline); - // Pipeline code goes here + using InterpolatorType = itk::LinearInterpolateImageFunction; + using CuberilleType = itk::CuberilleImageToMeshFilter; + + const auto cuberille = CuberilleType::New(); + + cuberille->SetInput(image); + cuberille->SetIsoSurfaceValue(isoSurfaceValue); + cuberille->SetGenerateTriangleFaces(!quadrilateralFaces); + cuberille->SetProjectVerticesToIsoSurface(!verticesNotProjectedToIsoSurface); + cuberille->SetSavePixelAsCellData(imagePixelToCellData); + cuberille->SetProjectVertexSurfaceDistanceThreshold(projectVertexSurfaceDistanceThreshold); + if (projectVertexStepLength > 0.0) + { + cuberille->SetProjectVertexStepLength(projectVertexStepLength); + } + cuberille->SetProjectVertexStepLengthRelaxationFactor(projectVertexStepLengthRelaxationFactor); + cuberille->SetProjectVertexMaximumNumberOfSteps(projectVertexMaximumNumberOfSteps); + + ITK_WASM_CATCH_EXCEPTION(pipeline, cuberille->Update()); + + const typename MeshType::ConstPointer outputMesh = cuberille->GetOutput(); + mesh.Set(outputMesh); return EXIT_SUCCESS; } @@ -91,6 +117,7 @@ int main(int argc, char * argv[]) itk::wasm::Pipeline pipeline("cuberille", "Create a mesh from an image via cuberille implicit surface polygonization.", argc, argv); return itk::wasm::SupportInputImageTypes + // uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, float, double> + uint8_t> ::Dimensions<2U, 3U>("image", pipeline); } From 507849b8382b87e42469bf8ac447d7f654d918c7 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 26 Nov 2024 10:35:53 -0500 Subject: [PATCH 06/16] ENH: Add bspline and windowed-sinc interpolation for wasm --- wasm/cuberille/CMakeLists.txt | 22 ++++++++++++- wasm/cuberille/cuberille.cxx | 58 +++++++++++++++++++++++++++++------ 2 files changed, 70 insertions(+), 10 deletions(-) diff --git a/wasm/cuberille/CMakeLists.txt b/wasm/cuberille/CMakeLists.txt index e7888d7..c3b3029 100644 --- a/wasm/cuberille/CMakeLists.txt +++ b/wasm/cuberille/CMakeLists.txt @@ -35,4 +35,24 @@ add_test(NAME cuberille-quadrilateral-faces --step-length 0.24 --step-relaxation-factor 0.95 --max-steps 100 - --quadrilateral-faces) \ No newline at end of file + --quadrilateral-faces) + +add_test(NAME cuberille-bspline + COMMAND cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/fuel.mha + ${CMAKE_CURRENT_BINARY_DIR}/cuberille-bspline.vtk + --surface-distance-threshold 0.2 + --step-length 0.24 + --step-relaxation-factor 0.95 + --max-steps 100 + --interpolator bspline) + +add_test(NAME cuberille-windowed-sinc + COMMAND cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/fuel.mha + ${CMAKE_CURRENT_BINARY_DIR}/cuberille-windowed-sinc.vtk + --surface-distance-threshold 0.2 + --step-length 0.24 + --step-relaxation-factor 0.95 + --max-steps 100 + --interpolator windowed-sinc) \ No newline at end of file diff --git a/wasm/cuberille/cuberille.cxx b/wasm/cuberille/cuberille.cxx index 0007ac2..337cb7b 100644 --- a/wasm/cuberille/cuberille.cxx +++ b/wasm/cuberille/cuberille.cxx @@ -29,13 +29,12 @@ #include "itkBSplineInterpolateImageFunction.h" #include "itkWindowedSincInterpolateImageFunction.h" -template -int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) +template +int cuberilleWithInterpolator(itk::wasm::Pipeline & pipeline, const TImage * image) { using ImageType = TImage; - constexpr unsigned int Dimension = ImageType::ImageDimension; - using PixelType = typename ImageType::PixelType; - using MeshType = itk::Mesh; + using MeshType = TMesh; + using InterpolatorType = TInterpolator; pipeline.get_option("image")->required()->type_name("INPUT_IMAGE"); @@ -68,11 +67,15 @@ int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) ITK_WASM_PARSE(pipeline); - using InterpolatorType = itk::LinearInterpolateImageFunction; - using CuberilleType = itk::CuberilleImageToMeshFilter; + using InterpolatorBaseType = itk::InterpolateImageFunction; + using CuberilleType = itk::CuberilleImageToMeshFilter; const auto cuberille = CuberilleType::New(); + const auto interpolator = InterpolatorType::New(); + interpolator->SetInputImage(image); + cuberille->SetInterpolator(interpolator); + cuberille->SetInput(image); cuberille->SetIsoSurfaceValue(isoSurfaceValue); cuberille->SetGenerateTriangleFaces(!quadrilateralFaces); @@ -94,6 +97,44 @@ int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) return EXIT_SUCCESS; } +template +int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) +{ + using ImageType = TImage; + constexpr unsigned int Dimension = ImageType::ImageDimension; + using PixelType = typename ImageType::PixelType; + using MeshType = itk::Mesh; + + std::string interpolationMethod = "linear"; + pipeline.add_option("--interpolator", interpolationMethod, "Interpolation method to use for the image.")->check(CLI::IsMember({"linear", "bspline", "windowed-sinc"})); + + ITK_WASM_PRE_PARSE(pipeline); + + if (interpolationMethod == "linear") + { + using InterpolatorType = itk::LinearInterpolateImageFunction; + return cuberilleWithInterpolator(pipeline, image); + } + else if (interpolationMethod == "bspline") + { + using InterpolatorType = itk::BSplineInterpolateImageFunction; + return cuberilleWithInterpolator(pipeline, image); + } + else if (interpolationMethod == "windowed-sinc") + { + constexpr unsigned int VRadius = 3; + using InterpolatorType = itk::WindowedSincInterpolateImageFunction; + return cuberilleWithInterpolator(pipeline, image); + } + else + { + std::ostringstream ostrm; + ostrm << "Unknown interpolation method: " << interpolationMethod; + CLI::Error err("Runtime error", ostrm.str(), 1); + return pipeline.exit(err); + } +} + template class PipelineFunctor { @@ -117,7 +158,6 @@ int main(int argc, char * argv[]) itk::wasm::Pipeline pipeline("cuberille", "Create a mesh from an image via cuberille implicit surface polygonization.", argc, argv); return itk::wasm::SupportInputImageTypes - uint8_t> + uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, float, double> ::Dimensions<2U, 3U>("image", pipeline); } From 5f134b5f781befc72d293bfd941a2947bfeb8bac Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 26 Nov 2024 11:02:57 -0500 Subject: [PATCH 07/16] ENH: Add brain-seg.nii.gz test dataset From brain2print.org with the default brain (Chris's T1), and the "Tissue GWM (High Acc)" model applied. --- test/Input/brain-seg.nii.gz | Bin 0 -> 219937 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/Input/brain-seg.nii.gz diff --git a/test/Input/brain-seg.nii.gz b/test/Input/brain-seg.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0d20dbd200fc56db1862ff660bb90a06132b8426 GIT binary patch literal 219937 zcmeFZ`Cn3N_dX7qddjpqm2*BGSN6gtAw&iKkk~&tFns~Ib z)I@V0u^cETQbU|^LUKev6mYZm*XKWYpXc-a@!|lbF*0MUTa;~wZJ6)@kasY zq?eTR@zCH9g1>%%w>N55V)JF!87B5-B_gBJ?5J|>VDrJ_1MUjzReavC;(U1lb?VS0yPfRWuiPX zK(_;Clf+K5$Ysc|9ofp|@Y$SOaHJE$G=x~@bE_{B7Uz+8MudksKM0Zy{|_I1KnaYF zgs!QccN;d2JgA2h@WZ66Xrc9@GO9!k6)I5}!knuIqziPNHjCNOhmkgE8(an-<{B)g;ue|N2{v z;5Tn#rX5g>q9Q-Ak5un}9=BF|Z=S_|D!+aDnM2$7TX5D1g@XpMi?{sJkxNt?3+j?g z;C&>S;{Tg%c9>xPhnoP;Hb|Ug3qE_rS@R8e)^8D-*-BFEb88U^94<$R=b0>;1E#lh zhV7G?$768j-cmGJD_MP56{5dj@x;`Ue7D>+!U%)4WuL3z*h1mY(;k|JL2TsS{%>O)Fk5pq8 zr2k8U)PqKwxHQBca~tlNmsvO+p^W69JlH~Fi0gOl*=<1XJ?-IEU`a17;xC9#Ec-wf z(suS@V`Jg${df1n8UEX+A)M+91+CQ;)_H)hY0A?PS|%w`sy9&ONiodtlx>mv*pDRf z>sz7DCZ-``D0}EkUMGPndmvz{7y=0I+j(qDmJM9v%BN*N35A6j5c>&YtdO~Wn2mXg zDsqK&re6XAKC?iSts+aR&h+tinPlFPbm!l$RxF$m?`2MK)_GARc!#Ea^c5s*ZF*S; zCL4<4fHUjnnG~n5b!?0we&9v$XwqJH`XI1UFRCob)+WYz$t=i->{83)3?kMnRQ+|i zzZ~`Fe`&)7ytd|&t?4?|+x*E3Q)Ijs7poViGqC;oYCJfUd_;u&oOFJ(%tG5sqSVK1 z%Q21%iY7!(XewiM}{g zw-UifG6=Ik5|*AtT|u!gL{g+q3*G_V=rl{zZ`rD;o!1a+_u>d9?~g_O;bCP|-Hz@5 zoxLHlHf$Ir@gAS`>PQn-D_NaLI`~^xk|7hg$2Yn8djZ$eg*l*XrSA946d9)hWx8=j z}acBa*rn-U6v?6bGx&lP<^ZwaQ#PTnlj$#oHBAs2<0PY$>7GqDe0!)<(}v#W9*$!CW^g?bFAVE4<-Hxy~->pm%gMHN-4hMD1xsx%00q~l|ry&D)^l5Upf2_>SWqC`& zORN8?M;rnDxiXs&!$^_$iZG^`?Tf!Ch0~+bw

BQ?~jwSJPQ?-_;B@M+y%u`3R@V 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 H;mrUv? zsI0x$n*`k@D^*ZAYF?s)KmSi=`UwAmrs+a}0 zRAcJlI(7p_fW{c#%-wDDqS-;yHPiiMAE67lP$DZ?g%qyDUJzEaeQm{P|1+LkPaQG# zRmVjJ0se}Qn<&Fi5Dk>FIby2*6j8uEx^yN%|5rZpp|MXp<+iTw6lJ$}_RtQaWKxV_ zb$cVq#>Eekoqi;~T4=z02t~2dCYUkC>motmdsOt$n!nXHuOFa3n&7Lt?q$x_~r|7N8eG06P& z>uN2YNW6dCTTpLE7fJww%r1ZH^Vqb0C)V*noaj2i;g^4M-Ab01{gA~YG@7x%`BfQE z75pGhDn*%MYaYg%aC_S=bxN-c)?HF^%*OG&jN?kc-K|iYx{AOEcC*`BNfJ0 zP-{yScsnENDPeN2)jjCq^vWe_I25o~rv8XLy7LXBOjveWS;rH(ZjFhztoXhAdA}F= zgXb@U?Em3LlKKRdi%R%omv!LZk^9fF)<+>DIIE3%q9ZuX7pDcz*@4gSR-sQB-+m<_m zZ6J@0DJu?h{u%5itMc=I!c)@?yg%L+~I>BEGu{a<&L+i zd#2ncCStr1#=8l5S)KBnxo_x_e^B06)N!NpPt5mis2yxlNxwJm$1*QIBl`gssDPs) zO&W~pwww=}?>FiC5Lu|@%am1vVc=TS@&y_W{Se(Y0D03(#x_3@!$PO*WdZrt zLIrpFh%d1Q`7dJg;vyv>VTLem;!6Yls1yDtna#xeQ)|!Hs0Nj5($u?wSt;6C2wnxi z^$D9wlgwK{NTG+$-d*SCq!0=VX4d>>+T*g%c-%Da;bj2F0g+39Y^3~SWN;HKS6z|y z^rwWa2y}iqN(nn#J<4+7$!=PUS-kdfhc(`FA@N0q{9}u^bccwtlY4`^eW+Kphf=-^ z0>zzmkio{Iok+{eT7k>AhPP*(TW}esi<5*svD|Rw>eU;=+lonuB%Oy^LyUv9Y2&qF>3sW_|0B<=3Z8@ zZM7hnqjboNC%Y7Rs1rLje*YfUy-j0SenarCGpdw5gxwBw_xG54=TPZtvB_!ReiIga z!TXM<>f~ZP#|q*!hAY~_pmadR2)^Rp=RT6IeK!aV9{hR^iKmB$AH~4EVmY{Lp{aDA2coxue`^CrQj|)@X^I9*y47OST)5PD9hdH4XUi2 zp?0#g{J*PZv4#BHd~zu}NjV5j{eyiKyB--4K#ZUMYw)Mgd)JZ`)e2^>rhe;`2Fvp9 z4t-1TgOA2a#Sbe93gxJ68N---!C-XUf3>-VazMCdj~v?@qO4^2^}>9<>G_-XTQ)*9n>P_J&j2qy(h_8 zs|vc~qzhH{$Y%BL^iHxM90AWkkAMG0YR;hl^j%v?JRD2Zi-I{`v>|wc8w&+~GcABS zG?$;@c4zhq)zWW=b&ZN)%1?8DM^^wX$TCjK+qPaxMB7JhZ;J_{o7EjmqU~l}WP)6eb4D zo4IZ8=s*06_~CT6#3p(UFs)OWH7U-l3@cvcrQ+K9e7=q4fc z|HS*tbR88DgQ|+Ela$7!dgCG=?9m@>5|YuDMu1k5Bl6;HtyJ5 zos1m(;Td&!>~ihnc*@nRGMrk-*ChKCx}lniLL*<0?T00R*FAD(QX&Ea&J~PVp-cPn(Q&w$2k#M)ki6qU6$WrSqKRPv&FXHG={QWLu z2VJ9T?849E+HzCbe=i(JTL*yg-sO;tN=L58rl zr*N#>uNC6;ePn(u6Zbiu7=EW#zs`I7;P^0|J*q711G?3f+lzZYiN-}Bf z{(5i=g;$%@r#}!0Bm@)PasPn>VoPZ@ZR`Li^CD3|{oiDLh+(rbs$@by zd89O0UL*Y7bZ?jckAgvv7qO$iQ0%n^rySOXpF4Iy2cm72x>ql^Tv4ZzK||5dGGv}d7EYlzLi6dO%yUr#I7vn7*!{%F@+en zkEDOb!!8@Q<07o4GTnKgf9>9KF*;*#i3IHVjqvHvgBHwE!0KNfUl|A^+A7dMv6(F- zf=Y$Ke0n_(^meT*wgHc^lg-4CfJd{7at-+QHBtT|o9QbA&4!f8__V{tPnJ}5TJ6+3 zw8{E|M5ct~{%%;%3<@pW4cilDlKCQhOn)dPxk7gOd> zV*e|_%}a6L&6gaT4$ubd5B)EVXEzqP095sk!zvy&?=D395S^1F=nRsIiCQE2asD;1 zO&NS_&T60>gnE@bz=wRPg53dMGNr?@+PJ!H#`KDq%qm$vAQq`eRi6f;OY32~_gnHP zNo7UE4d|p`>E73$-yPWP{bGXkWyt|mtm(|BXgnH~I)xtB`eMZ(_)1J1|Fb$d`P8`u zGHC+gx@jw0WC05_1GArl&AY~pUfSRKa7k}<-PI~O6aqhtP5P9;!c$Q1ivmX@|6 zMIJkWbwa3uL0p%bo^unL&g;kxWP7@6@En+RYqf7-3bWd*!lnM(4)To|P>F)^3;wL6!ooHd`L`V(Pd9ft(NCJW zj&Ki%zHwYIuYYszeK+}Sx4(S)8GFKEI9)o{Sl73v>x~V;R~yuKn#g5^-t5yAj<~gE z&$fI7rQ0P?^`p_jI^s~W)TJ_4oi;BU!oKffje_^Q!RgV=O#y?jTOFJCCF(sRRW225 z=E_J*oJ~_Z%-*~$-92*3=^ww^H1W@0b8h!lFHau@M})O9NlJ2!eEq_yjznh$1zuf` zJAZI5c8SLQeNK9X$~G$8xu#q6a8sc!Jm&>_r#;*w@0+6X5u|2+2M@1=!Tb560KsJN zU18t&VY~(MnMuRi&W}zNQ+u&cLEcGZ%thzj^|F@#elX5n znebNBslCXTu=!WUx^2!uX)GN0y03dzh!(>RgDp3=us=}gieU-P)&-LAk8`-DNx!Vq zQS>EDUmX?0wmf8We%-GIJx~4X4aXQq)Lg_y(~NvNt{Yhv8PrH8>ikuapH3b+YdIe* zI?8D&Nm^rvs1%72$63#M|EZi9egkwOjA>q7#3|0#8i34knELWYZ{QJ?5b9l1(h~BKu z90y>B61;YmqGF zDx4{MaD_x1T*vHn6RS|hM{nz#B2_yggy-)NCNs}f4jUEyxj%w+9TLneo*Gn_T8;JT@_ zI6-)VY+P;bQ4v5a?bv76$LeXWxSib3BNXZmHf`e-yM6)5SKd*U^AVM%$yx>qSTX9^ z>Mu#(szNqwTW1BJ&CHR_?_c%*LVl$8$}e^{G}~1>i#&%MgKh;WtG1x zcJb0iU%tOR33QGe6J-T-6so^|hoT*}%u#`r zVzlz)$*%{7BZxa;Xb)4f?T_1jFLxyViLp}zIKEotlp<@V$uU}$e`vQMd}?dJCI2kM ziVIHN>!QA4mV)%_jsA(4j0yFaQ1-!E4QNDnKXvJ=Uw(1fGz%7l-@Y8np&1aF8kHDL z7|`4D=p8kV5HPQ;Fx2&?FEOas=P5jdH#TgfK?&>PpjM~$6P%}ud@gsbe%dWHuWpn@~DB7gJbHl>*K5w zi5U)=Yr~tJ8jNio$=f?YeyCGiR^>g!<8U?dKd%ix#GcRi186x7IN|=d;uRnc4mj#W z;BPKRvHu(JD|5RR5ImU*1{lQJL)cRlu)NXqKhor0 zfe(RPH5N)O|GRwic4M9RayOO;k7oo|BUyiQozj}gLzXeVuYjUqG%pQ1I6~j$?ZHD+$3^c-rorMaT426jCt?afr@lbpn}82UMS?#6v9Ax; z&x4|OKGm?<-iRikCs!u!^VAX0_u2t4-wCDrYz{x|#*se994G3bU9i8(o2J)T0T{3s zsfd*t9s~VYRSYi@AYnlFY9xA{oSvgz0QlI1RXa)a8~zA|6d#=7Ls@7(Vo#%g}{`wXsWy>?ZGmUmsw13h~pzA!}jq3z@B9Wq;Z@F}X{A08#6OaR| zg^Bf|T$rm4^)|tg%}SWiJYYrO!(>$6P6P3Zx_2S?v)Fo-A;;a_P`DIce+xbGz=V_f z_j{tv6k&>C@ILO$PPEc^i`=*4#A1V?=O%@g-(95RX7)3)+}=%;p@3rds!=5)_j-br ze#bSPZ)FZ+lj{SSm)mg7kvFjRdZqrLl&|8bh|~ksbMsN`!Yh}=@Oha1 zw}U)e$)CvLc&@*K7u;XqN*tH5=ekh03`vi8Xy+Z!&&7O$#+5L-*sT{F(RU zjBBG2zgIVZw8`7!BC*jfumzO#J;FH2ijPvp@guf^{#i26{1R5@I`E!iQj`q#3LA7R z(Lc|!*&2IV3@C|Coq?|#Lqo~fgOn|!^Nb~H)+zYE9-9voY{qAr2_N6J8K?UW@U!z# zvLnEvxtKI`7(5K6^W6Qli7v2eJnQ4Dh9@V;E6bK*=)@nR@T5<7ehwww>*WWiuMD@&C09~UW*k~K!Y z#9}X`ApAHVb458Y_%g7)e*7NtCg;k=KHKVxe$lzWc*7pTEjd=KF$dHuYROFXyE%5k5mmvLQ?BPa&f z@A@QbRSzhH$YPj07|`oq&9u!>%?mrvP|_sU z>Z%yDFKCqShD_c5`R7I4MA1FOW25y9o#AF4Ds$3?nCY{yce9N=rby`7z`VEVL^HvR zugJd&eeb3|~!dGBx-I&?Q0ji9ivFfqyqFJ}Z+5f*3~wcvN=XB@jF{&UOl z0!)1$Va%oRQx3f+{|cTodZ{<*paD{K1OBmOjvJIniDge>R-CwRu-Q{$am3&5$uC~u z@bKcEJDT|JW0iz~AbWNo%|?K*?_(8XWWOTh6>7wYQt?2-f_2?b_3HOmfZLrj9W;#fX7?wIG);@L^ z@tg+Kdt%sH6V#xJlba3y7Si~)V<}hF3FDX!axw9^q4hsMmEI&O<;ij7B#@1+&ljkj z#xRBA{doLr@3&Zkp2HM|?hNKBi?9Lok3YG$_WMW4_A6olcH9{n*?NGJV{1{FksIow z;_Cz_Y{k3Pk6XXesxRQZ;dzc<+UwFmS3+-;dLG2Cz-Nh-jv0+qYh=ME{b)on$XEqz zddnt=5{bt5K`E#Mk&GU`a7J@`uc;Rd$RIcE4I6<%5zo#uPCNB0+C6R*!r~ zPbPn9F8j)M-LWFGpSzAH7QM`C$e-r$X|2MHdArHB|Fk&nh)*PT20k{#7uA%6vRwZn zoZ0vzSclO140PAd)rfTB%Nm9#(?n9oR4Z72lHAsYM%1t^Tfe3JhB8Y(iq`o41@4Zzl zb_-tuvEol6wY}sMm!9a+K($U;kPyk2AiYsor#3X3MuTj(*53QQM}iP zPE!HcqxQz1LEdN}0K9F-nId%PQ_%$xDK}KB+Zw?^M5MjYtcAklLx?#qZ!YZc=~VMJm7Gm?!W<_?OmN9NE2dHx)?gxepK5I&vpH zf5xhM>uWHk5WL!&;BMh_!0hLD-5}BL4^cPpcbvA}4B^Zej;*4Gnpn?39Zs=XlW3<~ zSFW;*)5PcQogLb-${Yq(Uxybt{gIVT&PZ3Nuq%Fw>Km(diCzppl7b1>c;IoBF~@zT zxiF^mp7LuWo9PIA!88Io<}+pdxr`VbO_gi@P2&+()W7=23f1=(7(VD`6c4v}gotiFZ;PTK3A>RysEkRz=#_+FgP44ccBMXK-DEQnJ&L z#il{I9HO1w69xWp%CT6@@kbZ`J09LrQmZv9lje264=Y9P&Hh2tMJq_Zml_lI82Xf5 zjMUUCQau;fYht6*9KQAnR=~E`Q1({Ax0LHt;0Y+*SQ^<^(r9ZQr+U8ofyrfdD3(O* zX+W5={*++vof)LECu}OPjWULfEAxf~Cg=Nt?;a0i(4Bq>Zk~kvyT8A$&a?lFPdrw6 zShBFYlmt*X_5CIYqjeNYe&8ugC|-Ow*RQs#6HXt>yo2TM3V1+d27QFaX|}(m4vk5Q z=)n#=5R~jtAn0c>iy1nJ=#r}(ea@eEkManhZ?5w*RWJG|T#*X$HarcksA5CMf*k4xP;oOXa^vtV76e9EDPr z@bE=_IAZKt{#c=Y^FiloK-_W%=>xVb#qe@BQ-s>)ByooUZ6o!xRr!b^S_#Pk^INVP ze~RPNX1G0z9K|}aaiT~qtl6HmNj90zI@#5J*26G-CoJXv@=>5)v(j}S2o}r0LQBP= zQ|1i{%Uk=fn`Fhk&BhcSz-kDb2@xaud`cl&p)rqJmp&A-QjS`*!1U;{H5O&uO&oY* zmX^mR6J$taF<5v#2sF<3L&N<8%i`>rWIz5~&S&>o`yg4?X5m=Qp4kWnkFiELVL7P- z#&rt0FN0Pp<#4IvR@mo=&-|-@rJj(+ z<8gkO^SaOLy07bcy0SyW2m$-;UQhrsv4zq=xzmQMn_t+=tB5=H7Xl9`$ko5 zzbhF120q4SZA7lj9JL5 z6hmEt?A(|Yqjt)fr^}6nG_H5T`qQkV)bJ=`-MHcKyre`=do$`8l`3H17E*F~!tREQ zRfgb!(vQGsiWJqJS$-jzd2;^Fdu_vD2ZZu4h^qX9+18-DV#Q z1v*|)RH6jWRuOZAv!?r1l2WXj*M!$-Zt8W*H$K&e)0MVtI+XX@w&KAun{_L8VClbDh*>+6QY zO^I>m2YSTQ%r#GN5m-gRA)oSKBTHGw6~pj*I=F`X>LgtWUfXPc@x=2@o_C2=CyZB$v0;p+v|&&-f1_f+cmB z05|T3UqPPWsMu#3-~{}3ah{=};!s+_eDJ_$z)##^HqotE3*U+<&sf1A&cPQhw58FkT4PX5ihnFbB`g6EixaWbE8pOW!Juq8zRO6J-Cre(D>@rz2QHJ8>ppvqE}C za^+PTN&q%Be7O(BKMtheGLbkrRr_wh>ByTSiGmZpD-Q*Nn1D#daa_U?qvwPGtl{_uf$- zKhi+_Z!3#!S8#AnqGyIE;VhV(BmMjk)F5)bo|A^yHNGIR#AJSif`A1l(a&G1{qDW^ zI9Ys6#iN?I=M8lUrGVj##^B^3vm_6-*O;Hw8Tgf4W^b z^r5Jp!suvlo8@`MBC>awzVGxb5)xT<(&p}p-|Kw}rbdt-qL7CkV(cL=FcYc5&JZ_e zkNptEI};9*SMD;q*1#@D(BkEQ_QyVUp3zv1)z{z}+n1lAsz1~b{ZvGvBRwQ`O})5R z{akbU)}RVYT#h4dTBspo#VsjrdGs1pZke*TKb5-`wpnQdQTLD(Cq-|Kk@AMi0$;wo z8U3MkP#uuZ|9aeNx4qqc0pQsspU?G!x?Xd|h73KzF>D+8;RRApv^~O@-qtR8%J}6u z9_6D=98e#%z*Jt=ezN4?yMb0}8y0U|%D&4m)c=XJ z27f#o!>yv{S(Qg@(-5^QsH-pBzzl(3l0a`Yzov;vFCYD#31&e4z5*vt?om=A9D7E# z^mFcjw$g*+hn1BcJwh8IGVKp8J@ProyNYJQOhZv9bDC1Vo&zVGHibApX~3lk0&Fdk z{hQ!(v)#%Xs{MX1W-Ke#>OI4{#fsZ~PeZOW)EzDIsyndwc&e{`Xd2(;4^uJ7n<+@;%vGwZ|Au#_nnBJDk^Y z3LLo{A(i0GD3nGTBk>1bMggT2fI@}wc85@@>0YE;Y}w5M6Xn{sXK_UyH@^#{O$NCM zQqN%`fXA#i%M51l^s?yKr@nOS>ib8@rj=DX1sg^@GWP6GyzW2qqa0$(@W#FC%)D?T zxr@D%iT%y2a({VTaaI>kZ_e%U;}Fwe9W~?PJu`}ek7k64`EsZ$R}7klO%}K*F2Bn5 zzZWDI2`_;}_S^XhlYr`uGtl=W*>Ckrg;<}Ky4}REv7}1z#TMHl-r4Etjwzq>NpUw- z5T7;W#)LB0T(yxm_Xx8N`@O4vwUmm#CY7DdHRvt>eT9crAO*5h1@{;Vj-4@`98_{K zVC;M~K6fuckw3x4r(!!Ze$^KKT%f9~FFR#Q)7CsMU&(kjZoU<-DQsJN?y$2Akuof| z19&Lj#E<9F%6XbO+)qCHJ=RiG6HOS}_n!Tg3Fmd&MO8nni>lL?8Jwdmo_mB2fhTi2 zE{j|pi0D_WDbq0xyj@9eI;|HF^sEyMthY)rLCq)WvTrpI`-%ZqH!e44ihH_7AJ7F= zdl%Qv{u7p(CbpIULGN`NwPnI@LOKkdV_KwvA!nR&_G(a9#1%m*9#tjk-C02Rbi%$d zY}UB(!Ra53f7Hc3JBhGpJnz?6YJ3K)XZo#VZbKc2_yO7q}c>1ri190ndt@FzNu5w3aW0Q#J($q4gTBQ>aMn|{{A2zr1%p{4Wtqj1& zih)WOgZmszV_2_v2UnS>hCKrm6qKhg3I@LjW{XW-Zz%T@D7kPN(1xHr{4EtPnQ#G$ zqETjjYpAy8ac8)r-OFE^QFiYIFGAngA#Oa>#gDovh+XhN$CNzN-{FA=Vj0n@bOWm4 zW3)HO@wM;L!@yKQh#7I`xLyF_!)%e<@L{pt;0hBRe|)u#ERPb$Z9?rQ-Vs={ZjC@8 z?FcaXiRcI!$dvGv^ksRQJcbUuw*zIQ0f|k{9O|{Dt8C!qs0pK27d~( z=M(j4WzU1R?r&ThPmASeZuAH&4x|Cdg#20a@=IAki(B-YZInZV;vMZI0!jWGT8@zOo z4SB_n#hexYn`KxJMiIX}UaJ^2xz%&;WwSakzzZn!IzD+kfLf4LQW^!TJy!$KH%Ss(Ge^;CNZ*cT#k!_%BtK zEPHq=p$Km%)R-wl%1!6^au2)VovRCPigXr@uz1Rh<-l|McpNN?WEWXGla6x&`@e>qq8JX zKr{LTVni@6jbH#Nl|pXd&k_>!9jyh$BcZjmTx7ey=}nyI%np(}OB2My;|`HT!k++k zqtGcfe$+`_iz{lkrU|;o8QQLJWA2Sb{88DLeqZ!a8tM@x^F{A0D0_;e17N|Jzt;}J zMLFTKC+Nghf)Z|huJK~;9d{{bn`Ln5-YNd#LwIiq6>3 z!zn_kxk+XW&2_^Ixa#;gn%@ncNu?c!Jl00pSyQ;Tumc>;cxo}Wm)$BeHeVj=rJ8QT z@mT-RC1^R_#jQKtKUMU26=j_zlp3!x$bD3yn)<5!*olq})H~ioW_f$SzE{iMxT@5) zM*|*M$~LAV){bpog48{`l}}e!VvpC3zUfYRvBR10WR@+sAeFN9(w%-8BPX|=u6X@P znRcsEwt`I zXh~hT@0PJBv@OvNdACIJmyyiD-@mp|qnAkXOX?AJVH3(@XJdNXq}$dQes!%jnqn{6 ztDC{W=5Orp7vKr6jipr2B1r7+v#MFMHxr(e-U6&(!Fpbxg$5 z?8RCucTLP*VhpWg**=v1GS_Q3%2iIMe9O<-Z?m$o4nhcGJNC1pH?w4$_WtevDTx=**WisXp$u^`xL$qKl*A2!t0}}s)crsFrTmh6eK8;gt zBtBq1JdnzDJ{?Eb}!jWbq3j#TMqZ3HS^sIWEUb{env zfs~6*p;=dbD{Yi0sMA7TQyVScXtnil`>R5`MZPRimGV z&}Xe{DPz?WH6!JUY;}VgUB%L0{cW zE|aeZCt8ncwQ&_ihW@qH!M?z!iKkZV!@HfH7Mx~w#Vs)ZU)bWmD6W_MW~?*^I_Uqi zN%jAx3jo?g;kn<5i2d<(5%4p)uUh4s!Gc(lz80w-zOD*hr;Ew&*dWM`Ca~G_7(a+( zKRv5oWCE$r!!<#*MMSm2>xL^ml6JZ#l$)TvB40nORw1>K8#>t7DCI^?5#Fa!0qq&$ zD{`#21yGdsR=t(&TOw`H1siqT=}kc* zB5+yRiwsM-RO;gde^zI-B)g(__4ZPx){?8}E ze?ep1lf9UCk{w6Te~Zy{y)NPfgW&L69YA{NHQs^$7$T5wWbsu>iDr557Mg7-Ui*Am z5w8xHrkM$rxPYr~g21^4U-AMqa0Kx(XPu2t9;(ClPWMbUAkXFsE4|ix*R*hZ3~{30 zT@>u1)R)U!{RZHXUdVO$z9QpD-CA7E8LQTphR;Uu=#a;;sKs3twDMjkROX1t&YEKA z(6NtJ0v0Xsf^r_2a)0x?_)AAHU^VSc&hNdueT}0>9=0?jmoXN5#mTc^wA5kaqqkzJK}T+05k-*aylj>$y#^dUtNeH$u1o%8Lxw z>Y*M$P*dkoQ_1pNCzzwkR8@b{6^Z z-EdjOR^{gTqu8Vo%_B^cU@Yz-W*~9-`BmuTfhKd5tX|j`J<|cZlRCVr+~~_^7|6$) z0o!+w))Eu{!=L^0iO6lFIxW%7#BHVsO?=B>Vl8sT`&=GKRj`Biqhwd`v|#9;BCeh7 zE{@~9Bl0`o;NiP}P*Yh%177=lGdL4EX@*m1Mdi=)7%x)XJ`kH@rnf^zX}o>7?^FTj z)E&VFTf*Ol={uJc(`|%Z0&A*4ok6ZeenI8l$1R5)p|DF`N&qh6*Hvmk!q&qz)MVDy zzMabn2?=(>8%boFGo(UtJRe|T3~A36XbDHAra7I|L;C+g9M!_#_-Qs3HD|Bqaf~Rc zvlQqGj_NlC=nJ}Hv8EO|Xg;LZ^1&5t2YVny3~`rr?|Yx4Nx7d7|M(k!#f zwY04$XBR76C}Fvd@0$EfTKi^54!v;@R#pa!rOsA*yWbt&n@a|$H!n3OS6!N{IvvQn zYC5->mEYHyYN|o4#JC@{zqIk)x@#O0Hki=y?^lVHk-|Zo&vVpu`+Vfbeg7mSd_1>` z7(07YwQIZP8qXgTyomnU9E;ltb{Xw|b`7Q2gEGxnsy(nPYhH?8TUmoVuXejy_P6)7 z>H;;XsI+CLzlh4+^`zHyq_)Oy>Xq*9zlT?!a1Xtm-?Jcj-9wbL@o2o`>jVG%@X*YJ z#EZ}$=tP--uhw!`yvF6M2Rs+abaD}d8zP9@Et>IDjy@=HPB3p_)%h_+WB|9kQ zcWWwnDtEQ}eAU6QiQcdNv4}L znZ!CI@4ya++9vfhpslZ{fUK-@VcC#`<-2Yt^ze_4U``9Jzv)tbc2Hx@0ue>Fe*=SJ z2d0;d1lmQ;QfWeC|IA}|paR~V3r7SJ*p%;=;k8#%nD=AzVik?X=CUW;OXh~lw&7Ew zOhU0=OQ#5Bj?ow|7kEhydP7Yrj=|@t zr60{JU_0$0n8#=IzFVY`1gF$32Sj=DX`a!A-(0iT*$P{;9`Kz#S*IHIYD^}v^m zDauj-5=SPWs|Q6$+fo`74U~VePV0~sB0{V}O>G-#s)|0i!cGTb+JiH$(jN_$GW?5_`-8wj<8u|=*Y$hv8ZHyVZ z3+4C%szu!VvLMfe{VB6%|Fd1!xp*fQi_b*HNqN461q7i3BH3_F&&a|h+}6pU2VCY| z4h=OT0nTC~;RlHMEX!xl{)xWxwzakVljea>_$N0z4;HXSF0fIO%5<|)tOMTCZFpQV zQQM3ceN)v0OYgW8p^PW9-k=UPPA!Ci1QOY(k<5P_!sKUjZ3pmObXwLk2H5d$FMZad zr9%RRsg-e}DG#}_NB7A~@Q+8$NTJpUB8x-p zKE}6(dK!`+YnQ&e z`}pScU`GHjMaEuamK%c>npt!Tze!JuwFs7BZ%5BzI+bSyH`rGWPD&-T#4D2rg< zD_o|JI0YT(Us$+>9cL&qZGS~j7FQY3Ilj3-!mhsOgTF$^4g61nM;_Xz{RDaJ8#RWC zUX~x&WRq1Lv96e{ijccsmy&+FRd>atvKN?j6xygoy;d_HPQT2eiZ-_)Ht=Z55@o9g;y7Yu@4cIY)WPBg9u;l+JK!% z+p{M$g&U6%<>fckdCBTK_fNt#Bj>Te!^&m z?p=A>^ba&h?=wIh%@STZioc<`5XKvra`RX{54MS1U+P2CiwWK@B2kOa^P~VBq>|4y z+-7Re6irmK_mRLJL-9|SV0qqI)vIjoo}V&MjvhCms2e=KxG|*RS6Zrhm**ZsY=)jR zRw$uZ;PINnNA>|r--vnNI6=0=Y@Wm>(Qy99AkSr#vpj7Ld-hE-UWXyB%_+{};#pBK z5yu5>?2r-FhSTku8t%tE5nl5MV~nK?YK>u~+IdL@0e?^Vf|g6)4zvo4H>do16Y|65 zm^8u_6!a%_MN`iB;{QVydLWVU57&$ZZBW96zy1vtIINspr2C!bi3Nt42_?zz?96;l zv=PqMVhmpx8_b(rg$gRayWP-eMUAi}|4WoM9D(--+l1rRun&qJ!IRZO_vI{KuRaa3 z#AY?uf7m>gl<;*))~iS`h43JHZR}L*gcYypjUCs%7ttNAjkDK7TXBo8Tjb*$8e%92}*Et%oJ{MWNv}( zsKo5@HtB_$FasRm=2O%0!C2EnaY31GttVSCVw!BU<@TBo3FT+iJQMvkXWu|hQ8*Bc z+th^y%dHkr|8|$nk?Ux}Jt8xjbvQ+upDN;|B*=9DEx_vXl8)#rX82Hs7*!j-(i-u% z%ET{Y))lI?FxO(m^gL?yONb&qS;&dSjovRhJ3@y0vIz0j_RgDMhA3exJ<6$@NJY;2_+M+vtcg*NP2ye1u$ zuq%V?*b*_z0K!&9o#+9=jN3qjzjXSFwG~kd$wv8}De}7-dz!@EW2SxBpjtVZx9{5& zPKLSifvkl;JHvIxF6FJ;&cPQ2%~u3bp9!G}V@7+9N5>_@`eWT*8e2#N-3PT?fMkJ8 zuR2k#`efx@Ry`nSvOwXI!!;C1I#|lnf`POM)hJ`9#~sUCWDlBVn^0UC$ovQp zU`V$1hGui*|0ph;zPEOjiV_8>r|}Q=0x z44wC!%-}@dplNq_?149Nq{p7I&D_Wx`E;npnCsR&2*p@D0;l$Z=E()mJ6{uHK=wIk zC4gC+3|m;@MQLF^WXj2hCcGL|T(zCm{oT^(T}RSS~zZ#j)d#2lyufda4LsO4? zAH%|z@+EIgy2Pv6v|!$%MX?Vgrp~xb_;+0VxljC(R3B|&E&cO_&y~YE=MpUfY{Q4! zi=331(JJ*D-y10rXvqqwefaSw#%M=7bGcGIJea@Pz}ty?FpDKdb7#;mfdcP8RUt(C zWXeZuEh+1Joo2!V$O3HJe1dMGo=3(en(Q44g-&>k9gtX4Ah{5yGhb3%yGkw{)aeYr zv$si*S0+l#bF|kJ5|SwDyqW*dW~Z@(NRW<=khQZ?!D% zeX1LNC$>cYsY^S8>S9*k%)VJvy#n2T;1)x4KopKA?N$B$VL6%!=)DTr2>o#z3COmP zSIwQu<*aiuzWCwb$^qr5Lc;q&fA#Ac@M_h1NS+4b-`Vx|cinr8a+@%RZC+A)9=RNS zSoqG8bPh0?AtW7c3%~`%i01=OjM8u6+6U`=#nL+g7lR5TC`Zsm*t#A<&1Tv0beqwu zcbu`V%pmA}f6a$5(qZT{pvbU3gJYio6B|*D=vC+76)1vGH%*mG|0wA5l`jZ(@^(Wh zcby|pxZ`t!9%f=ZADcJG-rRYt`r8kGsh?!zd9>T!{nF`g2pJ;hu}}KfTdgjI|Hvc* zsrYDX=N}YajnzX{7Gu*l)UV9r1@S+`--j3!D{}xfrk(%v@9@ZOk(W!n;r7_#O*nm9 z?kr-a9j-aGhEwHIEO+f0yLmf@nUFrD*FF05`0$2QE2^R30p8nS!TV+0uHr6*bZ14M zk3_%cS+-gq(8%C+1hB|c z{y{@k5Bt{4|0a{HmFt;aZ_|Ibw?>s)c#;b`HkEO39KMS^Z1HM#OaKkJ+PbY>4Nl#D zO#ioxQSYnO3kAmvbUPC0&pZ6_4vz0u2b*JV27V}puE0lvV`NNi{`g{-BZ}qqLcaB3 z7(V5^oGJJM&ttLxU$8RpRpb8IsMmY(O<(Lss2;m<(yCN%enw6%eFTycr~tCR3rsdSk_wkzzF;bQCg>r*l6lo0mR+HpD#R`o8@CUA?FJ{- zE5$}Y$pWXvZ!vpz7{|ttJ!0SgSZKin+u=r+8rXO&Cg)h4`Nw)sd+*lVw zbvw4&O`a+4*6~ik)G{R4IUCAymGOeKTx2Aq%O0OTm;HTvC%bE*ie>m$Ex2_xJ^iVC zTJ&U{U`6WnOeccZ7n` z)1GEDObO|{=0w;Xi8{R8C{b)D8arY3O%8P3!Y^5r74Un88%y$oHmwFa_+RU zXEF=edU_-qyPd|P%l82Bpr;hv^Tj7JpD<617d5B0UmTPSTSDV3!GAIQ!^Rn z1(R7t1h>YIen^7=wqX3LW~e>+{S@gldaMRhii8rA_;_Dyzk)X9{6q9%is2s z@MCxIy-Da6^{#l%6VJR?aSPAJge~3@*yb^tOWxaBR9q&0EyHf{k52kt(p7sHaN+8= zj@2%(fR=1}V;nJ(mC87ic7|y6Ve_T1Hl)i9fUqV(p8+RhBfLJCz~n!Z9y4ly~+)5UCyh`g(}G<_vw zu#s>IFDc>h8D685UBl|0acZ!NB>a>lCT$rtxQ!m2f;EQ=?>Q?xaO>y7a`MI4iRY2?W*-X^M^L-yPQfq3*ce4%&n$w~R%wvFfNVUSYk>5$~ zUnevA!wrApAA0fSaUvD>Pe^Ny)wSVg@Hc70-SAsNuRf$Nnq4e*fN0*k{i+~Af3)9T zpi+lOAV{iu!737@HIU*J$rnywlxD`|g$xR~E$sZ@uXt5~FM>8p zk&+yoSY1lByNA)DY#6j%@{|_7t|2lXw8c)Wtsp*%;iaKn22xuKV^*Ikcf!ZM5QeIy z-dgshARo_YrZ^VrNxeDo{RAY0BU<~|;Fq;k`hpmA;_fNvRm-<|w8e3mEI0|BanEsYp(GtWO{H;}soV$#6dA2ZB4w-xYrfi?D0v;@? zN`*Pe_Xf^j2wv~HHZ|bdBWo?n5=Jb#d(Yy?Qv71EUgMu3ghRm)M}y6Njry?}BE_5k zQD4BexLMH#E)!?znQ-!L&@zb{!%JpUTrzxAVcY6dK73&Ep1xu;5%YG-+piCHG4#Re zJc=MJqqythyg<6uWVx5XWJ4q3?f!xG;ds#__$5!zEv#tmrC-*CIt3Vrn0i=Oe554?)!g7q4z7#MZ=t$q&DzJ)Yhbk5W@H(6WThw zZYo$IW*VEsuog-02BnQDh!VeOrluST1y1e-r<;HVE2}{>- z@;nK%d$;Ba-Ky@jxxiSWngP=Ht7p$4n+K2SXHd%nu~S5kqxI;Cy+a>DTrCo!_rvV)&zN%`+Lp4CSUe$eklbUh@#GgEC1Ro_Fb(E^s~qubGn=^a4JJ4Pe* zP{<%c9w@HdDLymM!eZiP5qoHQih7l)&>0JoN>$gC`1@SxKuO{?Me!N(@k6f^zXWOY zwC5wW?CeNxwYePfXMXq2E+gA4cfm2kbGZWzLKKGIIhLE#DZFO90B-8g=7mzVx(~-m zhvb5B#9u2Uq6^~EJUdB{rRj?QHf>e;0al@mo>yR#%wvUAFcq|Q)@ zPfiX=ghBQ`E3#w5nT*+WTU2K!Q1uHx94w#pR+u*GiMXD0vOqrl{w~rl1A+t6lc9}9 z`CQ`7v)zUq$t%@WIhW}fGCJOUkXIYxOff2IKn5JWKYra)?LfPgYp+uoo7%h1ziOx@ zyHgh6<B3C~Di!4yU#qpJvooh#eIF>bRe5 z_*ZZ|#VhHLD})+snPEqN49Q%=ywQ~KsTA6HUEa7;(0N_ zvcz@zK97njAM7rWCdj5%Gu-%4EPy97oX78&IfTB12Ze?U(Tub?-%pyt?mXXc5MQPNlgt~QGLUYCN(8W zdVfsOF^!)<0~sD){q~Ki>*vb-*UX2fb+H?zosG(OUC-G}J^OEexJOxRodVk?Nx|ne zWn5$}5};qbn0jbv59$lK+CKbj_o2~s{lfDWcyec{q4WIN=kB|AEN4%t`|k}qAXXaw z_XC=fvH!lO=zK(2y3%AT)Vc>`$3Z?Lm)}^ziH6%1C|{nm=zAgPa;7g*n)+yKq9InM z^1NesQD{0|lkqVyOto;;*WWwwM?KYAX=Z!ZdELG)ul#6*-JI9e|E+s?cMjQ2Z{Mg( z_DU0Z{5`?zX`+EpGTZZ|aw=E$g8BESE1Yl#x{6%ir`ys8-z-i2luf8UtwRwwQ6Xpm zwnUW3|9lZC28`Bj*hCRr+2o-9JVcZ&Uz@<~ym-aJL|_BAXR+wNBY|pRjC;c(qQ0Bi zu^BA=-Tk(O=uvN8hT+GtnZYZR*^oy`%M@?SraqNVBUBUh%6zo4cPZeZZxn3+WDgl) zw>O%qmG!ebXyyJV79GTXPSC1Sc9!!iY6bs8F=on*?=3NGi8H{%c_4gbd;nQ($)ltO zPMj2=eM3HK!q7%dLI_=>qqb1jm}1wc!sIg8+Py=OUQTI6^(~D@P?W6i5>94#eGfCiw4Z3E@Vu_i*W{h1IdWs=}I4OP3*#sis8qPbSCRVh^cC%O8@jE zB2H%i$%!v>AteNKKO-tO*(2fe?1+7 z`zoq{Z@9S_FY*#2xnqYZbY1GD!&BGp5|cHmDGN*xO*W>J5%A7H@Ly#+dsGc{k030v zMQC0q{w?ca(B>aQ8m4(z>W`rWt)|pF6@D11&s%2yE1jJD-!ykTvVeS{Anpc+Iamij z#Sm=MyrPz4Yy3PSm{Pn2;dxc~ASk{jwdRGF;t>can4eb19pOD~c})=B*pR}FRG8_Z z*lgYCX@DNRC; zwA$UEbswJLF_ToZ1tNy*4u&ZKd=*22CV=}7?CZz);S%eXYOIhZaTHshk7$Pj=F_$< z#>)uD1}ATTSv+0dY&BZD=OY>d7wjgS{KNTxz?#t-_**r>KyOCRqp?+Wg|?jZ>qgMC zf(=Ldm2rtSO<7U;!HI8|e*fzB1FNdaYYBMD}!1#9o3XJ+FvmMd;8=y7YW;cUe|O`&9;m5Iaq7VS@9@IKJo-8-TB*Pqli zdbI;d8imB!b=5X>uR!j{aywjYNoJ;VI8Jd%mVJB^P92pek~+;P2>um(96u0U#O`+A7L? z%7Bb!HdQXXWgli0B#JO1karjf+VxHA1?4DQ$lP<}&|9Leseiy|1kjIADNUA;6DD5) z=_?0|oLG{Ixo(#Iu7JnSU6aXY8g*aj&RU%;{G{98j#GjiMt<^&KAySVfwQ|@_Mu2B z_Ohoon9o4Zp?@kqR)N(Z3%%E!M48v$UzftRd|P|-Ubel*@&>@U|5v;_0&^FIrm0z} zwGlld=d!a7%}cisWbQV5p6FTykIVIzJ|w8E30fY492Ax4f0PFY_c(1t%(u!>dWU7d zdi-k2ab~&+pq_Pj=`6`prw}^#@W&Nzc}8eX^zIQ66-;s*z67;Gwu5lsjQy$H+2Q9IYPRkP}CjDPD-yu3vCui!v zu6kqcR6hBN0DkSPcyWT;{{3m46pCF9b=CfyzoFTtce}NtX+uUe;4*9Q2XdjM>u(2O6A`&(NWh<~o%QLw7YqmCMT>1Rv9ahy^Ki$%fDB{c& zjd!XmZHf190%V(O%)1l}K_r8k^`LC}&vyipAnRgONvMQ9YFDOqpv`^EK99;QBS=XcTeO z46`W{KHs+0pu9hL-&*Pbz?d4`)ibs`$%q@L*MY3V<+qVUHzg2x+>vck5_m5yXf+jy zeSiS|`VCgW`LmbF+k8Zwb@TAmspPe|L?UIXoJ-{S)jwk8Q(UC{r;40Mb@7Xeyx9jO zKX32YnMS3IAv&N=%sx2l%K}tFvPx!J*D$#XJa^IHZ=9?@MvFp5352hPwz43B<>sua zg0D!~pE-uiHun83E!dSfy3mggZXgqbK>j$<}sg z5=caDgD~@14CQr#W;_RkwK;?tV>B^9F?<7z&c@FYq zzaYASQqv0$p3IE)*>y8W9KtM2D6(qZ+9n)3x3G&C_U{IrpvhBFB|QbD_wFD%!ezQb zinyCI7oUawhRPmrWl21hmXMDIjupf?MHfMmtjd+4149$`;s++rvWOKy>9dbRk^g^1kk zI_2zrumkO-Y%D-wKNLspZn3mMr zB%S`E^Y18wpYBeF~fV`tyB($&d1U0W8JkA#6}fh4M)U#$BVOQl)mB10g6Z+ zU||1`zf;MDg7)$m&%qxC8ViVAM(Jr{XXwyu=*k0hneTgT(n*vePG)pM!|ajN3`S`W z!Y#~M>+PO(coY#0QF7BtL5qN2N{GRPtUR`T&#=R3)5_h8VYr7;sq~G1FOF_iH`$XY zm78>F;HZ#K^K8&CqU)QPH1Vq^m)uFr0R~dOI}3pT?MfwMqBiy@uKz@yt|nt^? z57m5JTkU`s?v}shmYf^VN_#BUBT%P93fcbE?VC^IxA~UV-`f`YwPm~hn)MG5pURFU zS~+O9qR9wrs3i1SA?LDQ_Udgkk7ojWpcC$LU58{qwJtcv zi+a4w?*F?ZtQ|X#|GLJz{|ERUWd_6(%r<$P8_vB&)gs3}3%RwmJ!beh3~U|0{)FeE zVP5cf7!1Q|lx|7s`hU0n+;kf^8GRY(%Y1iL+%f(%kYqDeRtTr%4p#k9gc+ZxxHL)5R7i@y9RLv#=F{JXk!VPF+``o=lxji_!KZz^ekj;V486Xm5z`-lwa zkx~Tzz67+nm^JTl(bg0xUbkkhGrsNc8zuD-Un`#tC7TaI*@>Lboch^tbK4$NXV3aB zTIpezTh+uT_KUn0mUoa&?Dy~1NE`*xA64>>PA6$ zh5~Ve^G&--CmEvhb;(}gV%D)Xs^z^uDE|nWv*+Z2fJjOVr%QRtN{%#v+*5febqW)6 z7#9>~9~f$8BH0ink$nFBh(OG1#-j4)*uSn)!esrz5X<1|JEg`uSs$K7$^G7Sd;Hw! zRCQ`wZd89@17oeTlZPj0YZSNu96mhPXMSP;X~OohUQ;MuT&13P{%5CSFzUFd+^AP< z)>ObG3i8gNib7SQ{z1G^<&&W^>m|!<|HU_O=;a0zazydJlsdDMlSHau;O+F)_rh3y zuCSiyEjaOKCM+c0sZIb6a%@PALcL~}1r1KY&#$HmQ(y7F65io5M4 zo_qzK=JVGH{BUv~#4jy;5KW6LaAPFEoTCqLp$+Kp<<3Z2Wb2{^`s)=1d<}n8wax*p zR_p$P*JBBb|3pAYFNwDtUh!cQ+((7SwXcV#TE%?8gQs=H) zX>w+$X?3M2k>Cn>$%|XiKl?M_YAn(uv?KvQz>~TI;3`CEm7kiOlA38IH*hq$cV=#g zRETh+2=G~+eykux?EdI-3rW3@J$3W4bvR;+0DKzi zJgM}#7CA=y*+Y9@Ntuz&0J?Cy6oQ<@hiN~>d^)$g#RqD})C62^I>}C!M9f<>k|O~# z@pVvmh#y`iYetM$DrAEg*~nFiopiN2DO@bDd|;AYFh$fjASsdlNN={hkM;E(lql`f zK(5Y@@SI7s2qUwOohI$w?|s4ZK4RCfdC=iWqQ*9`zl8D(eLK`ur20>3SAjqHLeR5? ztWSL9Jw*cq=25a&dF_`cQz+AZ&&hS7hYVd#JbIt+??qxXlFzL_NL8ZzB$e9yO%wUy zPqYud@f!2JY(_Tq`gX0Sy^VnC7WNW-2kiSHh0^)q_5k7pxw>KS2;d;DH+OVU_W*LDUf=z%?DV4eO43#rtCP|J@t@6KG++v8frNBneF~sfD8ZVv zxdBuZh(ux9HN&}YR@E&(n*YW;WV?qzRE>CFpIGI8 zyF`?DLiWv>ndGSjtn_3X^ewR#Gawa80?h3-{<^s< z+Mz^mNVI@o>8ooRH)&z@`SUQ9*rjYEj+rKl&)d=xTi|!76U%N|Engw&CLmwpu^iKG zDMjQ)ZNoSi`*U2kf_Th8;vidm(k7@oltd65-6sO z$fudCqvDm1?L6ONo}uQmR<=hu=8D#x}WU-L5og zd&>0vI|H8kR_EqK(#eLMSR-1f&KVh*YJCl%QBqiUm*+f`uj} z6d}}11Q8Vl8z41^(nXNoLluz{kuD{ncR~myAw%ZNIp-&Q>&*|Cm6etC?0NRR_jSz~ z9J#+wRyHx;dPmcR4Ky(lN`iXk<{mTNNga4&)HSiX8l$TD?^M1BLg^x8vJh+U$5OZ> z*s@?Q!NX`4P-x(^S@t_jO`$X06e=`UhAp3>(rP(NyhXKrf!FYc)$b4Ff9x8Ep$B&= z;D7aP@W5N}rmV!|TDEYPi&pv{tzO=BjU@K2v=`ei%F5?7kmz74 z3z9HQzpZR&wA)5b{9tOFOpjv7LfM@#npUacAaFr1RjVRi@7cGML-`#T6|Q7(VaD4@(Rz_5hM`|KqcRoiF-VMf_3A>y z#_T0}7_fho1SPn*BCdLC|9HG{HoQkzb5^(Dy}d(7RO$D)ywZk^N^K1OB{g|m;=s6# z-Al6i+WM!OOj~rd6R)OTLsfF)<1&2fUa?K^TGWnt@y|hBH zko~+OQKN=_!7hP66a(9YGhDAE$Z^ReUa@8 z18P&dBg~Q9O3vR^maVCFhKg^na`eQ-w_Ns4GJw9FZ9E$3U~JBeBqZX0nPG_zW% z9I04n*eN(WtJ`SKBn>#Q?iyI&$pWF&JNHA{b_>@kLfIOSIAUm&2ER()#Gkr^2!_PNSn|C46dTIBu?F=<>UFzw!Y)8pQODOIcs=&e;LEf|!Skmx} zvs=4Zr&I=0F#-J}G6lWTb^n8H> zmB!k`LjJh2v$=(`j$t4IC#LgzV8@nUYj$u?-nsfh(Ix!GPPLB-O{@KNYc^xB=y#TP z^dx1N*Qc%}>4&9tun#U<4B0O(Jc5voJ8&rZV(qHXohfeK)9Ro93BD`(D@8An zovpCWrwnshI!-l&f3NNKf})h) z`aa78mqaP6?-TzWVqH!-XyX?2{Tu8AEz{s&cXFZ6Nu0xUEEoAPZ1{5zVcmtF^_;P> z0%N}d$P|r?+B;-hj$QG3h!QTR9D@+?)fOE7;KdM3-)d_OBWpmLX%u>^$DvMDFMrn zQcUm{$yKEzChz)Dx)DvZiqOQ+HV<};pf?*`cm^D8+$R51lRGPTfRH@eu7zWb)!`3Y!SO_RLU-IzwQ*7T(&})6D0k6gP+h7&~Kuq z1a*yrXB{hvB>~(P<)J6A=M;aoEAkCu2bezPZ!Jp0bIRfGe;+fXEO=#1t}6e6jN$XB zX8f+VuO^t$ZWQ+9oRLPsWlme)bMIedh~@*@LC1I8fh|ZWg%cbE;MjXZ-DCOB_<8Xg z0a>n%y%oYWVd_G%`G=v+)aGR5=JqDjDxSi}pW}MQW&yuIPc+{ALAI4(`iQ?>t9Y+w z;#UzfB}|iXL%h9xol9?FTYU*Q8bd6lay zJa(6RH7-KSd>2X4Loq?U8oLOuxXk4nH zP@st3OClkGlRI|K_;MTjE}%}*(-qG`)jGqrc!!E%S>vXwN`%-8r8MMuy4tq|w?c!- zQXS&&ho{86hjeSD-R$UMt+A&|PsXkwd51vZ`;nfb%UkLXd^dy}2V;FKyr}7h!p4{yRJ8F2wn|uIJk5l+-YOLVZ--=@bG)aeP3G zcff~@g41&&h7TAdy|iZ}r6B_3_8yY;4D0_gkNPSJsl}J17XD#~u%p?tn0*k%MM|Et zyfu&F{bLHOjZ^}hjHpBd=Wc{Ejz8Btf7I z&lm%fP_dJ503SycZ4l@Jsxqgfe032|roI}YWY|M64_T)oLyvG$R{uK#ShTaSljyo` zxZ5G|GA=$)H3PeU)a|X}zX^>cUMXVi>MRS(*%6C>Yp?g)Da3Y5otUi=aSVTgo-vUy z0(UwBuQA)|9@+uF=GA^8Pb6sJSNvbTR%;>}nr2@)323&zqRR|f%sjNU*y@GS;Qj^= z?&NAUL5_(GH>Q79r8uCSao<;L&TP^@?!m1oNu8Z*ZC4+Rl%;;@kM&2@-cx(Rx2D^_ z{;*^rLEH4bYNhowrlj~L;}8h)5PjUe&nass9d$|S@yp`-+ z{Nk<{K9SiW(trlTefbqMq)lkpYRax9CYsQqGkyTF!@0aT#tw@hyjVZAtic58vZx+A z3GtUoa{b1p=XR*J;8Om@y2(pj3){40Ox6Cq^|`XY%h_ykT-`CNk3?d64{5^XI-j@I zM(?ej(q=|UTY>~9MXsrHe#nl2|LT=a@K*c>CxkzYvB#NZ2L|&*iQnv>gjSuNdFR6a z@{j%*^yNm4U)Ore%lnH=TH}{-Y`Daa@f*?{Ddah4kFeSba8O3QB-~&-*BqVc=C*VW zkQK~8P_!e|~->jk8J7x}8(BunL!=r|XU*{adamhi2431<6BeOtAf zAHb{+ESRP2!JGzi{$HE$a@3U8_(_N}BF3SyBY`=Jo;PY!`48g$2X<#s8+b@wnEGj# z%H*@d`OqJnd3$Y|EAuC@jk>xjaH9SK;$tFoXH_Cxmdvye*eoA<2G5g?NU3i(`czV9 zPP`+`D3rw0Dg-?}~!KFQ+@pO|b*zo+y`YHSo>AGYtr+WU*!*mmTWt)6;Y{6g9~L**KfL>r z*U+Fc-@yLP-nVKBGiMwJU!3MEBPVGSHBAD(Tyn!LRoc1=MfF%fF9;c=$j`;UBhGE6 z4>ylZ#AGgQC{7#=J%4^!Z0)!35YmsB6ktsILA*+aka98_Zm_ELkr%5A*Y}&W%*&T>(l|OFi*DP?g$Hm|1@{+J8k56 zwGaGq#}ZzDs)|N#Vt(IuD(c?CA+Y&b!)A?ZNR`7ZDS!Bl25CxZ5cWn;go1jo7ICCQ z87iT)7mR%Cgc6`6K8Oei5H z>Kp!4j=wO6O@f-Y&s+l5Y~k`h_FU8uVj>x~=^Qg~!d{R%%Ml2(3>?QjU>UYD`0*~w zjmI3mJag}VX3;t>u0@Qtp%;hDv?IDuoES+Cg_7J^r=ciF4)Q!!tNHBDcw&{Zi1`~O z&f%0zRpJeFILe@u3Ii-A_NOHuE<_08@CtY6=nhf0s}!WkscPlfKF)Y&kxY6Yg=Ob?+z)J$g4UWoYaOuI|8b zcF647b5M)%p3n-~67QQzewwyDJ8>Bo2T>p67igTkBiZR)MGC@?4*7|)ywj)1&v_}z z9EaV>8l9#VNYVD!4n<6;Vf*bx+u}Ry@(Iazc@Oc;)Xah%(Dp{9C}(O)y)bclPLNR; zX&4KaMpZA1g1PY91EDnWS_9(ciK&da7@UzXGjX#GaF?OT=hpN~%HZAN$wBABLK{i# zqt3%Ca$om$o;dK)Q>bLp<-u^LAR`wAm6%wSD?jPBwh=R&lpJn6ef`yQ;#aswwo)wh zThf@@+XFnJHG8eQxt=#1R5-}i^v-Iw4EFn)2A_1WZ9;}JRj*SzEGwT_-cq;m0>cC2 zFTKS>-}8T~M`on^h#lHD*DKena-(SFWqj+L1xasb^^B13rxUWax!;QJZMe){ABl)~ z(*4@wlQQeThv;sc!*7>m<4ff+i~}W{UpH+&*k3^8r=^`z!Z#k5nlWsL-dt>flhS2n z+$^X4@J?syAMI0C`FY*h1U3-sReotc`+^#7)|%rh%OoY(K?zL#fqzjQw89;tRtx8Q zf49|vAG#ARWt?7khowfE-tr&H`31E;!R?3iXv@Rk2VTZuO!_3ap+T#VW6+-u5cITv zlT;SZ1+_cS(64bR`$N^K^#|_lKW6R}LQu?n!w6}Xxz}h%OV&Kt=&veb?;)=p6M&kT^`=cjGS1@i7SceqL(kIiOlNu>A+^dMz_R=B|o0*O(6jo zSjJu)+4EZ+-+;{h#fcC8NA_c1+%gb89Yo=j%61>C@7mi@i5?jC&9>9muU}UJ)o#`F zPQ>aihF`PQr01i`-Y~U7uKAcd+*TI0$b-BCN4~-(g4=4efmsf`OVa&TJii0uW@C6( zE%CfaCGoPJq?hFGro#bhcUhPd^!4YWEIG4bkHCY1lt`3LU$o~fL704*@u(v)tY4#F+qTggnj#L@sqZIbU zGx&|-ex=Nx07*mGcbc(v%P(4YH*h!uG6LonB-D)iq_=Adg6bAGX$Q@)f=a>zx;YRs}Tk_>OX7|3*ACHbBsmimT)PAi&9kl9FsNYxr*Cy6T&Lbu?UnT6{01JpF zdJfQAABy^d_RLGM+sXe%hLZ^O_n^Ct26edm_(FMM)6#8p^L2FSiZMp){5 z$g>J1^y_CjR66)RY(^s2G5^ta&-NSD#Zm})V+%WiMrqVVaB3taP;DCcHy^#|)PUK7 z@p6@M=KLhJQC>bX@j%P6{gxR^K!c62z@pW&BLj0^0pYUY%9UQC2bNW-(n5n_7qB@s4~(WJPeMV~l~LLQC2Mvq&_nTn zUnpBz$vyO%JSqh`(-f}RFn40=0IL_dirWnYr;z8RWQ-X|_R8GT4BHQEwnj4L@_~o`Z&M8u2X;N4ttEli{b+pgNi@uVaG5y@b_M>px-p z{;VfoHfYqGyvvUWMVxha=LFeDL}~?$h<0 zh6n-ss7c1b$IdNT8hJBLjZs+oJk0Azv}`MBgf8Z5b9 ztW-nWYcG;a9h8|b#^pYJyNw6 z9#{%v^f|xJULh4W|0R-0nM}9!wVTmmX$2368tm!g{a_OXdTok>19-nKlkt@l=C6Mp8Blno=Qz|X?^`0f&6;ojsN z?Z?XpnT4Kg4njT-Jpj9v#l4y`%k0|Vto)|>_tV_8L7MiY=CHDk*!%8lcK5&x9tBTO zVuoaP)`Ab}e0tXv?q~PNhy7%Hj(pphMLcOz(2sdMv8CfB!KEl*^#XYE`>OoY*u45e zfi*H6o8}|RM=#nAh86OP!Z$hRX9tFq=m`$PTGQ0jXWap|3+tP*o&rW`kUM14W) z&--}hy^^o1jObq?9@CXR*{7G5K1&X9Cx#Wbza^&~_GDVTs#e<}&RN#GI&dH3c!BRf zxYFs<#0^=E8ciSsB-I#JzodB@I&cBC1iNL)ey298 zn6Q*F!PMZ?mG>n0eU{CLhe4nf*1Yn(hh7|1Km&I0R8R zO|1|z5qjL628tOxS{Q$x!&NQ_Lsvhg9yB`34<1E+HMi{HGVahXt?TY>ltIl*6zcrk z3aRfPPm{9FJ~|Pcg*g9%@|lrRWfA~Un|TTS5BWn39Fw3cIE^X5MJ=>1c&-+gvX7x` z%Ca%mPU()QiD+#@maY}hw2ZQu&=>=CM7pyJikEzA*(VG6afTB9Z=!pKv8$9`+r_ov zh0D;B!T(1biT``7!wKUJ8+O18vi|JK-;w!|SU5wL9kMTnxmKD;I}0JeD30Z-^Mrz- zns(8Ii*Xc3$+#biP=hwp8&Q0_(+~xE3Ge(38`KWMBa0d_ZLv!8_eI*Fp#GoFE(x$( zHB5v-#h*~KhCovdDdhh1h#f6K3!J#{o!VMVRtqnh?Rp% zkr|0^Vv%Z>pupBCJ&be*xrI6uO}rAiGLwXTMZiu~m?|->kEX}Ql8=cRsMvqLkHOVT z!kPi%meLvzXds1uh#0y?!QCtn+6(FOR=&S2v*wEn`H_6gpcN)0@aGJ}w!QaJcwcya z1tsB5zWur#Uwd6w?vKU7ka75fg;y2W33Xnp8T0OzeXfrbgY*Zt*}4I+IB6kTva(13 zg(}_PpxZJhcn%h&5A12nm`2i*{U0Gh<%af$R^50VK7F72I|*~QMvSwsigLMjANOG* zS35mQqXuBEE#a>Z@A_-0ta~|AAvwe^>^23(^$j))Lmftn}y$Kr;;boJJ(KfNP8$O__X~M6QvRE{uXj23v@{LLA>KztP< z(PDEIhvPx?-Q&Yjd0Nm^SA8X`>w&sz;N|?g z+@EI2=V|Ku z^Kq`5M@POv*)Gl+B1~YbdQ5cB#(E-v^DAUWyZtb|HNTkQVk!!ot<)dGIy>0Cextw8NXQSpdM1%;dOoEtEl6Y4{77MhD3!g@Qmd-XC-m<8!+9~H5IYVHk9E4a@6kbW9HQI9+P-BiOxz` zT!Aj}pM_K^3}LgS>$z^5@kJFmeF9GMdHj^G8J>lTX!HNCsP?L*p##V?O`-AN#i z7pjvk{`Egs34os3>rg&gna}4WUp}dS5T##AOHrPEl8k6mF({3yy_%A|lh?LVv;b zRp3Np_U_AXmKO|+K9ELJEm25`{ZY`e8=RvF2cVYAHXISBj~L2v zhAaq>ax+c?c%F-ew*5Y0tjn+m6|Rnt7%+NK(|T>t>(gueY?sK!Z6>PgIckkK3ZnpJ z@D~oAu;5IG7>>A$_w0W(^7em^rHVnC9$;KJ$e^E_ zq9?s25Ja}Tkf*N~TCc4|jhrUTOcaYzYc)^VA%-SUj7V(gxYZ!_F{~`_3KFVSn0%Td z|Kuq@Zaiqd(AEoy`jFmCOpb}=4AKEZ@(`tVuu`ARnz3iLuZy*Zn$Rn>V7ko7co4N` zF`58AZW1dSxCnYyh@|rlt=R#C`sX@{@8Gv-dOGm%pf1G=ocoj7A4OhAG0OC)5tki| zg8-Yx$k6gd23z)h63%6^={cZXWYAV22jc24JG; zCm_3IO%orP(L1cZPyej+o$y8s7O%)yk*mXonw31@3hNQPEyex^au%m`dGDgw@x;K^ zFD{SwVC~ygM^JXcL@&Q~XL%Q}?b!C$h42pi^;(J^@BCy5^vG~E?;ZzJ>t7NKwp8W5 z54@vK6U-ZtuOC{wET~Y^cGSbBX!*`e0)Z6IRo=lfI3n{SY}{}~P`Y|l5RNN5K6GFJ zOra-VDP&7YE9{Lgi$7NvGG_PZ&MICdi_`GBbMXRuge#2gdaeH&iBWZi82fbCTh}Yt z%*DyKg&Z&^OsV$dLL$w0O!R@5!OCGT3T*;cg9Hbcd4>eRr-&AJy9(y;kPRY|5%d(5 zC>VXgv4F>F-LgU}!nNpumio^^Bj5LnQefk&(!QRspKBv^t3e#{H2V0?NZsp&r}nd$ zMGDt&c&LyhjRbNSbWU{3`nD`*eX1&Wt1cx5ijzzIg5r z7r}QtdFP*=KBuJrM-M#f6r|U&&w}mc#4^R+9ETRv1Uv8Wms)HRR_}~xg^q@MY=dn% zyKZv_#dRBs$RECM86o;Qp3X9lU7*munE%N*mTng6Y-fvWf9SB3a^NI>xOORQbNufZ znOi+n{`aIM-H#7wg|)6Jl^gRZDL4z8`pMza;PXcd4Ker!%0(kgOE?1yrsQ%1kKPe~ zBSR}EQ$M?N)4|WQydDifM=Ud$qVW-|Oq=^VIp{3Va4&=%Ygz&QePHVN2|h1!HIu0{ zP+-8>MHiJ)s6teKL_A^b?o3y+o6bIL8Sc>;ID)t(1Lg3GgiaM{9Wd1RvR02RgnIe! z1+j=S=1q2sD!Kq)YCb_jF5u@RjF7f_d{W5JaMcB~W>ZH>hC&}SOqwx}y_V7q-0Po+ zBdfAwrdF7BR=k5T1g-JOP2-e7f{f#z;@*N9FVMZcB%|^PpX&i;^8tJ{O{1O~6=rt* zGh&+P?Sgm|hgx9!X1XA%dY5GBOP4~A%^?H55x2ZuYfae6)b3BaYaHxesi}8;x+|A# zB-Lj}Cf?-A{_6~(BF8_@d4!|z&X|V2T4C)Dn=hgrmVh~Z@I(GTBO-bIi3_57RYN}6 z<|FiNw98Lu!()ZOURw8?xHRF7#&+nU*sjPuGUHlzcMcs#1aG%gC~#dQwqnZrIQlUo zZHxI2xMB}>kI<DkvYukxHm^&f}GWMXCh)CiK65lH3B0* zhHY{d#UIc&l|WLWaOW~JW)S*u+2Fe?k`C6A?`fl%Hi4QbM2!Dr zgxQ?WesQx-8oa4CqU77OE^g-~*Vl zj_!TX_H>XLgJg$W1i0ih0XqrVNc>^Gp3v(} zy~h25fz`s>*FQR4+g9B!fB7WoioS{a z4|w@YmUGNic4u}b!lR=wPvRkLoxkRZTX&KF9#zk0HJ!E(yRdu;LT(c^iSRsOqK97& zChhr#{*Iu4!crh=q~wM1USji!N@tjiGNBoziT}POe+sPs&@7c~21zmsol0l_+B6%|j!Bg_kkDX4(yaK3Vgy;RCe!fFxcI8^yj z#C}g#0p`dN#@s_nFQep^SA1p}M$IakJiGqk_zHiV9{{}fKlBlB#|O6)4OgV*Nj#6Q zV3WtbYP2tf2Tv7do1CtnUh5>Sa_JE^?zBG!zh4lg-7IdDt6kyz127kG7(DE4HDl6~ z&T0w2uEH|UXFVeXZ#+^8YCwP6;m0n7jUF~rGm!$kapfMH9XnUC%v|%@4+qnSjBks4 znbOAZzeZoGZaaD+z(k8ZepHgTh^TI`WBrj(LgNtlkA(Vt>{FEOpAVTLpPrPZ=-Jyz z@`uA+e*-ozC1+`|2*bkU<_l#npgAMfeVJ`(>J%|(#VVPQU?92NJ2oNzHjH=!v}<)q zp!(bKP1s$Kz-K-{?Hzlg6mV8Xav83wYp|c~&|_7-_d)TvIBu1q!TnLX8%3)NiUdLr zR$tt60K3|q@{l0|X6iQTyR+Act>}DiO6@th37`#Kz`YMMNtmSmg!XRdR`F?nXkt+7 z*tDjNtNGA7K8+B|9^Tt?;JF0MBN)_qAnzrr6?u!PJv#_V=01XyK2@??Fn!Z6w#++y zve(>{BLx&zmtXAH*^HYS_=J*c+lAeB=jv1)9A;E}OK?DOf1j?6LHon2h`_BUh;%WA z;qNmj?361!AnESrrhV!XLOzLH1XrJs-n6ZruY>8Y=%gm@6DYfCPzC{q>QbfpuxQlQa16~IXR0mHa9ZkaRLU!eW} zT3P@Gp-CpPZVpmz!2JOXagI+fHTyn>1;fKg@bPYF-!>nL(I|{tGeFd0cMS-kYj;Ec z!zAQ?GnUJ*645b`GruNk9G13+sQXd#OEmDLGZ1)YRoy4RO%LD}}=TbFcxf62+AX%MUx}}8&e{L6bJjJ7=4^p9$6xcj5(2dYZ4t3>E_T<0hPZBDktT7r zDx^59kUx{^Gnsq}Z#umfXLNFlf(hn*v1fMZ>&T;KBI$6$sYQ3h2E#8{ zlK+)PI9bZ^$?!#eyyx^r`|P)AKT5SO#fgIh0 zR0OPk3CQA^Uf!p$32+1Oo)4wHd_BV<-qZ8%H~3>r%!?n|=*p|4GoIrqWPu63+)Jb^ zJ41?6b+B^3fJn9Xa!=};KWXsti8;eCNk%(JrIYKv`mVs*wcoY=NZC+DuK=s%kGn2- zdr4`5i*Huj@;JAVF;trdpH8gg4<9pHKAz*xwb=jd;1Q|@$?}Wl&n$i2W^@RuLG`lV zebuCX{u3>joitP7Utj(i250g#T->-W@XKY>?8sMH$V0LBqSRz5d~sz51Q_mRO|~k- z4iVTcSgUTGYa&}^?eP);wftV(gab+boPc7fg!fryT4XZx&vbqcn_%E4R_dtE2bP+P zXW~&6(!AhDMmblh-UYS<5m~&|tW$0YO2@Yd84_ld^-h-DQm7!cH&c z%Yx}RbnS23R=qk@iS+EJkG0E;m9tHgT_gvI^Pk}__SbwWc^Kz{cYo}y*K*a$jOqD3 zJL$QTK*J&2K)dw1aFTQRq`EF63|ICPxxVf~EI9AQ3T@jRCQDAR84xJX;x zBzvNKD}6h^c-MpPn4U=@uhm9m&@-UV_(7BKt2u?-yaQ1DKbrxpX|*!@Jsk+1i(VfM zI2_QY*>JAn$lTmXpvMSSqRfP5Fggq+878>RwBun1`m=4ByY@VgGVljPsslvIU{%1o zalJPJ4FCq@&%|H1FmAUj^?<3j5paOR?cHofv@NWI4CUee9RTci+C2*|)F16v9%4^o z7}@*5x>}$pQNQ%>;`;Sg?ufTtJ@H{f(gOUoT^zVycnTFbR?sK+fD+oxVphLDGlPoV ziE(ZO%q^~Z8Z4fH#U}i{0UDmB&YZ@P&?gYG>Y>Xq8q+lDvf{M?t};f+FRCR*fHAhm zb`_R7gYhlzk)`cJI5uHo&-5+hr?*3X>2zYIyVjxZb)Lo z+fpVlEg}h)LPzyVBwgZyz>2Z}5VUe}M1kh?ifD*E(LN46Jpj(duCON>LC;qZ+-8sA zFl-JK-oq_=u8DjUsCm#b&buePs%a1mrR)7rT?^<8$mDkhIxQuM8;J4#nTY-r`xj!y z)c-lU8;<(zuvG2_6rKl@s~Q?rT?GMm=a&f@Qn+yv?9%8dexnago*6I^@av^rHcv9G zBxWOxunR&b?OKRej6*HvLr%{1^*b@58HK^FoXf#^D)-OI>X^rA#49-FJHc1yB#tdJ zI}&iEOf&{*6C$^xs`)YbeH0dKftt?6q+K<23v}w zza*4eeE@&z=~6HrZJv&>+2tG2=zq|rnUM=@buw9enq3zeK@Nv!DefEb$bBp_{RcKB zrMdC`m;FBJ20Hy2;x#i_Lwt!&(r-9SG&@ovO%wH_cVy@?a3ZUgvoAma|kqZX6+&(0*=4G5W(2QQ1{~#m{w*1e7!d6 z3G5)fgX_z^W12cq_R`p+dnd^Vc1_kdBKMOu9lBArAL3b0<`YrP7Y_&7#BQmeERj4t z(D3-o!%(ffFJ?un&qb72GIg1;Bm02`xswTr({f{V6(RMS)e8IvTN%w<4M|ge zb=pF14x6|lholoZLeM4>vL9amz#D+MnWCPkT9pHhAmiZ26+G&&UB8Rr#FMZ{ArWaj znCuh#?XK|9(T&4M?_|64i9AhMPz}C0KZ7k)bWuHf-3ckNwFNN#9V~FLWF)` z)&ISjs^mIKgOGJ&Kh#7OOm4)u$b8K2t~0m-9u#NrDx0gFsgRP5y*!WHe%ja?b7N|7 zaR19>;MVQW(BhS(C+w?ja!ZwL^qQrw0DFj#6cfCtp7xnYP$nh9ixOPA>z`yNIZaa4 ze4a;r-QNdY_wCkSty%_RfbP#30k_RhZf_32_QwtULWOQcpEf_y3u2}Vqw_5~$hmxB zUyohk((bEh478{Ap+}{ud0g=oGj+tX=V;qC|Vj??@Z$!kIl(%Lty9ew~J@a@^Z z)7vN>_;KQfEj_0b?!DV_nRxMPUW*I4DM0gf?tl;M)yP=fo3!X9WMt|R;nMw!Gj;7Z zi0M9pow;?s&ihTolJ*7FY( z1E$727G8OM1x+uk*hKdhR>-g(mC>;$8VY{aFR?2QvN}Q+=5+ABGU_byo9GoF)_Q!- z1$r#{q~e5?jh#tVCZK#3e!OC?W+h7W_)I>+sy<3%5X)s%|5{@Z;B6rC?Syc7|D4F* zy~^x{l|r!p{}01>S_AzZvKMs?yHKwV`@PKqI!3Uj;i;azkq34xe0){ znxB+1db904Xe!fg^T~tV5iWr31!6=Z>)R`K3M+3-p=T6VOup|Vlz4)>tW{Ch=$<}K zwRd2nh^bG90(`Uidp0%x9@k@Uh7LNwT}KL*(8-hP7sP|8=n8j41}oJ5Z#K@;2397B zmmq6!6^edy8+i~_%>x)%zfIl9U;VfI3)wckHt6@|jq~}!!&*kk{e>&ve$h4Z{Dw&A zO{W;5+612l)LTwV0Oim!u$#kO$h@228=!|R^E#r-aL&Iq;Go_cvNGTXCNmvzfYG9k zR^`vzw!1e{_9?i~B@K|Bvam9Tcewq%=5Bp_sn`Q2*^4)oH~Uj?vxP?}wawr8PO(OO z?y7T}OzNTHqsu!k+p%PR#7QWKg^anS^hTDxAxh2LAT$RG?Y$ISkU1Zc?1?%Xgu2{8 zk|cf{9berLdH1imxE5~%9i0pFgZ%2#Awjp@5ncrqcJVABSZ#F1-&ve;JvLdwQ!)A` z(0&(uEFjy#Nap$yo3j%)NURTT_)-7FZ;qe+{x;g4dNf(t0`Ur5(q;SSkaP3|KX-!G z+Ad+%}+k=4qccpg-RaKwRA=NpR zHsf$UyW+8Zn&6BD;@a%VHi?&8h5mCe)lygp*w`t(6bJii4zoa571}a4*uG8&7-c|~ zdXYg(Ks#~Ofo-0EyS`YA!#+_>B;HeN(KEA09=|+`8N~0bL$$*mJ|9;Folf$T z7Z!?UZn9YK2h>_=*!oim#GyADdt(f0xvyFsGV|f0q#pcmi{HdAr3ytIlnM5)4b%ug z_o+#hSOYhaT+n(9ZoBaEFc^KNRK*?cN+jts=N7Y5wicIO$>2xUkOZ2L@mAQizss@M z*0cJORLs}}@rd0ccBH-wyDKY;fLK9TJ%DOQQhl~a9*h1r6{J}Cvgnhh3v@#(=iTZe zDlMtF8qpXv=pfAza|4VQs%&C&BcH?L@Mf29>(W$%8?k-h&y@y}Vo_nqt> z#f9yC!d0m{7`J;Lvgo3d|5O*5qRi8*e-%D$I@rD1+Y*EG9C$omMRACpY zxqrEedUrv`T`*zqrVsg?b&tdD@(IVxOJ95?{+4`)>G?TLh9Cw|or@J!P1C=qbH(ZWjMk{QxavNg9)?q{g$O!IAMo|c3f?FQ1(sX`_!vVs6&_a$Vs*ckh-lUOQ;51y(& zG~c!r#I#+3f=SOsMaC+scI+Ww2V&;F>8V~|BxWs#PHO5uRkkfjBIe44s0k$v7i_StZ6WpJ=F!UK@Rge^YxKat>_104V2M1G z)^%S6I?*bD?I)J4Oi>m_I-w-#kK}tAE~R%1verY`Kt`4`*Kd?R_dhpQuTMG|_j6lv zgASQ1%0iw)@2?9)`Lp!<$RNu<8voRBeE~R)E&vO>co) z@n?WnpL$gV9D;pWJ@<9Py}7m(i0`>8Nr}Oy0u|a8cA)ilYy84UcxOW@xb%wHos`Xw z?{=#{u@w$!o1OW7CmSC2JL6kU`|n%1%zwD~UpAookp}&$pn_Em)>RuouYaQQ#rVpd zB#mR6*sL{#(uW>jtq9ZI4YpVDk?KHe{sFLL6Skk*QJ3nue@2C^lgpu|@b8Ryk-lMZ zeyF&9K~47YSQ*#7dBi50D!%m9$Pt^fbVIp5laR;1EUdHZ!rmRu_1K{f-+O6WK2~(~ z4Owyfds|0J>NP#^svwI_r0N>o27`x|qQ{UHvl{oOaJ6U*{JBPm7+LYh`yOKZvns(1 z#`DG2Q_DyC9-O?-j4C^;9RCz2)tS(l`0jN-+B)hq>{xL{;S1~|;~&J2tKGbbkMjzX zhmg>#ZyhK%>hjB7(wGNP=?uqi_^seZU^NoH7Rz^ay)&w0 z)3(%C`x7TNf?mY5UH!-MjQfGw?v?f^*fwG^jw`-|Gi=B;d*Wzd(_?4Pl$`={mI=bg(d6zjhEN4}owi79-?Z-9$95%yy7 z4{ISd6M3BRI66CO_{me^mp#&g(_5f~inZ z`gX#(@?1S<_<-EVf-j)G?fE;nfd+M7InjY13S6XY?C{=>>M}7& zs9C0<8F?=&_h4tXMs>giq;w7Ic?Xp>erR9%i0@m~CTCaYvIbLTgR||*Vjxn4%f;Fn zdh(~h(gOjf2(#4Nfxkv{Yia8i=mD1XBF0R-$OZ@>c(*XLn8MHo4PN3T2qXORSs-Pu z_PYgKOUGM@NvnySD}Q1QX?+^1xl&SBGg@LMwB=}xHP@KO#!m-J6dI2LZx&EqSH<@W zR<>7_bE#3S$CU2`;wttj0A5%jMTYE_xbrQnOV zu;C|E3DphZ{c6zhAUICN(#4z@We?WkinjJEl4iL>uciF`s9(GXMtKHt8rE+1Vbl3}G}^huZ0 zBF>REt`;PHS;G3L8&mfsx$`N%;kS+AbaTU6y1(*c>js79XN-nbp) zeAEu5S_*r~n%Q`}R4j=wg#|@xa1^L+jppp6e zC_3A2YTaeIc3tn;Q@DADd>#5`SI?$(>Lm)rATP@MgOa*qu`P(D0C#e2`HyW|C1)UG zHP7orbP@t0`$rD$PJGw&nY%1b`-61l3I7~QyY%Rhmd$ho|A`K)OrrIl>EsSbJ>789 z{CFMqcn-RicYL7?-9##ohj)u!lIT-yMUVu+-gs;}8a6?10lR;XNi^X8RM(Hs_wOhj z`?M7A86XZT>wG+#M&yu@&KQOWtemBQmZB3n!v481dF}gWkO~EbE75npg;piW{~ce|W|XhllJ$ zG?yly2G z91G*q8{P#uc0 zW{p~Yaw%=EV`aUF!42p^aYMD0PZ(Bger;$Ti?Xn_e~~@nK1QTL{(@FfgDzo42$qia z@m3;)SC?A|JO6$q0H3Tw*N%(d)f@DwKxUMJ7p~ z?>_)xVDs=)D78qE9%@UK13K@*Y;Ar@8cHq?9>0Lb@IA4CZ+=0{B+s;CXp zDwoq^y@Wd0PtnP0Uq{jlzK3s79f2}7r}sHokh(^zs#_DcGELZEyRqKGbeuHmtJtr~ z-*}dJ=%({9>jHA2jgqH%KTs2#km8WLneTpuAdj1HHEZ87jKf8iA?eF)a;bD{#G7sE z>*Lm?T#Q%*p_zTu?`Pk=3W{$JF$2WV05O4int-RA%TdEKsH!9IDCajj3peYhX7~qb z-`R2Mvo%b~*`z1Boj~RCb`9+&|C$$WAie@@ZX)4*e=%rJF(IU3eHWOUTq+vpVYg0f zRIv_ip!6Uf+SZO4gO5lS6{8sk?rSwj38WZA;*0Mn@xQM>`MLH8-D4Wp zt;TO99IP$di9MsZ5!^PLf*W&sN@xrutBD`O zHTRxR?#7L(A*tw%n86^Q3VF%`#q~k7qt44@t(o2oK+%+Mt~GJPp?de(J#ze=xoNjB zY0%vL0<65)o(TN*>x7XFojVJZ^m!{K5#qo52+lM)O-aT-9ri_dsuUzga8AHlIm#_9 znS^l~SH=we4AjxRaRwDqY^hm`J}Cb}yv0l1tx1!gbn^g4pe{&V{3umZAn<^fl9bxY zZ4q;!B+YqRJovV4nazZ!53)^`M(wLDq$3=N^AD`wwDN6T`#ZwuU008*IopCr0&loV z^4~)O<8-=E4l_;kg`Bm!m!@!LdGcmU=hnPFIgXhQT`8_g?EGI|=_d<1e%xU%4C_BV zn?%rw?kdOaUk+;J=Gr0byFmp#)_##bM$qM>SNseNV$ljdqmij7 z2g{nZ7kcSV+P(}nVK05p{2S;?K9yL^u1w{9qg!+wQ@mSR1Ag*W`MeIfCIFt8X~hW2 zUu2QjQt<(-^)P@-GnU`3%=p6=u(J5&#-Og)e_H(hH)zYhu8UAXMtH6sXqMP$-4=Mr1o>s7BP*QM+-j*g2rozW5UFee6(w5yk}RKSw>`3LrI z@Pg7}6nKT(xjep~OL}vkeDHF0oJdNXwDL%3)@f!~dOVPT$ltGUks)XduB;{>i1~}F znn+Ies~O`7*Czbw1KZ|_J zhIm7B4w!7#r{LJGeCUbP@zKL$gRA5bMm$p{dV`cxktugM#Ir8NdHS^23nZge8BjV) zxAwgio%5L(a*07R4?Fz>VhDlC{4U1aW4Lvw5frVryh(#F^lE`CvAYd%dEg?@gZUq& zMd{1vBD@{J83?c$Tb)=BI9Gvf2t|hQ|1=6epxI9(C7LK^$kMIrKJZ_l>=J*1 zZa}}G?iKEI867mimA=Q&%Gvp-+ToL{;2vmxe{ZBppj6GfV}{qc%W~B32P55q_6agr zYqm!A0{XbjcRx@52u2uRpllP)xm26>L>kgTL0ELj*tX%CRE!zkywLRnv@+>oG75q6B2y)t1Q(O~>lQBo_0IA?K^L!bM2eKt#oc7F)=b!&ng+v!Vo^D4r`< zfP{LSlW5K7wshd0O;~%T&u>xk6z|v@PEXE97ta`X?Ewd6cW>pQ!iH8$6FY6-cb;S4 z61vO)<%VNEsPBOfkCHp?&&{zYH}QMr;k2n8gm0A#>DQ94r~c^s`|W2s&Dwy6n*xRN zIx7>{?yJ(bJt_WeIB(wIEI@7?!s;-2?PP zFy3pX8bV_N2tN4HuNAZ$$q}h|4*KJlD#Acj@^-Al;iZ4ntm?X05x>5Mx43M?s^dE6 zV~y9`ch>0s8-M9M=r;6oYduY1nL6%48@N-qM80ou{dUu4Mu@h~0Dpze@3`X*S=ad6 zuKfej%r3$vnD*3jk<@_@^4&h7mif91TK&mWj=;D+N{L3V61CQ(<}H?fOOEXaIF@U+ zI%@}0O09oA>JT`~y>M*n)dUT1hLt6*-03SBalfvgI6jYXFdakR>uU)+&n-p;B+2;1&Fmid< z+^d?Z1@O@`jdgrzU5Y|eDrKZ4#rO12wsd>kMBWpFV7FOH;>u}%TMOe3bD8ELNK!-DP zs5EK-e{2UI(T%})u|qRJ(mCxg#1x&UN5Cx$v$;NZy3{%=)cRNKFDNdd_wY*! zOT_Gm(Hc`?d^{SiWn=u|YNe{c=wo?x9?QyHr_>qjfr9DJ=-uXoZvv~u28--AzIvWL zC9zrU_IaTQ%43ranomcd&Y~TnL)6eiz57#ME_QpuNzD%>P+uPp`J*9_Zq@VS&(Uki zmd^bNr#XibSVZ5!?V(9Omj&HS;(p+kDofV#rth#Xl(VVu^PXNkByD*Qx@Qy16u(Yp zT)q-af|9Q#lHUKT$ycI%vNG0y2#g3nJEu%YyzmV%M!T@T+meN1ynyD1)xWB}bWQlD z-n|H{eO$>OeN8x9AaI99gIHV|)x4MVXu5+Up6ZMhAm@P|Pj-772*#zAw0m9Co0wWJ z_ec!clK2UnHz4b4XfIw((PB!nFm&+NwG30~X!}!40}hgLT$J$RR)iZ7SJZ94VFK%3 z&WUx{=fHXf4h)RMA2@2oZR^Hp2k*?pJ@i1z>($CJ>lo{0s@ya72;U}S0#h1P4*rls zi41goYyBe_ZR1nf1buikb_Iy0^1$^0`ais#UfjIq`Cnixpkjh}gH3%_?_k(?b@!4p zid;h<(txx1$&B6`p`qw|fz_iE1!d4%XtZ$ashq6IwdZRPPUy+ErmMfC&k3cB7V&?3 z>&ab&;m5xUK0w3$(5r7h3PWf; z(!Bc()6a|Wf<3TK7&vmGtjBtBzq{?Phs)GQPebOF!wKe|$%qCKzNYM<*z0ga{mG&P z3EA6s!EtSfZd4S2FV;Ez1y(;EN#C*7f9P-Rm>nG}aODD`tNFPXcNo>(9aM|$)85)s zVodmZ6040|o9WdH3SBs84hJQT)q`LCIW2_be){~^ccwplYcZ1tM|xb`2iptTeyZK+ z$k%t}OPzXSjxa`=MP5XFo2G>89ZqCyBgE|=%=6 zd?%_KG%-3nlN`(@>#@kaz$yGtALN@*>vi~Hq`GM@P%vj*Juu+}Lw zA5*+@bWQ*v8${*t{jKJ!n8SyLsd1nOC!W}0W1*U9Tyw(&Iv_Gi#KyBz$--F2kwVvelvLy)#zuo_vwCmn8AeJ z=k^PqC4$%bez1zbT1fOCnkq`{lB|(vdoeGEKRw&S|9B*+W=%ZjdYxHeh!QTDiOYN>5DO|lPfXr5F?w%+udGTI;c=!>S zIJ!Ng4p;l-BoI8Wwu!zWyn~fHn^I&q6MAk&L;Ki^Z4ImG8<6^A%&sF6!Ee~+DB(pQ z=Vo0v&g{`BO^PO|Q3oE+3MmZ?z_Y}~|0=HI&J1IW0Ow&qxT*9w^6MN->%Gupnb!1{%MgkwaqStqW%-wx)s!4y z*}F5|^0$TPCYdkpv6X{RhePE>M*ckcTvp2D`6Y4RnI~a^y7iRhHGxQ1zOnnryyn#l zWk+JygEy&}bx{VQ`Th?+P_f;_=jnq6By3pwPc752 z58!}3MPD?aa7^xH%6*fEy&i~PJ*Jqth6zWyWUnzZLMp-R>0G)L4~kZRJzPi^pe*C+ zo?*yn0J=WSzWRT}mxtP_I9bBFXV0YYUt*8Qe}T<}A%!&Zxd%kdhy0p~O0=b;0^!=C z52;(YkGZ=_UaAp+;i_#lJ2-=*G3W??hZWnnQ*bN;tOitiv+mfD8|blm^W`Rvb|qkK zHh3q4o@>ozu9x=?(zGonGZC=u-ZGbTFm-ek3P2nhJ08VEknqPs8X#NH?cMN$o&=$> zX^QwZH`#s-!0bnpJii5s5ZT=vA;UiYF|oJ3ow4(SI^*B4cz$D0-+wsg*!|g{*%Isq zQy>M(vO7VYK==4JLP>fny%GyLXb&Y}-)a5HwH7VDCsu@_Fze`5=C@odkYxUOx(05T&O&pMu!Rv zzQA*5H*ZpoTxF~g70_Nu@2lD4C46_K?hk@jiq;m*UgF_m24AOl)(&e>W6f{lI>#@~ z|19(BJTxbo^U`@#{$oG%x8^aYcq~Wnwdh-jiRuO9D**~BToDc zzQ|*IbBrp|r#A1Yd)LrjgZi+Bj2v1La(cdOwVEvj(;kFDR9xK%WS^@>QhS-mck`i2 ze&J12LoCz*b0m?^!m2hxJ9lCOXMc}xs}%6jM>=ECf^blk2E-1HLvkUvdr+Bo?R{?pFXoLwW~C_msiooabi1R0e4MG(SlsTzHmF0^B2B#(F6WK1NAja z6k&N?qol)YC+o^Ds&j@Kz&(T=bTBGgnjI?yYI8nxP;gc6tcxetC=_X}ri^!Q#Do9N zD2!F z9N!Zned>&mq_eWrfr5(cpT#Y?VYtX9u#hh0<{gNxIdtCk74W`{zKUSoojp<1T90iL zJWc2#TGdndl>_f} zyJcZgv4I4tK`T$#5&s7r@NcMuX!&c#0_$zy-lO#$=%p*yIf2g|hJl57EESc=2bBH= z{L&meZ4IMWIDrRSiSYB_5_=YP;P|RC(5bmLRVryea^atsA_54!tzWfyF8fG>%&YIA z&xIuoo}9mtnuI5AR?o8~(Gw}zTzF50)Z3<~Zj*9BW>vF-IpLQ`q188!Z<uO2LSEY*UZ}Urv4e!$B_T`9~}rdb8)3xwEnyD z6gyT4)%Zv51LX|QqL#?6L)&*1X4nRTAF`q0pA;h& zxgS@yC)OQsL`dWEj96KE!;ZxQh{<-~X0#q26EV!ipONK-#o^YK0HM2?TRG>(2hy{W zQUnp#x{k{dz8e@a{J0^~HL>44$t^bc@ikI)Yz^Y{u@2vW8)OlgsRxc|Ulc8Y`wEek zCy_TK8oM3|1?KrJ7V}>YsCel34PxBQ;qI%y!;II-XC5&Cs6IlKYEtT z#b^*1Jy{V_|IU^_II%^YL(ZhhZRYasg}PsC3mo}?(_}ZYJ>Rv1=?<&X z`}fBX1zE}8!WBp5c0;-?PV3b>2@0Oa+oDzQYj&vmEcPznb6~EdQjwwE3-<<^ahN}j zjwf>57~r(K3>Y7S4*02Wnp&YgnMbSWEe}VAmIOoT6n5-vVI+xiWF2nCmkGMr0CXj{ zzw1gt_mp>Gf|dhLt^k%&U4m+}CHON5M0#QaR_O>5AsLaCd=&V2Ixme^#)GQZEUrr@ z^f3gcHY>Nid24SYXCq2z^HvYmpk_weZzCj6H-I>F9bL7kRb|J7(A|QK(L50s3LQhf zXL>R4$`dn`sz;wX65ut;zrN7;RptHUbt8yp?3`LL37eb7ZbQ5% z{DVCYR5ldQjpUc6i3ttsCMng!xBLy@Mft5Vn{JMLU-bLZH_^I{y8_R}ikB@C=U+J= zqp$Rbx9;BO19lHDfA5cG6HDQK+_TPZhjqqc-X3K9U*&6kyzxO!f_B#6HqlTvazB(R z*A|yfkuTT3$B$m^)+c$sU-8%iXVe-s>m5%{;fCsy{l}>+X7TGfY||ins2hMCAZxD6 zlh-R0PDDi6sh3Bjh9C!vr5Vcb3TlP=jlvR1QA0nm6%n_3Az$Ve=YT7Qar7HL<7>k0 z6^QlFk91p6@!bb?k1@)?^@Oww`{mZ!G4>nf&mGI0Uw=+&_cbE6fs=L$v~-|n-8m#Z zFdGf?`%vP;56WZOrV5PVBC$6_kXs|TZi{K$uf+0m@!Z{vU>_93^1Zda z8)l(UEp3Pz`|Z7_pPSf>dlZXpFg&RrL{8IIaD6 z469eC@3`>yA1kN+g!BXGpJ~)5(q;s0p$gU;T{@*l^~;bOi_trw4+Byw61_Ze)v zX5KT8{NimVdP$}HD^Q zalfrl;@PH9+=lrL*EQ|fZ1tMlZ7vhIKZviSWmGBn_;JV|A79KtuFm{WJt*^i1Xw2%E zB8dqpq!o&(-WlCLg%ol&MeKG=OUb&@pGNp4Q+#+q-j)N5~&5}X1#pN~wV~r)KoU=&+c5sv5PaR~F#E3`33-_T%XP)bEv`v;d$+cgp7>@R4 z?8W!owifS?K>v|tR?9Gs!6b$wcT#x%in?w!2a6f_xT2Occk1!&Mj%mO^aNm3?t~k} z0IB@)+a;YgnthRo0J}`SxEM&&qCacsx)0AZAs;nM8f*o30&Y{eqfgdkj%aPIH~lLu zBmj@AcVekU4IJO={JzY;W;6Gn_u;Hz(*B9OMJyMm{{umCn8|88L+V&I+)9xjuFV1MgXbSi zvhf;jEH|U0&*2TaXE@}W{hf=H?jOra<9NIagUt?~oX^9>mhFHW`p~hY*+INDI{vd< ze`DuqLJ0o&bOrhGZEq9s#Fm^((WR`wKpBmW@_H7&S-El1I zA&uX9x*zTjV85EVUetu8+X(lkW7`Cr4#2sryr81!=rF>kv#zlNpN`!sX6wLYPjybh zUIiEOHmB&7aU6m}+#}vNl8L^anoLaFjCWlrY68olVWmp9s2C|-2%?g&56v|U{H=7O z;0`oqy$EpUWyBvvraPb~_MR_#L42|6jPi$gy0w54s=lcC)gBrBDop)5w04qIm$yTt zu~}!f!j0Qt(>Ao_g|teq;*BJq?tv<7ZQg!Mf}7xZ>32R0);av?n}1J*kljR1d^WD=HK4xd(-L%1*^oh73Z?xB;*6Xio?HA|Qy)A8N7Bh#2R_1BcALYkRAW7I#AOr&y0Fm4PZ1viWyT4+=@ z7CEs{@p*_6GKr6{OxN9dXl2Bd2iyyCUk*3(qQC>)c&5ENNK`gk!Gs|$Z8+|d_XBi& zKRQTJOmX}h#hEXbH!-k6x)!qzAncb(m!9>00Bz_Nm0Nda1s(VhM#GY@{X%9XKoPBb z=2>Go-Fy&yT$DRIi_`|HrXHN@BE9&tz255>lT4bO?dnA|suNta5b|pHT99hwbUJ=X zj^X|I9`5?4br%1NS(#@G6ZE9X;j7_kV^>9!BsotY`JkJxl3klm!JJyedD4(5czsh` zPmOhY<I6)Ms8U|YXg%^x6nYh zQhgj-7?&6SbwoA%U;Lo6u>)dFjJw~;ZY)1$OZVRyDT)V&c32&$0kyd@xZqrTqG_Qr z@No(7GdX>Bvs3Z6oODWit!#0&MGlOrm`FOCh=@3vMlOg;II-v)(S-5&n^>U^ifyb4 zkTysisViB*7vCD!Jf|_2;9!?E=KKTNq^mR^nO%T;D=oYvo8Lk&5LIzNboah?uB-3a zI?jFRHzlN(J!w{RxEaJHW!A2VgWj4^d|T{SRcD6&VOYUo#Cm|jQ>IQl{!5@2&HZ} zWL<-4qY$R|KaoNJpyKr5^$`a4^5{c1)YjM}{?)7)`xcPy&niGlzwn*-9FYq708`Vr z+P5Kd;i>%8hoG6 z;!CRp*Bc5~mcvaGNlR@xO<-7m?bF2VNSQ#Kg=eDR=B8Q`Y(jNYZ3=c>1{QrXa{a@@ts%*Z|*S2ph{Y*X6EqLw}Q*BrGKK-UJDPr6&N#UUSmXPx(#lGvEqC`moxbdA*R?3;6(y`Q z3rIa0UAO+_IZ!26u|SmC?gGM11yq9sg7+=uT=jR6#mhy`rD#;hcVsQMT5v21k=rP6 z-IzGe&)Tp)>g6tzyn7*|NXystts%6&-vPX96T_7#;IDZ}N$21A%p=y(lB7wh*uu(0 z`IB9*KN6l#`&;EWmqyeNm^7l_+Z7Hw}ikE%U^A|2_gw3Qb;< z^6|(EBruZqqGQgaYQ!A)N$X~Dhr$p7^g_F9Y6HLB%wPidOkJxtJT#7mGeuk`h%39> zWBC`P?y~RB_VeI`@qPldh~k+*{gt!2qfAl`UMg4%pt8l+|GoVn!9s#BOTS-nZjg)P zSSv#TAuE*XP`-!00)1p`mD(A%tZOBNyJw3p#GU8cr@gLgvt#x$to~rUY7z=u$*yvb z0uKUN#Ye|KTmS`k&>O$Dcq#r={d&0DBY8>c^6uG8?8Vct!p_T_C`cxtztfYY=;!rPRd^|LEoc6;#0=@fZCele@Tyh~r)&j_P;kZs9@i>stmG zwQ0{s3da2RsN5yP*3P1a6&|wbFDJVTXO92=sS|ladaTSI*`%M=%(IFE#0Vp%2Cl*sZvcT#tAcEfT1 zzl0s~|FRpH9fUxMDe`8nVUQZdQ~bY?L;xmF6B$B&tco(p;xcZXl}|y~cuHk^h0`(ugrh0v$2Momj^wd)RAtYOe#o8O*PsCAGp7I2YkoW#fS!Siqm%TXjBF;9(iN zA9}Ea`2dz83R;ZV?@-)T>OsCUvzk|hzTM-0sEI=7XIH60Da(D%hX6Yk_QgNoP<{lZ z_YooR(Q{0KkE_&ROG@$*rK<6qp)UIJWbi&f-(u9YRW2rXZ@kt=2d?E)@wcV)n{!Ho z?(6ETws@#Hq;&)5kv4_6{?Ohx`1~|F3_dS|CU7oZ3|au?NCU1EjDNg%&FT-5$u=Fe zsn;RuNr1+czd&8~P{$DqDg%_>u~ejCHvAi>&azGdWXvS*yPoy0T8u)ScP<@hG7xpT zkprLV06pwXqLc+m#}dt!KJPIsE_lU(&Fn1hBLGn5)lM9SVa=f;Gp zc36S-HaD!JNRZT-OHT^dsa+HenIjVTEoY{sV&+-~OBURHn$9BrbiXMgQz$}e;ThPx z^-4we_b#sTN6-S-EXKD_(oK`&5a9O!o>we8)_J@g=+ZmKH9-?3vk)*w=!@5u<- zCDJ7Yo4`4Z^wKVie!T@u9*YwjiwgdZEHo4yBF(V-buNTC&8`7m{I@u3X#7vM3HB6 zn&ch547FgxumOQf z$&dKYChTT>IEgEq!)eJg+$}vtZPzhPw^Pc#I}dDBI1buekKS-#KH+y*J_#`-$Q5mG6R}$0q9-7 zlZ$l`S2;=02AbM~1d|x1AoY}qH%j(^7(^pL(E-KG{E1=0mdA(Zoj*OCmacOL`;1~%U^DcuT$$XqNCIRbDwY9k!jIDxc|lRFi0J6;AhIB z3v%GaPX1>Pjv5G+R3Xw?&p-cFwBrPBPra)9i}iMMGf^sIM=@%Cx5`iM3)=Jkg0pk- znBnW|hAvOKQTh+{RvEWB;ETfWQfpdJ54LlgiY`O1iZnd}I4API30xgeWAR>)0Qs{? zAa^N-62;mVxlx`KWDDLBKNJeW(B_ab`okwR5nR9QPg;IVBQSQRCH(slxX45ZZSq&;Hp7kXpHQH}{tW9bM-v*NZZ2snL z=|<9oE(+}QyVm)KV6d45(vF41nV8R0SAy9WzEm5hw2M@+qdTw_`M)3^VgWm%{aWS* z-e)}6I8q3mARZZtwkT5QU~n%?fj#}Ybg6P#y4z*%gM@{HUTz29UYFu`N>!e*zgV!p zei*wC5k`WAYmOoBGz~Fg@SF0cwq0ww^2=+aAMGzcZ+`Lujv(<7b-Jc;-zsJhuYH#s zQzbe^PFrkTkj%aRYc2}28LPicI)+(9rd@xVFeKRuJXePoUiPPwVi$%!U-_SM{U4z) zz}rsaMfRZ9(T8}>)h&OBqdy@r8MMxR(NkeH4aYh9kjq_#JhvS5bx=4H67vgX6%0v2 z45^_R3pl}KZ2s;BxUoSh9aZJG@|xo{M^<3MKHXsd(zk!X#iR1e519*tU%q(8w~P;P zs4{?i&w=C#mUSn-+8D6^`WHQ9OWgzDaLpCnOofLEXqmw4(HYCn)jg;-m$`#LNm<^s zp7NDUiSO^Z1$@4>eqO&mqP@OF-Fud=-wa%$Sln0UyX)FKRKouL=_;?Ad-6_#Io^4i zmrZO1!+LINl6gtY9?B0~KK;BxU^$X|tO2Lp<+rZmD7e=R3}j(L;?0)TSy&fIf3hq;dg^8X!IyNhZCRRw3dnXy7 z9)AkR;Yu}XecU0_23rcB{0^Btd^sTncjLoPPj?GCbx>8&ilW4V%47BJ$L>LHF?{h# z{G4+af2v<$)rG{Y-FCdp)NVzO$nkGXC-(+geKoymr&ugxIPwcJ|3lOI)M>u-hnC(d z&Cg(q2vu3lb0T^+kTi|3D##M_Iq^>s1G!C0{PhD|q137_ZgZ+VrB}&o9sahtI3l9X ziuFj2toel7>!%TbF4J2w+FM(B+o7qZ#OZD#d2|#YRcE&i7g2Vwizkl?|+G-Ejq19%@JQ|WPo6g#Y6+~4wW^F z-IGb%J(E7Ws`&f^^YbobD4E=<@BB zzdoVKpw2eJEXOc|>EQykR&vKRp}y zageNs+|nj5y3w&D;4-)6Ekwgd^&lfj?;)Ds1Bs?33Z>tFgtA}dEE?4d#Z}8;Sfb_w*A0f@#a69Fq;y(0LH`dK-^vhzxW+SapeOR#zI;ZG`H7r8lkn zZNr+O_?2n09>=^`Ha%>HovH6^%Y9ipeitrZ!rRtO(aLiT+$6@{^YBkD;tcA8-t|1N zgsXTHwZ>Jx{3^Xdtt&9Kg_}tkU|;xbcTR+{RYSgADCSld$JC?#bHaK_tyM zaKckmP^2yieqpm)?Yi)=Y6#ILdi9+T6~F#wMNx$!7P$ixxPmc~_c4&^D`=uGj|A7g zkErnLZCZ;B(l%;T#?`8Q&^R-Juae-rkJ{Lqasv4A4r)I}&^Z@n3q?n;V;^GAjE_l8 z|48tuY7cL;1l{av6eqjrV)Pbg<+G?-WJo@aAs6CuvH4*Vr8dxn^4>_bNnq#w9YjGV zm*=N78QVh1!;~FW?9w*^W3Hhhe0OtyexlY&X~ILa-u3?sj{$8XXSQ%J_1L*GcX9R}Ji5(kZpu&amn8-M#)~khLPG9`NAh{#0*$?&p#&R z<}M6O;~e1NEMu?7E5Za_R}#Q;TP?xLFfh0gBps0V3ha{@dkNgXDKPaGt+lO}OZs3{ z&YvjabPRy#3QL#3h@i?H*P03$a6f`S~U&=mrz;TZf>eLK0lST2?u6crQB$of|C2$f`jUyZ`{hqz(|J>xo-u(+z_CTB zF)m6^)^%w0$@#QrB_-$Y*~X^J0?sa&w2yZFAK}Yd%+hnCddSKJ?;{}v9O81wbQumu z-9%#P#X{ryEb`^-y7^>f{@5PVvw85ysj6yFM>csIyR_(vK$IC@K`;0GdUi+M2^#5) z$inQAk4LDsjy)Fhlr}z*f#W!^^615XP$b>Wt=sW29wLIpuVvYb&v%?3UA%NY>+p4! zpMTX$yhPBuzr`=C^qw3GhHB?rOagD};(+F7AjfrNO$dH@Df37hNcZ!R zsmz}b2&uqL)fKj!B&48J{wpGqt|B0Q2-lpq2|B8c%7yAXm3u_yvBay3Lxj3fPkX*~ zHG;5q>6-&3iNjQiL5H;7(63buo|OcdW-yJh4wO#3JV7O2KAHPWg-LDuvQ$GF zIAU6|eP6$%-+`r`v9D14(xdLh7r8in&u*k>iCF%swe@H>zx?MZ$zV5%B=|kw0n^yY4+Vy!GsFzxXi)p~C2zgU*0F6r9R29*0_ak5#y3H8yS{E~ z=F<7N6Ve5Y8cwLv2M|mO-Wz0(Ciw@FY?_>B=P#=p_*cb-;#4+a+80VHZ1a{-WjHBhGgFT8mJ14Tt57(m^VT{ zT?E$nIg$J0xk(P0ZHA35Yoa(E;_2hF)8Xc$Zsd(eU zK{-;Z>eFDRQ;+>tCkxyWPsUkR&lmoUmb!#HM*_@?Ktq>@n91?`+>wV2w|PaBt8Dwj z+5zo#UtL(qs&LyXVNQ596i^e;smoL*)IN&$iFqV|&h_R0h1^jid8O%X|5nM$C#224 z%`@jJZCLnm)6VEQjHvsT-<2LdFg_(=zFfnED)_d{)?|5g2;>FbQoSf}qIo9wkcIWj z)uABtT9k-<&@JBA=Novg)Qh5h)_x3+5|f;UYdVmQjc*`rG0 z^$CbnA9_nz-@=V7GA4oCGrVZa7k?w$VO9${^VMU2CqBTb~_gB?urn-cZw ziCKFE$&(g>dgwLypl04d&-Jqw6GQraqZG1y?d22B|89PbMwY+!J;2_d!^WM}K3%V4 z`9Tq2L{+z2oJW2Pe)WYmieKDEdb9hen_=SzZ9YbIdbOu19xlp~tbX5-fq-)u8`!LILkC?LJ`&l(+o^Ca zfTnO9+V80Q3}Qm%qGTJ$J16@{^ZjwA@tMV7{B4d0cmZn!4AVns9#Eb%%OZ0NW9BGi#+MJ>yAZ~O|lqG76M6q^EJ?3>!IO9=};zsfc9m9^zhn1^q7oPopteyKmlmGw6 zH^)lRNh(Qaome@Bm`)@iREn6&A;g@|T%?n{r5uvuqhRJCdhS_<$ zuJ6A8!{?XXZo6&!anI-Ldb}Qw`=dL)WyEXlXm)Yp2PmO85w-jPN{dK?$aPnansIEi z3ZlXVX||wPI&0@ju&!MA!RXi}!5zmeu`ekzHt4G0tZ1JP1}Cz#J`dLV^z;gt*yF9ME=IWpJomqrabsT8qw$WB^` zH!H+u`RM7i{_L0DVM2@cKenjy3)9Yvy zF{EwN>nHHtasd?sb9afy`RwRky7I+Yd5LSI+@ z90O2Umd;JCw`-L(XehL7MI7L4tBSot8Kk46PQT}0epWFo|n4~r# zUVf{c~~{HUbCL^Z_a*Kq__E$k%bR8MHV25 zbrHLU^*0N6C7|X**<=*<+}(I5U(Md`9XIUD_#q#2*_mZ1IxJ`g^9VkK7}1Ox z<&E-_uHPFPPq?GxFjj(Tr(mvSF3?{7_=|Z2EVzV(3?3R>N3C#gmSpw!^6C+J9Z|9J zh=P+SHtYMm@3s+sx+Y1$cmw`Dn%%SfJw_8beufjjLQ5z3PrgFR{tar1ARkVd?GU6l@us0ij6p7u)6lBdug;)JJijUc zlmDy85pFFd$aK2bVsn=`lfn?B2ZzB6oBk=p+?)j-JkpLAYvr7oMk^fV4JQkYUm;44 zST7HeYB7-Of3E~Dh5?&c0 z_wexdlndimt2bVOcKhBYN26IThsTorau_tPJe)GM1#P4y@i`4qqCnhVvMAYogs~%X zp)1ChpUC6w@M@a%-|jrjK3)fI#D~^?^H8Mxm#_!KAo*dvm#1`2hoN=fDTyxS zpKAz>{A|7aHR{gAT@xbOt1Oq6*v;a)fBZELr2~O2mhV^(aOQQGq;dgI>#2AQZ5Eq& z@|}h)FP_#vpSJRXaeE23!sq=Z=Uv1*{<(Q=z2~Rn0>TiYnpUI5AH`qECm@H(;6e|r z)Xp#LU~8zCy(;Wgx$z@($3j7El07cOp3x(j~I^G9#*<(q@A2kWt6n7ywoEhU>b zx9gJShN2U8hR5inGumG!e}F%id*))g24nOC+Ku9EG#@8Y{GkHm$^Y50Jo_CgAW?Cp zuyicRiDzBsvgvA}Ya5*cqK9m-aw0os@lqTS<4v&FiKQ@|tD^GEwe#eynM&O&j*A@#cUA9Y7|`&idrOgJ z%JokU&!VE>R^+=L%(Xl_nF&>d6;QdKs|qys(L~GOLr;?PXgk~qVh6b7Poib|K2MB^ zq92h$eZ{cI(6`=q|Dk+Ed0zI?ZT^6yLs`QavnO3`td5s;EjC|a8#o{qvLhNyY^|>6 z_TyMta8cOZGk4r4QPb#H+-Y+XUE|b}&Lu-e4plm>N5i`tMaiidu0jN%zT_tuzo*dH zi${)BhCCXab(M^MY-qj5B%+;cBInG6eSewAHs^i+ancWR74>qi-NUy%{{Ep@*OAl3 zaABDxvXn=x7ENjxCtFHA8Nh}7P#@|gpeH^Db^e*%+p%G|dgJ$iR^)xe*Bi@;27Pa$d!{(?!hMd5i={TRxG>3~7wOf1tt6M2n!Ey@H#WAa>U%T^o zQ=`v1slJdeEv+8Fl;f*00975zg|nKnD z>A-Y?KSX60>wWT$+XMHx4|e$%o%3eq>JIG@R$Mf8o4m?OEPyl%KYI!xfI8ozfWozn z?@0jzrp=GZHGf078>xX>EWHfO)*3Tui5FAmfLjTmgrs((XF8U6SIMVbUEEP3dd2CG9 zH$8r3jXF^mT6P6U!7&u$-c6(^(TQ;lf0g8G_g!oQTRq5my{c@<7h{5Zf-Pn9G=H4- z9s}oOo2B+r&*Rt#+b8g{$N;3#KZZ%WK|VOI^PHM(t5#LtD}SMG@ai%-!^At_5;>Jc zQn-!Xn{+^c)5qzf*XzYd>}ZF)%MFM1?(gTk{3+JI)OnENVFY zV-PP`c8yrX9zOiH3$G~n?BcbS)ayOc$vz0GvG#J|=7k9|%UKu_=BD`v7#r)Kaq|-{lrwe$aHFqdovRT^q3gE5O z=zQyM52&H6gBbT|E=F84-@@F$yF*i@AxvgU4D7C*=N9RT@JGYG8r0j7MP5g&j>3(t zjiqIhkn=2wi?!i@whg4q;~x!~kgLBEhEcqEUD;-$BA4V=G5D=be#L#63c!@ydcP7! zTofKPI1w>}DgXwJ^8(SfC4ZkfGggaVaD7QeH=xgCiR{)dPGyR61@TD=I*{sa+8lcN z!ce&CVY4=L`Ib?*2l6iz35xmTeZ{rFLOa(>#dS{BV2K-OFQd5z%SQ%F&96Ty-uCHO zmPA%vmn-7-C6$`!nHC_iQ+e<^?cT{n!*jfwi*HxEh;e5OYFo}T%=LF>XveFb?kT0C zSy4(1bg<6vxtf=W_WcDS&H_x$iQk_mJiPb<>f*&Rm2JT3;xymNmdv`Y&rv4dW^pAD zs>k6$!O+lUwW908Q+S3C;x69M>_CCj2sv}})BDI9=Ur7;zw&=w zX^IgNWK%Q|`QKW(H7~|4Rmae5Vu?LA;8~V{Tnf5~CXUdkWT$hE-)4QoEIUDBLIqowvUjRG?gRoGa4g0->MeY(AV0m?arfq< z33X8C6I8QU>u2-mZI=a>MVoJVwd(GbuYY6Vw%K=5pmOQQ`1bd!eHH)lo!B*xt7jy% zh+-EmR)i;|VR9@ED>BBN!%b&LFJb&n|8ByYNER_l8!@My*0t&{+;PUTJGJe0QY0!I zp$XIQIWGc;qprLtnzQdxwrY3#?oP6jjrFLwv_dK*F(bbOTQ`|z(~lK5CRh4zVnztL zTU=dOa9<=_>&wOP&8#Lv$Z}fC$rizi8*Lx&uta2Zf0_z-zi$`9S=nm@ecBbf|KmCM zaR<8SueC^@`4`nHIO24%i~iciI1O%G{%uD)f`30b-P~y{ zFu{h|rr$=y!!4El5wv%X$jPldE>i|P$esq?ZS!;Kjp64vy0#fVgda`NJP)SL-0Rrl zP#r~HmtmS6PXt)s(pE=PTtcG5)v7F#+Q1(EE8XLA9bjH3BG@F9^}ACR9?00a|7qsz zItIOba8934l|@9}C{mtG_9cA}b8Y~>1(;m-fsIvL*eSo>9vTu|pI8eN-R>vz?|tny zerFEwzBcsiC4{PSWJ|O#8U~!xzY1yCiWs!MQn*`P!q<{C`e!u@wiRUF4W!A1fMFCw zj(~STgbLY?N$dS>qV;%ptAxH&F%HvZ&$FNDZxxnNDJJf7LaZM|Yy?2Wp5-dcL-5Or z7u2oY*v}H{9BeNKhDR~Hyyo>nQNXjURYxm>^zx?284M=f9180)s#I@gRI z7oCc3`3gnAAva3iY}Fk|IEU!5QpU6HMYkDJ!Y+itx3RQOZ`UVY5A;f|XGSgK?n8v5 z1kE>QAL^3)kb9MQDgdUu?TOo6-ef~BcJ4G(M{AIQ?_F%#NTr>1szijX$eY;f+dr^{ z3K06?-L_C5LO-~l^78t~>qeNg4Hs+hze(r_WgYz0tIyDq__59rR#LQW2hQ1Wkk5F# z2wl|`5ZxXb1X_(tK7AYjM4E2C?83Z@EH5IJNtf}VMEnxZJ+@{5%rfoQgq zG+~rO$Ol8kzP>r?#=o|*J8}YS+K_?O&JHnS2$BZ%muMR)ec+gr$|1oyI5%iF5H2w( z`?lyoAWM!6w`(6@LT2){=^#l#6RHT`<)zZJIdWx%T50zL(6C5|W4wZxc*^tI-MXir zYLPucfkA}*kG6)I9U73Xgn=o`KHP?cJScSD?uYAfz?q>^P6*Jrss@~gLWlU%qa+O> zPmZf%5PnT#dP-V>OcEMMvAe`7j6u8skI7i@7Gr{$LgSC`2K&jMMK&t+miI~;2=3p3X1Lwi3Q4s) z4&2>37_u(e{NJePRnvHZ)@?G7{vIeodAH4LzSv-p1I9Wb)rjI1Il82S4f1w))(}Ea zI1>(^FGx+x7~~{7m&G*w$wxeSpC4gRf=rZnGz7M9N*;2@5^kI+PU>SE-0Ug~<@PdnzGqVPv}VQ1<@O>!_TKD za+WWVZs%+^aFsSb;fBa+3QE6sDYXB5p*^DFv;MD%Nk@uADU54HeFE8a>wc-&%pcgm z>WoT+z%yV8Z!Q*yYyZY3O8(iXJF$;Tn8l}up4Sqcp~9r)LYzm*5qF`vMJ_zz+(OAE zJL?ijap8B2kT(I!^HXGzFZFSwW-P~FWM$Wyw~i$CAn)6qMSmd1t)6)8L>E-070R$8 zP^UZ;?{$?wYX3^+)fd$55pj5{|4sMu2>%Wpb81mr z9eL)iwaB5xpy0GcETMMV63>z0wS6wkw}FkzbQQQHF5!YfH84r)_g%|Mf0)Awokuax(VhY4K6Px5Ed4;z)z2u5EJdin`@0m~4+0uX z=?zu7y9TrjrTL90ckpN`xFxc#A6DLoI^7??<;HEKgziDwB1}i)6s{YoV@P5dyqE6tl@L&4_E+tc*-S$cWJ&Dm&flVNvakMF<_WCl%f9(~d zkqBILDU=IXzWW&&ardHygu|y@4Iggq4Zq*MKN9lHu5!6=_n(vTUPRR+R*!EN-{UxT zI+gwq@d*sH{re1z(9d{F(d15qJZZ=DB)#g`l&@=}8^WQvOQoF7MerPj<&0%2oM%`V)N0gvCg<_|tLS(Cn z84x4D?uk;&1$%mNZ?~+nD{}$-ri*zpl_6r2Yc6EiY{xC+mvVq?H|Ch-%O=Y8a`Aiu zbh(nb$A!=15O1o|)K2a;zdkW1r56pHqKcl<@Nv!P$|a7$RIXc-Ri9xxqq( zPm(1k*%=3@Gt<4Kuj}dVSofAbjAVA|c};S;37+`X+i4Q$+1iVa10Uh;lv?FeyTGC$ z%y>UcNsCp{vj*$&wGiQ^c+VfR^Sjc`?28xCcN34jvom~F+4rVCqF|BA!H2gW+x+IY zr>sG|+eDYvD%KvmCr0>_Q8)7N{FkXVXs*ORG4ztPY(M`rG@1`f2mHGdhk zZez)G#N8A-*w=>AkKgm?W#*0Yx(M2@{NZ;Md>10b61Z5MDk+CNR0B?I ziTs^>8h^GVqEK%1?My%TXU4AE#}u6kGdcqpv!i|Qy*Du6QV(QldSgW~_{&?{cFf9k zOAhPIAhzXDD8hH4}MC*=7EkgfOXkz1OEj73+w3Q2`Zf>7bT*ic&%_W0zhjbJt z&mQ09DYj_xM{e)I;Ka$U=mm5-N&Hw1P&1AvQiU;e%1b2!Y*0WD@E-?2Wk`11@~-@I(%%YR zr_eJRT5n`0M6(rg%ih)5p6gwz$;6Q|1>eWJI~5!jJabew3rL7RWf$z=htd7JIuc6R zu_KvwX_Nn@^iCw*5Wnyqu!tQ`1^oF+^rISU?bBq8{j#FZ4rMRiI(~2f&)rj~UINbF zIKVTRMC%-IcG(^LR!A7IS+Mmc$T}REJe!nL*>5-7;iq<+a08X;7g%g`5t4M7?y4Cf zNcnPvMABqgOsdLD62CA{S7J`K6u9?K;YWAnAE+W?ic#NWMcw%|0+NEgrfhOvt`RKLHB^=tk>%MB01NfR`kW4H7@{8Byj)2_2glYU&@i;3y=55b-1=F7YA2u z1iiCpT^b_*F=dNXJz>DG{}{+?%^NY(g`X=O&N&`>`-vKmjNY8}F`14?%1RHZ{HFnA zs=KKnPRacE34Om*^J3&Ste4KV)>^0unNCQTQfHhR*Z$JJcAVb%!@7i%B1~V!pi>l| zEFHhnNO5!~z}=y*$3qpWQw&*r6HOSJgFL(H*F6O9v-1MM!u7x!e|wFo<;^b!m6L=+ z{om%d#ax^N#jG(?9kQ#*cxNexJ^=+)SVjMZL&*aaY(B?_&_ zI6%?Ct5|%HmY``TfBlV?uMA4}yOyAHZ`kQ1CnbIV5t2R(Sy@NW;3EhAM+;zV?+%V< z=-QE0Ws4nJh@CHH4F}rd8GND1;&-Fyp^n;NB6fg7Ruw53jR!m$t00A=Ua$2aZ#H`L z@-$HWS{QfAnkBJ`!|-rsL`fXfiyDSY7vtefE;(pk_jL0#d;2cvO0m?W?S3nTm1ydL4{WJ-H5duG)i-EYBcdMu?=MDk2qR4H14Q|y z`k$F>Eo5J3q+ZI^@J+xUYaS#`5rkB~(SlFuAllvu?~pzCBr^dGSF8(LMFm519O4FYRnS<7 zUxbH>m!IDZWGA_~RRpFku={J#S`yVt8Ec3^;6d>n_L#ab1`{w;1V8YIkk7Nj=*#GWPI8>FR z5yh;+F%w)bM^dqauyKlxxK2UEaw%LLO0$xQU1X)YeUaL6?;9ISOv;^l+d;fo^V#F{ zp3si3;;+GJLf@0LJJ-wvXOQpQp{fPj3Qqc^MNZp&*HKsKvSiRxIb%yfb*|0QAoU1- z9XKvcF9}KiI+qZ!Y?Y(C2RQ!=bOQ?cjg2`;?oIwYq4n7C(g{Fsql9FA9|c$EJEn`M zYvZgXW$6@!6C-&02lpiMixH*+q4wmN2AWd0w#DHzk>*Mmj1q%L1~IIm`H=yfLWUNG_7K-_lJ;jnSdj z{U;C?G(b5_{g)cef5Pv7JXA9{nFOg$aLa9<#oyTOWKa(lIo&EQNgP`7$5fupA5uVJVGX z47YMzZ!N=u>sPJ+?H?}?w=Qicw=mGj326FiOi+2dpRlWX#o^0@g-P(93Up~ub^nUk z?;D&Na8cB8U;K|3l%b12YG2&;oEp7jT66QEnT<5sL0DZfc9(KwXw_%a2TYkh z+x)_vh_%(RWM@34R6P4j`WGJ|a%bANdoVEVm*L#Hj7v0@ZQX{pk_@uXRlv#F@NRI3 zJ(vm(i=~d|ka~L;L66%Ue)krS+qorhZKJw&LfAAw!3@7-GwJ?|xO*7${?2m4o+syw!qF>YxxE^eIBlz+a+{-;zZ0dSvC?j;Koi zESdflstB9(JuW}Ba$r_leE*%uC}=$g>m_1eaTd|o6KccHujNctOkz{^pK1j^!Co4^ zej@f)U)IFl(1iar{&y5`IewnJ%~S)qU%~l+lkbn@Km4mfr3~ynX!_~!RUky>k`6o+ zg|)!!>Fv*3KrCJRK$Zpnllggq9w?&$4TFv>#e<~vsvGyWHS0q@|LhAY4n$UbNB#{4 zoU|hMfNuJT6B}sm<-j@B^s4KucYP22Pwx}W?nNy`p5DkmA z)~f;yC6V*xQ~bUc`KPY-0#a3}F=*gV!In zZBVZd%*f7@GJv-exQ3|=c?l1#H2V1`b|fMxL=LY#iZTtR=hjc{cU(i+V?ohBj4k;~ zyCaL`4#)zZe`5ZMsFVbMkldZ=gyMW$dJHw0w~umoxs!N`+qie?*e}{mQDDT*yjNsS z`a8|2czJ1By$2NJ00*AMi&s2taVZV44)tGFnU`HsTj?f;n!CiB)zfNa|I{1NQTfj`Ef5llt8{VsvwRh9Jo$c2pD-?c`GvOC zSvE*2$oq>mA8-;TwHPWI!-+M{w8NS z(U_2|VsIaG7EXf3m#*F=Y}CIVQ86h%r7)=OJW55xWk4-YS+~8u$^Jn;9p(*&j9}>K znl1Eh(R|lL>-~O0yT57vjXj8I^d1iVpa#xD@uWMXVXc@gp#A~X%{<&)?bEc9Ga#wx z+Um2Oj(hgB1oM9#aKHbtWjAP_ROR}(;%eWJcGq;pQ9=Ip&qWAgDF4yXzWjJOk+OU+ z>xet=h@9$S0+)phDmd)1gcVtJMps-Dqy&*zCt=l6{zT990H85iff?1C(s535USXdr zYp+#)li9LoS%8&d+t%Ohh{F80@W@SQZtSIRZGSJ{Z=|eLI(fdO?nLA;W@*IC`ct54 z75}$1LAPz6Z{+%o=b^IS2b23SqtVAc6HSEWAdKjpvY_nC zlk>CkRg+QRH)GgS=Gb^oimzYz3M~mpkwZKTNhY}BpgVek`BQ=YXH@!Rv^luB@}!CpAKXgBY} z)dIx0Z+!L5mNyC|yGI}QuJq&lpi6t$3qUYr-55GmwDPoq+q>eDpn4Ax-&9~;GIJB? z+GzaQ{|wx6|HFeX>1{X#7GtMNccXz6#!8LXYpzR0T$Me-&AMH<8nI$8Cx{JS9JJ*1 z1}G)r=CTe1V16INk6n3x681I5eAti-{54C*clx7i*N1eE9J|B9o@q{l93qC+KYrl_XMS`Pkn?gLFYtp7)HzXN7QSZ@qZY`O>IH$OiBRUJgK)6)9( z6S=#hu=88f+@SR^u}KcKTaaEoAu;&{0X+7847lnLm`cK4h^AW?fm5aeKoHaf8;0kw zp@HjXfE|Ju`2{#Bq!`UgAS6k6Yy?)S)&@W$ z%+|2m5qhKrk?alXd8Kp6Cz!D_PCjn~LQbD~Wj_RYB1Zr2MmfEEfZ?RvHD0KZau_=D z5=y{;3tcAVaZN1LXY;VQSC0f#X{haq{yJ@sxJFns_stk`-Z{XG6A(}uF@vE^VTW}@ z!^<%lS_o(6z*lZ#0QSSr=&72)%k3Csky!{kpQm;wi$~I??~%=xb_?8vaQ*z-LUf+e z<@5^i=N4Fa(DKH{2@trhFTUl)^ro%)<@Xn4lysxUmPC6(PQhD*Z1uYRWeRsAQyd+a zk1l(C91I=*ybMS0XohdL*JGaCu)4d!_z?N^c4Qv3tYNpMSr^h6k0^Y=AdZxpKzNxM zQ?A_s5x2%Z0azVt=^=F;N4L9kx)TbSzK{>QU5O~*n|hwRBYJ^JRrzAAb@T$=Tzf|d z^Wm%yVkQkRuHO>DL3KOA4VY73;*%a)TXfkRiU%5JF#GfAS`5qEP(bL}6u5WHadi4j zXU@^1gYiuhi9(0w_)GKf$A0dxk@DQT_>A`w9vM*ci+YTi%ermxtCL zEjsZ^O$B%k`{A~WA$}XzZN_s3|Nm4R@4Kv3;Eb>ERdJ?Cky!%NS~$Q7o+1~_*4mJ_ z;(%`!Q*c%nS#QjHX;iv`3lv>iurzS{r1U-I#JY8{RbZp=-}4O2c-&BGKOWWLh`gZN z7*V$}3q1>0q4edYYj)MG4LWY5`I_(aq#CnRR1hazGR{l#zrf*Z1ZW_+kb>E;9rC=A zGX~)LWU(?<8M(?9aZh|9w?2~(P#^Nk;@B%v%}9%aMf8)NH{VVrIu7F05FRS`ti?eo z`Wv#V;^NCXM*(j5EVFC4tVT`V!4ud{z9KAFmdyT=n_X&p8(Qi4s2;faO?|NH;0EX_ zp08Yq6ey$1L4DH?C45Fkm}N$apf@0S<&Yz>&aMx`N_ix`Yfc`a1J~c;Q=x11!ylds zIZ1wYr=XP++LU{dBev!r;W90aw}L8z3mXiG86JEhvIvuP$BhV@6~z+2>|99qcD`9V+ zIX#NH~-o54I zb=$bn2rcgwElX!8c#pwbm|sSxR_eUh+iZX{GW`hG&!GPr$DTH*=Vd=rXZelcsGS>o zZ>4RXoOjl`zqNT$0a;fMs_M3YMVMjFm~$hme%mHzMGG(kZA~m9%+#`ow<+y{lDIbvBNNv%o1-EXzY9);7~H@h7)u z$8{HTm*r{=CHV=Qq-h{qS?9ZNc6|{hR7&$_r{< zFXMf9?|?-Y#EafDq0?`8E5NI^9HSba-`J4blsQ?8$XBz&&XC=u|2K+JnYOUcm6C zg@*#VBZZlO9u+1FfgYJ|(PFaAYuGbaTCPEdI&)Y!`C8jaqs-R8?sB;>eT?RhHkg(eTeka4&jqV z*0SIm`1BU{J$Pw!>vcGXGm(ZC=D%*7stzKgDYDUSFR3UFBfdvv6|1}9IaW;Z`yK1< z2|KI?Y^m7`l+#wzZgIEtb=w~RGz?xs5n@)7&8bb|zW_~vr6FV_nAh!|Q83UVtc8Nj zVA{p&<9+1R)u3dDgL#ndU_5M+0kzbyeP8|=1f`HCt@X=(iCtGof%9eZ?2!*PMUL#g z$4PoxfvCTgm@j-gagC&l_`Hf@D|v`_xKuGaJ^1*bkBD!s@gpt=LzPBEyh`?BG#QQm z*2{Ie<}rAm@Y;8`!c%WOtH5WV69)*u1G56ftct~m|+EC`sC~-N2Zg< zEb8szIZI~Nku@8>B?!Z;hmHqVOc{z#MS`SWhCvhh-N984pYU7pdqQ@WMC~kysIQFI z*c2BkZK%L5YkPd`pV+zjTWi(dAJ|e*b`G~coU)bn%0WfU^^VW0#eARK>QQ}Q{wF3U zt~(VT(Mr?(Y*_^)i@UKjoF?Hwv3cJDO|=K3wsWJ7p+&=3b1+rq>?+Hr&CdA&`Plm< z^|Ja#O7hlyY(kCLFF_R456M@~Lh0kFrIM9voA}4s&wY<*T7md@Uooghpf}C_R@3rl zCDb=AG_G$%?)No#KAbDi$OS@8)o{%Kx5;wA16jvYjfI?sz&igM;}?^jvO2FT?}kGV zT^0}9YlMVM<@(HEVnOP7;{7jAADdK*-eZJkl{ej(e0~K3kd5fANk)jS@Y471jVHVK z%dgW^kYDej$8TP^KzYQcj)8#fe&1zuF+$L-81PT78=*P}HV*7#B6_+}I~8Ls=|#^W zyA(|K6&1JIuXOX@1dU%q<~tB=EhB&9PuHXiv1J5SK~sZff-3{V)#$oSZtd1nrIknv zVZNg~M#UUT$)=IiLq2Y!?>fmc2BGG;%k3s*h?5qG`n|&!w`GUiZzx+L{f?W1r`0N5 zPc-)!XlXBzBC6G=9a6=z73G+#DeQ8U&(bU_ILOGtlG7OqMc;npHT@tk>0}&m|0}fi z0+sc;HwCeAkbFL!^#B#osQvLQaxZ4B2p(15!8!P{f7vSRE8E&=;5L$t5*!C%64w)< zxsLDb2E0)om0Zy00gVXl?K-i@F!~W`vkPAI!^(D)Q#15Y3{~cYAb6ns@Q#}v9 zJ|@++2WOS;oEYfyPX94t^eE6X^6Ev=ZReV6Hy#06PUS&vjGNhPr6-B{Ta+)fJQ6AM z8Cf}R0Dr%9+zIh4X?)R1S2BuAFVmKRgLxN-1!q0?j2I(6{0H@C-mq5D9Yx;I-Y^%; zh7^huX4`RyoeFd--AA--O2IU~!bW5j={sT7PAB8kU=|(0U$K{^@WYsGmnC39_!@sQ6&ze6 zTq)v#9}j16fsMr?AiO#zolT7Xj65&|UVw(E=L3f2X5pYh!&x|O@9%xtje>X`FK%E9 zJgqf^8twsV95RxFCdoJCVg!Ltx4j2=lFH#dQfVXaEA2;{b(v`0U%p%`k~7)we(pq6u?trry=KSWNt(c0nucQ<|$Lv}^ooYDv91!wfVelzE;33O2u{;KH_l%N+j= zCsTb|+l|*K+YGd7#UV{$9gQT{mQ4(LLf;Putq*p|?38Tw{^%F6bD>!4MY58A)8ni1 zQJ0im@AldqJRZmb558RQaj7WaLApTu3JNX+)+cC|h^M8YSV1S$J3$+eB$+0ClLG22 z6L}U9>z@+*uuIB7cMj;t2z*5qhwJ&@1MYsj1@9+HZmq)AH^L_KIT5YKeY2^(x=`@0 zhwJh%_a)Fh4`?9P?=py-DuJ^;FoDTj1}U+Lh}~-}L)JR#bldFn6HI_l73O)cjy-PP zG3r2*TcOBxLpUGNpyNr7;L7^E-8aG~?y1-*KKbKZn)0@ggQNE`^t4S6(|E}wqq?h0o}QSx#GSRAbHVoW;?i)iOaBC@9Uz)4@M7MF8%R&GJ_e*Tww-Q zeH)-eC00Qv5Zp8)2#_$?$4yUn+<2o_30U*ZXbwGWzs8J3WZL5^g^OV5$NY_MGQ*d@ zoOO#lOQB;w&vbN>DVC6?zTor65(LF{{`MgG?w8okG!Q&9AD%r&*CGs7%%N}jlkcr7 zNYp6X#=R)L$>4!H_>;$rfx!S0$We6@N0$ml$?7!;8i-v-iNJvM=RX7UKT;AZr+M5J=Y354nC z7R-!a4CvWsE&t0n78BR$A=Ot?C0^rGtMx)pjsO`37jeMU--~S_H{%<&@#6;(16pNQ zk*huBZIZ0+=hhh`R}NHHPvosz2d;~|h63MRh+wYm;oEH~MaVDuMdYnz+VOwUwN9rG z+)OBe85>lL7Xg!spZ=d*U|e$ ze8xrB55q6kX%(L~3#b4ExAE}8T)CYU{G##OHi3IkNT=tchGonkx3eR-@ddT%k3i`n zqE=l(g-7#6gj{s>z)}=3jP>Prg#%>zwa!IBr|JH@x1O;{UC`pWC&2o{?_kFav-UXw z^ZmU!(CfZ_%^RDrv6_yXz!QD%hWqcksB`==Vl4Cy5k(p~7Qot`FaaMN|4N7$>G$;R z`PBQMhD^g0f9rP+URQG9v>h07s0teKg%ft{L$5B%VFFww-k(EY?JCFVZaDZ(^_EEf z4^Y8`jut0sw+ks5YAJvJooXJppCi1IHH409Ow-*{L=WAsJZODn6$*1BP%xo~*|+sh z^HyW16Zg>O+p#-e{x9n8|9?G{?O31bWb|$dvp)M%VzTpei{gllP@ka>uO_&=hYJ1$ zegE?!eVCE*u|dR(Yi%c->twO)5(IuOJMD*p$XZ2d6!;Sg+o79;0Gxdmn$Q88MBSGM%X78#9DX;xkVnnvHJNIxc#OF=W zd(U>M8f@FAdz0gI4{65x1bQfpoQbR(?gJHjf2JxY9f4lIk7%U*7hpH^_9&4BRSz5+ zjyDXo;zrkUgyf0grE~ujh9dfnRbjjSwgfrgztnySH3aHVVOyk@AO*cg6F1JsQ03JQ zH)W$-bzvKP=L42`)^g*V&vJAf0i-HxFTt9FKnr=r|2LD1^>_5?hSyM?XwLlu;wV{w zaB^%M93AVKa!K&q)}+U_<9y6x;)%g6XiCpysIaEU|MZdygcUM8WDO>^G|x_<+eU6f z);bkvEZ!L|4))#|srDz8Kbr%%hBx$W70F(w#_&7WH`yQQR%PI|St1Pmxq&=l4ThJH z1W|Y010^2Zzv?K}dN*2c{!?Hk~g{I-uH#84ld_ zC7~0zaGymKl!83Hk;G<-bY}PMUr`GJqx5TaY7e{Db{C^O4<96Y>VOds{akl3aNI!K zs+E4tJ3*!}Z6%XQhz!wHC$S5v-D0&VD^IuKAn2~kB<`GeA8kl;o6Qk;r_+yPn+#S4 zBR{hVvC?XQ>MCBItwmvX|5IXRJXVWh2nbdH_dhS=fVK?d87-GUVK4l$@g9`H0FPvQ z;>M2!P={Z$hz~Vi*ux1qdEVA=gg@k=TMch9SB=|9j~ZG_QRh|#X!(v7V>55d%#H7v zl*lGLR80gYx`(`Dl7BABkjJWCJeZ!iuj4d_(GxuMIA3FUf}Y~(s-?R4s-o2HI{FVw z!K4Vnhp_yFq(S2~s*kn&p#>2K-KyVT(nyLFuHe$YFi{7uwN-X=IwK;*FDUAU>>OSdV`Aa=6fLC z1Zi!V8;lpp4yeivO>G!!?v=rBy>HF06Lyo0N90suTB6CBfYp`JXc58LGedl|eFdQg zkZi2KucSp0`>9f}E8k#hq*07_aAyhp)10kK&Y0isSZR2w{A%`tjJAi@aHeU9B_cfj zy>umwwEw^#3G5jQA6^ae%T8u!$jsB6$>S|)6qi2{2-7)5a{KON8{ImZZsNZWZl943 zGw6F=jbB@uZu6BH50skiPm$MNvThKP>wq8fmw3y)y`0V;jnjpTZ~|Q4v{mN2k`4D) zpilT8OfR6S9DaNeseez(OiL;-L|veplz8}SpJ;L@?R zaM$yCn;Z?{WaH)vc&Q&bQbD#Txf9=a~pBq?(+Qv6A-WMq|_H7RP z0Xv1x;Gfm6xzwN+^_A5mZb!rts1cRt{`I&7^-qk^w7y>~y0mU|NFwmeZyp3mhZrkH z2Cze@Ihn3~dt{JrWeAX`X8ej-sx%Xt`Ia%rS%r1+r?NLW? zMTSB%jc2Iri~r$37pgTihuKA5um2*#ti#z<8~0t2Dtolf(%R6%W8c)={;QV5ejWtvNEX)6z6V7#OZ@B`2kcf7qKmI*o zQL(7L!CcTn=DCK#qdd83=daf|DFiln<3W7|LqJ^{?132b3o^i(z@7eVWv6}1zX0w~ z-y+ddzpuga>M!?R*M4!hh+i!I{ON@~>f;T&BIk_M6rP55F7_S_aODa?@2?%mLtRqE zLRF_rg|n?d#P7}}nO&EB`v-q157%50-y~=Z9F=1}5%KBrfAjPIoj<#nALdZ$T_LTq z+4tqrQrEkH_$4z1YeWH>HsNLqOAAXscd>abBY)80jKF&87mP1je@Wm5-H+6==lnvy zNmsl7w*_9})NeMm<_jx7=`7Nf0ff3K__oZ-X5Yqcrd4WaRN>|AkyYjl>gTRbfd(A% zf2^JNBbERE#*a-xB}o)z73K7%vf^k8*`zX#5-Q`!p6Aw7gv^tzWY5evxD~QO=E*$v z=2*vZ)_s4^_kZ~O3FrLqyq~Y@x}J~gCyFVv^yo|NUT8&64x-oLD}PxF zO_*X+$S!fShNhTdtVInd+`}1=Ve*F{OE@r_imGt&jGjc7Sf*D0bR_{H`&P_Wh*s4& zjU=uD$AE?~cxZ%GJP@ylu)3=MUoJ|i8s3X<_hs|9@o~vIV_tGTP1TlxyHnB2HrzV5 z1>%sR!$>Sb>CYKeiXVrEY*=jZ9@-YvE@`Mhir%}nd;*q*7l&BxEFqE2nwDZXZjJ@u zs*Z-`x)p1&!6z4_j*{h6bJ*`jz@w)|!IKOYL1q8`jVYkfrTpffqoHz1w)D7(3A;oR zQIh<5<7>_~K~&*6ojBGROorWsS9(6^c>;X9t;l9wMDkXz=JIU1^iv9(K_lW{LZHc; zufy85M0w`5Yr>J^=PrhnnZAm<>$xAqqcwiu(~jC)QrjsJ&?`||ZCPe7b8X9UJ^fnA zXesxmiZM9~R9kF`1Y*1=(3%2!5g=x&wUD$RyeF3=H&`2px-9tlNSsdJs#Z50pK@E7 zmO>|RLwira3B)RKB3&-=qiR@EP|#@S6fNQbPteOG8sQ04)$q1LOo#*aJ?45Mh~hL+ zHyXNlVjtc54LWa%xC+4CdxB1Ez!OOV_ymE(?p%aMf?;Q(%19s1-vul9;q2 zn+j7JMq4_zN)@4M=99aj&j9K-kQnUg*hI_Uj0J2d#`J)hEw?P4r?t(X<8|%uj-mNb+XB*AW(@JS6?DGQ99R4foRp5Ogi)slT`SFx5u8m~|;tOP4 z2UB}pH)5mvw<nXvD+2q4jab z#9v^MqmK4KN_-JyyI4vKp_*XK^k)!vRLQl$-4k}y|Ki4H`8+18TahcV6U?(L|L(KO zMR4h^Sx$%*j(xitR3^3%4QCn_ONF6)JQTo*O)wuN@lAnt`Cam_eq3frA~6puLl99H zkN$6T7DQ;|Cl;W%G5n`h>x~v}9j@8EFZUBnS0AH}O9Z|`iv5sOH_9n`pBMKhRQ z%3uUHn_LoTAY(W-58T&ejEpORS>1Wm?Rdn$xNH7ImkV4w>^ zLaa`Ht$$_V_Hj>%`J9n`fz*GHHwqrUpko9p)b*fzPQroWfEYbu7Fi4o#eFNcJ{}K{ z87U*AK>!T&h}w=uT)JVWNmVR}wHP>j{7Niv?9uye6m+j)xEzg0cE@HS?X;dTvXeL~ zXXlluk*0{~8G=k~&t4%7%vBz&6VQR2vlb(*!>6)2DiH!3J&*2bZ4g-$&DKXZ!_)LTz@1 z#96W_OMIPVK2!moF;-i^uGnuW2(_R}RsnJ(V7uj)^R`wYbmHqNT30f#&fGc4QOR~l zOiz6gSea@#(x~FV{;z}!8(3SdV4(${vzyEeRLNE{dNzmu+GqRAD;qOzVKq|xX4Fu5 zXZ#I|qPQ$t^z&Z2g{GWZ!{Rb}-9cIA(ezjx!%gzITv2PlU)|u~Nx=2`75H&tQ5q;( zF{8cQ%%7&3cBdL5$u&&-zP&5CduHQatjr$n@xY}G0U=w&8ov?Z>&VUDd!-rvGlHwV zLTT^-Ji=!WB0v2DC$_{VT9Lg+YE(H4aEB=?*Not0rZxshSm!EthwE2aX*wJ{Neo8! zY@sx^H={t;7u=q~($T>mz?-`MbIm7phPhb#GoA?yJ5T>9SPNq~a=_VaQw=5yAxHaT zhVIwTQ>CGEacBcSC7X`ydO{>)Yz@6Xm=f3lt9CCDIh#P=3EfB0}yfNS4& z1Kl_5X`H6L6I7mD866#&)5vDOf-H>K%g((qSI^o`Qowpn+a*Yy19y92&LZfLSH;j)3YR6+7D~%)EEOGj!e*hr zjd)-4jC{{SHFD8lz9)X!WlT=U`WA5&t|O9O7nZz*dkMCO zu$xF;cMedcZSN$umGm#H1&5fbylE%iym4iP##*tDv*0xQ(I+Y+!TKE9 z7ch>_J1G*Z0H%^#)T{x=;A+OZZ-E>EhMN{e?MT+|FKw=@f!G zi~UXol~*o^Gv`b{T`Tru^crOz4C|6Jk5@;WDL;Z(E!#ZTr~YM)<^@+wiE0lu&Yps7 z-C{bP^qrTDTQ$a)lkG3lE|V{rlN{- zgO4;ED3CA~L+*_a+K=eK6vwmv5cHZhQJ-$CNdq51{Lqo2)B#_>Dh0OBe=4rCU5jp* zWP_+nLqg-Yhc-yh{eY$wH*G?ZQL`ZHvXn;(@WoBZ*{;X$QgKaB%zGWW=r)XF=38+ z3@V(pk_HR__~{L=EzF8Df2eO_-&)T>qEFqMaLR9$V?a=Yg6wh5%$`IO<$W*Z5P8$} zlkfq?t?{#hf;=)issu3!ScNU`3l<-7ic=~9RO5b*yOCNxa05;_`Rd6$rj+F`xAp59 z2Fp&KR=_?L-hdA7rXe_mVRvvK>CwC$ho0X%kR&nYQ;KG^wMh~&cHP-5Y~_FmXzIEM zzHGE&i&cV$PW8n6Q_T%2kPJ1G229(y{^UF;smAy=*#ZqlSH}P{T~M7Q*6;UbPD6+| z(eQ7@4{|%H9;@?sQFAfH7U)>OU`F{Pz{?@=AvMw)9^Rp1n7D+6lGd+Am$|hSw))ci zDGEAX9Mh{$e6GW~0)K@^4In6mtR>am@P==Zr9jvVXp2(YgLit{&e$(uHjY*ey!uEjy^KvRaS-cTEb~uqwd9g$%ar5 zqwwr;PTYpmV&A>Vir*=>nq7`xMQ;g)%i6((P{D4{ufBpl>nn9E5~go(53Po;Nfuyw z;#Pfr|MFfXR%a>ZSf!j##$(9FA1PhGZbIwAHZ;45UNLKUVe<1-)MgQMWP&hdSKd&C zCi3442lDJiVXXM29}7w;i$rmUU&*5&O*7r)?Xe5-g9GNPE z!Zi-~<#X6{h248C@36ip@oyhNOenl!=`6|26RHm$={ahT%S8Y!;4b~CxE2RhnznxM zDIPw0JMM6ZqV*P?*Xh9TumTgRLZc0M$@z4n>Ho<8L{#5~rWnf|s{h2zO@kxBA2d~= zPzMF{;n3WF8E`S6ZaBYa>~6DRHmQ3WbdBbfI2@1LOFBxC`k=fM zOqS9@mFEYUMBxl-Mak#&t<&j*JP;U$^6ytPa7KKzi0x)t}< z*h&=iygl0R8(EUu#T;fO&YkweErDF-ZOA|*Gi3FcLF2Orjr#DN-AL^m&!@2?%w!-% zEE46k`r(N?ji2p(EW9%uTPJz{)L-vcezqv;MJX4p036ZQRdIypRpVJlWqQ(|*n&}! zcI`tNKI#|E1HR}XXav8rkjfWPg8;XnYp7cIFW#D1xdToxBZ`!sj6chSN1$7J6R_;nL6bD^?`~f- zIaPK^&!b!qA*!ZHNTY3NywLDDx zvH$wO#l6yDm^|OXpr_nVqth%DwV8!u^dyH#ZV)F&R*r%t($4f!Blc_xZe!Cz z8U9-G=K|JG$^1F`$HaQ(%25vuASA~*4=lTCf!VM&e+IpM_D(xU%LUR9kcj~|(E8Hl#$;BwM<;6Z=4*nhQF?XCopM>8;ApAA}C|_+^LhIQ! zb7Fubh6`mLKDib5wdaq~E31hCcv9(lj%?;bMge)l>zk@PXc&DgH|WnnHPQ*SJ&Lwj z9nZ{rU_s@$V?}%6Mt)Gq%RS6S@Y7%R9>yPQd`?@BtY+&_Z1`b^2GIYo8gocrDhaGK zE<2pGUuarfXrRG8LpjX1LtIgAqv{XAx6l*B!|9VmcmF@>>trt}*EKY=XiGv36n&q<7_Px7pq~F9P34DPCDFiA5zpSt|4cv>y$e-i7L@W-4kthv-MyT=y>&$@i)@h6)Zk`THG0jAuRyU!lv*KD(izOTPF1CSSnS`D|& zuJDB#+SzPMUO?#oLhQRBYO7tz(cK$c2an4O?cHvhzbf%0PPZjm@FL?EO6^GHTgV5N zO8HR=H2BYF8Dlm%i@w8E7`|Ad;|-V`-~x|)lb6J?4t<1O2|M}jNRuPd93|K=N>Sdf zkPf2(d#)!CFoTAfzFz(g#Q1L_~LgvJ-8N9 zy_u;h(n=Aj3N}SZ46xXjV?0ym_N3`y1G`jQo8&1tIAlg{(zzC9>$b}S6~wHq5}!-D z)gO+lzP=0jP__ZJ_?$Sa>{5+4fzoirh^j!Q5_QbstW0J? z{r56M7=@Lq<1yG5Ocx)A>fY2vmQeXf6d0QhX$Ry(^4+3qOkk$nW5OuX;Oz*tYmI4r z_q7ro_e|yDxuYYQbn7AH;-EI|bMjf@AGCbS;@gbi6PpUTH4j1f`v#dso@RzV|I_wV ztf6LUNu~the4}{!PtAj=Q$gB_mX2XDCWJwglBC^|$RIkEb<^d9ikbXDc6LV;C)Ne` z>Mz2q&S%ESP>1g}Kel3fSK$E~JvmE^8Ogv|mHSdw^*P#$;Y66lzQ6ILx_h7`2ze`0 zZKUrf;9yNk@?EF`p%3`RTfj5bJ4jtAJl54R zJgJR>EFOCK22xJxgQ-Cds>g+gdW|4m2J0o z*_L$sH2w+yN#y+Nwew7FY?)H09#838gQ_&A)x{dbsr3Em-`dL@e;uQpY|)K3Oee+( zc5YWg3LU@i8=^j!@8g#PQQsO70o}PlbYk|ryhTk00-$d)}LhWsOP?fkKel8zB)QI zSSrXAHU^jnKUbW8dT^J~Hbha>89sR^=xuiVwZm6jLb>20dy;%z&|0bnARg+lhn{Hu z-quD(%)8RotJ7H){flA{&6rr%(K8S2F^#G)Gw>KD_XhP8S$R*^G(6LP)qLX_qnl55 zE1Z}%Q$2*fx|{#22o}?!#R0l*wb3S6)5kHEHm<6Slky zz@{=qP!|uo%=<@rOUUkf#U~Eo81&s|7kM-mEvd(vLc9dTbuvWqn`^>LY-mcIp~E?8-|B^$ ztjm^Chp5BX_Wn$8nL-~h?_8Pd4kt%zMxq0VLnn_Tubebd{>rh5_qMz+@iJgY^hx=> ztT-GWK#Cw69(q9H-f*AAFCYgHZxmmSLp@o7?5%nT-z~prm-AQ04gI2Lc%(?(n?K#g zS0U!p{r1yG&rOs#_s>S((iTS07q%kfMi{S$m~<#874UIiis10Lh2B#`j2X>!&0*oK z1f=W%b0wg2X_pv826A^YBD(j&;U%Zg2?j2##57iI-TbkrFhle=T#MC!m)eP~_wavT zc{-uAyIvC>p;vTu)a89joQuP9QPta& z9zVOPZphIqr@qgxd-M1XUwdf;wF;(ajByo_WQU_OiC9 z(q^jJ`~y3>_6{~tahlwj@6jBY-JgIJfStrfp&d>Z)lX3=A1u97crT<<}grxL$u zx-ul4(m>XQ)HB#m>`*-5W~0UOEqf{L!!*NMAPX+Ml_4?}4)>jO*Vt^Rt0Wi?E#aZo z-6P^c!OmPJv0;!K(-I`yLpY)+#2++5-YkX@efSq`%wz2+kIIzQ*j805I`uCLyqfdM zu*-^VvjF@71;$8e(jvAfw8nN~R7`YEWgL9^(L6hRf=ckMtshBkTi-tcj~4SrTe*-Q zSNFwJJ}S%5lT#eUji^WcSVP_Q_fAjV^ z<#*KSZTtvY>}}xUH_Qsj@>4yuV3x(M4XYI*+<9VZ*guDSEaTo~JD?dpQ_1pM+(fE& z#sXB2CxGo&M5Jt%1&>{7J~1WN@k9~!I3vRkEe_WFvvVXQVSFm!X8o_bJG52yx-#zL z#WB($dg{9uyaVk{Jl#(0Hw5~re!_!_miGCHYPQ!s;of+_$608EeKQK`V;e4<<8N~9 z95V|)g^2J*x``sR(j@nBG|Dp#1*TQc01-DsICLjc2+^o5-EhTDlvU zM;4K?uNzl0JL-bd5;x-Xq7^>L(ZXL$Z@32tYL)1W_%<_dHd0$N@PkQM?<;2-07`^- z=*orDl{vr_x$gjYz&Ek11gKHkwF1THAgj3P0^bng&P-QA zbJ-oV58!O+9z2s}{$K@IrYLHq?by{=nRz@dRS1O$G7sUUu9zSDmd1A6ZCZ5)q!yc! z-Pwbkz}?5Uf3x}TvAw3y5>98pBdi)_l)m;L3BsnA8ZVM0tnTkhzSH+n>IN^kK^QHB z0>8#CaJRyuQbkUuFr?t+-J;~9ZR0Emh_GDK?i}Mh0348-?u*)NvKr;gn?-KK8>Y&q zwb*9+@ye`ozt`)g=N^;sr*(Mb*l;l8`J{ZFR~Xo~2yO%`48)zh3DP`fNdNibO?Gnp^@?kjI&kNwuF0?k*g zSC!9H!C``Hy7CKN>4+WS$?eqxQ_HwY`KdqedP(73BZ3BF|_x{txmAl+F)*J!RXKN_J43*aZbqEnvGC?4vEgT+~R5ZDI?O_|j$ zfhmnxePW80_8@ZkFf-#yEq3`kF!E8gl&(YrZH$59M%1Uo?YC_HOq<4!B#1PvC2jIQ zTEI8nUfp-6lX!JXY5NUWT|{a*b_t$_*ghpLV8}m13Y(f&&y|EfJOPh!Pc6&luAM$X zC7wC*wX@;)K+et%e7;7(ujX3_jQ{xFlXL1>5mR>4FR-H_*QWs(vdp3YAv$}*rN}S2 zz2jhfzi(_19gL5i_Oh?(0S%X_uIK9o7 zL??;7Y0fJ~|;Zy!b?qOn@SswL*A+FaqdSWa|klB~_h4hV!FO zDwbtoK;)R$Us!-$>ap1wdL?$^ZS5`8zKu`+o1p#P=asof>LQE9Lnd2gv7fuiS zN!vpO-WWH2Qi8~BqxSZ3qI_C>l)gn?2#Bj8%%yO&R(#dD%awzX`pV7hYhd0)0W%i!nE^)rX&q8bwHjQ~Gn z(8V;X!zRS?BcZ8~=s;sJqXlI3@OA~M?m1p|4BjYoqC^X`w^b3!mq-?&bCBtZ^9&j@ zgL!qBGqYqxGk>56>RFrA+*_lLCC(z5{XU^gy$x*T9%(breebVK`v4A1VaGjIeC-uK zy9B2l3>yfOISE@_E_42umf)_*@t)ZVKk1*TS#OBXL|%ld3{K%w?$kMas)T$@7;aj2 zTS5vt4?~=trAK*Oj$NAwe;_9!^=KWlqjtrCWE|OR>4CerSz{`k%MyMQU(Hy}`=1Z} zHRGqK)9uH5Gu3+d3^OP3EZkuRk_=S1GaI`43Ynt?dI$9Rs_P3|AnF3}^KKIbqtZC> zuJ)RM9MxUGZGhD+ihO8*$x_|y8nJP6XY0e=}KAr3O=#}97j_5|koJLq?EJ`Ji3(*dcE zO0fP;qrs16%r_gsjrx)&G3xP>)oM z8LIt30%0cuJDcG{U5)JCj+w2SFnT=tn-s-z;0YrRuad})9{hgPkD%)eQSzQO_>^oE z^hv4;2*wlegmEsF^?$5iIHt9?Ir%f5ZPR!&zooskV{YxxgHEl`Ylu00pA)Cp^{kn? z7wosnb^W>>gBAMM5(yE|;$3AmBr=7HUg5|^$LvC3eSGaiy7RDP(FE~$4Yz7!ZU}eF zcF5g%QRqWPXj$<8&uV6`I!qU0##x1q9GKD<{oxtj_)RcWd)}V%g81|7( zrCO2dL6LFTsNvM4Sf#jYc0^o>W|^DuKl$FZ&Pc9DB*tDvEc_HCt#sMZri~`aE0Ss0 zk&P|m;pr8fx+H9UT8IxM%v!X^I5UNQS0OLbNN|m~mLZZkx{X;4TqW+tjL``>?1KZa#A*wfKz@XVt>WCnC-)H2a9uH| zK%UhVM*s})CH&uXz@7S4(1mHm#JXMoZ;vtxmuy>Fg=TM~-T|88|2zg=3LBDX7MLQ; z+c9)XUFAq7+K1~sgZ}KrvJ;;**HpGUt-%PaHn^^GVUyvQF;iN1#R`Wt{8w{S9Ups= zS@`2*#uf=K!cMqIT)I887u*Rdl@&tmXw{7*=Itu<^9BpH-)x7fOccsr0ySUbUfwIy z2v7Xbq4>%w=V!lh{zoQR6mt||Wsr1t1cvfs|pZz*ih?(_&sToRbFn}W0cjn4scSYw~$l>4F4uuG6fh`_o`?*P2t#;*0Q{` zsCmSn$%WzQV90FnpSLU`0?Lm&?c`pbOn9)@n=bf5uD%O0ST1EUZiFX~6{zAoPb2i0 zU1xDSv-d}f(?ATyPN4!T<;=C2lOJ+ zGChQ4>3;VQlNYA-o_Mi*CKI>+sCncU@JQL*g7dDtvY@S>zuL2&Aa%q9?rwpR*EfY4 zpt5EpaUvgmtiP#S|11c$m=k^jro=0uyJS>Rw+2FWo7L`;KEBs|W)m|xC~y1`=$FV` znpRNjpP`SXH(OJ3C%K-z5tq$%sAOgkz1|0XK7*ke;J7^LubP0yYq0^sE$59B8AEez z)~mHQ3IZJN;P&5P^VJ zT&LeDMm;N;CrBvh*nda57su!I*v5<;(zCucZJOIo49H#5ydEVvKqc&)cZkWOm?OQR zNlmoZMD@fX*>5}a1=U~`<*v|Om#eOx;JT)IOXks+f?wWI93NCUo|5u9m(j#+q|ff~ zhW1G8e{3ry8_{MbTQdzA?LQzCQ$?<6VkpF4G`Sg1>pHQ7TTbe; zLoIXPPe~Tqc)giZS|MD~GyGT^&=UN^lxO2*xNPLMT(YfrxSpV)4QdI7<{N)dk$MSQ zo_9R)vfuSnfsJSX(NH2=eK>g4=zSXhH@&^g)a5UWi)ngh`mi<~@6TUD8WaI$I72HI z@Pn2?7|o2dPvAb2a}pV*5Xbh%hR$q$2sR8$!IsK&LdpI-0lM4(do-gbOW?_kt#@qx zXfV)F@dZLob*p|Pf5U{0!C_D0Zd$g$qQ9^hQ+)z}RmljND>vk9|2|@0oQ*e~Kb9<* zM?G08%Ko=VCUKibj5*J=bMYYTDnVpbNLJ$Z5fsPQF(RY&(o^M+ISowA^c;qI4-VY; zSl>s%Y|0doD~Q_*R`Yk6Gn&ny6xxVyhT|ew^fC}1B1V6o7D;OL{rDimKE5{F4|_ z$S&{?N9Mio6j_>G*M8<4ozZ&}1@N}W=Iu{@o_<%b_FcEXWUr)xfyW#q=wF2EIqL>YB&w<3Hr2SPs$CaMm5;$>Jeh1XnP47Y1 z{Ofx@TnH(XI8=~fqa^{XzUiZ@zwj*&%;k*&L>~w>&Dmnt?`(jd2abCS_Sl^E(bf?d z^y~&68eVA+d!Nt5HfpX6_ksx{^0D+@GciEK;J?WG$+*sks-J72Xy;vhGk)A(qL!xI z2t!n(k>JQ9GTX~v{)wYw1^nFMEj^Xp({L%&&;Mc=i~8n1tkRErA#gVKg+Op0I(%Te ztMmDP&jd5wpjEcBk&K6@cJmPDm=nd|qe-w2Y0#BfG=?xL@jACfTqP|N=R=+H;lDuo zfytl55l$cT(KIl9WpC)5&yoAoYS3>aq6h5tc#~nUirMWJEK6z3XFB6K13oJotRio~ zdv}R_Fh%yl#G%+R;!=UR$D~-zBxsys;CIDDf8m!OnFp#OQ>q05;cp4VM6<(fAYYR@ z+rbFXMI+y@iF~WBwKV+44#g{d=J$WgdsZ170?PYU4>%qIq}@*wHfO~i{I%k7Kr1%= zLmg=PkJvM}Awl0{r11TUrvHBxSzb4)A~(HciC$o$1*;%(0o6Uf@19P_mY+AO9MhmZ zcY<9xOpEHQ*)5X)vm#=QD!N&O>u93FIw)hye$zI21VI+!XcXjQ?o*ifU2`2Tc}Hz{ zWevd%J(prpX?L;%n1z~973Dh(vNh#_vR8Sx4Y3W&=#xD57Fx77*E$)PntGw!T`NYj z=35sd0Iy0hfcNuEdYBm-qu$CpU%`rIgc5cr(|M!?wqiTJ z;v6DpQt^*(w8?q5Vj(ok(ZJk}fV^KXZ92BE>sQxEEO>5+f{ZuF47c3meFVdvMsq^c zUvm_P?XPT3zUfcT9o0cIu6R6>y&#!t!QcR>w{m?-WSZ4)>5-6GGvN`liY~xnm5=($E#6DWSP|Vv$yjb>{FlE-#2gE=N+O7+HRgfDT)C^4zr84R+ltsm5ksPT zrarMykOOWD$eO2n)$FP6ogj7W!aI&6PWvU`HR5W^I}xcos5)tFgp~hyNXy=Ki?H)X zfKcI#2nMzojzMtNeEQ=URxKuq<<^lw68Y5k%@uIF)YkZWDfY5RQxeF?~%$2$=JElL}v3Z3V7ZH;XQ0*>26ifQwJ#}=QGD- z-aYK(DTep+?e=hgXd&tZ`**054ApH^_@Lra-#2$3_CbbXInD1u)bgAa`L#nxL(!jQ zV&O-ouGcsJgipihbJQ;CsC;!|m`+Fi@fCc2UHLZ`-xgB-?2g9a{0h#{Pj5?RjF_KR`A{Y$>|>Kr-)K8e0+hQ3&UZ zO^j%0i*(bd>+fg#T>(v%F7^*f5xp*$^{##mDX$}Wc-pm@8VR=hC$(tj?LFZa3v`jt zp}re+@t*GRNRRFk%3XauNQJI>j$bv4NL_sZs`Dg_qW+4G3GYMh{W7%sw_)fIo-8UK zV#*WQM*l2BA-O-=JofrIVw2l==b9hld_I|6t9^L!lQoIx9EsPw(LZ@&=6ny`%j7$7 z$y5I*p*{}AE*k$rSoER;f$zG%w>Plr;u$yKf;hSAy7!{Li^c$~;J@A}$sJ&o=&Vtf zVW2;r)~Oxflm49fj2Vr116kIs&!lby+HIWp$9J7|QZ-L9N(=9xJM!P~)~tzZ5bi|> z!yAXbKeyrYf;Y^DH4ji|(<59xk7X6srS+JtDf|ZH9`;78|2~i5t?09*2nn$!3uscH z;mCf(N(X+~oyD_^=>o(3DU~0xWYYof=Yzq|%ve-9Q?5fVY7E-`e_Y2JVewvQ3@wQ7 z^%*^8_b&P-Lp_q5v0}xSel+IAit{mqIecx4l5#shRi`27vna>K3X-a}nR}>aO2tO9 z-M9*?tF{dZB~O6W&+1-+D}BF*z!VF&DPVF;q|y`El91zX2>Uj77uLufl03~T>C(4I zoeMbLqR4y$+4<^fz!zW74pP4oYTefLA2PEVOALhk2_-2ZF)spr6yYJ;2sy;OspGG; zKpKs7kNh?Q>%`@~xMZBOlL#c3TEne>o{Pd7Cswif89QGtZW$V}zMh+huJy0M^5Q?e zu2(j*O^rl0;*eJLJC|5Z9Ya$q?_TW(%}}Gkcdw^;M$ISbKNm&psRfI~I0_W~^F3J) zj-5nvQ(lxV2(N!r*b->sS1($HrkSs-_q*^}_DdPeJxs-I@$n9ZBA~Z{){SP|uce)2 zHb*pS^X~J!Oj)zv@C7(pUUX6@Wga8B}H>XcUPnzlKPa z4=JKXXNbl#^h}s;$rF81tu|(#jn6yAA%5`K9peE{oRT~{67!z{@voqSQ(=94v9yOe z?psZG*Qqy);w2$h;UuCZuEzNYkxaZ5{?LT_95!nl1^<87rW!Rq{2vJ>Qzh+^jh!_F z_$%VRbxi4j(BLni#BMbJm0{gK8Qgv*3?psBIblR9ckvof0 z+6YVxgSIPo8D0N?F2SZ{@=XQ=l0>`qT9HRMrOrZJz{nu@eVG}t4$%V5df)uaak16h zVWo;SHi;g`WJKAeCL$&!tG7u5SEGP|VWwyr#eEem6RQxo1sDTp58Atj6js^#9nS4r zo!1f7cANpe*Vz5-!H7mqHjhs8ZiE9|yyi2b&k!uJ-G6H-bCxmqWvMO%q^=%ayaN(1 zbl8ZezA%0@gOhHyx^0VI%m`2zba$|@{ZV3(M(Z+yZu?v;kLW&N$o|)j|Jy;GMNM9v zF(IYy(7S$TYQ+KcK-RC5-7(`^X5~&d86#^?p6oPVS>oC@;;l16-S0tPz{(dTDe7FB zkGSV8x)ztqDIb^qgOSURQoWVv-7LMr`xQ}iK6qltVK_V5=02g9m50MQ*&R-57<)OQ z2%C%UpdUNmc&6KA+KUc%Z(UF6+?w$}bVmzeq+j_WSfdh|KvmYsIB8(bxTX%>35$7w zULk&NN`32aTLq#?4k>= z_4|XkUVV6I64xd6@*;2u@D_%zt&mvAyv@FBkvMu-K6)Kpat!|7GA={+`}1!iEhBF) z!>j!wA}NAc66$(gX0OJ%Wi0DutTuhs=)R%x#a)747UWPH2f8~IuJR2XQhT5AfQk9U z92()XW;`^ez%!|WD$7D05(sOf8?eTfkoG^m1IKHvG!W)pxBFL6-f;FgsF_iMjoLyZxOQ;5>IeNwu-_zmu!mmm0vj zzUc&kRQed=NkmJ)qaN3Lj0;7>sLz@sm!1uChVJHizj`?)7nWf=)kNf$`VO|l1^8*7 zFLm9lERmoHRZANv071Gp>Ls3%)`Vw~F>nQYCF;pesZmrvMRZoOab@D%{Ud^0OlIJW z#Jd9w7IJG>>rveZ#^0K#32pG*(OV(b44;+kKY65BI;0InbQv7CRSfiEp zG#{^csE6U~QBXW|$*8tSd@2e^x`%My+!VrBx`e07+h2ueB;V|ug3X#$q|>pZ+p3h6 z-HH=1wz~0mSQU!(GD70}PQIXIK<2L+yhw9F6W!pF^ov$7X=jNrmSy@pOGQ6(p$kxe zwN+&{77|oea2>DCIP9o?=zLJcGVW5zozGVd*0@-xXd7M^DeSaI`Ac#ST-42K9v&Eg?eTVl}bBql32rew@T z=W8j=F@t4zRwUTaMr>;Gj|%<#uefl$-yjBO?W^9WMzLR7qDYDCLR7^49Rz!3Yn^6Lf>M_pwi6u z=8Sdxm8j6v=1FnL+W15KHXf=vdCqT*Jc{s#epj!a^&{h0;d`-jlpU)EtV0o#{KsPo zd{K(@opB)>sIvV7X%Q@9;_~qPFrcOR?egCeJRrq+0HIXcy-j){HI+?u+(&MKL)4f5W~$v3`lNgeimm9MCy znj$9T7TA8j#(2F{;}>}*V~miY^?h#Vk!5qX21=>JQ|(kCuvkUq z{am|e%!oiwW&ePFt5v{eDti|)Xv*i{SaRNGIrh-Y91j9}*>`aFa)_+Z!&aG|>K!3= z`@l~Dr>^G1fn5G}AucGAj*sxapQ!OJH}OBCbfo0wU5-sMIj{!qoMZLLA+jovX`tO67vH=gv!U4-`lq`8PY|+Y*GX;0 zl(IFsrsZK(Mort-F*QwhkLjLV_LOf7Iq`))sl`AqYw;;Iv6x^KA=_qy2UyyB1N5VxgfzgZB-&pU>nn1w|8!Sxcz(3ZLds-OEsg3-dSMmGOz!c7vB)C*r;a^NmnO_EKm zT|TiT!NIs@)LKw~geazxxmXfkkXb>UDiq#qQ?r$hI<~ognk8u#xl#>>_&i-UDZc z=d^@35J{bd93DT3M0E?(3$cUfRQl)>&-c?lYJnw~--E7RI%BqP&66jI-n@{_3nAdY ziJ_|q*}dpqedl`lc5eHtoKcCqw#UkXEbjako^D`0NH0%EIbGZ&FPHnq-%Wv!QbxG# z-sNRzeZ+{E%-$X4d>>LCsm?!NG?V)P5T0{m=w{(tQh2s{fKmFRDCG?eXTGRb`f8Xz zSeS7r=MVN@(9pLX$`Q4`GScLk*vfq^n4iaw!8Y)~DEBHnFI#MaQO2$G;M2uJK-i-Q(^mU4_;^3KsaZ zN-|UHahT#(lrr@W}{?0~gKJL|=P>zuVE-#%M(e#6hPK%|YNKnW8E{ z*+FO2)dnqUUKOZ7=hgXb+NP679UWQ9HS_Q$>(W{x^9hOVE8U7klv|MyAD_B*$Mnb! z0m5J9yv?}zH(_N=Qg~Ds_%Z$B(Y{KG6Me~;qijz=bAsk2%Z?F{PFapVv)Oa8oOGj! zc;SauR4}~QF^H)mjT)aLuAv)0VSG^>|Eqb7aDT%Z$V@*jow4w76r%Xc_k;oTMloD= zrIoqkRZJ=2^yJo&fN5Hg^RvPkRkk125*DWkzu~{7y=CKGSD&6oznvJ2p#55x+EZoS z({ER{0?>oG+iWHcjYF2L2~0{e1jGUmCV zTLMmYHIv=^Xt2iM9ScT`_z0ko)g%pKy(5Lfs6Dlc$J+bd*4&xh8_*f};&bhyNM-<4 z&?~g$28r2>!>nQkt~G)xw*OqZ$9gyG1pkk_=Q=R7Jol{0gmoEhe@nH`?b=V#yV-|+qi9+%7Z!~J=? zA8yy1`vHOPv+o`0xQvK<~-@YP0`+T6*G4T%NK`lQr zqTcrskm8-n$bM*e+S3@;r?56IXl;ekFg_=H3r*pfi`%nJpP$dWwYL4n{E3=pPS*MRov6~ z*%?QzgzQ|m^+Dw-VX)SgNSx*x(RU4d5L|lFY{ZLMjlw5&;6zuUJ5I zz9QP+S}-P@C&s)4;w)~?V=mzjO6qt2csxyi66>=8Jl5rX_(y)^3=YhoA0m>C9>$(j z(N}#)<8&IZb^-UAZl- zfW+(HVwsbjx?InW zQ(XX!9#QnSF{23`R4sOi5nHRBy5~c!FakHPPA$D8l4?~m*sC+y=g>^uOibj2GD$W8 zbM&Sg;k|?&*2#cr$a_r-BC@edRAIZ&B`nF@OYO2P5puY~NDjgCv(*(k@g|{Utqx|3 zusCldh%D|FysPxGxUWDA&=2)+6ZMYmlZ^UTJ>@2+m&B!=e>ThnEY8@T9MqQ}zeB)d z;8o3qhpBE3;UaDx>xYYp7J_@8=+)%pyuWIozVLfZ(@l99S($JLYXoFLmvq&~HG1b- z+dSNl&#apmoOYRNDqibNo}FED8Ny)@(d$HKXpVd$ov(l28r8N?4H8IFF9WAi5=Ks$ zA$p%zj?6wn9gI3FK5nw|1X@0{+CjT;3Nqqx5tUigWM~cCWxVD%D!c%49~-%E$Il?# zi7CBQpAMUyg9ej-I>;5JZ3%-^wWTxYNo}Yl@91oj{|D>MRaU8hBEHj_f60{ene2t? zO`XD}1bayWGWaXvZjl!b8Ct@#o5@q*AW?bfhiG)wbxi29`-Dmdlyjw0+9zZLffTJD>>0;M%a zO>=%~5A@8a+a$?zZaKYU;cZqWjbAT$&ducuSZ~l-zgJf15h+%jygw{0XuP;YT$T_Z z9Jt1*OWdx=U6$-+4*QP}uXO_48+#FsvKyK3u?T`p(sj2^PTiF&l~p3Qnc5yBIZK|Qk;Sby}hQM z6y|+-?5%D8n+Y_6V09R%Bu|;bEByUlK|$b4VCv~}J~k1?;MYGw7$@e;{X93(Bp5up zW^aS#n1$Sui<^yLZNR&USpX5ejKZBSYga}Pk3WSs=qHb>FK&(?vcDDO7JbFlUfDMM zst$*HrKJ|gFKn7@u?OO+P(u!Xnx=N2YfjKyk1Gbo>I4o- z7=yki8wz-?LPcZb9eUE=m%&6oERA0KkNH6!tl&F8!qp3(Z(P2O^M~9+L&!|^pFww?98OV?&9}s=(FA#j^NK*dS2o#5*U*CIHi%<> zv|J)5)yJ(eqO2!XSfk;OqEF~iHd-B~tr*nD!V2eTT+OU!b4pr&2@c=9n~uGml+ZK$ zeHcI&nF<=(+G~sEk87zr3l_)VS?)WFn&pd683KkS&JSfK=)1EHffR-o{Fs{ofoV@H z3);_0^!Z=HmXNrcB+Y01n)?S>7txcXy>7xL(oWm+oi%12=<^VXw-HVV_FImMD}6hb zMvk*?o5Or(DA&w3?Gb7)DOAjZ?)tIw?i(7H7E6L-`!?15+{~cxY4)x7g8c?P+7q_` zibDOPp!geyH|EtBR(~S$mD+oWezSFc7QGfDro-D${bl8yxT;7Vd{feiUt+c&N6eJq z2MW6E8XbeG&6nmoe}4)?9$4TaU$C{P6U#!>4(w3?5b68+b^Irmu|ooPS&kh_30#*K zS!Di2U4|EFr1lo^HgXv6hGR-Tc}0!8`FZoyO$#sp@Q6JR^)+wN-4B*HBg4rIuP<3- zR<$%?NkU{}Ud; zt|TW@)$4hAo1_a_t%Wm%JP+L#)WJ4o8MRf`@7t|$$dHn!mqrEm@ z64$z&`?~qS#V;2%kS$-3D|@^2x4r!C-L`?Z_I_89IFHvH#qgsW%UcdnevVP2{F59eIrB zEFXu5!u3gFw`w+>O>!mnG#EgIkT9f%m_&hYzsrt;hZY>i5iHbl`YmI*Fg3~1-{c73 zfkw@RO|&##!WW@pS$3B|>Yr+O z+%h>w#cF*IZ&+`p#nO@=Y#YFU1Jx&-cO{c;x9q&hgZQ&ARNcvc53c;J7l${X89DY7 zmIY$x|ESU;8f-pc0$-+WD_K7cdGZdA8F3BJ|@lKb#im za`e8wsOTSIw6isdm*ha{0T7ZK016mF8ERlic6 zM^CTRm9NAIE;hTO5t(ua)ddsLgSk7!YDm8wdn9vl#wlx&K6tCSpA9aRgOBe18EZI1 zgxVNE{xP345aZrK<^}Bu^){#UZG(Ev&|xcXP73$8&Dscaq{^QWb^XV-Xc>>L!)_E$ z7xkq>1we|8LG}2;;%2@Dc9m7qrf*Sed(7)xZW3^+i4OMHD&g3jmZj#}zY-{IPiHOE zR^zGw<(xO6Q{=G{oaKT|dsZE{ZGZ58#8Y!NCM4;PSx7Ce7V^DTcjLXo%elUq3DP5? zpD!J~_`z=cE4=8E8G~KE)3ruQl!gw>`#>B-r2-Lb+?Lw@{^FHN z{z0a$_TkUEbhKKXBJ^$3XWV)GHc5g|>N|H35Bvo(p^}&60M%$pxFp=n;in7an(Uto z^B!lq$3aBn3%as|HI{l%sD@$DHC?-TI2S?WH4nmrMmK}B-q)S0>Hu?q9Wi^w_~*Yn=m&lvy;Ek`dH0dsTg|Wdbk?sH^6=b)314x1W(GbEkce* z=%np~`>Yy*1V1VhymWu%P}N?Hol{=ejFV{C(5<+%CY`q|4V1E?)sUu%0XmeE4I8E7 zv~Kw?(}svzC!Ch!A)(Z&@0V&3l{-vYmx;fs&0QjXXg=5cgUm^6x@-K3^UCJtJ63@1 z$|H(=*62_2)x=2-^1x%iW(B5(oz4yAf8pU9YQ^f>k}HUonr+_l%ahwC&PJ;`UUaGW zHAXL$$|&JC&Ux{VI?jZ>3nI}C@B&w>_F)j<4ObI8r5*mCk0)*=k|oi$ue2Nzlh3m> zw)d7M>P~3?)G+*}O~QP=0$iZ2lg!RUsFmEUjlt!tL}GIIQv1S^l?Y|beDJqxC5_A}uj}xW3Aj_?S=)_|Dkl@^S ztf<7YDc?@AQ6^G3j_-U$&0CJ!I=mF4c~C6XN}HdM;_#Z*#1E*G(H{Eu0l>`TJe5uR zcxW*~2maHN7vq`tPM#}V-Ho`IC_ui;lk3D6%7yVr@n8#A=zs;GM07oGktUM5)P&BZ z7q%y#+2(jXtM&o1Et7Y0*^dh=wB-UPsB(n$n80%F|5XV_xV&$nr4Uo<4dEjyL=?mM zFUBn&Nc$53*WnOQ^LW)$QsLD7PrqP*p-`;&@7gV6d^oWBF>P5 z{R654nshIjy9;RLy@p)OUx0UX=9w1-6_WOkSQgb>^%MN^G-ZKR`ol2fv6$U4?n8nr zUW|!8Ba|@_a*paC&g^#Y-Dl=15p;{KN(Ggt<%YeW+l zr~{4XIDgNfEvB3E(s;Hlh~aI5Y&!T!6|D9>{ymoPY%~Dd|2tZtg?MjA(%bqV^{0=H zQ;wc6-(hP#*ulHX^S_g^gppjzGRVl0$%w++zj_IM`X?bap*(vz26&1axwJ3t9}B<# ztmsYBzJ?Zr+rG*(;)`On&tLkzuy8yw8}C^hYtpME`-Ed6{Yul>cDz7mZLw*(X2}1U zAAPPW3Qjp`y7{%8o^=~I&+}z$Cr5nuIS0LkMjSCw73z*XD%QP<2c=F#uV7oAW|VK_ zS&Dt4E6#?h!la&@kB*3C!w@6KYn*7p ziZ`zRxpBpdJv)N<_9Ze>!}hG*lT(s z$*sApA5QZ)L2&Mp;g7LG{W^PAH0}_B%32P4dy_=+&Jdoz0;(?~wsv$0tNV&osEL#t zYo7?B2ppeJ!8yJu7`xrxi_RsTMg(*2Ua|)_xEQx_7-QZLiHvG5E6iKR6=L7njPXR= z6{@69+9=@ycUr!3bab`x$dbRZesNIw(+CZ>(k#*QJF|}Y)4K1;dZI}L&WaZ-Yj*jH z^%IHDEBn+>WMW2keewe7$?lSvz}r{w2H{LPF$KS2fA_q#fA{MZRrtmQC^(6sHm^`| znIkEKg1%=&R3ydMdvVpz5_oGS=7V6X>X1tnY;&iZ4v0*j8G)Ym%JH z@e(T<>ew18h&jkadu{U{-{e##S^rzLH*et+MGjTtbI1cGm;Smffj2lKbuw}j97@~} zehBm+`2=bQDDv*Ol&4(k<;=u!NOw(V@WLy^#(?Tqv3KB}lx2IH>@?__!1FA`);B0{ z{iX&B9z~>!cWbI&{+@-A&&DMFST^C%^5KOYg_uR0*{3DFX0si4{FY44w-7O-xqP>( zatlQha;rA~Obuc_o`w^vdWT;#NjKIVmj7o(*;Ix-nNvLjc0NS9hJIf@DzTAU(kaMb z+2q`Ovj0KXUQ0Yx>~K7O?uh6DT`RbcH8qAVyS@K|zZ5uDc`fv8TKxza^_VjQGC-5n z9S_E`lLj7s8?CD_4Eg4`IP#E3R?|B)B6 zd>-DJ-lHKAcWmnAhZ`43b;$*iF=7)mYmL1%{ZvgLms}R8aV{W>Jhx89vRaEgVou6n z`(pL~irHP3QxJQS36;GT+a(3twRms1Na%`0a4ClZaZS6$pn_hm&ws51=$K@N_|J}*n6W?`e z(;z|KgeZpmRy7n#}4|=9t(M1_GVIh5b-G)cf`f=7h(Too~V*{=;@uhXD0XYj`0A zM~S^wH%IOe5PrpX!v5T4X#$`Y;zFRM?_3q&AA+#eNePBTi9Z~Pn zrC@RDfyCj`HFPiXFMUy*cE68q6519I#l_HRTj@f7=dQJi7llC6g@anv1hIP`NoU6` ze6*mWS3r_l!-T{vK9~A6*0_z(SavcETev`%W=bF6&s|szf=iN!tAb(?jpMd}$)Uq# zUQ1v61vA7YgZ{Y++MzTW=Bb-U6NU+{2_3c65!|$>|Np8%~>qhg5Ta z(d*&Jg-*+f4x`MvMP(m(AE=ZV#uE6WseuEKy+Tdc z6T%lS)U);TPBEe2p|?I$YxEA%Mz!Plm&cmrHxqx*iR7HuvbW)_-heB=)cu!I+(;~7 z&5z6O(@}f-<9qc*H}xlsUPaWq0uQC{4Lgb$Sq8e|!?*Eox#W`lR1_Ik;y+%;O{Dj? zliATiZiKDi;8^S4vTDeL?2pg7{}}WHP5jvV@S-ghJUA5ty}PcwCb~;)C@Ap~=>;a1 zSduK@n5v}C;2D!Ogg%Yg-ETsq7!n+AWOv}E7VjP=TMJI1n{E|ge;LX8pyo+OGNwBb z^5mrx2M$%>8v+d3iV4naPdYacvH#>C%mK5S1U8mlGmNb?ptxO}y+u3S7xf=A}Qm=m+Hk0%C z5cp8wzTm+p!#bH|$Z)2L7a<;UD}6n=V4RD6`*!(bDiA<=QIh3Y5s4nYac_&NYdU~X z`yMLQkiRn???_l&ui=lRFce~8whSwi^YMGxgOV*%)g@L4q}G#CAbF>oO+D$;Xq%Y( z+}pZ^A)Ol%Gso>W9=*FeL_e}!(yIK~gh6$3WyJ-(PK`ID%Q{F^W>P}7$?%|nW#O%( zZNKVQM6?f06pL2MFBBiWw;d0D{Q}ReKbLsU_rKhvv|ITbmBfyYAt=9fH#LO~wx$2mgWrfJIIsEMhk~mK966ea`t!NG21UWWLr3De`m|20WY~}y z5U2F?Qt2gE&&88R-!hts0UpLc8rCfjeq?VSHGz#ptII>T$2DVpJjQ%$gw=_GGu0K& zoUy`7FWX?l#9FH#7RQXt#>6bW`#+kh_TXNTlX_b8A?q0bVVA)}_-BK+))I8&6*xAbI&)3L@ZVdh6<5hf$MC zrr4K7U+`arI%0ZySAN+^omB55Es2%X&WZzH>aYbM#z1I8$;yRm3jclX*l(yN%`kd6 zm49~Vb`3Y%v48aNc^BI3MOVX>4|PETPtBLso?tTp(@Vm6;{gNMZer)98G6JBnaOA# zGxoJubyvPfwt!}DW0q%seNH{Z;kv6{gmd1EET$ZE=AT-a>QL9jcMqWzM{VF|>Z-C0 zBwk>X{n4h6qN$AqMv#QGT%U1;cHqmPPNAX)pzCli*OWXOxD|0fR^g?`5yq1Q<_D(H zp1gU=(e=`Xsed?@E^?q($k{X8!jbUW{F!&cPL9?6^?o+%yszo*bNX3r3+nBuw|G$z z!&KyIaMGX1g*_abfdp5)gXlc%qG6Y%F_}1`a&W>TQQ*P*O8Ni^_5EMO*CasG`TN#L ztFvZ5f3&dNts1j@9*4&(e0bH&jR@$TbF;3 z5ioiyZs!J;%7vXlc7%x85V)u|2U`Q{BbP4VkykTawb?O&y|@91GSDXYcMh9a2-|*|(H74px(!7PRsp_N19Yxn_?*V5B z{pj{B=beHRF=^LId%kr9il zdDssoyu$AnNPWue=51&4F5MO!Jo1;(EHMA#LRDreZ@kn2{YE#PY;aTL`|La`d7fl1 zCmj+u>GHDc@zsxE=*5T?^d&%YUzDqq*#OFhyDUW|I-(ZzFzgycuZ^dsFT zcthEL4bPp4Gl*!<_@zcGcH-P8hXqq-O?}k~P-ajVZqtZZJaj3t3KNYANOI(~E4*H?SvkN8LZki}*1t%qtKFBI44Qp%-Ukkfwz zlyr*y`trLD)MZf1U}DoB-z0Z?aL?tD21Fq{NYP>c;8Drb1@W0nh=yxyPhT?5BAC(h z>h?__s;uLJjn#HnU^-Ly%(Y?WdmoR&(R!u%+%ieARd6+(H&^i!jkhx?FB8opk4RS5 zLG>c9AT*=d&n%nfs|eW?#^RE>wyJs?jyegPE(*44mlDqDjq`fUFO*E(46Z}Ab&HA-OsK&WCDvvp=}7TjduaAeMkS58X+klg}9n{dn+7O9E~x^nHXdyY%(c8&-dc zi|0%te$r-azo}w?T@KWkIk(BY%RD!xTI0OaMbkfBq9Q|hwSU80+&I(X zg!H=BJrm}TH`C?9B1U>{EYeY*iE78XGp4uQ44Gwl%=R91yU9ciMTi-{T)6vcd9$B* z!gOgUIYVn}6H0+wCibTGTYU#pzPd*KLEQLxML1Y*L+cuS1bNQqX2K6!n#rzD#ZdCt z@gcWx1@+qRoPL|z=~ud<4(_ch-)v0SHLyA*Pc-1fAXju(&pi#P8T>-yt7-Eq^K?9Gu1!uZ=HQ&S`dbOo<=&KAl{wJK+jsiD^*U$vfe;IoG&yi_Jq)H9_M4QR=Rn_k5khQtN{UNV z_nLa5f(avW>03-M`kUes(ghflRC)liCP5s1dcd%r z;R=39k>Pj?%$tgUc{KG8HmHS7i8GwYQqh!T?>+vzL3_bKOT+v2pDX_x&-8?+M}GU< zM1pRDG;AyS8+Kg~v+PS9H5a+YgiG8ujJmm0q)YW6Q0MU<u315!Ly7M@XwGe0G#zU`*o`J6dJ}X)KE=75o;|s_WCjTDaK>Q{#%tG^k(E z?MHLYxDHX@bufVY*ZMwy@pyJQSF!>rpNILnT%p3Y#4w15CD(MNvbFAw|CJ=L{(eCU5^=g;?>6^6}u>qRyqzJZDVV z2klnG?K}tJ`~4Cj14MWe0s-nlV!=~_5z}fuvm8}xYvpqEq6PKs%A=H2Ao}~8#U1Xo zJfD!~VyQPQt9x-s}%{*=j|t< zKx)TQ(dZ#!VrZM3o^=C?h6~1Ihu)IYo6$U07QimC8Rs6q^*Nkl57zJ0ww1HK^8hjc z`Z9GR=ZV!j{bgEtzWdzoUc#NZcB`E}4n{-G*1!>it4wqqeygLj@tnIA zSdpfGH=&jdh9Fn+sIH6H{xwmNO5CDyT&e7i6>Olu`x8ONOa)GWABd8h5M*+Q)T#wP zn`m4JD{r>?`GRlI%^;JavOqdw?n7ZX5Yy{{%3MDh0u6KsHWf%Ws1AQy{hm(Zjpg8T z^2y@NihICrkxDf_v>@3Vc|a_5sD9_+^#EtZc|i-I#Dfg(97L)%2tZ6 zyQ?VXE*vj4W=n1##kUfO`GAs_Ch#XPPmll~2U z4?pYF!|figM{NH0ltfbOCC0+>_)-f?hpBezM$~x`YANQU_iRh>$o)zZa_PZ^wYf`y zUaLAg(&&T!jV}44gF>Ua@4wCielNGIFY#Q4AfHGn!fkw9hR#7Z-w(ldu6=nvvYJm+ zd@_D68!K_FF0m)Q`~sw&4yt)x^D5Rt{E0i1iJx@yEq2@eXCPPHFL}4)`ZX%&zn`)V zAiD1iA;Xbf^HK2hLHg&`)4Nzyp&b~PPf3CAt88q~aD1}%_F;5|Vn_G6$!4y6HT{@~ zxX#Z4u>s`Kmh0^@>M8<{uI)-laOAkoSQrB9?efJr3(R2V(bzqY8SPz2YtB@scvwYU zXe*|lh@Wh9AeC9$X1J&Cl_XvzUS&m@HXL?!Tx%^3_61UElEO z1*YST0hK^kZUExJf8VcjQegj=yan8?kJKwIo|Q&5ys?Z63`wy!&_j_I$~%Yo^enakBb!vSUupu7 z43>xmW$PLb$RHP_!|6h0Q0D~vjf0(P?sOF;A^&GGlK;@Dkids2uG&{?2Tral2yQDr z8iI_y@Wz1?;1=D~L{`Mp=opyIz7b9{7xg_i06#GT6BDe-Y7HJX*k(i;gMKoY!;&`l zczMM+4cPFZLtHcG79b-3gJ&D!Xxo`Kd4sDjjYdt${0FhW5NX1_!U$=4#oRIZd+LOn z_l7U%3d|qBJgdltb)7iCo+X3ud)&6qMjUMl(Vk$@9&V;tPq&d?} z4uE$o$zN%#lF=SJK1R{RyoXvBRvdU%^xBqPUDWYEle>mWBt9iEzbWLp60}Pqm=r$1 z5_fR&1*#BQaV>Q@sQBh{NKm7I6u5_3!@Hq)!|XD^mzRZ*^bBjy5k2pI)^LL&p3wdg)iqk4x>c;c>N z+smJbbLM+uL%i5OtN+!5_3`+Ty`UZ*y$fN&s8!W8+lxO;j%z_=ez?khKOgq51YcFW z>9f+U@;TJnT7bTS@PYBij+nrdE_Awt9wrB``vs|P3>w`A9v*GSG1^^&;kw$C&X<1? zaWhot^QWzApwlftXN6iLU>cN=r?Jdz!cy8K%IZtRNlh3X?K5ps&srlE^{%ZcE>#F zeds){V^=l7%V(&rA-MX$Rpqbvo=cr(zs_oZx%(}?bnkgWRjK+x!e;Mf)Xo$d(d)+a z{JkvP#7&=?I43?aK08Li>hB(K52N{DQ6cnDsx-pwgXi*;r@G#kD|JEUyH}jAmYIxc z>5YCH9~3KH2sGH>2F_)%QO1=lfiqN*_He*;g>G5@FME3Vbuw}OT~edk(8+zirkPje zwR_M%!9Qv%o{Hb^y*=H)3qEZe4u^HND$c!eBVvC`*kzW>KnJ#>)6(Aa|0vQzN;uqs zU}N*Xk(->F>5tU_r^D!2tM!_*tXSd|JHFS%CzAHO`RDi@Bl2L}*e~2`l%DJ%AL+Zg z)Vk@l>#OQ4x6=OxU2#Dd!ADB^hd{Q8_RP-B2SplshPyw60h^*q7K{klF}E!`5%bXl z>MjbHm1;G=hBwI5ph{QwXti-~nlT*7)O8yDkZ(iog*xa7;f3fl$W+p*pvv%4#4V?V z2VX)MtI{7j6DrZ{Xu6}kWcM|n)%>>dmpz&mXHzw4{{1(7hbJCXv- zob@li->rQeEHqP4CFG;wf(yOmY;=pBvoBgjQ`#XLZbpD}sGzZ1Kjt{xPQbs??VE?i ze}{emKq-wr@>cn@uVq{ifyS$d4m1ocEZE@y=Xe8DL*(7d8?CGjIZ0(@(l*FE0Fiz%gvKSza1n# z0P8aF#he=K!tx(A{Ly1q`}*iJdGR{#w5jT38v3!&Z8Mu(jM!qa!bQ+O{9X^ryqZtc zi##CbZDd*?A9Y|c;)t=>;VU3>+92$?|Kn2Pg8SJRBAR$-`Q4gv6e{J!Rj@h1v~biQ z`1~ov9tP_kYe{q|6Z+XgYJ>n-UP@s6pRRh=D$bpZ4$@E z5K?g_?aAjk{R32!ZUfFWuv(?E6j?a0F7tP7)q6|%-cQd)#P#}Lqx3-eQ9PTRLC$J- z@Bo)RkCR%L&v80W?@GMfL;OYH`d<0-!AJIwf}7}OkMOF-@->s#PH}f?Q>R0@#qZlH z?WDTt0NI9pOg@|aq@Xn`sMOV;w$$nJ2;0SI{K4}1!ryPL4?Wt9henhz zsGRjg0i{Ozrs4$djs`b!z}TKVs*UJ)R`bK=U68K>flGgnT@T1R6G_c|LWrAgH+-Z_ zgk4^?2SRt*>iw9{DRe){zPK3bx_EdcQT2?TX7F{LwVicn8Cu-MzG^9alze{|pOfBt zJfwXlW##bb3${To^N&&(lCRFb=uAB&jG%#)Q-G$@E4)6FJJro902HUQ(^XAuVY{sW z?Sn6942vJ^@du`T8yFPcSM!e3e1u~nNq_gjhBxF!Cy%mdKw}NILx^0JSYD z9qClR9NB(gDlFmQ#{PxBBk*idTEy%C!b;;j1tsPV7o;%m#l0tY8zn8s96GQT@ax)U zy+WJhnC-%X&F&G)xs92lN(d(9&)2HZFgN(-Nai?Vd9%{BAdu2Y^Hs{skUW`rE93PL z_-#HNsXZu?Q%L3T?~|)I?q$30^&!#=3hpc3mppL3&VXj(d|z%b*zu}sv%$$0V@CVx zwt07w;g4|K%lN|!#qWmlbt&}ThNC;WZjuxG?}DuwjRMWobArDzGv6FNGNOF*j$O_! zMv0(BFA1O-Hf$6iaBy%3U z2;RM=Jz#Vfu6Xp!ealqhD-<4 z(+h1i(6~C-_MdrC!?&qVGq(Fr!!PRJAQigl*jR_H7@@Xy%;yv2*sDd=PP+v!eyhp6 zVyoI|#<2QQw4mV6wvSs=O*9C!tRSy&OkHRD5D|9bMGbOBaIPwsNTfol|=4cQBb z+aAVbRdb9|O{QrEEDNpxCyAGheFcpnPBL$=JIh=O&oy^cvjw~n8x`#zau-Pc`B1W1 zBV?pR{(vkg*PSPA3~La?JkvD2s8$pE5K;X=J{BnYgtws#_Nc{A&Z=(es7g&QZ-09< zC8hs$KSq-9WV!dmy`(_(&aLQ1lBk`}w-a)q+wdA@{e|v;I71x$-YNg=EkR5OUFCc}B_Dq{@8nUp0Nev6#ZKW4|4Z^5{xQUSJ? z65GCMO8k@Cwy&+nU zPi>X5b6ME+DO`Gb(jF7B?-Y`(5+V9uoJYIGpW^x3)Y^eVhq*`U8t*8ry%{VT&kGd1 zsx>sywpkyw2+wLI$1x=>?Mv(KB(lvY=yd&{?khWU>I-3So>eWn{zs~b65-1fN(oB& z8hxq+%E2Y0+$if&Qj>gf{F`|6mq3HsJKlqij5;YB1$5!bdwSo_rdjyS$qi{9e|9lv zH{)kLfo9K~I2fY5cK~IXS{#{`JFOsfUTNlg8Xg?8nH}lLDFC)BevaD5G)UMnID)dZ zC>xyqy!75W9`S{j+-?1OA)>5%g3?7l=J$Rox--G?A=IY<9THpBU*~}tR_tqdiDSM5 zo4-_X%lsv+O@BCz+(kdq6#iT5J)F+&%QYkb#g6eV_ z^LlHstpff)1*TB7OCOaF%n@1W^`DZ@t5g3?v=NysPos(RUhKLJY4Ac9d8{l+3{cL7 zNvi5Hkoj#GCqnEi4p!Yk9;`Y+tZ({>fN>pOs)D@5JS9S z!&q%=C;}<(6l?^$1(%mUAu{QdYch7XtsF|~u?sdn;j~y)y^{ts`i;Z)+Xb9n(bMh? z($Ip8LfZ$;2(^Zx6Do;N{ey=a@9RH^E@}2{cebx(vI-gW&P6%BB|X}9O4A~U_m$k9 zcfc-j&_6A7$v9<^`lE5D@Zg*5kop`{ILu9(S~O#zRBcRFrsULI*)D6GJE|jha<4KvUxRK{dcmiivt!r<+6Ul?`L$Vwr)j)Y} z(4y%Nm^g1SqT|`>SW@XXwUmYRb?g?WDhq!S;B;nrec9o8)@O7GLCF~8Q!9iknFqIC z9FOo{yK}I%3aKlrf4auTR@f~`h-XQ*7Effky>W@5ihNtT^156L72RVcZDFwyV-9$I z{*EOzC~DR=0xV~dil5VjqU?U3+16Iq@D~lewCSUlvDqt_CmxbfC+HY_a`%{wNIkW$LlA}?u zxV=(VQLM16&;)am8&ViNXDt=Q#)$D5F3)qi5G}#fdC4_60e^x&hyVPvhptccpiqOP z?y2j|{v<{;iFXJ%KDc@sjJ6N*(K2~AC!{dfu?*DkIwb?STB+~$JMWvW(V{#l9d*1I z?UViMy59-#+=&oUWYR3xM>h!c+Su=2QhYXhp{E9wF`kJl(@S(&YH@FrJ0zIzFZio` zW_;VP^X7fE$k`8&n#S3~7al?MgA+*3oYjb~VY2Hk>7Kxz1Ls+le>-UhX{PSlOfK(X5#Q|Ap3j!JcW8! zGShftX$<#IO)rjf^8%Q;W3Nd6PFm@R-3G?$VYj-`G7E@S`(22IcfEfQHJer)!J-8X7n$H{tu8E{hQW zC7r1MyE~Zwuj5RSyZtJ8N^*KWU}xED7vYOy#kq>-%&2#2deFlPdH&V%Q#cT0np47y z!i3gu_rD&)3cmo;neF}?R)6xM<}var4_{_ue}%0^45RCuwz#yIePTsMOL4{pwZ6sv zG5FiJztuzaG`b}|lltrDzRZS9Z%S1jK#RLdzL-m6O$Aoge2LpwL%R~Bz$aT=C{P^K z>{8_TvZOb94jX=sAu>YmqHJS7i7?ZIS4GD*Kg6M!tQCx@DcNJ9aL>d&vYH-NpKRh% z3r*~II^qst+qW5iR(W14v;{EXl66IVx$LK;?a<-lV;j49b1RYpAW z4oez!GMqH3WUyed-`$`FHKiaB?wMw(oN^LAdajpRcOiV2W!6Oha-Hb9mns`!d3=3D z?073rBhC3F9j$ZJI4BkJSWGi ze~%v##8ED%Y8IE@{m*VG1F@Iw!JwA(x9!OQH3G(b0acYKDe2y#n z+~|mlNc7dl9BBEu-D3YMEv<$d;V!)?5uOc-jNo}zNZm@!R!}D3yI?YzJnFj{tk&EV zQ$)eC8NzfCwjuW>d2|FMI(ib#Rs}&8RkAJvrfJS~t=w(q<}Koe|DW<2Za|1G;HK8x zu7EZx$p{Ippi6d%mRb9Z2#T1A$!bU{WI2IXbFAU#A$fgkR?mDy$!q={T&-(QKOEY?1Cb}+M~XYLMxpHx#MQ#R{jF#QyOMC8@^E~1}8`e1;@?n zCq08^_-pl#gX^@r0W)n4K+U6lydz;i^;78qx^FEU;K+e5=)pBeCrBdfs^n8L2Ncf9 z!JO6O_7^X&bDDS^&3C7>sMg8nxHn?D{u`(VzEri|S%FBC_8EZn(2cbOLkne#!qGd=2#k9k|T>W%*xHB}f4R zVEp{Shcbd0E2qr?*l)AsrwSl0dLLF>teC@rI*W178KGGyBKfngs-*c@LJ##LkCKYx z05=a_-QPtPr>S+SH`R>BLzDZv{?%#q@u;>przvWL9ki5rti6nT`>+zHU2ftF?POl@ zdY#q%)+X^(!8*U(GGnHCo$>xys-g#CW?B$T%Z%u|N7osv|NQ1!%`H4RV33&43)=Q` ztA?lK@%k~-Ip)EmiS=JjUJd%u=YoRIr!IM@B%zUyXVghg9}lMmYM7x5Zf<)Y zsb!|xviJ9E?9pv)G5^Fqu8O{<-a3W!yhgT_N6%a6{}^LpKRAp@%vBXH_95e@M^vaG z_z>~lMUH(0zkw*Yurj`^O(E{A@#&VRaK1Bys3>w?k4L(Vi&cMVlTpmo^65sH4a=h{ z*UQWP&2nb$g3JC2r;7e#bZf7CYX;8lt}MW_@53VBhz&B|(pQ#IG859>lfRv*X3VMe zqHKsJNWar4Y506@hr1Er6*Vm4N3ENpDuPt$#fn*$s)uxbA=zlUqMWHtBy$}F!6&6l z$-)O%oJ`?)X=*_Zl|1-l4;V0Xy~QIr?J`T*?Xi*AuJIl0ml`Hs8;h8BH?w)!R@{U1 zE|V;|tcKoc+oqMsK(yMgelCYB3&hXI#X}c|TYq@MV(z9RIsICcl)tR5do^Cd+VMPT zM%ImOrK)%C`~8Eb~3yvf6SF7v|ylw|LfVCrV1+z2XY4Mf|g3oOT!`q zUy-h=4Af=WyPKs!`+1Isiyw14Q4uejGC4Ou>d)P$A8W;&`8#>-`L^lz#J#gZC)Sw#W;YEfN-n75|~|~-S>Vw)$&BGV{4>KvNU7hlD6#J z<;(<@13FZzAnsP!QQQHU&^i5qu*`?FkwQ5D8vkrIjILnrjQq)V++h^|vF2s6LGnH+ zj>A59QUJA(C2&g>j@_hFSOOov$iYnnaatERShT4qi0{)lZ;1InGdiTbXGMjxni5JM z;q#)K@BC{V0$5ZC%$gykcC;*@Sc!lB(>5gxmM$Q(@p#7vak>AXOfp>H>g9)nfnfLv zVG+seO*qukcV+M7-iZq$EfpZ9U&PWA&+C36 zC&P>TWs#4srVs5 z))xzWmu~Oa1By~6uG({bUyIR+M%D8%PgmA{yJOxMd^lo*xbh73ZvGVI{=Sb*S0oO0 zCC54Cp8Z;YT@os=~{L2eOT;W>QDVz;fA6`k=4GLuh-yUU}v-K+Uy&(!~g)jD!2 zMJ+cggz5n+xz;zadl#{%q2EU7p~YyOvN13)3>Ala%DJ#H#BhXA`!JguLB5YxbAY_) zX|n}V5ECNMN!oiU2qdEqrBinIf9b1FBw}6powE3pg-e${L1A7kfeZO(^yk;!aGs2NbC~S}fD>kUKpca&!vRnWTSwIK|3k3-%1Au-$qVdWxa&iNA^T_YIwpJ-YjZ*5;zy~97pyv^ zAIHb)%*y{T8k*6jvpDJrwNd}BKWFLuPBg$pj)_K6HP=(m9&uoOabvjS(@En6sR)-p z&3PL_;KV=1#gI<9CdG5!+D0&;l6ZO}*Nvimh2y%E^|~sSa$FC6qRd)_^D{M#l4#`c z<@YPw0o?J;{>y=dqz48$KOjR_?hV39jP@Ld0UGt%TON7=S)b+f>eq=1DK-5>9&wnx zrA{>*cB(G zH8WdoVGJN1GSv|gwBze4gIiV(6u>nP`JegVAShak#Je=Fb?=H>BbDCo;>tLyC>B0u zN4%%$$sO+9OBExPl1+-XmJq}L3A`%t*YH=ZcD!c`fp2E-9^jlno6Uo zu(+K{mg9BYt+7YwJ?F>A2VW1-7-qDtI%``K+@&DZ2pkoq`ta~%BU~nTCrRUiBN|hT zijr2U{kpS302U%xiLpvc%%SN{P+WKRRH>kY;}=z;K2TV;2JF6<+TOzG)xwvv(tHC# z1p8L$OG`~R8EAD~Sq$>aVQ&UtpgbUz&{ia&jPbRVO7~{xcYhLUca)at15zcht-&AZ zrv-LNe!S`h?)Z*<*Ih?Up^s%m9;Vx)mh&`|LpynDp@k^TO`AvC_u=O+E~SlZuV~iG zxar31CNF8d$XY>N-nzT6&r5Y@wWW`(AK3rCArN}iVy-Icpn>v8*=caW|5KiXM9z;4 zQ!4ePuv zONVZ8H}*Jm^B2$SVd@}`&RkqjgGD5{2ME}XPmbFaKk)i_+)R$f=G*{}C{ao1)WeeE zB53oqu^wWt<<)GGfO!*)DT2!%8b-zpQ0@Le(usw|fVL?FFxLb}(7SoCKByfD?3sOc z>?Mt7@%R3>S-pvfi=Br zNA8JRZR4U#sp2f5eK=^2#$Z1vHFc59Sm6de$)eulC?d6Dt>O@4FSl z7rPzShnzs?7lG=On|!fe9H+rciv7^A#Li9YO$+5`VSx#qMj69C_R?&hdRXH>_5&wR zP*=(dRS9+O%aPCiO+`-)qr-OQ@jNyGkGBfr_W?npz375M0UDfkPHJr2(!~@)JgpthV|M>c^nz=m5%ph@l0RkiM?n&Txh+-&hR&8^h=GSL$wi*=wvs zo%{xYOt`&obh5;3!Hgc>byk!(|JS#a@&W5`9G_6zPD@^^87v{3GdYpCK+=x};>coX+^OQC-H2*x-}PI`Uh zIiL17yJRG1JT1K0;Ot3?$Cpb)&<%eY%rjjzgW31uHjfi8gqWS*X)SGL+0?T_b~J{i zYM;!rJr@J|ERP<>mqq!VNRV*wO>(?@0(ye3MDr~sDiz1FI(-&>8{P9cI;eSMB!#LT z2`P~6HbE*yZDBjDzLupEhZCJy>L=u_Ay$iB&86X=$vz0&DB>A5dH^K~E%HB}Tj)s%jB-oOqmUvX5=&Os zcSimA&aDHa#N+b&emvRVGbM<)1V)6$%{&_U>(=yrP;~OFKZTXn9DT~JsY)Mr1W3OF3S<&?RGz!zlkXpESRI{hX1j&At_V(W zUn)3IjjhiII^pRG;uCHns~LnLRlFwrX(mcG@TFSM5G_q(+l@K26%=2M+Q#jpJ`Da+ zdZm>8ra{41s~+LP5&Y7Atj6Fm#stf zh0~TRqwYleJ*wXiqMqPSiNe5TTm^jmWpD#)>nZr(?!^G;!P})YDZxaI zS3!eOfzkZr96OC9L?};$T}5}iF(DA z19+Rd(5aFK>AU_JQhvEcQ`zQn0k%G$Vcg)OF0Py^#Mi-~dx^89 zRerZkPFp%+3;gNp#;pCvFx~I@850)}2PXawx?L+AIIi0@)z9Ha)*zgU905$r@-s4{Z#9Mx+xMN}jNGWL8 z2GLa8`KthAPP={Vl{)4)*JfrAVZxms%ei9zK(^EN^nQsj3F3LL2fu6$p5>egtJVTJ;?6ym$jw4kL)2`)_LB4V*@4OfCKN6^=n{PePOr~V!FI* zyuYd7gNE6Ernmgv>hEMD##Esluvj}`q^s7H^`ZM0E*%(oh)>Cf8oq02xST+Id578L z-hM{bd17z=8@5zRs)84z_|W^W)nTYDI7&H7d3+1hyIt4eKo|V+i(Je7X}i5H^jsFH z|>D2MwH(cMba6xF?bRVJ)DD z*`sMtM3}afwrnSVENj&)? zeY#l{-*!pEsdP0PdF9KDyk22;+rgyN;m$B@weQWFbgBP=ZG&AGxv- zmSgZMxz;Sl^D%c4Nq{*UOuR}FW^1W^0zhheOfN}raGNo8o+75p#!%^u?u%V3){d*k zbq&CgO2xD1Twy|gqv20E{%sDD(XD*5{L1|RkT2ZAHq*J9@V>#}e#?t0q9%9utpMK zNiQuqM2m8OePw;;9(CoX?P_j(mUjdOlfh1o4;1#1Hk@6<0<}Er+ff&oJYbFd*?j0{ z@Mqh-Osop!mE%d->=$8t>5*f(vlxxh!k_J7&3LwP1`=&>DFUvWe5J6Hw#ttyR7XmNE0VPk-F!39@hA+mJb~=qRGq@=^gyxwJk$l=Iv@Jfqdx1ZpKr)U&j; zl`=@2tfV;wU@dMted4u0tt$e%q^JgFJU1uq#z_9wXQ_a@5pZW z{ZN1#@pKwY`vFBreH6o{?C|H}O$3wet8}?|-iS}$2X&5od8P|s4y0dmbOy9cJxU&M zA+~D_x}iNofy9Q^yp8so0GL9v0Gc%@;%KV}Dfk^W|l?6Uy~w4Z|vWNwQ!v4Gp zOgnz4>y&=E_?7T*CRj4f%&eQDc9QPAk@Z(U02($nN*4YNM)z=m`SKc#*|lLunguUv zFL~kqeyfg7+*3IsR(1W|?)^#eM|USXbhCh;`>8mW=Td)mQHvTJsZRJ@n#rp86yy?d z3OYPKK(8%n9QYsEAYibWcRxj9gxPn~ySWF$p8W}))fi&^IXTZjI@;n=B?PT&*cvTB zsxf%|Ac#a1my&MK^>G@=uE>)F{@!@j6#QMHs}T^$Y+I%#hf0XJmOq5BlZ_*Q5rgR} zwgW2b0-3ll!+dVv5zp6XF0LZTO=Y=_-nih6p8vS_3qD^0ecET@5@P#lfHbKd&gviP zYcA!w=Ln=7C2i_=AU$BKLx=rPC7#(pfU)S*vusjW*znfJ{9^cxDv_prlI7_+Omt88 z$1{0o47~+*{rpe9-nh^C%iBdhB|jP|=QK=VS{8fR1uihnNsQ2<-{nX6Rp3D`?fV?= z?VmN61tdwaY^_WvEW!0SrOYv82dskiW@Q#K(?0K9;`p*6Wp7T$eVC#=KP8~yM!6P~u*RnrE&D zM|4?>th~a?vO)*L(2JqeG%%Pr1FWY?E}fOsRh)sYhEK{_@#6Jb>`;f;^-=~#y;BvEY5y`t7P`{&_DI1{ACP{aSm&Q(iE01P1euo zm7vMfWo8Y)z$WtE$$H~mE$hoVtYZs}bHoMODaO+U@r-)x`$3q04XUEX!1?{)&Vc-t z3?aPUAhE^jpVV4Z>)G_9s=B2l37<6Y!0>D4MbCl0vE-9RxXPLcty6;sPNE>ts~WcjRocP1K6EAjSZZCxEcvBBUO z3u%>dg8PSW-h1b^cksi3{oyP*EOkcXwYf$eYK^Dw3v1~K?dgAB5&i!*oSAoTF5B)2 zw#S_+#1#$a2E}eUR9Cj$W~Uy9#c!@3+zDs>I?~e*ZH}5oEqoNDNePtoMAG@nB94)% zyG0m1Fx<{=C!{w7wQ3AqQq$|9-2c?X;`hramLVtWPW zy!xyNHZSjkR7?lz-A{SbW4O&v=;8AJE^7#_S$-I~%HytP(&hYM>Lc1HxN9u}{vsNX{7`w?kfiIX=T=oJ?NX4l!(lzwE< z`)zg2h~*Fd`>!#JI?}|6ODxO{N0kv}qLCpE8LFzT>xhj11l@mlcovPyo8(X)qz2#@ z3c1d1n%g9GTOu7#l_i1|d(3`t;=gJSrYu@yRp*~yR zO6Tat*L8=aa$f+Dmu@5+I08=!)x7z_brF`8b)^;wDw&cMeyC0?xf+v{^3;jyJN~xc zWTbNa*g7@LHgzO+R6f>ov7ws9+Ak&gOY+#)qP=OznmKg+PM^>3tDzf7T9h=whn^jJ zX$JG?g8Sq5@D_3UNz0VX4d&|YJXDhUO^P6{RDX*!TOL!+npRpS^l|xZSiQVjvY6#SM@!0rr_p@lFQw{vLyg zIesPKd~Xh~=v& z=C@!6+_%fF97M;Vl!wV(8i6kcdr4O+d|i2InAPmjxVrm~seJCfTXI9VVWv_wFVpud~(kpb;Jpujdhq&%zi>3QQURqk2K~)C6qB49C8Q`41 zqNjCCE+*C|a-Q|uYvl8i)YzXKT*&zN0N+3TsZMt8z_c3J_dj$sSPKuWM1^KEYrW|I zEZFygo_@fD3g*~;MP7FK8_!z(!z?Y^Ph*BW4O@6c$%lsbDqaPD&4t^SO}xep?5Pr2 zWM_)=;Z=<`Q=Bz3ah2j-w*S5=f+l_|s;lcO;(W#P=^;Jz+`4&nh*jfWlW z&Rn7`L>0^dm7Ik>fb*4zVpaC-oH6Hndu7TybX-=Xi4R#eYZ|;YN7jH zgeKYBc<_%lF*`r#+(!FtCqJa6xSsdZ^0(%-q->i`LQCIogZJbIRf(ZnU8lH}03@5oWGlbeIHc> z+RD(iN75FFo0j!Q|3RZoP3H>;qUpbv!|yCo>DC?`LGaDg-={WAmVqxn_O9SY6c*X6 ziHd&1kP1ZXw#yih#HI-|((1Zb?O17K=tlG8RET`)Y?pHZ=riU38KeqVs)Y+c+!^^yFAh{M+|Y03?Dt}_>hPyBT_)b6AAi;jG*L2RyQzkTxe zn=YqH1O`3Hp%ID`6|3Eq3Hf%C#kQWg1D(Y2kn`Bu1mf0d+A1<;K4UJ`=6~o&hk3sV zU4Oij43~62@V*5$exzpz*!g~+-O@CvIxaZjclp~2PCFs|MwnE*apeFq$~16u{`y7+ z5cQzM^;_roHRv%U1%k?*EaqYEe{+T0_9)DpHP>CEX5r$ddon-+T)(mU)1TVPdx-#0 zTx=2YFJ`6&85n+nfJVkHhBY+fUR@%fKR+|j3>!w$!vX3^?OvoF;CRG@Lh_doU|WfO z9E)rxI*cX0y4kt@!Sw079b^P+gF9$NSmnM1T|tZPI1L|sO8POyo+X!{dr0LP+5hFt z;;J3&Y3APHe4fkorR4FEr@;e$_nal98wuZ_cWy*Qvw4sAUR`$3mu&^b!X3IqaH@K22Sb6-sCoM)cu@lrm^8l@>lWM{JqxE42B!fG_kbC)y{Nw&>fVG22aHl36PLADdztJ0sfa3>4IFYTTDgM?#F(fem;wMCu=@Au6#uO_8e%IRi* zWNrJK9cQ{Uzf$}YLSbm>EJf{hM6Lu1@@_Xn)7Id#QJK?oAafUY7-2>idC1{nu=kX9 z|Lf1v;{N^B*ELIBDy{ECopYMDfehqCrhw0^n2&!G9l;xks!UY=vXW`i?h+tHrb^k{ z%5ab`uX?C3*bG@SNA~sc#qz&bd6sJf@sHCzhq*5erPW-^dA--=Aieucyo7DZfHuN6 z^3iH9bO}9!GXO`(rMzP35zJ+yhhuEPvVa)jv_E_dxriG{h`f`&*LV)VeLTld#q?n7 zIU4#;`tGK)X|4R-OFEN-Ndf!0wH7rTVH5F8##c^5!EcjVP}8x&t3$Z{-E-D(+#o0_ z5ogHODDuam197<{@nbNP>>K0bB0Z>2VL7cbqgQ8+X;jK;K^orAMT|LU1uQ)%D`LJ~ zD$c6x7b{Pa_O(kbZC7Q{ggtPvt|H|)b(LlBo{R4M3*|A9PXoR`Dl^4>Lzu4}ti3Df z^7x;bRHA^juqLOQ!q%@7-;XO>+^^Ca_qg|Nd!D;@-M2!~9&~g<3GMYCjJbIpXIxl< zS0}y~YZVWhEA4#7eGr5G@)000G}JOQaX~)`Y1vGvEj7b-kjP{$hl}a1V5g}W5`nOkMu(uV5XMh$JvMmcX0s1&kYNv3_n^0#OgLQ!@bo|fi zS~6CX*43bh#yer!>crj)A?MF&uyBJuY?kQBc4NFU@9H<$*mZ?5 z-9)6VzSOx#cRNp(tKBlj{(KRw8=S~vQa-*I$z}U@5bnVu)~PQx zE=}ngO z3fMA^GC9rbgZWhmVLM>z0k9v6Ut(x^x6@k%@X2%5$DH!?%D!{QYE=#MxS`^bn|`RL zbt!nf1uku9KlG~o^FHuQF?uUR>^E(x8HqrA9Ob+GZcoFX?`dyGau}G&w5zEXvVOiA zX*6ioqg#FF2dq2gkB;!`dt6>-A^w*0=M)52Wby+r;+3pYNk*+ zLqW-qHqKU-kvyIqUVXuuwpPabF4WxQ>=16e3JiNAi#+kzw_hd3glS#2Oe;<=(@!1# zRoIXYnG?#-YK(YkQ5F~@UYp<#T6jKsRGtT}or~?t-nwZ*w$93>qt)>eJB;r(x7hgp z>kRF$aX;C;Sh=XxQZA=ySlU4`5Sx<)7mG; z@6)R9ym_iRDhq`xPDgsr=3qi*$nSc$%vc4Im*jw!WC9XbFrq`3LEBLWKPKKFyAsR zTIBm5-$k%_(a;eQV-pdRXuCNC_{0_f$gTNWaDYsnVj!VwPs8vjNM z_c!XD*t^NNejp9^xKhiX=2@9_V^gafZ~SKO`SkoJDl6fJJKJ2^89iyrWp!4LhlgB< z5{wRr9=$o6qm(o4b!b^VGX%VQb7+_-o?btJNZUk68{>v{?O9&1BFF;ZaG{|#uBX== zS*crX)P8$2C`8$8MDV{3#{YjkhQa)w4cAJ1etXOZB>B(FbN@;#jS}3%oP;KJP1Y$- zaFKAAbO7~@N5C2{!ddvs#d0-tov@J(9#9x`dC;kLPDQ^(?AL^iX8F*rT?SyRkZ6S~;7o*4wn_?CB(r6D8e9`9wh`Abz#&{!2Z7 zt%3Kr-2toX*t92Sf%cykr}w3H2u812Jj$m{tUZ1L{)VmG5IdJ}l<%?XF6RD{dm!_; zG-z)(2s7HZ9LE3n5%;I&?VUXGG8N2(my!vVJdTpaIF8x=$h)N*jWgZW134aH)TI53 zM!IbdFpI9S93xCF$<5g67}jIvH^+<@$18oK$Zg<5(AwaAxAnM!7c30d#SxOu0B%=C znZk5%0I%_9UWx7%#kP^$QOR ztraG~C4vhUs&i-VI)mfqYrP6*+_gpsj&ixA$#5VnlLJ zPhHA#PeS*dHkc1)ZZ6jM(L~-P{4_eh%ia2P(UI4|7A04SPeLl|wX|;DrJC-@)uKK& z^2+SiG>=;>5Vptb4M-2^<=hu#(#vl+|8&I){IBS|ng|^_sNNI^x>Egi24??V`kg^T ztysqvvvRN-vnPeB7#XQNEbiexB@e;H73Tj~1{)cgA=R}x@AKJU{)w>p2ZK~s*r6gD zNmsmsCl&dPaH>Zce~ipFhrq0SzY4XOQ19`fP7c2>p#>5EF3{5ep-`kSNC}63Og^_j zyAS?=ztz6;c@vrR16I%KHuSvs+$)Z?doNHF#EcMr-Jas`DDgSW7rT;}j)NoSnI#aA z=9BbZ^;;&>;p+q)kSaOE@w8Mt3rbyek0H^JGth;R9&12(Zs->&vD<)V!iTlRnfd;? zGsNG)I9VE*q^1mhu&T=1q1UiEo~g4c+;kuVZe3 zE2i^Y@oT9oGuPbWrw0lxOpZ(E@IFsJQ~7!b$qrqY`6$D~qfOXk;SpnwMe3=nBQUF5Hm=)^UGAIvW-<*7-}%-S2(cW! zwRoSe`6jI(@52sh@;<-Y2xXEi`*FgYFX6P^rcxI6x%q6GXtBA5d8yrubEo-P-sX#6 zE@UM+pbPn(D(y5!P@@vX1v<;9yNKV3yo$h!{qvdd51dYCfgyLUc6E$A@Lu`G9x||*q?tQzQsy#XPH&MqIQk@xL?uNw}9s-+iN8mci zNG?8QA57k79ko0Bp!G-a2P_Z`doa;7Rjbjh({mIt8LBp!HvPG1Wvo2ElLFDFt!+m_ z$ImyFU`6&L2mL+gftp>vfPZsU7Rp{JmhQ0Ba~n&{O~t-r5@o!aroKN^)Xmkw03knH zp?cw;*%XUq(b${MD_R_=8dF@VsmED$lb{<^kA1@R@A5_3m0HgF+sRu;@?7YUQNT=0 zU&1IXl6l+Bdvg_@EM=*=pUl%W`RlzTHYNA^rTe9Rupg3-rP7`>c;KIf5VikKJXB$R z@$-%s=6z**UAkq2zwKQk{PNR!=Yw8WhCnGHVDP}qTBxyS=N&0eeAeDbLPXl#<&lGb zS7Vv4+jo6@SOdMiA6fm3oxKdBd3MBV;Hy~oOFYe-)3}Fx{J@u7Sko>Y)4+bU|7tGl z|9L*+lTWBV+c>yW5s{z~69;`bx1o%9V|7kYjcDh|#-jbMH8XSufK0{K&Jkv#3eoxZ z%-q+0KrEecb<-nGk3vrFU0No!eYIi;fl&rm_cI$Ww62M4RrvEg=36YqolFwB!#W`U zX_;zG>pINbH5vEX+s!3)BE9j7<2`gKGgn2>cUe$~_zJ?@+sCy2wAaYCxO>hjrHPnv zIh5jZ+0vaMlluzjcZMP~1;p`p=FO^n1*`&W(>dFnTb9jz$LL+UKvP3D7KskN+B?R> z3~>POJd(!=oqgFlx{TD`OTzY@F`E^;=aBFE^4G{q^#=Y;3&3XXs6T6(XKi&0me7Z? z@*zt$4Z4P97)Oysb^mt8TQ-GrRrE37#F{A2<-nsiAHa+@Wanf$JS>V9PN*K>ytn42 zpqnZ@G=Spcc!Fqco(eHS*uN*7(i=XpNzuy@d#u+a-ZMw?R?uT)zlP^#o??YMmtJ9_ zl<`xNyT6>cj!C&aa}+@jpr63M=902QD!(B=!M-#?LpfI>bBKP3SF6(|8$LexeB;HH zo}+3>Sog5!DDh$0T`eop0n6tfR3bx{{N#QDA&1F? z99W%?X`Mjefu|VZM!rAa+Z|t$cvlj!!8ee1DJ*y|HK>QjFI7f38k(D8xlBHKz|iX{ z^IbymV@$Gfit#9-0FWSn>4Vtia358kgpe^k4;a z&QxzfaWCI>DrenZ$IvEV1`J&IyFWekuS>G3vOTPR0)(Qi!S%qALqEO7gmpNBA!%=E|hq}vUc!gkGTS1Sy)8wBM38YCf%f73obqmo{VvN zr12HC)(#BYkN=He;$i@bU&C3OR(ya@PnXK$2MCJ>6LdnwzWi#eMw>1U7lT6^0^R^3L#j;lfb ztQVqoIAxjo&AKr0H8siS%2WpWdMLfq1ZS77TJim_f-w*ol}z9}(Dq^))rSi5=f%k@ zvwa=6{EhtZ<=8l7NfBW>YmJ<$$5EBQ5+%!u9NYZfjAvaOz-(0Vc4?nfddrrvn|1%8 znW(DRZ=XJe&h!fzBJlYrg3cbGCE&TqFO!w5)8>pmMr)7^?8q}2M4#Okd1?SzZdfC- zpkrZyEkzk^f(B!SHkj?km6uF2_T|~b!VJfUdm=0w7TY69xk$9f8v1qfREB1JMr`Z& zq$SO`|Eqgjf9hL$0?Thp|Fj*)2U__Z*zze4dzqjPhsYBANwHxNNk%5YbFMIbUIT{P zjK-!@Ex|XjDW*=7Khg+TDMKGFKBvO*U_NE5nVmWlg>>|H*1~Dd))upu#&^@+)`17y zZHLEF-EOcRa4RE})M;H+3rR=5Jqw6g!YWvB$Oi9*J}7$g-ZA;OSVJXTN%qM!Ohkle z(fzdj9~8l&jQK>%E+e_??A5B}&izx^VU%*{FkETue$cSc%w~oc@E+$0f(RX{J#||0 zyR{|xqF7c+Aa-g7tuZB&;uEOQN>9I=Lr?qb`qmFH6OL}A_H20fCWQ$D#m8IeHxyiwoK|bZ<`zsGnyJ2e{ zzYMu8vBs76_#@lW2c}Qn{sv>Fmd>9aty(!sue~Ck9?tqJfb_&S6(yw|^u%KFD-a3C zcN70^g$K`R)k_uk!ejGMcO|dT7V~p=;O0&3{{lt1%oE+UTk9$Z;=?0pJ|6Bp?}l6Zk+`7 zui7>b1Hm{_w4B0krcX&zAOU^z_1r8|xcB#0!O#(Q?g^#xdM=AdthBOo3o2F9nTBK| z92(r_On;|~zM1`Z4rJ37-K+NU>+cr<+YjKfK_Q3mt}Ltdw!rCe|k0f%P?=XHJQTb{HfpSTi!#a7O>XN z5O9JE5AK;+N^15*U<-0_LP6)ehNUhf4J4IQ2n!q`GI9KSDq=2&#atD*-w7V!#qMMW zcFe^5D&zK2n{zmKM-5+BL5NAv==ko6dho;IoV6`yTU-O=UOgyMK&<5O~xm z>Ve+MPXVto^q`lO%~_65Dbe@26~L7@%(vy%!>BjlB@yL&=FUI7uHKVCEbCCES18TO z#sBcdr6sQ@kvc z_mO-nLS*Pv6(9;5Ct7B_J*Ns{QvD9Ye>}YX5$D5eZ_{q&O>iR`ji0XZw{+t8)!yW` zgGOELEQTf0yF8d?YRAM+qTZv^57cEYBAGsp+@ZOPA{#!_JgjInoILQFC0JD~4Fy@l@H-?%B+1iU^%1en*7q@#!B$s`-S^qBjgZ04GTWuGJ zL$S$JNkP0D?}LDAg|pmsqXIr%wAyn$yz7LahLawjijQOOT_CNqB`=O zc+;;YR1_qPw>@wH^e;@tjmQKY}_N<3F}^h{S9wnC=H#QrXO>6?ot)aK?aVb=?G4~2 zf6m&xMvGTCdIiN-*7H*F*vBECyh=yLqrE`W3>r1*i2>rcGwD{vg4t((c41BwVmG}+ zhBy8s>a!SHnEhbD<;Lqd1}hdSRkwL;qr{lp=V&P2QAG+l#m;FKq zU_a?mLr6NU_E(d`go!HRD=E0qR2_8gYWDIdn$(HnXk=l}W%~0;XAB870ZE5_VmXeN zXH9bU1{ltVsBc|4s`>UrQ~=5syc1i0i|cnJ)4{VbhE5I3s7hk7WkD?k)QWG}isZwu zobb*YJVt4%x@Un?@wd)^>=`ilrQy!Rm+a=n4Zs7GNL-LAytDiJ6ft$4wsXDE6|WjM zH%sc1TL#&6;jA=C@;%I8c=ZOT(S9m|!2c+Y`S_!v<*0a~A3_wDN=`ftt#O-cNiJCs zM=6=1XAUu~JTx?jzwTa1omAih82DiQ#zLH@=+GyYQcp@N6p(SJ7gR0Cgk_|uIz zADdBfb&TLa399n`<_q(I>9}L3L$ne0Mh|H}whQ{mH}JOwV?|FAIsu&6WA)7_W(brm zkZ-#;DhAf?vB!FJ?Xr8hgCOtD5PfNOf$T=9(Wwl`%}?3jm1+i93aT#p{yd`lI?!Tk zSiW<2q*>J&dtV!pbNOB>#&QTr?;m?f_I9Z}e_6OsO5(z@+1i0mT>CZyjgO$bXU5%y zzB)V%-S*adKHJVe@w4f=Lhf5W^8yH!;4_P>VF*!=otfjf3U&z8j1o@Uqfwh|VnLJLD4k>@Q*=8k0Q(~G=tugsM$Dwz5 zQ{S)KDZ1F4D4YY7&^9ccpvohEnG~;odkToEeCW^y$mf2^F0_}R%L&H3C#bb1vRV$T zo>~5w-*plvU?>+($opUMnf_me z2(<1+Ubium<6c5v1#G`#W%d0V;nSWjv#i~4%3a+&<@%+@Uqp0n)N{ukF8w9tVE4_a zP)Sz9@wjxCysU*%42_HJaUFmgkW|P&8r)ix!i*QtJB>G=a~_x9de_L0Kf ztFK>|4Y)S&sUDAwr)i>M_HTstoi=BhvYo>&Ib)pPJX?ocIF|LdU22w#%Y$f)jfK$d zoZ(cWGIjH0!_rUiR#_<8-Vs+T#3b8VxNXB}5?Si8`41m^@3 z^Wyti00HC|2L?!7%)9J@3DA1Xsq51KbIG|pyYu^aM^83Ot4p{r8zyr5b4PvbdE1Xh zFHj$lA_EI`ZZ>s$Q9LuhhmG#zlcP|5CqKBVt3~a6$S~a6HM*rWLcq*SbJt}ri!g8Y z%jSfW)SsFKMm!n|@`F%PhNPbAM;mcwQ#xGRB`lN5bX_j#H1+_SY(Q7wVu8yoarzmdu0O?V#+Jv@EGU$4LMSG#i5xh8nT+}!Dp$v{K*}t zuJ>mj;kT*US_st@=)u^%B(laA%#9e0lt7d!;>iEQ+j|Bz)pl{e2~`E;7Nscy3WCxC zDn%56A|iq`=`9oi>7XFel3+swq)8Ff&_O9d=`~1^rqToigdiOv1VTbdviE-ToH=LS zdCSM=K70w;nc0)fT$J%QEQ@A4$hbg_^BgCRjx6_Jcs2k(tm>28 zL~20eD6s}@>-&wC+Nv^w@M&m9YYr2M^tum~!|?&JaMoBhK9Bfpf2o~CA3>{>`5jPw zLt`%`o@kpWs^qkItsaC*sCg$amB0Rd^3!IZM?S%mo|yBf+1i0{f2sCTdoC+sPmAb8 zm6gE{d%j|8GTfV=0(z3YS#4+K?A3vpnI|rOK-1&s)}#BwrJC5op$%>RB*MZp3oRMp zp&uRNIQ%PVB_pK+7o#>mMUF?Nvg|@`?@ByJ6MAGH=*FYZeL$HnhaL=S_Lcwzsd0R4 zjpV8Ofa|R<;dK74^Zk*jHSPQugeEhp06F0E4sJ19vIdYZw#s${*n_quFP_~$!?W zg=OyDFZBF&5m)87kP+ZP!ILuFsrIyCkN0zOXU?4=-2RGE^jc0OWb*A)EItcy{teu; zyQ`~tpp}*`;_3~P)!Oj1epU9@ z<;>wdPqmi=#X6z@#f(Y50LZM= zSN2fR1?ku~s*@;ds!8hN!cU#@jZlSIx3d{ctj$Fo#7{^Nvv;9{SO2YhE5qy_fADGK z)JTFo^kf+SO?-2RVX}j`vHpE##2!{)@I^~foj+?|echiwG}7VmuaB$NCMmgxr*Xm6 zrQ*?X#PMp)zx3twILm;?TCTZTOLzQO{xQ>6A28?5C{w2#&O9Iep~1Yvo{5>1;tl-$ zd+=4@X8fOVo=JPc;*Y;Ahd>UpD&XO5Eu+@No4npPE58GefEuds#7**{>UY-yu88Gg~|DPD@3Lb|`kQ_NAbu zW81j{^oUxRIJu!F=QH@8M3(!ytNo~{7WDJrKlaLX9(>=+*(cLF|7rA~nSYklv17)7 zuYZ2WRQicRE^l*d!qa#}(SFhS<3Hm2=oldkZvSD%lm{vQ5U=}U>Di?V#N?`i=udg@ z`>2eT-XrJjJz*y=@fgE;-KK{Yyjmfz%WmGQ3ajwm;D?i0i5P(j6%0$}cM(_j;BxTS z$KXY2t5Mtm75aC|irjN4UZp~UJKvxN%81Pj!RX~n`i8+I#J#Vfn(#UMFs?wWXnmdZ zAq4uSXT=<)SaUL_W6kjK!}FGFezA-1fXc4dG`Vk=NH#6B3Kn4c%5r8-A$cAqOTd+EJ0erhJ~fvRghip?aW}D1L{A-e?8oX>M}CxXUbxe_Eb&Jyn62_NIX;uG(35Y=+3$1YhM`#XMn2<92KOm?!(Tl=U6B0q0#{%*7;2a| z%hDr#+d5jF3%!eTTzs!_QW!WVfh13*ywG0H+r~YP5d%$6O^oCgb$Sg962Fz78b~Jd z4gM|{Ul-+i6mVFcb$}%x5~eVg7a#F9!q({H%Hkf;+=mj=@BO#J@&9t4y6e~9mph63 z!joAdhLOgDLSe5tJ4tE!qB@c(0TN**F$1MfEqE1xoZ?*2~4bQOvE%N6Zn%dpU=1RC^wU988mGSAXj1k{@4myq1Sd(hR0} zHER3=0HaDA&R91G65=gOh&m2w|T!=XY}i9KM=`DV&JY{+%ja`-LY0- zO$<%)DD{pT-c4H=SKTtX&)BLYv0vp(M@EcQ6*rW(a67L_8uZ#+B^20egjpBk_M$$h zWd@)Nxo1DGsJ}g_W@F(E`MpQ)UB9R!4o}G{vDqK5ejLblv)7;-dHIrU5l=I2`j#=2 z7;$2vr`tF0o^a&C0)vjUIbPtz7$8Y(aF>L3uN$9>h`75#*;D*d4ZTa;kqhlyZTOqm zP;XJJ7;C&Z3gWb=Ef?ilfoip`mP+QyK@S&e&)?RKq^+0mtZ|}*3e#^&676|&J&3X^ z^XI)RlC&#fq+PiiEV0Xe)?SsdfI^4a=ly$!Ru*TBFKkPpCdTO?{>nA5NWFQ}8Ng?x zS3gaeBK#WN=tJSx@ny&7oXndqdKH*5Ni{sZ=s*?OHp3EoXp zg8d0O5_twbtfCe`>dLEz@8sZ4=#Wen4ficf3pI5CfjNRm_Xlw{3**%5*r81V)1yvz z@#peMS_@D74Ixv~>b?+`Sgw6Dl;KPo~nTv9lj48Nwdfg@8$rH9u1H2wx zd{CUnx#KeaKB*VUdo2CAw58G_5D`zjGVLCE%8Xb3Ny0Hs+6kV&bp4^z3h}2-DG4&$ zgG~%CJ927}Gd|LCvIo_mPfyN$x@DBnWzHpXw^{4WKuS5kUF$9GQo+^>0G<@gFu8W< z@9{jA-&H(~EPDU`8y+F^fG2_8u+*JS3UQ%NP5+*}NZSUTmx7eo>2rr&*mvE<4#>tG zOGA#Q`oexx;FlS~REda|<-?}NpgSO(-v5%$-~@^(iHQm&kb-522pjPknNzjnUG$c0 z-wHwFt*kCC%;?=PMsAhV?jxKb5C5T?b(t}S+IIiUHpwns$nKm6MRxhJRKxDn)CF>x zliVHlsDGe5xG`z5hRV(U?SxDS6H28yC@o>jzXts?-qM&f*xMyt=`cU?!!<%P(%(_HdJ(62pJeP-1>G6=o5DOqzqr^pox zk^|x2t{^W9nsvZ(D^I?^|I#!6_e<;h+>aztH%Nqp{U=;uU-$+MqFL;MyKSX2N6!55 ziidg9*I&yeR`433s@9wa0wSd5c%4nO@bLo&=6KfOTpB`;LVEU(P(oYC5hr#ofQg$d z-xbC;qW{*TSCJ2Vu1_$RP=!6^<~|V4&bj>O67kH-|4YvLuU*=N5}FSnRx-viFg=3F z+_sV>g0WmldLaY}>Wn^J57oF(fc#JGvzoK`vG|Mxu)j$_p^PE>X@6`EA%MmyPle_U6#lpSYHq&MaA7b}{(i z2VpJDM|}ADQ6OgECe3K&z+x;sSo^HYCJo6WGF#JGOy|xgS`QL^jYBP=oex%*1c!5x zDpdxyvXWMXUjRxx-dDd1r)@AjD+iB`j~AvTw7 z*$Cu^WFJoK)$tBICTv5tr5U_ZK3^y zo^Offe3DVAPiDRtAKtJ2vMLco_i=B_t&n(!_1(JnQ+r$Yv1tHzWFAtHemD4n#rKnK zQJTEen0)Aby{LceWwyCfb(LF3)t;wc%Q){rU)I+h>zG*>9la`RyHZ;mSD354U|-P* zSaT`UardEJtC5HA&iWNUlW>96Mc-+FzWEN>Oe zAw@1kneWU0c$$#|ithl)SFRKO(wjbY=3*k|X*u{(LN+&JYV!P74O$w3`_XvqpObBG zZlsIu`C+xLVo>H_4=nuCcmU!UbLS@dBl07v{lFw_g1JlS($tH(@Hfs@85>V!#NHW) zO?8^E{Fo%PKt{Mtlfsp;*7u~k2iI+#F_;IqNgtdv-93lcjK9A$?1Q30Wz4uQL!N!3 zr%_1PdRva^0^@hOg?xg1l3zm;8`ZxDzJ*7QSy*5~Ri=BAuSS>ACan+k?UrWM7rVus z@p91vVosx`-+16g@p(%m+pF9ftu^B98d9GZzr>@5&`JK3;6)CtZ`gXxteU(^F#m&; z*ZMNGN!?N0!k_a1AK`sDS?L=mAZJ*X37dR{`Wso33(j?rg`0Dk>3jNbc}ICA&u8xS z6{c=rB!Un2i?%634UtnMkyRpSbQNG%HHHF@^EP&+T_gU&jqdSB!1QPXg?H^+?%&3I z`YoFXQ_AYqWB+*^tWVNsX@T9BR0WSBFNuC%T)1rD`6JSgX;==9FBEK%JDtppp#9^4 zery)~QA&zSn*8<3U{?{uh(kTZdQFDc7aVfREjSfQ4lU;T+I zj3s5y8=Pe4-IV%G;NnS`9_MSqr#e!{ky=Mezn|_8Z)v9bu$PSU^C*_GT*epcU3)hx zOTnM-OYk%6A8uu_EZ2>x9=7w9buDvAF zeoKn@n9L1~DdbfZ3Z9?t1e$PQ1V_@dTO8Sw1@xL-`+ajF@A(~UCqQ)VDtPH5BDo@L z&F97c%PM*@El>PQEO-w)5A-!8h5UH{2vo77&c0UM{Vn&a{9_4G_@((BNUblzp^EhO z7s>6gsm95l4S$auYS+v--qwfr!b+Fe1HG~i_X14-nhF0OIb@4HMR=2{6O>8^T*xm~}V)*g%5 zeIRL!O$PtrDV2d~4fvT*J(Kf%`w=X3srJjPUH;LF*taXz->>!x!M0C*$bdKNS9Vu; z9`KUkuiVZt(Y89ZQ}{Icq9T3*|J zN*1A!Z?eGFba{G}sw@j5ZNL)fC!Xx#xo1cLG_joTv^ur;cmqs{<-&{memO{_=z=sp zP*-OT{^W^yU!Z(0dDDPDyc}&^=5)jYXj>u8e#&f4*^Au<&P$w5i>z`97`rnB%!qlntc226{Pn`bk zZQ(;>=w8>QRJ$s1UYg-mKr431mR;H_+MU8OT@&f!rjLj_hX7tbP5vsch|q6U4zg){ zW5mQdpLhlpJhLljjeBxiE?2Gjn#k2x%#?i=D z^V^u(T$Xk4{Fr_(i0@-tXPa>|yg-EUidtv^O#&(quT^d4=F>|Se$1`|7`+HQW^6m9 zy^iDNjqN6feF`FF=7^aO_r-}Buaq^3x4Z{wX7as97PF-3_P^-%J4%`9Z(rPc_%h^9 zK@F?*8*%w(T}uW*aaiG?qp(h)9Frh>qe=AVsqy> zpK6vhbW)^hb}q74bN4|i*j7fB*5TBpYFWxA4*PG`Lh6P8W809ZhP^TZYg+PL%W$ma zVEQJTgP-mJdr z;&TF7N!$Y)-ngS5VECFCnde|ka2!kPDVRIT;=JD)63vl5$8NL`ml`l0o3}x{{W*YdZaH>1;IH)s zu5e2;Lg`)?FN=nIr(qI9+8sfW)Hfu2+J}dT3hQcYH$N+_`F^^mC|x_lNAI{9F|sFP z@I7T*bhZ%;&Q+Pw)B7}}m&uGd)qhxCv65S;RQ=Gnz$vnLu)zr36< zIlDRx>i2h}*>s)^cQe=l+pXK+wC z3wpSmpYi+Pl}Wl|@a2oBU)w=--9?7}uyX*SM*HJHxON9aZ%rg;|NE=@5mwPdj;0PuRS;2E!bXWHOH@w{+?rSA0EsD$0qNH<+OZ$TvXLLChi7X)ijJ0l$ zwJQN)|JCgDzuoM$-uns^>nu3ImE?Is=P@WNvY?-Hw)yJa)!9ucQSk97_i}Gwk`OidxN&^Q8A@08t2MfNKiQ3W;xHlc zsNgbsWiMWT5)tq6=By~AGmXKjr{iE1v#ST^_i-XQ8*{r6KmdCt?Xy+4&jL&zGW)8h0HI2>!&$RtJ&u9fQ#|VNRA9i4ceZJHc2ZNho6O0D|(^qx&wb z-`OVi=4>$mN5Wmw;g6C2C=K(|tX!QK_yC5MoSlI8AM?v_$W+iTtd2*A3@*3(p8E}7 z6J~FF1LpBLqrMeOX{JjYXQNT4j2@W^dK6O)oH% zdgxF;aXZcI8S)i+CXgid*r#`|?h~l$f8f&H+Pg;!CguY^$&Xo`p5XFzDRwXluYV6l zp?--6%SVl^yRrY`+pN>Fvc}ltWW(^^wy@c*M7z|qt#i8^gaA%M;{)1ykPCLF`45pd zhr%9qZH48sl~TaHrM2?kwYC1=!iPn}BwTMji0FCJY2Whancg$|{TQdP$8ab5^*ng1 z1Pyq0rabU~G4G}##t%3@g1AK}yFzz#J&?4!8A?9#IUSrK9-lv5NeUR#_DO*JVawZ$ zrlwg=&&R55J_SuIeKq#NcXN1-56_D%{ytcqVvV_&sgOpc{HzB|o=^+-y_pe>UO!2H zw-zL6zxKLwM8>rU(ABsJfkao9X70&6CE@w#8q0RxtIi4l6T;?y~? zlUDBtG)Zl>H-D8_o~mPKuNrH7mGs1rr(<<6rZ11-FWK?G`0P< z6`2x@>bZ?Q^*Qd6%%GL53U-nY0}J@{J@}wR0g;vY%4cLnXMu%NyU5Gz7co$1gusoB z`Jex0B@hN{yPbsieP_F!GM6y3*?#n=MEK$nI+0E9F}zir+S&+z_~i@ib1VAt><<`{ z!WhoSH88=*5yFPIWM5ayQD1t*ff%1vG9uv=?_cuQ&C1s-$%oLdldik3Du}D3OV~QB zfEQmSinjgL9A0Vv798hc*!yr?D_0pup1)lx!PVXL`VDs(O~u@qhB?jxc=s)kFM)u^&Le=cs3_ zent@7mt{IiQi}Fil4!kh>%MeYO*Py|F5;eO0joFbc(Eb}BDuVl7$G{pPT~5+{%ag# z*ZP(J5WDKRHO;n9=qQp&-disY(eX;s4M%_xFCk2DZ6wg&IoT7;&Yar6qx8>>sYh4c zfzSB8lrrE`Z*p2pS_kep?E*06nVw9vm{S+SRDm&^17knjt5E70+(6>p7WFB%u6RkO zRvyg5-R>ILlB&6tSO zGGN!~$`mva*h!tN>kSv@idVd~gw1_Rnz)*oi_TDb-5)I@MfwrJOC7)R&-qm18P&Fh z&*LFynsCK*{TM0Ny!v?1_Xa;6K?29ACSzaft!rO`C|`KvFjs?#NOZ(B-a_hLTW;!X)@>pZ=b zT)>@v7g-_u+dIEDEb7y8s7_Q>U`xc~xvShGB7C7;)uV%)EgKsNDRUuwm5K-Dwxc?4 zW3@lm)rQ96g7^yv!uLk)wT*8*DSSutV|R9&v<$$0Sj>#D{XhP2Bn7DezpakDPeQXA_3`cgyY$*j62La=IU{FxUk~`24svDfC zqF5X0_e^yUq`A_k&h9=)-T;yvFk1%$d4nqmXP#l9z%MiuBX|;c$wyunAYbtaJd3izR5DAI=YDapYoD2tcc?JmtU)m z5WCjjkKM*HzQOVj&MKJNU@FR*D0Qp@t@o~*$I}Zyg_VOL!3&}tH562BJF{P9@EHsG zidrlZg9l5+*#nEk&P)S$vOBjq>NmJ_GG%yARM2y5qKZWUfu9#OEd^^0c)5tRmD473!Cf+++|b$uLj5e zaWgC=wm%p2vYhED+IApaf2Hmat%`eP;7lLr#6m944PGVdW9smD4_?u&aQyCf*pC~f z{gBnU0CpoA46W7Zk^@Oklv}QBaGUSL{5|o!x|Sep*NAX@`^^hv&)3+Q$7XH zJRDD~?jq1o)z@p8U121scN1dP^}5nWVk^=i4Q7-eFnw3^76j&%DBP0(Tl<*E>cd}A zufbM+ObDR=aa&D?7q)YnMt4c4P!e;+II%gXCOu1@7k9aCvSUZ_?XK?ZD;J?bfpjRn z$GYFu7U-@#eopOszqzh^S|1D6WEqG|CWe4b&(XLA5lb(-v)%X2EC?%GiM^P!JPt4o zUek+g$AO?#auIOGD}+UY5VvlvWO|O|1jF`jLX4wB$nbsGU}_rC2sV9$s+iPHU*F`< zLNaqpjt>5_PdLAa09WHa|m%+QNbA17{ZsPj>WrBY$pveO$rN_Yqb z6cDp21iQrCc@3^M!kfob0yA2lvvj6Ykfyw^VKQg*-OZ_w>RmTKA9{L^DD?I1gLv+! zF#`WL+V%EzM0q(Ll?TR@@E^_zfV>CVX2>2txRKp#F|NtWd#!41GJDaK_2*0Mi%`kf z*MC#@_n+X{L`k8pIJB|~*iRHCKeuv9dt&esh_ZVJ-mE~$ke)}@D2vobHma-#GbY!+ zi}O{!1$AdnS*`9G52jzl{`#UlBjA(g=dG{;cf8zm94*W>ZV-1Zvx@6i4Dkk5@m|>x zdM&r3$>ZzLt~}m1r}q~9i~`GIb_?9yuFXW7@w^)kNblSwtiL;^qyp60;K%E8!B#$& zl^sEDx0&ayZ1piuQ&t$ z*LbVAMy_A4r@r|Y5W@-mafT$aQhlg8KFYOZyuY1J`xc z1>RQpyo*LEBt~Fklb0T!p@vHAr&0!%o*VxsCG0(rxZK7F-+d_G!WO>243e9$w+|%} zzR~)x6a29jqlm^Sl|xWC5SLFZ*rXSK9eE8dubM~%_m&>USnD~N*#Axu^)xxyMwa0Xsv%~2JJ>LC7*M7s-mK3;A6-b@D^`;G#d)Y4 zSFoR~z&mDMsNUHUY03W18tM(h=3PpAmxWv`{hYjy!HQWoi0`0&Y&K7JY)c>L&efHblU49SOjU>!8%WghcM*g3cT6k&d! z)r?dsB3rJXWemp1E)D)*Q3GYm_cux88{hmRWMc<0G*88Xi-}LNs7Q64S`A)-u8+1l z_bHaDv@Y@Z!8{TdCIBm>s5}ihEsIqrCs|yL>&Kn>YJ2F|$GqA~P&=8RKrhH%#cIvU zNTzMRm|9#*Y&iI>!gpzpalt>D=eAkcYo^C5-H%PgNw-IF+9h^h8h0S;AWo z*7dZZL-p0!!P1Dfip`UxJaE_D+q=YTDDFgCLDN@wWKrqZ*BMJY(@B^?Bbio83O9>-2;z`RJi2=)4oaDBKxG+d_-JOt{*D{o`}k-IhC+HuU9YaY>eYtc8b0u@3S zUh76#jKS>m{(`&<3^kV)gV_@jF8OutUk3hi^s>=!tKrW--kF(suube&pW-fDY)Vpc z!rf13Wr0ZZRK9j`Dv!a*Nb4bhQAS^%eidL+GQ*^qDICct9Ut>~) zO{?N3U>!_ZlAv$`{K=bls{_lo{s_$mP?ueDD#5EehzAlXpYlgXk@4uT{iZCm=yPNh za736um%UacMaTz3h1mLWF_z^_g`tcf&iWpgS>{_z4{Z1kihMTsJhz=8{p8I3{)sk0 znARo1D!HO_ck7;uKj2TAT1XwX1(8Egj{R)BvzJLKp1*c|9x7u<=t=xd(NAdUWpAJN zwADG0U(+p`^KUj>{*x5i{E}Esb~ZCt44Q}Kx%&-;6xDlBV_Yd~85Yn>A=63eAtJ+# zN(ehQGh^q79?2ts`!`m}V+tfLESQehw=;>u)uEm2Mqu4N5?mTA`zLVchum-tyjCxV zw3u^}>=k3<+8fTpz!-+3;15uI;?Xe|ph zQ(>B0$VJ<^LoD^uG(Dr&8gAal5B`BQpv@XX_vI8FPLZdjCFr`|zosK(43rd!;h{wY zmSo%ErD^N;KdkjP!V(waVOfi z>1DP_yUv>j=8JT@9T&L4UUyIFK@4f{tPy&48rco&Rj9o43Fl zC%|L0M(?A?4#WKsQpdm4W0oXZf{$JFgF0a;yoBtNtHx%dpvmOo%~Bk5vhh?~PY<2o zbyv(Xj&=>J^2LE*jba+vd@kePLH;alP%o?G+R>hYRzyb=Iq3NbvEUb9iFZd!>^S(@ z92KzbFB>{{ppxPKDHPAi=RXD-STv=Y#K*F6_Wk_NYxNAM_@nFS5fNpVEzvqy>?N+L zvhBL!6?GD7^%@ikBK~BKyKP_$#b(Vyp@#f-iK%$wr!lf7pRwV;-*+EX{g=0Y)~Y{} z9Mfz0*nQq$jlUu9(c`;sR#2l{x3Y!hOokCdQ@BFp*@TB)J|}W^uR{!6tN(#W66qFr zQhf6efp4z@HT9K1==nyZPK7v2EOn^fWrQjMb2Rk~ zxCA8)ZL3cZqlfD6CcErDNs<~@Yg5`={vy6q6Qwp#*+F;;k8i{&6Lq)hIByVij*SNZ zV9i%|mLgz-+>);s0x&ug>6SZ0MNJ1Gbu53R74+%sE8an$wy6_= z1*q%aoIWOUe6|}dX98>aDeveJAM%2it7IL9wk4}^i5&?P;0$-+R(>;cWSe;?X^$Y6 zBs_>YrtZ}GZLzM9I>qVy8T7-GhP^nUf%Lsxkj^(G^^RzyGEAPK-kzJI^J|^@qT+RJ zFrY|xV!?AfOGGjeieX&V9W?^)4tShNd>~-OMOzb~H{lliUE>#paUjdxgIVMr^kp%w zD^B7-g$FH|I>>jzVG|mDX7!#vKXHr)=G@%P$(zn$r5&7%8KZ4a@jgUiS6%6 z7@%&qm3rR!j2uAM^6ICzCEgf{R?fOH8J;@(f(#5IzI(uc;j?WUEbTOebejMH`Sb0VomD@V=8&rMU)Rr*zGeQlR zr(0tE! z{P>>bPIoDM4t$uVkOlme3O_%fKZBY8zRwXI1u|Dn7OWAlpD)GlG~HdVo7g-}8I4!d zGA%~_c(yj07#BRP2F2UPGbukLQXhT#j!cEcuz3~EA!D~b5+s(M@e6#$GT#eo#K7M& z41q&?XVKIHvOLaZVCoCg5m>%h_gL81W&Q1(5>P2MEXOZZ_Ia+E1)fRLWzV!gP_+vh z!7%T9T5)txv~=L$_#uC7Q(66y&RDLtj|k)x&$}{O{B{y_*>j&@wcO2>wTj6l~l5=*JP~&~IMPx;CVE zq`O$eu5f>>`=k~@fp04B%Z8m#+iJkT5F+Z)3d}SZf-* zv%tO0d{kfi_ja?$_bE4@bk!KGk${<~x8M%%{&(-XTZ^Lf2+XvMu9G<{mTj5xmSL-jYN)046%YdL}{N2$67La z#HnP&Uw-M{6jC=35QK=1flIHD^`BS9vojyn2(Hlx#5+GeVcB0CT2uV?AZ?dS=a;b2 z!3gZ@avbx6ArHPhp`+K@if3rEg#$4W7UKvzD0e0Euj|pa_l}A_ywG*R2}p^=ZM}{-@Ap`{WYnx7DG5YBz>tveT`J7GF@sx!e}CH zkwQaSSVjwXZEf_SSh&R-pHif)9yB&+&?knVCK1NyTs;%S$Yi zjNT0EL5XqDEw-P=5SAka5(aiT%?@OIwrPYidk_hMS*LK2z%HhwgJ02DQ2sOHs=cs1@jY_=uc0ay)r^g zp&Hd79>z_yefm9Y<`Ja?;t{`!>5+8V3)n0At#W)B6D#{^@OE(d$5Mn<#aNV`&i6hVHfXA&ekIQF9+ z3H9her%)!zqp$4&K!4LEeSBno=&@8lH*t*|u*)J9jdt4fZcSjH&=JWRW6abH#4`0@VZ^aN*F6oT4!?fZ={lU$oBTBBr{r94d^(!%WbJ_h2b~AWGS5db$KvIy+dJTO3WN~Dsqx(SDP@`kM_N; zKAqsZk6L3s357T9pEH2}8tXKm;ma``V|v#X0e%h8XN-LsBs+?qCe~x8mcpJhJwo;D zBHl)>bAVeTEE%aE|9qIPIN$#->-9hC23u6F(M)(5I_xp1n|D->q5v3wOe0hXmN6X* zlL?=Nn`^>6A@tADS^P&7TMToi?hBcxug)KGJ+Y+=F=(88vw#y-hd|qP#Gw2S`O-s^ z*R=-8>JjRPE8oHwly!)XS64BjI$>>gscn3X$Cu_EeWImAZS*jqsRT0J{wJb;wQjgE zG)NHcry@zKsY~x4=Q5R_)jlf#<~|rB~GBdy?lK_I{Z53Gk5KvPa1u#(tYNlIu9nu zpAI@Z>W0FFUtm7s)+4lPH7(#~4h=Tpe=W&XeD@=u&*O+RN6bH5p${^dCY+tESnfT= zSH5uN!%1c7X?&700M9{mU4(WnqmZ}KXdR&f_~a@&%kOe)#H{B$trWZHLNimcqHsM zErO>^Xz%c!Y?~UGIHDYnkyu}{(y6;vQA7~kpZ0)#Zbqx%Q~y;`DOuSM+Fw*hTjQeS7ruPj9Oe4uBUX;OKIX+PZ62BCwnX5yxk*4g_)IaG^Y0blx)+3( zs>WFCSEYbbDbG$1gkJY6t=>DNaS>|*@posWP3Gh>{c)=g6FFr6; z8*^^G^4Z)lnF=~~x8XMSi@44<+{J8P(F2ZVjC)@7Q)z~$OrwZ^!vtIRM!+z`KW1{ zrciKHzEK%#=K2hub3s@FVwXI_K4wpR5?PF~Wf%E#n=iCqtc@e4hK-O;K%N00)89K~z9+TpfdAaC{&G7=@LGQ7!_? zDDoPYSAg6LfRmERd-kQul{|i`kd}_fOPJVnAHJZR*+QSTk~=FZPszU7M^ynaUf-Nk6>fvLElO> z`?p}HmL9*8`rFB)jzO@Io@ZBLz^!r5gI*TaCEV+dLz*Z2!C3suTgRgF)~!4S1DzGl zDdUDsukh9Rw3>fi&~Thex}yX9FcX;;hV@s66BPzKMkmD?H7+t$^X|Yt1zX1YRRr-= z((%W^2!+cPKkWrASvSxz5OUS}oZYvxNhUf~gyiNgBOlm6_B?9y{NQx5jKl5e*{_+$ zVKoN|kdpOvt7dkq?}2NfAC^+hJQSIygspy*xu>my0l&CBYDl8wAEq?krvIW${;)KU zbm)lkDeXr!z1Uh+{`S=im0-~xro~k5-5k$Fk&&ovqo0pg)q35WG38&zWw$A$xKgf| z8PL^Cg%fzXuYIwOzp=ZKW?d;dxm78cUp!3wEn=qyJvk1elrmo}-|;Z5s{2+Z)s2+N zx)muc`pq+Q~EUAXjkkT$l2{~QOl?vep(iFz8#6$(gRmeDu7p%mzfpyv5@|}>@ z`@Qy&t6Nz6R5zG7MqV$vs(zV`CMYw`rlS(|BiWo{iTT(fU1H6jCKMI_FO{Ga!gtFg z3Q1>Sc$-vE zll(UItA-|3V006WwypNc+b6tdOX8+8`+JxxQj5b6Za0&3>P{^gerAw<2$j&3hzsT%1<4WVB8b^WW(m!13MXuTWL6Wg2cRU%QPP{O*^+r60KTZ{ zc;Rm3ZopZa?ZyN5<8QRliuB7H*Dd=2k4ZDSHqRJ{&dEVN%1KOLP5HrL{HQkXEI1ua z9Q~rkPOm%x7%(%YynX`J>_lARb&9cBmY*s)|vpSEk1Sq9^Y$+ehR_&Zwc z;I~!zD9c`D*B2UT4mi$MMgzt5f-Dp0a%R$a5$n!>x}?tnG&lH$I=WufJ{g~FO&HpYrKuWL8{!+BRa9?Zm98(y{3%ZD5$g0xz^DNf#KKUk0UzP*TD z)z~K$lC+BwJRmoh)^3?1N8$izSRE>~jJ27IaSyv=a6WU z?6oocfW&((m8*AICf%%uh5ar!dZ1X*!j z_6bBlU96ITmEpWYp+mdPgQQ3;mUc$P^O1f(RMKN9w@PJ=d|lB(nClTeDm#R?E18_o z#b@O)@)fBlV%ty#PP)cOyxQHvciaRykWlquCy83aYLr@%Ae^9ZL;5TUW zXqB7U@!rLeLc=_EIo-dM|KzjoGa+47+p(X^*okCr7?nN2smn!ljjAcqtty;%<}p|7 zE1hDDlICQAK*uo#Jyps;sc6`|$gEn=^|wq-eMMP2LeF7C#<7fHi76~>-^;We2qG zCuhVgKCAg8D!#+D0c@tGupXkAaHFLFDJBBr6TNR&xxO3-7@14QDM;W56*$=NY7r>k zxpfl^ncQX)%*7HC^_mDO(o4sO2kN$b<&FWU;`y?ZV1`8l9-1b1cKn>D5$WTjp?FbV zo}0YtaZ%ggOKJxl9LnVgvE9w$LPcBF5VsNcw4(s6Z!jI^l5j*ttJXfLz(h=rwttSj zoFx-wEHbqV(3&XIwtEc42po3IEnuSjm)Lmm2$-%gbA|73@{{w^22~9EZg)dvWzGbi zZsptom5;K{?GZ;bSzo7XrQui!KAm&Q2b0`pE(yA*X|wd7XXqL7JhWpL{M~b6ITwwD z+9lFD5pO8nX z<_W-Jxc3LQ>M`b@wZ{ZRD;>5M#YXsH^tPxlvuts2wz#4%y0&4`;2>kyO QfH9t~_ptRFKOBJjH?3le4gdfE literal 0 HcmV?d00001 From 4eff860abe681deacb6cd8db090adeeac67f1a2a Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Tue, 26 Nov 2024 22:26:16 -0500 Subject: [PATCH 08/16] ENH: Add anti-alias-cuberille pipeline For 3D printing, etc. --- package.json | 4 +- pnpm-lock.yaml | 10 +- pyproject.toml | 1 + wasm/CMakeLists.txt | 1 + wasm/anti-alias-cuberille/CMakeLists.txt | 60 +++++ .../anti-alias-cuberille.cxx | 227 ++++++++++++++++++ wasm/cuberille/CMakeLists.txt | 10 +- wasm/cuberille/cuberille.cxx | 16 +- 8 files changed, 311 insertions(+), 18 deletions(-) create mode 100644 wasm/anti-alias-cuberille/CMakeLists.txt create mode 100644 wasm/anti-alias-cuberille/anti-alias-cuberille.cxx diff --git a/package.json b/package.json index b1d0d22..33434c0 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,11 @@ }, "devDependencies": { "@itk-wasm/dam": "^1.1.1", - "itk-wasm": "1.0.0-b.182" + "itk-wasm": "1.0.0-b.183" }, "author": "Matt McCormick ", "repository": { "type": "git", "url": "https://github.com/InsightSoftwareConsortium/ITKCuberille" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6c4aad6..0d72ce5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^1.1.1 version: 1.1.1 itk-wasm: - specifier: 1.0.0-b.182 - version: 1.0.0-b.182 + specifier: 1.0.0-b.183 + version: 1.0.0-b.183 packages: @@ -326,8 +326,8 @@ packages: it-stream-types@2.0.2: resolution: {integrity: sha512-Rz/DEZ6Byn/r9+/SBCuJhpPATDF9D+dz5pbgSUyBsCDtza6wtNATrz/jz1gDyNanC3XdLboriHnOC925bZRBww==} - itk-wasm@1.0.0-b.182: - resolution: {integrity: sha512-OIbrbXosSM3ks4iJv0AApWu3SDZab8vpbzG8pyLtzKw8VouYLoQ2r2HnmLo4+mUWZ4UOSJuqflZnsVnOXw50mw==} + itk-wasm@1.0.0-b.183: + resolution: {integrity: sha512-B3/W8MqKZ3KOl+96W1CvgAJjOmlqsac7iaEooP98k3yzH04oAsuyh3xZooOxDVNCucEdIj2Zt7lALbdFv+BoPQ==} hasBin: true js-sha3@0.8.0: @@ -895,7 +895,7 @@ snapshots: it-stream-types@2.0.2: {} - itk-wasm@1.0.0-b.182: + itk-wasm@1.0.0-b.183: dependencies: '@itk-wasm/dam': 1.1.1 '@thewtex/zstddec': 0.2.1 diff --git a/pyproject.toml b/pyproject.toml index 5f56a40..9e95c92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -332,6 +332,7 @@ cmd = '''cmake -B$ITK_WASM_ITK_BUILD_DIR -S$ITK_WASM_ITK_SOURCE_DIR -GNinja -DModule_ITKTestKernel:BOOL=ON -DModule_ITKIOTransformBase:BOOL=ON -DModule_ITKIOMeshBase:BOOL=ON + -DModule_ITKAntiAlias:BOOL=ON -DH5_HAVE_GETPWUID:BOOL=OFF -DModule_MeshToPolyData:BOOL=ON -DDO_NOT_BUILD_ITK_TEST_DRIVER:BOOL=ON diff --git a/wasm/CMakeLists.txt b/wasm/CMakeLists.txt index 777f622..65583b1 100644 --- a/wasm/CMakeLists.txt +++ b/wasm/CMakeLists.txt @@ -20,4 +20,5 @@ enable_testing() # Begin create-itk-wasm added pipelines. add_subdirectory(cuberille) +add_subdirectory(anti-alias-cuberille) # End create-itk-wasm added pipelines. diff --git a/wasm/anti-alias-cuberille/CMakeLists.txt b/wasm/anti-alias-cuberille/CMakeLists.txt new file mode 100644 index 0000000..44c8c19 --- /dev/null +++ b/wasm/anti-alias-cuberille/CMakeLists.txt @@ -0,0 +1,60 @@ +add_executable(anti-alias-cuberille anti-alias-cuberille.cxx) + +set(io_components) +if (NOT WASI AND NOT EMSCRIPTEN) + set(io_components + ITKIONIFTI + ITKIOMeshVTK) +endif() + +find_package(ITK REQUIRED COMPONENTS + WebAssemblyInterface + ITKAntiAlias + ITKSmoothing + ITKLabelMap + ${io_components} +) +include(${ITK_USE_FILE}) + +target_link_libraries(anti-alias-cuberille PUBLIC ${ITK_LIBRARIES}) + +add_test(NAME anti-alias-cuberille-help COMMAND anti-alias-cuberille --help) + +add_test(NAME anti-alias-cuberille-defaults + COMMAND anti-alias-cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/brain-seg.nii.gz + ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-defaults.vtk) + +add_test(NAME anti-alias-cuberille-convergence-options + COMMAND anti-alias-cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/brain-seg.nii.gz + ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-convergence-options.vtk + --surface-distance-threshold 0.01 + --maximum-steps 150 + --step-relaxation-factor 0.75) + +add_test(NAME anti-alias-cuberille-quadrilateral-faces + COMMAND anti-alias-cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/brain-seg.nii.gz + ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-quadrilateral-faces.vtk + --quadrilateral-faces + --surface-distance-threshold 0.5 + --maximum-steps 150 + --step-relaxation-factor 0.75 + ) + +add_test(NAME anti-alias-cuberille-bspline + COMMAND anti-alias-cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/brain-seg.nii.gz + ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-bspline.vtk + --surface-distance-threshold 0.5 + --maximum-steps 200 + --interpolator bspline) + +add_test(NAME anti-alias-cuberille-windowed-sinc + COMMAND anti-alias-cuberille + ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/brain-seg.nii.gz + ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-windowed-sinc.vtk + --surface-distance-threshold 0.5 + --maximum-steps 200 + --interpolator windowed-sinc) \ No newline at end of file diff --git a/wasm/anti-alias-cuberille/anti-alias-cuberille.cxx b/wasm/anti-alias-cuberille/anti-alias-cuberille.cxx new file mode 100644 index 0000000..04f26b0 --- /dev/null +++ b/wasm/anti-alias-cuberille/anti-alias-cuberille.cxx @@ -0,0 +1,227 @@ +/*========================================================================= + + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ + +#include "itkMesh.h" + +#include "itkMeshJSON.h" +#include "itkPipeline.h" +#include "itkInputImage.h" +#include "itkOutputMesh.h" +#include "itkSupportInputImageTypes.h" + +#include "itkCuberilleImageToMeshFilter.h" +#include "itkLinearInterpolateImageFunction.h" +#include "itkBSplineInterpolateImageFunction.h" +#include "itkWindowedSincInterpolateImageFunction.h" +#include "itkAntiAliasBinaryImageFilter.h" +#include "itkSmoothingRecursiveGaussianImageFilter.h" +#include "itkBinaryFillholeImageFilter.h" +#include "itkGrayscaleMorphologicalClosingImageFilter.h" +#include "itkFlatStructuringElement.h" + +template +int cuberilleWithInterpolator(itk::wasm::Pipeline & pipeline, const TImage * image) +{ + using ImageType = TImage; + using MeshType = TMesh; + using InterpolatorType = TInterpolator; + + pipeline.get_option("image")->required()->type_name("INPUT_IMAGE"); + + double maximumRMSError = 0.07; + pipeline.add_flag("--maximum-rms-error", maximumRMSError, "Maximum root mean square error for the anti-aliasing filter. Smaller is smoother but takes longer."); + + uint32_t numberOfIterations = 1000; + pipeline.add_flag("--iterations", numberOfIterations, "Number of iterations for the anti-aliasing filter. Larger is smoother but takes longer."); + + double smoothingSigma = 0.95; + pipeline.add_option("--smoothing-sigma", smoothingSigma, "Sigma for the Gaussian smoothing filter in pixel units."); + + bool noFillHoles = false; + pipeline.add_flag("--no-fill-holes", noFillHoles, "Do not fill holes in the binary image before anti-aliasing."); + + bool noClosing = false; + pipeline.add_flag("--no-closing", noClosing, "Do not close the smoothed, anti-aliased image before mesh generation."); + + double isoSurfaceValue = 0.0; + pipeline.add_flag("--iso-surface-value", isoSurfaceValue, "Value of the iso-surface on the normalized, anti-aliased image for which to generate the mesh. Pixels equal to or greater than this value are considered to lie on the surface or inside the resultant mesh. [-4.0, 4.0]"); + + bool quadrilateralFaces = false; + pipeline.add_flag("--quadrilateral-faces", quadrilateralFaces, "Generate quadrilateral faces instead of triangle faces."); + + double projectVertexSurfaceDistanceThreshold = 0.01; + pipeline.add_option("--surface-distance-threshold", projectVertexSurfaceDistanceThreshold, "Threshold for the distance from the iso-surface during vertex projection in pixel units. Smaller is smoother but takes longer."); + + double projectVertexStepLength = -1.0; + pipeline.add_option("--step-length", projectVertexStepLength, "Initial step length for vertex projection in physical units. Default is max spacing * 0.35."); + + double projectVertexStepLengthRelaxationFactor = 0.75; + pipeline.add_option("--step-relaxation-factor", projectVertexStepLengthRelaxationFactor, "The step length relaxation factor during vertex projection. The step length is multiplied by this factor each iteration to allow convergence, [0.0, 1.0].")->check(CLI::Range(0.0, 1.0)); + + uint32_t projectVertexMaximumNumberOfSteps = 150; + pipeline.add_option("--maximum-steps", projectVertexMaximumNumberOfSteps, "The maximum number of steps used during vertex projection."); + + itk::wasm::OutputMesh mesh; + pipeline.add_option("mesh", mesh, "Output mesh.")->required()->type_name("OUTPUT_MESH"); + + ITK_WASM_PARSE(pipeline); + + using FillholeFilterType = itk::BinaryFillholeImageFilter; + const auto fillholeFilter = FillholeFilterType::New(); + fillholeFilter->SetInput(image); + + using FloatImageType = itk::Image; + using AntiAliasFilterType = itk::AntiAliasBinaryImageFilter; + const auto antiAliasFilter = AntiAliasFilterType::New(); + if (noFillHoles) + { + antiAliasFilter->SetInput(image); + } + else + { + antiAliasFilter->SetInput(fillholeFilter->GetOutput()); + } + antiAliasFilter->SetMaximumRMSError(maximumRMSError); + antiAliasFilter->SetNumberOfIterations(numberOfIterations); + + using SmoothingFilterType = itk::SmoothingRecursiveGaussianImageFilter; + const auto smoothingFilter = SmoothingFilterType::New(); + smoothingFilter->SetInput(antiAliasFilter->GetOutput()); + typename SmoothingFilterType::SigmaArrayType sigma; + for (unsigned int i = 0; i < ImageType::ImageDimension; ++i) + { + sigma[i] = image->GetSpacing()[i] * smoothingSigma; + } + smoothingFilter->SetSigmaArray(sigma); + + using StructuringElementType = itk::FlatStructuringElement; + using ClosingFilterType = itk::GrayscaleMorphologicalClosingImageFilter; + const auto closingFilter = ClosingFilterType::New(); + closingFilter->SetInput(smoothingFilter->GetOutput()); + typename StructuringElementType::RadiusType closingRadius; + closingRadius.Fill(1); + const auto closingStructuringElement = StructuringElementType::Ball(closingRadius, false); + closingFilter->SetKernel(closingStructuringElement); + + using InterpolatorBaseType = itk::InterpolateImageFunction; + using CuberilleType = itk::CuberilleImageToMeshFilter; + + const auto cuberille = CuberilleType::New(); + + const auto interpolator = InterpolatorType::New(); + cuberille->SetInterpolator(interpolator); + + if (noClosing) + { + interpolator->SetInputImage(smoothingFilter->GetOutput()); + cuberille->SetInput(smoothingFilter->GetOutput()); + } + else + { + interpolator->SetInputImage(closingFilter->GetOutput()); + interpolator->SetInputImage(closingFilter->GetOutput()); + } + cuberille->SetInput(closingFilter->GetOutput()); + cuberille->SetIsoSurfaceValue(isoSurfaceValue); + cuberille->SetGenerateTriangleFaces(!quadrilateralFaces); + cuberille->SetProjectVertexSurfaceDistanceThreshold(projectVertexSurfaceDistanceThreshold); + if (projectVertexStepLength > 0.0) + { + cuberille->SetProjectVertexStepLength(projectVertexStepLength); + } + else + { + cuberille->SetProjectVertexStepLength(image->GetSpacing().GetVnlVector().max_value() * 0.35); + } + cuberille->SetProjectVertexStepLengthRelaxationFactor(projectVertexStepLengthRelaxationFactor); + cuberille->SetProjectVertexMaximumNumberOfSteps(projectVertexMaximumNumberOfSteps); + + ITK_WASM_CATCH_EXCEPTION(pipeline, cuberille->Update()); + + const typename MeshType::ConstPointer outputMesh = cuberille->GetOutput(); + mesh.Set(outputMesh); + + return EXIT_SUCCESS; +} + +template +int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) +{ + using ImageType = TImage; + constexpr unsigned int Dimension = ImageType::ImageDimension; + using PixelType = typename ImageType::PixelType; + using MeshType = itk::Mesh; + + using FloatImageType = itk::Image; + + std::string interpolationMethod = "linear"; + pipeline.add_option("--interpolator", interpolationMethod, "Interpolation method to use for the image. Valid values: linear, bspline, windowed-sync.")->check(CLI::IsMember({"linear", "bspline", "windowed-sinc"})); + + ITK_WASM_PRE_PARSE(pipeline); + + if (interpolationMethod == "linear") + { + using InterpolatorType = itk::LinearInterpolateImageFunction; + return cuberilleWithInterpolator(pipeline, image); + } + else if (interpolationMethod == "bspline") + { + using InterpolatorType = itk::BSplineInterpolateImageFunction; + return cuberilleWithInterpolator(pipeline, image); + } + else if (interpolationMethod == "windowed-sinc") + { + constexpr unsigned int VRadius = 3; + using InterpolatorType = itk::WindowedSincInterpolateImageFunction; + return cuberilleWithInterpolator(pipeline, image); + } + else + { + std::ostringstream ostrm; + ostrm << "Unknown interpolation method: " << interpolationMethod; + CLI::Error err("Runtime error", ostrm.str(), 1); + return pipeline.exit(err); + } +} + +template +class PipelineFunctor +{ +public: + int operator()(itk::wasm::Pipeline &pipeline) + { + using ImageType = TImage; + + itk::wasm::InputImage image; + pipeline.add_option("image", image, "Input image")->type_name("INPUT_IMAGE"); + + ITK_WASM_PRE_PARSE(pipeline); + + typename ImageType::ConstPointer imageRef = image.Get(); + return cuberille(pipeline, imageRef); + } +}; + +int main(int argc, char * argv[]) +{ + itk::wasm::Pipeline pipeline("cuberille", "Anti-alias a label image and create a mesh via cuberille implicit surface polygonization.", argc, argv); + + return itk::wasm::SupportInputImageTypes + ::Dimensions<2U, 3U>("image", pipeline); +} diff --git a/wasm/cuberille/CMakeLists.txt b/wasm/cuberille/CMakeLists.txt index c3b3029..02de434 100644 --- a/wasm/cuberille/CMakeLists.txt +++ b/wasm/cuberille/CMakeLists.txt @@ -15,7 +15,7 @@ add_test(NAME cuberille-convergence-options --surface-distance-threshold 0.2 --step-length 0.24 --step-relaxation-factor 0.95 - --max-steps 100) + --maximum-steps 100) add_test(NAME cuberille-no-projection COMMAND cuberille @@ -24,7 +24,7 @@ add_test(NAME cuberille-no-projection --surface-distance-threshold 0.2 --step-length 0.24 --step-relaxation-factor 0.95 - --max-steps 100 + --maximum-steps 100 --no-projection) add_test(NAME cuberille-quadrilateral-faces @@ -34,7 +34,7 @@ add_test(NAME cuberille-quadrilateral-faces --surface-distance-threshold 0.2 --step-length 0.24 --step-relaxation-factor 0.95 - --max-steps 100 + --maximum-steps 100 --quadrilateral-faces) add_test(NAME cuberille-bspline @@ -44,7 +44,7 @@ add_test(NAME cuberille-bspline --surface-distance-threshold 0.2 --step-length 0.24 --step-relaxation-factor 0.95 - --max-steps 100 + --maximum-steps 100 --interpolator bspline) add_test(NAME cuberille-windowed-sinc @@ -54,5 +54,5 @@ add_test(NAME cuberille-windowed-sinc --surface-distance-threshold 0.2 --step-length 0.24 --step-relaxation-factor 0.95 - --max-steps 100 + --maximum-steps 100 --interpolator windowed-sinc) \ No newline at end of file diff --git a/wasm/cuberille/cuberille.cxx b/wasm/cuberille/cuberille.cxx index 337cb7b..155c56e 100644 --- a/wasm/cuberille/cuberille.cxx +++ b/wasm/cuberille/cuberille.cxx @@ -50,17 +50,17 @@ int cuberilleWithInterpolator(itk::wasm::Pipeline & pipeline, const TImage * ima bool imagePixelToCellData = false; pipeline.add_flag("--image-pixel-to-cell-data", imagePixelToCellData, "Whether the adjacent input pixel value should be saved as cell data in the output mesh."); - double projectVertexSurfaceDistanceThreshold = 0.2; + double projectVertexSurfaceDistanceThreshold = 0.01; pipeline.add_option("--surface-distance-threshold", projectVertexSurfaceDistanceThreshold, "Threshold for the distance from the iso-surface during vertex projection in pixel units. Smaller is smoother but takes longer."); double projectVertexStepLength = -1.0; - pipeline.add_option("--step-length", projectVertexStepLength, "Initial step length for vertex projection in physical units. Default is max spacing * 0.25."); + pipeline.add_option("--step-length", projectVertexStepLength, "Initial step length for vertex projection in physical units. Default is max spacing * 0.35."); - double projectVertexStepLengthRelaxationFactor = 0.95; + double projectVertexStepLengthRelaxationFactor = 0.75; pipeline.add_option("--step-relaxation-factor", projectVertexStepLengthRelaxationFactor, "The step length relaxation factor during vertex projection. The step length is multiplied by this factor each iteration to allow convergence, [0.0, 1.0].")->check(CLI::Range(0.0, 1.0)); - uint32_t projectVertexMaximumNumberOfSteps = 50; - pipeline.add_option("--max-steps", projectVertexMaximumNumberOfSteps, "The maximum number of steps used during vertex projection."); + uint32_t projectVertexMaximumNumberOfSteps = 150; + pipeline.add_option("--maximum-steps", projectVertexMaximumNumberOfSteps, "The maximum number of steps used during vertex projection."); itk::wasm::OutputMesh mesh; pipeline.add_option("mesh", mesh, "Output mesh.")->required()->type_name("OUTPUT_MESH"); @@ -86,6 +86,10 @@ int cuberilleWithInterpolator(itk::wasm::Pipeline & pipeline, const TImage * ima { cuberille->SetProjectVertexStepLength(projectVertexStepLength); } + else + { + cuberille->SetProjectVertexStepLength(image->GetSpacing().GetVnlVector().max_value() * 0.35); + } cuberille->SetProjectVertexStepLengthRelaxationFactor(projectVertexStepLengthRelaxationFactor); cuberille->SetProjectVertexMaximumNumberOfSteps(projectVertexMaximumNumberOfSteps); @@ -106,7 +110,7 @@ int cuberille(itk::wasm::Pipeline &pipeline, const TImage * image) using MeshType = itk::Mesh; std::string interpolationMethod = "linear"; - pipeline.add_option("--interpolator", interpolationMethod, "Interpolation method to use for the image.")->check(CLI::IsMember({"linear", "bspline", "windowed-sinc"})); + pipeline.add_option("--interpolator", interpolationMethod, "Interpolation method to use for the image. Valid values: linear, bspline, windowed-sync.")->check(CLI::IsMember({"linear", "bspline", "windowed-sinc"})); ITK_WASM_PRE_PARSE(pipeline); From 0fa2f5a7349e57046d43f96b4d2e13229becc18e Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 27 Nov 2024 12:40:36 -0500 Subject: [PATCH 09/16] BUG: Fix typescript package dir in pnpm-workspace --- pnpm-workspace.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9aef6d7..27c86b7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,2 @@ packages: - - 'wasm/typescript' + - 'typescript' From cbef021c01b7d1861dfa356ba3c9089c1973d040 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 27 Nov 2024 12:41:01 -0500 Subject: [PATCH 10/16] BUG: Bump itk-wasm to 1.0.0-b.184 Addressing WASI binding generation. --- package.json | 2 +- pnpm-lock.yaml | 4511 ++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 4136 insertions(+), 377 deletions(-) diff --git a/package.json b/package.json index 33434c0..2b32a06 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ }, "devDependencies": { "@itk-wasm/dam": "^1.1.1", - "itk-wasm": "1.0.0-b.183" + "itk-wasm": "1.0.0-b.184" }, "author": "Matt McCormick ", "repository": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d72ce5..2e0a79e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,526 +11,3122 @@ importers: '@itk-wasm/dam': specifier: ^1.1.1 version: 1.1.1 + itk-wasm: + specifier: 1.0.0-b.184 + version: 1.0.0-b.184 + + typescript: + dependencies: itk-wasm: specifier: 1.0.0-b.183 version: 1.0.0-b.183 + devDependencies: + '@itk-wasm/demo-app': + specifier: ^0.2.0 + version: 0.2.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.12)(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1) + '@itk-wasm/image-io': + specifier: ^1.3.1 + version: 1.3.1 + '@itk-wasm/mesh-io': + specifier: ^1.4.2 + version: 1.4.2 + '@itk-wasm/transform-io': + specifier: ^0.1.1 + version: 0.1.1 + '@types/node': + specifier: ^20.2.5 + version: 20.17.8 + esbuild: + specifier: ^0.19.8 + version: 0.19.12 + shx: + specifier: ^0.3.4 + version: 0.3.4 + typescript: + specifier: ^5.3.2 + version: 5.7.2 + vite: + specifier: ^4.5.0 + version: 4.5.5(@types/node@20.17.8)(terser@5.36.0) + vite-plugin-static-copy: + specifier: ^0.17.0 + version: 0.17.1(vite@4.5.5(@types/node@20.17.8)(terser@5.36.0)) packages: - '@ipld/car@5.3.3': - resolution: {integrity: sha512-4vgV5Ml4HCJ2iTx7vYhu0ui+Xxo1HQTtVeYgD+JKd5Wij8TlOFZnxOSickqpLcuf1fdGEStgqVItx15UWfzDYA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} - '@ipld/dag-cbor@9.2.2': - resolution: {integrity: sha512-uIEOuruCqKTP50OBWwgz4Js2+LhiBQaxc57cnP71f45b1mHEAo1OCR1Zn/TbvSW/mV1x+JqhacIktkKyaYqhCw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} - '@ipld/dag-json@10.2.3': - resolution: {integrity: sha512-itacv1j1hvYgLox2B42Msn70QLzcr0MEo5yGIENuw2SM/lQzq9bmBiMky+kDsIrsqqblKTXcHBZnnmK7D4a6ZQ==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} + '@babel/compat-data@7.26.2': + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + engines: {node: '>=6.9.0'} - '@ipld/dag-pb@4.1.3': - resolution: {integrity: sha512-ueULCaaSCcD+dQga6nKiRr+RSeVgdiYiEPKVUu5iQMNYDN+9osd0KpR3UDd9uQQ+6RWuv9L34SchfEwj7YIbOA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} - '@ipld/unixfs@3.0.0': - resolution: {integrity: sha512-Tj3/BPOlnemcZQ2ETIZAO8hqAs9KNzWyX5J9+JCL9jDwvYwjxeYjqJ3v+9DusNvTBmJhZnGVP6ijUHrsuOLp+g==} + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + engines: {node: '>=6.9.0'} - '@itk-wasm/dam@1.1.1': - resolution: {integrity: sha512-7+9L3lrLMKF4y6B6qjs8GqfbpxT0waOJUM14NdMNEA6M+BoBS8fdHREhQHo2s7QMA5O7I+Jv7m+dyqlisGnbdQ==} - hasBin: true + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} - '@multiformats/blake2@1.0.13': - resolution: {integrity: sha512-T1Kzya0wjj85CaVeRSpJ858EnSvW1pw94GSitxYf84VsNdv5XYbJ6QG8y26Ft1bVALzrUCmqkQrR53QHSyu6RA==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': + resolution: {integrity: sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==} + engines: {node: '>=6.9.0'} - '@multiformats/murmur3@1.1.3': - resolution: {integrity: sha512-wAPLUErGR8g6Lt+bAZn6218k9YQPym+sjszsXL6o4zfxbA22P+gxWZuuD9wDbwL55xrKO5idpcuQUX7/E3oHcw==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} - '@multiformats/murmur3@2.1.8': - resolution: {integrity: sha512-6vId1C46ra3R1sbJUOFCZnsUIveR9oF20yhPmAFxPm0JfrX3/ZRCgP3YDrBzlGoEppOXnA9czHeYc0T9mB6hbA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@multiformats/sha3@2.0.17': - resolution: {integrity: sha512-7ik6pk178qLO2cpNucgf48UnAOBMkq/2H92DP4SprZOJqM9zqbVaKS7XyYW6UvhRsDJ3wi921fYv1ihTtQHLtA==} + '@babel/helper-create-regexp-features-plugin@7.25.9': + resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@perma/map@1.0.3': - resolution: {integrity: sha512-Bf5njk0fnJGTFE2ETntq0N1oJ6YdCPIpTDn3R3KYZJQdeYSOCNL7mBrFlGnbqav8YQhJA/p81pvHINX9vAtHkQ==} + '@babel/helper-define-polyfill-provider@0.6.3': + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + engines: {node: '>=6.9.0'} - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + engines: {node: '>=6.9.0'} - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + engines: {node: '>=6.9.0'} - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + '@babel/helper-remap-async-to-generator@7.25.9': + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + '@babel/helper-replace-supers@7.25.9': + resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + '@babel/helper-simple-access@7.25.9': + resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} + engines: {node: '>=6.9.0'} - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + engines: {node: '>=6.9.0'} - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} - '@thewtex/zstddec@0.2.1': - resolution: {integrity: sha512-1yTu7m/qU1nsJy4mCZAB3GAhczsClhw+WIXK0oe598eHcvefH16WLOYN4Uko7K2/Ttz9KEBvvT7WFrZD41ShgA==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} - '@types/emscripten@1.39.13': - resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} - '@types/node@22.9.3': - resolution: {integrity: sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==} + '@babel/helper-wrap-function@7.25.9': + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} + engines: {node: '>=6.9.0'} - '@web3-storage/car-block-validator@1.2.0': - resolution: {integrity: sha512-KKQ/M5WtpH/JlkX+bQYKzdG4azmSF495T7vpewje2xh7MBh1d94/BLblxCcLM/larWvXDxOkbAyTTdlECAAuUw==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} - actor@2.3.1: - resolution: {integrity: sha512-ST/3wnvcP2tKDXnum7nLCLXm+/rsf8vPocXH2Fre6D8FQwNkGDd4JEitBlXj007VQJfiGYRQvXqwOBZVi+JtRg==} + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + engines: {node: '>=6.0.0'} + hasBin: true - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': + resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - axios@1.7.7: - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': + resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': + resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': + resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 - bl@1.2.3: - resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': + resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + '@babel/plugin-syntax-import-assertions@7.26.0': + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - buffer-alloc-unsafe@1.1.0: - resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - buffer-alloc@1.2.0: - resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + '@babel/plugin-transform-arrow-functions@7.25.9': + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - buffer-fill@1.0.0: - resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + '@babel/plugin-transform-async-generator-functions@7.25.9': + resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + '@babel/plugin-transform-async-to-generator@7.25.9': + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - cborg@4.2.6: - resolution: {integrity: sha512-77vo4KlSwfjCIXcyZUVei4l2gdjesSCeYSx4U/Upwix7pcWZq8uw21sVRpjwn7mjEi//ieJPTj1MRWDHmud1Rg==} - hasBin: true + '@babel/plugin-transform-block-scoped-functions@7.25.9': + resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + '@babel/plugin-transform-block-scoping@7.25.9': + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + '@babel/plugin-transform-class-properties@7.25.9': + resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + '@babel/plugin-transform-class-static-block@7.26.0': + resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 - comlink@4.4.2: - resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + '@babel/plugin-transform-classes@7.25.9': + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + '@babel/plugin-transform-computed-properties@7.25.9': + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} + '@babel/plugin-transform-destructuring@7.25.9': + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + '@babel/plugin-transform-dotall-regex@7.25.9': + resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + '@babel/plugin-transform-duplicate-keys@7.25.9': + resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - decompress-tar@4.1.1: - resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} - engines: {node: '>=4'} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - decompress-tarbz2@4.1.1: - resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} - engines: {node: '>=4'} + '@babel/plugin-transform-dynamic-import@7.25.9': + resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - decompress-targz@4.1.1: - resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} - engines: {node: '>=4'} + '@babel/plugin-transform-exponentiation-operator@7.25.9': + resolution: {integrity: sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - decompress-unzip@4.0.1: - resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} - engines: {node: '>=4'} + '@babel/plugin-transform-export-namespace-from@7.25.9': + resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - decompress@4.2.1: - resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} - engines: {node: '>=4'} + '@babel/plugin-transform-for-of@7.25.9': + resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + '@babel/plugin-transform-json-strings@7.25.9': + resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + '@babel/plugin-transform-logical-assignment-operators@7.25.9': + resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - file-type@3.9.0: - resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} - engines: {node: '>=0.10.0'} + '@babel/plugin-transform-member-expression-literals@7.25.9': + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - file-type@5.2.0: - resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} - engines: {node: '>=4'} + '@babel/plugin-transform-modules-amd@7.25.9': + resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - file-type@6.2.0: - resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} - engines: {node: '>=4'} + '@babel/plugin-transform-modules-commonjs@7.25.9': + resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - files-from-path@1.1.1: - resolution: {integrity: sha512-M2JDH/0gHqIsdwTnp8IBMWEYUUiHe9ei0ZMTXLxqKFcGxJF4Ki+nicw2k8HP5KGEzPLTyJ81XwLmP8l8rKa6qg==} - engines: {node: '>=18'} + '@babel/plugin-transform-modules-systemjs@7.25.9': + resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} + '@babel/plugin-transform-modules-umd@7.25.9': + resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} + engines: {node: '>=6.9.0'} peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true + '@babel/core': ^7.0.0-0 - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} - engines: {node: '>= 6'} + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + '@babel/plugin-transform-new-target@7.25.9': + resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} + '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': + resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + '@babel/plugin-transform-numeric-separator@7.25.9': + resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + '@babel/plugin-transform-object-rest-spread@7.25.9': + resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - get-stream@2.3.1: - resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} - engines: {node: '>=0.10.0'} + '@babel/plugin-transform-object-super@7.25.9': + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported + '@babel/plugin-transform-optional-catch-binding@7.25.9': + resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + '@babel/plugin-transform-optional-chaining@7.25.9': + resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - hamt-sharding@3.0.6: - resolution: {integrity: sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg==} + '@babel/plugin-transform-parameters@7.25.9': + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + '@babel/plugin-transform-private-methods@7.25.9': + resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + '@babel/plugin-transform-private-property-in-object@7.25.9': + resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + '@babel/plugin-transform-property-literals@7.25.9': + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - interface-blockstore@5.3.1: - resolution: {integrity: sha512-nhgrQnz6yUQEqxTFLhlOBurQOy5lWlwCpgFmZ3GTObTVTQS9RZjK/JTozY6ty9uz2lZs7VFJSqwjWAltorJ4Vw==} + '@babel/plugin-transform-regenerator@7.25.9': + resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - interface-store@6.0.2: - resolution: {integrity: sha512-KSFCXtBlNoG0hzwNa0RmhHtrdhzexp+S+UY2s0rWTBJyfdEIgn6i6Zl9otVqrcFYbYrneBT7hbmHQ8gE0C3umA==} + '@babel/plugin-transform-regexp-modifiers@7.26.0': + resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - ipfs-car@1.2.0: - resolution: {integrity: sha512-A++1UesxqwfNv14NmFxr4MHi+vD9rR6SWr87MU9o0315Mzqys48pEefL8rlCAA9cw2qKYeT/ZPYVtqIMAr6U1Q==} - engines: {node: '>=18'} - hasBin: true + '@babel/plugin-transform-reserved-words@7.25.9': + resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - ipfs-unixfs-exporter@13.6.1: - resolution: {integrity: sha512-pYPI4oBTWao2//sFzAL0pURyojn79q/u5BuK6L5/nVbVUQVw6DcVP5uB1ySdWlTM2H+0Zlhp9+OL9aJBRIICpg==} + '@babel/plugin-transform-shorthand-properties@7.25.9': + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - ipfs-unixfs@11.2.0: - resolution: {integrity: sha512-J8FN1qM5nfrDo8sQKQwfj0+brTg1uBfZK2vY9hxci33lcl3BFrsELS9+1+4q/8tO1ASKfxZO8W3Pi2O4sVX2Lg==} + '@babel/plugin-transform-spread@7.25.9': + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - is-natural-number@4.0.1: - resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} + '@babel/plugin-transform-sticky-regex@7.25.9': + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} + '@babel/plugin-transform-template-literals@7.25.9': + resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + '@babel/plugin-transform-typeof-symbol@7.25.9': + resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - it-filter@3.1.1: - resolution: {integrity: sha512-TOXmVuaSkxlLp2hXKoMTra0WMZMKVFxE3vSsbIA+PbADNCBAHhjJ/lM31vBOUTddHMO34Ku++vU8T9PLlBxQtg==} + '@babel/plugin-transform-unicode-escapes@7.25.9': + resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - it-last@3.0.6: - resolution: {integrity: sha512-M4/get95O85u2vWvWQinF8SJUc/RPC5bWTveBTYXvlP2q5TF9Y+QhT3nz+CRCyS2YEc66VJkyl/da6WrJ0wKhw==} + '@babel/plugin-transform-unicode-property-regex@7.25.9': + resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - it-map@3.1.1: - resolution: {integrity: sha512-9bCSwKD1yN1wCOgJ9UOl+46NQtdatosPWzxxUk2NdTLwRPXLh+L7iwCC9QKsbgM60RQxT/nH8bKMqm3H/o8IHQ==} + '@babel/plugin-transform-unicode-regex@7.25.9': + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - it-merge@3.0.5: - resolution: {integrity: sha512-2l7+mPf85pyRF5pqi0dKcA54E5Jm/2FyY5GsOaN51Ta0ipC7YZ3szuAsH8wOoB6eKY4XsU4k2X+mzPmFBMayEA==} + '@babel/plugin-transform-unicode-sets-regex@7.25.9': + resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - it-parallel@3.0.8: - resolution: {integrity: sha512-URLhs6eG4Hdr4OdvgBBPDzOjBeSSmI+Kqex2rv/aAyYClME26RYHirLVhZsZP5M+ZP6M34iRlXk8Wlqtezuqpg==} + '@babel/preset-env@7.26.0': + resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 - it-peekable@3.0.5: - resolution: {integrity: sha512-JWQOGMt6rKiPcY30zUVMR4g6YxkpueTwHVE7CMs/aGqCf4OydM6w+7ZM3PvmO1e0TocjuR4aL8xyZWR46cTqCQ==} + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - it-pipe@3.0.1: - resolution: {integrity: sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} + '@babel/runtime@7.22.11': + resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==} + engines: {node: '>=6.9.0'} - it-pushable@3.2.3: - resolution: {integrity: sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} - it-stream-types@2.0.2: - resolution: {integrity: sha512-Rz/DEZ6Byn/r9+/SBCuJhpPATDF9D+dz5pbgSUyBsCDtza6wtNATrz/jz1gDyNanC3XdLboriHnOC925bZRBww==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} - itk-wasm@1.0.0-b.183: - resolution: {integrity: sha512-B3/W8MqKZ3KOl+96W1CvgAJjOmlqsac7iaEooP98k3yzH04oAsuyh3xZooOxDVNCucEdIj2Zt7lALbdFv+BoPQ==} - hasBin: true + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} - js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + '@ctrl/tinycolor@4.1.0': + resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} + engines: {node: '>=14'} - long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] - make-dir@1.3.0: - resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} - engines: {node: '>=4'} + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] - markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] - multiformats@13.3.1: - resolution: {integrity: sha512-QxowxTNwJ3r5RMctoGA5p13w5RbRT2QDkoM+yFlqfLiioBp78nhDjnRLvmSBI9+KAqN4VdgOVWM9c0CHd86m3g==} + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] - multiformats@9.9.0: - resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] - murmurhash3js-revisited@3.0.0: - resolution: {integrity: sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==} - engines: {node: '>=8.0.0'} + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] - p-defer@4.0.1: - resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} + cpu: [arm64] + os: [linux] - p-queue@8.0.1: - resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} - engines: {node: '>=18'} + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] - p-timeout@6.1.3: - resolution: {integrity: sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==} - engines: {node: '>=14.16'} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} + '@esbuild/linux-loong64@0.18.20': + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} + '@esbuild/linux-mips64el@0.18.20': + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] - progress-events@1.0.1: - resolution: {integrity: sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==} + '@esbuild/linux-ppc64@0.18.20': + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] - protobufjs@7.4.0: - resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} - engines: {node: '>=12.0.0'} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] - protons-runtime@5.5.0: - resolution: {integrity: sha512-EsALjF9QsrEk6gbCx3lmfHxVN0ah7nG3cY7GySD4xf4g8cr7g543zB88Foh897Sr1RQJ9yDCUsoT1i1H/cVUFA==} + '@esbuild/linux-riscv64@0.18.20': + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] - rabin-rs@2.1.0: - resolution: {integrity: sha512-5y72gAXPzIBsAMHcpxZP8eMDuDT98qMP1BqSDHRbHkJJXEgWIN1lA47LxUqzsK6jknOJtgfkQr9v+7qMlFDm6g==} + '@esbuild/linux-s390x@0.18.20': + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} + '@esbuild/linux-x64@0.18.20': + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + '@esbuild/netbsd-x64@0.18.20': + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] - seek-bzip@1.0.6: - resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.18.20': + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.18.20': + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.18.20': + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.18.20': + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.18.20': + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + + '@floating-ui/dom@1.6.12': + resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} + + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + + '@ipld/car@5.3.3': + resolution: {integrity: sha512-4vgV5Ml4HCJ2iTx7vYhu0ui+Xxo1HQTtVeYgD+JKd5Wij8TlOFZnxOSickqpLcuf1fdGEStgqVItx15UWfzDYA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/dag-cbor@9.2.2': + resolution: {integrity: sha512-uIEOuruCqKTP50OBWwgz4Js2+LhiBQaxc57cnP71f45b1mHEAo1OCR1Zn/TbvSW/mV1x+JqhacIktkKyaYqhCw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/dag-json@10.2.3': + resolution: {integrity: sha512-itacv1j1hvYgLox2B42Msn70QLzcr0MEo5yGIENuw2SM/lQzq9bmBiMky+kDsIrsqqblKTXcHBZnnmK7D4a6ZQ==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/dag-pb@4.1.3': + resolution: {integrity: sha512-ueULCaaSCcD+dQga6nKiRr+RSeVgdiYiEPKVUu5iQMNYDN+9osd0KpR3UDd9uQQ+6RWuv9L34SchfEwj7YIbOA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@ipld/unixfs@3.0.0': + resolution: {integrity: sha512-Tj3/BPOlnemcZQ2ETIZAO8hqAs9KNzWyX5J9+JCL9jDwvYwjxeYjqJ3v+9DusNvTBmJhZnGVP6ijUHrsuOLp+g==} + + '@itk-viewer/arcball@0.0.1': + resolution: {integrity: sha512-TpXNoKAOtmpVVULUbytEVLyGTjgtpAuitNLXRY5Avf6+Tcsiogj7Im+a7J9Jr2Vr6lGS4fp4B6Pd1hwKotW0vw==} + + '@itk-viewer/blosc-zarr@0.1.3': + resolution: {integrity: sha512-O8REh/T8M99ADtE0Cr17FvhJtt++8MLP6giGcAaH35gbNqpMVJeg0gI2444HQplaJ4xicoeVrU5B0ja58+OfJA==} + + '@itk-viewer/blosc-zarr@0.2.3': + resolution: {integrity: sha512-70CVcQurIEGDxM8nGkFQPtOoARywMIkE6NrBwt2SwsMocLBQ3KXW4/2+KGbqXymf34qrgdzifR7ezg0kWggBpw==} + + '@itk-viewer/element@0.3.0': + resolution: {integrity: sha512-UUgrJ6k+tQphj+YJOMJLZUqnVSuZmzu7sYKNm3O2TE2e3Bjxp6duia5Qu2P+cLbtdF5kMN3mKckdVdy7FUUbqw==} + peerDependencies: + '@material/web': ^1.3.0 + peerDependenciesMeta: + '@material/web': + optional: true + + '@itk-viewer/io@0.1.8': + resolution: {integrity: sha512-soewY9nbLq0Z8HK2U8mdfzNZtmRPZbxcmzl7HWYdpmCu1cn5pp2y3cZsARjKTnuzsXrRr0DzfV29cBiJg21H8A==} + + '@itk-viewer/io@0.4.3': + resolution: {integrity: sha512-LKJdmQDTqLodY6CUn0ZSK/lHnwjmbfLGHZV/35er2m3tdX9wXPjIq3E2LNlUXDexJuj5rX/+rrPDKGyybC9gLw==} + + '@itk-viewer/remote-viewport@0.2.21': + resolution: {integrity: sha512-4jUAtqSBw+p52KyQsZZ58mw1HPZ/nYXIsaGQt+B1e0R4mVC9KyCTdGROf7fyg20lJ/IypBiGPb6syub3MrS2Fg==} + + '@itk-viewer/utils@0.1.4': + resolution: {integrity: sha512-4q7d4nQWPa+CBAr1smlQ2i5qNkGOn10iIPrwwLvmgqDR+9Krwdv4HXHenJayYqA9WFNfRgGVqU9z5/y4UEqP/A==} + + '@itk-viewer/viewer@0.3.0': + resolution: {integrity: sha512-gp9yIhk4o/QbRh/Ni1PXs2xabRtVB/4cpgWpkvHz9gXN+lJn8gvhaB9pXs5HOolgReiZlFcouciMhSz4j6Rntw==} + + '@itk-viewer/viewer@0.6.2': + resolution: {integrity: sha512-lS5l3+Wr9ZLeFKt9BxGJSjB0ja3BW/fnu5k3M85FVmGwG7mMkDfw4HdFeWQg3iRBmL9J3IyIJHW2BwMThXQ6Og==} + + '@itk-viewer/vtkjs@0.1.0': + resolution: {integrity: sha512-tkJKiS4182bTPVLl/ECTqSztojUB3xNMP7QOzIFpvmdHdMtjNNXJaINfsPYc6kilsNhInL34bszQRz7QcPHJoA==} + + '@itk-wasm/dam@1.1.1': + resolution: {integrity: sha512-7+9L3lrLMKF4y6B6qjs8GqfbpxT0waOJUM14NdMNEA6M+BoBS8fdHREhQHo2s7QMA5O7I+Jv7m+dyqlisGnbdQ==} hasBin: true - sparse-array@1.3.2: - resolution: {integrity: sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==} + '@itk-wasm/demo-app@0.2.0': + resolution: {integrity: sha512-nyteNJWsaeXv0+QHRJ8AYJWt8RSriJE2rZ7BYwDFmWCfp+et/xf2kULJXRE2GjCgHzpULHxE8LeWqS/usO+sAg==} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + '@itk-wasm/htj2k@2.1.0': + resolution: {integrity: sha512-22+mWgXr/LYRCqzzfIJ5il5bgYdJjPD5jiP4XXPvSgCjp48bui5zvZSkvMmXy89bJbVinUB1O6KHuB3K0MUong==} - strip-dirs@2.1.0: - resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + '@itk-wasm/image-io@1.3.1': + resolution: {integrity: sha512-PJBNyez1qJD4+rkFG5/BQ6G/4yzs1uKgPPw6n+i8yEF6qzN07aY444R6bV6nkWuvbLpXe6XxGPmfRqkJKM8PWw==} - tar-stream@1.6.2: - resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} - engines: {node: '>= 0.8.0'} + '@itk-wasm/mesh-io@1.4.2': + resolution: {integrity: sha512-kJy/WZevK8NQwxBOK5UL/iui8GzwQj/mpSQctivCoLIYVaF1TSQwip82pdAYRhTNDJ/Odz4hURIC3lu0fzjjqw==} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + '@itk-wasm/transform-io@0.1.1': + resolution: {integrity: sha512-PdvzYPyKBwGKm/1dENIDpkx4Cgw5JhpcmRWupzxMYpb6VEYQxVJSiyCzTRJoS5YocZQbdVhTIanYeId3MbRxZg==} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} - to-buffer@1.1.1: - resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - uint8-varint@2.0.4: - resolution: {integrity: sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} - uint8arraylist@2.4.8: - resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - uint8arrays@3.1.1: - resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - uint8arrays@5.1.0: - resolution: {integrity: sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + '@kitware/vtk.js@30.10.0': + resolution: {integrity: sha512-lkJ0S+2UssyrAkr1gx9aJgvJZIGgtVl4OnHTGrA6WnVb2Iep54Nyoa4D5bpmEZjU2019uu/45BOUh43mWV4dbQ==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.17.10 + autoprefixer: ^10.4.7 + wslink: '>=1.1.0 || ^2.0.0' - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + '@lit-labs/ssr-dom-shim@1.2.1': + resolution: {integrity: sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==} - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + '@lit/context@1.1.3': + resolution: {integrity: sha512-Auh37F4S0PZM93HTDfZWs97mmzaQ7M3vnTc9YvxAGyP3UItSK/8Fs0vTOGT+njuvOwbKio/l8Cx/zWL4vkutpQ==} + + '@lit/react@1.0.6': + resolution: {integrity: sha512-QIss8MPh6qUoFJmuaF4dSHts3qCsA36S3HcOLiNPShxhgYPr4XJRnCBKPipk85sR9xr6TQrOcDMfexwbNdJHYA==} + peerDependencies: + '@types/react': 17 || 18 + + '@lit/reactive-element@2.0.4': + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + + '@msgpack/msgpack@2.8.0': + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} + + '@multiformats/blake2@1.0.13': + resolution: {integrity: sha512-T1Kzya0wjj85CaVeRSpJ858EnSvW1pw94GSitxYf84VsNdv5XYbJ6QG8y26Ft1bVALzrUCmqkQrR53QHSyu6RA==} + + '@multiformats/murmur3@1.1.3': + resolution: {integrity: sha512-wAPLUErGR8g6Lt+bAZn6218k9YQPym+sjszsXL6o4zfxbA22P+gxWZuuD9wDbwL55xrKO5idpcuQUX7/E3oHcw==} + + '@multiformats/murmur3@2.1.8': + resolution: {integrity: sha512-6vId1C46ra3R1sbJUOFCZnsUIveR9oF20yhPmAFxPm0JfrX3/ZRCgP3YDrBzlGoEppOXnA9czHeYc0T9mB6hbA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + '@multiformats/sha3@2.0.17': + resolution: {integrity: sha512-7ik6pk178qLO2cpNucgf48UnAOBMkq/2H92DP4SprZOJqM9zqbVaKS7XyYW6UvhRsDJ3wi921fYv1ihTtQHLtA==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@oozcitak/dom@1.15.10': + resolution: {integrity: sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==} + engines: {node: '>=8.0'} + + '@oozcitak/infra@1.0.8': + resolution: {integrity: sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==} + engines: {node: '>=6.0'} + + '@oozcitak/url@1.0.4': + resolution: {integrity: sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==} + engines: {node: '>=8.0'} + + '@oozcitak/util@8.3.8': + resolution: {integrity: sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==} + engines: {node: '>=8.0'} + + '@perma/map@1.0.3': + resolution: {integrity: sha512-Bf5njk0fnJGTFE2ETntq0N1oJ6YdCPIpTDn3R3KYZJQdeYSOCNL7mBrFlGnbqav8YQhJA/p81pvHINX9vAtHkQ==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@shoelace-style/animations@1.2.0': + resolution: {integrity: sha512-avvo1xxkLbv2dgtabdewBbqcJfV0e0zCwFqkPMnHFGbJbBHorRFfMAHh1NG9ymmXn0jW95ibUVH03E1NYXD6Gw==} + + '@shoelace-style/localize@3.2.1': + resolution: {integrity: sha512-r4C9C/5kSfMBIr0D9imvpRdCNXtUNgyYThc4YlS6K5Hchv1UyxNQ9mxwj+BTRH2i1Neits260sR3OjKMnplsFA==} + + '@shoelace-style/shoelace@2.18.0': + resolution: {integrity: sha512-uzpL0+8Qm8aE2ArcXBcKHkaPc6l7ymuVaN6xJM0yd2o3talcoXpuP+gRBsgggSZKuuJEa+JkEuLDdzzFnE/+jw==} + engines: {node: '>=14.17.0'} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@thewtex/zstddec@0.2.1': + resolution: {integrity: sha512-1yTu7m/qU1nsJy4mCZAB3GAhczsClhw+WIXK0oe598eHcvefH16WLOYN4Uko7K2/Ttz9KEBvvT7WFrZD41ShgA==} + + '@types/emscripten@1.39.13': + resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@20.17.8': + resolution: {integrity: sha512-ahz2g6/oqbKalW9sPv6L2iRbhLnojxjYWspAqhjvqSWBgGebEJT5GvRmk0QXPj3sbC6rU0GTQjPLQkmR8CObvA==} + + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} + + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/webxr@0.5.20': + resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==} + + '@web3-storage/car-block-validator@1.2.0': + resolution: {integrity: sha512-KKQ/M5WtpH/JlkX+bQYKzdG4azmSF495T7vpewje2xh7MBh1d94/BLblxCcLM/larWvXDxOkbAyTTdlECAAuUw==} + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + actor@2.3.1: + resolution: {integrity: sha512-ST/3wnvcP2tKDXnum7nLCLXm+/rsf8vPocXH2Fre6D8FQwNkGDd4JEitBlXj007VQJfiGYRQvXqwOBZVi+JtRg==} + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + babel-plugin-polyfill-corejs2@0.4.12: + resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.3: + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + + blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + + buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + caniuse-lite@1.0.30001684: + resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} + + cborg@4.2.6: + resolution: {integrity: sha512-77vo4KlSwfjCIXcyZUVei4l2gdjesSCeYSx4U/Upwix7pcWZq8uw21sVRpjwn7mjEi//ieJPTj1MRWDHmud1Rg==} + hasBin: true + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comlink@4.4.2: + resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@9.2.0: + resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==} + engines: {node: ^12.20.0 || >=14} + + composed-offset-position@0.0.4: + resolution: {integrity: sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js-compat@3.39.0: + resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decompress-tar@4.1.1: + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} + engines: {node: '>=4'} + + decompress-tarbz2@4.1.1: + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} + engines: {node: '>=4'} + + decompress-targz@4.1.1: + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} + engines: {node: '>=4'} + + decompress-unzip@4.0.1: + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} + engines: {node: '>=4'} + + decompress@4.2.1: + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} + engines: {node: '>=4'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + electron-to-chromium@1.5.65: + resolution: {integrity: sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + engine.io-client@6.6.2: + resolution: {integrity: sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fflate@0.7.3: + resolution: {integrity: sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==} + + file-type@3.9.0: + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} + engines: {node: '>=0.10.0'} + + file-type@5.2.0: + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} + engines: {node: '>=4'} + + file-type@6.2.0: + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} + engines: {node: '>=4'} + + files-from-path@1.1.1: + resolution: {integrity: sha512-M2JDH/0gHqIsdwTnp8IBMWEYUUiHe9ei0ZMTXLxqKFcGxJF4Ki+nicw2k8HP5KGEzPLTyJ81XwLmP8l8rKa6qg==} + engines: {node: '>=18'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-stream@2.3.1: + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} + engines: {node: '>=0.10.0'} + + gl-matrix@3.4.3: + resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hamt-sharding@3.0.6: + resolution: {integrity: sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + imjoy-rpc@0.5.59: + resolution: {integrity: sha512-6eM7MG+A49K7n3rL+F8dQxCZP7YsH3ufNbtJr+EioeSUxHmHTFj1AGtSa/tO895MASXKfqHv1zWAUwr4j/q/2w==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + interface-blockstore@5.3.1: + resolution: {integrity: sha512-nhgrQnz6yUQEqxTFLhlOBurQOy5lWlwCpgFmZ3GTObTVTQS9RZjK/JTozY6ty9uz2lZs7VFJSqwjWAltorJ4Vw==} + + interface-store@6.0.2: + resolution: {integrity: sha512-KSFCXtBlNoG0hzwNa0RmhHtrdhzexp+S+UY2s0rWTBJyfdEIgn6i6Zl9otVqrcFYbYrneBT7hbmHQ8gE0C3umA==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + ipfs-car@1.2.0: + resolution: {integrity: sha512-A++1UesxqwfNv14NmFxr4MHi+vD9rR6SWr87MU9o0315Mzqys48pEefL8rlCAA9cw2qKYeT/ZPYVtqIMAr6U1Q==} + engines: {node: '>=18'} + hasBin: true + + ipfs-unixfs-exporter@13.6.1: + resolution: {integrity: sha512-pYPI4oBTWao2//sFzAL0pURyojn79q/u5BuK6L5/nVbVUQVw6DcVP5uB1ySdWlTM2H+0Zlhp9+OL9aJBRIICpg==} + + ipfs-unixfs@11.2.0: + resolution: {integrity: sha512-J8FN1qM5nfrDo8sQKQwfj0+brTg1uBfZK2vY9hxci33lcl3BFrsELS9+1+4q/8tO1ASKfxZO8W3Pi2O4sVX2Lg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-natural-number@4.0.1: + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + it-filter@3.1.1: + resolution: {integrity: sha512-TOXmVuaSkxlLp2hXKoMTra0WMZMKVFxE3vSsbIA+PbADNCBAHhjJ/lM31vBOUTddHMO34Ku++vU8T9PLlBxQtg==} + + it-last@3.0.6: + resolution: {integrity: sha512-M4/get95O85u2vWvWQinF8SJUc/RPC5bWTveBTYXvlP2q5TF9Y+QhT3nz+CRCyS2YEc66VJkyl/da6WrJ0wKhw==} + + it-map@3.1.1: + resolution: {integrity: sha512-9bCSwKD1yN1wCOgJ9UOl+46NQtdatosPWzxxUk2NdTLwRPXLh+L7iwCC9QKsbgM60RQxT/nH8bKMqm3H/o8IHQ==} + + it-merge@3.0.5: + resolution: {integrity: sha512-2l7+mPf85pyRF5pqi0dKcA54E5Jm/2FyY5GsOaN51Ta0ipC7YZ3szuAsH8wOoB6eKY4XsU4k2X+mzPmFBMayEA==} + + it-parallel@3.0.8: + resolution: {integrity: sha512-URLhs6eG4Hdr4OdvgBBPDzOjBeSSmI+Kqex2rv/aAyYClME26RYHirLVhZsZP5M+ZP6M34iRlXk8Wlqtezuqpg==} + + it-peekable@3.0.5: + resolution: {integrity: sha512-JWQOGMt6rKiPcY30zUVMR4g6YxkpueTwHVE7CMs/aGqCf4OydM6w+7ZM3PvmO1e0TocjuR4aL8xyZWR46cTqCQ==} + + it-pipe@3.0.1: + resolution: {integrity: sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + + it-pushable@3.2.3: + resolution: {integrity: sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==} + + it-stream-types@2.0.2: + resolution: {integrity: sha512-Rz/DEZ6Byn/r9+/SBCuJhpPATDF9D+dz5pbgSUyBsCDtza6wtNATrz/jz1gDyNanC3XdLboriHnOC925bZRBww==} + + itk-wasm@1.0.0-b.160: + resolution: {integrity: sha512-yrt0uRukqI9Q5s9HhzArxMNYvyU5CMbI1ddGzH0A4O3JWscnJug7J0RtY+RTl6nTHcqdrppNH7IRbnTXLZ79Rg==} + hasBin: true + + itk-wasm@1.0.0-b.183: + resolution: {integrity: sha512-B3/W8MqKZ3KOl+96W1CvgAJjOmlqsac7iaEooP98k3yzH04oAsuyh3xZooOxDVNCucEdIj2Zt7lALbdFv+BoPQ==} + hasBin: true + + itk-wasm@1.0.0-b.184: + resolution: {integrity: sha512-wmRpOvbG4aPRf51B/VsVj0pZtGmgmI5U8sorYIVW01RQIFqybXoBdHK6AR4d/Wb3MZfFgtWHi++MnpljLORhkg==} + hasBin: true + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.0: + resolution: {integrity: sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + lit-element@4.1.1: + resolution: {integrity: sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==} + + lit-html@3.2.1: + resolution: {integrity: sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==} + + lit@3.2.1: + resolution: {integrity: sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + make-dir@1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} + engines: {node: '>=4'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multiformats@13.3.1: + resolution: {integrity: sha512-QxowxTNwJ3r5RMctoGA5p13w5RbRT2QDkoM+yFlqfLiioBp78nhDjnRLvmSBI9+KAqN4VdgOVWM9c0CHd86m3g==} + + multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + + murmurhash3js-revisited@3.0.0: + resolution: {integrity: sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==} + engines: {node: '>=8.0.0'} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + p-defer@4.0.1: + resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} + engines: {node: '>=12'} + + p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} + + p-timeout@6.1.3: + resolution: {integrity: sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==} + engines: {node: '>=14.16'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + progress-events@1.0.1: + resolution: {integrity: sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + protons-runtime@5.5.0: + resolution: {integrity: sha512-EsALjF9QsrEk6gbCx3lmfHxVN0ah7nG3cY7GySD4xf4g8cr7g543zB88Foh897Sr1RQJ9yDCUsoT1i1H/cVUFA==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qr-creator@1.0.0: + resolution: {integrity: sha512-C0cqfbS1P5hfqN4NhsYsUXePlk9BO+a45bAQ3xLYjBL3bOIFzoVEjs79Fado9u9BPBD3buHi3+vY+C8tHh4qMQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + rabin-rs@2.1.0: + resolution: {integrity: sha512-5y72gAXPzIBsAMHcpxZP8eMDuDT98qMP1BqSDHRbHkJJXEgWIN1lA47LxUqzsK6jknOJtgfkQr9v+7qMlFDm6g==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + regenerate-unicode-properties@10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regexpu-core@6.2.0: + resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.12.0: + resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + hasBin: true + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@3.29.5: + resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + seedrandom@3.0.5: + resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} + + seek-bzip@1.0.6: + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + shader-loader@1.3.1: + resolution: {integrity: sha512-dt8F9K0x4rjmaFyHh7rNDfpt4LUiR64zhNIEwp2WbE99B3z4ALuvvmhftkElg93dUD6sTmv/aXa/z9SJiEddcA==} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + shx@0.3.4: + resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==} + engines: {node: '>=6'} + hasBin: true + + socket.io-client@4.8.1: + resolution: {integrity: sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spark-md5@3.0.2: + resolution: {integrity: sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==} + + sparse-array@1.3.2: + resolution: {integrity: sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + strip-dirs@2.1.0: + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} + engines: {node: '>=10'} + hasBin: true + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + + uint8-varint@2.0.4: + resolution: {integrity: sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==} + + uint8arraylist@2.4.8: + resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} + + uint8arrays@3.1.1: + resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} + + uint8arrays@5.1.0: + resolution: {integrity: sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==} + + unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + + vite-plugin-static-copy@0.17.1: + resolution: {integrity: sha512-9h3iaVs0bqnqZOM5YHJXGHqdC5VAVlTZ2ARYsuNpzhEJUHmFqXY7dAK4ZFpjEQ4WLFKcaN8yWbczr81n01U4sQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + + vite@4.5.5: + resolution: {integrity: sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + wasm-feature-detect@1.8.0: + resolution: {integrity: sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.96.1: + resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webworker-promise@0.5.0: + resolution: {integrity: sha512-14iR79jHAV7ozwvbfif+3wCaApT3I1g8Lo0rJZrwAu6wxZGx/08Y8KXz6as6ZLNUEEufeiEBBYrqyDBClXOsEw==} + + worker-loader@3.0.8: + resolution: {integrity: sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + wslink@2.2.1: + resolution: {integrity: sha512-kBhNNW7RtVBY1e6WZJvp/XvYHUkWTJupq1FhG5FAv9f6Do868zsaV+SPM1kD7pcHxF/d8IcmzCP5Ty1m8pIVFQ==} + + xmlbuilder2@3.0.2: + resolution: {integrity: sha512-h4MUawGY21CTdhV4xm3DG9dgsqyhDkZvVJBx88beqX8wJs3VgyGQgAn5VreHuae6unTQxh115aMK5InCVmOIKw==} + engines: {node: '>=12.0'} + + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} + engines: {node: '>=0.4.0'} + + xstate-lit@2.0.5: + resolution: {integrity: sha512-XThgLbeJiii3eQvmF+lnxas+6OZB3EbZQ6qBD3uHql5OdTEktDz52pGIFCMqqGNLIsaR5xRIteN1w9VR1XqWBw==} + peerDependencies: + '@lit/context': ^1.1.0 + lit: ^3.1.0 + xstate: ^5.4.1 + + xstate@5.17.1: + resolution: {integrity: sha512-RNwcXdth+kboWZg+Zhf6f6iNP6CtAAiS4z4qwyTd/fWBH9PHXRqko6OdW3xOTwP62f0mVD+jsPOSqY4Ar8nZKQ==} + + xstate@5.5.2: + resolution: {integrity: sha512-RLf9wc5HDO0pvj2TQQ+lY6tDW8CU8Entfgmtzzo6NhkC8qOEBXSN6WUSvnUM7NHZgdih06+by1b4nbaHVu1c+g==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.2': {} + + '@babel/core@7.26.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.26.2': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.0 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-compilation-targets@7.25.9': + dependencies: + '@babel/compat-data': 7.26.2 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.25.9 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + debug: 4.3.7 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.26.0 + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helper-wrap-function@7.25.9': + dependencies: + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.26.0': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + + '@babel/parser@7.26.2': + dependencies: + '@babel/types': 7.26.0 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.25.9 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/template': 7.25.9 + + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-exponentiation-operator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-simple-access': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/preset-env@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/compat-data': 7.26.2 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-exponentiation-operator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) + core-js-compat: 3.39.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/types': 7.26.0 + esutils: 2.0.3 + + '@babel/runtime@7.22.11': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + + '@babel/traverse@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@ctrl/tinycolor@4.1.0': {} + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.18.20': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm@0.18.20': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-x64@0.18.20': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.18.20': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.18.20': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.18.20': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.18.20': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.18.20': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm@0.18.20': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.18.20': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.18.20': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.18.20': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.18.20': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.18.20': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.18.20': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-x64@0.18.20': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.18.20': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.18.20': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.18.20': + optional: true - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + '@esbuild/sunos-x64@0.19.12': + optional: true - varint@6.0.0: - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + '@esbuild/win32-arm64@0.18.20': + optional: true - wasm-feature-detect@1.8.0: - resolution: {integrity: sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==} + '@esbuild/win32-arm64@0.19.12': + optional: true - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + '@esbuild/win32-ia32@0.18.20': + optional: true - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + '@esbuild/win32-ia32@0.19.12': + optional: true - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + '@esbuild/win32-x64@0.18.20': + optional: true - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + '@esbuild/win32-x64@0.19.12': + optional: true -snapshots: + '@floating-ui/core@1.6.8': + dependencies: + '@floating-ui/utils': 0.2.8 + + '@floating-ui/dom@1.6.12': + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 + + '@floating-ui/utils@0.2.8': {} '@ipld/car@5.3.3': dependencies: @@ -563,6 +3159,127 @@ snapshots: protobufjs: 7.4.0 rabin-rs: 2.1.0 + '@itk-viewer/arcball@0.0.1': + dependencies: + gl-matrix: 3.4.3 + + '@itk-viewer/blosc-zarr@0.1.3': + dependencies: + '@itk-viewer/utils': 0.1.4 + itk-wasm: 1.0.0-b.160 + transitivePeerDependencies: + - debug + + '@itk-viewer/blosc-zarr@0.2.3': + dependencies: + '@itk-viewer/utils': 0.1.4 + itk-wasm: 1.0.0-b.160 + transitivePeerDependencies: + - debug + + '@itk-viewer/element@0.3.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1)': + dependencies: + '@itk-viewer/arcball': 0.0.1 + '@itk-viewer/io': 0.1.8 + '@itk-viewer/remote-viewport': 0.2.21 + '@itk-viewer/utils': 0.1.4 + '@itk-viewer/viewer': 0.3.0 + '@itk-viewer/vtkjs': 0.1.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1) + '@lit/context': 1.1.3 + gl-matrix: 3.4.3 + itk-wasm: 1.0.0-b.160 + lit: 3.2.1 + xstate: 5.5.2 + xstate-lit: 2.0.5(@lit/context@1.1.3)(lit@3.2.1)(xstate@5.5.2) + transitivePeerDependencies: + - '@babel/preset-env' + - autoprefixer + - bufferutil + - debug + - supports-color + - utf-8-validate + - webpack + - wslink + + '@itk-viewer/io@0.1.8': + dependencies: + '@itk-viewer/blosc-zarr': 0.1.3 + '@itk-viewer/utils': 0.1.4 + axios: 1.7.7 + comlink: 4.4.2 + gl-matrix: 3.4.3 + itk-wasm: 1.0.0-b.160 + p-queue: 8.0.1 + zod: 3.23.8 + transitivePeerDependencies: + - debug + + '@itk-viewer/io@0.4.3': + dependencies: + '@itk-viewer/blosc-zarr': 0.2.3 + '@itk-viewer/utils': 0.1.4 + axios: 1.7.7 + comlink: 4.4.2 + gl-matrix: 3.4.3 + itk-wasm: 1.0.0-b.160 + p-queue: 8.0.1 + zod: 3.23.8 + transitivePeerDependencies: + - debug + + '@itk-viewer/remote-viewport@0.2.21': + dependencies: + '@itk-viewer/io': 0.4.3 + '@itk-viewer/utils': 0.1.4 + '@itk-viewer/viewer': 0.6.2 + '@itk-wasm/htj2k': 2.1.0 + gl-matrix: 3.4.3 + imjoy-rpc: 0.5.59 + xstate: 5.17.1 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@itk-viewer/utils@0.1.4': + dependencies: + itk-wasm: 1.0.0-b.160 + transitivePeerDependencies: + - debug + + '@itk-viewer/viewer@0.3.0': + dependencies: + '@itk-viewer/io': 0.1.8 + '@itk-viewer/utils': 0.1.4 + gl-matrix: 3.4.3 + xstate: 5.5.2 + transitivePeerDependencies: + - debug + + '@itk-viewer/viewer@0.6.2': + dependencies: + '@itk-viewer/io': 0.4.3 + '@itk-viewer/utils': 0.1.4 + gl-matrix: 3.4.3 + xstate: 5.17.1 + transitivePeerDependencies: + - debug + + '@itk-viewer/vtkjs@0.1.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1)': + dependencies: + '@itk-viewer/io': 0.1.8 + '@itk-viewer/viewer': 0.3.0 + '@kitware/vtk.js': 30.10.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1) + gl-matrix: 3.4.3 + xstate: 5.5.2 + transitivePeerDependencies: + - '@babel/preset-env' + - autoprefixer + - debug + - webpack + - wslink + '@itk-wasm/dam@1.1.1': dependencies: axios: 1.7.7 @@ -574,6 +3291,115 @@ snapshots: transitivePeerDependencies: - debug + '@itk-wasm/demo-app@0.2.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.12)(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1)': + dependencies: + '@itk-viewer/element': 0.3.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1) + '@itk-viewer/io': 0.1.8 + '@shoelace-style/shoelace': 2.18.0(@types/react@18.3.12) + itk-wasm: 1.0.0-b.184 + lit: 3.2.1 + transitivePeerDependencies: + - '@babel/preset-env' + - '@material/web' + - '@types/react' + - autoprefixer + - bufferutil + - debug + - supports-color + - utf-8-validate + - webpack + - wslink + + '@itk-wasm/htj2k@2.1.0': + dependencies: + itk-wasm: 1.0.0-b.184 + transitivePeerDependencies: + - debug + + '@itk-wasm/image-io@1.3.1': + dependencies: + axios: 1.7.7 + itk-wasm: 1.0.0-b.184 + mime-types: 2.1.35 + transitivePeerDependencies: + - debug + + '@itk-wasm/mesh-io@1.4.2': + dependencies: + itk-wasm: 1.0.0-b.184 + mime-types: 2.1.35 + transitivePeerDependencies: + - debug + + '@itk-wasm/transform-io@0.1.1': + dependencies: + itk-wasm: 1.0.0-b.184 + mime-types: 2.1.35 + transitivePeerDependencies: + - debug + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@kitware/vtk.js@30.10.0(@babel/preset-env@7.26.0(@babel/core@7.26.0))(autoprefixer@10.4.20(postcss@8.4.49))(webpack@5.96.1(esbuild@0.19.12))(wslink@2.2.1)': + dependencies: + '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/runtime': 7.22.11 + '@types/webxr': 0.5.20 + autoprefixer: 10.4.20(postcss@8.4.49) + commander: 9.2.0 + d3-scale: 4.0.2 + fast-deep-equal: 3.1.3 + fflate: 0.7.3 + gl-matrix: 3.4.3 + globalthis: 1.0.3 + seedrandom: 3.0.5 + shader-loader: 1.3.1 + shelljs: 0.8.5 + spark-md5: 3.0.2 + stream-browserify: 3.0.0 + webworker-promise: 0.5.0 + worker-loader: 3.0.8(webpack@5.96.1(esbuild@0.19.12)) + wslink: 2.2.1 + xmlbuilder2: 3.0.2 + transitivePeerDependencies: + - webpack + + '@lit-labs/ssr-dom-shim@1.2.1': {} + + '@lit/context@1.1.3': + dependencies: + '@lit/reactive-element': 2.0.4 + + '@lit/react@1.0.6(@types/react@18.3.12)': + dependencies: + '@types/react': 18.3.12 + + '@lit/reactive-element@2.0.4': + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.1 + + '@msgpack/msgpack@2.8.0': {} + '@multiformats/blake2@1.0.13': dependencies: blakejs: 1.2.1 @@ -594,6 +3420,35 @@ snapshots: js-sha3: 0.8.0 multiformats: 9.9.0 + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@oozcitak/dom@1.15.10': + dependencies: + '@oozcitak/infra': 1.0.8 + '@oozcitak/url': 1.0.4 + '@oozcitak/util': 8.3.8 + + '@oozcitak/infra@1.0.8': + dependencies: + '@oozcitak/util': 8.3.8 + + '@oozcitak/url@1.0.4': + dependencies: + '@oozcitak/infra': 1.0.8 + '@oozcitak/util': 8.3.8 + + '@oozcitak/util@8.3.8': {} + '@perma/map@1.0.3': dependencies: '@multiformats/murmur3': 2.1.8 @@ -622,14 +3477,58 @@ snapshots: '@protobufjs/utf8@1.1.0': {} + '@shoelace-style/animations@1.2.0': {} + + '@shoelace-style/localize@3.2.1': {} + + '@shoelace-style/shoelace@2.18.0(@types/react@18.3.12)': + dependencies: + '@ctrl/tinycolor': 4.1.0 + '@floating-ui/dom': 1.6.12 + '@lit/react': 1.0.6(@types/react@18.3.12) + '@shoelace-style/animations': 1.2.0 + '@shoelace-style/localize': 3.2.1 + composed-offset-position: 0.0.4 + lit: 3.2.1 + qr-creator: 1.0.0 + transitivePeerDependencies: + - '@types/react' + + '@socket.io/component-emitter@3.1.2': {} + '@thewtex/zstddec@0.2.1': {} '@types/emscripten@1.39.13': {} - '@types/node@22.9.3': + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.6 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@20.17.8': dependencies: undici-types: 6.19.8 + '@types/prop-types@15.7.13': {} + + '@types/react@18.3.12': + dependencies: + '@types/prop-types': 15.7.13 + csstype: 3.1.3 + + '@types/trusted-types@2.0.7': {} + + '@types/webxr@0.5.20': {} + '@web3-storage/car-block-validator@1.2.0': dependencies: '@multiformats/blake2': 1.0.13 @@ -638,10 +3537,122 @@ snapshots: multiformats: 9.9.0 uint8arrays: 3.1.1 + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + acorn@8.14.0: {} + actor@2.3.1: {} + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + asynckit@0.4.0: {} + autoprefixer@10.4.20(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + caniuse-lite: 1.0.30001684 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + axios@1.7.7: dependencies: follow-redirects: 1.15.9 @@ -650,10 +3661,38 @@ snapshots: transitivePeerDependencies: - debug + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): + dependencies: + '@babel/compat-data': 7.26.2 + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + core-js-compat: 3.39.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + balanced-match@1.0.2: {} base64-js@1.5.1: {} + big.js@5.2.2: {} + + binary-extensions@2.3.0: {} + bl@1.2.3: dependencies: readable-stream: 2.3.8 @@ -661,10 +3700,26 @@ snapshots: blakejs@1.2.1: {} + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.2: + dependencies: + caniuse-lite: 1.0.30001684 + electron-to-chromium: 1.5.65 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + buffer-alloc-unsafe@1.1.0: {} buffer-alloc@1.2.0: @@ -676,17 +3731,35 @@ snapshots: buffer-fill@1.0.0: {} + buffer-from@1.1.2: {} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + caniuse-lite@1.0.30001684: {} + cborg@4.2.6: {} chalk@5.3.0: {} + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + chownr@2.0.0: {} + chrome-trace-event@1.0.4: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -699,8 +3772,54 @@ snapshots: commander@2.20.3: {} + commander@9.2.0: {} + + composed-offset-position@0.0.4: {} + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + core-js-compat@3.39.0: + dependencies: + browserslist: 4.24.2 + core-util-is@1.0.3: {} + csstype@3.1.3: {} + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-color@3.1.0: {} + + d3-format@3.1.0: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + decompress-tar@4.1.1: dependencies: file-type: 5.2.0 @@ -728,29 +3847,162 @@ snapshots: pify: 2.3.0 yauzl: 2.10.0 - decompress@4.2.1: + decompress@4.2.1: + dependencies: + decompress-tar: 4.1.1 + decompress-tarbz2: 4.1.1 + decompress-targz: 4.1.1 + decompress-unzip: 4.0.1 + graceful-fs: 4.2.11 + make-dir: 1.3.0 + pify: 2.3.0 + strip-dirs: 2.1.0 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delayed-stream@1.0.0: {} + + electron-to-chromium@1.5.65: {} + + emojis-list@3.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + engine.io-client@6.6.2: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + xmlhttprequest-ssl: 2.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + + esbuild@0.18.20: + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + escalade@3.2.0: {} + + eslint-scope@5.1.1: dependencies: - decompress-tar: 4.1.1 - decompress-tarbz2: 4.1.1 - decompress-targz: 4.1.1 - decompress-unzip: 4.0.1 - graceful-fs: 4.2.11 - make-dir: 1.3.0 - pify: 2.3.0 - strip-dirs: 2.1.0 + esrecurse: 4.3.0 + estraverse: 4.3.0 - delayed-stream@1.0.0: {} + esprima@4.0.1: {} - end-of-stream@1.4.4: + esrecurse@4.3.0: dependencies: - once: 1.4.0 + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} eventemitter3@5.0.1: {} + events@3.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + fd-slicer@1.1.0: dependencies: pend: 1.2.0 + fflate@0.7.3: {} + file-type@3.9.0: {} file-type@5.2.0: {} @@ -761,6 +4013,10 @@ snapshots: dependencies: graceful-fs: 4.2.11 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + follow-redirects@1.15.9: {} form-data@4.0.1: @@ -769,6 +4025,8 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + fraction.js@4.3.7: {} + fs-constants@1.0.0: {} fs-extra@11.2.0: @@ -783,11 +4041,43 @@ snapshots: fs.realpath@1.0.0: {} + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + get-stream@2.3.1: dependencies: object-assign: 4.1.1 pinkie-promise: 2.0.1 + gl-matrix@3.4.3: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + glob@8.1.0: dependencies: fs.realpath: 1.0.0 @@ -796,6 +4086,16 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 + globals@11.12.0: {} + + globalthis@1.0.3: + dependencies: + define-properties: 1.2.1 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + graceful-fs@4.2.11: {} hamt-sharding@3.0.6: @@ -803,8 +4103,31 @@ snapshots: sparse-array: 1.3.2 uint8arrays: 5.1.0 + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + ieee754@1.2.1: {} + imjoy-rpc@0.5.59: + dependencies: + '@msgpack/msgpack': 2.8.0 + socket.io-client: 4.8.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + inflight@1.0.6: dependencies: once: 1.4.0 @@ -819,6 +4142,10 @@ snapshots: interface-store@6.0.2: {} + internmap@2.0.3: {} + + interpret@1.4.0: {} + ipfs-car@1.2.0: dependencies: '@ipld/car': 5.3.3 @@ -857,8 +4184,24 @@ snapshots: protons-runtime: 5.5.0 uint8arraylist: 2.4.8 + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + is-natural-number@4.0.1: {} + is-number@7.0.0: {} + is-stream@1.1.0: {} isarray@1.0.0: {} @@ -895,6 +4238,21 @@ snapshots: it-stream-types@2.0.2: {} + itk-wasm@1.0.0-b.160: + dependencies: + '@thewtex/zstddec': 0.2.1 + '@types/emscripten': 1.39.13 + axios: 1.7.7 + comlink: 4.4.2 + commander: 11.1.0 + fs-extra: 11.2.0 + glob: 8.1.0 + markdown-table: 3.0.4 + mime-types: 2.1.35 + wasm-feature-detect: 1.8.0 + transitivePeerDependencies: + - debug + itk-wasm@1.0.0-b.183: dependencies: '@itk-wasm/dam': 1.1.1 @@ -912,32 +4270,125 @@ snapshots: transitivePeerDependencies: - debug + itk-wasm@1.0.0-b.184: + dependencies: + '@itk-wasm/dam': 1.1.1 + '@thewtex/zstddec': 0.2.1 + '@types/emscripten': 1.39.13 + axios: 1.7.7 + chalk: 5.3.0 + comlink: 4.4.2 + commander: 11.1.0 + fs-extra: 11.2.0 + glob: 8.1.0 + markdown-table: 3.0.4 + mime-types: 2.1.35 + wasm-feature-detect: 1.8.0 + transitivePeerDependencies: + - debug + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.17.8 + merge-stream: 2.0.0 + supports-color: 8.1.1 + js-sha3@0.8.0: {} + js-tokens@4.0.0: {} + + js-yaml@3.14.0: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + jsesc@3.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 + lit-element@4.1.1: + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.1 + '@lit/reactive-element': 2.0.4 + lit-html: 3.2.1 + + lit-html@3.2.1: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.2.1: + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.1.1 + lit-html: 3.2.1 + + loader-runner@4.3.0: {} + + loader-utils@1.4.2: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + + loader-utils@2.0.4: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + + lodash.debounce@4.0.8: {} + long@5.2.3: {} + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + make-dir@1.3.0: dependencies: pify: 3.0.0 markdown-table@3.0.4: {} + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime-db@1.52.0: {} mime-types@2.1.35: dependencies: mime-db: 1.52.0 + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 + minimist@1.2.8: {} + minipass@3.3.6: dependencies: yallist: 4.0.0 @@ -953,14 +4404,28 @@ snapshots: mri@1.2.0: {} + ms@2.1.3: {} + multiformats@13.3.1: {} multiformats@9.9.0: {} murmurhash3js-revisited@3.0.0: {} + nanoid@3.3.8: {} + + neo-async@2.6.2: {} + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + object-assign@4.1.1: {} + object-keys@1.1.1: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -974,8 +4439,16 @@ snapshots: p-timeout@6.1.3: {} + path-is-absolute@1.0.1: {} + + path-parse@1.0.7: {} + pend@1.2.0: {} + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + pify@2.3.0: {} pify@3.0.0: {} @@ -986,6 +4459,14 @@ snapshots: pinkie@2.0.4: {} + postcss-value-parser@4.2.0: {} + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + process-nextick-args@2.0.1: {} progress-events@1.0.1: {} @@ -1002,7 +4483,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.9.3 + '@types/node': 20.17.8 long: 5.2.3 protons-runtime@5.5.0: @@ -1013,8 +4494,18 @@ snapshots: proxy-from-env@1.1.0: {} + punycode@2.3.1: {} + + qr-creator@1.0.0: {} + + queue-microtask@1.2.3: {} + rabin-rs@2.1.0: {} + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -1025,6 +4516,63 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + rechoir@0.6.2: + dependencies: + resolve: 1.22.8 + + regenerate-unicode-properties@10.2.0: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.14.1: {} + + regenerator-transform@0.15.2: + dependencies: + '@babel/runtime': 7.26.0 + + regexpu-core@6.2.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.0 + regjsgen: 0.8.0 + regjsparser: 0.12.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.0 + + regjsgen@0.8.0: {} + + regjsparser@0.12.0: + dependencies: + jsesc: 3.0.2 + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rollup@3.29.5: + optionalDependencies: + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + sade@1.8.1: dependencies: mri: 1.2.0 @@ -1033,12 +4581,77 @@ snapshots: safe-buffer@5.2.1: {} + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + seedrandom@3.0.5: {} + seek-bzip@1.0.6: dependencies: commander: 2.20.3 + semver@6.3.1: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + shader-loader@1.3.1: + dependencies: + loader-utils: 1.4.2 + + shelljs@0.8.5: + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + + shx@0.3.4: + dependencies: + minimist: 1.2.8 + shelljs: 0.8.5 + + socket.io-client@4.8.1: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-client: 6.6.2 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + spark-md5@3.0.2: {} + sparse-array@1.3.2: {} + sprintf-js@1.0.3: {} + + stream-browserify@3.0.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -1047,6 +4660,14 @@ snapshots: dependencies: is-natural-number: 4.0.1 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tapable@2.2.1: {} + tar-stream@1.6.2: dependencies: bl: 1.2.3 @@ -1066,10 +4687,34 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.96.1(esbuild@0.19.12)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.36.0 + webpack: 5.96.1(esbuild@0.19.12) + optionalDependencies: + esbuild: 0.19.12 + + terser@5.36.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.0 + commander: 2.20.3 + source-map-support: 0.5.21 + through@2.3.8: {} to-buffer@1.1.1: {} + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + typescript@5.7.2: {} + uint8-varint@2.0.4: dependencies: uint8arraylist: 2.4.8 @@ -1094,21 +4739,135 @@ snapshots: undici-types@6.19.8: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.1.0 + + unicode-match-property-value-ecmascript@2.2.0: {} + + unicode-property-aliases-ecmascript@2.1.0: {} + universalify@2.0.1: {} + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + util-deprecate@1.0.2: {} varint@6.0.0: {} + vite-plugin-static-copy@0.17.1(vite@4.5.5(@types/node@20.17.8)(terser@5.36.0)): + dependencies: + chokidar: 3.6.0 + fast-glob: 3.3.2 + fs-extra: 11.2.0 + picocolors: 1.1.1 + vite: 4.5.5(@types/node@20.17.8)(terser@5.36.0) + + vite@4.5.5(@types/node@20.17.8)(terser@5.36.0): + dependencies: + esbuild: 0.18.20 + postcss: 8.4.49 + rollup: 3.29.5 + optionalDependencies: + '@types/node': 20.17.8 + fsevents: 2.3.3 + terser: 5.36.0 + wasm-feature-detect@1.8.0: {} + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webpack-sources@3.2.3: {} + + webpack@5.96.1(esbuild@0.19.12): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + browserslist: 4.24.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.96.1(esbuild@0.19.12)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webworker-promise@0.5.0: {} + + worker-loader@3.0.8(webpack@5.96.1(esbuild@0.19.12)): + dependencies: + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.96.1(esbuild@0.19.12) + wrappy@1.0.2: {} + ws@8.17.1: {} + + wslink@2.2.1: + dependencies: + '@msgpack/msgpack': 2.8.0 + + xmlbuilder2@3.0.2: + dependencies: + '@oozcitak/dom': 1.15.10 + '@oozcitak/infra': 1.0.8 + '@oozcitak/util': 8.3.8 + '@types/node': 20.17.8 + js-yaml: 3.14.0 + + xmlhttprequest-ssl@2.1.2: {} + + xstate-lit@2.0.5(@lit/context@1.1.3)(lit@3.2.1)(xstate@5.5.2): + dependencies: + '@lit/context': 1.1.3 + lit: 3.2.1 + xstate: 5.5.2 + + xstate@5.17.1: {} + + xstate@5.5.2: {} + xtend@4.0.2: {} + yallist@3.1.1: {} + yallist@4.0.0: {} yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 + + zod@3.23.8: {} From ff30472d53b01c95ffab1d11b84be63016506a93 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 27 Nov 2024 13:58:13 -0500 Subject: [PATCH 11/16] ENH: Add initial typescript tests --- typescript/package.json | 62 +++++++++++++++++++ .../test/node/anti-alias-cuberille-test.js | 19 ++++++ typescript/test/node/common.js | 7 +++ typescript/test/node/cuberille-test.js | 19 ++++++ 4 files changed, 107 insertions(+) create mode 100644 typescript/package.json create mode 100644 typescript/test/node/anti-alias-cuberille-test.js create mode 100644 typescript/test/node/common.js create mode 100644 typescript/test/node/cuberille-test.js diff --git a/typescript/package.json b/typescript/package.json new file mode 100644 index 0000000..1050286 --- /dev/null +++ b/typescript/package.json @@ -0,0 +1,62 @@ +{ + "name": "@itk-wasm/cuberille", + "version": "0.1.0", + "description": "Cuberille implicit surface polygonization to generate meshes from images.", + "type": "module", + "module": "./dist/index.js", + "types": "./dist/index-all.d.ts", + "exports": { + ".": { + "types": "./dist/index-all.d.ts", + "browser": "./dist/index.js", + "node": "./dist/index-node.js", + "default": "./dist/index-all.js" + } + }, + "scripts": { + "start": "pnpm copyDemoAppAssets && vite", + "test": "pnpm test:node", + "test:node": "ava", + "build": "pnpm build:tsc && pnpm build:browser:workerEmbedded && pnpm build:browser:workerEmbeddedMin && pnpm build:demo", + "build:browser:workerEmbedded": "esbuild --loader:.worker.js=dataurl --bundle --format=esm --outfile=./dist/bundle/index-worker-embedded.js ./src/index-worker-embedded.ts", + "build:browser:workerEmbeddedMin": "esbuild --minify --loader:.worker.js=dataurl --bundle --format=esm --outfile=./dist/bundle/index-worker-embedded.min.js ./src/index-worker-embedded.min.ts", + "build:version": "node -p \"'const version = ' + JSON.stringify(require('./package.json').version) + '\\nexport default version\\n'\" > src/version.ts", + "build:tsc": "pnpm build:version && tsc --pretty", + "copyDemoAppAssets": "shx mkdir -p test/browser/demo-app/public && shx cp -r node_modules/@itk-wasm/demo-app/dist/assets test/browser/demo-app/public/", + "build:demo": "pnpm copyDemoAppAssets && vite build" + }, + "keywords": [ + "itk", + "wasm", + "webassembly", + "wasi" + ], + "author": "", + "license": "Apache-2.0", + "dependencies": { + "itk-wasm": "1.0.0-b.184" + }, + "devDependencies": { + "@itk-wasm/demo-app": "^0.2.0", + "@itk-wasm/image-io": "^1.3.1", + "@itk-wasm/mesh-io": "^1.4.2", + "@itk-wasm/transform-io": "^0.1.1", + "@types/node": "^20.2.5", + "ava": "^6.2.0", + "esbuild": "^0.19.8", + "shx": "^0.3.4", + "typescript": "^5.3.2", + "vite": "^4.5.0", + "vite-plugin-static-copy": "^0.17.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/InsightSoftwareConsortium/ITKCuberille" + }, + "ava": { + "files": [ + "test/node/**/*.js", + "!test/node/common.js" + ] + } +} diff --git a/typescript/test/node/anti-alias-cuberille-test.js b/typescript/test/node/anti-alias-cuberille-test.js new file mode 100644 index 0000000..a25df6d --- /dev/null +++ b/typescript/test/node/anti-alias-cuberille-test.js @@ -0,0 +1,19 @@ +import test from 'ava' +import path from 'path' + +import { readImageNode } from '@itk-wasm/image-io' +import { antiAliasCuberilleNode } from '../../dist/index-node.js' +import { testInputPath } from './common.js' + +test('Test cuberille', async t => { + const testInputFilePath = path.join(testInputPath, 'brain-seg.nii.gz') + + const image = await readImageNode(testInputFilePath) + const { mesh } = await antiAliasCuberilleNode(image, { surfaceDistanceThreshold: 0.5, iterations: 15, maximumSteps: 15 }) + + t.assert(mesh, 'antiAliasCuberille did not return a mesh') + t.is(mesh.numberOfPoints, 6274) + t.is(mesh.points.length, 18822) + t.is(mesh.numberOfCells, 12544) + t.is(mesh.cells.length, 62720) +}) diff --git a/typescript/test/node/common.js b/typescript/test/node/common.js new file mode 100644 index 0000000..38f49c4 --- /dev/null +++ b/typescript/test/node/common.js @@ -0,0 +1,7 @@ +import path from 'path' +import fs from 'fs' + +export const testInputPath = path.resolve('..', 'test', 'Input') +export const testBaselinePath = path.resolve('..', 'test', 'Baseline') +export const testOutputPath = path.resolve('..', 'test', 'Output', 'typescript') +fs.mkdirSync(testOutputPath, { recursive: true }) \ No newline at end of file diff --git a/typescript/test/node/cuberille-test.js b/typescript/test/node/cuberille-test.js new file mode 100644 index 0000000..f077f44 --- /dev/null +++ b/typescript/test/node/cuberille-test.js @@ -0,0 +1,19 @@ +import test from 'ava' +import path from 'path' + +import { readImageNode } from '@itk-wasm/image-io' +import { cuberilleNode } from '../../dist/index-node.js' +import { testInputPath } from './common.js' + +test('Test cuberille', async t => { + const testInputFilePath = path.join(testInputPath, 'fuel.mha') + + const image = await readImageNode(testInputFilePath) + const { mesh } = await cuberilleNode(image) + + t.assert(mesh, 'cuberille did not return a mesh') + t.is(mesh.numberOfPoints, 6274) + t.is(mesh.points.length, 18822) + t.is(mesh.numberOfCells, 12544) + t.is(mesh.cells.length, 62720) +}) From 2edb0c0c5752168845af9e248c723582b30e09e4 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Wed, 27 Nov 2024 14:00:45 -0500 Subject: [PATCH 12/16] DOC: Extend wasm package description --- .gitignore | 1 - package.json | 2 +- pnpm-lock.yaml | 945 +++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 923 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 5c029c2..7324fd3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ emscripten-build/ native/ node_modules/ python/ -typescript/ wasi-build/ pyodide/ test/data.tar.gz diff --git a/package.json b/package.json index 2b32a06..5b09d73 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "https://github.com/InsightSoftwareConsortium/ITK-Wasm/releases/download/itk-wasm-v1.0.0-b.179/sample-data.tar.gz", "https://bafybeidxatrsrrphfmntdyze6ec3jbiak527wj3kalwjptv4bimpcnzxdq.ipfs.w3s.link/ipfs/bafybeidxatrsrrphfmntdyze6ec3jbiak527wj3kalwjptv4bimpcnzxdq/sample-data.tar.gz" ], - "package-description": "Cuberille implicit surface polygonization", + "package-description": "Cuberille implicit surface polygonization to generate meshes from images.", "typescript-package-name": "@itk-wasm/cuberille", "python-package-name": "itkwasm-cuberille", "repository": "https://github.com/InsightSoftwareConsortium/ITKCuberille" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e0a79e..e4a1f29 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: typescript: dependencies: itk-wasm: - specifier: 1.0.0-b.183 - version: 1.0.0-b.183 + specifier: 1.0.0-b.184 + version: 1.0.0-b.184 devDependencies: '@itk-wasm/demo-app': specifier: ^0.2.0 @@ -36,6 +36,9 @@ importers: '@types/node': specifier: ^20.2.5 version: 20.17.8 + ava: + specifier: ^6.2.0 + version: 6.2.0 esbuild: specifier: ^0.19.8 version: 0.19.12 @@ -957,6 +960,10 @@ packages: '@lit/reactive-element@2.0.4': resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + '@msgpack/msgpack@2.8.0': resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} engines: {node: '>= 10'} @@ -1035,6 +1042,10 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + '@shoelace-style/animations@1.2.0': resolution: {integrity: sha512-avvo1xxkLbv2dgtabdewBbqcJfV0e0zCwFqkPMnHFGbJbBHorRFfMAHh1NG9ymmXn0jW95ibUVH03E1NYXD6Gw==} @@ -1045,6 +1056,10 @@ packages: resolution: {integrity: sha512-uzpL0+8Qm8aE2ArcXBcKHkaPc6l7ymuVaN6xJM0yd2o3talcoXpuP+gRBsgggSZKuuJEa+JkEuLDdzzFnE/+jw==} engines: {node: '>=14.17.0'} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} @@ -1081,6 +1096,11 @@ packages: '@types/webxr@0.5.20': resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==} + '@vercel/nft@0.27.6': + resolution: {integrity: sha512-mwuyUxskdcV8dd7N7JnxBgvFEz1D9UOePI/WyLLzktv6HSCwgPNQGit/UJ2IykAWGlypKw4pBQjOKWvIbXITSg==} + engines: {node: '>=16'} + hasBin: true + '@web3-storage/car-block-validator@1.2.0': resolution: {integrity: sha512-KKQ/M5WtpH/JlkX+bQYKzdG4azmSF495T7vpewje2xh7MBh1d94/BLblxCcLM/larWvXDxOkbAyTTdlECAAuUw==} @@ -1135,6 +1155,18 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -1143,6 +1175,10 @@ packages: actor@2.3.1: resolution: {integrity: sha512-ST/3wnvcP2tKDXnum7nLCLXm+/rsf8vPocXH2Fre6D8FQwNkGDd4JEitBlXj007VQJfiGYRQvXqwOBZVi+JtRg==} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -1151,13 +1187,52 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + + arrgv@1.0.2: + resolution: {integrity: sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==} + engines: {node: '>=8.0.0'} + + arrify@3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1168,6 +1243,16 @@ packages: peerDependencies: postcss: ^8.1.0 + ava@6.2.0: + resolution: {integrity: sha512-+GZk5PbyepjiO/68hzCZCUepQOQauKfNnI7sA4JukBTg97jD7E+tDKEA7OhGOGr6EorNNMM9+jqvgHVOTOzG4w==} + engines: {node: ^18.18 || ^20.8 || ^22 || >=23} + hasBin: true + peerDependencies: + '@ava/typescript': '*' + peerDependenciesMeta: + '@ava/typescript': + optional: true + axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} @@ -1199,12 +1284,18 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + bl@1.2.3: resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} blakejs@1.2.1: resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} + blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1238,9 +1329,17 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + callsites@4.2.0: + resolution: {integrity: sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==} + engines: {node: '>=12.20'} + caniuse-lite@1.0.30001684: resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} + cbor@9.0.2: + resolution: {integrity: sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==} + engines: {node: '>=16'} + cborg@4.2.6: resolution: {integrity: sha512-77vo4KlSwfjCIXcyZUVei4l2gdjesSCeYSx4U/Upwix7pcWZq8uw21sVRpjwn7mjEi//ieJPTj1MRWDHmud1Rg==} hasBin: true @@ -1261,6 +1360,39 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} + chunkd@2.0.1: + resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} + + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} + engines: {node: '>=8'} + + ci-parallel-vars@1.0.1: + resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -1283,15 +1415,29 @@ packages: resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==} engines: {node: ^12.20.0 || >=14} + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + composed-offset-position@0.0.4: resolution: {integrity: sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concordance@5.0.4: + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + core-js-compat@3.39.0: resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} @@ -1301,6 +1447,10 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + currently-unhandled@0.4.1: + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} + engines: {node: '>=0.10.0'} + d3-array@3.2.4: resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} engines: {node: '>=12'} @@ -1329,6 +1479,10 @@ packages: resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} engines: {node: '>=12'} + date-time@3.1.0: + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} + engines: {node: '>=6'} + debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -1370,9 +1524,26 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + electron-to-chromium@1.5.65: resolution: {integrity: sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==} + emittery@1.0.3: + resolution: {integrity: sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==} + engines: {node: '>=14.16'} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} @@ -1416,6 +1587,14 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -1437,6 +1616,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1451,6 +1633,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -1467,6 +1652,10 @@ packages: fflate@0.7.3: resolution: {integrity: sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==} + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-type@3.9.0: resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} engines: {node: '>=0.10.0'} @@ -1479,6 +1668,9 @@ packages: resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} engines: {node: '>=4'} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + files-from-path@1.1.1: resolution: {integrity: sha512-M2JDH/0gHqIsdwTnp8IBMWEYUUiHe9ei0ZMTXLxqKFcGxJF4Ki+nicw2k8HP5KGEzPLTyJ81XwLmP8l8rKa6qg==} engines: {node: '>=18'} @@ -1487,6 +1679,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -1525,10 +1721,23 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -1564,6 +1773,10 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -1588,16 +1801,39 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore-by-default@2.1.0: + resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==} + engines: {node: '>=10 <11 || >=12 <13 || >=14'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + imjoy-rpc@0.5.59: resolution: {integrity: sha512-6eM7MG+A49K7n3rL+F8dQxCZP7YsH3ufNbtJr+EioeSUxHmHTFj1AGtSa/tO895MASXKfqHv1zWAUwr4j/q/2w==} + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -1630,6 +1866,10 @@ packages: ipfs-unixfs@11.2.0: resolution: {integrity: sha512-J8FN1qM5nfrDo8sQKQwfj0+brTg1uBfZK2vY9hxci33lcl3BFrsELS9+1+4q/8tO1ASKfxZO8W3Pi2O4sVX2Lg==} + irregular-plurals@3.5.0: + resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} + engines: {node: '>=8'} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -1642,6 +1882,14 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -1653,10 +1901,21 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -1692,10 +1951,6 @@ packages: resolution: {integrity: sha512-yrt0uRukqI9Q5s9HhzArxMNYvyU5CMbI1ddGzH0A4O3JWscnJug7J0RtY+RTl6nTHcqdrppNH7IRbnTXLZ79Rg==} hasBin: true - itk-wasm@1.0.0-b.183: - resolution: {integrity: sha512-B3/W8MqKZ3KOl+96W1CvgAJjOmlqsac7iaEooP98k3yzH04oAsuyh3xZooOxDVNCucEdIj2Zt7lALbdFv+BoPQ==} - hasBin: true - itk-wasm@1.0.0-b.184: resolution: {integrity: sha512-wmRpOvbG4aPRf51B/VsVj0pZtGmgmI5U8sorYIVW01RQIFqybXoBdHK6AR4d/Wb3MZfFgtWHi++MnpljLORhkg==} hasBin: true @@ -1707,6 +1962,10 @@ packages: js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1714,6 +1973,10 @@ packages: resolution: {integrity: sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==} hasBin: true + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -1746,6 +2009,10 @@ packages: lit@3.2.1: resolution: {integrity: sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==} + load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -1761,6 +2028,9 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} @@ -1771,9 +2041,25 @@ packages: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} engines: {node: '>=4'} + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + matcher@5.0.0: + resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + md5-hex@3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} + engines: {node: '>=8'} + + memoize@10.0.0: + resolution: {integrity: sha512-H6cBLgsi6vMWOcCpvVCdFFnl3kerEXbrYh9q+lY6VXvQSmM6CkmV08VOwT+WE2tzIEqRPFfAq3fm4v/UIW6mSA==} + engines: {node: '>=18'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -1793,6 +2079,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1845,9 +2135,31 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + nofilter@3.1.0: + resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} + engines: {node: '>=12.19'} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -1856,6 +2168,10 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -1871,6 +2187,10 @@ packages: resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} engines: {node: '>=12'} + p-map@7.0.2: + resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} + engines: {node: '>=18'} + p-queue@8.0.1: resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} engines: {node: '>=18'} @@ -1879,6 +2199,14 @@ packages: resolution: {integrity: sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==} engines: {node: '>=14.16'} + package-config@5.0.0: + resolution: {integrity: sha512-GYTTew2slBcYdvRHqjhwaaydVMvn/qrGC323+nKclYioNSLTDUM/lGgtGTgyHVtYcozb+XkE8CNhwcraOmZ9Mg==} + engines: {node: '>=18'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -1886,6 +2214,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -1896,6 +2228,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -1912,6 +2248,10 @@ packages: resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} engines: {node: '>=0.10.0'} + plur@5.1.0: + resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -1919,6 +2259,10 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + engines: {node: '>=18'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -1990,6 +2334,18 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -1998,6 +2354,11 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rollup@3.29.5: resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -2031,9 +2392,21 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + shader-loader@1.3.1: resolution: {integrity: sha512-dt8F9K0x4rjmaFyHh7rNDfpt4LUiR64zhNIEwp2WbE99B3z4ALuvvmhftkElg93dUD6sTmv/aXa/z9SJiEddcA==} @@ -2047,6 +2420,21 @@ packages: engines: {node: '>=6'} hasBin: true + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + socket.io-client@4.8.1: resolution: {integrity: sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==} engines: {node: '>=10.0.0'} @@ -2075,15 +2463,39 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + stream-browserify@3.0.0: resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + strip-dirs@2.1.0: resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + supertap@3.0.1: + resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -2104,6 +2516,10 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -2128,6 +2544,10 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + time-zone@1.0.0: + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} + engines: {node: '>=4'} + to-buffer@1.1.1: resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} @@ -2135,6 +2555,13 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + typescript@5.7.2: resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} @@ -2174,6 +2601,10 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -2234,6 +2665,9 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -2251,15 +2685,33 @@ packages: webworker-promise@0.5.0: resolution: {integrity: sha512-14iR79jHAV7ozwvbfif+3wCaApT3I1g8Lo0rJZrwAu6wxZGx/08Y8KXz6as6ZLNUEEufeiEBBYrqyDBClXOsEw==} + well-known-symbols@2.0.0: + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} + engines: {node: '>=6'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + worker-loader@3.0.8: resolution: {integrity: sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==} engines: {node: '>= 10.13.0'} peerDependencies: webpack: ^4.0.0 || ^5.0.0 + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@6.0.0: + resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==} + engines: {node: ^18.17.0 || >=20.5.0} + ws@8.17.1: resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} @@ -2300,12 +2752,24 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} @@ -3398,6 +3862,21 @@ snapshots: dependencies: '@lit-labs/ssr-dom-shim': 1.2.1 + '@mapbox/node-pre-gyp@1.0.11': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + '@msgpack/msgpack@2.8.0': {} '@multiformats/blake2@1.0.13': @@ -3477,6 +3956,11 @@ snapshots: '@protobufjs/utf8@1.1.0': {} + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + '@shoelace-style/animations@1.2.0': {} '@shoelace-style/localize@3.2.1': {} @@ -3494,6 +3978,8 @@ snapshots: transitivePeerDependencies: - '@types/react' + '@sindresorhus/merge-streams@2.3.0': {} + '@socket.io/component-emitter@3.1.2': {} '@thewtex/zstddec@0.2.1': {} @@ -3529,6 +4015,24 @@ snapshots: '@types/webxr@0.5.20': {} + '@vercel/nft@0.27.6': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + node-gyp-build: 4.8.4 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + '@web3-storage/car-block-validator@1.2.0': dependencies: '@multiformats/blake2': 1.0.13 @@ -3617,10 +4121,26 @@ snapshots: '@xtuc/long@4.2.2': {} + abbrev@1.1.1: {} + + acorn-import-attributes@1.9.5(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.0 + acorn@8.14.0: {} actor@2.3.1: {} + agent-base@6.0.2: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 @@ -3632,15 +4152,40 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + aproba@2.0.0: {} + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 + array-find-index@1.0.2: {} + + arrgv@1.0.2: {} + + arrify@3.0.0: {} + + async-sema@3.1.1: {} + asynckit@0.4.0: {} autoprefixer@10.4.20(postcss@8.4.49): @@ -3653,6 +4198,52 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 + ava@6.2.0: + dependencies: + '@vercel/nft': 0.27.6 + acorn: 8.14.0 + acorn-walk: 8.3.4 + ansi-styles: 6.2.1 + arrgv: 1.0.2 + arrify: 3.0.0 + callsites: 4.2.0 + cbor: 9.0.2 + chalk: 5.3.0 + chunkd: 2.0.1 + ci-info: 4.1.0 + ci-parallel-vars: 1.0.1 + cli-truncate: 4.0.0 + code-excerpt: 4.0.0 + common-path-prefix: 3.0.0 + concordance: 5.0.4 + currently-unhandled: 0.4.1 + debug: 4.3.7 + emittery: 1.0.3 + figures: 6.1.0 + globby: 14.0.2 + ignore-by-default: 2.1.0 + indent-string: 5.0.0 + is-plain-object: 5.0.0 + is-promise: 4.0.0 + matcher: 5.0.0 + memoize: 10.0.0 + ms: 2.1.3 + p-map: 7.0.2 + package-config: 5.0.0 + picomatch: 4.0.2 + plur: 5.1.0 + pretty-ms: 9.2.0 + resolve-cwd: 3.0.0 + stack-utils: 2.0.6 + strip-ansi: 7.1.0 + supertap: 3.0.1 + temp-dir: 3.0.0 + write-file-atomic: 6.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + - supports-color + axios@1.7.7: dependencies: follow-redirects: 1.15.9 @@ -3693,6 +4284,10 @@ snapshots: binary-extensions@2.3.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + bl@1.2.3: dependencies: readable-stream: 2.3.8 @@ -3700,6 +4295,8 @@ snapshots: blakejs@1.2.1: {} + blueimp-md5@2.19.0: {} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -3738,8 +4335,14 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + callsites@4.2.0: {} + caniuse-lite@1.0.30001684: {} + cbor@9.0.2: + dependencies: + nofilter: 3.1.0 + cborg@4.2.6: {} chalk@5.3.0: {} @@ -3760,6 +4363,35 @@ snapshots: chrome-trace-event@1.0.4: {} + chunkd@2.0.1: {} + + ci-info@4.1.0: {} + + ci-parallel-vars@1.0.1: {} + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + code-excerpt@4.0.0: + dependencies: + convert-to-spaces: 2.0.1 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-support@1.1.3: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -3774,12 +4406,29 @@ snapshots: commander@9.2.0: {} + common-path-prefix@3.0.0: {} + composed-offset-position@0.0.4: {} concat-map@0.0.1: {} + concordance@5.0.4: + dependencies: + date-time: 3.1.0 + esutils: 2.0.3 + fast-diff: 1.3.0 + js-string-escape: 1.0.1 + lodash: 4.17.21 + md5-hex: 3.0.1 + semver: 7.6.3 + well-known-symbols: 2.0.0 + + console-control-strings@1.1.0: {} + convert-source-map@2.0.0: {} + convert-to-spaces@2.0.1: {} + core-js-compat@3.39.0: dependencies: browserslist: 4.24.2 @@ -3788,6 +4437,10 @@ snapshots: csstype@3.1.3: {} + currently-unhandled@0.4.1: + dependencies: + array-find-index: 1.0.2 + d3-array@3.2.4: dependencies: internmap: 2.0.3 @@ -3816,6 +4469,10 @@ snapshots: dependencies: d3-array: 3.2.4 + date-time@3.1.0: + dependencies: + time-zone: 1.0.0 + debug@4.3.7: dependencies: ms: 2.1.3 @@ -3872,8 +4529,18 @@ snapshots: delayed-stream@1.0.0: {} + delegates@1.0.0: {} + + detect-libc@2.0.3: {} + electron-to-chromium@1.5.65: {} + emittery@1.0.3: {} + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + emojis-list@3.0.0: {} end-of-stream@1.4.4: @@ -3960,6 +4627,10 @@ snapshots: escalade@3.2.0: {} + escape-string-regexp@2.0.0: {} + + escape-string-regexp@5.0.0: {} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -3975,6 +4646,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + esutils@2.0.3: {} eventemitter3@5.0.1: {} @@ -3983,6 +4656,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-diff@1.3.0: {} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4003,12 +4678,18 @@ snapshots: fflate@0.7.3: {} + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + file-type@3.9.0: {} file-type@5.2.0: {} file-type@6.2.0: {} + file-uri-to-path@1.0.0: {} + files-from-path@1.1.1: dependencies: graceful-fs: 4.2.11 @@ -4017,6 +4698,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-up-simple@1.0.0: {} + follow-redirects@1.15.9: {} form-data@4.0.1: @@ -4046,8 +4729,24 @@ snapshots: function-bind@1.1.2: {} + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} + + get-east-asian-width@1.3.0: {} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -4092,6 +4791,15 @@ snapshots: dependencies: define-properties: 1.2.1 + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 @@ -4113,12 +4821,25 @@ snapshots: has-symbols@1.0.3: {} + has-unicode@2.0.1: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + ieee754@1.2.1: {} + ignore-by-default@2.1.0: {} + + ignore@5.3.2: {} + imjoy-rpc@0.5.59: dependencies: '@msgpack/msgpack': 2.8.0 @@ -4128,6 +4849,10 @@ snapshots: - supports-color - utf-8-validate + imurmurhash@0.1.4: {} + + indent-string@5.0.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -4184,6 +4909,8 @@ snapshots: protons-runtime: 5.5.0 uint8arraylist: 2.4.8 + irregular-plurals@3.5.0: {} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -4194,6 +4921,10 @@ snapshots: is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -4202,8 +4933,14 @@ snapshots: is-number@7.0.0: {} + is-plain-object@5.0.0: {} + + is-promise@4.0.0: {} + is-stream@1.1.0: {} + is-unicode-supported@2.1.0: {} + isarray@1.0.0: {} it-filter@3.1.1: @@ -4253,23 +4990,6 @@ snapshots: transitivePeerDependencies: - debug - itk-wasm@1.0.0-b.183: - dependencies: - '@itk-wasm/dam': 1.1.1 - '@thewtex/zstddec': 0.2.1 - '@types/emscripten': 1.39.13 - axios: 1.7.7 - chalk: 5.3.0 - comlink: 4.4.2 - commander: 11.1.0 - fs-extra: 11.2.0 - glob: 8.1.0 - markdown-table: 3.0.4 - mime-types: 2.1.35 - wasm-feature-detect: 1.8.0 - transitivePeerDependencies: - - debug - itk-wasm@1.0.0-b.184: dependencies: '@itk-wasm/dam': 1.1.1 @@ -4295,6 +5015,8 @@ snapshots: js-sha3@0.8.0: {} + js-string-escape@1.0.1: {} + js-tokens@4.0.0: {} js-yaml@3.14.0: @@ -4302,6 +5024,11 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + jsesc@3.0.2: {} json-parse-even-better-errors@2.3.1: {} @@ -4336,6 +5063,8 @@ snapshots: lit-element: 4.1.1 lit-html: 3.2.1 + load-json-file@7.0.1: {} + loader-runner@4.3.0: {} loader-utils@1.4.2: @@ -4352,6 +5081,8 @@ snapshots: lodash.debounce@4.0.8: {} + lodash@4.17.21: {} + long@5.2.3: {} lru-cache@5.1.1: @@ -4362,8 +5093,24 @@ snapshots: dependencies: pify: 3.0.0 + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + markdown-table@3.0.4: {} + matcher@5.0.0: + dependencies: + escape-string-regexp: 5.0.0 + + md5-hex@3.0.1: + dependencies: + blueimp-md5: 2.19.0 + + memoize@10.0.0: + dependencies: + mimic-function: 5.0.1 + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -4379,6 +5126,8 @@ snapshots: dependencies: mime-db: 1.52.0 + mimic-function@5.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4416,12 +5165,31 @@ snapshots: neo-async@2.6.2: {} + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.4: {} + node-releases@2.0.18: {} + nofilter@3.1.0: {} + + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + object-assign@4.1.1: {} object-keys@1.1.1: {} @@ -4432,6 +5200,8 @@ snapshots: p-defer@4.0.1: {} + p-map@7.0.2: {} + p-queue@8.0.1: dependencies: eventemitter3: 5.0.1 @@ -4439,16 +5209,27 @@ snapshots: p-timeout@6.1.3: {} + package-config@5.0.0: + dependencies: + find-up-simple: 1.0.0 + load-json-file: 7.0.1 + + parse-ms@4.0.0: {} + path-is-absolute@1.0.1: {} path-parse@1.0.7: {} + path-type@5.0.0: {} + pend@1.2.0: {} picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pify@3.0.0: {} @@ -4459,6 +5240,10 @@ snapshots: pinkie@2.0.4: {} + plur@5.1.0: + dependencies: + irregular-plurals: 3.5.0 + postcss-value-parser@4.2.0: {} postcss@8.4.49: @@ -4467,6 +5252,10 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + process-nextick-args@2.0.1: {} progress-events@1.0.1: {} @@ -4557,6 +5346,14 @@ snapshots: dependencies: jsesc: 3.0.2 + require-directory@2.1.1: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@5.0.0: {} + resolve@1.22.8: dependencies: is-core-module: 2.15.1 @@ -4565,6 +5362,10 @@ snapshots: reusify@1.0.4: {} + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + rollup@3.29.5: optionalDependencies: fsevents: 2.3.3 @@ -4595,10 +5396,18 @@ snapshots: semver@6.3.1: {} + semver@7.6.3: {} + + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 + set-blocking@2.0.0: {} + shader-loader@1.3.1: dependencies: loader-utils: 1.4.2 @@ -4614,6 +5423,17 @@ snapshots: minimist: 1.2.8 shelljs: 0.8.5 + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + slash@5.1.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + socket.io-client@4.8.1: dependencies: '@socket.io/component-emitter': 3.1.2 @@ -4647,19 +5467,50 @@ snapshots: sprintf-js@1.0.3: {} + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + stream-browserify@3.0.0: dependencies: inherits: 2.0.4 readable-stream: 3.6.2 + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + strip-dirs@2.1.0: dependencies: is-natural-number: 4.0.1 + supertap@3.0.1: + dependencies: + indent-string: 5.0.0 + js-yaml: 3.14.1 + serialize-error: 7.0.1 + strip-ansi: 7.1.0 + supports-color@8.1.1: dependencies: has-flag: 4.0.0 @@ -4687,6 +5538,8 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + temp-dir@3.0.0: {} + terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.96.1(esbuild@0.19.12)): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -4707,12 +5560,18 @@ snapshots: through@2.3.8: {} + time-zone@1.0.0: {} + to-buffer@1.1.1: {} to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + tr46@0.0.3: {} + + type-fest@0.13.1: {} + typescript@5.7.2: {} uint8-varint@2.0.4: @@ -4750,6 +5609,8 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.1.0: {} + universalify@2.0.1: {} update-browserslist-db@1.1.1(browserslist@4.24.2): @@ -4791,6 +5652,8 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + webidl-conversions@3.0.1: {} + webpack-sources@3.2.3: {} webpack@5.96.1(esbuild@0.19.12): @@ -4825,14 +5688,36 @@ snapshots: webworker-promise@0.5.0: {} + well-known-symbols@2.0.0: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + worker-loader@3.0.8(webpack@5.96.1(esbuild@0.19.12)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.96.1(esbuild@0.19.12) + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrappy@1.0.2: {} + write-file-atomic@6.0.0: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + ws@8.17.1: {} wslink@2.2.1: @@ -4861,10 +5746,24 @@ snapshots: xtend@4.0.2: {} + y18n@5.0.8: {} + yallist@3.1.1: {} yallist@4.0.0: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 From 67eb34b8f523231d49cfd2b19836ba0fdd02634c Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 19 Dec 2024 07:34:02 -0500 Subject: [PATCH 13/16] BUG: Do not always set closing input In anti-alias cuberille filter --- wasm/anti-alias-cuberille/anti-alias-cuberille.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/wasm/anti-alias-cuberille/anti-alias-cuberille.cxx b/wasm/anti-alias-cuberille/anti-alias-cuberille.cxx index 04f26b0..3ce3899 100644 --- a/wasm/anti-alias-cuberille/anti-alias-cuberille.cxx +++ b/wasm/anti-alias-cuberille/anti-alias-cuberille.cxx @@ -134,9 +134,8 @@ int cuberilleWithInterpolator(itk::wasm::Pipeline & pipeline, const TImage * ima else { interpolator->SetInputImage(closingFilter->GetOutput()); - interpolator->SetInputImage(closingFilter->GetOutput()); + cuberille->SetInput(closingFilter->GetOutput()); } - cuberille->SetInput(closingFilter->GetOutput()); cuberille->SetIsoSurfaceValue(isoSurfaceValue); cuberille->SetGenerateTriangleFaces(!quadrilateralFaces); cuberille->SetProjectVertexSurfaceDistanceThreshold(projectVertexSurfaceDistanceThreshold); From 328ed6a45e471c6d3edd2351dece1b6b04aee292 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 19 Dec 2024 07:41:26 -0500 Subject: [PATCH 14/16] ENH: Testing with the OFF file format output --- wasm/anti-alias-cuberille/CMakeLists.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/wasm/anti-alias-cuberille/CMakeLists.txt b/wasm/anti-alias-cuberille/CMakeLists.txt index 44c8c19..ca0d330 100644 --- a/wasm/anti-alias-cuberille/CMakeLists.txt +++ b/wasm/anti-alias-cuberille/CMakeLists.txt @@ -4,7 +4,9 @@ set(io_components) if (NOT WASI AND NOT EMSCRIPTEN) set(io_components ITKIONIFTI - ITKIOMeshVTK) + ITKIOMeshVTK + ITKIOMeshOFF + ) endif() find_package(ITK REQUIRED COMPONENTS @@ -23,7 +25,8 @@ add_test(NAME anti-alias-cuberille-help COMMAND anti-alias-cuberille --help) add_test(NAME anti-alias-cuberille-defaults COMMAND anti-alias-cuberille ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/brain-seg.nii.gz - ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-defaults.vtk) + ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-defaults.off + --no-closing) add_test(NAME anti-alias-cuberille-convergence-options COMMAND anti-alias-cuberille @@ -36,8 +39,9 @@ add_test(NAME anti-alias-cuberille-convergence-options add_test(NAME anti-alias-cuberille-quadrilateral-faces COMMAND anti-alias-cuberille ${CMAKE_CURRENT_SOURCE_DIR}/../../test/Input/brain-seg.nii.gz - ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-quadrilateral-faces.vtk + ${CMAKE_CURRENT_BINARY_DIR}/anti-alias-cuberille-quadrilateral-faces.off --quadrilateral-faces + --no-closing --surface-distance-threshold 0.5 --maximum-steps 150 --step-relaxation-factor 0.75 From c567b64f5bef9e635c5d8b2bbbb073e083c582fd Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 19 Dec 2024 07:58:15 -0500 Subject: [PATCH 15/16] BUG: cuberille pipeline --iso-surface-value is an option instead of a flag --- test/Input/tinyT1.nii.gz | Bin 0 -> 213261 bytes wasm/CMakeLists.txt | 2 ++ wasm/anti-alias-cuberille/CMakeLists.txt | 9 --------- wasm/cuberille/CMakeLists.txt | 9 ++++++++- wasm/cuberille/cuberille.cxx | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 test/Input/tinyT1.nii.gz diff --git a/test/Input/tinyT1.nii.gz b/test/Input/tinyT1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4ae8ffb9cf1e9f63e80cab6d7a6d7e3639064553 GIT binary patch literal 213261 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 z

$oe5Q~)JJ05IDhM2sE|n2_dW8(lx^bL^7r+ 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

    xLhyt43Wb_jO2&NlGo6j6>13 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ⓈL6o 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 zcBgNchRyIZ7z$fc`Urequired()->type_name("INPUT_IMAGE"); double isoSurfaceValue = 1.0; - pipeline.add_flag("--iso-surface-value", isoSurfaceValue, "Value of the iso-surface for which to generate the mesh. Pixels equal to or greater than this value are considered to lie on the surface or inside the resultant mesh."); + pipeline.add_option("--iso-surface-value", isoSurfaceValue, "Value of the iso-surface for which to generate the mesh. Pixels equal to or greater than this value are considered to lie on the surface or inside the resultant mesh."); bool quadrilateralFaces = false; pipeline.add_flag("--quadrilateral-faces", quadrilateralFaces, "Generate quadrilateral faces instead of triangle faces."); @@ -51,7 +51,7 @@ int cuberilleWithInterpolator(itk::wasm::Pipeline & pipeline, const TImage * ima pipeline.add_flag("--image-pixel-to-cell-data", imagePixelToCellData, "Whether the adjacent input pixel value should be saved as cell data in the output mesh."); double projectVertexSurfaceDistanceThreshold = 0.01; - pipeline.add_option("--surface-distance-threshold", projectVertexSurfaceDistanceThreshold, "Threshold for the distance from the iso-surface during vertex projection in pixel units. Smaller is smoother but takes longer."); + pipeline.add_option("--surface-distance-threshold", projectVertexSurfaceDistanceThreshold, "Threshold for the distance from the rface during vertex projection in pixel units. Smaller is smoother but takes longer."); double projectVertexStepLength = -1.0; pipeline.add_option("--step-length", projectVertexStepLength, "Initial step length for vertex projection in physical units. Default is max spacing * 0.35."); From 65119f6f6b142dfb836a7310edeae02b77bec3d5 Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Thu, 19 Dec 2024 08:38:44 -0500 Subject: [PATCH 16/16] ENH: Bump wasm version to 0.2.0 --- package.json | 2 +- typescript/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5b09d73..2c9ee74 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "itkwasm-cuberille-build", - "version": "0.1.0", + "version": "0.2.0", "private": true, "description": "Scripts to generate itkwasm-cuberille ITK-Wasm artifacts.", "type": "module", diff --git a/typescript/package.json b/typescript/package.json index 1050286..1fd442a 100644 --- a/typescript/package.json +++ b/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@itk-wasm/cuberille", - "version": "0.1.0", + "version": "0.2.0", "description": "Cuberille implicit surface polygonization to generate meshes from images.", "type": "module", "module": "./dist/index.js",