From 0e7f84be19129030681ad598d314a3cd44c3362c Mon Sep 17 00:00:00 2001 From: Jake Dluhy Date: Thu, 23 Jan 2025 12:43:02 +0100 Subject: [PATCH 1/2] Add Avian costs --- .../packages/cost/providers/avian/index.ts | 44 + bifrost/packages/cost/providers/mappings.ts | 17 + costs/.pnp.cjs | 12332 ++++++++++++++++ costs/.pnp.loader.mjs | 2126 +++ costs/.yarn/install-state.gz | Bin 0 -> 371572 bytes costs/__tests__/ensureOnlyOne.ts | 18 + costs/src/providers/avian/index.ts | 44 + costs/src/providers/mappings.ts | 8 + .../packages/cost/providers/avian/index.ts | 44 + .../src/packages/cost/providers/mappings.ts | 17 + web/packages/cost/providers/avian/index.ts | 44 + web/packages/cost/providers/mappings.ts | 17 + .../packages/cost/providers/avian/index.ts | 44 + .../src/packages/cost/providers/mappings.ts | 17 + 14 files changed, 14772 insertions(+) create mode 100644 bifrost/packages/cost/providers/avian/index.ts create mode 100755 costs/.pnp.cjs create mode 100644 costs/.pnp.loader.mjs create mode 100644 costs/.yarn/install-state.gz create mode 100644 costs/src/providers/avian/index.ts create mode 100644 valhalla/jawn/src/packages/cost/providers/avian/index.ts create mode 100644 web/packages/cost/providers/avian/index.ts create mode 100644 worker/src/packages/cost/providers/avian/index.ts diff --git a/bifrost/packages/cost/providers/avian/index.ts b/bifrost/packages/cost/providers/avian/index.ts new file mode 100644 index 000000000..0ae179db3 --- /dev/null +++ b/bifrost/packages/cost/providers/avian/index.ts @@ -0,0 +1,44 @@ +import { ModelRow } from "../../interfaces/Cost"; + +export const costs: ModelRow[] = [ + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-405B-Instruct", + }, + cost: { + prompt_token: 0.0000015, + completion_token: 0.0000015, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.3-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-8B-Instruct", + }, + cost: { + prompt_token: 0.0000001, + completion_token: 0.0000001, + }, + }, +]; diff --git a/bifrost/packages/cost/providers/mappings.ts b/bifrost/packages/cost/providers/mappings.ts index 33d6215fe..f4b7a2d53 100644 --- a/bifrost/packages/cost/providers/mappings.ts +++ b/bifrost/packages/cost/providers/mappings.ts @@ -16,6 +16,8 @@ import { openAIProvider } from "./openai"; import { anthropicProvider } from "./anthropic"; import { costs as awsBedrockCosts } from "./awsBedrock"; import { costs as deepseekCosts } from "./deepseek"; +import { costs as xCosts } from "./x"; +import { costs as avianCosts } from "./avian"; const openAiPattern = /^https:\/\/api\.openai\.com/; const anthropicPattern = /^https:\/\/api\.anthropic\.com/; @@ -52,6 +54,9 @@ const firecrawl = /^https:\/\/api\.firecrawl\.dev/; const awsBedrock = /^https:\/\/bedrock-runtime\.[a-z0-9-]+\.amazonaws\.com\/.*/; // https://api.deepseek.com const deepseek = /^https:\/\/api\.deepseek\.com/; +// https://api.x.ai +const x = /^https:\/\/api\.x\.ai/; +const avianPattern = /^https:\/\/api\.avian\.io/; export const providersNames = [ "OPENAI", @@ -78,6 +83,8 @@ export const providersNames = [ "FIRECRAWL", "AWS", "DEEPSEEK", + "X", + "AVIAN" ] as const; export type ProviderName = (typeof providersNames)[number]; @@ -127,6 +134,11 @@ export const providers: { pattern: cloudflareAiGatewayPattern, provider: "CLOUDFLARE", }, + { + pattern: x, + provider: "X", + costs: xCosts, + }, { pattern: twoYFV, provider: "2YFV", @@ -206,6 +218,11 @@ export const providers: { provider: "DEEPSEEK", costs: deepseekCosts, }, + { + pattern: avianPattern, + provider: "AVIAN", + costs: avianCosts, + }, ]; export const playgroundModels: { diff --git a/costs/.pnp.cjs b/costs/.pnp.cjs new file mode 100755 index 000000000..332ef8996 --- /dev/null +++ b/costs/.pnp.cjs @@ -0,0 +1,12332 @@ +#!/usr/bin/env node +/* eslint-disable */ +// @ts-nocheck +"use strict"; + +const RAW_RUNTIME_STATE = +'{\ + "__info": [\ + "This file is automatically generated. Do not touch it, or risk",\ + "your modifications being lost."\ + ],\ + "dependencyTreeRoots": [\ + {\ + "name": "GenAICost",\ + "reference": "workspace:."\ + }\ + ],\ + "enableTopLevelFallback": true,\ + "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\ + "fallbackExclusionList": [\ + ["GenAICost", ["workspace:."]]\ + ],\ + "fallbackPool": [\ + ],\ + "packageRegistryData": [\ + [null, [\ + [null, {\ + "packageLocation": "./",\ + "packageDependencies": [\ + ["@jest/globals", "npm:29.7.0"],\ + ["@types/jest", "npm:29.5.14"],\ + ["@types/node", "npm:20.17.16"],\ + ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ + ["nodemon", "npm:3.1.9"],\ + ["ts-jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5"],\ + ["ts-node", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2"],\ + ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@ampproject/remapping", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-10c0.zip/node_modules/@ampproject/remapping/",\ + "packageDependencies": [\ + ["@ampproject/remapping", "npm:2.3.0"],\ + ["@jridgewell/gen-mapping", "npm:0.3.8"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/code-frame", [\ + ["npm:7.26.2", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-code-frame-npm-7.26.2-4902b56813-10c0.zip/node_modules/@babel/code-frame/",\ + "packageDependencies": [\ + ["@babel/code-frame", "npm:7.26.2"],\ + ["@babel/helper-validator-identifier", "npm:7.25.9"],\ + ["js-tokens", "npm:4.0.0"],\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/compat-data", [\ + ["npm:7.26.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-compat-data-npm-7.26.5-b6047aeefb-10c0.zip/node_modules/@babel/compat-data/",\ + "packageDependencies": [\ + ["@babel/compat-data", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/core", [\ + ["npm:7.26.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-core-npm-7.26.0-6f14d37f26-10c0.zip/node_modules/@babel/core/",\ + "packageDependencies": [\ + ["@babel/core", "npm:7.26.0"],\ + ["@ampproject/remapping", "npm:2.3.0"],\ + ["@babel/code-frame", "npm:7.26.2"],\ + ["@babel/generator", "npm:7.26.5"],\ + ["@babel/helper-compilation-targets", "npm:7.26.5"],\ + ["@babel/helper-module-transforms", "virtual:6f14d37f26f87c55654e510172561c825f7eb822527d5aaba60d24913853c925a2338249715305c87baadd7e7b73f94aba8cb62d407d8bb26b18bd6b90ca945f#npm:7.26.0"],\ + ["@babel/helpers", "npm:7.26.0"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@babel/template", "npm:7.25.9"],\ + ["@babel/traverse", "npm:7.26.5"],\ + ["@babel/types", "npm:7.26.5"],\ + ["convert-source-map", "npm:2.0.0"],\ + ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ + ["gensync", "npm:1.0.0-beta.2"],\ + ["json5", "npm:2.2.3"],\ + ["semver", "npm:6.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/generator", [\ + ["npm:7.26.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-generator-npm-7.26.5-8de063382c-10c0.zip/node_modules/@babel/generator/",\ + "packageDependencies": [\ + ["@babel/generator", "npm:7.26.5"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@babel/types", "npm:7.26.5"],\ + ["@jridgewell/gen-mapping", "npm:0.3.8"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["jsesc", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-compilation-targets", [\ + ["npm:7.26.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helper-compilation-targets-npm-7.26.5-e3b4215b3c-10c0.zip/node_modules/@babel/helper-compilation-targets/",\ + "packageDependencies": [\ + ["@babel/helper-compilation-targets", "npm:7.26.5"],\ + ["@babel/compat-data", "npm:7.26.5"],\ + ["@babel/helper-validator-option", "npm:7.25.9"],\ + ["browserslist", "npm:4.24.4"],\ + ["lru-cache", "npm:5.1.1"],\ + ["semver", "npm:6.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-module-imports", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helper-module-imports-npm-7.25.9-b86e31bde9-10c0.zip/node_modules/@babel/helper-module-imports/",\ + "packageDependencies": [\ + ["@babel/helper-module-imports", "npm:7.25.9"],\ + ["@babel/traverse", "npm:7.26.5"],\ + ["@babel/types", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-module-transforms", [\ + ["npm:7.26.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helper-module-transforms-npm-7.26.0-7557a3558f-10c0.zip/node_modules/@babel/helper-module-transforms/",\ + "packageDependencies": [\ + ["@babel/helper-module-transforms", "npm:7.26.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:6f14d37f26f87c55654e510172561c825f7eb822527d5aaba60d24913853c925a2338249715305c87baadd7e7b73f94aba8cb62d407d8bb26b18bd6b90ca945f#npm:7.26.0", {\ + "packageLocation": "./.yarn/__virtual__/@babel-helper-module-transforms-virtual-5ddb520440/4/.yarn/berry/cache/@babel-helper-module-transforms-npm-7.26.0-7557a3558f-10c0.zip/node_modules/@babel/helper-module-transforms/",\ + "packageDependencies": [\ + ["@babel/helper-module-transforms", "virtual:6f14d37f26f87c55654e510172561c825f7eb822527d5aaba60d24913853c925a2338249715305c87baadd7e7b73f94aba8cb62d407d8bb26b18bd6b90ca945f#npm:7.26.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-module-imports", "npm:7.25.9"],\ + ["@babel/helper-validator-identifier", "npm:7.25.9"],\ + ["@babel/traverse", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-plugin-utils", [\ + ["npm:7.26.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helper-plugin-utils-npm-7.26.5-f9c17c9880-10c0.zip/node_modules/@babel/helper-plugin-utils/",\ + "packageDependencies": [\ + ["@babel/helper-plugin-utils", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-string-parser", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helper-string-parser-npm-7.25.9-eade578078-10c0.zip/node_modules/@babel/helper-string-parser/",\ + "packageDependencies": [\ + ["@babel/helper-string-parser", "npm:7.25.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-validator-identifier", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helper-validator-identifier-npm-7.25.9-2634b947a4-10c0.zip/node_modules/@babel/helper-validator-identifier/",\ + "packageDependencies": [\ + ["@babel/helper-validator-identifier", "npm:7.25.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helper-validator-option", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helper-validator-option-npm-7.25.9-6450027d5d-10c0.zip/node_modules/@babel/helper-validator-option/",\ + "packageDependencies": [\ + ["@babel/helper-validator-option", "npm:7.25.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/helpers", [\ + ["npm:7.26.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-helpers-npm-7.26.0-d7ff09b837-10c0.zip/node_modules/@babel/helpers/",\ + "packageDependencies": [\ + ["@babel/helpers", "npm:7.26.0"],\ + ["@babel/template", "npm:7.25.9"],\ + ["@babel/types", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/parser", [\ + ["npm:7.26.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-parser-npm-7.26.5-2514b2b265-10c0.zip/node_modules/@babel/parser/",\ + "packageDependencies": [\ + ["@babel/parser", "npm:7.26.5"],\ + ["@babel/types", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-async-generators", [\ + ["npm:7.8.4", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-10c0.zip/node_modules/@babel/plugin-syntax-async-generators/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-async-generators", "npm:7.8.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-993f7fd03e/4/.yarn/berry/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-10c0.zip/node_modules/@babel/plugin-syntax-async-generators/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-async-generators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-de958d470e/4/.yarn/berry/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-10c0.zip/node_modules/@babel/plugin-syntax-async-generators/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-async-generators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-bigint", [\ + ["npm:7.8.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-10c0.zip/node_modules/@babel/plugin-syntax-bigint/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-bigint", "npm:7.8.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-bigint-virtual-58d7bec2f4/4/.yarn/berry/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-10c0.zip/node_modules/@babel/plugin-syntax-bigint/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-bigint", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-bigint-virtual-1b018ab51f/4/.yarn/berry/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-10c0.zip/node_modules/@babel/plugin-syntax-bigint/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-bigint", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-class-properties", [\ + ["npm:7.12.13", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-10c0.zip/node_modules/@babel/plugin-syntax-class-properties/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-class-properties", "npm:7.12.13"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.12.13", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-7c6db10d10/4/.yarn/berry/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-10c0.zip/node_modules/@babel/plugin-syntax-class-properties/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-class-properties", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.12.13"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.12.13", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-31941d65fb/4/.yarn/berry/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-10c0.zip/node_modules/@babel/plugin-syntax-class-properties/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-class-properties", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.12.13"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-class-static-block", [\ + ["npm:7.14.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-10c0.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-class-static-block", "npm:7.14.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-static-block-virtual-bde8a43daf/4/.yarn/berry/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-10c0.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-class-static-block", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-static-block-virtual-2b1a0dfadb/4/.yarn/berry/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-10c0.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-class-static-block", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-import-attributes", [\ + ["npm:7.26.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-import-attributes-npm-7.26.0-7a281ed168-10c0.zip/node_modules/@babel/plugin-syntax-import-attributes/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-import-attributes", "npm:7.26.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.26.0", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-attributes-virtual-5cf75e242a/4/.yarn/berry/cache/@babel-plugin-syntax-import-attributes-npm-7.26.0-7a281ed168-10c0.zip/node_modules/@babel/plugin-syntax-import-attributes/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-import-attributes", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.26.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.26.0", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-attributes-virtual-b07269264d/4/.yarn/berry/cache/@babel-plugin-syntax-import-attributes-npm-7.26.0-7a281ed168-10c0.zip/node_modules/@babel/plugin-syntax-import-attributes/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-import-attributes", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.26.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-import-meta", [\ + ["npm:7.10.4", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-10c0.zip/node_modules/@babel/plugin-syntax-import-meta/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-import-meta", "npm:7.10.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-meta-virtual-0f69c506d3/4/.yarn/berry/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-10c0.zip/node_modules/@babel/plugin-syntax-import-meta/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-import-meta", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-meta-virtual-f93c2fb8fd/4/.yarn/berry/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-10c0.zip/node_modules/@babel/plugin-syntax-import-meta/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-import-meta", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-json-strings", [\ + ["npm:7.8.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-10c0.zip/node_modules/@babel/plugin-syntax-json-strings/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-json-strings", "npm:7.8.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-070ad1091b/4/.yarn/berry/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-10c0.zip/node_modules/@babel/plugin-syntax-json-strings/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-json-strings", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-a3f0e0e160/4/.yarn/berry/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-10c0.zip/node_modules/@babel/plugin-syntax-json-strings/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-json-strings", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-jsx", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-jsx-npm-7.25.9-3df022f433-10c0.zip/node_modules/@babel/plugin-syntax-jsx/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-jsx", "npm:7.25.9"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-jsx-virtual-e925165891/4/.yarn/berry/cache/@babel-plugin-syntax-jsx-npm-7.25.9-3df022f433-10c0.zip/node_modules/@babel/plugin-syntax-jsx/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-jsx", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-logical-assignment-operators", [\ + ["npm:7.10.4", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-10c0.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-logical-assignment-operators", "npm:7.10.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-ff68e11bd5/4/.yarn/berry/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-10c0.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-logical-assignment-operators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-762ebed7b4/4/.yarn/berry/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-10c0.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-nullish-coalescing-operator", [\ + ["npm:7.8.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-10c0.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-nullish-coalescing-operator", "npm:7.8.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-383b231c23/4/.yarn/berry/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-10c0.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-6f8077d6a2/4/.yarn/berry/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-10c0.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-numeric-separator", [\ + ["npm:7.10.4", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-10c0.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-numeric-separator", "npm:7.10.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-a60ecf78fb/4/.yarn/berry/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-10c0.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-numeric-separator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-86bbfce2ec/4/.yarn/berry/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-10c0.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-numeric-separator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-object-rest-spread", [\ + ["npm:7.8.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-10c0.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-object-rest-spread", "npm:7.8.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-0311abb51d/4/.yarn/berry/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-10c0.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-object-rest-spread", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-b130a3afe0/4/.yarn/berry/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-10c0.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-object-rest-spread", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-optional-catch-binding", [\ + ["npm:7.8.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-10c0.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-optional-catch-binding", "npm:7.8.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-d5627250c6/4/.yarn/berry/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-10c0.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-optional-catch-binding", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-601db1a615/4/.yarn/berry/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-10c0.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-optional-catch-binding", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-optional-chaining", [\ + ["npm:7.8.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-10c0.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-optional-chaining", "npm:7.8.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-a53e18a8d9/4/.yarn/berry/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-10c0.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-optional-chaining", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-9f24dd2e8f/4/.yarn/berry/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-10c0.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-optional-chaining", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-private-property-in-object", [\ + ["npm:7.14.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-10c0.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-private-property-in-object", "npm:7.14.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-private-property-in-object-virtual-9c5d44fe2f/4/.yarn/berry/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-10c0.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-private-property-in-object", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-private-property-in-object-virtual-1411e93096/4/.yarn/berry/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-10c0.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-private-property-in-object", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-top-level-await", [\ + ["npm:7.14.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-10c0.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-top-level-await", "npm:7.14.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-245beac28c/4/.yarn/berry/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-10c0.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-top-level-await", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-f2ed5d8320/4/.yarn/berry/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-10c0.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-top-level-await", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/plugin-syntax-typescript", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-typescript-npm-7.25.9-5201e4ba77-10c0.zip/node_modules/@babel/plugin-syntax-typescript/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-typescript", "npm:7.25.9"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9", {\ + "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-typescript-virtual-6a025e44cd/4/.yarn/berry/cache/@babel-plugin-syntax-typescript-npm-7.25.9-5201e4ba77-10c0.zip/node_modules/@babel/plugin-syntax-typescript/",\ + "packageDependencies": [\ + ["@babel/plugin-syntax-typescript", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/template", [\ + ["npm:7.25.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-template-npm-7.25.9-d903b7b6d5-10c0.zip/node_modules/@babel/template/",\ + "packageDependencies": [\ + ["@babel/template", "npm:7.25.9"],\ + ["@babel/code-frame", "npm:7.26.2"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@babel/types", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/traverse", [\ + ["npm:7.26.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-traverse-npm-7.26.5-a3d61690ba-10c0.zip/node_modules/@babel/traverse/",\ + "packageDependencies": [\ + ["@babel/traverse", "npm:7.26.5"],\ + ["@babel/code-frame", "npm:7.26.2"],\ + ["@babel/generator", "npm:7.26.5"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@babel/template", "npm:7.25.9"],\ + ["@babel/types", "npm:7.26.5"],\ + ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ + ["globals", "npm:11.12.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@babel/types", [\ + ["npm:7.26.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@babel-types-npm-7.26.5-8e8f93f536-10c0.zip/node_modules/@babel/types/",\ + "packageDependencies": [\ + ["@babel/types", "npm:7.26.5"],\ + ["@babel/helper-string-parser", "npm:7.25.9"],\ + ["@babel/helper-validator-identifier", "npm:7.25.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@bcoe/v8-coverage", [\ + ["npm:0.2.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-10c0.zip/node_modules/@bcoe/v8-coverage/",\ + "packageDependencies": [\ + ["@bcoe/v8-coverage", "npm:0.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@cspotcode/source-map-support", [\ + ["npm:0.8.1", {\ + "packageLocation": "../../../.yarn/berry/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-10c0.zip/node_modules/@cspotcode/source-map-support/",\ + "packageDependencies": [\ + ["@cspotcode/source-map-support", "npm:0.8.1"],\ + ["@jridgewell/trace-mapping", "npm:0.3.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@isaacs/cliui", [\ + ["npm:8.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-10c0.zip/node_modules/@isaacs/cliui/",\ + "packageDependencies": [\ + ["@isaacs/cliui", "npm:8.0.2"],\ + ["string-width", "npm:5.1.2"],\ + ["string-width-cjs", [\ + "string-width",\ + "npm:4.2.3"\ + ]],\ + ["strip-ansi", "npm:7.1.0"],\ + ["strip-ansi-cjs", [\ + "strip-ansi",\ + "npm:6.0.1"\ + ]],\ + ["wrap-ansi", "npm:8.1.0"],\ + ["wrap-ansi-cjs", [\ + "wrap-ansi",\ + "npm:7.0.0"\ + ]]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@isaacs/fs-minipass", [\ + ["npm:4.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-10c0.zip/node_modules/@isaacs/fs-minipass/",\ + "packageDependencies": [\ + ["@isaacs/fs-minipass", "npm:4.0.1"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@istanbuljs/load-nyc-config", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-10c0.zip/node_modules/@istanbuljs/load-nyc-config/",\ + "packageDependencies": [\ + ["@istanbuljs/load-nyc-config", "npm:1.1.0"],\ + ["camelcase", "npm:5.3.1"],\ + ["find-up", "npm:4.1.0"],\ + ["get-package-type", "npm:0.1.0"],\ + ["js-yaml", "npm:3.14.1"],\ + ["resolve-from", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@istanbuljs/schema", [\ + ["npm:0.1.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-10c0.zip/node_modules/@istanbuljs/schema/",\ + "packageDependencies": [\ + ["@istanbuljs/schema", "npm:0.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/console", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-console-npm-29.7.0-77689f186f-10c0.zip/node_modules/@jest/console/",\ + "packageDependencies": [\ + ["@jest/console", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["chalk", "npm:4.1.2"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/core", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-core-npm-29.7.0-cef60d74c4-10c0.zip/node_modules/@jest/core/",\ + "packageDependencies": [\ + ["@jest/core", "npm:29.7.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0", {\ + "packageLocation": "./.yarn/__virtual__/@jest-core-virtual-ebd37f90be/4/.yarn/berry/cache/@jest-core-npm-29.7.0-cef60d74c4-10c0.zip/node_modules/@jest/core/",\ + "packageDependencies": [\ + ["@jest/core", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ + ["@jest/console", "npm:29.7.0"],\ + ["@jest/reporters", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/transform", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["@types/node-notifier", null],\ + ["ansi-escapes", "npm:4.3.2"],\ + ["chalk", "npm:4.1.2"],\ + ["ci-info", "npm:3.9.0"],\ + ["exit", "npm:0.1.2"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-changed-files", "npm:29.7.0"],\ + ["jest-config", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ + ["jest-haste-map", "npm:29.7.0"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-regex-util", "npm:29.6.3"],\ + ["jest-resolve", "npm:29.7.0"],\ + ["jest-resolve-dependencies", "npm:29.7.0"],\ + ["jest-runner", "npm:29.7.0"],\ + ["jest-runtime", "npm:29.7.0"],\ + ["jest-snapshot", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-validate", "npm:29.7.0"],\ + ["jest-watcher", "npm:29.7.0"],\ + ["micromatch", "npm:4.0.8"],\ + ["node-notifier", null],\ + ["pretty-format", "npm:29.7.0"],\ + ["slash", "npm:3.0.0"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "packagePeers": [\ + "@types/node-notifier",\ + "node-notifier"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/environment", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-environment-npm-29.7.0-97705658d0-10c0.zip/node_modules/@jest/environment/",\ + "packageDependencies": [\ + ["@jest/environment", "npm:29.7.0"],\ + ["@jest/fake-timers", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["jest-mock", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/expect", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-expect-npm-29.7.0-9dfe9cebaa-10c0.zip/node_modules/@jest/expect/",\ + "packageDependencies": [\ + ["@jest/expect", "npm:29.7.0"],\ + ["expect", "npm:29.7.0"],\ + ["jest-snapshot", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/expect-utils", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-expect-utils-npm-29.7.0-14740cc487-10c0.zip/node_modules/@jest/expect-utils/",\ + "packageDependencies": [\ + ["@jest/expect-utils", "npm:29.7.0"],\ + ["jest-get-type", "npm:29.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/fake-timers", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-10c0.zip/node_modules/@jest/fake-timers/",\ + "packageDependencies": [\ + ["@jest/fake-timers", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@sinonjs/fake-timers", "npm:10.3.0"],\ + ["@types/node", "npm:22.10.9"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-mock", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/globals", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-globals-npm-29.7.0-06f2bd411e-10c0.zip/node_modules/@jest/globals/",\ + "packageDependencies": [\ + ["@jest/globals", "npm:29.7.0"],\ + ["@jest/environment", "npm:29.7.0"],\ + ["@jest/expect", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["jest-mock", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/reporters", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-reporters-npm-29.7.0-2561cd7a09-10c0.zip/node_modules/@jest/reporters/",\ + "packageDependencies": [\ + ["@jest/reporters", "npm:29.7.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0", {\ + "packageLocation": "./.yarn/__virtual__/@jest-reporters-virtual-4561b1acc1/4/.yarn/berry/cache/@jest-reporters-npm-29.7.0-2561cd7a09-10c0.zip/node_modules/@jest/reporters/",\ + "packageDependencies": [\ + ["@jest/reporters", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ + ["@bcoe/v8-coverage", "npm:0.2.3"],\ + ["@jest/console", "npm:29.7.0"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/transform", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@types/node", "npm:22.10.9"],\ + ["@types/node-notifier", null],\ + ["chalk", "npm:4.1.2"],\ + ["collect-v8-coverage", "npm:1.0.2"],\ + ["exit", "npm:0.1.2"],\ + ["glob", "npm:7.2.3"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["istanbul-lib-coverage", "npm:3.2.2"],\ + ["istanbul-lib-instrument", "npm:6.0.3"],\ + ["istanbul-lib-report", "npm:3.0.1"],\ + ["istanbul-lib-source-maps", "npm:4.0.1"],\ + ["istanbul-reports", "npm:3.1.7"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-worker", "npm:29.7.0"],\ + ["node-notifier", null],\ + ["slash", "npm:3.0.0"],\ + ["string-length", "npm:4.0.2"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["v8-to-istanbul", "npm:9.3.0"]\ + ],\ + "packagePeers": [\ + "@types/node-notifier",\ + "node-notifier"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/schemas", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-schemas-npm-29.6.3-292730e442-10c0.zip/node_modules/@jest/schemas/",\ + "packageDependencies": [\ + ["@jest/schemas", "npm:29.6.3"],\ + ["@sinclair/typebox", "npm:0.27.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/source-map", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-source-map-npm-29.6.3-8bb8289263-10c0.zip/node_modules/@jest/source-map/",\ + "packageDependencies": [\ + ["@jest/source-map", "npm:29.6.3"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["callsites", "npm:3.1.0"],\ + ["graceful-fs", "npm:4.2.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/test-result", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-test-result-npm-29.7.0-4bb532101b-10c0.zip/node_modules/@jest/test-result/",\ + "packageDependencies": [\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/console", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/istanbul-lib-coverage", "npm:2.0.6"],\ + ["collect-v8-coverage", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/test-sequencer", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-test-sequencer-npm-29.7.0-291f23a495-10c0.zip/node_modules/@jest/test-sequencer/",\ + "packageDependencies": [\ + ["@jest/test-sequencer", "npm:29.7.0"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-haste-map", "npm:29.7.0"],\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/transform", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-transform-npm-29.7.0-af20d68b57-10c0.zip/node_modules/@jest/transform/",\ + "packageDependencies": [\ + ["@jest/transform", "npm:29.7.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["babel-plugin-istanbul", "npm:6.1.1"],\ + ["chalk", "npm:4.1.2"],\ + ["convert-source-map", "npm:2.0.0"],\ + ["fast-json-stable-stringify", "npm:2.1.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-haste-map", "npm:29.7.0"],\ + ["jest-regex-util", "npm:29.6.3"],\ + ["jest-util", "npm:29.7.0"],\ + ["micromatch", "npm:4.0.8"],\ + ["pirates", "npm:4.0.6"],\ + ["slash", "npm:3.0.0"],\ + ["write-file-atomic", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jest/types", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@jest-types-npm-29.6.3-a584ca999d-10c0.zip/node_modules/@jest/types/",\ + "packageDependencies": [\ + ["@jest/types", "npm:29.6.3"],\ + ["@jest/schemas", "npm:29.6.3"],\ + ["@types/istanbul-lib-coverage", "npm:2.0.6"],\ + ["@types/istanbul-reports", "npm:3.0.4"],\ + ["@types/node", "npm:22.10.9"],\ + ["@types/yargs", "npm:17.0.33"],\ + ["chalk", "npm:4.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/gen-mapping", [\ + ["npm:0.3.8", {\ + "packageLocation": "../../../.yarn/berry/cache/@jridgewell-gen-mapping-npm-0.3.8-647be6e286-10c0.zip/node_modules/@jridgewell/gen-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/gen-mapping", "npm:0.3.8"],\ + ["@jridgewell/set-array", "npm:1.2.1"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/resolve-uri", [\ + ["npm:3.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-10c0.zip/node_modules/@jridgewell/resolve-uri/",\ + "packageDependencies": [\ + ["@jridgewell/resolve-uri", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/set-array", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../../.yarn/berry/cache/@jridgewell-set-array-npm-1.2.1-2312928209-10c0.zip/node_modules/@jridgewell/set-array/",\ + "packageDependencies": [\ + ["@jridgewell/set-array", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/sourcemap-codec", [\ + ["npm:1.5.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-10c0.zip/node_modules/@jridgewell/sourcemap-codec/",\ + "packageDependencies": [\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/trace-mapping", [\ + ["npm:0.3.25", {\ + "packageLocation": "../../../.yarn/berry/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-10c0.zip/node_modules/@jridgewell/trace-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@jridgewell/resolve-uri", "npm:3.1.2"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.3.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-10c0.zip/node_modules/@jridgewell/trace-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/trace-mapping", "npm:0.3.9"],\ + ["@jridgewell/resolve-uri", "npm:3.1.2"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@npmcli/agent", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@npmcli-agent-npm-3.0.0-169e79294f-10c0.zip/node_modules/@npmcli/agent/",\ + "packageDependencies": [\ + ["@npmcli/agent", "npm:3.0.0"],\ + ["agent-base", "npm:7.1.3"],\ + ["http-proxy-agent", "npm:7.0.2"],\ + ["https-proxy-agent", "npm:7.0.6"],\ + ["lru-cache", "npm:10.4.3"],\ + ["socks-proxy-agent", "npm:8.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@npmcli/fs", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@npmcli-fs-npm-4.0.0-1d9cc8a27b-10c0.zip/node_modules/@npmcli/fs/",\ + "packageDependencies": [\ + ["@npmcli/fs", "npm:4.0.0"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@pkgjs/parseargs", [\ + ["npm:0.11.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-10c0.zip/node_modules/@pkgjs/parseargs/",\ + "packageDependencies": [\ + ["@pkgjs/parseargs", "npm:0.11.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@sinclair/typebox", [\ + ["npm:0.27.8", {\ + "packageLocation": "../../../.yarn/berry/cache/@sinclair-typebox-npm-0.27.8-23e206d653-10c0.zip/node_modules/@sinclair/typebox/",\ + "packageDependencies": [\ + ["@sinclair/typebox", "npm:0.27.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@sinonjs/commons", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-10c0.zip/node_modules/@sinonjs/commons/",\ + "packageDependencies": [\ + ["@sinonjs/commons", "npm:3.0.1"],\ + ["type-detect", "npm:4.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@sinonjs/fake-timers", [\ + ["npm:10.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/@sinonjs-fake-timers-npm-10.3.0-7417f876b4-10c0.zip/node_modules/@sinonjs/fake-timers/",\ + "packageDependencies": [\ + ["@sinonjs/fake-timers", "npm:10.3.0"],\ + ["@sinonjs/commons", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node10", [\ + ["npm:1.0.11", {\ + "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node10-npm-1.0.11-ab23db00e2-10c0.zip/node_modules/@tsconfig/node10/",\ + "packageDependencies": [\ + ["@tsconfig/node10", "npm:1.0.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node12", [\ + ["npm:1.0.11", {\ + "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-10c0.zip/node_modules/@tsconfig/node12/",\ + "packageDependencies": [\ + ["@tsconfig/node12", "npm:1.0.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node14", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node14-npm-1.0.3-15321421d2-10c0.zip/node_modules/@tsconfig/node14/",\ + "packageDependencies": [\ + ["@tsconfig/node14", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node16", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-10c0.zip/node_modules/@tsconfig/node16/",\ + "packageDependencies": [\ + ["@tsconfig/node16", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/babel__core", [\ + ["npm:7.20.5", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-babel__core-npm-7.20.5-4d95f75eab-10c0.zip/node_modules/@types/babel__core/",\ + "packageDependencies": [\ + ["@types/babel__core", "npm:7.20.5"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@babel/types", "npm:7.26.5"],\ + ["@types/babel__generator", "npm:7.6.8"],\ + ["@types/babel__template", "npm:7.4.4"],\ + ["@types/babel__traverse", "npm:7.20.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/babel__generator", [\ + ["npm:7.6.8", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-babel__generator-npm-7.6.8-61be1197d9-10c0.zip/node_modules/@types/babel__generator/",\ + "packageDependencies": [\ + ["@types/babel__generator", "npm:7.6.8"],\ + ["@babel/types", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/babel__template", [\ + ["npm:7.4.4", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-babel__template-npm-7.4.4-f34eba762c-10c0.zip/node_modules/@types/babel__template/",\ + "packageDependencies": [\ + ["@types/babel__template", "npm:7.4.4"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@babel/types", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/babel__traverse", [\ + ["npm:7.20.6", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-babel__traverse-npm-7.20.6-fac4243243-10c0.zip/node_modules/@types/babel__traverse/",\ + "packageDependencies": [\ + ["@types/babel__traverse", "npm:7.20.6"],\ + ["@babel/types", "npm:7.26.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/graceful-fs", [\ + ["npm:4.1.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-graceful-fs-npm-4.1.9-ebd697fe83-10c0.zip/node_modules/@types/graceful-fs/",\ + "packageDependencies": [\ + ["@types/graceful-fs", "npm:4.1.9"],\ + ["@types/node", "npm:22.10.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/istanbul-lib-coverage", [\ + ["npm:2.0.6", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-istanbul-lib-coverage-npm-2.0.6-2ea31fda9c-10c0.zip/node_modules/@types/istanbul-lib-coverage/",\ + "packageDependencies": [\ + ["@types/istanbul-lib-coverage", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/istanbul-lib-report", [\ + ["npm:3.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-istanbul-lib-report-npm-3.0.3-a5c0ef4b88-10c0.zip/node_modules/@types/istanbul-lib-report/",\ + "packageDependencies": [\ + ["@types/istanbul-lib-report", "npm:3.0.3"],\ + ["@types/istanbul-lib-coverage", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/istanbul-reports", [\ + ["npm:3.0.4", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-istanbul-reports-npm-3.0.4-1afa69db29-10c0.zip/node_modules/@types/istanbul-reports/",\ + "packageDependencies": [\ + ["@types/istanbul-reports", "npm:3.0.4"],\ + ["@types/istanbul-lib-report", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/jest", [\ + ["npm:29.5.14", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-jest-npm-29.5.14-506446c38e-10c0.zip/node_modules/@types/jest/",\ + "packageDependencies": [\ + ["@types/jest", "npm:29.5.14"],\ + ["expect", "npm:29.7.0"],\ + ["pretty-format", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/node", [\ + ["npm:20.17.16", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-node-npm-20.17.16-1448f7653e-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:20.17.16"],\ + ["undici-types", "npm:6.19.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:22.10.9", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-node-npm-22.10.9-13bae5b325-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:22.10.9"],\ + ["undici-types", "npm:6.20.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/stack-utils", [\ + ["npm:2.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-stack-utils-npm-2.0.3-48a0a03262-10c0.zip/node_modules/@types/stack-utils/",\ + "packageDependencies": [\ + ["@types/stack-utils", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/yargs", [\ + ["npm:17.0.33", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-yargs-npm-17.0.33-1d6cca6a2e-10c0.zip/node_modules/@types/yargs/",\ + "packageDependencies": [\ + ["@types/yargs", "npm:17.0.33"],\ + ["@types/yargs-parser", "npm:21.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/yargs-parser", [\ + ["npm:21.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/@types-yargs-parser-npm-21.0.3-1d265246a1-10c0.zip/node_modules/@types/yargs-parser/",\ + "packageDependencies": [\ + ["@types/yargs-parser", "npm:21.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["GenAICost", [\ + ["workspace:.", {\ + "packageLocation": "./",\ + "packageDependencies": [\ + ["GenAICost", "workspace:."],\ + ["@jest/globals", "npm:29.7.0"],\ + ["@types/jest", "npm:29.5.14"],\ + ["@types/node", "npm:20.17.16"],\ + ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ + ["nodemon", "npm:3.1.9"],\ + ["ts-jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5"],\ + ["ts-node", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2"],\ + ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["abbrev", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/abbrev-npm-3.0.0-946682a7b1-10c0.zip/node_modules/abbrev/",\ + "packageDependencies": [\ + ["abbrev", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["acorn", [\ + ["npm:8.14.0", {\ + "packageLocation": "../../../.yarn/berry/cache/acorn-npm-8.14.0-dc46f61424-10c0.zip/node_modules/acorn/",\ + "packageDependencies": [\ + ["acorn", "npm:8.14.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["acorn-walk", [\ + ["npm:8.3.4", {\ + "packageLocation": "../../../.yarn/berry/cache/acorn-walk-npm-8.3.4-a75fa85ead-10c0.zip/node_modules/acorn-walk/",\ + "packageDependencies": [\ + ["acorn-walk", "npm:8.3.4"],\ + ["acorn", "npm:8.14.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["agent-base", [\ + ["npm:7.1.3", {\ + "packageLocation": "../../../.yarn/berry/cache/agent-base-npm-7.1.3-b2c16e72fb-10c0.zip/node_modules/agent-base/",\ + "packageDependencies": [\ + ["agent-base", "npm:7.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-escapes", [\ + ["npm:4.3.2", {\ + "packageLocation": "../../../.yarn/berry/cache/ansi-escapes-npm-4.3.2-3ad173702f-10c0.zip/node_modules/ansi-escapes/",\ + "packageDependencies": [\ + ["ansi-escapes", "npm:4.3.2"],\ + ["type-fest", "npm:0.21.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-regex", [\ + ["npm:5.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/ansi-regex-npm-5.0.1-c963a48615-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/ansi-regex-npm-6.1.0-abe011aae4-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-styles", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/ansi-styles-npm-4.3.0-245c7d42c7-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:4.3.0"],\ + ["color-convert", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/ansi-styles-npm-5.2.0-72fc7003e3-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:5.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.2.1", {\ + "packageLocation": "../../../.yarn/berry/cache/ansi-styles-npm-6.2.1-d43647018c-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:6.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["anymatch", [\ + ["npm:3.1.3", {\ + "packageLocation": "../../../.yarn/berry/cache/anymatch-npm-3.1.3-bc81d103b1-10c0.zip/node_modules/anymatch/",\ + "packageDependencies": [\ + ["anymatch", "npm:3.1.3"],\ + ["normalize-path", "npm:3.0.0"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["arg", [\ + ["npm:4.1.3", {\ + "packageLocation": "../../../.yarn/berry/cache/arg-npm-4.1.3-1748b966a8-10c0.zip/node_modules/arg/",\ + "packageDependencies": [\ + ["arg", "npm:4.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["argparse", [\ + ["npm:1.0.10", {\ + "packageLocation": "../../../.yarn/berry/cache/argparse-npm-1.0.10-528934e59d-10c0.zip/node_modules/argparse/",\ + "packageDependencies": [\ + ["argparse", "npm:1.0.10"],\ + ["sprintf-js", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["async", [\ + ["npm:3.2.6", {\ + "packageLocation": "../../../.yarn/berry/cache/async-npm-3.2.6-aa4f5aa081-10c0.zip/node_modules/async/",\ + "packageDependencies": [\ + ["async", "npm:3.2.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["babel-jest", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/babel-jest-npm-29.7.0-273152fbe9-10c0.zip/node_modules/babel-jest/",\ + "packageDependencies": [\ + ["babel-jest", "npm:29.7.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0", {\ + "packageLocation": "./.yarn/__virtual__/babel-jest-virtual-2d4f934288/4/.yarn/berry/cache/babel-jest-npm-29.7.0-273152fbe9-10c0.zip/node_modules/babel-jest/",\ + "packageDependencies": [\ + ["babel-jest", "virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@jest/transform", "npm:29.7.0"],\ + ["@types/babel__core", "npm:7.20.5"],\ + ["babel-plugin-istanbul", "npm:6.1.1"],\ + ["babel-preset-jest", "virtual:2d4f934288a0649feae4e51ef5a9d7083e91a8c6b48b6d4df288a52de955b6169a31e5eb9d2a554122a6d7a1601a1ccbdef246009cb0c156ccbaa06ee39708d4#npm:29.6.3"],\ + ["chalk", "npm:4.1.2"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["slash", "npm:3.0.0"]\ + ],\ + "packagePeers": [\ + "@babel/core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["babel-plugin-istanbul", [\ + ["npm:6.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/babel-plugin-istanbul-npm-6.1.1-df824055e4-10c0.zip/node_modules/babel-plugin-istanbul/",\ + "packageDependencies": [\ + ["babel-plugin-istanbul", "npm:6.1.1"],\ + ["@babel/helper-plugin-utils", "npm:7.26.5"],\ + ["@istanbuljs/load-nyc-config", "npm:1.1.0"],\ + ["@istanbuljs/schema", "npm:0.1.3"],\ + ["istanbul-lib-instrument", "npm:5.2.1"],\ + ["test-exclude", "npm:6.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["babel-plugin-jest-hoist", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/babel-plugin-jest-hoist-npm-29.6.3-46120a3297-10c0.zip/node_modules/babel-plugin-jest-hoist/",\ + "packageDependencies": [\ + ["babel-plugin-jest-hoist", "npm:29.6.3"],\ + ["@babel/template", "npm:7.25.9"],\ + ["@babel/types", "npm:7.26.5"],\ + ["@types/babel__core", "npm:7.20.5"],\ + ["@types/babel__traverse", "npm:7.20.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["babel-preset-current-node-syntax", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/babel-preset-current-node-syntax-npm-1.1.0-a3b84fe89f-10c0.zip/node_modules/babel-preset-current-node-syntax/",\ + "packageDependencies": [\ + ["babel-preset-current-node-syntax", "npm:1.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:1.1.0", {\ + "packageLocation": "./.yarn/__virtual__/babel-preset-current-node-syntax-virtual-56983eadc3/4/.yarn/berry/cache/babel-preset-current-node-syntax-npm-1.1.0-a3b84fe89f-10c0.zip/node_modules/babel-preset-current-node-syntax/",\ + "packageDependencies": [\ + ["babel-preset-current-node-syntax", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:1.1.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/plugin-syntax-async-generators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.4"],\ + ["@babel/plugin-syntax-bigint", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/plugin-syntax-class-properties", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.12.13"],\ + ["@babel/plugin-syntax-class-static-block", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ + ["@babel/plugin-syntax-import-attributes", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.26.0"],\ + ["@babel/plugin-syntax-import-meta", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ + ["@babel/plugin-syntax-json-strings", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/plugin-syntax-logical-assignment-operators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ + ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/plugin-syntax-numeric-separator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ + ["@babel/plugin-syntax-object-rest-spread", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/plugin-syntax-optional-catch-binding", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/plugin-syntax-optional-chaining", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ + ["@babel/plugin-syntax-private-property-in-object", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ + ["@babel/plugin-syntax-top-level-await", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ + ["@types/babel__core", null]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:2fd98883bcacdd60393a39d2678d9a6b2984920a475eefaca8eabb7028560c27be01978db07604a9e96565db1e54ce85ad5f434d9e2e97256c079ff3852b7b83#npm:1.1.0", {\ + "packageLocation": "./.yarn/__virtual__/babel-preset-current-node-syntax-virtual-c43175144d/4/.yarn/berry/cache/babel-preset-current-node-syntax-npm-1.1.0-a3b84fe89f-10c0.zip/node_modules/babel-preset-current-node-syntax/",\ + "packageDependencies": [\ + ["babel-preset-current-node-syntax", "virtual:2fd98883bcacdd60393a39d2678d9a6b2984920a475eefaca8eabb7028560c27be01978db07604a9e96565db1e54ce85ad5f434d9e2e97256c079ff3852b7b83#npm:1.1.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/plugin-syntax-async-generators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.4"],\ + ["@babel/plugin-syntax-bigint", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/plugin-syntax-class-properties", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.12.13"],\ + ["@babel/plugin-syntax-class-static-block", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ + ["@babel/plugin-syntax-import-attributes", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.26.0"],\ + ["@babel/plugin-syntax-import-meta", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ + ["@babel/plugin-syntax-json-strings", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ + ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/plugin-syntax-numeric-separator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ + ["@babel/plugin-syntax-object-rest-spread", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/plugin-syntax-optional-catch-binding", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/plugin-syntax-optional-chaining", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ + ["@babel/plugin-syntax-private-property-in-object", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ + ["@babel/plugin-syntax-top-level-await", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ + ["@types/babel__core", "npm:7.20.5"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["babel-preset-jest", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/babel-preset-jest-npm-29.6.3-44bf6eeda9-10c0.zip/node_modules/babel-preset-jest/",\ + "packageDependencies": [\ + ["babel-preset-jest", "npm:29.6.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:2d4f934288a0649feae4e51ef5a9d7083e91a8c6b48b6d4df288a52de955b6169a31e5eb9d2a554122a6d7a1601a1ccbdef246009cb0c156ccbaa06ee39708d4#npm:29.6.3", {\ + "packageLocation": "./.yarn/__virtual__/babel-preset-jest-virtual-2fd98883bc/4/.yarn/berry/cache/babel-preset-jest-npm-29.6.3-44bf6eeda9-10c0.zip/node_modules/babel-preset-jest/",\ + "packageDependencies": [\ + ["babel-preset-jest", "virtual:2d4f934288a0649feae4e51ef5a9d7083e91a8c6b48b6d4df288a52de955b6169a31e5eb9d2a554122a6d7a1601a1ccbdef246009cb0c156ccbaa06ee39708d4#npm:29.6.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@types/babel__core", "npm:7.20.5"],\ + ["babel-plugin-jest-hoist", "npm:29.6.3"],\ + ["babel-preset-current-node-syntax", "virtual:2fd98883bcacdd60393a39d2678d9a6b2984920a475eefaca8eabb7028560c27be01978db07604a9e96565db1e54ce85ad5f434d9e2e97256c079ff3852b7b83#npm:1.1.0"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@types/babel__core"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["balanced-match", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/balanced-match-npm-1.0.2-a53c126459-10c0.zip/node_modules/balanced-match/",\ + "packageDependencies": [\ + ["balanced-match", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["binary-extensions", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/binary-extensions-npm-2.3.0-bd3f20d865-10c0.zip/node_modules/binary-extensions/",\ + "packageDependencies": [\ + ["binary-extensions", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["brace-expansion", [\ + ["npm:1.1.11", {\ + "packageLocation": "../../../.yarn/berry/cache/brace-expansion-npm-1.1.11-fb95eb05ad-10c0.zip/node_modules/brace-expansion/",\ + "packageDependencies": [\ + ["brace-expansion", "npm:1.1.11"],\ + ["balanced-match", "npm:1.0.2"],\ + ["concat-map", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/brace-expansion-npm-2.0.1-17aa2616f9-10c0.zip/node_modules/brace-expansion/",\ + "packageDependencies": [\ + ["brace-expansion", "npm:2.0.1"],\ + ["balanced-match", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["braces", [\ + ["npm:3.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/braces-npm-3.0.3-582c14023c-10c0.zip/node_modules/braces/",\ + "packageDependencies": [\ + ["braces", "npm:3.0.3"],\ + ["fill-range", "npm:7.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["browserslist", [\ + ["npm:4.24.4", {\ + "packageLocation": "../../../.yarn/berry/cache/browserslist-npm-4.24.4-2fdeb5face-10c0.zip/node_modules/browserslist/",\ + "packageDependencies": [\ + ["browserslist", "npm:4.24.4"],\ + ["caniuse-lite", "npm:1.0.30001695"],\ + ["electron-to-chromium", "npm:1.5.86"],\ + ["node-releases", "npm:2.0.19"],\ + ["update-browserslist-db", "virtual:2fdeb5face9914bb5fd94c70f084d153c80d2f09e5aabee010e4220b248dc23fca8f73c7beed0195e45ae6e2b1cb25388f709d7bfc4f00e473d573887faf4e5c#npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["bs-logger", [\ + ["npm:0.2.6", {\ + "packageLocation": "../../../.yarn/berry/cache/bs-logger-npm-0.2.6-7670f88b66-10c0.zip/node_modules/bs-logger/",\ + "packageDependencies": [\ + ["bs-logger", "npm:0.2.6"],\ + ["fast-json-stable-stringify", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["bser", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/bser-npm-2.1.1-cc902055ce-10c0.zip/node_modules/bser/",\ + "packageDependencies": [\ + ["bser", "npm:2.1.1"],\ + ["node-int64", "npm:0.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["buffer-from", [\ + ["npm:1.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/buffer-from-npm-1.1.2-03d2f20d7e-10c0.zip/node_modules/buffer-from/",\ + "packageDependencies": [\ + ["buffer-from", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cacache", [\ + ["npm:19.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/cacache-npm-19.0.1-395cba1936-10c0.zip/node_modules/cacache/",\ + "packageDependencies": [\ + ["cacache", "npm:19.0.1"],\ + ["@npmcli/fs", "npm:4.0.0"],\ + ["fs-minipass", "npm:3.0.3"],\ + ["glob", "npm:10.4.5"],\ + ["lru-cache", "npm:10.4.3"],\ + ["minipass", "npm:7.1.2"],\ + ["minipass-collect", "npm:2.0.1"],\ + ["minipass-flush", "npm:1.0.5"],\ + ["minipass-pipeline", "npm:1.2.4"],\ + ["p-map", "npm:7.0.3"],\ + ["ssri", "npm:12.0.0"],\ + ["tar", "npm:7.4.3"],\ + ["unique-filename", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["callsites", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/callsites-npm-3.1.0-268f989910-10c0.zip/node_modules/callsites/",\ + "packageDependencies": [\ + ["callsites", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["camelcase", [\ + ["npm:5.3.1", {\ + "packageLocation": "../../../.yarn/berry/cache/camelcase-npm-5.3.1-5db8af62c5-10c0.zip/node_modules/camelcase/",\ + "packageDependencies": [\ + ["camelcase", "npm:5.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/camelcase-npm-6.3.0-e5e42a0d15-10c0.zip/node_modules/camelcase/",\ + "packageDependencies": [\ + ["camelcase", "npm:6.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["caniuse-lite", [\ + ["npm:1.0.30001695", {\ + "packageLocation": "../../../.yarn/berry/cache/caniuse-lite-npm-1.0.30001695-6348509850-10c0.zip/node_modules/caniuse-lite/",\ + "packageDependencies": [\ + ["caniuse-lite", "npm:1.0.30001695"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chalk", [\ + ["npm:4.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/chalk-npm-4.1.2-ba8b67ab80-10c0.zip/node_modules/chalk/",\ + "packageDependencies": [\ + ["chalk", "npm:4.1.2"],\ + ["ansi-styles", "npm:4.3.0"],\ + ["supports-color", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["char-regex", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/char-regex-npm-1.0.2-ecade5f97f-10c0.zip/node_modules/char-regex/",\ + "packageDependencies": [\ + ["char-regex", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chokidar", [\ + ["npm:3.6.0", {\ + "packageLocation": "../../../.yarn/berry/cache/chokidar-npm-3.6.0-3c413a828f-10c0.zip/node_modules/chokidar/",\ + "packageDependencies": [\ + ["chokidar", "npm:3.6.0"],\ + ["anymatch", "npm:3.1.3"],\ + ["braces", "npm:3.0.3"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["glob-parent", "npm:5.1.2"],\ + ["is-binary-path", "npm:2.1.0"],\ + ["is-glob", "npm:4.0.3"],\ + ["normalize-path", "npm:3.0.0"],\ + ["readdirp", "npm:3.6.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chownr", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/chownr-npm-3.0.0-5275e85d25-10c0.zip/node_modules/chownr/",\ + "packageDependencies": [\ + ["chownr", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ci-info", [\ + ["npm:3.9.0", {\ + "packageLocation": "../../../.yarn/berry/cache/ci-info-npm-3.9.0-646784ca0e-10c0.zip/node_modules/ci-info/",\ + "packageDependencies": [\ + ["ci-info", "npm:3.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cjs-module-lexer", [\ + ["npm:1.4.1", {\ + "packageLocation": "../../../.yarn/berry/cache/cjs-module-lexer-npm-1.4.1-4a824480ac-10c0.zip/node_modules/cjs-module-lexer/",\ + "packageDependencies": [\ + ["cjs-module-lexer", "npm:1.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cliui", [\ + ["npm:8.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/cliui-npm-8.0.1-3b029092cf-10c0.zip/node_modules/cliui/",\ + "packageDependencies": [\ + ["cliui", "npm:8.0.1"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["wrap-ansi", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["co", [\ + ["npm:4.6.0", {\ + "packageLocation": "../../../.yarn/berry/cache/co-npm-4.6.0-03f2d1feb6-10c0.zip/node_modules/co/",\ + "packageDependencies": [\ + ["co", "npm:4.6.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["collect-v8-coverage", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/collect-v8-coverage-npm-1.0.2-bd20d0c572-10c0.zip/node_modules/collect-v8-coverage/",\ + "packageDependencies": [\ + ["collect-v8-coverage", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["color-convert", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/color-convert-npm-2.0.1-79730e935b-10c0.zip/node_modules/color-convert/",\ + "packageDependencies": [\ + ["color-convert", "npm:2.0.1"],\ + ["color-name", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["color-name", [\ + ["npm:1.1.4", {\ + "packageLocation": "../../../.yarn/berry/cache/color-name-npm-1.1.4-025792b0ea-10c0.zip/node_modules/color-name/",\ + "packageDependencies": [\ + ["color-name", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["concat-map", [\ + ["npm:0.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/concat-map-npm-0.0.1-85a921b7ee-10c0.zip/node_modules/concat-map/",\ + "packageDependencies": [\ + ["concat-map", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["convert-source-map", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/convert-source-map-npm-2.0.0-7ab664dc4e-10c0.zip/node_modules/convert-source-map/",\ + "packageDependencies": [\ + ["convert-source-map", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["create-jest", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/create-jest-npm-29.7.0-3a6a7b993b-10c0.zip/node_modules/create-jest/",\ + "packageDependencies": [\ + ["create-jest", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["chalk", "npm:4.1.2"],\ + ["exit", "npm:0.1.2"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-config", "virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["prompts", "npm:2.4.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["create-require", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/create-require-npm-1.1.1-839884ca2e-10c0.zip/node_modules/create-require/",\ + "packageDependencies": [\ + ["create-require", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cross-spawn", [\ + ["npm:7.0.6", {\ + "packageLocation": "../../../.yarn/berry/cache/cross-spawn-npm-7.0.6-264bddf921-10c0.zip/node_modules/cross-spawn/",\ + "packageDependencies": [\ + ["cross-spawn", "npm:7.0.6"],\ + ["path-key", "npm:3.1.1"],\ + ["shebang-command", "npm:2.0.0"],\ + ["which", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["debug", [\ + ["npm:4.4.0", {\ + "packageLocation": "../../../.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "npm:4.4.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-578134171f/4/.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ + ["@types/supports-color", null],\ + ["ms", "npm:2.1.3"],\ + ["supports-color", null]\ + ],\ + "packagePeers": [\ + "@types/supports-color",\ + "supports-color"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:f1382c554182f9e1abb3745e34e5163637ebd3c611df77e82da38f1ec9964f1d016765e440e68141eed073069546eb468a3a6ce4bd0b2b99cbf6baa9d7635af7#npm:4.4.0", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-9d143e7aef/4/.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "virtual:f1382c554182f9e1abb3745e34e5163637ebd3c611df77e82da38f1ec9964f1d016765e440e68141eed073069546eb468a3a6ce4bd0b2b99cbf6baa9d7635af7#npm:4.4.0"],\ + ["@types/supports-color", null],\ + ["ms", "npm:2.1.3"],\ + ["supports-color", "npm:5.5.0"]\ + ],\ + "packagePeers": [\ + "@types/supports-color",\ + "supports-color"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["dedent", [\ + ["npm:1.5.3", {\ + "packageLocation": "../../../.yarn/berry/cache/dedent-npm-1.5.3-123726df15-10c0.zip/node_modules/dedent/",\ + "packageDependencies": [\ + ["dedent", "npm:1.5.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:f7679858c638e2e5ade31901dd2b1e5007918fdc7d84fefb11f4200f46ba2e43b9d662fb793507b517bb1e725144e51f6d68f60f9f6100fd52144f042f58f0bc#npm:1.5.3", {\ + "packageLocation": "./.yarn/__virtual__/dedent-virtual-5106190c75/4/.yarn/berry/cache/dedent-npm-1.5.3-123726df15-10c0.zip/node_modules/dedent/",\ + "packageDependencies": [\ + ["dedent", "virtual:f7679858c638e2e5ade31901dd2b1e5007918fdc7d84fefb11f4200f46ba2e43b9d662fb793507b517bb1e725144e51f6d68f60f9f6100fd52144f042f58f0bc#npm:1.5.3"],\ + ["@types/babel-plugin-macros", null],\ + ["babel-plugin-macros", null]\ + ],\ + "packagePeers": [\ + "@types/babel-plugin-macros",\ + "babel-plugin-macros"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["deepmerge", [\ + ["npm:4.3.1", {\ + "packageLocation": "../../../.yarn/berry/cache/deepmerge-npm-4.3.1-4f751a0844-10c0.zip/node_modules/deepmerge/",\ + "packageDependencies": [\ + ["deepmerge", "npm:4.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["detect-newline", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/detect-newline-npm-3.1.0-6d33fa8d37-10c0.zip/node_modules/detect-newline/",\ + "packageDependencies": [\ + ["detect-newline", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["diff", [\ + ["npm:4.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/diff-npm-4.0.2-73133c7102-10c0.zip/node_modules/diff/",\ + "packageDependencies": [\ + ["diff", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["diff-sequences", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/diff-sequences-npm-29.6.3-18ab2c9949-10c0.zip/node_modules/diff-sequences/",\ + "packageDependencies": [\ + ["diff-sequences", "npm:29.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["eastasianwidth", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-10c0.zip/node_modules/eastasianwidth/",\ + "packageDependencies": [\ + ["eastasianwidth", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ejs", [\ + ["npm:3.1.10", {\ + "packageLocation": "../../../.yarn/berry/cache/ejs-npm-3.1.10-4e8cf4bdc1-10c0.zip/node_modules/ejs/",\ + "packageDependencies": [\ + ["ejs", "npm:3.1.10"],\ + ["jake", "npm:10.9.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["electron-to-chromium", [\ + ["npm:1.5.86", {\ + "packageLocation": "../../../.yarn/berry/cache/electron-to-chromium-npm-1.5.86-d55c01bc49-10c0.zip/node_modules/electron-to-chromium/",\ + "packageDependencies": [\ + ["electron-to-chromium", "npm:1.5.86"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["emittery", [\ + ["npm:0.13.1", {\ + "packageLocation": "../../../.yarn/berry/cache/emittery-npm-0.13.1-cb6cd1bb03-10c0.zip/node_modules/emittery/",\ + "packageDependencies": [\ + ["emittery", "npm:0.13.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["emoji-regex", [\ + ["npm:8.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/emoji-regex-npm-8.0.0-213764015c-10c0.zip/node_modules/emoji-regex/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:8.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:9.2.2", {\ + "packageLocation": "../../../.yarn/berry/cache/emoji-regex-npm-9.2.2-e6fac8d058-10c0.zip/node_modules/emoji-regex/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:9.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["encoding", [\ + ["npm:0.1.13", {\ + "packageLocation": "../../../.yarn/berry/cache/encoding-npm-0.1.13-82a1837d30-10c0.zip/node_modules/encoding/",\ + "packageDependencies": [\ + ["encoding", "npm:0.1.13"],\ + ["iconv-lite", "npm:0.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["env-paths", [\ + ["npm:2.2.1", {\ + "packageLocation": "../../../.yarn/berry/cache/env-paths-npm-2.2.1-7c7577428c-10c0.zip/node_modules/env-paths/",\ + "packageDependencies": [\ + ["env-paths", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["err-code", [\ + ["npm:2.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/err-code-npm-2.0.3-082e0ff9a7-10c0.zip/node_modules/err-code/",\ + "packageDependencies": [\ + ["err-code", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["error-ex", [\ + ["npm:1.3.2", {\ + "packageLocation": "../../../.yarn/berry/cache/error-ex-npm-1.3.2-5654f80c0f-10c0.zip/node_modules/error-ex/",\ + "packageDependencies": [\ + ["error-ex", "npm:1.3.2"],\ + ["is-arrayish", "npm:0.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["escalade", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/escalade-npm-3.2.0-19b50dd48f-10c0.zip/node_modules/escalade/",\ + "packageDependencies": [\ + ["escalade", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["escape-string-regexp", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-10c0.zip/node_modules/escape-string-regexp/",\ + "packageDependencies": [\ + ["escape-string-regexp", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["esprima", [\ + ["npm:4.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/esprima-npm-4.0.1-1084e98778-10c0.zip/node_modules/esprima/",\ + "packageDependencies": [\ + ["esprima", "npm:4.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["execa", [\ + ["npm:5.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/execa-npm-5.1.1-191347acf5-10c0.zip/node_modules/execa/",\ + "packageDependencies": [\ + ["execa", "npm:5.1.1"],\ + ["cross-spawn", "npm:7.0.6"],\ + ["get-stream", "npm:6.0.1"],\ + ["human-signals", "npm:2.1.0"],\ + ["is-stream", "npm:2.0.1"],\ + ["merge-stream", "npm:2.0.0"],\ + ["npm-run-path", "npm:4.0.1"],\ + ["onetime", "npm:5.1.2"],\ + ["signal-exit", "npm:3.0.7"],\ + ["strip-final-newline", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["exit", [\ + ["npm:0.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/exit-npm-0.1.2-ef3761a67d-10c0.zip/node_modules/exit/",\ + "packageDependencies": [\ + ["exit", "npm:0.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["expect", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/expect-npm-29.7.0-62e9f7979e-10c0.zip/node_modules/expect/",\ + "packageDependencies": [\ + ["expect", "npm:29.7.0"],\ + ["@jest/expect-utils", "npm:29.7.0"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["jest-matcher-utils", "npm:29.7.0"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["exponential-backoff", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/exponential-backoff-npm-3.1.1-04df458b30-10c0.zip/node_modules/exponential-backoff/",\ + "packageDependencies": [\ + ["exponential-backoff", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-json-stable-stringify", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-10c0.zip/node_modules/fast-json-stable-stringify/",\ + "packageDependencies": [\ + ["fast-json-stable-stringify", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fb-watchman", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/fb-watchman-npm-2.0.2-bcb6f8f831-10c0.zip/node_modules/fb-watchman/",\ + "packageDependencies": [\ + ["fb-watchman", "npm:2.0.2"],\ + ["bser", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["filelist", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../../.yarn/berry/cache/filelist-npm-1.0.4-3a835ae0a7-10c0.zip/node_modules/filelist/",\ + "packageDependencies": [\ + ["filelist", "npm:1.0.4"],\ + ["minimatch", "npm:5.1.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fill-range", [\ + ["npm:7.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/fill-range-npm-7.1.1-bf491486db-10c0.zip/node_modules/fill-range/",\ + "packageDependencies": [\ + ["fill-range", "npm:7.1.1"],\ + ["to-regex-range", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["find-up", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/find-up-npm-4.1.0-c3ccf8d855-10c0.zip/node_modules/find-up/",\ + "packageDependencies": [\ + ["find-up", "npm:4.1.0"],\ + ["locate-path", "npm:5.0.0"],\ + ["path-exists", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["foreground-child", [\ + ["npm:3.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/foreground-child-npm-3.3.0-b8be745271-10c0.zip/node_modules/foreground-child/",\ + "packageDependencies": [\ + ["foreground-child", "npm:3.3.0"],\ + ["cross-spawn", "npm:7.0.6"],\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fs-minipass", [\ + ["npm:3.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/fs-minipass-npm-3.0.3-d148d6ac19-10c0.zip/node_modules/fs-minipass/",\ + "packageDependencies": [\ + ["fs-minipass", "npm:3.0.3"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fs.realpath", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/fs.realpath-npm-1.0.0-c8f05d8126-10c0.zip/node_modules/fs.realpath/",\ + "packageDependencies": [\ + ["fs.realpath", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fsevents", [\ + ["patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1", {\ + "packageLocation": "./.yarn/unplugged/fsevents-patch-6b67494872/node_modules/fsevents/",\ + "packageDependencies": [\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["node-gyp", "npm:11.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["function-bind", [\ + ["npm:1.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/function-bind-npm-1.1.2-7a55be9b03-10c0.zip/node_modules/function-bind/",\ + "packageDependencies": [\ + ["function-bind", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["gensync", [\ + ["npm:1.0.0-beta.2", {\ + "packageLocation": "../../../.yarn/berry/cache/gensync-npm-1.0.0-beta.2-224666d72f-10c0.zip/node_modules/gensync/",\ + "packageDependencies": [\ + ["gensync", "npm:1.0.0-beta.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-caller-file", [\ + ["npm:2.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/get-caller-file-npm-2.0.5-80e8a86305-10c0.zip/node_modules/get-caller-file/",\ + "packageDependencies": [\ + ["get-caller-file", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-package-type", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/get-package-type-npm-0.1.0-6c70cdc8ab-10c0.zip/node_modules/get-package-type/",\ + "packageDependencies": [\ + ["get-package-type", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-stream", [\ + ["npm:6.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/get-stream-npm-6.0.1-83e51a4642-10c0.zip/node_modules/get-stream/",\ + "packageDependencies": [\ + ["get-stream", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["glob", [\ + ["npm:10.4.5", {\ + "packageLocation": "../../../.yarn/berry/cache/glob-npm-10.4.5-8c63175f05-10c0.zip/node_modules/glob/",\ + "packageDependencies": [\ + ["glob", "npm:10.4.5"],\ + ["foreground-child", "npm:3.3.0"],\ + ["jackspeak", "npm:3.4.3"],\ + ["minimatch", "npm:9.0.5"],\ + ["minipass", "npm:7.1.2"],\ + ["package-json-from-dist", "npm:1.0.1"],\ + ["path-scurry", "npm:1.11.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.2.3", {\ + "packageLocation": "../../../.yarn/berry/cache/glob-npm-7.2.3-2d866d17a5-10c0.zip/node_modules/glob/",\ + "packageDependencies": [\ + ["glob", "npm:7.2.3"],\ + ["fs.realpath", "npm:1.0.0"],\ + ["inflight", "npm:1.0.6"],\ + ["inherits", "npm:2.0.4"],\ + ["minimatch", "npm:3.1.2"],\ + ["once", "npm:1.4.0"],\ + ["path-is-absolute", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["glob-parent", [\ + ["npm:5.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/glob-parent-npm-5.1.2-021ab32634-10c0.zip/node_modules/glob-parent/",\ + "packageDependencies": [\ + ["glob-parent", "npm:5.1.2"],\ + ["is-glob", "npm:4.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["globals", [\ + ["npm:11.12.0", {\ + "packageLocation": "../../../.yarn/berry/cache/globals-npm-11.12.0-1fa7f41a6c-10c0.zip/node_modules/globals/",\ + "packageDependencies": [\ + ["globals", "npm:11.12.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["graceful-fs", [\ + ["npm:4.2.11", {\ + "packageLocation": "../../../.yarn/berry/cache/graceful-fs-npm-4.2.11-24bb648a68-10c0.zip/node_modules/graceful-fs/",\ + "packageDependencies": [\ + ["graceful-fs", "npm:4.2.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-flag", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/has-flag-npm-3.0.0-16ac11fe05-10c0.zip/node_modules/has-flag/",\ + "packageDependencies": [\ + ["has-flag", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/has-flag-npm-4.0.0-32af9f0536-10c0.zip/node_modules/has-flag/",\ + "packageDependencies": [\ + ["has-flag", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["hasown", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/hasown-npm-2.0.2-80fe6c9901-10c0.zip/node_modules/hasown/",\ + "packageDependencies": [\ + ["hasown", "npm:2.0.2"],\ + ["function-bind", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["html-escaper", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/html-escaper-npm-2.0.2-38e51ef294-10c0.zip/node_modules/html-escaper/",\ + "packageDependencies": [\ + ["html-escaper", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["http-cache-semantics", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/http-cache-semantics-npm-4.1.1-1120131375-10c0.zip/node_modules/http-cache-semantics/",\ + "packageDependencies": [\ + ["http-cache-semantics", "npm:4.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["http-proxy-agent", [\ + ["npm:7.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-10c0.zip/node_modules/http-proxy-agent/",\ + "packageDependencies": [\ + ["http-proxy-agent", "npm:7.0.2"],\ + ["agent-base", "npm:7.1.3"],\ + ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["https-proxy-agent", [\ + ["npm:7.0.6", {\ + "packageLocation": "../../../.yarn/berry/cache/https-proxy-agent-npm-7.0.6-27a95c2690-10c0.zip/node_modules/https-proxy-agent/",\ + "packageDependencies": [\ + ["https-proxy-agent", "npm:7.0.6"],\ + ["agent-base", "npm:7.1.3"],\ + ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["human-signals", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/human-signals-npm-2.1.0-f75815481d-10c0.zip/node_modules/human-signals/",\ + "packageDependencies": [\ + ["human-signals", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["iconv-lite", [\ + ["npm:0.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/iconv-lite-npm-0.6.3-24b8aae27e-10c0.zip/node_modules/iconv-lite/",\ + "packageDependencies": [\ + ["iconv-lite", "npm:0.6.3"],\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ignore-by-default", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/ignore-by-default-npm-1.0.1-78ea10bc54-10c0.zip/node_modules/ignore-by-default/",\ + "packageDependencies": [\ + ["ignore-by-default", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["import-local", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/import-local-npm-3.2.0-bf54ec7842-10c0.zip/node_modules/import-local/",\ + "packageDependencies": [\ + ["import-local", "npm:3.2.0"],\ + ["pkg-dir", "npm:4.2.0"],\ + ["resolve-cwd", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["imurmurhash", [\ + ["npm:0.1.4", {\ + "packageLocation": "../../../.yarn/berry/cache/imurmurhash-npm-0.1.4-610c5068a0-10c0.zip/node_modules/imurmurhash/",\ + "packageDependencies": [\ + ["imurmurhash", "npm:0.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inflight", [\ + ["npm:1.0.6", {\ + "packageLocation": "../../../.yarn/berry/cache/inflight-npm-1.0.6-ccedb4b908-10c0.zip/node_modules/inflight/",\ + "packageDependencies": [\ + ["inflight", "npm:1.0.6"],\ + ["once", "npm:1.4.0"],\ + ["wrappy", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inherits", [\ + ["npm:2.0.4", {\ + "packageLocation": "../../../.yarn/berry/cache/inherits-npm-2.0.4-c66b3957a0-10c0.zip/node_modules/inherits/",\ + "packageDependencies": [\ + ["inherits", "npm:2.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ip-address", [\ + ["npm:9.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/ip-address-npm-9.0.5-9fa024d42a-10c0.zip/node_modules/ip-address/",\ + "packageDependencies": [\ + ["ip-address", "npm:9.0.5"],\ + ["jsbn", "npm:1.1.0"],\ + ["sprintf-js", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-arrayish", [\ + ["npm:0.2.1", {\ + "packageLocation": "../../../.yarn/berry/cache/is-arrayish-npm-0.2.1-23927dfb15-10c0.zip/node_modules/is-arrayish/",\ + "packageDependencies": [\ + ["is-arrayish", "npm:0.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-binary-path", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/is-binary-path-npm-2.1.0-e61d46f557-10c0.zip/node_modules/is-binary-path/",\ + "packageDependencies": [\ + ["is-binary-path", "npm:2.1.0"],\ + ["binary-extensions", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-core-module", [\ + ["npm:2.16.1", {\ + "packageLocation": "../../../.yarn/berry/cache/is-core-module-npm-2.16.1-a54837229e-10c0.zip/node_modules/is-core-module/",\ + "packageDependencies": [\ + ["is-core-module", "npm:2.16.1"],\ + ["hasown", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-extglob", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/is-extglob-npm-2.1.1-0870ea68b5-10c0.zip/node_modules/is-extglob/",\ + "packageDependencies": [\ + ["is-extglob", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-fullwidth-code-point", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-10c0.zip/node_modules/is-fullwidth-code-point/",\ + "packageDependencies": [\ + ["is-fullwidth-code-point", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-generator-fn", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/is-generator-fn-npm-2.1.0-37895c2d2b-10c0.zip/node_modules/is-generator-fn/",\ + "packageDependencies": [\ + ["is-generator-fn", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-glob", [\ + ["npm:4.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/is-glob-npm-4.0.3-cb87bf1bdb-10c0.zip/node_modules/is-glob/",\ + "packageDependencies": [\ + ["is-glob", "npm:4.0.3"],\ + ["is-extglob", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-number", [\ + ["npm:7.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/is-number-npm-7.0.0-060086935c-10c0.zip/node_modules/is-number/",\ + "packageDependencies": [\ + ["is-number", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-stream", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/is-stream-npm-2.0.1-c802db55e7-10c0.zip/node_modules/is-stream/",\ + "packageDependencies": [\ + ["is-stream", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["isexe", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-10c0.zip/node_modules/isexe/",\ + "packageDependencies": [\ + ["isexe", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/isexe-npm-3.1.1-9c0061eead-10c0.zip/node_modules/isexe/",\ + "packageDependencies": [\ + ["isexe", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["istanbul-lib-coverage", [\ + ["npm:3.2.2", {\ + "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-coverage-npm-3.2.2-5c0526e059-10c0.zip/node_modules/istanbul-lib-coverage/",\ + "packageDependencies": [\ + ["istanbul-lib-coverage", "npm:3.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["istanbul-lib-instrument", [\ + ["npm:5.2.1", {\ + "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-instrument-npm-5.2.1-1b3ad719a9-10c0.zip/node_modules/istanbul-lib-instrument/",\ + "packageDependencies": [\ + ["istanbul-lib-instrument", "npm:5.2.1"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@istanbuljs/schema", "npm:0.1.3"],\ + ["istanbul-lib-coverage", "npm:3.2.2"],\ + ["semver", "npm:6.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-instrument-npm-6.0.3-959dca7404-10c0.zip/node_modules/istanbul-lib-instrument/",\ + "packageDependencies": [\ + ["istanbul-lib-instrument", "npm:6.0.3"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/parser", "npm:7.26.5"],\ + ["@istanbuljs/schema", "npm:0.1.3"],\ + ["istanbul-lib-coverage", "npm:3.2.2"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["istanbul-lib-report", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-10c0.zip/node_modules/istanbul-lib-report/",\ + "packageDependencies": [\ + ["istanbul-lib-report", "npm:3.0.1"],\ + ["istanbul-lib-coverage", "npm:3.2.2"],\ + ["make-dir", "npm:4.0.0"],\ + ["supports-color", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["istanbul-lib-source-maps", [\ + ["npm:4.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-source-maps-npm-4.0.1-af0f859df7-10c0.zip/node_modules/istanbul-lib-source-maps/",\ + "packageDependencies": [\ + ["istanbul-lib-source-maps", "npm:4.0.1"],\ + ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ + ["istanbul-lib-coverage", "npm:3.2.2"],\ + ["source-map", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["istanbul-reports", [\ + ["npm:3.1.7", {\ + "packageLocation": "../../../.yarn/berry/cache/istanbul-reports-npm-3.1.7-356486c0f4-10c0.zip/node_modules/istanbul-reports/",\ + "packageDependencies": [\ + ["istanbul-reports", "npm:3.1.7"],\ + ["html-escaper", "npm:2.0.2"],\ + ["istanbul-lib-report", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jackspeak", [\ + ["npm:3.4.3", {\ + "packageLocation": "../../../.yarn/berry/cache/jackspeak-npm-3.4.3-546bfad080-10c0.zip/node_modules/jackspeak/",\ + "packageDependencies": [\ + ["jackspeak", "npm:3.4.3"],\ + ["@isaacs/cliui", "npm:8.0.2"],\ + ["@pkgjs/parseargs", "npm:0.11.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jake", [\ + ["npm:10.9.2", {\ + "packageLocation": "../../../.yarn/berry/cache/jake-npm-10.9.2-3bf2173aed-10c0.zip/node_modules/jake/",\ + "packageDependencies": [\ + ["jake", "npm:10.9.2"],\ + ["async", "npm:3.2.6"],\ + ["chalk", "npm:4.1.2"],\ + ["filelist", "npm:1.0.4"],\ + ["minimatch", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-npm-29.7.0-d8dd095b81-10c0.zip/node_modules/jest/",\ + "packageDependencies": [\ + ["jest", "npm:29.7.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0", {\ + "packageLocation": "./.yarn/__virtual__/jest-virtual-be11839c24/4/.yarn/berry/cache/jest-npm-29.7.0-d8dd095b81-10c0.zip/node_modules/jest/",\ + "packageDependencies": [\ + ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ + ["@jest/core", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node-notifier", null],\ + ["import-local", "npm:3.2.0"],\ + ["jest-cli", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ + ["node-notifier", null]\ + ],\ + "packagePeers": [\ + "@types/node-notifier",\ + "node-notifier"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-changed-files", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-changed-files-npm-29.7.0-c2dcd10525-10c0.zip/node_modules/jest-changed-files/",\ + "packageDependencies": [\ + ["jest-changed-files", "npm:29.7.0"],\ + ["execa", "npm:5.1.1"],\ + ["jest-util", "npm:29.7.0"],\ + ["p-limit", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-circus", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-circus-npm-29.7.0-f7679858c6-10c0.zip/node_modules/jest-circus/",\ + "packageDependencies": [\ + ["jest-circus", "npm:29.7.0"],\ + ["@jest/environment", "npm:29.7.0"],\ + ["@jest/expect", "npm:29.7.0"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["chalk", "npm:4.1.2"],\ + ["co", "npm:4.6.0"],\ + ["dedent", "virtual:f7679858c638e2e5ade31901dd2b1e5007918fdc7d84fefb11f4200f46ba2e43b9d662fb793507b517bb1e725144e51f6d68f60f9f6100fd52144f042f58f0bc#npm:1.5.3"],\ + ["is-generator-fn", "npm:2.1.0"],\ + ["jest-each", "npm:29.7.0"],\ + ["jest-matcher-utils", "npm:29.7.0"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-runtime", "npm:29.7.0"],\ + ["jest-snapshot", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["p-limit", "npm:3.1.0"],\ + ["pretty-format", "npm:29.7.0"],\ + ["pure-rand", "npm:6.1.0"],\ + ["slash", "npm:3.0.0"],\ + ["stack-utils", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-cli", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-cli-npm-29.7.0-9adb356180-10c0.zip/node_modules/jest-cli/",\ + "packageDependencies": [\ + ["jest-cli", "npm:29.7.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0", {\ + "packageLocation": "./.yarn/__virtual__/jest-cli-virtual-8a6b72a957/4/.yarn/berry/cache/jest-cli-npm-29.7.0-9adb356180-10c0.zip/node_modules/jest-cli/",\ + "packageDependencies": [\ + ["jest-cli", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ + ["@jest/core", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node-notifier", null],\ + ["chalk", "npm:4.1.2"],\ + ["create-jest", "npm:29.7.0"],\ + ["exit", "npm:0.1.2"],\ + ["import-local", "npm:3.2.0"],\ + ["jest-config", "virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-validate", "npm:29.7.0"],\ + ["node-notifier", null],\ + ["yargs", "npm:17.7.2"]\ + ],\ + "packagePeers": [\ + "@types/node-notifier",\ + "node-notifier"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-config", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-config-npm-29.7.0-97d8544d74-10c0.zip/node_modules/jest-config/",\ + "packageDependencies": [\ + ["jest-config", "npm:29.7.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0", {\ + "packageLocation": "./.yarn/__virtual__/jest-config-virtual-50f60b8422/4/.yarn/berry/cache/jest-config-npm-29.7.0-97d8544d74-10c0.zip/node_modules/jest-config/",\ + "packageDependencies": [\ + ["jest-config", "virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@jest/test-sequencer", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", null],\ + ["@types/ts-node", null],\ + ["babel-jest", "virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0"],\ + ["chalk", "npm:4.1.2"],\ + ["ci-info", "npm:3.9.0"],\ + ["deepmerge", "npm:4.3.1"],\ + ["glob", "npm:7.2.3"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-circus", "npm:29.7.0"],\ + ["jest-environment-node", "npm:29.7.0"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["jest-regex-util", "npm:29.6.3"],\ + ["jest-resolve", "npm:29.7.0"],\ + ["jest-runner", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-validate", "npm:29.7.0"],\ + ["micromatch", "npm:4.0.8"],\ + ["parse-json", "npm:5.2.0"],\ + ["pretty-format", "npm:29.7.0"],\ + ["slash", "npm:3.0.0"],\ + ["strip-json-comments", "npm:3.1.1"],\ + ["ts-node", null]\ + ],\ + "packagePeers": [\ + "@types/node",\ + "@types/ts-node",\ + "ts-node"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0", {\ + "packageLocation": "./.yarn/__virtual__/jest-config-virtual-eb0c766083/4/.yarn/berry/cache/jest-config-npm-29.7.0-97d8544d74-10c0.zip/node_modules/jest-config/",\ + "packageDependencies": [\ + ["jest-config", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@jest/test-sequencer", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["@types/ts-node", null],\ + ["babel-jest", "virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0"],\ + ["chalk", "npm:4.1.2"],\ + ["ci-info", "npm:3.9.0"],\ + ["deepmerge", "npm:4.3.1"],\ + ["glob", "npm:7.2.3"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-circus", "npm:29.7.0"],\ + ["jest-environment-node", "npm:29.7.0"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["jest-regex-util", "npm:29.6.3"],\ + ["jest-resolve", "npm:29.7.0"],\ + ["jest-runner", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-validate", "npm:29.7.0"],\ + ["micromatch", "npm:4.0.8"],\ + ["parse-json", "npm:5.2.0"],\ + ["pretty-format", "npm:29.7.0"],\ + ["slash", "npm:3.0.0"],\ + ["strip-json-comments", "npm:3.1.1"],\ + ["ts-node", null]\ + ],\ + "packagePeers": [\ + "@types/node",\ + "@types/ts-node",\ + "ts-node"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-diff", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-diff-npm-29.7.0-0149e01930-10c0.zip/node_modules/jest-diff/",\ + "packageDependencies": [\ + ["jest-diff", "npm:29.7.0"],\ + ["chalk", "npm:4.1.2"],\ + ["diff-sequences", "npm:29.6.3"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["pretty-format", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-docblock", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-docblock-npm-29.7.0-ec59f449dd-10c0.zip/node_modules/jest-docblock/",\ + "packageDependencies": [\ + ["jest-docblock", "npm:29.7.0"],\ + ["detect-newline", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-each", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-each-npm-29.7.0-93476f5ba0-10c0.zip/node_modules/jest-each/",\ + "packageDependencies": [\ + ["jest-each", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["chalk", "npm:4.1.2"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["jest-util", "npm:29.7.0"],\ + ["pretty-format", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-environment-node", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-environment-node-npm-29.7.0-860b5e25ec-10c0.zip/node_modules/jest-environment-node/",\ + "packageDependencies": [\ + ["jest-environment-node", "npm:29.7.0"],\ + ["@jest/environment", "npm:29.7.0"],\ + ["@jest/fake-timers", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["jest-mock", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-get-type", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-get-type-npm-29.6.3-500477292e-10c0.zip/node_modules/jest-get-type/",\ + "packageDependencies": [\ + ["jest-get-type", "npm:29.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-haste-map", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-haste-map-npm-29.7.0-e3be419eff-10c0.zip/node_modules/jest-haste-map/",\ + "packageDependencies": [\ + ["jest-haste-map", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/graceful-fs", "npm:4.1.9"],\ + ["@types/node", "npm:22.10.9"],\ + ["anymatch", "npm:3.1.3"],\ + ["fb-watchman", "npm:2.0.2"],\ + ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-regex-util", "npm:29.6.3"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-worker", "npm:29.7.0"],\ + ["micromatch", "npm:4.0.8"],\ + ["walker", "npm:1.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-leak-detector", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-leak-detector-npm-29.7.0-915d82553f-10c0.zip/node_modules/jest-leak-detector/",\ + "packageDependencies": [\ + ["jest-leak-detector", "npm:29.7.0"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["pretty-format", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-matcher-utils", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-matcher-utils-npm-29.7.0-dfc74b630e-10c0.zip/node_modules/jest-matcher-utils/",\ + "packageDependencies": [\ + ["jest-matcher-utils", "npm:29.7.0"],\ + ["chalk", "npm:4.1.2"],\ + ["jest-diff", "npm:29.7.0"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["pretty-format", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-message-util", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-10c0.zip/node_modules/jest-message-util/",\ + "packageDependencies": [\ + ["jest-message-util", "npm:29.7.0"],\ + ["@babel/code-frame", "npm:7.26.2"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/stack-utils", "npm:2.0.3"],\ + ["chalk", "npm:4.1.2"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["micromatch", "npm:4.0.8"],\ + ["pretty-format", "npm:29.7.0"],\ + ["slash", "npm:3.0.0"],\ + ["stack-utils", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-mock", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-mock-npm-29.7.0-22c4769d06-10c0.zip/node_modules/jest-mock/",\ + "packageDependencies": [\ + ["jest-mock", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["jest-util", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-pnp-resolver", [\ + ["npm:1.2.3", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-10c0.zip/node_modules/jest-pnp-resolver/",\ + "packageDependencies": [\ + ["jest-pnp-resolver", "npm:1.2.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:5c36f0eefbce78ee308fab92b5dcd29e2b0b70713b50365f0168be5bb1facc6582106f851a083d72bbb13e26d984e8612da5ed4b2bae83649e73e7b1ce19525b#npm:1.2.3", {\ + "packageLocation": "./.yarn/__virtual__/jest-pnp-resolver-virtual-4a109cd39c/4/.yarn/berry/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-10c0.zip/node_modules/jest-pnp-resolver/",\ + "packageDependencies": [\ + ["jest-pnp-resolver", "virtual:5c36f0eefbce78ee308fab92b5dcd29e2b0b70713b50365f0168be5bb1facc6582106f851a083d72bbb13e26d984e8612da5ed4b2bae83649e73e7b1ce19525b#npm:1.2.3"],\ + ["@types/jest-resolve", null],\ + ["jest-resolve", "npm:29.7.0"]\ + ],\ + "packagePeers": [\ + "@types/jest-resolve",\ + "jest-resolve"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-regex-util", [\ + ["npm:29.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-regex-util-npm-29.6.3-568e0094e2-10c0.zip/node_modules/jest-regex-util/",\ + "packageDependencies": [\ + ["jest-regex-util", "npm:29.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-resolve", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-resolve-npm-29.7.0-5c36f0eefb-10c0.zip/node_modules/jest-resolve/",\ + "packageDependencies": [\ + ["jest-resolve", "npm:29.7.0"],\ + ["chalk", "npm:4.1.2"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-haste-map", "npm:29.7.0"],\ + ["jest-pnp-resolver", "virtual:5c36f0eefbce78ee308fab92b5dcd29e2b0b70713b50365f0168be5bb1facc6582106f851a083d72bbb13e26d984e8612da5ed4b2bae83649e73e7b1ce19525b#npm:1.2.3"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-validate", "npm:29.7.0"],\ + ["resolve", "patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d"],\ + ["resolve.exports", "npm:2.0.3"],\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-resolve-dependencies", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-resolve-dependencies-npm-29.7.0-06ec582f1e-10c0.zip/node_modules/jest-resolve-dependencies/",\ + "packageDependencies": [\ + ["jest-resolve-dependencies", "npm:29.7.0"],\ + ["jest-regex-util", "npm:29.6.3"],\ + ["jest-snapshot", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-runner", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-runner-npm-29.7.0-3bc9f82b58-10c0.zip/node_modules/jest-runner/",\ + "packageDependencies": [\ + ["jest-runner", "npm:29.7.0"],\ + ["@jest/console", "npm:29.7.0"],\ + ["@jest/environment", "npm:29.7.0"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/transform", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["chalk", "npm:4.1.2"],\ + ["emittery", "npm:0.13.1"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-docblock", "npm:29.7.0"],\ + ["jest-environment-node", "npm:29.7.0"],\ + ["jest-haste-map", "npm:29.7.0"],\ + ["jest-leak-detector", "npm:29.7.0"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-resolve", "npm:29.7.0"],\ + ["jest-runtime", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["jest-watcher", "npm:29.7.0"],\ + ["jest-worker", "npm:29.7.0"],\ + ["p-limit", "npm:3.1.0"],\ + ["source-map-support", "npm:0.5.13"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-runtime", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-runtime-npm-29.7.0-120fa64128-10c0.zip/node_modules/jest-runtime/",\ + "packageDependencies": [\ + ["jest-runtime", "npm:29.7.0"],\ + ["@jest/environment", "npm:29.7.0"],\ + ["@jest/fake-timers", "npm:29.7.0"],\ + ["@jest/globals", "npm:29.7.0"],\ + ["@jest/source-map", "npm:29.6.3"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/transform", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["chalk", "npm:4.1.2"],\ + ["cjs-module-lexer", "npm:1.4.1"],\ + ["collect-v8-coverage", "npm:1.0.2"],\ + ["glob", "npm:7.2.3"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-haste-map", "npm:29.7.0"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-mock", "npm:29.7.0"],\ + ["jest-regex-util", "npm:29.6.3"],\ + ["jest-resolve", "npm:29.7.0"],\ + ["jest-snapshot", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["slash", "npm:3.0.0"],\ + ["strip-bom", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-snapshot", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-snapshot-npm-29.7.0-15ef0a4ad6-10c0.zip/node_modules/jest-snapshot/",\ + "packageDependencies": [\ + ["jest-snapshot", "npm:29.7.0"],\ + ["@babel/core", "npm:7.26.0"],\ + ["@babel/generator", "npm:7.26.5"],\ + ["@babel/plugin-syntax-jsx", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ + ["@babel/plugin-syntax-typescript", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ + ["@babel/types", "npm:7.26.5"],\ + ["@jest/expect-utils", "npm:29.7.0"],\ + ["@jest/transform", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["babel-preset-current-node-syntax", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:1.1.0"],\ + ["chalk", "npm:4.1.2"],\ + ["expect", "npm:29.7.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["jest-diff", "npm:29.7.0"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["jest-matcher-utils", "npm:29.7.0"],\ + ["jest-message-util", "npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["natural-compare", "npm:1.4.0"],\ + ["pretty-format", "npm:29.7.0"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-util", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-util-npm-29.7.0-ff1d59714b-10c0.zip/node_modules/jest-util/",\ + "packageDependencies": [\ + ["jest-util", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["chalk", "npm:4.1.2"],\ + ["ci-info", "npm:3.9.0"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-validate", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-validate-npm-29.7.0-795ac5ede8-10c0.zip/node_modules/jest-validate/",\ + "packageDependencies": [\ + ["jest-validate", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["camelcase", "npm:6.3.0"],\ + ["chalk", "npm:4.1.2"],\ + ["jest-get-type", "npm:29.6.3"],\ + ["leven", "npm:3.1.0"],\ + ["pretty-format", "npm:29.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-watcher", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-watcher-npm-29.7.0-e5372f1629-10c0.zip/node_modules/jest-watcher/",\ + "packageDependencies": [\ + ["jest-watcher", "npm:29.7.0"],\ + ["@jest/test-result", "npm:29.7.0"],\ + ["@jest/types", "npm:29.6.3"],\ + ["@types/node", "npm:22.10.9"],\ + ["ansi-escapes", "npm:4.3.2"],\ + ["chalk", "npm:4.1.2"],\ + ["emittery", "npm:0.13.1"],\ + ["jest-util", "npm:29.7.0"],\ + ["string-length", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jest-worker", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jest-worker-npm-29.7.0-4d3567fed6-10c0.zip/node_modules/jest-worker/",\ + "packageDependencies": [\ + ["jest-worker", "npm:29.7.0"],\ + ["@types/node", "npm:22.10.9"],\ + ["jest-util", "npm:29.7.0"],\ + ["merge-stream", "npm:2.0.0"],\ + ["supports-color", "npm:8.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["js-tokens", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/js-tokens-npm-4.0.0-0ac852e9e2-10c0.zip/node_modules/js-tokens/",\ + "packageDependencies": [\ + ["js-tokens", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["js-yaml", [\ + ["npm:3.14.1", {\ + "packageLocation": "../../../.yarn/berry/cache/js-yaml-npm-3.14.1-b968c6095e-10c0.zip/node_modules/js-yaml/",\ + "packageDependencies": [\ + ["js-yaml", "npm:3.14.1"],\ + ["argparse", "npm:1.0.10"],\ + ["esprima", "npm:4.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jsbn", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jsbn-npm-1.1.0-1da0181838-10c0.zip/node_modules/jsbn/",\ + "packageDependencies": [\ + ["jsbn", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jsesc", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/jsesc-npm-3.1.0-2f4f998cd7-10c0.zip/node_modules/jsesc/",\ + "packageDependencies": [\ + ["jsesc", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["json-parse-even-better-errors", [\ + ["npm:2.3.1", {\ + "packageLocation": "../../../.yarn/berry/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-10c0.zip/node_modules/json-parse-even-better-errors/",\ + "packageDependencies": [\ + ["json-parse-even-better-errors", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["json5", [\ + ["npm:2.2.3", {\ + "packageLocation": "../../../.yarn/berry/cache/json5-npm-2.2.3-9962c55073-10c0.zip/node_modules/json5/",\ + "packageDependencies": [\ + ["json5", "npm:2.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["kleur", [\ + ["npm:3.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/kleur-npm-3.0.3-f6f53649a4-10c0.zip/node_modules/kleur/",\ + "packageDependencies": [\ + ["kleur", "npm:3.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["leven", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/leven-npm-3.1.0-b7697736a3-10c0.zip/node_modules/leven/",\ + "packageDependencies": [\ + ["leven", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lines-and-columns", [\ + ["npm:1.2.4", {\ + "packageLocation": "../../../.yarn/berry/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-10c0.zip/node_modules/lines-and-columns/",\ + "packageDependencies": [\ + ["lines-and-columns", "npm:1.2.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["locate-path", [\ + ["npm:5.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/locate-path-npm-5.0.0-46580c43e4-10c0.zip/node_modules/locate-path/",\ + "packageDependencies": [\ + ["locate-path", "npm:5.0.0"],\ + ["p-locate", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lodash.memoize", [\ + ["npm:4.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/lodash.memoize-npm-4.1.2-0e6250041f-10c0.zip/node_modules/lodash.memoize/",\ + "packageDependencies": [\ + ["lodash.memoize", "npm:4.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lru-cache", [\ + ["npm:10.4.3", {\ + "packageLocation": "../../../.yarn/berry/cache/lru-cache-npm-10.4.3-30c10b861a-10c0.zip/node_modules/lru-cache/",\ + "packageDependencies": [\ + ["lru-cache", "npm:10.4.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/lru-cache-npm-5.1.1-f475882a51-10c0.zip/node_modules/lru-cache/",\ + "packageDependencies": [\ + ["lru-cache", "npm:5.1.1"],\ + ["yallist", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["make-dir", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/make-dir-npm-4.0.0-ec3cd921cc-10c0.zip/node_modules/make-dir/",\ + "packageDependencies": [\ + ["make-dir", "npm:4.0.0"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["make-error", [\ + ["npm:1.3.6", {\ + "packageLocation": "../../../.yarn/berry/cache/make-error-npm-1.3.6-ccb85d9458-10c0.zip/node_modules/make-error/",\ + "packageDependencies": [\ + ["make-error", "npm:1.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["make-fetch-happen", [\ + ["npm:14.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/make-fetch-happen-npm-14.0.3-23b30e8691-10c0.zip/node_modules/make-fetch-happen/",\ + "packageDependencies": [\ + ["make-fetch-happen", "npm:14.0.3"],\ + ["@npmcli/agent", "npm:3.0.0"],\ + ["cacache", "npm:19.0.1"],\ + ["http-cache-semantics", "npm:4.1.1"],\ + ["minipass", "npm:7.1.2"],\ + ["minipass-fetch", "npm:4.0.0"],\ + ["minipass-flush", "npm:1.0.5"],\ + ["minipass-pipeline", "npm:1.2.4"],\ + ["negotiator", "npm:1.0.0"],\ + ["proc-log", "npm:5.0.0"],\ + ["promise-retry", "npm:2.0.1"],\ + ["ssri", "npm:12.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["makeerror", [\ + ["npm:1.0.12", {\ + "packageLocation": "../../../.yarn/berry/cache/makeerror-npm-1.0.12-69abf085d7-10c0.zip/node_modules/makeerror/",\ + "packageDependencies": [\ + ["makeerror", "npm:1.0.12"],\ + ["tmpl", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["merge-stream", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/merge-stream-npm-2.0.0-2ac83efea5-10c0.zip/node_modules/merge-stream/",\ + "packageDependencies": [\ + ["merge-stream", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["micromatch", [\ + ["npm:4.0.8", {\ + "packageLocation": "../../../.yarn/berry/cache/micromatch-npm-4.0.8-c9570e4aca-10c0.zip/node_modules/micromatch/",\ + "packageDependencies": [\ + ["micromatch", "npm:4.0.8"],\ + ["braces", "npm:3.0.3"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mimic-fn", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-10c0.zip/node_modules/mimic-fn/",\ + "packageDependencies": [\ + ["mimic-fn", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minimatch", [\ + ["npm:3.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/minimatch-npm-3.1.2-9405269906-10c0.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["minimatch", "npm:3.1.2"],\ + ["brace-expansion", "npm:1.1.11"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.6", {\ + "packageLocation": "../../../.yarn/berry/cache/minimatch-npm-5.1.6-1e71429f4c-10c0.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["minimatch", "npm:5.1.6"],\ + ["brace-expansion", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:9.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/minimatch-npm-9.0.5-9aa93d97fa-10c0.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["minimatch", "npm:9.0.5"],\ + ["brace-expansion", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass", [\ + ["npm:3.3.6", {\ + "packageLocation": "../../../.yarn/berry/cache/minipass-npm-3.3.6-b8d93a945b-10c0.zip/node_modules/minipass/",\ + "packageDependencies": [\ + ["minipass", "npm:3.3.6"],\ + ["yallist", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/minipass-npm-7.1.2-3a5327d36d-10c0.zip/node_modules/minipass/",\ + "packageDependencies": [\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-collect", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/minipass-collect-npm-2.0.1-73d3907e40-10c0.zip/node_modules/minipass-collect/",\ + "packageDependencies": [\ + ["minipass-collect", "npm:2.0.1"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-fetch", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/minipass-fetch-npm-4.0.0-d4e49e0194-10c0.zip/node_modules/minipass-fetch/",\ + "packageDependencies": [\ + ["minipass-fetch", "npm:4.0.0"],\ + ["encoding", "npm:0.1.13"],\ + ["minipass", "npm:7.1.2"],\ + ["minipass-sized", "npm:1.0.3"],\ + ["minizlib", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-flush", [\ + ["npm:1.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/minipass-flush-npm-1.0.5-efe79d9826-10c0.zip/node_modules/minipass-flush/",\ + "packageDependencies": [\ + ["minipass-flush", "npm:1.0.5"],\ + ["minipass", "npm:3.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-pipeline", [\ + ["npm:1.2.4", {\ + "packageLocation": "../../../.yarn/berry/cache/minipass-pipeline-npm-1.2.4-5924cb077f-10c0.zip/node_modules/minipass-pipeline/",\ + "packageDependencies": [\ + ["minipass-pipeline", "npm:1.2.4"],\ + ["minipass", "npm:3.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass-sized", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/minipass-sized-npm-1.0.3-306d86f432-10c0.zip/node_modules/minipass-sized/",\ + "packageDependencies": [\ + ["minipass-sized", "npm:1.0.3"],\ + ["minipass", "npm:3.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minizlib", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/minizlib-npm-3.0.1-4bdabd978f-10c0.zip/node_modules/minizlib/",\ + "packageDependencies": [\ + ["minizlib", "npm:3.0.1"],\ + ["minipass", "npm:7.1.2"],\ + ["rimraf", "npm:5.0.10"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mkdirp", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/mkdirp-npm-3.0.1-f94bfa769e-10c0.zip/node_modules/mkdirp/",\ + "packageDependencies": [\ + ["mkdirp", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ms", [\ + ["npm:2.1.3", {\ + "packageLocation": "../../../.yarn/berry/cache/ms-npm-2.1.3-81ff3cfac1-10c0.zip/node_modules/ms/",\ + "packageDependencies": [\ + ["ms", "npm:2.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["natural-compare", [\ + ["npm:1.4.0", {\ + "packageLocation": "../../../.yarn/berry/cache/natural-compare-npm-1.4.0-97b75b362d-10c0.zip/node_modules/natural-compare/",\ + "packageDependencies": [\ + ["natural-compare", "npm:1.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["negotiator", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/negotiator-npm-1.0.0-47d727e27e-10c0.zip/node_modules/negotiator/",\ + "packageDependencies": [\ + ["negotiator", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["node-gyp", [\ + ["npm:11.0.0", {\ + "packageLocation": "./.yarn/unplugged/node-gyp-npm-11.0.0-669e34db1b/node_modules/node-gyp/",\ + "packageDependencies": [\ + ["node-gyp", "npm:11.0.0"],\ + ["env-paths", "npm:2.2.1"],\ + ["exponential-backoff", "npm:3.1.1"],\ + ["glob", "npm:10.4.5"],\ + ["graceful-fs", "npm:4.2.11"],\ + ["make-fetch-happen", "npm:14.0.3"],\ + ["nopt", "npm:8.1.0"],\ + ["proc-log", "npm:5.0.0"],\ + ["semver", "npm:7.6.3"],\ + ["tar", "npm:7.4.3"],\ + ["which", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["node-int64", [\ + ["npm:0.4.0", {\ + "packageLocation": "../../../.yarn/berry/cache/node-int64-npm-0.4.0-0dc04ec3b2-10c0.zip/node_modules/node-int64/",\ + "packageDependencies": [\ + ["node-int64", "npm:0.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["node-releases", [\ + ["npm:2.0.19", {\ + "packageLocation": "../../../.yarn/berry/cache/node-releases-npm-2.0.19-b123ed6240-10c0.zip/node_modules/node-releases/",\ + "packageDependencies": [\ + ["node-releases", "npm:2.0.19"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nodemon", [\ + ["npm:3.1.9", {\ + "packageLocation": "./.yarn/unplugged/nodemon-npm-3.1.9-f1382c5541/node_modules/nodemon/",\ + "packageDependencies": [\ + ["nodemon", "npm:3.1.9"],\ + ["chokidar", "npm:3.6.0"],\ + ["debug", "virtual:f1382c554182f9e1abb3745e34e5163637ebd3c611df77e82da38f1ec9964f1d016765e440e68141eed073069546eb468a3a6ce4bd0b2b99cbf6baa9d7635af7#npm:4.4.0"],\ + ["ignore-by-default", "npm:1.0.1"],\ + ["minimatch", "npm:3.1.2"],\ + ["pstree.remy", "npm:1.1.8"],\ + ["semver", "npm:7.6.3"],\ + ["simple-update-notifier", "npm:2.0.0"],\ + ["supports-color", "npm:5.5.0"],\ + ["touch", "npm:3.1.1"],\ + ["undefsafe", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["nopt", [\ + ["npm:8.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/nopt-npm-8.1.0-5570ef63cd-10c0.zip/node_modules/nopt/",\ + "packageDependencies": [\ + ["nopt", "npm:8.1.0"],\ + ["abbrev", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["normalize-path", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/normalize-path-npm-3.0.0-658ba7d77f-10c0.zip/node_modules/normalize-path/",\ + "packageDependencies": [\ + ["normalize-path", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["npm-run-path", [\ + ["npm:4.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/npm-run-path-npm-4.0.1-7aebd8bab3-10c0.zip/node_modules/npm-run-path/",\ + "packageDependencies": [\ + ["npm-run-path", "npm:4.0.1"],\ + ["path-key", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["once", [\ + ["npm:1.4.0", {\ + "packageLocation": "../../../.yarn/berry/cache/once-npm-1.4.0-ccf03ef07a-10c0.zip/node_modules/once/",\ + "packageDependencies": [\ + ["once", "npm:1.4.0"],\ + ["wrappy", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["onetime", [\ + ["npm:5.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/onetime-npm-5.1.2-3ed148fa42-10c0.zip/node_modules/onetime/",\ + "packageDependencies": [\ + ["onetime", "npm:5.1.2"],\ + ["mimic-fn", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-limit", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/p-limit-npm-2.3.0-94a0310039-10c0.zip/node_modules/p-limit/",\ + "packageDependencies": [\ + ["p-limit", "npm:2.3.0"],\ + ["p-try", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/p-limit-npm-3.1.0-05d2ede37f-10c0.zip/node_modules/p-limit/",\ + "packageDependencies": [\ + ["p-limit", "npm:3.1.0"],\ + ["yocto-queue", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-locate", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/p-locate-npm-4.1.0-eec6872537-10c0.zip/node_modules/p-locate/",\ + "packageDependencies": [\ + ["p-locate", "npm:4.1.0"],\ + ["p-limit", "npm:2.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-map", [\ + ["npm:7.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/p-map-npm-7.0.3-93bbec0d8c-10c0.zip/node_modules/p-map/",\ + "packageDependencies": [\ + ["p-map", "npm:7.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-try", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/p-try-npm-2.2.0-e0390dbaf8-10c0.zip/node_modules/p-try/",\ + "packageDependencies": [\ + ["p-try", "npm:2.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["package-json-from-dist", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/package-json-from-dist-npm-1.0.1-4631a88465-10c0.zip/node_modules/package-json-from-dist/",\ + "packageDependencies": [\ + ["package-json-from-dist", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["parse-json", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/parse-json-npm-5.2.0-00a63b1199-10c0.zip/node_modules/parse-json/",\ + "packageDependencies": [\ + ["parse-json", "npm:5.2.0"],\ + ["@babel/code-frame", "npm:7.26.2"],\ + ["error-ex", "npm:1.3.2"],\ + ["json-parse-even-better-errors", "npm:2.3.1"],\ + ["lines-and-columns", "npm:1.2.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-exists", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/path-exists-npm-4.0.0-e9e4f63eb0-10c0.zip/node_modules/path-exists/",\ + "packageDependencies": [\ + ["path-exists", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-is-absolute", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/path-is-absolute-npm-1.0.1-31bc695ffd-10c0.zip/node_modules/path-is-absolute/",\ + "packageDependencies": [\ + ["path-is-absolute", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-key", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/path-key-npm-3.1.1-0e66ea8321-10c0.zip/node_modules/path-key/",\ + "packageDependencies": [\ + ["path-key", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-parse", [\ + ["npm:1.0.7", {\ + "packageLocation": "../../../.yarn/berry/cache/path-parse-npm-1.0.7-09564527b7-10c0.zip/node_modules/path-parse/",\ + "packageDependencies": [\ + ["path-parse", "npm:1.0.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-scurry", [\ + ["npm:1.11.1", {\ + "packageLocation": "../../../.yarn/berry/cache/path-scurry-npm-1.11.1-aaf8c339af-10c0.zip/node_modules/path-scurry/",\ + "packageDependencies": [\ + ["path-scurry", "npm:1.11.1"],\ + ["lru-cache", "npm:10.4.3"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["picocolors", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/picocolors-npm-1.1.1-4fede47cf1-10c0.zip/node_modules/picocolors/",\ + "packageDependencies": [\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["picomatch", [\ + ["npm:2.3.1", {\ + "packageLocation": "../../../.yarn/berry/cache/picomatch-npm-2.3.1-c782cfd986-10c0.zip/node_modules/picomatch/",\ + "packageDependencies": [\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pirates", [\ + ["npm:4.0.6", {\ + "packageLocation": "../../../.yarn/berry/cache/pirates-npm-4.0.6-a8ec571a43-10c0.zip/node_modules/pirates/",\ + "packageDependencies": [\ + ["pirates", "npm:4.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pkg-dir", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-10c0.zip/node_modules/pkg-dir/",\ + "packageDependencies": [\ + ["pkg-dir", "npm:4.2.0"],\ + ["find-up", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pretty-format", [\ + ["npm:29.7.0", {\ + "packageLocation": "../../../.yarn/berry/cache/pretty-format-npm-29.7.0-7d330b2ea2-10c0.zip/node_modules/pretty-format/",\ + "packageDependencies": [\ + ["pretty-format", "npm:29.7.0"],\ + ["@jest/schemas", "npm:29.6.3"],\ + ["ansi-styles", "npm:5.2.0"],\ + ["react-is", "npm:18.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["proc-log", [\ + ["npm:5.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/proc-log-npm-5.0.0-405173f9b4-10c0.zip/node_modules/proc-log/",\ + "packageDependencies": [\ + ["proc-log", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["promise-retry", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/promise-retry-npm-2.0.1-871f0b01b7-10c0.zip/node_modules/promise-retry/",\ + "packageDependencies": [\ + ["promise-retry", "npm:2.0.1"],\ + ["err-code", "npm:2.0.3"],\ + ["retry", "npm:0.12.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["prompts", [\ + ["npm:2.4.2", {\ + "packageLocation": "../../../.yarn/berry/cache/prompts-npm-2.4.2-f5d25d5eea-10c0.zip/node_modules/prompts/",\ + "packageDependencies": [\ + ["prompts", "npm:2.4.2"],\ + ["kleur", "npm:3.0.3"],\ + ["sisteransi", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pstree.remy", [\ + ["npm:1.1.8", {\ + "packageLocation": "../../../.yarn/berry/cache/pstree.remy-npm-1.1.8-2dd5d55de2-10c0.zip/node_modules/pstree.remy/",\ + "packageDependencies": [\ + ["pstree.remy", "npm:1.1.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pure-rand", [\ + ["npm:6.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/pure-rand-npm-6.1.0-497ea3fc37-10c0.zip/node_modules/pure-rand/",\ + "packageDependencies": [\ + ["pure-rand", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["react-is", [\ + ["npm:18.3.1", {\ + "packageLocation": "../../../.yarn/berry/cache/react-is-npm-18.3.1-370a81e1e9-10c0.zip/node_modules/react-is/",\ + "packageDependencies": [\ + ["react-is", "npm:18.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["readdirp", [\ + ["npm:3.6.0", {\ + "packageLocation": "../../../.yarn/berry/cache/readdirp-npm-3.6.0-f950cc74ab-10c0.zip/node_modules/readdirp/",\ + "packageDependencies": [\ + ["readdirp", "npm:3.6.0"],\ + ["picomatch", "npm:2.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["require-directory", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/require-directory-npm-2.1.1-8608aee50b-10c0.zip/node_modules/require-directory/",\ + "packageDependencies": [\ + ["require-directory", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve", [\ + ["patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d", {\ + "packageLocation": "../../../.yarn/berry/cache/resolve-patch-b5982cfa8c-10c0.zip/node_modules/resolve/",\ + "packageDependencies": [\ + ["resolve", "patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d"],\ + ["is-core-module", "npm:2.16.1"],\ + ["path-parse", "npm:1.0.7"],\ + ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve-cwd", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-10c0.zip/node_modules/resolve-cwd/",\ + "packageDependencies": [\ + ["resolve-cwd", "npm:3.0.0"],\ + ["resolve-from", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve-from", [\ + ["npm:5.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/resolve-from-npm-5.0.0-15c9db4d33-10c0.zip/node_modules/resolve-from/",\ + "packageDependencies": [\ + ["resolve-from", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["resolve.exports", [\ + ["npm:2.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/resolve.exports-npm-2.0.3-eb33ea72e9-10c0.zip/node_modules/resolve.exports/",\ + "packageDependencies": [\ + ["resolve.exports", "npm:2.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["retry", [\ + ["npm:0.12.0", {\ + "packageLocation": "../../../.yarn/berry/cache/retry-npm-0.12.0-72ac7fb4cc-10c0.zip/node_modules/retry/",\ + "packageDependencies": [\ + ["retry", "npm:0.12.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rimraf", [\ + ["npm:5.0.10", {\ + "packageLocation": "../../../.yarn/berry/cache/rimraf-npm-5.0.10-d0c6647697-10c0.zip/node_modules/rimraf/",\ + "packageDependencies": [\ + ["rimraf", "npm:5.0.10"],\ + ["glob", "npm:10.4.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["safer-buffer", [\ + ["npm:2.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/safer-buffer-npm-2.1.2-8d5c0b705e-10c0.zip/node_modules/safer-buffer/",\ + "packageDependencies": [\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["semver", [\ + ["npm:6.3.1", {\ + "packageLocation": "../../../.yarn/berry/cache/semver-npm-6.3.1-bcba31fdbe-10c0.zip/node_modules/semver/",\ + "packageDependencies": [\ + ["semver", "npm:6.3.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.6.3", {\ + "packageLocation": "../../../.yarn/berry/cache/semver-npm-7.6.3-57e82c14d5-10c0.zip/node_modules/semver/",\ + "packageDependencies": [\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["shebang-command", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/shebang-command-npm-2.0.0-eb2b01921d-10c0.zip/node_modules/shebang-command/",\ + "packageDependencies": [\ + ["shebang-command", "npm:2.0.0"],\ + ["shebang-regex", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["shebang-regex", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/shebang-regex-npm-3.0.0-899a0cd65e-10c0.zip/node_modules/shebang-regex/",\ + "packageDependencies": [\ + ["shebang-regex", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["signal-exit", [\ + ["npm:3.0.7", {\ + "packageLocation": "../../../.yarn/berry/cache/signal-exit-npm-3.0.7-bd270458a3-10c0.zip/node_modules/signal-exit/",\ + "packageDependencies": [\ + ["signal-exit", "npm:3.0.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/signal-exit-npm-4.1.0-61fb957687-10c0.zip/node_modules/signal-exit/",\ + "packageDependencies": [\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["simple-update-notifier", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/simple-update-notifier-npm-2.0.0-4d6e5dba61-10c0.zip/node_modules/simple-update-notifier/",\ + "packageDependencies": [\ + ["simple-update-notifier", "npm:2.0.0"],\ + ["semver", "npm:7.6.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sisteransi", [\ + ["npm:1.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/sisteransi-npm-1.0.5-af60cc0cfa-10c0.zip/node_modules/sisteransi/",\ + "packageDependencies": [\ + ["sisteransi", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["slash", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/slash-npm-3.0.0-b87de2279a-10c0.zip/node_modules/slash/",\ + "packageDependencies": [\ + ["slash", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["smart-buffer", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/smart-buffer-npm-4.2.0-5ac3f668bb-10c0.zip/node_modules/smart-buffer/",\ + "packageDependencies": [\ + ["smart-buffer", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["socks", [\ + ["npm:2.8.3", {\ + "packageLocation": "../../../.yarn/berry/cache/socks-npm-2.8.3-3532b59899-10c0.zip/node_modules/socks/",\ + "packageDependencies": [\ + ["socks", "npm:2.8.3"],\ + ["ip-address", "npm:9.0.5"],\ + ["smart-buffer", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["socks-proxy-agent", [\ + ["npm:8.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-10c0.zip/node_modules/socks-proxy-agent/",\ + "packageDependencies": [\ + ["socks-proxy-agent", "npm:8.0.5"],\ + ["agent-base", "npm:7.1.3"],\ + ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ + ["socks", "npm:2.8.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-map", [\ + ["npm:0.6.1", {\ + "packageLocation": "../../../.yarn/berry/cache/source-map-npm-0.6.1-1a3621db16-10c0.zip/node_modules/source-map/",\ + "packageDependencies": [\ + ["source-map", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["source-map-support", [\ + ["npm:0.5.13", {\ + "packageLocation": "../../../.yarn/berry/cache/source-map-support-npm-0.5.13-377dfd7321-10c0.zip/node_modules/source-map-support/",\ + "packageDependencies": [\ + ["source-map-support", "npm:0.5.13"],\ + ["buffer-from", "npm:1.1.2"],\ + ["source-map", "npm:0.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sprintf-js", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../../.yarn/berry/cache/sprintf-js-npm-1.0.3-73f0a322fa-10c0.zip/node_modules/sprintf-js/",\ + "packageDependencies": [\ + ["sprintf-js", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.1.3", {\ + "packageLocation": "../../../.yarn/berry/cache/sprintf-js-npm-1.1.3-b99efd75b2-10c0.zip/node_modules/sprintf-js/",\ + "packageDependencies": [\ + ["sprintf-js", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ssri", [\ + ["npm:12.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/ssri-npm-12.0.0-97c0e53d2e-10c0.zip/node_modules/ssri/",\ + "packageDependencies": [\ + ["ssri", "npm:12.0.0"],\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["stack-utils", [\ + ["npm:2.0.6", {\ + "packageLocation": "../../../.yarn/berry/cache/stack-utils-npm-2.0.6-2be1099696-10c0.zip/node_modules/stack-utils/",\ + "packageDependencies": [\ + ["stack-utils", "npm:2.0.6"],\ + ["escape-string-regexp", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["string-length", [\ + ["npm:4.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/string-length-npm-4.0.2-675173c7a2-10c0.zip/node_modules/string-length/",\ + "packageDependencies": [\ + ["string-length", "npm:4.0.2"],\ + ["char-regex", "npm:1.0.2"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["string-width", [\ + ["npm:4.2.3", {\ + "packageLocation": "../../../.yarn/berry/cache/string-width-npm-4.2.3-2c27177bae-10c0.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["string-width", "npm:4.2.3"],\ + ["emoji-regex", "npm:8.0.0"],\ + ["is-fullwidth-code-point", "npm:3.0.0"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/string-width-npm-5.1.2-bf60531341-10c0.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["string-width", "npm:5.1.2"],\ + ["eastasianwidth", "npm:0.2.0"],\ + ["emoji-regex", "npm:9.2.2"],\ + ["strip-ansi", "npm:7.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-ansi", [\ + ["npm:6.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/strip-ansi-npm-6.0.1-caddc7cb40-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["strip-ansi", "npm:6.0.1"],\ + ["ansi-regex", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/strip-ansi-npm-7.1.0-7453b80b79-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["strip-ansi", "npm:7.1.0"],\ + ["ansi-regex", "npm:6.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-bom", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/strip-bom-npm-4.0.0-97d367a64d-10c0.zip/node_modules/strip-bom/",\ + "packageDependencies": [\ + ["strip-bom", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-final-newline", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/strip-final-newline-npm-2.0.0-340c4f7c66-10c0.zip/node_modules/strip-final-newline/",\ + "packageDependencies": [\ + ["strip-final-newline", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-json-comments", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/strip-json-comments-npm-3.1.1-dcb2324823-10c0.zip/node_modules/strip-json-comments/",\ + "packageDependencies": [\ + ["strip-json-comments", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["supports-color", [\ + ["npm:5.5.0", {\ + "packageLocation": "../../../.yarn/berry/cache/supports-color-npm-5.5.0-183ac537bc-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["supports-color", "npm:5.5.0"],\ + ["has-flag", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.2.0", {\ + "packageLocation": "../../../.yarn/berry/cache/supports-color-npm-7.2.0-606bfcf7da-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["supports-color", "npm:7.2.0"],\ + ["has-flag", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/supports-color-npm-8.1.1-289e937149-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["supports-color", "npm:8.1.1"],\ + ["has-flag", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["supports-preserve-symlinks-flag", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-10c0.zip/node_modules/supports-preserve-symlinks-flag/",\ + "packageDependencies": [\ + ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tar", [\ + ["npm:7.4.3", {\ + "packageLocation": "../../../.yarn/berry/cache/tar-npm-7.4.3-1dbbd1ffc3-10c0.zip/node_modules/tar/",\ + "packageDependencies": [\ + ["tar", "npm:7.4.3"],\ + ["@isaacs/fs-minipass", "npm:4.0.1"],\ + ["chownr", "npm:3.0.0"],\ + ["minipass", "npm:7.1.2"],\ + ["minizlib", "npm:3.0.1"],\ + ["mkdirp", "npm:3.0.1"],\ + ["yallist", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["test-exclude", [\ + ["npm:6.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/test-exclude-npm-6.0.0-3fb03d69df-10c0.zip/node_modules/test-exclude/",\ + "packageDependencies": [\ + ["test-exclude", "npm:6.0.0"],\ + ["@istanbuljs/schema", "npm:0.1.3"],\ + ["glob", "npm:7.2.3"],\ + ["minimatch", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tmpl", [\ + ["npm:1.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/tmpl-npm-1.0.5-d399ba37e2-10c0.zip/node_modules/tmpl/",\ + "packageDependencies": [\ + ["tmpl", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["to-regex-range", [\ + ["npm:5.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/to-regex-range-npm-5.0.1-f1e8263b00-10c0.zip/node_modules/to-regex-range/",\ + "packageDependencies": [\ + ["to-regex-range", "npm:5.0.1"],\ + ["is-number", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["touch", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/touch-npm-3.1.1-30ecbeb0ee-10c0.zip/node_modules/touch/",\ + "packageDependencies": [\ + ["touch", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ts-jest", [\ + ["npm:29.2.5", {\ + "packageLocation": "../../../.yarn/berry/cache/ts-jest-npm-29.2.5-3012d53ff5-10c0.zip/node_modules/ts-jest/",\ + "packageDependencies": [\ + ["ts-jest", "npm:29.2.5"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5", {\ + "packageLocation": "./.yarn/__virtual__/ts-jest-virtual-967fc0c20c/4/.yarn/berry/cache/ts-jest-npm-29.2.5-3012d53ff5-10c0.zip/node_modules/ts-jest/",\ + "packageDependencies": [\ + ["ts-jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5"],\ + ["@babel/core", null],\ + ["@jest/transform", null],\ + ["@jest/types", null],\ + ["@types/babel-jest", null],\ + ["@types/babel__core", null],\ + ["@types/esbuild", null],\ + ["@types/jest", "npm:29.5.14"],\ + ["@types/jest__transform", null],\ + ["@types/jest__types", null],\ + ["@types/typescript", null],\ + ["babel-jest", null],\ + ["bs-logger", "npm:0.2.6"],\ + ["ejs", "npm:3.1.10"],\ + ["esbuild", null],\ + ["fast-json-stable-stringify", "npm:2.1.0"],\ + ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ + ["jest-util", "npm:29.7.0"],\ + ["json5", "npm:2.2.3"],\ + ["lodash.memoize", "npm:4.1.2"],\ + ["make-error", "npm:1.3.6"],\ + ["semver", "npm:7.6.3"],\ + ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"],\ + ["yargs-parser", "npm:21.1.1"]\ + ],\ + "packagePeers": [\ + "@babel/core",\ + "@jest/transform",\ + "@jest/types",\ + "@types/babel-jest",\ + "@types/babel__core",\ + "@types/esbuild",\ + "@types/jest",\ + "@types/jest__transform",\ + "@types/jest__types",\ + "@types/typescript",\ + "babel-jest",\ + "esbuild",\ + "jest",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ts-node", [\ + ["npm:10.9.2", {\ + "packageLocation": "../../../.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ + "packageDependencies": [\ + ["ts-node", "npm:10.9.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2", {\ + "packageLocation": "./.yarn/__virtual__/ts-node-virtual-a36e27cc40/4/.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ + "packageDependencies": [\ + ["ts-node", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2"],\ + ["@cspotcode/source-map-support", "npm:0.8.1"],\ + ["@swc/core", null],\ + ["@swc/wasm", null],\ + ["@tsconfig/node10", "npm:1.0.11"],\ + ["@tsconfig/node12", "npm:1.0.11"],\ + ["@tsconfig/node14", "npm:1.0.3"],\ + ["@tsconfig/node16", "npm:1.0.4"],\ + ["@types/node", "npm:20.17.16"],\ + ["@types/swc__core", null],\ + ["@types/swc__wasm", null],\ + ["@types/typescript", null],\ + ["acorn", "npm:8.14.0"],\ + ["acorn-walk", "npm:8.3.4"],\ + ["arg", "npm:4.1.3"],\ + ["create-require", "npm:1.1.1"],\ + ["diff", "npm:4.0.2"],\ + ["make-error", "npm:1.3.6"],\ + ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"],\ + ["v8-compile-cache-lib", "npm:3.0.1"],\ + ["yn", "npm:3.1.1"]\ + ],\ + "packagePeers": [\ + "@swc/core",\ + "@swc/wasm",\ + "@types/node",\ + "@types/swc__core",\ + "@types/swc__wasm",\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["type-detect", [\ + ["npm:4.0.8", {\ + "packageLocation": "../../../.yarn/berry/cache/type-detect-npm-4.0.8-8d8127b901-10c0.zip/node_modules/type-detect/",\ + "packageDependencies": [\ + ["type-detect", "npm:4.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["type-fest", [\ + ["npm:0.21.3", {\ + "packageLocation": "../../../.yarn/berry/cache/type-fest-npm-0.21.3-5ff2a9c6fd-10c0.zip/node_modules/type-fest/",\ + "packageDependencies": [\ + ["type-fest", "npm:0.21.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["typescript", [\ + ["patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40", {\ + "packageLocation": "../../../.yarn/berry/cache/typescript-patch-d15822a933-10c0.zip/node_modules/typescript/",\ + "packageDependencies": [\ + ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["undefsafe", [\ + ["npm:2.0.5", {\ + "packageLocation": "../../../.yarn/berry/cache/undefsafe-npm-2.0.5-8c3bbf9354-10c0.zip/node_modules/undefsafe/",\ + "packageDependencies": [\ + ["undefsafe", "npm:2.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["undici-types", [\ + ["npm:6.19.8", {\ + "packageLocation": "../../../.yarn/berry/cache/undici-types-npm-6.19.8-9f12285b7a-10c0.zip/node_modules/undici-types/",\ + "packageDependencies": [\ + ["undici-types", "npm:6.19.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.20.0", {\ + "packageLocation": "../../../.yarn/berry/cache/undici-types-npm-6.20.0-bd21e669af-10c0.zip/node_modules/undici-types/",\ + "packageDependencies": [\ + ["undici-types", "npm:6.20.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["unique-filename", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/unique-filename-npm-4.0.0-bfc100c4e3-10c0.zip/node_modules/unique-filename/",\ + "packageDependencies": [\ + ["unique-filename", "npm:4.0.0"],\ + ["unique-slug", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["unique-slug", [\ + ["npm:5.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/unique-slug-npm-5.0.0-11508c0469-10c0.zip/node_modules/unique-slug/",\ + "packageDependencies": [\ + ["unique-slug", "npm:5.0.0"],\ + ["imurmurhash", "npm:0.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["update-browserslist-db", [\ + ["npm:1.1.2", {\ + "packageLocation": "../../../.yarn/berry/cache/update-browserslist-db-npm-1.1.2-59b122fef6-10c0.zip/node_modules/update-browserslist-db/",\ + "packageDependencies": [\ + ["update-browserslist-db", "npm:1.1.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:2fdeb5face9914bb5fd94c70f084d153c80d2f09e5aabee010e4220b248dc23fca8f73c7beed0195e45ae6e2b1cb25388f709d7bfc4f00e473d573887faf4e5c#npm:1.1.2", {\ + "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-d7fc8cbe33/4/.yarn/berry/cache/update-browserslist-db-npm-1.1.2-59b122fef6-10c0.zip/node_modules/update-browserslist-db/",\ + "packageDependencies": [\ + ["update-browserslist-db", "virtual:2fdeb5face9914bb5fd94c70f084d153c80d2f09e5aabee010e4220b248dc23fca8f73c7beed0195e45ae6e2b1cb25388f709d7bfc4f00e473d573887faf4e5c#npm:1.1.2"],\ + ["@types/browserslist", null],\ + ["browserslist", "npm:4.24.4"],\ + ["escalade", "npm:3.2.0"],\ + ["picocolors", "npm:1.1.1"]\ + ],\ + "packagePeers": [\ + "@types/browserslist",\ + "browserslist"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["v8-compile-cache-lib", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../.yarn/berry/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-10c0.zip/node_modules/v8-compile-cache-lib/",\ + "packageDependencies": [\ + ["v8-compile-cache-lib", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["v8-to-istanbul", [\ + ["npm:9.3.0", {\ + "packageLocation": "../../../.yarn/berry/cache/v8-to-istanbul-npm-9.3.0-35fef658c9-10c0.zip/node_modules/v8-to-istanbul/",\ + "packageDependencies": [\ + ["v8-to-istanbul", "npm:9.3.0"],\ + ["@jridgewell/trace-mapping", "npm:0.3.25"],\ + ["@types/istanbul-lib-coverage", "npm:2.0.6"],\ + ["convert-source-map", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["walker", [\ + ["npm:1.0.8", {\ + "packageLocation": "../../../.yarn/berry/cache/walker-npm-1.0.8-b0a05b9478-10c0.zip/node_modules/walker/",\ + "packageDependencies": [\ + ["walker", "npm:1.0.8"],\ + ["makeerror", "npm:1.0.12"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["which", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-10c0.zip/node_modules/which/",\ + "packageDependencies": [\ + ["which", "npm:2.0.2"],\ + ["isexe", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/which-npm-5.0.0-15aa39eb60-10c0.zip/node_modules/which/",\ + "packageDependencies": [\ + ["which", "npm:5.0.0"],\ + ["isexe", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wrap-ansi", [\ + ["npm:7.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-10c0.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["wrap-ansi", "npm:7.0.0"],\ + ["ansi-styles", "npm:4.3.0"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-10c0.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["wrap-ansi", "npm:8.1.0"],\ + ["ansi-styles", "npm:6.2.1"],\ + ["string-width", "npm:5.1.2"],\ + ["strip-ansi", "npm:7.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wrappy", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/wrappy-npm-1.0.2-916de4d4b3-10c0.zip/node_modules/wrappy/",\ + "packageDependencies": [\ + ["wrappy", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["write-file-atomic", [\ + ["npm:4.0.2", {\ + "packageLocation": "../../../.yarn/berry/cache/write-file-atomic-npm-4.0.2-661baae4aa-10c0.zip/node_modules/write-file-atomic/",\ + "packageDependencies": [\ + ["write-file-atomic", "npm:4.0.2"],\ + ["imurmurhash", "npm:0.1.4"],\ + ["signal-exit", "npm:3.0.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["y18n", [\ + ["npm:5.0.8", {\ + "packageLocation": "../../../.yarn/berry/cache/y18n-npm-5.0.8-5f3a0a7e62-10c0.zip/node_modules/y18n/",\ + "packageDependencies": [\ + ["y18n", "npm:5.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yallist", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/yallist-npm-3.1.1-a568a556b4-10c0.zip/node_modules/yallist/",\ + "packageDependencies": [\ + ["yallist", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-10c0.zip/node_modules/yallist/",\ + "packageDependencies": [\ + ["yallist", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.0.0", {\ + "packageLocation": "../../../.yarn/berry/cache/yallist-npm-5.0.0-8732dd9f1c-10c0.zip/node_modules/yallist/",\ + "packageDependencies": [\ + ["yallist", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yargs", [\ + ["npm:17.7.2", {\ + "packageLocation": "../../../.yarn/berry/cache/yargs-npm-17.7.2-80b62638e1-10c0.zip/node_modules/yargs/",\ + "packageDependencies": [\ + ["yargs", "npm:17.7.2"],\ + ["cliui", "npm:8.0.1"],\ + ["escalade", "npm:3.2.0"],\ + ["get-caller-file", "npm:2.0.5"],\ + ["require-directory", "npm:2.1.1"],\ + ["string-width", "npm:4.2.3"],\ + ["y18n", "npm:5.0.8"],\ + ["yargs-parser", "npm:21.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yargs-parser", [\ + ["npm:21.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/yargs-parser-npm-21.1.1-8fdc003314-10c0.zip/node_modules/yargs-parser/",\ + "packageDependencies": [\ + ["yargs-parser", "npm:21.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yn", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../.yarn/berry/cache/yn-npm-3.1.1-8ad4259784-10c0.zip/node_modules/yn/",\ + "packageDependencies": [\ + ["yn", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yocto-queue", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../../.yarn/berry/cache/yocto-queue-npm-0.1.0-c6c9a7db29-10c0.zip/node_modules/yocto-queue/",\ + "packageDependencies": [\ + ["yocto-queue", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]]\ + ]\ +}'; + +function $$SETUP_STATE(hydrateRuntimeState, basePath) { + return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +} + +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const os = require('os'); +const events = require('events'); +const nodeUtils = require('util'); +const stream = require('stream'); +const zlib = require('zlib'); +const require$$0 = require('module'); +const StringDecoder = require('string_decoder'); +const url = require('url'); +const buffer = require('buffer'); +const readline = require('readline'); +const assert = require('assert'); + +const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; + +function _interopNamespace(e) { + if (e && e.__esModule) return e; + const n = Object.create(null); + if (e) { + for (const k in e) { + if (k !== 'default') { + const d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: () => e[k] + }); + } + } + } + n.default = e; + return Object.freeze(n); +} + +const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); +const path__default = /*#__PURE__*/_interopDefaultLegacy(path); +const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils); +const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); +const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0); +const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder); +const buffer__default = /*#__PURE__*/_interopDefaultLegacy(buffer); +const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); + +const S_IFMT = 61440; +const S_IFDIR = 16384; +const S_IFREG = 32768; +const S_IFLNK = 40960; +const SAFE_TIME = 456789e3; + +function makeError$1(code, message) { + return Object.assign(new Error(`${code}: ${message}`), { code }); +} +function EBUSY(message) { + return makeError$1(`EBUSY`, message); +} +function ENOSYS(message, reason) { + return makeError$1(`ENOSYS`, `${message}, ${reason}`); +} +function EINVAL(reason) { + return makeError$1(`EINVAL`, `invalid argument, ${reason}`); +} +function EBADF(reason) { + return makeError$1(`EBADF`, `bad file descriptor, ${reason}`); +} +function ENOENT(reason) { + return makeError$1(`ENOENT`, `no such file or directory, ${reason}`); +} +function ENOTDIR(reason) { + return makeError$1(`ENOTDIR`, `not a directory, ${reason}`); +} +function EISDIR(reason) { + return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`); +} +function EEXIST(reason) { + return makeError$1(`EEXIST`, `file already exists, ${reason}`); +} +function EROFS(reason) { + return makeError$1(`EROFS`, `read-only filesystem, ${reason}`); +} +function ENOTEMPTY(reason) { + return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`); +} +function EOPNOTSUPP(reason) { + return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`); +} +function ERR_DIR_CLOSED() { + return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`); +} + +const DEFAULT_MODE = S_IFREG | 420; +class StatEntry { + uid = 0; + gid = 0; + size = 0; + blksize = 0; + atimeMs = 0; + mtimeMs = 0; + ctimeMs = 0; + birthtimeMs = 0; + atime = /* @__PURE__ */ new Date(0); + mtime = /* @__PURE__ */ new Date(0); + ctime = /* @__PURE__ */ new Date(0); + birthtime = /* @__PURE__ */ new Date(0); + dev = 0; + ino = 0; + mode = DEFAULT_MODE; + nlink = 1; + rdev = 0; + blocks = 1; + isBlockDevice() { + return false; + } + isCharacterDevice() { + return false; + } + isDirectory() { + return (this.mode & S_IFMT) === S_IFDIR; + } + isFIFO() { + return false; + } + isFile() { + return (this.mode & S_IFMT) === S_IFREG; + } + isSocket() { + return false; + } + isSymbolicLink() { + return (this.mode & S_IFMT) === S_IFLNK; + } +} +class BigIntStatsEntry { + uid = BigInt(0); + gid = BigInt(0); + size = BigInt(0); + blksize = BigInt(0); + atimeMs = BigInt(0); + mtimeMs = BigInt(0); + ctimeMs = BigInt(0); + birthtimeMs = BigInt(0); + atimeNs = BigInt(0); + mtimeNs = BigInt(0); + ctimeNs = BigInt(0); + birthtimeNs = BigInt(0); + atime = /* @__PURE__ */ new Date(0); + mtime = /* @__PURE__ */ new Date(0); + ctime = /* @__PURE__ */ new Date(0); + birthtime = /* @__PURE__ */ new Date(0); + dev = BigInt(0); + ino = BigInt(0); + mode = BigInt(DEFAULT_MODE); + nlink = BigInt(1); + rdev = BigInt(0); + blocks = BigInt(1); + isBlockDevice() { + return false; + } + isCharacterDevice() { + return false; + } + isDirectory() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR); + } + isFIFO() { + return false; + } + isFile() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG); + } + isSocket() { + return false; + } + isSymbolicLink() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK); + } +} +function makeDefaultStats() { + return new StatEntry(); +} +function clearStats(stats) { + for (const key in stats) { + if (Object.hasOwn(stats, key)) { + const element = stats[key]; + if (typeof element === `number`) { + stats[key] = 0; + } else if (typeof element === `bigint`) { + stats[key] = BigInt(0); + } else if (nodeUtils__namespace.types.isDate(element)) { + stats[key] = /* @__PURE__ */ new Date(0); + } + } + } + return stats; +} +function convertToBigIntStats(stats) { + const bigintStats = new BigIntStatsEntry(); + for (const key in stats) { + if (Object.hasOwn(stats, key)) { + const element = stats[key]; + if (typeof element === `number`) { + bigintStats[key] = BigInt(element); + } else if (nodeUtils__namespace.types.isDate(element)) { + bigintStats[key] = new Date(element); + } + } + } + bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6); + bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6); + bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6); + bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6); + return bigintStats; +} +function areStatsEqual(a, b) { + if (a.atimeMs !== b.atimeMs) + return false; + if (a.birthtimeMs !== b.birthtimeMs) + return false; + if (a.blksize !== b.blksize) + return false; + if (a.blocks !== b.blocks) + return false; + if (a.ctimeMs !== b.ctimeMs) + return false; + if (a.dev !== b.dev) + return false; + if (a.gid !== b.gid) + return false; + if (a.ino !== b.ino) + return false; + if (a.isBlockDevice() !== b.isBlockDevice()) + return false; + if (a.isCharacterDevice() !== b.isCharacterDevice()) + return false; + if (a.isDirectory() !== b.isDirectory()) + return false; + if (a.isFIFO() !== b.isFIFO()) + return false; + if (a.isFile() !== b.isFile()) + return false; + if (a.isSocket() !== b.isSocket()) + return false; + if (a.isSymbolicLink() !== b.isSymbolicLink()) + return false; + if (a.mode !== b.mode) + return false; + if (a.mtimeMs !== b.mtimeMs) + return false; + if (a.nlink !== b.nlink) + return false; + if (a.rdev !== b.rdev) + return false; + if (a.size !== b.size) + return false; + if (a.uid !== b.uid) + return false; + const aN = a; + const bN = b; + if (aN.atimeNs !== bN.atimeNs) + return false; + if (aN.mtimeNs !== bN.mtimeNs) + return false; + if (aN.ctimeNs !== bN.ctimeNs) + return false; + if (aN.birthtimeNs !== bN.birthtimeNs) + return false; + return true; +} + +const PortablePath = { + root: `/`, + dot: `.`, + parent: `..` +}; +const Filename = { + home: `~`, + nodeModules: `node_modules`, + manifest: `package.json`, + lockfile: `yarn.lock`, + virtual: `__virtual__`, + /** + * @deprecated + */ + pnpJs: `.pnp.js`, + pnpCjs: `.pnp.cjs`, + pnpData: `.pnp.data.json`, + pnpEsmLoader: `.pnp.loader.mjs`, + rc: `.yarnrc.yml`, + env: `.env` +}; +const npath = Object.create(path__default.default); +const ppath = Object.create(path__default.default.posix); +npath.cwd = () => process.cwd(); +ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; +if (process.platform === `win32`) { + ppath.resolve = (...segments) => { + if (segments.length > 0 && ppath.isAbsolute(segments[0])) { + return path__default.default.posix.resolve(...segments); + } else { + return path__default.default.posix.resolve(ppath.cwd(), ...segments); + } + }; +} +const contains = function(pathUtils, from, to) { + from = pathUtils.normalize(from); + to = pathUtils.normalize(to); + if (from === to) + return `.`; + if (!from.endsWith(pathUtils.sep)) + from = from + pathUtils.sep; + if (to.startsWith(from)) { + return to.slice(from.length); + } else { + return null; + } +}; +npath.contains = (from, to) => contains(npath, from, to); +ppath.contains = (from, to) => contains(ppath, from, to); +const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; +const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; +const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; +const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; +function fromPortablePathWin32(p) { + let portablePathMatch, uncPortablePathMatch; + if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) + p = portablePathMatch[1]; + else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) + p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; + else + return p; + return p.replace(/\//g, `\\`); +} +function toPortablePathWin32(p) { + p = p.replace(/\\/g, `/`); + let windowsPathMatch, uncWindowsPathMatch; + if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) + p = `/${windowsPathMatch[1]}`; + else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) + p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; + return p; +} +const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; +const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; +npath.fromPortablePath = fromPortablePath; +npath.toPortablePath = toPortablePath; +function convertPath(targetPathUtils, sourcePath) { + return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); +} + +const defaultTime = new Date(SAFE_TIME * 1e3); +const defaultTimeMs = defaultTime.getTime(); +async function copyPromise(destinationFs, destination, sourceFs, source, opts) { + const normalizedDestination = destinationFs.pathUtils.normalize(destination); + const normalizedSource = sourceFs.pathUtils.normalize(source); + const prelayout = []; + const postlayout = []; + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); + await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); + await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); + for (const operation of prelayout) + await operation(); + await Promise.all(postlayout.map((operation) => { + return operation(); + })); +} +async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { + const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; + const sourceStat = await sourceFs.lstatPromise(source); + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; + let updated; + switch (true) { + case sourceStat.isDirectory(): + { + updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isFile(): + { + updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isSymbolicLink(): + { + updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + default: { + throw new Error(`Unsupported file type (${sourceStat.mode})`); + } + } + if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { + if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { + postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); + updated = true; + } + if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { + postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); + updated = true; + } + } + return updated; +} +async function maybeLStat(baseFs, p) { + try { + return await baseFs.lstatPromise(p); + } catch (e) { + return null; + } +} +async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null && !destinationStat.isDirectory()) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + let updated = false; + if (destinationStat === null) { + prelayout.push(async () => { + try { + await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); + } catch (err) { + if (err.code !== `EEXIST`) { + throw err; + } + } + }); + updated = true; + } + const entries = await sourceFs.readdirPromise(source); + const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; + if (opts.stableSort) { + for (const entry of entries.sort()) { + if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { + updated = true; + } + } + } else { + const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { + await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); + })); + if (entriesUpdateStatus.some((status) => status)) { + updated = true; + } + } + return updated; +} +async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { + const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); + const defaultMode = 420; + const sourceMode = sourceStat.mode & 511; + const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; + const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); + let AtomicBehavior; + ((AtomicBehavior2) => { + AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; + AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; + })(AtomicBehavior || (AtomicBehavior = {})); + let atomicBehavior = 1 /* Rename */; + let indexStat = await maybeLStat(destinationFs, indexPath); + if (destinationStat) { + const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; + const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; + if (isDestinationHardlinkedFromIndex) { + if (isIndexModified && linkStrategy.autoRepair) { + atomicBehavior = 0 /* Lock */; + indexStat = null; + } + } + if (!isDestinationHardlinkedFromIndex) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + } + const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; + let tempPathCleaned = false; + prelayout.push(async () => { + if (!indexStat) { + if (atomicBehavior === 0 /* Lock */) { + await destinationFs.lockPromise(indexPath, async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(indexPath, content); + }); + } + if (atomicBehavior === 1 /* Rename */ && tempPath) { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(tempPath, content); + try { + await destinationFs.linkPromise(tempPath, indexPath); + } catch (err) { + if (err.code === `EEXIST`) { + tempPathCleaned = true; + await destinationFs.unlinkPromise(tempPath); + } else { + throw err; + } + } + } + } + if (!destinationStat) { + await destinationFs.linkPromise(indexPath, destination); + } + }); + postlayout.push(async () => { + if (!indexStat) { + await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); + if (sourceMode !== defaultMode) { + await destinationFs.chmodPromise(indexPath, sourceMode); + } + } + if (tempPath && !tempPathCleaned) { + await destinationFs.unlinkPromise(tempPath); + } + }); + return false; +} +async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(destination, content); + }); + return true; +} +async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (opts.linkStrategy?.type === `HardlinkFromIndex`) { + return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); + } else { + return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } +} +async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); + }); + return true; +} + +class CustomDir { + constructor(path, nextDirent, opts = {}) { + this.path = path; + this.nextDirent = nextDirent; + this.opts = opts; + } + closed = false; + throwIfClosed() { + if (this.closed) { + throw ERR_DIR_CLOSED(); + } + } + async *[Symbol.asyncIterator]() { + try { + let dirent; + while ((dirent = await this.read()) !== null) { + yield dirent; + } + } finally { + await this.close(); + } + } + read(cb) { + const dirent = this.readSync(); + if (typeof cb !== `undefined`) + return cb(null, dirent); + return Promise.resolve(dirent); + } + readSync() { + this.throwIfClosed(); + return this.nextDirent(); + } + close(cb) { + this.closeSync(); + if (typeof cb !== `undefined`) + return cb(null); + return Promise.resolve(); + } + closeSync() { + this.throwIfClosed(); + this.opts.onClose?.(); + this.closed = true; + } +} +function opendir(fakeFs, path, entries, opts) { + const nextDirent = () => { + const filename = entries.shift(); + if (typeof filename === `undefined`) + return null; + const entryPath = fakeFs.pathUtils.join(path, filename); + return Object.assign(fakeFs.statSync(entryPath), { + name: filename, + path: void 0 + }); + }; + return new CustomDir(path, nextDirent, opts); +} + +function assertStatus(current, expected) { + if (current !== expected) { + throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); + } +} +class CustomStatWatcher extends events.EventEmitter { + fakeFs; + path; + bigint; + status = "ready" /* Ready */; + changeListeners = /* @__PURE__ */ new Map(); + lastStats; + startTimeout = null; + static create(fakeFs, path, opts) { + const statWatcher = new CustomStatWatcher(fakeFs, path, opts); + statWatcher.start(); + return statWatcher; + } + constructor(fakeFs, path, { bigint = false } = {}) { + super(); + this.fakeFs = fakeFs; + this.path = path; + this.bigint = bigint; + this.lastStats = this.stat(); + } + start() { + assertStatus(this.status, "ready" /* Ready */); + this.status = "running" /* Running */; + this.startTimeout = setTimeout(() => { + this.startTimeout = null; + if (!this.fakeFs.existsSync(this.path)) { + this.emit("change" /* Change */, this.lastStats, this.lastStats); + } + }, 3); + } + stop() { + assertStatus(this.status, "running" /* Running */); + this.status = "stopped" /* Stopped */; + if (this.startTimeout !== null) { + clearTimeout(this.startTimeout); + this.startTimeout = null; + } + this.emit("stop" /* Stop */); + } + stat() { + try { + return this.fakeFs.statSync(this.path, { bigint: this.bigint }); + } catch (error) { + const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry(); + return clearStats(statInstance); + } + } + /** + * Creates an interval whose callback compares the current stats with the previous stats and notifies all listeners in case of changes. + * + * @param opts.persistent Decides whether the interval should be immediately unref-ed. + */ + makeInterval(opts) { + const interval = setInterval(() => { + const currentStats = this.stat(); + const previousStats = this.lastStats; + if (areStatsEqual(currentStats, previousStats)) + return; + this.lastStats = currentStats; + this.emit("change" /* Change */, currentStats, previousStats); + }, opts.interval); + return opts.persistent ? interval : interval.unref(); + } + /** + * Registers a listener and assigns it an interval. + */ + registerChangeListener(listener, opts) { + this.addListener("change" /* Change */, listener); + this.changeListeners.set(listener, this.makeInterval(opts)); + } + /** + * Unregisters the listener and clears the assigned interval. + */ + unregisterChangeListener(listener) { + this.removeListener("change" /* Change */, listener); + const interval = this.changeListeners.get(listener); + if (typeof interval !== `undefined`) + clearInterval(interval); + this.changeListeners.delete(listener); + } + /** + * Unregisters all listeners and clears all assigned intervals. + */ + unregisterAllChangeListeners() { + for (const listener of this.changeListeners.keys()) { + this.unregisterChangeListener(listener); + } + } + hasChangeListeners() { + return this.changeListeners.size > 0; + } + /** + * Refs all stored intervals. + */ + ref() { + for (const interval of this.changeListeners.values()) + interval.ref(); + return this; + } + /** + * Unrefs all stored intervals. + */ + unref() { + for (const interval of this.changeListeners.values()) + interval.unref(); + return this; + } +} + +const statWatchersByFakeFS = /* @__PURE__ */ new WeakMap(); +function watchFile(fakeFs, path, a, b) { + let bigint; + let persistent; + let interval; + let listener; + switch (typeof a) { + case `function`: + { + bigint = false; + persistent = true; + interval = 5007; + listener = a; + } + break; + default: + { + ({ + bigint = false, + persistent = true, + interval = 5007 + } = a); + listener = b; + } + break; + } + let statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + statWatchersByFakeFS.set(fakeFs, statWatchers = /* @__PURE__ */ new Map()); + let statWatcher = statWatchers.get(path); + if (typeof statWatcher === `undefined`) { + statWatcher = CustomStatWatcher.create(fakeFs, path, { bigint }); + statWatchers.set(path, statWatcher); + } + statWatcher.registerChangeListener(listener, { persistent, interval }); + return statWatcher; +} +function unwatchFile(fakeFs, path, cb) { + const statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + return; + const statWatcher = statWatchers.get(path); + if (typeof statWatcher === `undefined`) + return; + if (typeof cb === `undefined`) + statWatcher.unregisterAllChangeListeners(); + else + statWatcher.unregisterChangeListener(cb); + if (!statWatcher.hasChangeListeners()) { + statWatcher.stop(); + statWatchers.delete(path); + } +} +function unwatchAllFiles(fakeFs) { + const statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + return; + for (const path of statWatchers.keys()) { + unwatchFile(fakeFs, path); + } +} + +class FakeFS { + pathUtils; + constructor(pathUtils) { + this.pathUtils = pathUtils; + } + async *genTraversePromise(init, { stableSort = false } = {}) { + const stack = [init]; + while (stack.length > 0) { + const p = stack.shift(); + const entry = await this.lstatPromise(p); + if (entry.isDirectory()) { + const entries = await this.readdirPromise(p); + if (stableSort) { + for (const entry2 of entries.sort()) { + stack.push(this.pathUtils.join(p, entry2)); + } + } else { + throw new Error(`Not supported`); + } + } else { + yield p; + } + } + } + async checksumFilePromise(path, { algorithm = `sha512` } = {}) { + const fd = await this.openPromise(path, `r`); + try { + const CHUNK_SIZE = 65536; + const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); + const hash = crypto.createHash(algorithm); + let bytesRead = 0; + while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) + hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); + return hash.digest(`hex`); + } finally { + await this.closePromise(fd); + } + } + async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { + let stat; + try { + stat = await this.lstatPromise(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) { + const entries = await this.readdirPromise(p); + await Promise.all(entries.map((entry) => { + return this.removePromise(this.pathUtils.resolve(p, entry)); + })); + } + for (let t = 0; t <= maxRetries; t++) { + try { + await this.rmdirPromise(p); + break; + } catch (error) { + if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { + throw error; + } else if (t < maxRetries) { + await new Promise((resolve) => setTimeout(resolve, t * 100)); + } + } + } + } else { + await this.unlinkPromise(p); + } + } + removeSync(p, { recursive = true } = {}) { + let stat; + try { + stat = this.lstatSync(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) + for (const entry of this.readdirSync(p)) + this.removeSync(this.pathUtils.resolve(p, entry)); + this.rmdirSync(p); + } else { + this.unlinkSync(p); + } + } + async mkdirpPromise(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + await this.mkdirPromise(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + await this.chmodPromise(subPath, chmod); + if (utimes != null) { + await this.utimesPromise(subPath, utimes[0], utimes[1]); + } else { + const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); + await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + mkdirpSync(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + this.mkdirSync(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + this.chmodSync(subPath, chmod); + if (utimes != null) { + this.utimesSync(subPath, utimes[0], utimes[1]); + } else { + const parentStat = this.statSync(this.pathUtils.dirname(subPath)); + this.utimesSync(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { + return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); + } + copySync(destination, source, { baseFs = this, overwrite = true } = {}) { + const stat = baseFs.lstatSync(source); + const exists = this.existsSync(destination); + if (stat.isDirectory()) { + this.mkdirpSync(destination); + const directoryListing = baseFs.readdirSync(source); + for (const entry of directoryListing) { + this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); + } + } else if (stat.isFile()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const content = baseFs.readFileSync(source); + this.writeFileSync(destination, content); + } + } else if (stat.isSymbolicLink()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const target = baseFs.readlinkSync(source); + this.symlinkSync(convertPath(this.pathUtils, target), destination); + } + } else { + throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); + } + const mode = stat.mode & 511; + this.chmodSync(destination, mode); + } + async changeFilePromise(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferPromise(p, content, opts); + } else { + return this.changeFileTextPromise(p, content, opts); + } + } + async changeFileBufferPromise(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = await this.readFilePromise(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + await this.writeFilePromise(p, content, { mode }); + } + async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { + let current = ``; + try { + current = await this.readFilePromise(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + await this.writeFilePromise(p, normalizedContent, { mode }); + } + changeFileSync(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferSync(p, content, opts); + } else { + return this.changeFileTextSync(p, content, opts); + } + } + changeFileBufferSync(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = this.readFileSync(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + this.writeFileSync(p, content, { mode }); + } + changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { + let current = ``; + try { + current = this.readFileSync(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + this.writeFileSync(p, normalizedContent, { mode }); + } + async movePromise(fromP, toP) { + try { + await this.renamePromise(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + await this.copyPromise(toP, fromP); + await this.removePromise(fromP); + } else { + throw error; + } + } + } + moveSync(fromP, toP) { + try { + this.renameSync(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + this.copySync(toP, fromP); + this.removeSync(fromP); + } else { + throw error; + } + } + } + async lockPromise(affectedPath, callback) { + const lockPath = `${affectedPath}.flock`; + const interval = 1e3 / 60; + const startTime = Date.now(); + let fd = null; + const isAlive = async () => { + let pid; + try { + [pid] = await this.readJsonPromise(lockPath); + } catch (error) { + return Date.now() - startTime < 500; + } + try { + process.kill(pid, 0); + return true; + } catch (error) { + return false; + } + }; + while (fd === null) { + try { + fd = await this.openPromise(lockPath, `wx`); + } catch (error) { + if (error.code === `EEXIST`) { + if (!await isAlive()) { + try { + await this.unlinkPromise(lockPath); + continue; + } catch (error2) { + } + } + if (Date.now() - startTime < 60 * 1e3) { + await new Promise((resolve) => setTimeout(resolve, interval)); + } else { + throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); + } + } else { + throw error; + } + } + } + await this.writePromise(fd, JSON.stringify([process.pid])); + try { + return await callback(); + } finally { + try { + await this.closePromise(fd); + await this.unlinkPromise(lockPath); + } catch (error) { + } + } + } + async readJsonPromise(p) { + const content = await this.readFilePromise(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + readJsonSync(p) { + const content = this.readFileSync(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + async writeJsonPromise(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} +`); + } + writeJsonSync(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return this.writeFileSync(p, `${JSON.stringify(data, null, space)} +`); + } + async preserveTimePromise(p, cb) { + const stat = await this.lstatPromise(p); + const result = await cb(); + if (typeof result !== `undefined`) + p = result; + await this.lutimesPromise(p, stat.atime, stat.mtime); + } + async preserveTimeSync(p, cb) { + const stat = this.lstatSync(p); + const result = cb(); + if (typeof result !== `undefined`) + p = result; + this.lutimesSync(p, stat.atime, stat.mtime); + } +} +class BasePortableFakeFS extends FakeFS { + constructor() { + super(ppath); + } +} +function getEndOfLine(content) { + const matches = content.match(/\r?\n/g); + if (matches === null) + return os.EOL; + const crlf = matches.filter((nl) => nl === `\r +`).length; + const lf = matches.length - crlf; + return crlf > lf ? `\r +` : ` +`; +} +function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); +} + +class ProxiedFS extends FakeFS { + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + resolve(path) { + return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); + } + getRealPath() { + return this.mapFromBase(this.baseFs.getRealPath()); + } + async openPromise(p, flags, mode) { + return this.baseFs.openPromise(this.mapToBase(p), flags, mode); + } + openSync(p, flags, mode) { + return this.baseFs.openSync(this.mapToBase(p), flags, mode); + } + async opendirPromise(p, opts) { + return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); + } + opendirSync(p, opts) { + return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); + } + async readPromise(fd, buffer, offset, length, position) { + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + return this.baseFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + return this.baseFs.closePromise(fd); + } + closeSync(fd) { + this.baseFs.closeSync(fd); + } + createReadStream(p, opts) { + return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); + } + createWriteStream(p, opts) { + return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); + } + async realpathPromise(p) { + return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); + } + realpathSync(p) { + return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); + } + async existsPromise(p) { + return this.baseFs.existsPromise(this.mapToBase(p)); + } + existsSync(p) { + return this.baseFs.existsSync(this.mapToBase(p)); + } + accessSync(p, mode) { + return this.baseFs.accessSync(this.mapToBase(p), mode); + } + async accessPromise(p, mode) { + return this.baseFs.accessPromise(this.mapToBase(p), mode); + } + async statPromise(p, opts) { + return this.baseFs.statPromise(this.mapToBase(p), opts); + } + statSync(p, opts) { + return this.baseFs.statSync(this.mapToBase(p), opts); + } + async fstatPromise(fd, opts) { + return this.baseFs.fstatPromise(fd, opts); + } + fstatSync(fd, opts) { + return this.baseFs.fstatSync(fd, opts); + } + lstatPromise(p, opts) { + return this.baseFs.lstatPromise(this.mapToBase(p), opts); + } + lstatSync(p, opts) { + return this.baseFs.lstatSync(this.mapToBase(p), opts); + } + async fchmodPromise(fd, mask) { + return this.baseFs.fchmodPromise(fd, mask); + } + fchmodSync(fd, mask) { + return this.baseFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return this.baseFs.chmodPromise(this.mapToBase(p), mask); + } + chmodSync(p, mask) { + return this.baseFs.chmodSync(this.mapToBase(p), mask); + } + async fchownPromise(fd, uid, gid) { + return this.baseFs.fchownPromise(fd, uid, gid); + } + fchownSync(fd, uid, gid) { + return this.baseFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); + } + chownSync(p, uid, gid) { + return this.baseFs.chownSync(this.mapToBase(p), uid, gid); + } + async renamePromise(oldP, newP) { + return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); + } + renameSync(oldP, newP) { + return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + async appendFilePromise(p, content, opts) { + return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); + } + appendFileSync(p, content, opts) { + return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); + } + async writeFilePromise(p, content, opts) { + return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); + } + writeFileSync(p, content, opts) { + return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); + } + async unlinkPromise(p) { + return this.baseFs.unlinkPromise(this.mapToBase(p)); + } + unlinkSync(p) { + return this.baseFs.unlinkSync(this.mapToBase(p)); + } + async utimesPromise(p, atime, mtime) { + return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); + } + utimesSync(p, atime, mtime) { + return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); + } + lutimesSync(p, atime, mtime) { + return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return this.baseFs.mkdirPromise(this.mapToBase(p), opts); + } + mkdirSync(p, opts) { + return this.baseFs.mkdirSync(this.mapToBase(p), opts); + } + async rmdirPromise(p, opts) { + return this.baseFs.rmdirPromise(this.mapToBase(p), opts); + } + rmdirSync(p, opts) { + return this.baseFs.rmdirSync(this.mapToBase(p), opts); + } + async rmPromise(p, opts) { + return this.baseFs.rmPromise(this.mapToBase(p), opts); + } + rmSync(p, opts) { + return this.baseFs.rmSync(this.mapToBase(p), opts); + } + async linkPromise(existingP, newP) { + return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); + } + linkSync(existingP, newP) { + return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); + } + async symlinkPromise(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); + } + symlinkSync(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkSync(mappedTarget, mappedP, type); + } + async readFilePromise(p, encoding) { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); + } + readFileSync(p, encoding) { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); + } + readdirPromise(p, opts) { + return this.baseFs.readdirPromise(this.mapToBase(p), opts); + } + readdirSync(p, opts) { + return this.baseFs.readdirSync(this.mapToBase(p), opts); + } + async readlinkPromise(p) { + return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); + } + readlinkSync(p) { + return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); + } + async truncatePromise(p, len) { + return this.baseFs.truncatePromise(this.mapToBase(p), len); + } + truncateSync(p, len) { + return this.baseFs.truncateSync(this.mapToBase(p), len); + } + async ftruncatePromise(fd, len) { + return this.baseFs.ftruncatePromise(fd, len); + } + ftruncateSync(fd, len) { + return this.baseFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.baseFs.watch( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.baseFs.watchFile( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.baseFs.unwatchFile(this.mapToBase(p), cb); + } + fsMapToBase(p) { + if (typeof p === `number`) { + return p; + } else { + return this.mapToBase(p); + } + } +} + +function direntToPortable(dirent) { + const portableDirent = dirent; + if (typeof dirent.path === `string`) + portableDirent.path = npath.toPortablePath(dirent.path); + return portableDirent; +} +class NodeFS extends BasePortableFakeFS { + realFs; + constructor(realFs = fs__default.default) { + super(); + this.realFs = realFs; + } + getExtractHint() { + return false; + } + getRealPath() { + return PortablePath.root; + } + resolve(p) { + return ppath.resolve(p); + } + async openPromise(p, flags, mode) { + return await new Promise((resolve, reject) => { + this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); + }); + } + openSync(p, flags, mode) { + return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); + } + async opendirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (typeof opts !== `undefined`) { + this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }).then((dir) => { + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + }); + } + opendirSync(p, opts) { + const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + } + async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { + return await new Promise((resolve, reject) => { + this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { + if (error) { + reject(error); + } else { + resolve(bytesRead); + } + }); + }); + } + readSync(fd, buffer, offset, length, position) { + return this.realFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + return await new Promise((resolve, reject) => { + if (typeof buffer === `string`) { + return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); + } else { + return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); + } + }); + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.realFs.writeSync(fd, buffer, offset); + } else { + return this.realFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + await new Promise((resolve, reject) => { + this.realFs.close(fd, this.makeCallback(resolve, reject)); + }); + } + closeSync(fd) { + this.realFs.closeSync(fd); + } + createReadStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createReadStream(realPath, opts); + } + createWriteStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createWriteStream(realPath, opts); + } + async realpathPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + realpathSync(p) { + return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); + } + async existsPromise(p) { + return await new Promise((resolve) => { + this.realFs.exists(npath.fromPortablePath(p), resolve); + }); + } + accessSync(p, mode) { + return this.realFs.accessSync(npath.fromPortablePath(p), mode); + } + async accessPromise(p, mode) { + return await new Promise((resolve, reject) => { + this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); + }); + } + existsSync(p) { + return this.realFs.existsSync(npath.fromPortablePath(p)); + } + async statPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + statSync(p, opts) { + if (opts) { + return this.realFs.statSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.statSync(npath.fromPortablePath(p)); + } + } + async fstatPromise(fd, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.fstat(fd, this.makeCallback(resolve, reject)); + } + }); + } + fstatSync(fd, opts) { + if (opts) { + return this.realFs.fstatSync(fd, opts); + } else { + return this.realFs.fstatSync(fd); + } + } + async lstatPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + lstatSync(p, opts) { + if (opts) { + return this.realFs.lstatSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.lstatSync(npath.fromPortablePath(p)); + } + } + async fchmodPromise(fd, mask) { + return await new Promise((resolve, reject) => { + this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); + }); + } + fchmodSync(fd, mask) { + return this.realFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return await new Promise((resolve, reject) => { + this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); + }); + } + chmodSync(p, mask) { + return this.realFs.chmodSync(npath.fromPortablePath(p), mask); + } + async fchownPromise(fd, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); + }); + } + fchownSync(fd, uid, gid) { + return this.realFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); + }); + } + chownSync(p, uid, gid) { + return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); + } + async renamePromise(oldP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + renameSync(oldP, newP) { + return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return await new Promise((resolve, reject) => { + this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); + } + async appendFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + appendFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFileSync(fsNativePath, content, opts); + } else { + this.realFs.appendFileSync(fsNativePath, content); + } + } + async writeFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + writeFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFileSync(fsNativePath, content, opts); + } else { + this.realFs.writeFileSync(fsNativePath, content); + } + } + async unlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }); + } + unlinkSync(p) { + return this.realFs.unlinkSync(npath.fromPortablePath(p)); + } + async utimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + utimesSync(p, atime, mtime) { + this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + lutimesSync(p, atime, mtime) { + this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + }); + } + mkdirSync(p, opts) { + return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); + } + async rmdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmdirSync(p, opts) { + return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); + } + async rmPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmSync(p, opts) { + return this.realFs.rmSync(npath.fromPortablePath(p), opts); + } + async linkPromise(existingP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + linkSync(existingP, newP) { + return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); + } + async symlinkPromise(target, p, type) { + return await new Promise((resolve, reject) => { + this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); + }); + } + symlinkSync(target, p, type) { + return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); + } + async readFilePromise(p, encoding) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); + }); + } + readFileSync(p, encoding) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + return this.realFs.readFileSync(fsNativePath, encoding); + } + async readdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + readdirSync(p, opts) { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p)); + } + } + async readlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + readlinkSync(p) { + return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); + } + async truncatePromise(p, len) { + return await new Promise((resolve, reject) => { + this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); + }); + } + truncateSync(p, len) { + return this.realFs.truncateSync(npath.fromPortablePath(p), len); + } + async ftruncatePromise(fd, len) { + return await new Promise((resolve, reject) => { + this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); + }); + } + ftruncateSync(fd, len) { + return this.realFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.realFs.watch( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.realFs.watchFile( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); + } + makeCallback(resolve, reject) { + return (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }; + } +} + +const MOUNT_MASK = 4278190080; +class MountFS extends BasePortableFakeFS { + baseFs; + mountInstances; + fdMap = /* @__PURE__ */ new Map(); + nextFd = 3; + factoryPromise; + factorySync; + filter; + getMountPoint; + magic; + maxAge; + maxOpenFiles; + typeCheck; + isMount = /* @__PURE__ */ new Set(); + notMount = /* @__PURE__ */ new Set(); + realPaths = /* @__PURE__ */ new Map(); + constructor({ baseFs = new NodeFS(), filter = null, magicByte = 42, maxOpenFiles = Infinity, useCache = true, maxAge = 5e3, typeCheck = fs.constants.S_IFREG, getMountPoint, factoryPromise, factorySync }) { + if (Math.floor(magicByte) !== magicByte || !(magicByte > 1 && magicByte <= 127)) + throw new Error(`The magic byte must be set to a round value between 1 and 127 included`); + super(); + this.baseFs = baseFs; + this.mountInstances = useCache ? /* @__PURE__ */ new Map() : null; + this.factoryPromise = factoryPromise; + this.factorySync = factorySync; + this.filter = filter; + this.getMountPoint = getMountPoint; + this.magic = magicByte << 24; + this.maxAge = maxAge; + this.maxOpenFiles = maxOpenFiles; + this.typeCheck = typeCheck; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + saveAndClose() { + unwatchAllFiles(this); + if (this.mountInstances) { + for (const [path, { childFs }] of this.mountInstances.entries()) { + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + } + } + } + discardAndClose() { + unwatchAllFiles(this); + if (this.mountInstances) { + for (const [path, { childFs }] of this.mountInstances.entries()) { + childFs.discardAndClose?.(); + this.mountInstances.delete(path); + } + } + } + resolve(p) { + return this.baseFs.resolve(p); + } + remapFd(mountFs, fd) { + const remappedFd = this.nextFd++ | this.magic; + this.fdMap.set(remappedFd, [mountFs, fd]); + return remappedFd; + } + async openPromise(p, flags, mode) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.openPromise(p, flags, mode); + }, async (mountFs, { subPath }) => { + return this.remapFd(mountFs, await mountFs.openPromise(subPath, flags, mode)); + }); + } + openSync(p, flags, mode) { + return this.makeCallSync(p, () => { + return this.baseFs.openSync(p, flags, mode); + }, (mountFs, { subPath }) => { + return this.remapFd(mountFs, mountFs.openSync(subPath, flags, mode)); + }); + } + async opendirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.opendirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.opendirPromise(subPath, opts); + }, { + requireSubpath: false + }); + } + opendirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.opendirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.opendirSync(subPath, opts); + }, { + requireSubpath: false + }); + } + async readPromise(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + const [mountFs, realFd] = entry; + return await mountFs.readPromise(realFd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.readSync(fd, buffer, offset, length, position); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`readSync`); + const [mountFs, realFd] = entry; + return mountFs.readSync(realFd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`write`); + const [mountFs, realFd] = entry; + if (typeof buffer === `string`) { + return await mountFs.writePromise(realFd, buffer, offset); + } else { + return await mountFs.writePromise(realFd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`writeSync`); + const [mountFs, realFd] = entry; + if (typeof buffer === `string`) { + return mountFs.writeSync(realFd, buffer, offset); + } else { + return mountFs.writeSync(realFd, buffer, offset, length, position); + } + } + async closePromise(fd) { + if ((fd & MOUNT_MASK) !== this.magic) + return await this.baseFs.closePromise(fd); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`close`); + this.fdMap.delete(fd); + const [mountFs, realFd] = entry; + return await mountFs.closePromise(realFd); + } + closeSync(fd) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.closeSync(fd); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`closeSync`); + this.fdMap.delete(fd); + const [mountFs, realFd] = entry; + return mountFs.closeSync(realFd); + } + createReadStream(p, opts) { + if (p === null) + return this.baseFs.createReadStream(p, opts); + return this.makeCallSync(p, () => { + return this.baseFs.createReadStream(p, opts); + }, (mountFs, { archivePath, subPath }) => { + const stream = mountFs.createReadStream(subPath, opts); + stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath)); + return stream; + }); + } + createWriteStream(p, opts) { + if (p === null) + return this.baseFs.createWriteStream(p, opts); + return this.makeCallSync(p, () => { + return this.baseFs.createWriteStream(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.createWriteStream(subPath, opts); + }); + } + async realpathPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.realpathPromise(p); + }, async (mountFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath); + if (typeof realArchivePath === `undefined`) { + realArchivePath = await this.baseFs.realpathPromise(archivePath); + this.realPaths.set(archivePath, realArchivePath); + } + return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await mountFs.realpathPromise(subPath))); + }); + } + realpathSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.realpathSync(p); + }, (mountFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath); + if (typeof realArchivePath === `undefined`) { + realArchivePath = this.baseFs.realpathSync(archivePath); + this.realPaths.set(archivePath, realArchivePath); + } + return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, mountFs.realpathSync(subPath))); + }); + } + async existsPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.existsPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.existsPromise(subPath); + }); + } + existsSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.existsSync(p); + }, (mountFs, { subPath }) => { + return mountFs.existsSync(subPath); + }); + } + async accessPromise(p, mode) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.accessPromise(p, mode); + }, async (mountFs, { subPath }) => { + return await mountFs.accessPromise(subPath, mode); + }); + } + accessSync(p, mode) { + return this.makeCallSync(p, () => { + return this.baseFs.accessSync(p, mode); + }, (mountFs, { subPath }) => { + return mountFs.accessSync(subPath, mode); + }); + } + async statPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.statPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.statPromise(subPath, opts); + }); + } + statSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.statSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.statSync(subPath, opts); + }); + } + async fstatPromise(fd, opts) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fstatPromise(fd, opts); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstat`); + const [mountFs, realFd] = entry; + return mountFs.fstatPromise(realFd, opts); + } + fstatSync(fd, opts) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fstatSync(fd, opts); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstatSync`); + const [mountFs, realFd] = entry; + return mountFs.fstatSync(realFd, opts); + } + async lstatPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.lstatPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.lstatPromise(subPath, opts); + }); + } + lstatSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.lstatSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.lstatSync(subPath, opts); + }); + } + async fchmodPromise(fd, mask) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchmodPromise(fd, mask); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchmod`); + const [mountFs, realFd] = entry; + return mountFs.fchmodPromise(realFd, mask); + } + fchmodSync(fd, mask) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchmodSync(fd, mask); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchmodSync`); + const [mountFs, realFd] = entry; + return mountFs.fchmodSync(realFd, mask); + } + async chmodPromise(p, mask) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.chmodPromise(p, mask); + }, async (mountFs, { subPath }) => { + return await mountFs.chmodPromise(subPath, mask); + }); + } + chmodSync(p, mask) { + return this.makeCallSync(p, () => { + return this.baseFs.chmodSync(p, mask); + }, (mountFs, { subPath }) => { + return mountFs.chmodSync(subPath, mask); + }); + } + async fchownPromise(fd, uid, gid) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchownPromise(fd, uid, gid); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchown`); + const [zipFs, realFd] = entry; + return zipFs.fchownPromise(realFd, uid, gid); + } + fchownSync(fd, uid, gid) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchownSync(fd, uid, gid); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchownSync`); + const [zipFs, realFd] = entry; + return zipFs.fchownSync(realFd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.chownPromise(p, uid, gid); + }, async (mountFs, { subPath }) => { + return await mountFs.chownPromise(subPath, uid, gid); + }); + } + chownSync(p, uid, gid) { + return this.makeCallSync(p, () => { + return this.baseFs.chownSync(p, uid, gid); + }, (mountFs, { subPath }) => { + return mountFs.chownSync(subPath, uid, gid); + }); + } + async renamePromise(oldP, newP) { + return await this.makeCallPromise(oldP, async () => { + return await this.makeCallPromise(newP, async () => { + return await this.baseFs.renamePromise(oldP, newP); + }, async () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }); + }, async (mountFsO, { subPath: subPathO }) => { + return await this.makeCallPromise(newP, async () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }, async (mountFsN, { subPath: subPathN }) => { + if (mountFsO !== mountFsN) { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + } else { + return await mountFsO.renamePromise(subPathO, subPathN); + } + }); + }); + } + renameSync(oldP, newP) { + return this.makeCallSync(oldP, () => { + return this.makeCallSync(newP, () => { + return this.baseFs.renameSync(oldP, newP); + }, () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }); + }, (mountFsO, { subPath: subPathO }) => { + return this.makeCallSync(newP, () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }, (mountFsN, { subPath: subPathN }) => { + if (mountFsO !== mountFsN) { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + } else { + return mountFsO.renameSync(subPathO, subPathN); + } + }); + }); + } + async copyFilePromise(sourceP, destP, flags = 0) { + const fallback = async (sourceFs, sourceP2, destFs, destP2) => { + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); + if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2)) + throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); + let content; + try { + content = await sourceFs.readFilePromise(sourceP2); + } catch (error) { + throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); + } + await destFs.writeFilePromise(destP2, content); + }; + return await this.makeCallPromise(sourceP, async () => { + return await this.makeCallPromise(destP, async () => { + return await this.baseFs.copyFilePromise(sourceP, destP, flags); + }, async (mountFsD, { subPath: subPathD }) => { + return await fallback(this.baseFs, sourceP, mountFsD, subPathD); + }); + }, async (mountFsS, { subPath: subPathS }) => { + return await this.makeCallPromise(destP, async () => { + return await fallback(mountFsS, subPathS, this.baseFs, destP); + }, async (mountFsD, { subPath: subPathD }) => { + if (mountFsS !== mountFsD) { + return await fallback(mountFsS, subPathS, mountFsD, subPathD); + } else { + return await mountFsS.copyFilePromise(subPathS, subPathD, flags); + } + }); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + const fallback = (sourceFs, sourceP2, destFs, destP2) => { + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); + if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2)) + throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); + let content; + try { + content = sourceFs.readFileSync(sourceP2); + } catch (error) { + throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); + } + destFs.writeFileSync(destP2, content); + }; + return this.makeCallSync(sourceP, () => { + return this.makeCallSync(destP, () => { + return this.baseFs.copyFileSync(sourceP, destP, flags); + }, (mountFsD, { subPath: subPathD }) => { + return fallback(this.baseFs, sourceP, mountFsD, subPathD); + }); + }, (mountFsS, { subPath: subPathS }) => { + return this.makeCallSync(destP, () => { + return fallback(mountFsS, subPathS, this.baseFs, destP); + }, (mountFsD, { subPath: subPathD }) => { + if (mountFsS !== mountFsD) { + return fallback(mountFsS, subPathS, mountFsD, subPathD); + } else { + return mountFsS.copyFileSync(subPathS, subPathD, flags); + } + }); + }); + } + async appendFilePromise(p, content, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.appendFilePromise(p, content, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.appendFilePromise(subPath, content, opts); + }); + } + appendFileSync(p, content, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.appendFileSync(p, content, opts); + }, (mountFs, { subPath }) => { + return mountFs.appendFileSync(subPath, content, opts); + }); + } + async writeFilePromise(p, content, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.writeFilePromise(p, content, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.writeFilePromise(subPath, content, opts); + }); + } + writeFileSync(p, content, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.writeFileSync(p, content, opts); + }, (mountFs, { subPath }) => { + return mountFs.writeFileSync(subPath, content, opts); + }); + } + async unlinkPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.unlinkPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.unlinkPromise(subPath); + }); + } + unlinkSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.unlinkSync(p); + }, (mountFs, { subPath }) => { + return mountFs.unlinkSync(subPath); + }); + } + async utimesPromise(p, atime, mtime) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.utimesPromise(p, atime, mtime); + }, async (mountFs, { subPath }) => { + return await mountFs.utimesPromise(subPath, atime, mtime); + }); + } + utimesSync(p, atime, mtime) { + return this.makeCallSync(p, () => { + return this.baseFs.utimesSync(p, atime, mtime); + }, (mountFs, { subPath }) => { + return mountFs.utimesSync(subPath, atime, mtime); + }); + } + async lutimesPromise(p, atime, mtime) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.lutimesPromise(p, atime, mtime); + }, async (mountFs, { subPath }) => { + return await mountFs.lutimesPromise(subPath, atime, mtime); + }); + } + lutimesSync(p, atime, mtime) { + return this.makeCallSync(p, () => { + return this.baseFs.lutimesSync(p, atime, mtime); + }, (mountFs, { subPath }) => { + return mountFs.lutimesSync(subPath, atime, mtime); + }); + } + async mkdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.mkdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.mkdirPromise(subPath, opts); + }); + } + mkdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.mkdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.mkdirSync(subPath, opts); + }); + } + async rmdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.rmdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.rmdirPromise(subPath, opts); + }); + } + rmdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.rmdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.rmdirSync(subPath, opts); + }); + } + async rmPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.rmPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.rmPromise(subPath, opts); + }); + } + rmSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.rmSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.rmSync(subPath, opts); + }); + } + async linkPromise(existingP, newP) { + return await this.makeCallPromise(newP, async () => { + return await this.baseFs.linkPromise(existingP, newP); + }, async (mountFs, { subPath }) => { + return await mountFs.linkPromise(existingP, subPath); + }); + } + linkSync(existingP, newP) { + return this.makeCallSync(newP, () => { + return this.baseFs.linkSync(existingP, newP); + }, (mountFs, { subPath }) => { + return mountFs.linkSync(existingP, subPath); + }); + } + async symlinkPromise(target, p, type) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.symlinkPromise(target, p, type); + }, async (mountFs, { subPath }) => { + return await mountFs.symlinkPromise(target, subPath); + }); + } + symlinkSync(target, p, type) { + return this.makeCallSync(p, () => { + return this.baseFs.symlinkSync(target, p, type); + }, (mountFs, { subPath }) => { + return mountFs.symlinkSync(target, subPath); + }); + } + async readFilePromise(p, encoding) { + return this.makeCallPromise(p, async () => { + return await this.baseFs.readFilePromise(p, encoding); + }, async (mountFs, { subPath }) => { + return await mountFs.readFilePromise(subPath, encoding); + }); + } + readFileSync(p, encoding) { + return this.makeCallSync(p, () => { + return this.baseFs.readFileSync(p, encoding); + }, (mountFs, { subPath }) => { + return mountFs.readFileSync(subPath, encoding); + }); + } + async readdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.readdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.readdirPromise(subPath, opts); + }, { + requireSubpath: false + }); + } + readdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.readdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.readdirSync(subPath, opts); + }, { + requireSubpath: false + }); + } + async readlinkPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.readlinkPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.readlinkPromise(subPath); + }); + } + readlinkSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.readlinkSync(p); + }, (mountFs, { subPath }) => { + return mountFs.readlinkSync(subPath); + }); + } + async truncatePromise(p, len) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.truncatePromise(p, len); + }, async (mountFs, { subPath }) => { + return await mountFs.truncatePromise(subPath, len); + }); + } + truncateSync(p, len) { + return this.makeCallSync(p, () => { + return this.baseFs.truncateSync(p, len); + }, (mountFs, { subPath }) => { + return mountFs.truncateSync(subPath, len); + }); + } + async ftruncatePromise(fd, len) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.ftruncatePromise(fd, len); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`ftruncate`); + const [mountFs, realFd] = entry; + return mountFs.ftruncatePromise(realFd, len); + } + ftruncateSync(fd, len) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.ftruncateSync(fd, len); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`ftruncateSync`); + const [mountFs, realFd] = entry; + return mountFs.ftruncateSync(realFd, len); + } + watch(p, a, b) { + return this.makeCallSync(p, () => { + return this.baseFs.watch( + p, + // @ts-expect-error + a, + b + ); + }, (mountFs, { subPath }) => { + return mountFs.watch( + subPath, + // @ts-expect-error + a, + b + ); + }); + } + watchFile(p, a, b) { + return this.makeCallSync(p, () => { + return this.baseFs.watchFile( + p, + // @ts-expect-error + a, + b + ); + }, () => { + return watchFile(this, p, a, b); + }); + } + unwatchFile(p, cb) { + return this.makeCallSync(p, () => { + return this.baseFs.unwatchFile(p, cb); + }, () => { + return unwatchFile(this, p, cb); + }); + } + async makeCallPromise(p, discard, accept, { requireSubpath = true } = {}) { + if (typeof p !== `string`) + return await discard(); + const normalizedP = this.resolve(p); + const mountInfo = this.findMount(normalizedP); + if (!mountInfo) + return await discard(); + if (requireSubpath && mountInfo.subPath === `/`) + return await discard(); + return await this.getMountPromise(mountInfo.archivePath, async (mountFs) => await accept(mountFs, mountInfo)); + } + makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { + if (typeof p !== `string`) + return discard(); + const normalizedP = this.resolve(p); + const mountInfo = this.findMount(normalizedP); + if (!mountInfo) + return discard(); + if (requireSubpath && mountInfo.subPath === `/`) + return discard(); + return this.getMountSync(mountInfo.archivePath, (mountFs) => accept(mountFs, mountInfo)); + } + findMount(p) { + if (this.filter && !this.filter.test(p)) + return null; + let filePath = ``; + while (true) { + const pathPartWithArchive = p.substring(filePath.length); + const mountPoint = this.getMountPoint(pathPartWithArchive, filePath); + if (!mountPoint) + return null; + filePath = this.pathUtils.join(filePath, mountPoint); + if (!this.isMount.has(filePath)) { + if (this.notMount.has(filePath)) + continue; + try { + if (this.typeCheck !== null && (this.baseFs.lstatSync(filePath).mode & fs.constants.S_IFMT) !== this.typeCheck) { + this.notMount.add(filePath); + continue; + } + } catch { + return null; + } + this.isMount.add(filePath); + } + return { + archivePath: filePath, + subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length)) + }; + } + } + limitOpenFilesTimeout = null; + limitOpenFiles(max) { + if (this.mountInstances === null) + return; + const now = Date.now(); + let nextExpiresAt = now + this.maxAge; + let closeCount = max === null ? 0 : this.mountInstances.size - max; + for (const [path, { childFs, expiresAt, refCount }] of this.mountInstances.entries()) { + if (refCount !== 0 || childFs.hasOpenFileHandles?.()) { + continue; + } else if (now >= expiresAt) { + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + closeCount -= 1; + continue; + } else if (max === null || closeCount <= 0) { + nextExpiresAt = expiresAt; + break; + } + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + closeCount -= 1; + } + if (this.limitOpenFilesTimeout === null && (max === null && this.mountInstances.size > 0 || max !== null) && isFinite(nextExpiresAt)) { + this.limitOpenFilesTimeout = setTimeout(() => { + this.limitOpenFilesTimeout = null; + this.limitOpenFiles(null); + }, nextExpiresAt - now).unref(); + } + } + async getMountPromise(p, accept) { + if (this.mountInstances) { + let cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + const createFsInstance = await this.factoryPromise(this.baseFs, p); + cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + cachedMountFs = { + childFs: createFsInstance(), + expiresAt: 0, + refCount: 0 + }; + } + } + this.mountInstances.delete(p); + this.limitOpenFiles(this.maxOpenFiles - 1); + this.mountInstances.set(p, cachedMountFs); + cachedMountFs.expiresAt = Date.now() + this.maxAge; + cachedMountFs.refCount += 1; + try { + return await accept(cachedMountFs.childFs); + } finally { + cachedMountFs.refCount -= 1; + } + } else { + const mountFs = (await this.factoryPromise(this.baseFs, p))(); + try { + return await accept(mountFs); + } finally { + mountFs.saveAndClose?.(); + } + } + } + getMountSync(p, accept) { + if (this.mountInstances) { + let cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + cachedMountFs = { + childFs: this.factorySync(this.baseFs, p), + expiresAt: 0, + refCount: 0 + }; + } + this.mountInstances.delete(p); + this.limitOpenFiles(this.maxOpenFiles - 1); + this.mountInstances.set(p, cachedMountFs); + cachedMountFs.expiresAt = Date.now() + this.maxAge; + return accept(cachedMountFs.childFs); + } else { + const childFs = this.factorySync(this.baseFs, p); + try { + return accept(childFs); + } finally { + childFs.saveAndClose?.(); + } + } + } +} + +class PosixFS extends ProxiedFS { + baseFs; + constructor(baseFs) { + super(npath); + this.baseFs = baseFs; + } + mapFromBase(path) { + return npath.fromPortablePath(path); + } + mapToBase(path) { + return npath.toPortablePath(path); + } +} + +const NUMBER_REGEXP = /^[0-9]+$/; +const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; +const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; +class VirtualFS extends ProxiedFS { + baseFs; + static makeVirtualPath(base, component, to) { + if (ppath.basename(base) !== `__virtual__`) + throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); + if (!ppath.basename(component).match(VALID_COMPONENT)) + throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); + const target = ppath.relative(ppath.dirname(base), to); + const segments = target.split(`/`); + let depth = 0; + while (depth < segments.length && segments[depth] === `..`) + depth += 1; + const finalSegments = segments.slice(depth); + const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); + return fullVirtualPath; + } + static resolveVirtual(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match || !match[3] && match[5]) + return p; + const target = ppath.dirname(match[1]); + if (!match[3] || !match[4]) + return target; + const isnum = NUMBER_REGEXP.test(match[4]); + if (!isnum) + return p; + const depth = Number(match[4]); + const backstep = `../`.repeat(depth); + const subpath = match[5] || `.`; + return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); + } + constructor({ baseFs = new NodeFS() } = {}) { + super(ppath); + this.baseFs = baseFs; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + realpathSync(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return this.baseFs.realpathSync(p); + if (!match[5]) + return p; + const realpath = this.baseFs.realpathSync(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + async realpathPromise(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return await this.baseFs.realpathPromise(p); + if (!match[5]) + return p; + const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + mapToBase(p) { + if (p === ``) + return p; + if (this.pathUtils.isAbsolute(p)) + return VirtualFS.resolveVirtual(p); + const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); + const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); + return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; + } + mapFromBase(p) { + return p; + } +} + +const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? url.URL : globalThis.URL; + +class NodePathFS extends ProxiedFS { + baseFs; + constructor(baseFs) { + super(npath); + this.baseFs = baseFs; + } + mapFromBase(path) { + return path; + } + mapToBase(path) { + if (typeof path === `string`) + return path; + if (path instanceof URL) + return url.fileURLToPath(path); + if (Buffer.isBuffer(path)) { + const str = path.toString(); + if (!isUtf8(path, str)) + throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`); + return str; + } + throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`); + } +} +function isUtf8(buf, str) { + if (typeof buffer__default.default.isUtf8 !== `undefined`) + return buffer__default.default.isUtf8(buf); + return Buffer.byteLength(str) === buf.byteLength; +} + +const kBaseFs = Symbol(`kBaseFs`); +const kFd = Symbol(`kFd`); +const kClosePromise = Symbol(`kClosePromise`); +const kCloseResolve = Symbol(`kCloseResolve`); +const kCloseReject = Symbol(`kCloseReject`); +const kRefs = Symbol(`kRefs`); +const kRef = Symbol(`kRef`); +const kUnref = Symbol(`kUnref`); +class FileHandle { + [kBaseFs]; + [kFd]; + [kRefs] = 1; + [kClosePromise] = void 0; + [kCloseResolve] = void 0; + [kCloseReject] = void 0; + constructor(fd, baseFs) { + this[kBaseFs] = baseFs; + this[kFd] = fd; + } + get fd() { + return this[kFd]; + } + async appendFile(data, options) { + try { + this[kRef](this.appendFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0); + } finally { + this[kUnref](); + } + } + async chown(uid, gid) { + try { + this[kRef](this.chown); + return await this[kBaseFs].fchownPromise(this.fd, uid, gid); + } finally { + this[kUnref](); + } + } + async chmod(mode) { + try { + this[kRef](this.chmod); + return await this[kBaseFs].fchmodPromise(this.fd, mode); + } finally { + this[kUnref](); + } + } + createReadStream(options) { + return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd }); + } + createWriteStream(options) { + return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd }); + } + // FIXME: Missing FakeFS version + datasync() { + throw new Error(`Method not implemented.`); + } + // FIXME: Missing FakeFS version + sync() { + throw new Error(`Method not implemented.`); + } + async read(bufferOrOptions, offset, length, position) { + try { + this[kRef](this.read); + let buffer; + if (!Buffer.isBuffer(bufferOrOptions)) { + bufferOrOptions ??= {}; + buffer = bufferOrOptions.buffer ?? Buffer.alloc(16384); + offset = bufferOrOptions.offset || 0; + length = bufferOrOptions.length ?? buffer.byteLength; + position = bufferOrOptions.position ?? null; + } else { + buffer = bufferOrOptions; + } + offset ??= 0; + length ??= 0; + if (length === 0) { + return { + bytesRead: length, + buffer + }; + } + const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position); + return { + bytesRead, + buffer + }; + } finally { + this[kUnref](); + } + } + async readFile(options) { + try { + this[kRef](this.readFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + return await this[kBaseFs].readFilePromise(this.fd, encoding); + } finally { + this[kUnref](); + } + } + readLines(options) { + return readline.createInterface({ + input: this.createReadStream(options), + crlfDelay: Infinity + }); + } + async stat(opts) { + try { + this[kRef](this.stat); + return await this[kBaseFs].fstatPromise(this.fd, opts); + } finally { + this[kUnref](); + } + } + async truncate(len) { + try { + this[kRef](this.truncate); + return await this[kBaseFs].ftruncatePromise(this.fd, len); + } finally { + this[kUnref](); + } + } + // FIXME: Missing FakeFS version + utimes(atime, mtime) { + throw new Error(`Method not implemented.`); + } + async writeFile(data, options) { + try { + this[kRef](this.writeFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + await this[kBaseFs].writeFilePromise(this.fd, data, encoding); + } finally { + this[kUnref](); + } + } + async write(...args) { + try { + this[kRef](this.write); + if (ArrayBuffer.isView(args[0])) { + const [buffer, offset, length, position] = args; + const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset ?? void 0, length ?? void 0, position ?? void 0); + return { bytesWritten, buffer }; + } else { + const [data, position, encoding] = args; + const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding); + return { bytesWritten, buffer: data }; + } + } finally { + this[kUnref](); + } + } + // TODO: Use writev from FakeFS when that is implemented + async writev(buffers, position) { + try { + this[kRef](this.writev); + let bytesWritten = 0; + if (typeof position !== `undefined`) { + for (const buffer of buffers) { + const writeResult = await this.write(buffer, void 0, void 0, position); + bytesWritten += writeResult.bytesWritten; + position += writeResult.bytesWritten; + } + } else { + for (const buffer of buffers) { + const writeResult = await this.write(buffer); + bytesWritten += writeResult.bytesWritten; + } + } + return { + buffers, + bytesWritten + }; + } finally { + this[kUnref](); + } + } + // FIXME: Missing FakeFS version + readv(buffers, position) { + throw new Error(`Method not implemented.`); + } + close() { + if (this[kFd] === -1) return Promise.resolve(); + if (this[kClosePromise]) return this[kClosePromise]; + this[kRefs]--; + if (this[kRefs] === 0) { + const fd = this[kFd]; + this[kFd] = -1; + this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => { + this[kClosePromise] = void 0; + }); + } else { + this[kClosePromise] = new Promise((resolve, reject) => { + this[kCloseResolve] = resolve; + this[kCloseReject] = reject; + }).finally(() => { + this[kClosePromise] = void 0; + this[kCloseReject] = void 0; + this[kCloseResolve] = void 0; + }); + } + return this[kClosePromise]; + } + [kRef](caller) { + if (this[kFd] === -1) { + const err = new Error(`file closed`); + err.code = `EBADF`; + err.syscall = caller.name; + throw err; + } + this[kRefs]++; + } + [kUnref]() { + this[kRefs]--; + if (this[kRefs] === 0) { + const fd = this[kFd]; + this[kFd] = -1; + this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]); + } + } +} + +const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ + `accessSync`, + `appendFileSync`, + `createReadStream`, + `createWriteStream`, + `chmodSync`, + `fchmodSync`, + `chownSync`, + `fchownSync`, + `closeSync`, + `copyFileSync`, + `linkSync`, + `lstatSync`, + `fstatSync`, + `lutimesSync`, + `mkdirSync`, + `openSync`, + `opendirSync`, + `readlinkSync`, + `readFileSync`, + `readdirSync`, + `readlinkSync`, + `realpathSync`, + `renameSync`, + `rmdirSync`, + `rmSync`, + `statSync`, + `symlinkSync`, + `truncateSync`, + `ftruncateSync`, + `unlinkSync`, + `unwatchFile`, + `utimesSync`, + `watch`, + `watchFile`, + `writeFileSync`, + `writeSync` +]); +const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ + `accessPromise`, + `appendFilePromise`, + `fchmodPromise`, + `chmodPromise`, + `fchownPromise`, + `chownPromise`, + `closePromise`, + `copyFilePromise`, + `linkPromise`, + `fstatPromise`, + `lstatPromise`, + `lutimesPromise`, + `mkdirPromise`, + `openPromise`, + `opendirPromise`, + `readdirPromise`, + `realpathPromise`, + `readFilePromise`, + `readdirPromise`, + `readlinkPromise`, + `renamePromise`, + `rmdirPromise`, + `rmPromise`, + `statPromise`, + `symlinkPromise`, + `truncatePromise`, + `ftruncatePromise`, + `unlinkPromise`, + `utimesPromise`, + `writeFilePromise`, + `writeSync` +]); +function patchFs(patchedFs, fakeFs) { + fakeFs = new NodePathFS(fakeFs); + const setupFn = (target, name, replacement) => { + const orig = target[name]; + target[name] = replacement; + if (typeof orig?.[nodeUtils.promisify.custom] !== `undefined`) { + replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom]; + } + }; + { + setupFn(patchedFs, `exists`, (p, ...args) => { + const hasCallback = typeof args[args.length - 1] === `function`; + const callback = hasCallback ? args.pop() : () => { + }; + process.nextTick(() => { + fakeFs.existsPromise(p).then((exists) => { + callback(exists); + }, () => { + callback(false); + }); + }); + }); + setupFn(patchedFs, `read`, (...args) => { + let [fd, buffer, offset, length, position, callback] = args; + if (args.length <= 3) { + let options = {}; + if (args.length < 3) { + callback = args[1]; + } else { + options = args[1]; + callback = args[2]; + } + ({ + buffer = Buffer.alloc(16384), + offset = 0, + length = buffer.byteLength, + position + } = options); + } + if (offset == null) + offset = 0; + length |= 0; + if (length === 0) { + process.nextTick(() => { + callback(null, 0, buffer); + }); + return; + } + if (position == null) + position = -1; + process.nextTick(() => { + fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => { + callback(null, bytesRead, buffer); + }, (error) => { + callback(error, 0, buffer); + }); + }); + }); + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``); + if (typeof patchedFs[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + const wrapper = (...args) => { + const hasCallback = typeof args[args.length - 1] === `function`; + const callback = hasCallback ? args.pop() : () => { + }; + process.nextTick(() => { + fakeImpl.apply(fakeFs, args).then((result) => { + callback(null, result); + }, (error) => { + callback(error); + }); + }); + }; + setupFn(patchedFs, origName, wrapper); + } + patchedFs.realpath.native = patchedFs.realpath; + } + { + setupFn(patchedFs, `existsSync`, (p) => { + try { + return fakeFs.existsSync(p); + } catch (error) { + return false; + } + }); + setupFn(patchedFs, `readSync`, (...args) => { + let [fd, buffer, offset, length, position] = args; + if (args.length <= 3) { + const options = args[2] || {}; + ({ offset = 0, length = buffer.byteLength, position } = options); + } + if (offset == null) + offset = 0; + length |= 0; + if (length === 0) + return 0; + if (position == null) + position = -1; + return fakeFs.readSync(fd, buffer, offset, length, position); + }); + for (const fnName of SYNC_IMPLEMENTATIONS) { + const origName = fnName; + if (typeof patchedFs[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)); + } + patchedFs.realpathSync.native = patchedFs.realpathSync; + } + { + const patchedFsPromises = patchedFs.promises; + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``); + if (typeof patchedFsPromises[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + if (fnName === `open`) + continue; + setupFn(patchedFsPromises, origName, (pathLike, ...args) => { + if (pathLike instanceof FileHandle) { + return pathLike[origName].apply(pathLike, args); + } else { + return fakeImpl.call(fakeFs, pathLike, ...args); + } + }); + } + setupFn(patchedFsPromises, `open`, async (...args) => { + const fd = await fakeFs.openPromise(...args); + return new FileHandle(fd, fakeFs); + }); + } + { + patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { + const res = fakeFs.readPromise(fd, buffer, ...args); + return { bytesRead: await res, buffer }; + }; + patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { + const res = fakeFs.writePromise(fd, buffer, ...args); + return { bytesWritten: await res, buffer }; + }; + } +} + +let cachedInstance; +let registeredFactory = () => { + throw new Error(`Assertion failed: No libzip instance is available, and no factory was configured`); +}; +function setFactory(factory) { + registeredFactory = factory; +} +function getInstance() { + if (typeof cachedInstance === `undefined`) + cachedInstance = registeredFactory(); + return cachedInstance; +} + +var libzipSync = {exports: {}}; + +(function (module, exports) { +var frozenFs = Object.assign({}, fs__default.default); +var createModule = function() { + var _scriptDir = void 0; + if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; + return function(createModule2) { + createModule2 = createModule2 || {}; + var Module = typeof createModule2 !== "undefined" ? createModule2 : {}; + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function(resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var moduleOverrides = {}; + var key; + for (key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } + } + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readBinary; + var nodeFS; + var nodePath; + { + { + scriptDirectory = __dirname + "/"; + } + read_ = function shell_read(filename, binary) { + var ret = tryParseAsDataURI(filename); + if (ret) { + return binary ? ret : ret.toString(); + } + if (!nodeFS) nodeFS = frozenFs; + if (!nodePath) nodePath = path__default.default; + filename = nodePath["normalize"](filename); + return nodeFS["readFileSync"](filename, binary ? null : "utf8"); + }; + readBinary = function readBinary2(filename) { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + if (process["argv"].length > 1) { + process["argv"][1].replace(/\\/g, "/"); + } + process["argv"].slice(2); + Module["inspect"] = function() { + return "[Emscripten Module object]"; + }; + } + Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } + } + moduleOverrides = null; + if (Module["arguments"]) ; + if (Module["thisProgram"]) ; + if (Module["quit"]) ; + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + Module["noExitRuntime"] || true; + if (typeof WebAssembly !== "object") { + abort("no native wasm support detected"); + } + function getValue(ptr, type, noSafe) { + type = type || "i8"; + if (type.charAt(type.length - 1) === "*") type = "i32"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return LE_HEAP_LOAD_I16((ptr >> 1) * 2); + case "i32": + return LE_HEAP_LOAD_I32((ptr >> 2) * 4); + case "i64": + return LE_HEAP_LOAD_I32((ptr >> 2) * 4); + case "float": + return LE_HEAP_LOAD_F32((ptr >> 2) * 4); + case "double": + return LE_HEAP_LOAD_F64((ptr >> 3) * 8); + default: + abort("invalid type for getValue: " + type); + } + return null; + } + var wasmMemory; + var ABORT = false; + function assert(condition, text) { + if (!condition) { + abort("Assertion failed: " + text); + } + } + function getCFunc(ident) { + var func = Module["_" + ident]; + assert( + func, + "Cannot call unknown function " + ident + ", make sure it is exported" + ); + return func; + } + function ccall(ident, returnType, argTypes, args, opts) { + var toC = { + string: function(str) { + var ret2 = 0; + if (str !== null && str !== void 0 && str !== 0) { + var len = (str.length << 2) + 1; + ret2 = stackAlloc(len); + stringToUTF8(str, ret2, len); + } + return ret2; + }, + array: function(arr) { + var ret2 = stackAlloc(arr.length); + writeArrayToMemory(arr, ret2); + return ret2; + } + }; + function convertReturnValue(ret2) { + if (returnType === "string") return UTF8ToString(ret2); + if (returnType === "boolean") return Boolean(ret2); + return ret2; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + ret = convertReturnValue(ret); + if (stack !== 0) stackRestore(stack); + return ret; + } + function cwrap(ident, returnType, argTypes, opts) { + argTypes = argTypes || []; + var numericArgs = argTypes.every(function(type) { + return type === "number"; + }); + var numericRet = returnType !== "string"; + if (numericRet && numericArgs && !opts) { + return getCFunc(ident); + } + return function() { + return ccall(ident, returnType, argTypes, arguments); + }; + } + var UTF8Decoder = new TextDecoder("utf8"); + function UTF8ToString(ptr, maxBytesToRead) { + if (!ptr) return ""; + var maxPtr = ptr + maxBytesToRead; + for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; ) ++end; + return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); + } + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } + } + heap[outIdx] = 0; + return outIdx - startIdx; + } + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) + u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; + if (u <= 127) ++len; + else if (u <= 2047) len += 2; + else if (u <= 65535) len += 3; + else len += 4; + } + return len; + } + function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + function writeArrayToMemory(array, buffer2) { + HEAP8.set(array, buffer2); + } + function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - x % multiple; + } + return x; + } + var buffer, HEAP8, HEAPU8; + var HEAP_DATA_VIEW; + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(buf); + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = new Int16Array(buf); + Module["HEAP32"] = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = new Uint16Array(buf); + Module["HEAPU32"] = new Uint32Array(buf); + Module["HEAPF32"] = new Float32Array(buf); + Module["HEAPF64"] = new Float64Array(buf); + } + Module["INITIAL_MEMORY"] || 16777216; + var wasmTable; + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATPOSTRUN__ = []; + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") + Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + function initRuntime() { + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + var runDependencies = 0; + var dependenciesFulfilled = null; + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + } + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (runDependencies == 0) { + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + Module["preloadedImages"] = {}; + Module["preloadedAudios"] = {}; + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what += ""; + err(what); + ABORT = true; + what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var dataURIPrefix = "data:application/octet-stream;base64,"; + function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); + } + var wasmBinaryFile = "data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w=="; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + var binary = tryParseAsDataURI(file); + if (binary) { + return binary; + } + if (readBinary) { + return readBinary(file); + } else { + throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; + } + } catch (err2) { + abort(err2); + } + } + function instantiateSync(file, info) { + var instance; + var module2; + var binary; + try { + binary = getBinary(file); + module2 = new WebAssembly.Module(binary); + instance = new WebAssembly.Instance(module2, info); + } catch (e) { + var str = e.toString(); + err("failed to compile wasm module: " + str); + if (str.includes("imported Memory") || str.includes("memory import")) { + err( + "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)." + ); + } + throw e; + } + return [instance, module2]; + } + function createWasm() { + var info = { a: asmLibraryArg }; + function receiveInstance(instance, module2) { + var exports3 = instance.exports; + Module["asm"] = exports3; + wasmMemory = Module["asm"]["g"]; + updateGlobalBufferAndViews(wasmMemory.buffer); + wasmTable = Module["asm"]["W"]; + addOnInit(Module["asm"]["h"]); + removeRunDependency(); + } + addRunDependency(); + if (Module["instantiateWasm"]) { + try { + var exports2 = Module["instantiateWasm"](info, receiveInstance); + return exports2; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + return false; + } + } + var result = instantiateSync(wasmBinaryFile, info); + receiveInstance(result[0]); + return Module["asm"]; + } + function LE_HEAP_LOAD_F32(byteOffset) { + return HEAP_DATA_VIEW.getFloat32(byteOffset, true); + } + function LE_HEAP_LOAD_F64(byteOffset) { + return HEAP_DATA_VIEW.getFloat64(byteOffset, true); + } + function LE_HEAP_LOAD_I16(byteOffset) { + return HEAP_DATA_VIEW.getInt16(byteOffset, true); + } + function LE_HEAP_LOAD_I32(byteOffset) { + return HEAP_DATA_VIEW.getInt32(byteOffset, true); + } + function LE_HEAP_STORE_I32(byteOffset, value) { + HEAP_DATA_VIEW.setInt32(byteOffset, value, true); + } + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(Module); + continue; + } + var func = callback.func; + if (typeof func === "number") { + if (callback.arg === void 0) { + wasmTable.get(func)(); + } else { + wasmTable.get(func)(callback.arg); + } + } else { + func(callback.arg === void 0 ? null : callback.arg); + } + } + } + function _gmtime_r(time, tmPtr) { + var date = new Date(LE_HEAP_LOAD_I32((time >> 2) * 4) * 1e3); + LE_HEAP_STORE_I32((tmPtr >> 2) * 4, date.getUTCSeconds()); + LE_HEAP_STORE_I32((tmPtr + 4 >> 2) * 4, date.getUTCMinutes()); + LE_HEAP_STORE_I32((tmPtr + 8 >> 2) * 4, date.getUTCHours()); + LE_HEAP_STORE_I32((tmPtr + 12 >> 2) * 4, date.getUTCDate()); + LE_HEAP_STORE_I32((tmPtr + 16 >> 2) * 4, date.getUTCMonth()); + LE_HEAP_STORE_I32((tmPtr + 20 >> 2) * 4, date.getUTCFullYear() - 1900); + LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); + LE_HEAP_STORE_I32((tmPtr + 36 >> 2) * 4, 0); + LE_HEAP_STORE_I32((tmPtr + 32 >> 2) * 4, 0); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; + LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); + if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8("GMT"); + LE_HEAP_STORE_I32((tmPtr + 40 >> 2) * 4, _gmtime_r.GMTString); + return tmPtr; + } + function ___gmtime_r(a0, a1) { + return _gmtime_r(a0, a1); + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + function emscripten_realloc_buffer(size) { + try { + wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16); + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1; + } catch (e) { + } + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + var maxHeapSize = 2147483648; + if (requestedSize > maxHeapSize) { + return false; + } + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min( + overGrownHeapSize, + requestedSize + 100663296 + ); + var newSize = Math.min( + maxHeapSize, + alignUp(Math.max(requestedSize, overGrownHeapSize), 65536) + ); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + return false; + } + function _setTempRet0(val) { + } + function _time(ptr) { + var ret = Date.now() / 1e3 | 0; + if (ptr) { + LE_HEAP_STORE_I32((ptr >> 2) * 4, ret); + } + return ret; + } + function _tzset() { + if (_tzset.called) return; + _tzset.called = true; + var currentYear = (/* @__PURE__ */ new Date()).getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + LE_HEAP_STORE_I32((__get_timezone() >> 2) * 4, stdTimezoneOffset * 60); + LE_HEAP_STORE_I32( + (__get_daylight() >> 2) * 4, + Number(winterOffset != summerOffset) + ); + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + } + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = allocateUTF8(winterName); + var summerNamePtr = allocateUTF8(summerName); + if (summerOffset < winterOffset) { + LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, winterNamePtr); + LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, summerNamePtr); + } else { + LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, summerNamePtr); + LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, winterNamePtr); + } + } + function _timegm(tmPtr) { + _tzset(); + var time = Date.UTC( + LE_HEAP_LOAD_I32((tmPtr + 20 >> 2) * 4) + 1900, + LE_HEAP_LOAD_I32((tmPtr + 16 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 12 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 8 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 4 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr >> 2) * 4), + 0 + ); + var date = new Date(time); + LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; + LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); + return date.getTime() / 1e3 | 0; + } + function intArrayFromBase64(s) { + { + var buf; + try { + buf = Buffer.from(s, "base64"); + } catch (_) { + buf = new Buffer(s, "base64"); + } + return new Uint8Array( + buf["buffer"], + buf["byteOffset"], + buf["byteLength"] + ); + } + } + function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); + } + var asmLibraryArg = { + e: ___gmtime_r, + c: _emscripten_memcpy_big, + d: _emscripten_resize_heap, + a: _setTempRet0, + b: _time, + f: _timegm + }; + var asm = createWasm(); + Module["___wasm_call_ctors"] = asm["h"]; + Module["_zip_ext_count_symlinks"] = asm["i"]; + Module["_zip_file_get_external_attributes"] = asm["j"]; + Module["_zipstruct_statS"] = asm["k"]; + Module["_zipstruct_stat_size"] = asm["l"]; + Module["_zipstruct_stat_mtime"] = asm["m"]; + Module["_zipstruct_stat_crc"] = asm["n"]; + Module["_zipstruct_errorS"] = asm["o"]; + Module["_zipstruct_error_code_zip"] = asm["p"]; + Module["_zipstruct_stat_comp_size"] = asm["q"]; + Module["_zipstruct_stat_comp_method"] = asm["r"]; + Module["_zip_close"] = asm["s"]; + Module["_zip_delete"] = asm["t"]; + Module["_zip_dir_add"] = asm["u"]; + Module["_zip_discard"] = asm["v"]; + Module["_zip_error_init_with_code"] = asm["w"]; + Module["_zip_get_error"] = asm["x"]; + Module["_zip_file_get_error"] = asm["y"]; + Module["_zip_error_strerror"] = asm["z"]; + Module["_zip_fclose"] = asm["A"]; + Module["_zip_file_add"] = asm["B"]; + Module["_free"] = asm["C"]; + var _malloc = Module["_malloc"] = asm["D"]; + Module["_zip_source_error"] = asm["E"]; + Module["_zip_source_seek"] = asm["F"]; + Module["_zip_file_set_external_attributes"] = asm["G"]; + Module["_zip_file_set_mtime"] = asm["H"]; + Module["_zip_fopen_index"] = asm["I"]; + Module["_zip_fread"] = asm["J"]; + Module["_zip_get_name"] = asm["K"]; + Module["_zip_get_num_entries"] = asm["L"]; + Module["_zip_source_read"] = asm["M"]; + Module["_zip_name_locate"] = asm["N"]; + Module["_zip_open_from_source"] = asm["O"]; + Module["_zip_set_file_compression"] = asm["P"]; + Module["_zip_source_buffer"] = asm["Q"]; + Module["_zip_source_buffer_create"] = asm["R"]; + Module["_zip_source_close"] = asm["S"]; + Module["_zip_source_free"] = asm["T"]; + Module["_zip_source_keep"] = asm["U"]; + Module["_zip_source_open"] = asm["V"]; + Module["_zip_source_tell"] = asm["X"]; + Module["_zip_stat_index"] = asm["Y"]; + var __get_tzname = Module["__get_tzname"] = asm["Z"]; + var __get_daylight = Module["__get_daylight"] = asm["_"]; + var __get_timezone = Module["__get_timezone"] = asm["$"]; + var stackSave = Module["stackSave"] = asm["aa"]; + var stackRestore = Module["stackRestore"] = asm["ba"]; + var stackAlloc = Module["stackAlloc"] = asm["ca"]; + Module["cwrap"] = cwrap; + Module["getValue"] = getValue; + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; + }; + function run(args) { + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + Module["run"] = run; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + run(); + return createModule2; + }; +}(); +module.exports = createModule; +}(libzipSync)); + +const createModule = libzipSync.exports; + +const number64 = [ + `number`, + // low + `number` + // high +]; +var Errors = /* @__PURE__ */ ((Errors2) => { + Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; + Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; + Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; + Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; + Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; + Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; + Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; + Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; + Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; + Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; + Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; + Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; + Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; + Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; + Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; + Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; + Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; + Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; + Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; + Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; + Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; + Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; + Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; + Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; + Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; + Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; + Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; + Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; + Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; + Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; + Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; + Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; + return Errors2; +})(Errors || {}); +const makeInterface = (emZip) => ({ + // Those are getters because they can change after memory growth + get HEAPU8() { + return emZip.HEAPU8; + }, + errors: Errors, + SEEK_SET: 0, + SEEK_CUR: 1, + SEEK_END: 2, + ZIP_CHECKCONS: 4, + ZIP_EXCL: 2, + ZIP_RDONLY: 16, + ZIP_FL_OVERWRITE: 8192, + ZIP_FL_COMPRESSED: 4, + ZIP_OPSYS_DOS: 0, + ZIP_OPSYS_AMIGA: 1, + ZIP_OPSYS_OPENVMS: 2, + ZIP_OPSYS_UNIX: 3, + ZIP_OPSYS_VM_CMS: 4, + ZIP_OPSYS_ATARI_ST: 5, + ZIP_OPSYS_OS_2: 6, + ZIP_OPSYS_MACINTOSH: 7, + ZIP_OPSYS_Z_SYSTEM: 8, + ZIP_OPSYS_CPM: 9, + ZIP_OPSYS_WINDOWS_NTFS: 10, + ZIP_OPSYS_MVS: 11, + ZIP_OPSYS_VSE: 12, + ZIP_OPSYS_ACORN_RISC: 13, + ZIP_OPSYS_VFAT: 14, + ZIP_OPSYS_ALTERNATE_MVS: 15, + ZIP_OPSYS_BEOS: 16, + ZIP_OPSYS_TANDEM: 17, + ZIP_OPSYS_OS_400: 18, + ZIP_OPSYS_OS_X: 19, + ZIP_CM_DEFAULT: -1, + ZIP_CM_STORE: 0, + ZIP_CM_DEFLATE: 8, + uint08S: emZip._malloc(1), + uint32S: emZip._malloc(4), + malloc: emZip._malloc, + free: emZip._free, + getValue: emZip.getValue, + openFromSource: emZip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), + close: emZip.cwrap(`zip_close`, `number`, [`number`]), + discard: emZip.cwrap(`zip_discard`, null, [`number`]), + getError: emZip.cwrap(`zip_get_error`, `number`, [`number`]), + getName: emZip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), + getNumEntries: emZip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), + delete: emZip.cwrap(`zip_delete`, `number`, [`number`, `number`]), + statIndex: emZip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), + fopenIndex: emZip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), + fread: emZip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), + fclose: emZip.cwrap(`zip_fclose`, `number`, [`number`]), + dir: { + add: emZip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) + }, + file: { + add: emZip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), + getError: emZip.cwrap(`zip_file_get_error`, `number`, [`number`]), + getExternalAttributes: emZip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), + setExternalAttributes: emZip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), + setMtime: emZip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), + setCompression: emZip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) + }, + ext: { + countSymlinks: emZip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) + }, + error: { + initWithCode: emZip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), + strerror: emZip.cwrap(`zip_error_strerror`, `string`, [`number`]) + }, + name: { + locate: emZip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) + }, + source: { + fromUnattachedBuffer: emZip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]), + fromBuffer: emZip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), + free: emZip.cwrap(`zip_source_free`, null, [`number`]), + keep: emZip.cwrap(`zip_source_keep`, null, [`number`]), + open: emZip.cwrap(`zip_source_open`, `number`, [`number`]), + close: emZip.cwrap(`zip_source_close`, `number`, [`number`]), + seek: emZip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), + tell: emZip.cwrap(`zip_source_tell`, `number`, [`number`]), + read: emZip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), + error: emZip.cwrap(`zip_source_error`, `number`, [`number`]) + }, + struct: { + statS: emZip.cwrap(`zipstruct_statS`, `number`, []), + statSize: emZip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), + statCompSize: emZip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), + statCompMethod: emZip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), + statMtime: emZip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), + statCrc: emZip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]), + errorS: emZip.cwrap(`zipstruct_errorS`, `number`, []), + errorCodeZip: emZip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) + } +}); + +function getArchivePart(path, extension) { + let idx = path.indexOf(extension); + if (idx <= 0) + return null; + let nextCharIdx = idx; + while (idx >= 0) { + nextCharIdx = idx + extension.length; + if (path[nextCharIdx] === ppath.sep) + break; + if (path[idx - 1] === ppath.sep) + return null; + idx = path.indexOf(extension, nextCharIdx); + } + if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep) + return null; + return path.slice(0, nextCharIdx); +} +class ZipOpenFS extends MountFS { + static async openPromise(fn, opts) { + const zipOpenFs = new ZipOpenFS(opts); + try { + return await fn(zipOpenFs); + } finally { + zipOpenFs.saveAndClose(); + } + } + constructor(opts = {}) { + const fileExtensions = opts.fileExtensions; + const readOnlyArchives = opts.readOnlyArchives; + const getMountPoint = typeof fileExtensions === `undefined` ? (path) => getArchivePart(path, `.zip`) : (path) => { + for (const extension of fileExtensions) { + const result = getArchivePart(path, extension); + if (result) { + return result; + } + } + return null; + }; + const factorySync = (baseFs, p) => { + return new ZipFS(p, { + baseFs, + readOnly: readOnlyArchives, + stats: baseFs.statSync(p) + }); + }; + const factoryPromise = async (baseFs, p) => { + const zipOptions = { + baseFs, + readOnly: readOnlyArchives, + stats: await baseFs.statPromise(p) + }; + return () => { + return new ZipFS(p, zipOptions); + }; + }; + super({ + ...opts, + factorySync, + factoryPromise, + getMountPoint + }); + } +} + +const DEFAULT_COMPRESSION_LEVEL = `mixed`; +function toUnixTimestamp(time) { + if (typeof time === `string` && String(+time) === time) + return +time; + if (typeof time === `number` && Number.isFinite(time)) { + if (time < 0) { + return Date.now() / 1e3; + } else { + return time; + } + } + if (nodeUtils.types.isDate(time)) + return time.getTime() / 1e3; + throw new Error(`Invalid time`); +} +function makeEmptyArchive() { + return Buffer.from([ + 80, + 75, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]); +} +class LibzipError extends Error { + code; + constructor(message, code) { + super(message); + this.name = `Libzip Error`; + this.code = code; + } +} +class ZipFS extends BasePortableFakeFS { + libzip; + baseFs; + path; + stats; + zip; + lzSource; + level; + listings = /* @__PURE__ */ new Map(); + entries = /* @__PURE__ */ new Map(); + /** + * A cache of indices mapped to file sources. + * Populated by `setFileSource` calls. + * Required for supporting read after write. + */ + fileSources = /* @__PURE__ */ new Map(); + symlinkCount; + fds = /* @__PURE__ */ new Map(); + nextFd = 0; + ready = false; + readOnly = false; + constructor(source, opts = {}) { + super(); + const pathOptions = opts; + this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; + source ??= makeEmptyArchive(); + if (typeof source === `string`) { + const { baseFs = new NodeFS() } = pathOptions; + this.baseFs = baseFs; + this.path = source; + } else { + this.path = null; + this.baseFs = null; + } + if (opts.stats) { + this.stats = opts.stats; + } else { + if (typeof source === `string`) { + try { + this.stats = this.baseFs.statSync(source); + } catch (error) { + if (error.code === `ENOENT` && pathOptions.create) { + this.stats = makeDefaultStats(); + } else { + throw error; + } + } + } else { + this.stats = makeDefaultStats(); + } + } + this.libzip = getInstance(); + const errPtr = this.libzip.malloc(4); + try { + let flags = 0; + if (opts.readOnly) { + flags |= this.libzip.ZIP_RDONLY; + this.readOnly = true; + } + if (typeof source === `string`) + source = pathOptions.create ? makeEmptyArchive() : this.baseFs.readFileSync(source); + const lzSource = this.allocateUnattachedSource(source); + try { + this.zip = this.libzip.openFromSource(lzSource, flags, errPtr); + this.lzSource = lzSource; + } catch (error) { + this.libzip.source.free(lzSource); + throw error; + } + if (this.zip === 0) { + const error = this.libzip.struct.errorS(); + this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`)); + throw this.makeLibzipError(error); + } + } finally { + this.libzip.free(errPtr); + } + this.listings.set(PortablePath.root, /* @__PURE__ */ new Set()); + const entryCount = this.libzip.getNumEntries(this.zip, 0); + for (let t = 0; t < entryCount; ++t) { + const raw = this.libzip.getName(this.zip, t, 0); + if (ppath.isAbsolute(raw)) + continue; + const p = ppath.resolve(PortablePath.root, raw); + this.registerEntry(p, t); + if (raw.endsWith(`/`)) { + this.registerListing(p); + } + } + this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); + if (this.symlinkCount === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + this.ready = true; + } + makeLibzipError(error) { + const errorCode = this.libzip.struct.errorCodeZip(error); + const strerror = this.libzip.error.strerror(error); + const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]); + if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) + throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); + return libzipError; + } + getExtractHint(hints) { + for (const fileName of this.entries.keys()) { + const ext = this.pathUtils.extname(fileName); + if (hints.relevantExtensions.has(ext)) { + return true; + } + } + return false; + } + getAllFiles() { + return Array.from(this.entries.keys()); + } + getRealPath() { + if (!this.path) + throw new Error(`ZipFS don't have real paths when loaded from a buffer`); + return this.path; + } + prepareClose() { + if (!this.ready) + throw EBUSY(`archive closed, close`); + unwatchAllFiles(this); + } + getBufferAndClose() { + this.prepareClose(); + if (this.entries.size === 0) { + this.discardAndClose(); + return makeEmptyArchive(); + } + try { + this.libzip.source.keep(this.lzSource); + if (this.libzip.close(this.zip) === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + if (this.libzip.source.open(this.lzSource) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + const size = this.libzip.source.tell(this.lzSource); + if (size === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + const buffer = this.libzip.malloc(size); + if (!buffer) + throw new Error(`Couldn't allocate enough memory`); + try { + const rc = this.libzip.source.read(this.lzSource, buffer, size); + if (rc === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + else if (rc < size) + throw new Error(`Incomplete read`); + else if (rc > size) + throw new Error(`Overread`); + let result = Buffer.from(this.libzip.HEAPU8.subarray(buffer, buffer + size)); + if (process.env.YARN_IS_TEST_ENV && process.env.YARN_ZIP_DATA_EPILOGUE) + result = Buffer.concat([result, Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)]); + return result; + } finally { + this.libzip.free(buffer); + } + } finally { + this.libzip.source.close(this.lzSource); + this.libzip.source.free(this.lzSource); + this.ready = false; + } + } + discardAndClose() { + this.prepareClose(); + this.libzip.discard(this.zip); + this.ready = false; + } + saveAndClose() { + if (!this.path || !this.baseFs) + throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); + if (this.readOnly) { + this.discardAndClose(); + return; + } + const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode; + this.baseFs.writeFileSync(this.path, this.getBufferAndClose(), { mode: newMode }); + this.ready = false; + } + resolve(p) { + return ppath.resolve(PortablePath.root, p); + } + async openPromise(p, flags, mode) { + return this.openSync(p, flags, mode); + } + openSync(p, flags, mode) { + const fd = this.nextFd++; + this.fds.set(fd, { cursor: 0, p }); + return fd; + } + hasOpenFileHandles() { + return !!this.fds.size; + } + async opendirPromise(p, opts) { + return this.opendirSync(p, opts); + } + opendirSync(p, opts = {}) { + const resolvedP = this.resolveFilename(`opendir '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`opendir '${p}'`); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`opendir '${p}'`); + const entries = [...directoryListing]; + const fd = this.openSync(resolvedP, `r`); + const onClose = () => { + this.closeSync(fd); + }; + return opendir(this, resolvedP, entries, { onClose }); + } + async readPromise(fd, buffer, offset, length, position) { + return this.readSync(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset = 0, length = buffer.byteLength, position = -1) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + const realPosition = position === -1 || position === null ? entry.cursor : position; + const source = this.readFileSync(entry.p); + source.copy(buffer, offset, realPosition, realPosition + length); + const bytesRead = Math.max(0, Math.min(source.length - realPosition, length)); + if (position === -1 || position === null) + entry.cursor += bytesRead; + return bytesRead; + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.writeSync(fd, buffer, position); + } else { + return this.writeSync(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + throw new Error(`Unimplemented`); + } + async closePromise(fd) { + return this.closeSync(fd); + } + closeSync(fd) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + this.fds.delete(fd); + } + createReadStream(p, { encoding } = {}) { + if (p === null) + throw new Error(`Unimplemented`); + const fd = this.openSync(p, `r`); + const stream$1 = Object.assign( + new stream.PassThrough({ + emitClose: true, + autoDestroy: true, + destroy: (error, callback) => { + clearImmediate(immediate); + this.closeSync(fd); + callback(error); + } + }), + { + close() { + stream$1.destroy(); + }, + bytesRead: 0, + path: p, + // "This property is `true` if the underlying file has not been opened yet" + pending: false + } + ); + const immediate = setImmediate(async () => { + try { + const data = await this.readFilePromise(p, encoding); + stream$1.bytesRead = data.length; + stream$1.end(data); + } catch (error) { + stream$1.destroy(error); + } + }); + return stream$1; + } + createWriteStream(p, { encoding } = {}) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (p === null) + throw new Error(`Unimplemented`); + const chunks = []; + const fd = this.openSync(p, `w`); + const stream$1 = Object.assign( + new stream.PassThrough({ + autoDestroy: true, + emitClose: true, + destroy: (error, callback) => { + try { + if (error) { + callback(error); + } else { + this.writeFileSync(p, Buffer.concat(chunks), encoding); + callback(null); + } + } catch (err) { + callback(err); + } finally { + this.closeSync(fd); + } + } + }), + { + close() { + stream$1.destroy(); + }, + bytesWritten: 0, + path: p, + // "This property is `true` if the underlying file has not been opened yet" + pending: false + } + ); + stream$1.on(`data`, (chunk) => { + const chunkBuffer = Buffer.from(chunk); + stream$1.bytesWritten += chunkBuffer.length; + chunks.push(chunkBuffer); + }); + return stream$1; + } + async realpathPromise(p) { + return this.realpathSync(p); + } + realpathSync(p) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`lstat '${p}'`); + return resolvedP; + } + async existsPromise(p) { + return this.existsSync(p); + } + existsSync(p) { + if (!this.ready) + throw EBUSY(`archive closed, existsSync '${p}'`); + if (this.symlinkCount === 0) { + const resolvedP2 = ppath.resolve(PortablePath.root, p); + return this.entries.has(resolvedP2) || this.listings.has(resolvedP2); + } + let resolvedP; + try { + resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false); + } catch (error) { + return false; + } + if (resolvedP === void 0) + return false; + return this.entries.has(resolvedP) || this.listings.has(resolvedP); + } + async accessPromise(p, mode) { + return this.accessSync(p, mode); + } + accessSync(p, mode = fs.constants.F_OK) { + const resolvedP = this.resolveFilename(`access '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`access '${p}'`); + if (this.readOnly && mode & fs.constants.W_OK) { + throw EROFS(`access '${p}'`); + } + } + async statPromise(p, opts = { bigint: false }) { + if (opts.bigint) + return this.statSync(p, { bigint: true }); + return this.statSync(p); + } + statSync(p, opts = { bigint: false, throwIfNoEntry: true }) { + const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry); + if (resolvedP === void 0) + return void 0; + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { + if (opts.throwIfNoEntry === false) + return void 0; + throw ENOENT(`stat '${p}'`); + } + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`stat '${p}'`); + return this.statImpl(`stat '${p}'`, resolvedP, opts); + } + async fstatPromise(fd, opts) { + return this.fstatSync(fd, opts); + } + fstatSync(fd, opts) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstatSync`); + const { p } = entry; + const resolvedP = this.resolveFilename(`stat '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`stat '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`stat '${p}'`); + return this.statImpl(`fstat '${p}'`, resolvedP, opts); + } + async lstatPromise(p, opts = { bigint: false }) { + if (opts.bigint) + return this.lstatSync(p, { bigint: true }); + return this.lstatSync(p); + } + lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry); + if (resolvedP === void 0) + return void 0; + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { + if (opts.throwIfNoEntry === false) + return void 0; + throw ENOENT(`lstat '${p}'`); + } + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`lstat '${p}'`); + return this.statImpl(`lstat '${p}'`, resolvedP, opts); + } + statImpl(reason, p, opts = {}) { + const entry = this.entries.get(p); + if (typeof entry !== `undefined`) { + const stat = this.libzip.struct.statS(); + const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const uid = this.stats.uid; + const gid = this.stats.gid; + const size = this.libzip.struct.statSize(stat) >>> 0; + const blksize = 512; + const blocks = Math.ceil(size / blksize); + const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1e3; + const atimeMs = mtimeMs; + const birthtimeMs = mtimeMs; + const ctimeMs = mtimeMs; + const atime = new Date(atimeMs); + const birthtime = new Date(birthtimeMs); + const ctime = new Date(ctimeMs); + const mtime = new Date(mtimeMs); + const type = this.listings.has(p) ? fs.constants.S_IFDIR : this.isSymbolicLink(entry) ? fs.constants.S_IFLNK : fs.constants.S_IFREG; + const defaultMode = type === fs.constants.S_IFDIR ? 493 : 420; + const mode = type | this.getUnixMode(entry, defaultMode) & 511; + const crc = this.libzip.struct.statCrc(stat); + const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); + return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; + } + if (this.listings.has(p)) { + const uid = this.stats.uid; + const gid = this.stats.gid; + const size = 0; + const blksize = 512; + const blocks = 0; + const atimeMs = this.stats.mtimeMs; + const birthtimeMs = this.stats.mtimeMs; + const ctimeMs = this.stats.mtimeMs; + const mtimeMs = this.stats.mtimeMs; + const atime = new Date(atimeMs); + const birthtime = new Date(birthtimeMs); + const ctime = new Date(ctimeMs); + const mtime = new Date(mtimeMs); + const mode = fs.constants.S_IFDIR | 493; + const crc = 0; + const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); + return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; + } + throw new Error(`Unreachable`); + } + getUnixMode(index, defaultMode) { + const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; + if (opsys !== this.libzip.ZIP_OPSYS_UNIX) + return defaultMode; + return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; + } + registerListing(p) { + const existingListing = this.listings.get(p); + if (existingListing) + return existingListing; + const parentListing = this.registerListing(ppath.dirname(p)); + parentListing.add(ppath.basename(p)); + const newListing = /* @__PURE__ */ new Set(); + this.listings.set(p, newListing); + return newListing; + } + registerEntry(p, index) { + const parentListing = this.registerListing(ppath.dirname(p)); + parentListing.add(ppath.basename(p)); + this.entries.set(p, index); + } + unregisterListing(p) { + this.listings.delete(p); + const parentListing = this.listings.get(ppath.dirname(p)); + parentListing?.delete(ppath.basename(p)); + } + unregisterEntry(p) { + this.unregisterListing(p); + const entry = this.entries.get(p); + this.entries.delete(p); + if (typeof entry === `undefined`) + return; + this.fileSources.delete(entry); + if (this.isSymbolicLink(entry)) { + this.symlinkCount--; + } + } + deleteEntry(p, index) { + this.unregisterEntry(p); + const rc = this.libzip.delete(this.zip, index); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = true) { + if (!this.ready) + throw EBUSY(`archive closed, ${reason}`); + let resolvedP = ppath.resolve(PortablePath.root, p); + if (resolvedP === `/`) + return PortablePath.root; + const fileIndex = this.entries.get(resolvedP); + if (resolveLastComponent && fileIndex !== void 0) { + if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { + const target = this.getFileSource(fileIndex).toString(); + return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry); + } else { + return resolvedP; + } + } + while (true) { + const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry); + if (parentP === void 0) + return parentP; + const isDir = this.listings.has(parentP); + const doesExist = this.entries.has(parentP); + if (!isDir && !doesExist) { + if (throwIfNoEntry === false) + return void 0; + throw ENOENT(reason); + } + if (!isDir) + throw ENOTDIR(reason); + resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); + if (!resolveLastComponent || this.symlinkCount === 0) + break; + const index = this.libzip.name.locate(this.zip, resolvedP.slice(1), 0); + if (index === -1) + break; + if (this.isSymbolicLink(index)) { + const target = this.getFileSource(index).toString(); + resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); + } else { + break; + } + } + return resolvedP; + } + allocateBuffer(content) { + if (!Buffer.isBuffer(content)) + content = Buffer.from(content); + const buffer = this.libzip.malloc(content.byteLength); + if (!buffer) + throw new Error(`Couldn't allocate enough memory`); + const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength); + heap.set(content); + return { buffer, byteLength: content.byteLength }; + } + allocateUnattachedSource(content) { + const error = this.libzip.struct.errorS(); + const { buffer, byteLength } = this.allocateBuffer(content); + const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, 1, error); + if (source === 0) { + this.libzip.free(error); + throw this.makeLibzipError(error); + } + return source; + } + allocateSource(content) { + const { buffer, byteLength } = this.allocateBuffer(content); + const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1); + if (source === 0) { + this.libzip.free(buffer); + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + return source; + } + setFileSource(p, content) { + const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); + const target = ppath.relative(PortablePath.root, p); + const lzSource = this.allocateSource(content); + try { + const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE); + if (newIndex === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + if (this.level !== `mixed`) { + const method = this.level === 0 ? this.libzip.ZIP_CM_STORE : this.libzip.ZIP_CM_DEFLATE; + const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + this.fileSources.set(newIndex, buffer); + return newIndex; + } catch (error) { + this.libzip.source.free(lzSource); + throw error; + } + } + isSymbolicLink(index) { + if (this.symlinkCount === 0) + return false; + const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); + if (attrs === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; + if (opsys !== this.libzip.ZIP_OPSYS_UNIX) + return false; + const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; + return (attributes & fs.constants.S_IFMT) === fs.constants.S_IFLNK; + } + getFileSource(index, opts = { asyncDecompress: false }) { + const cachedFileSource = this.fileSources.get(index); + if (typeof cachedFileSource !== `undefined`) + return cachedFileSource; + const stat = this.libzip.struct.statS(); + const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const size = this.libzip.struct.statCompSize(stat); + const compressionMethod = this.libzip.struct.statCompMethod(stat); + const buffer = this.libzip.malloc(size); + try { + const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED); + if (file === 0) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + try { + const rc2 = this.libzip.fread(file, buffer, size, 0); + if (rc2 === -1) + throw this.makeLibzipError(this.libzip.file.getError(file)); + else if (rc2 < size) + throw new Error(`Incomplete read`); + else if (rc2 > size) + throw new Error(`Overread`); + const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); + const data = Buffer.from(memory); + if (compressionMethod === 0) { + this.fileSources.set(index, data); + return data; + } else if (opts.asyncDecompress) { + return new Promise((resolve, reject) => { + zlib__default.default.inflateRaw(data, (error, result) => { + if (error) { + reject(error); + } else { + this.fileSources.set(index, result); + resolve(result); + } + }); + }); + } else { + const decompressedData = zlib__default.default.inflateRawSync(data); + this.fileSources.set(index, decompressedData); + return decompressedData; + } + } finally { + this.libzip.fclose(file); + } + } finally { + this.libzip.free(buffer); + } + } + async fchmodPromise(fd, mask) { + return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask); + } + fchmodSync(fd, mask) { + return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask); + } + async chmodPromise(p, mask) { + return this.chmodSync(p, mask); + } + chmodSync(p, mask) { + if (this.readOnly) + throw EROFS(`chmod '${p}'`); + mask &= 493; + const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false); + const entry = this.entries.get(resolvedP); + if (typeof entry === `undefined`) + throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`); + const oldMod = this.getUnixMode(entry, fs.constants.S_IFREG | 0); + const newMod = oldMod & ~511 | mask; + const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + async fchownPromise(fd, uid, gid) { + return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid); + } + fchownSync(fd, uid, gid) { + return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid); + } + async chownPromise(p, uid, gid) { + return this.chownSync(p, uid, gid); + } + chownSync(p, uid, gid) { + throw new Error(`Unimplemented`); + } + async renamePromise(oldP, newP) { + return this.renameSync(oldP, newP); + } + renameSync(oldP, newP) { + throw new Error(`Unimplemented`); + } + async copyFilePromise(sourceP, destP, flags) { + const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); + const source = await this.getFileSource(indexSource, { asyncDecompress: true }); + const newIndex = this.setFileSource(resolvedDestP, source); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex); + } + } + copyFileSync(sourceP, destP, flags = 0) { + const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); + const source = this.getFileSource(indexSource); + const newIndex = this.setFileSource(resolvedDestP, source); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex); + } + } + prepareCopyFile(sourceP, destP, flags = 0) { + if (this.readOnly) + throw EROFS(`copyfile '${sourceP} -> '${destP}'`); + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`); + const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP); + const indexSource = this.entries.get(resolvedSourceP); + if (typeof indexSource === `undefined`) + throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`); + const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP); + const indexDest = this.entries.get(resolvedDestP); + if ((flags & (fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) + throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`); + return { + indexSource, + resolvedDestP, + indexDest + }; + } + async appendFilePromise(p, content, opts) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (typeof opts === `undefined`) + opts = { flag: `a` }; + else if (typeof opts === `string`) + opts = { flag: `a`, encoding: opts }; + else if (typeof opts.flag === `undefined`) + opts = { flag: `a`, ...opts }; + return this.writeFilePromise(p, content, opts); + } + appendFileSync(p, content, opts = {}) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (typeof opts === `undefined`) + opts = { flag: `a` }; + else if (typeof opts === `string`) + opts = { flag: `a`, encoding: opts }; + else if (typeof opts.flag === `undefined`) + opts = { flag: `a`, ...opts }; + return this.writeFileSync(p, content, opts); + } + fdToPath(fd, reason) { + const path = this.fds.get(fd)?.p; + if (typeof path === `undefined`) + throw EBADF(reason); + return path; + } + async writeFilePromise(p, content, opts) { + const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); + if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) + content = Buffer.concat([await this.getFileSource(index, { asyncDecompress: true }), Buffer.from(content)]); + if (encoding !== null) + content = content.toString(encoding); + const newIndex = this.setFileSource(resolvedP, content); + if (newIndex !== index) + this.registerEntry(resolvedP, newIndex); + if (mode !== null) { + await this.chmodPromise(resolvedP, mode); + } + } + writeFileSync(p, content, opts) { + const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); + if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) + content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]); + if (encoding !== null) + content = content.toString(encoding); + const newIndex = this.setFileSource(resolvedP, content); + if (newIndex !== index) + this.registerEntry(resolvedP, newIndex); + if (mode !== null) { + this.chmodSync(resolvedP, mode); + } + } + prepareWriteFile(p, opts) { + if (typeof p === `number`) + p = this.fdToPath(p, `read`); + if (this.readOnly) + throw EROFS(`open '${p}'`); + const resolvedP = this.resolveFilename(`open '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`open '${p}'`); + let encoding = null, mode = null; + if (typeof opts === `string`) { + encoding = opts; + } else if (typeof opts === `object`) { + ({ + encoding = null, + mode = null + } = opts); + } + const index = this.entries.get(resolvedP); + return { + encoding, + mode, + resolvedP, + index + }; + } + async unlinkPromise(p) { + return this.unlinkSync(p); + } + unlinkSync(p) { + if (this.readOnly) + throw EROFS(`unlink '${p}'`); + const resolvedP = this.resolveFilename(`unlink '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`unlink '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`unlink '${p}'`); + this.deleteEntry(resolvedP, index); + } + async utimesPromise(p, atime, mtime) { + return this.utimesSync(p, atime, mtime); + } + utimesSync(p, atime, mtime) { + if (this.readOnly) + throw EROFS(`utimes '${p}'`); + const resolvedP = this.resolveFilename(`utimes '${p}'`, p); + this.utimesImpl(resolvedP, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.lutimesSync(p, atime, mtime); + } + lutimesSync(p, atime, mtime) { + if (this.readOnly) + throw EROFS(`lutimes '${p}'`); + const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false); + this.utimesImpl(resolvedP, mtime); + } + utimesImpl(resolvedP, mtime) { + if (this.listings.has(resolvedP)) { + if (!this.entries.has(resolvedP)) + this.hydrateDirectory(resolvedP); + } + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + async mkdirPromise(p, opts) { + return this.mkdirSync(p, opts); + } + mkdirSync(p, { mode = 493, recursive = false } = {}) { + if (recursive) + return this.mkdirpSync(p, { chmod: mode }); + if (this.readOnly) + throw EROFS(`mkdir '${p}'`); + const resolvedP = this.resolveFilename(`mkdir '${p}'`, p); + if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) + throw EEXIST(`mkdir '${p}'`); + this.hydrateDirectory(resolvedP); + this.chmodSync(resolvedP, mode); + return void 0; + } + async rmdirPromise(p, opts) { + return this.rmdirSync(p, opts); + } + rmdirSync(p, { recursive = false } = {}) { + if (this.readOnly) + throw EROFS(`rmdir '${p}'`); + if (recursive) { + this.removeSync(p); + return; + } + const resolvedP = this.resolveFilename(`rmdir '${p}'`, p); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`rmdir '${p}'`); + if (directoryListing.size > 0) + throw ENOTEMPTY(`rmdir '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`rmdir '${p}'`); + this.deleteEntry(p, index); + } + async rmPromise(p, opts) { + return this.rmSync(p, opts); + } + rmSync(p, { recursive = false } = {}) { + if (this.readOnly) + throw EROFS(`rm '${p}'`); + if (recursive) { + this.removeSync(p); + return; + } + const resolvedP = this.resolveFilename(`rm '${p}'`, p); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`rm '${p}'`); + if (directoryListing.size > 0) + throw ENOTEMPTY(`rm '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`rm '${p}'`); + this.deleteEntry(p, index); + } + hydrateDirectory(resolvedP) { + const index = this.libzip.dir.add(this.zip, ppath.relative(PortablePath.root, resolvedP)); + if (index === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + this.registerListing(resolvedP); + this.registerEntry(resolvedP, index); + return index; + } + async linkPromise(existingP, newP) { + return this.linkSync(existingP, newP); + } + linkSync(existingP, newP) { + throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`); + } + async symlinkPromise(target, p) { + return this.symlinkSync(target, p); + } + symlinkSync(target, p) { + if (this.readOnly) + throw EROFS(`symlink '${target}' -> '${p}'`); + const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`symlink '${target}' -> '${p}'`); + if (this.entries.has(resolvedP)) + throw EEXIST(`symlink '${target}' -> '${p}'`); + const index = this.setFileSource(resolvedP, target); + this.registerEntry(resolvedP, index); + const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (fs.constants.S_IFLNK | 511) << 16); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + this.symlinkCount += 1; + } + async readFilePromise(p, encoding) { + if (typeof encoding === `object`) + encoding = encoding ? encoding.encoding : void 0; + const data = await this.readFileBuffer(p, { asyncDecompress: true }); + return encoding ? data.toString(encoding) : data; + } + readFileSync(p, encoding) { + if (typeof encoding === `object`) + encoding = encoding ? encoding.encoding : void 0; + const data = this.readFileBuffer(p); + return encoding ? data.toString(encoding) : data; + } + readFileBuffer(p, opts = { asyncDecompress: false }) { + if (typeof p === `number`) + p = this.fdToPath(p, `read`); + const resolvedP = this.resolveFilename(`open '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`open '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`); + if (this.listings.has(resolvedP)) + throw EISDIR(`read`); + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + return this.getFileSource(entry, opts); + } + async readdirPromise(p, opts) { + return this.readdirSync(p, opts); + } + readdirSync(p, opts) { + const resolvedP = this.resolveFilename(`scandir '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`scandir '${p}'`); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`scandir '${p}'`); + if (opts?.recursive) { + if (opts?.withFileTypes) { + const entries = Array.from(directoryListing, (name) => { + return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { + name, + path: PortablePath.dot + }); + }); + for (const entry of entries) { + if (!entry.isDirectory()) + continue; + const subPath = ppath.join(entry.path, entry.name); + const subListing = this.listings.get(ppath.join(resolvedP, subPath)); + for (const child of subListing) { + entries.push(Object.assign(this.statImpl(`lstat`, ppath.join(p, subPath, child)), { + name: child, + path: subPath + })); + } + } + return entries; + } else { + const entries = [...directoryListing]; + for (const subPath of entries) { + const subListing = this.listings.get(ppath.join(resolvedP, subPath)); + if (typeof subListing === `undefined`) + continue; + for (const child of subListing) { + entries.push(ppath.join(subPath, child)); + } + } + return entries; + } + } else if (opts?.withFileTypes) { + return Array.from(directoryListing, (name) => { + return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { + name, + path: void 0 + }); + }); + } else { + return [...directoryListing]; + } + } + async readlinkPromise(p) { + const entry = this.prepareReadlink(p); + return (await this.getFileSource(entry, { asyncDecompress: true })).toString(); + } + readlinkSync(p) { + const entry = this.prepareReadlink(p); + return this.getFileSource(entry).toString(); + } + prepareReadlink(p) { + const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`readlink '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`); + if (this.listings.has(resolvedP)) + throw EINVAL(`readlink '${p}'`); + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + if (!this.isSymbolicLink(entry)) + throw EINVAL(`readlink '${p}'`); + return entry; + } + async truncatePromise(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`open '${p}'`); + const source = await this.getFileSource(index, { asyncDecompress: true }); + const truncated = Buffer.alloc(len, 0); + source.copy(truncated); + return await this.writeFilePromise(p, truncated); + } + truncateSync(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`open '${p}'`); + const source = this.getFileSource(index); + const truncated = Buffer.alloc(len, 0); + source.copy(truncated); + return this.writeFileSync(p, truncated); + } + async ftruncatePromise(fd, len) { + return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len); + } + ftruncateSync(fd, len) { + return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len); + } + watch(p, a, b) { + let persistent; + switch (typeof a) { + case `function`: + case `string`: + case `undefined`: + { + persistent = true; + } + break; + default: + { + ({ persistent = true } = a); + } + break; + } + if (!persistent) + return { on: () => { + }, close: () => { + } }; + const interval = setInterval(() => { + }, 24 * 60 * 60 * 1e3); + return { on: () => { + }, close: () => { + clearInterval(interval); + } }; + } + watchFile(p, a, b) { + const resolvedP = ppath.resolve(PortablePath.root, p); + return watchFile(this, resolvedP, a, b); + } + unwatchFile(p, cb) { + const resolvedP = ppath.resolve(PortablePath.root, p); + return unwatchFile(this, resolvedP, cb); + } +} + +setFactory(() => { + const emZip = createModule(); + return makeInterface(emZip); +}); + +var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => { + ErrorCode2["API_ERROR"] = `API_ERROR`; + ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`; + ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`; + ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`; + ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`; + ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`; + ErrorCode2["INTERNAL"] = `INTERNAL`; + ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`; + ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`; + return ErrorCode2; +})(ErrorCode || {}); +const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([ + "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */, + "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */, + "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */, + "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */, + "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */ +]); +function makeError(pnpCode, message, data = {}, code) { + code ??= MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode; + const propertySpec = { + configurable: true, + writable: true, + enumerable: false + }; + return Object.defineProperties(new Error(message), { + code: { + ...propertySpec, + value: code + }, + pnpCode: { + ...propertySpec, + value: pnpCode + }, + data: { + ...propertySpec, + value: data + } + }); +} +function getIssuerModule(parent) { + let issuer = parent; + while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) + issuer = issuer.parent; + return issuer || null; +} +function getPathForDisplay(p) { + return npath.normalize(npath.fromPortablePath(p)); +} + +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; + +function readPackageScope(checkPath) { + const rootSeparatorIndex = checkPath.indexOf(npath.sep); + let separatorIndex; + do { + separatorIndex = checkPath.lastIndexOf(npath.sep); + checkPath = checkPath.slice(0, separatorIndex); + if (checkPath.endsWith(`${npath.sep}node_modules`)) + return false; + const pjson = readPackage(checkPath + npath.sep); + if (pjson) { + return { + data: pjson, + path: checkPath + }; + } + } while (separatorIndex > rootSeparatorIndex); + return false; +} +function readPackage(requestPath) { + const jsonPath = npath.resolve(requestPath, `package.json`); + if (!fs__default.default.existsSync(jsonPath)) + return null; + return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`)); +} +function ERR_REQUIRE_ESM(filename, parentPath = null) { + const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename); + const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported. +Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`; + const err = new Error(msg); + err.code = `ERR_REQUIRE_ESM`; + return err; +} +function reportRequiredFilesToWatchMode(files) { + if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); + if (WATCH_MODE_MESSAGE_USES_ARRAYS) { + process.send({ "watch:require": files }); + } else { + for (const filename of files) { + process.send({ "watch:require": filename }); + } + } + } +} + +function applyPatch(pnpapi, opts) { + let enableNativeHooks = true; + process.versions.pnp = String(pnpapi.VERSIONS.std); + const moduleExports = require$$0__default.default; + moduleExports.findPnpApi = (lookupSource) => { + const lookupPath = lookupSource instanceof URL ? url.fileURLToPath(lookupSource) : lookupSource; + const apiPath = opts.manager.findApiPathFor(lookupPath); + if (apiPath === null) + return null; + const apiEntry = opts.manager.getApiEntry(apiPath, true); + return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null; + }; + function getRequireStack(parent) { + const requireStack = []; + for (let cursor = parent; cursor; cursor = cursor.parent) + requireStack.push(cursor.filename || cursor.id); + return requireStack; + } + const originalModuleLoad = require$$0.Module._load; + require$$0.Module._load = function(request, parent, isMain) { + if (request === `pnpapi`) { + const parentApiPath = opts.manager.getApiPathFromParent(parent); + if (parentApiPath) { + return opts.manager.getApiEntry(parentApiPath, true).instance; + } + } + return originalModuleLoad.call(require$$0.Module, request, parent, isMain); + }; + function getIssuerSpecsFromPaths(paths) { + return paths.map((path) => ({ + apiPath: opts.manager.findApiPathFor(path), + path, + module: null + })); + } + function getIssuerSpecsFromModule(module) { + if (module && module.id !== `` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) { + return [{ + apiPath: opts.manager.findApiPathFor(module.paths[0]), + path: module.paths[0], + module + }]; + } + const issuer = getIssuerModule(module); + if (issuer !== null) { + const path = npath.dirname(issuer.filename); + const apiPath = opts.manager.getApiPathFromParent(issuer); + return [{ apiPath, path, module }]; + } else { + const path = process.cwd(); + const apiPath = opts.manager.findApiPathFor(npath.join(path, `[file]`)) ?? opts.manager.getApiPathFromParent(null); + return [{ apiPath, path, module }]; + } + } + function makeFakeParent(path) { + const fakeParent = new require$$0.Module(``); + const fakeFilePath = npath.join(path, `[file]`); + fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath); + return fakeParent; + } + const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; + const originalModuleResolveFilename = require$$0.Module._resolveFilename; + require$$0.Module._resolveFilename = function(request, parent, isMain, options) { + if (require$$0.isBuiltin(request)) + return request; + if (!enableNativeHooks) + return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); + if (options && options.plugnplay === false) { + const { plugnplay, ...forwardedOptions } = options; + try { + enableNativeHooks = false; + return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions); + } finally { + enableNativeHooks = true; + } + } + if (options) { + const optionNames = new Set(Object.keys(options)); + optionNames.delete(`paths`); + optionNames.delete(`plugnplay`); + if (optionNames.size > 0) { + throw makeError( + ErrorCode.UNSUPPORTED, + `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})` + ); + } + } + const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent); + if (request.match(pathRegExp) === null) { + const parentDirectory = parent?.filename != null ? npath.dirname(parent.filename) : null; + const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null; + if (absoluteRequest !== null) { + const apiPath = parent && parentDirectory === npath.dirname(absoluteRequest) ? opts.manager.getApiPathFromParent(parent) : opts.manager.findApiPathFor(absoluteRequest); + if (apiPath !== null) { + issuerSpecs.unshift({ + apiPath, + path: parentDirectory, + module: null + }); + } + } + } + let firstError; + for (const { apiPath, path, module } of issuerSpecs) { + let resolution; + const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null; + try { + if (issuerApi !== null) { + resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null); + } else { + if (path === null) + throw new Error(`Assertion failed: Expected the path to be set`); + resolution = originalModuleResolveFilename.call(require$$0.Module, request, module || makeFakeParent(path), isMain); + } + } catch (error) { + firstError = firstError || error; + continue; + } + if (resolution !== null) { + return resolution; + } + } + const requireStack = getRequireStack(parent); + Object.defineProperty(firstError, `requireStack`, { + configurable: true, + writable: true, + enumerable: false, + value: requireStack + }); + if (requireStack.length > 0) + firstError.message += ` +Require stack: +- ${requireStack.join(` +- `)}`; + if (typeof firstError.pnpCode === `string`) + Error.captureStackTrace(firstError); + throw firstError; + }; + const originalFindPath = require$$0.Module._findPath; + require$$0.Module._findPath = function(request, paths, isMain) { + if (request === `pnpapi`) + return false; + if (!enableNativeHooks) + return originalFindPath.call(require$$0.Module, request, paths, isMain); + const isAbsolute = npath.isAbsolute(request); + if (isAbsolute) + paths = [``]; + else if (!paths || paths.length === 0) + return false; + for (const path of paths) { + let resolution; + try { + const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path); + if (pnpApiPath !== null) { + const api = opts.manager.getApiEntry(pnpApiPath, true).instance; + resolution = api.resolveRequest(request, path) || false; + } else { + resolution = originalFindPath.call(require$$0.Module, request, [path], isMain); + } + } catch (error) { + continue; + } + if (resolution) { + return resolution; + } + } + return false; + }; + const originalExtensionJSFunction = require$$0.Module._extensions[`.js`]; + require$$0.Module._extensions[`.js`] = function(module, filename) { + if (filename.endsWith(`.js`)) { + const pkg = readPackageScope(filename); + if (pkg && pkg.data?.type === `module`) { + const err = ERR_REQUIRE_ESM(filename, module.parent?.filename); + Error.captureStackTrace(err); + throw err; + } + } + originalExtensionJSFunction.call(this, module, filename); + }; + const originalDlopen = process.dlopen; + process.dlopen = function(...args) { + const [module, filename, ...rest] = args; + return originalDlopen.call( + this, + module, + npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))), + ...rest + ); + }; + const originalEmit = process.emit; + process.emit = function(name, data, ...args) { + if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`))) + return false; + return originalEmit.apply(process, arguments); + }; + patchFs(fs__default.default, new PosixFS(opts.fakeFs)); +} + +function hydrateRuntimeState(data, { basePath }) { + const portablePath = npath.toPortablePath(basePath); + const absolutePortablePath = ppath.resolve(portablePath); + const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null; + const packageLocatorsByLocations = /* @__PURE__ */ new Map(); + const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { + return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { + if (packageName === null !== (packageReference === null)) + throw new Error(`Assertion failed: The name and reference should be null, or neither should`); + const discardFromLookup = packageInformationData.discardFromLookup ?? false; + const packageLocator = { name: packageName, reference: packageReference }; + const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation); + if (!entry) { + packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup }); + } else { + entry.discardFromLookup = entry.discardFromLookup && discardFromLookup; + if (!discardFromLookup) { + entry.locator = packageLocator; + } + } + let resolvedPackageLocation = null; + return [packageReference, { + packageDependencies: new Map(packageInformationData.packageDependencies), + packagePeers: new Set(packageInformationData.packagePeers), + linkType: packageInformationData.linkType, + discardFromLookup, + // we only need this for packages that are used by the currently running script + // this is a lazy getter because `ppath.join` has some overhead + get packageLocation() { + return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation)); + } + }]; + }))]; + })); + const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => { + return [packageName, new Set(packageReferences)]; + })); + const fallbackPool = new Map(data.fallbackPool); + const dependencyTreeRoots = data.dependencyTreeRoots; + const enableTopLevelFallback = data.enableTopLevelFallback; + return { + basePath: portablePath, + dependencyTreeRoots, + enableTopLevelFallback, + fallbackExclusionList, + fallbackPool, + ignorePattern, + packageLocatorsByLocations, + packageRegistry + }; +} + +const ArrayIsArray = Array.isArray; +const JSONStringify = JSON.stringify; +const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; +const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); +const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); +const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); +const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); +const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); +const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); +const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); +const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); +const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); +const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); +const SafeMap = Map; +const JSONParse = JSON.parse; + +function createErrorType(code, messageCreator, errorType) { + return class extends errorType { + constructor(...args) { + super(messageCreator(...args)); + this.code = code; + this.name = `${errorType.name} [${code}]`; + } + }; +} +const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( + `ERR_PACKAGE_IMPORT_NOT_DEFINED`, + (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; + }, + TypeError +); +const ERR_INVALID_MODULE_SPECIFIER = createErrorType( + `ERR_INVALID_MODULE_SPECIFIER`, + (request, reason, base = void 0) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; + }, + TypeError +); +const ERR_INVALID_PACKAGE_TARGET = createErrorType( + `ERR_INVALID_PACKAGE_TARGET`, + (pkgPath, key, target, isImport = false, base = void 0) => { + const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); + if (key === `.`) { + assert__default.default(isImport === false); + return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + } + return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( + target + )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + }, + Error +); +const ERR_INVALID_PACKAGE_CONFIG = createErrorType( + `ERR_INVALID_PACKAGE_CONFIG`, + (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; + }, + Error +); +const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( + "ERR_PACKAGE_PATH_NOT_EXPORTED", + (pkgPath, subpath, base = void 0) => { + if (subpath === ".") + return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + }, + Error +); + +function filterOwnProperties(source, keys) { + const filtered = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (ObjectPrototypeHasOwnProperty(source, key)) { + filtered[key] = source[key]; + } + } + return filtered; +} + +const packageJSONCache = new SafeMap(); +function getPackageConfig(path, specifier, base, readFileSyncFn) { + const existing = packageJSONCache.get(path); + if (existing !== void 0) { + return existing; + } + const source = readFileSyncFn(path); + if (source === void 0) { + const packageConfig2 = { + pjsonPath: path, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(path, packageConfig2); + return packageConfig2; + } + let packageJSON; + try { + packageJSON = JSONParse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG( + path, + (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier), + error.message + ); + } + let { imports, main, name, type } = filterOwnProperties(packageJSON, [ + "imports", + "main", + "name", + "type" + ]); + const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; + if (typeof imports !== "object" || imports === null) { + imports = void 0; + } + if (typeof main !== "string") { + main = void 0; + } + if (typeof name !== "string") { + name = void 0; + } + if (type !== "module" && type !== "commonjs") { + type = "none"; + } + const packageConfig = { + pjsonPath: path, + exists: true, + main, + name, + type, + exports, + imports + }; + packageJSONCache.set(path, packageConfig); + return packageConfig; +} +function getPackageScopeConfig(resolved, readFileSyncFn) { + let packageJSONUrl = new URL("./package.json", resolved); + while (true) { + const packageJSONPath2 = packageJSONUrl.pathname; + if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { + break; + } + const packageConfig2 = getPackageConfig( + url.fileURLToPath(packageJSONUrl), + resolved, + void 0, + readFileSyncFn + ); + if (packageConfig2.exists) { + return packageConfig2; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL("../package.json", packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = url.fileURLToPath(packageJSONUrl); + const packageConfig = { + pjsonPath: packageJSONPath, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(packageJSONPath, packageConfig); + return packageConfig; +} + +function throwImportNotDefined(specifier, packageJSONUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( + specifier, + packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)), + url.fileURLToPath(base) + ); +} +function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER( + subpath, + reason, + base && url.fileURLToPath(base) + ); +} +function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { + if (typeof target === "object" && target !== null) { + target = JSONStringify(target, null, ""); + } else { + target = `${target}`; + } + throw new ERR_INVALID_PACKAGE_TARGET( + url.fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + target, + internal, + base && url.fileURLToPath(base) + ); +} +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const patternRegEx = /\*/g; +function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { + if (subpath !== "" && !pattern && target[target.length - 1] !== "/") + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (!StringPrototypeStartsWith(target, "./")) { + if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { + let isURL = false; + try { + new URL(target); + isURL = true; + } catch { + } + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; + return exportTarget; + } + } + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + } + if (RegExpPrototypeExec( + invalidSegmentRegEx, + StringPrototypeSlice(target, 2) + ) !== null) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + const resolved = new URL(target, packageJSONUrl); + const resolvedPath = resolved.pathname; + const packagePath = new URL(".", packageJSONUrl).pathname; + if (!StringPrototypeStartsWith(resolvedPath, packagePath)) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (subpath === "") return resolved; + if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { + const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; + throwInvalidSubpath(request, packageJSONUrl, internal, base); + } + if (pattern) { + return new URL( + RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) + ); + } + return new URL(subpath, resolved); +} +function isArrayIndex(key) { + const keyNum = +key; + if (`${keyNum}` !== key) return false; + return keyNum >= 0 && keyNum < 4294967295; +} +function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === "string") { + return resolvePackageTargetString( + target, + subpath, + packageSubpath, + packageJSONUrl, + base, + pattern, + internal); + } else if (ArrayIsArray(target)) { + if (target.length === 0) { + return null; + } + let lastException; + for (let i = 0; i < target.length; i++) { + const targetItem = target[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget( + packageJSONUrl, + targetItem, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + } catch (e) { + lastException = e; + if (e.code === "ERR_INVALID_PACKAGE_TARGET") { + continue; + } + throw e; + } + if (resolveResult === void 0) { + continue; + } + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === void 0 || lastException === null) + return lastException; + throw lastException; + } else if (typeof target === "object" && target !== null) { + const keys = ObjectGetOwnPropertyNames(target); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG( + url.fileURLToPath(packageJSONUrl), + base, + '"exports" cannot contain numeric property keys.' + ); + } + } + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key === "default" || conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + conditionalTarget, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + if (resolveResult === void 0) continue; + return resolveResult; + } + } + return void 0; + } else if (target === null) { + return null; + } + throwInvalidPackageTarget( + packageSubpath, + target, + packageJSONUrl, + internal, + base + ); +} +function patternKeyCompare(a, b) { + const aPatternIndex = StringPrototypeIndexOf(a, "*"); + const bPatternIndex = StringPrototypeIndexOf(b, "*"); + const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLenA > baseLenB) return -1; + if (baseLenB > baseLenA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { + if (typeof exports === "string" || ArrayIsArray(exports)) return true; + if (typeof exports !== "object" || exports === null) return false; + const keys = ObjectGetOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + for (let j = 0; j < keys.length; j++) { + const key = keys[j]; + const curIsConditionalSugar = key === "" || key[0] !== "."; + if (i++ === 0) { + isConditionalSugar = curIsConditionalSugar; + } else if (isConditionalSugar !== curIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG( + url.fileURLToPath(packageJSONUrl), + base, + `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` + ); + } + } + return isConditionalSugar; +} +function throwExportsNotFound(subpath, packageJSONUrl, base) { + throw new ERR_PACKAGE_PATH_NOT_EXPORTED( + url.fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + base && url.fileURLToPath(base) + ); +} +const emittedPackageWarnings = /* @__PURE__ */ new Set(); +function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { + const pjsonPath = url.fileURLToPath(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + "|" + match)) return; + emittedPackageWarnings.add(pjsonPath + "|" + match); + process.emitWarning( + `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, + "DeprecationWarning", + "DEP0155" + ); +} +function packageExportsResolve({ + packageJSONUrl, + packageSubpath, + exports, + base, + conditions +}) { + if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) + exports = { ".": exports }; + if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) { + const target = exports[packageSubpath]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + "", + packageSubpath, + base, + false, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(exports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + packageSubpath, + StringPrototypeSlice(key, 0, patternIndex) + )) { + if (StringPrototypeEndsWith(packageSubpath, "/")) + emitTrailingSlashPatternDeprecation( + packageSubpath, + packageJSONUrl, + base + ); + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + packageSubpath, + patternIndex, + packageSubpath.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + throwExportsNotFound(packageSubpath, packageJSONUrl, base); +} +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { + if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { + const reason = "is not a valid internal imports specifier name"; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); + } + let packageJSONUrl; + const packageConfig = getPackageScopeConfig(base, readFileSyncFn); + if (packageConfig.exists) { + packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { + const resolveResult = resolvePackageTarget( + packageJSONUrl, + imports[name], + "", + name, + base, + false, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } else { + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(imports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + name, + StringPrototypeSlice(key, 0, patternIndex) + )) { + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + name, + patternIndex, + name.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } + } + } + } + throwImportNotDefined(name, packageJSONUrl, base); +} + +const flagSymbol = Symbol('arg flag'); + +class ArgError extends Error { + constructor(msg, code) { + super(msg); + this.name = 'ArgError'; + this.code = code; + + Object.setPrototypeOf(this, ArgError.prototype); + } +} + +function arg( + opts, + { + argv = process.argv.slice(2), + permissive = false, + stopAtPositional = false + } = {} +) { + if (!opts) { + throw new ArgError( + 'argument specification object is required', + 'ARG_CONFIG_NO_SPEC' + ); + } + + const result = { _: [] }; + + const aliases = {}; + const handlers = {}; + + for (const key of Object.keys(opts)) { + if (!key) { + throw new ArgError( + 'argument key cannot be an empty string', + 'ARG_CONFIG_EMPTY_KEY' + ); + } + + if (key[0] !== '-') { + throw new ArgError( + `argument key must start with '-' but found: '${key}'`, + 'ARG_CONFIG_NONOPT_KEY' + ); + } + + if (key.length === 1) { + throw new ArgError( + `argument key must have a name; singular '-' keys are not allowed: ${key}`, + 'ARG_CONFIG_NONAME_KEY' + ); + } + + if (typeof opts[key] === 'string') { + aliases[key] = opts[key]; + continue; + } + + let type = opts[key]; + let isFlag = false; + + if ( + Array.isArray(type) && + type.length === 1 && + typeof type[0] === 'function' + ) { + const [fn] = type; + type = (value, name, prev = []) => { + prev.push(fn(value, name, prev[prev.length - 1])); + return prev; + }; + isFlag = fn === Boolean || fn[flagSymbol] === true; + } else if (typeof type === 'function') { + isFlag = type === Boolean || type[flagSymbol] === true; + } else { + throw new ArgError( + `type missing or not a function or valid array type: ${key}`, + 'ARG_CONFIG_VAD_TYPE' + ); + } + + if (key[1] !== '-' && key.length > 2) { + throw new ArgError( + `short argument keys (with a single hyphen) must have only one character: ${key}`, + 'ARG_CONFIG_SHORTOPT_TOOLONG' + ); + } + + handlers[key] = [type, isFlag]; + } + + for (let i = 0, len = argv.length; i < len; i++) { + const wholeArg = argv[i]; + + if (stopAtPositional && result._.length > 0) { + result._ = result._.concat(argv.slice(i)); + break; + } + + if (wholeArg === '--') { + result._ = result._.concat(argv.slice(i + 1)); + break; + } + + if (wholeArg.length > 1 && wholeArg[0] === '-') { + /* eslint-disable operator-linebreak */ + const separatedArguments = + wholeArg[1] === '-' || wholeArg.length === 2 + ? [wholeArg] + : wholeArg + .slice(1) + .split('') + .map((a) => `-${a}`); + /* eslint-enable operator-linebreak */ + + for (let j = 0; j < separatedArguments.length; j++) { + const arg = separatedArguments[j]; + const [originalArgName, argStr] = + arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined]; + + let argName = originalArgName; + while (argName in aliases) { + argName = aliases[argName]; + } + + if (!(argName in handlers)) { + if (permissive) { + result._.push(arg); + continue; + } else { + throw new ArgError( + `unknown or unexpected option: ${originalArgName}`, + 'ARG_UNKNOWN_OPTION' + ); + } + } + + const [type, isFlag] = handlers[argName]; + + if (!isFlag && j + 1 < separatedArguments.length) { + throw new ArgError( + `option requires argument (but was followed by another short argument): ${originalArgName}`, + 'ARG_MISSING_REQUIRED_SHORTARG' + ); + } + + if (isFlag) { + result[argName] = type(true, argName, result[argName]); + } else if (argStr === undefined) { + if ( + argv.length < i + 2 || + (argv[i + 1].length > 1 && + argv[i + 1][0] === '-' && + !( + argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && + (type === Number || + // eslint-disable-next-line no-undef + (typeof BigInt !== 'undefined' && type === BigInt)) + )) + ) { + const extended = + originalArgName === argName ? '' : ` (alias for ${argName})`; + throw new ArgError( + `option requires argument: ${originalArgName}${extended}`, + 'ARG_MISSING_REQUIRED_LONGARG' + ); + } + + result[argName] = type(argv[i + 1], argName, result[argName]); + ++i; + } else { + result[argName] = type(argStr, argName, result[argName]); + } + } + } else { + result._.push(wholeArg); + } + } + + return result; +} + +arg.flag = (fn) => { + fn[flagSymbol] = true; + return fn; +}; + +// Utility types +arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1); + +// Expose error class +arg.ArgError = ArgError; + +var arg_1 = arg; + +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +function getOptionValue(opt) { + parseOptions(); + return options[opt]; +} +let options; +function parseOptions() { + if (!options) { + options = { + "--conditions": [], + ...parseArgv(getNodeOptionsEnvArgv()), + ...parseArgv(process.execArgv) + }; + } +} +function parseArgv(argv) { + return arg_1( + { + "--conditions": [String], + "-C": "--conditions" + }, + { + argv, + permissive: true + } + ); +} +function getNodeOptionsEnvArgv() { + const errors = []; + const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors); + if (errors.length !== 0) ; + return envArgv; +} +function ParseNodeOptionsEnvVar(node_options, errors) { + const env_argv = []; + let is_in_string = false; + let will_start_new_arg = true; + for (let index = 0; index < node_options.length; ++index) { + let c = node_options[index]; + if (c === "\\" && is_in_string) { + if (index + 1 === node_options.length) { + errors.push("invalid value for NODE_OPTIONS (invalid escape)\n"); + return env_argv; + } else { + c = node_options[++index]; + } + } else if (c === " " && !is_in_string) { + will_start_new_arg = true; + continue; + } else if (c === '"') { + is_in_string = !is_in_string; + continue; + } + if (will_start_new_arg) { + env_argv.push(c); + will_start_new_arg = false; + } else { + env_argv[env_argv.length - 1] += c; + } + } + if (is_in_string) { + errors.push("invalid value for NODE_OPTIONS (unterminated string)\n"); + } + return env_argv; +} + +function makeApi(runtimeState, opts) { + const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; + const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); + const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; + const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; + const isDirRegExp = /\/$/; + const isRelativeRegexp = /^\.{0,2}\//; + const topLevelLocator = { name: null, reference: null }; + const fallbackLocators = []; + const emittedWarnings = /* @__PURE__ */ new Set(); + if (runtimeState.enableTopLevelFallback === true) + fallbackLocators.push(topLevelLocator); + if (opts.compatibilityMode !== false) { + for (const name of [`react-scripts`, `gatsby`]) { + const packageStore = runtimeState.packageRegistry.get(name); + if (packageStore) { + for (const reference of packageStore.keys()) { + if (reference === null) { + throw new Error(`Assertion failed: This reference shouldn't be null`); + } else { + fallbackLocators.push({ name, reference }); + } + } + } + } + } + const { + ignorePattern, + packageRegistry, + packageLocatorsByLocations + } = runtimeState; + function makeLogEntry(name, args) { + return { + fn: name, + args, + error: null, + result: null + }; + } + function trace(entry) { + const colors = process.stderr?.hasColors?.() ?? process.stdout.isTTY; + const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`; + const error = entry.error; + if (error) + console.error(c(`31;1`, `\u2716 ${entry.error?.message.replace(/\n.*/s, ``)}`)); + else + console.error(c(`33;1`, `\u203C Resolution`)); + if (entry.args.length > 0) + console.error(); + for (const arg of entry.args) + console.error(` ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`); + if (entry.result) { + console.error(); + console.error(` ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`); + } + const stack = new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2) ?? []; + if (stack.length > 0) { + console.error(); + for (const line of stack) { + console.error(` ${c(`38;5;244`, line)}`); + } + } + console.error(); + } + function maybeLog(name, fn) { + if (opts.allowDebug === false) + return fn; + if (Number.isFinite(debugLevel)) { + if (debugLevel >= 2) { + return (...args) => { + const logEntry = makeLogEntry(name, args); + try { + return logEntry.result = fn(...args); + } catch (error) { + throw logEntry.error = error; + } finally { + trace(logEntry); + } + }; + } else if (debugLevel >= 1) { + return (...args) => { + try { + return fn(...args); + } catch (error) { + const logEntry = makeLogEntry(name, args); + logEntry.error = error; + trace(logEntry); + throw error; + } + }; + } + } + return fn; + } + function getPackageInformationSafe(packageLocator) { + const packageInformation = getPackageInformation(packageLocator); + if (!packageInformation) { + throw makeError( + ErrorCode.INTERNAL, + `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)` + ); + } + return packageInformation; + } + function isDependencyTreeRoot(packageLocator) { + if (packageLocator.name === null) + return true; + for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) + if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) + return true; + return false; + } + const defaultExportsConditions = /* @__PURE__ */ new Set([ + `node`, + `require`, + ...getOptionValue(`--conditions`) + ]); + function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) { + const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { + resolveIgnored: true, + includeDiscardFromLookup: true + }); + if (locator === null) { + throw makeError( + ErrorCode.INTERNAL, + `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)` + ); + } + const { packageLocation } = getPackageInformationSafe(locator); + const manifestPath = ppath.join(packageLocation, Filename.manifest); + if (!opts.fakeFs.existsSync(manifestPath)) + return null; + const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); + if (pkgJson.exports == null) + return null; + let subpath = ppath.contains(packageLocation, unqualifiedPath); + if (subpath === null) { + throw makeError( + ErrorCode.INTERNAL, + `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` + ); + } + if (subpath !== `.` && !isRelativeRegexp.test(subpath)) + subpath = `./${subpath}`; + try { + const resolvedExport = packageExportsResolve({ + packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)), + packageSubpath: subpath, + exports: pkgJson.exports, + base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null, + conditions + }); + return npath.toPortablePath(url.fileURLToPath(resolvedExport)); + } catch (error) { + throw makeError( + ErrorCode.EXPORTS_RESOLUTION_FAILED, + error.message, + { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, + error.code + ); + } + } + function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { + let stat; + try { + candidates.push(unqualifiedPath); + stat = opts.fakeFs.statSync(unqualifiedPath); + } catch (error) { + } + if (stat && !stat.isDirectory()) + return opts.fakeFs.realpathSync(unqualifiedPath); + if (stat && stat.isDirectory()) { + let pkgJson; + try { + pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`)); + } catch (error) { + } + let nextUnqualifiedPath; + if (pkgJson && pkgJson.main) + nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); + if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { + const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions }); + if (resolution !== null) { + return resolution; + } + } + } + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = `${unqualifiedPath}${extensions[i]}`; + candidates.push(candidateFile); + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile; + } + } + if (stat && stat.isDirectory()) { + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = ppath.format({ dir: unqualifiedPath, name: `index`, ext: extensions[i] }); + candidates.push(candidateFile); + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile; + } + } + } + return null; + } + function makeFakeModule(path) { + const fakeModule = new require$$0.Module(path, null); + fakeModule.filename = path; + fakeModule.paths = require$$0.Module._nodeModulePaths(path); + return fakeModule; + } + function callNativeResolution(request, issuer) { + if (issuer.endsWith(`/`)) + issuer = ppath.join(issuer, `internal.js`); + return require$$0.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { plugnplay: false }); + } + function isPathIgnored(path) { + if (ignorePattern === null) + return false; + const subPath = ppath.contains(runtimeState.basePath, path); + if (subPath === null) + return false; + if (ignorePattern.test(subPath.replace(/\/$/, ``))) { + return true; + } else { + return false; + } + } + const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 }; + const topLevel = topLevelLocator; + function getPackageInformation({ name, reference }) { + const packageInformationStore = packageRegistry.get(name); + if (!packageInformationStore) + return null; + const packageInformation = packageInformationStore.get(reference); + if (!packageInformation) + return null; + return packageInformation; + } + function findPackageDependents({ name, reference }) { + const dependents = []; + for (const [dependentName, packageInformationStore] of packageRegistry) { + if (dependentName === null) + continue; + for (const [dependentReference, packageInformation] of packageInformationStore) { + if (dependentReference === null) + continue; + const dependencyReference = packageInformation.packageDependencies.get(name); + if (dependencyReference !== reference) + continue; + if (dependentName === name && dependentReference === reference) + continue; + dependents.push({ + name: dependentName, + reference: dependentReference + }); + } + } + return dependents; + } + function findBrokenPeerDependencies(dependency, initialPackage) { + const brokenPackages = /* @__PURE__ */ new Map(); + const alreadyVisited = /* @__PURE__ */ new Set(); + const traversal = (currentPackage) => { + const identifier = JSON.stringify(currentPackage.name); + if (alreadyVisited.has(identifier)) + return; + alreadyVisited.add(identifier); + const dependents = findPackageDependents(currentPackage); + for (const dependent of dependents) { + const dependentInformation = getPackageInformationSafe(dependent); + if (dependentInformation.packagePeers.has(dependency)) { + traversal(dependent); + } else { + let brokenSet = brokenPackages.get(dependent.name); + if (typeof brokenSet === `undefined`) + brokenPackages.set(dependent.name, brokenSet = /* @__PURE__ */ new Set()); + brokenSet.add(dependent.reference); + } + } + }; + traversal(initialPackage); + const brokenList = []; + for (const name of [...brokenPackages.keys()].sort()) + for (const reference of [...brokenPackages.get(name)].sort()) + brokenList.push({ name, reference }); + return brokenList; + } + function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) { + if (isPathIgnored(location) && !resolveIgnored) + return null; + let relativeLocation = ppath.relative(runtimeState.basePath, location); + if (!relativeLocation.match(isStrictRegExp)) + relativeLocation = `./${relativeLocation}`; + if (!relativeLocation.endsWith(`/`)) + relativeLocation = `${relativeLocation}/`; + do { + const entry = packageLocatorsByLocations.get(relativeLocation); + if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) { + relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1); + continue; + } + return entry.locator; + } while (relativeLocation !== ``); + return null; + } + function tryReadFile(filePath) { + try { + return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`); + } catch (err) { + if (err.code === `ENOENT`) + return void 0; + throw err; + } + } + function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) { + if (request.startsWith(`#`)) + throw new Error(`resolveToUnqualified can not handle private import mappings`); + if (request === `pnpapi`) + return npath.toPortablePath(opts.pnpapiResolution); + if (considerBuiltins && require$$0.isBuiltin(request)) + return null; + const requestForDisplay = getPathForDisplay(request); + const issuerForDisplay = issuer && getPathForDisplay(issuer); + if (issuer && isPathIgnored(issuer)) { + if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { + const result = callNativeResolution(request, issuer); + if (result === false) { + throw makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${requestForDisplay}" +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + return npath.toPortablePath(result); + } + } + let unqualifiedPath; + const dependencyNameMatch = request.match(pathRegExp); + if (!dependencyNameMatch) { + if (ppath.isAbsolute(request)) { + unqualifiedPath = ppath.normalize(request); + } else { + if (!issuer) { + throw makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + const absoluteIssuer = ppath.resolve(issuer); + if (issuer.match(isDirRegExp)) { + unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request)); + } else { + unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request)); + } + } + } else { + if (!issuer) { + throw makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + const [, dependencyName, subPath] = dependencyNameMatch; + const issuerLocator = findPackageLocator(issuer); + if (!issuerLocator) { + const result = callNativeResolution(request, issuer); + if (result === false) { + throw makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${requestForDisplay}" +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + return npath.toPortablePath(result); + } + const issuerInformation = getPackageInformationSafe(issuerLocator); + let dependencyReference = issuerInformation.packageDependencies.get(dependencyName); + let fallbackReference = null; + if (dependencyReference == null) { + if (issuerLocator.name !== null) { + const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name); + const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference); + if (canUseFallbacks) { + for (let t = 0, T = fallbackLocators.length; t < T; ++t) { + const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]); + const reference = fallbackInformation.packageDependencies.get(dependencyName); + if (reference == null) + continue; + if (alwaysWarnOnFallback) + fallbackReference = reference; + else + dependencyReference = reference; + break; + } + if (runtimeState.enableTopLevelFallback) { + if (dependencyReference == null && fallbackReference === null) { + const reference = runtimeState.fallbackPool.get(dependencyName); + if (reference != null) { + fallbackReference = reference; + } + } + } + } + } + } + let error = null; + if (dependencyReference === null) { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator); + if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} +`).join(``)} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } + ); + } else { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) + +${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} +`).join(``)} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } + ); + } + } + } else if (dependencyReference === void 0) { + if (!considerBuiltins && require$$0.isBuiltin(request)) { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } + ); + } + } else { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } + ); + } + } + } + if (dependencyReference == null) { + if (fallbackReference === null || error === null) + throw error || new Error(`Assertion failed: Expected an error to have been set`); + dependencyReference = fallbackReference; + const message = error.message.replace(/\n.*/g, ``); + error.message = message; + if (!emittedWarnings.has(message) && debugLevel !== 0) { + emittedWarnings.add(message); + process.emitWarning(error); + } + } + const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference }; + const dependencyInformation = getPackageInformationSafe(dependencyLocator); + if (!dependencyInformation.packageLocation) { + throw makeError( + ErrorCode.MISSING_DEPENDENCY, + `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) } + ); + } + const dependencyLocation = dependencyInformation.packageLocation; + if (subPath) { + unqualifiedPath = ppath.join(dependencyLocation, subPath); + } else { + unqualifiedPath = dependencyLocation; + } + } + return ppath.normalize(unqualifiedPath); + } + function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) { + if (isStrictRegExp.test(request)) + return unqualifiedPath; + const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer); + if (unqualifiedExportPath) { + return ppath.normalize(unqualifiedExportPath); + } else { + return unqualifiedPath; + } + } + function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) { + const candidates = []; + const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }); + if (qualifiedPath) { + return ppath.normalize(qualifiedPath); + } else { + reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); + const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); + const containingPackage = findPackageLocator(unqualifiedPath); + if (containingPackage) { + const { packageLocation } = getPackageInformationSafe(containingPackage); + let exists = true; + try { + opts.fakeFs.accessSync(packageLocation); + } catch (err) { + if (err?.code === `ENOENT`) { + exists = false; + } else { + const readableError = (err?.message ?? err ?? `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase()); + throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}). + +Missing package: ${containingPackage.name}@${containingPackage.reference} +Expected package location: ${getPathForDisplay(packageLocation)} +`, { unqualifiedPath: unqualifiedPathForDisplay, extensions }); + } + } + if (!exists) { + const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`; + throw makeError( + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + `${errorMessage} + +Missing package: ${containingPackage.name}@${containingPackage.reference} +Expected package location: ${getPathForDisplay(packageLocation)} +`, + { unqualifiedPath: unqualifiedPathForDisplay, extensions } + ); + } + } + throw makeError( + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + `Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${unqualifiedPathForDisplay} +${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} +`).join(``)}`, + { unqualifiedPath: unqualifiedPathForDisplay, extensions } + ); + } + } + function resolvePrivateRequest(request, issuer, opts2) { + if (!issuer) + throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`); + const resolved = packageImportsResolve({ + name: request, + base: url.pathToFileURL(npath.fromPortablePath(issuer)), + conditions: opts2.conditions ?? defaultExportsConditions, + readFileSyncFn: tryReadFile + }); + if (resolved instanceof URL) { + return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); + } else { + if (resolved.startsWith(`#`)) + throw new Error(`Mapping from one private import to another isn't allowed`); + return resolveRequest(resolved, issuer, opts2); + } + } + function resolveRequest(request, issuer, opts2 = {}) { + try { + if (request.startsWith(`#`)) + return resolvePrivateRequest(request, issuer, opts2); + const { considerBuiltins, extensions, conditions } = opts2; + const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins }); + if (request === `pnpapi`) + return unqualifiedPath; + if (unqualifiedPath === null) + return null; + const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; + const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; + return resolveUnqualified(remappedPath, { extensions }); + } catch (error) { + if (Object.hasOwn(error, `pnpCode`)) + Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) }); + throw error; + } + } + function resolveVirtual(request) { + const normalized = ppath.normalize(request); + const resolved = VirtualFS.resolveVirtual(normalized); + return resolved !== normalized ? resolved : null; + } + return { + VERSIONS, + topLevel, + getLocator: (name, referencish) => { + if (Array.isArray(referencish)) { + return { name: referencish[0], reference: referencish[1] }; + } else { + return { name, reference: referencish }; + } + }, + getDependencyTreeRoots: () => { + return [...runtimeState.dependencyTreeRoots]; + }, + getAllLocators() { + const locators = []; + for (const [name, entry] of packageRegistry) + for (const reference of entry.keys()) + if (name !== null && reference !== null) + locators.push({ name, reference }); + return locators; + }, + getPackageInformation: (locator) => { + const info = getPackageInformation(locator); + if (info === null) + return null; + const packageLocation = npath.fromPortablePath(info.packageLocation); + const nativeInfo = { ...info, packageLocation }; + return nativeInfo; + }, + findPackageLocator: (path) => { + return findPackageLocator(npath.toPortablePath(path)); + }, + resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts2) => { + const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; + const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2); + if (resolution === null) + return null; + return npath.fromPortablePath(resolution); + }), + resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => { + return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2)); + }), + resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => { + const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; + const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2); + if (resolution === null) + return null; + return npath.fromPortablePath(resolution); + }), + resolveVirtual: maybeLog(`resolveVirtual`, (path) => { + const result = resolveVirtual(npath.toPortablePath(path)); + if (result !== null) { + return npath.fromPortablePath(result); + } else { + return null; + } + }) + }; +} + +function makeManager(pnpapi, opts) { + const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); + const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); + const apiMetadata = /* @__PURE__ */ new Map([ + [initialApiPath, { + instance: pnpapi, + stats: initialApiStats, + lastRefreshCheck: Date.now() + }] + ]); + function loadApiInstance(pnpApiPath) { + const nativePath = npath.fromPortablePath(pnpApiPath); + const module = new require$$0.Module(nativePath, null); + module.load(nativePath); + return module.exports; + } + function refreshApiEntry(pnpApiPath, apiEntry) { + const timeNow = Date.now(); + if (timeNow - apiEntry.lastRefreshCheck < 500) + return; + apiEntry.lastRefreshCheck = timeNow; + const stats = opts.fakeFs.statSync(pnpApiPath); + if (stats.mtime > apiEntry.stats.mtime) { + process.emitWarning(`[Warning] The runtime detected new information in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`); + apiEntry.stats = stats; + apiEntry.instance = loadApiInstance(pnpApiPath); + } + } + function getApiEntry(pnpApiPath, refresh = false) { + let apiEntry = apiMetadata.get(pnpApiPath); + if (typeof apiEntry !== `undefined`) { + if (refresh) { + refreshApiEntry(pnpApiPath, apiEntry); + } + } else { + apiMetadata.set(pnpApiPath, apiEntry = { + instance: loadApiInstance(pnpApiPath), + stats: opts.fakeFs.statSync(pnpApiPath), + lastRefreshCheck: Date.now() + }); + } + return apiEntry; + } + const findApiPathCache = /* @__PURE__ */ new Map(); + function addToCacheAndReturn(start, end, target) { + if (target !== null) { + target = VirtualFS.resolveVirtual(target); + target = opts.fakeFs.realpathSync(target); + } + let curr; + let next = start; + do { + curr = next; + findApiPathCache.set(curr, target); + next = ppath.dirname(curr); + } while (curr !== end); + return target; + } + function findApiPathFor(modulePath) { + let bestCandidate = null; + for (const [apiPath, apiEntry] of apiMetadata) { + const locator = apiEntry.instance.findPackageLocator(modulePath); + if (!locator) + continue; + if (apiMetadata.size === 1) + return apiPath; + const packageInformation = apiEntry.instance.getPackageInformation(locator); + if (!packageInformation) + throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`); + if (!bestCandidate) + bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] }; + if (packageInformation.packageLocation === bestCandidate.packageLocation) { + bestCandidate.apiPaths.push(apiPath); + } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) { + bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] }; + } + } + if (bestCandidate) { + if (bestCandidate.apiPaths.length === 1) + return bestCandidate.apiPaths[0]; + const controlSegment = bestCandidate.apiPaths.map((apiPath) => ` ${npath.fromPortablePath(apiPath)}`).join(` +`); + throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances. +This is usually caused by using the global cache (enableGlobalCache: true) + +Controlled by: +${controlSegment} +`); + } + const start = ppath.resolve(npath.toPortablePath(modulePath)); + let curr; + let next = start; + do { + curr = next; + const cached = findApiPathCache.get(curr); + if (cached !== void 0) + return addToCacheAndReturn(start, curr, cached); + const cjsCandidate = ppath.join(curr, Filename.pnpCjs); + if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile()) + return addToCacheAndReturn(start, curr, cjsCandidate); + const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs); + if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile()) + return addToCacheAndReturn(start, curr, legacyCjsCandidate); + next = ppath.dirname(curr); + } while (curr !== PortablePath.root); + return addToCacheAndReturn(start, curr, null); + } + const moduleToApiPathCache = /* @__PURE__ */ new WeakMap(); + function getApiPathFromParent(parent) { + if (parent == null) + return initialApiPath; + let apiPath = moduleToApiPathCache.get(parent); + if (typeof apiPath !== `undefined`) + return apiPath; + apiPath = parent.filename ? findApiPathFor(parent.filename) : null; + moduleToApiPathCache.set(parent, apiPath); + return apiPath; + } + return { + getApiPathFromParent, + findApiPathFor, + getApiEntry + }; +} + +const localFs = { ...fs__default.default }; +const nodeFs = new NodeFS(localFs); +const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); +const defaultPnpapiResolution = __filename; +const defaultFsLayer = new VirtualFS({ + baseFs: new ZipOpenFS({ + baseFs: nodeFs, + maxOpenFiles: 80, + readOnlyArchives: true + }) +}); +class DynamicFS extends ProxiedFS { + baseFs = defaultFsLayer; + constructor() { + super(ppath); + } + mapToBase(p) { + return p; + } + mapFromBase(p) { + return p; + } +} +const dynamicFsLayer = new DynamicFS(); +let manager; +const defaultApi = Object.assign(makeApi(defaultRuntimeState, { + fakeFs: dynamicFsLayer, + pnpapiResolution: defaultPnpapiResolution +}), { + /** + * Can be used to generate a different API than the default one (for example + * to map it on `/` rather than the local directory path, or to use a + * different FS layer than the default one). + */ + makeApi: ({ + basePath = void 0, + fakeFs = dynamicFsLayer, + pnpapiResolution = defaultPnpapiResolution, + ...rest + }) => { + const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState; + return makeApi(apiRuntimeState, { + fakeFs, + pnpapiResolution, + ...rest + }); + }, + /** + * Will inject the specified API into the environment, monkey-patching FS. Is + * automatically called when the hook is loaded through `--require`. + */ + setup: (api) => { + applyPatch(api || defaultApi, { + fakeFs: defaultFsLayer, + manager + }); + dynamicFsLayer.baseFs = new NodeFS(fs__default.default); + } +}); +manager = makeManager(defaultApi, { + fakeFs: dynamicFsLayer +}); +if (module.parent && module.parent.id === `internal/preload`) { + defaultApi.setup(); + if (module.filename) { + delete require$$0__default.default._cache[module.filename]; + } +} +if (process.mainModule === module) { + const reportError = (code, message, data) => { + process.stdout.write(`${JSON.stringify([{ code, message, data }, null])} +`); + }; + const reportSuccess = (resolution) => { + process.stdout.write(`${JSON.stringify([null, resolution])} +`); + }; + const processResolution = (request, issuer) => { + try { + reportSuccess(defaultApi.resolveRequest(request, issuer)); + } catch (error) { + reportError(error.code, error.message, error.data); + } + }; + const processRequest = (data) => { + try { + const [request, issuer] = JSON.parse(data); + processResolution(request, issuer); + } catch (error) { + reportError(`INVALID_JSON`, error.message, error.data); + } + }; + if (process.argv.length > 2) { + if (process.argv.length !== 4) { + process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} +`); + process.exitCode = 64; + } else { + processResolution(process.argv[2], process.argv[3]); + } + } else { + let buffer = ``; + const decoder = new StringDecoder__default.default.StringDecoder(); + process.stdin.on(`data`, (chunk) => { + buffer += decoder.write(chunk); + do { + const index = buffer.indexOf(` +`); + if (index === -1) + break; + const line = buffer.slice(0, index); + buffer = buffer.slice(index + 1); + processRequest(line); + } while (true); + }); + } +} + +module.exports = defaultApi; diff --git a/costs/.pnp.loader.mjs b/costs/.pnp.loader.mjs new file mode 100644 index 000000000..e5a542909 --- /dev/null +++ b/costs/.pnp.loader.mjs @@ -0,0 +1,2126 @@ +/* eslint-disable */ +// @ts-nocheck + +import fs from 'fs'; +import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; +import path from 'path'; +import { createHash } from 'crypto'; +import { EOL } from 'os'; +import esmModule, { createRequire, isBuiltin } from 'module'; +import assert from 'assert'; + +const SAFE_TIME = 456789e3; + +const PortablePath = { + root: `/`, + dot: `.`, + parent: `..` +}; +const npath = Object.create(path); +const ppath = Object.create(path.posix); +npath.cwd = () => process.cwd(); +ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; +if (process.platform === `win32`) { + ppath.resolve = (...segments) => { + if (segments.length > 0 && ppath.isAbsolute(segments[0])) { + return path.posix.resolve(...segments); + } else { + return path.posix.resolve(ppath.cwd(), ...segments); + } + }; +} +const contains = function(pathUtils, from, to) { + from = pathUtils.normalize(from); + to = pathUtils.normalize(to); + if (from === to) + return `.`; + if (!from.endsWith(pathUtils.sep)) + from = from + pathUtils.sep; + if (to.startsWith(from)) { + return to.slice(from.length); + } else { + return null; + } +}; +npath.contains = (from, to) => contains(npath, from, to); +ppath.contains = (from, to) => contains(ppath, from, to); +const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; +const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; +const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; +const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; +function fromPortablePathWin32(p) { + let portablePathMatch, uncPortablePathMatch; + if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) + p = portablePathMatch[1]; + else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) + p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; + else + return p; + return p.replace(/\//g, `\\`); +} +function toPortablePathWin32(p) { + p = p.replace(/\\/g, `/`); + let windowsPathMatch, uncWindowsPathMatch; + if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) + p = `/${windowsPathMatch[1]}`; + else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) + p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; + return p; +} +const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; +const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; +npath.fromPortablePath = fromPortablePath; +npath.toPortablePath = toPortablePath; +function convertPath(targetPathUtils, sourcePath) { + return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); +} + +const defaultTime = new Date(SAFE_TIME * 1e3); +const defaultTimeMs = defaultTime.getTime(); +async function copyPromise(destinationFs, destination, sourceFs, source, opts) { + const normalizedDestination = destinationFs.pathUtils.normalize(destination); + const normalizedSource = sourceFs.pathUtils.normalize(source); + const prelayout = []; + const postlayout = []; + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); + await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); + await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); + for (const operation of prelayout) + await operation(); + await Promise.all(postlayout.map((operation) => { + return operation(); + })); +} +async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { + const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; + const sourceStat = await sourceFs.lstatPromise(source); + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; + let updated; + switch (true) { + case sourceStat.isDirectory(): + { + updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isFile(): + { + updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isSymbolicLink(): + { + updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + default: { + throw new Error(`Unsupported file type (${sourceStat.mode})`); + } + } + if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { + if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { + postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); + updated = true; + } + if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { + postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); + updated = true; + } + } + return updated; +} +async function maybeLStat(baseFs, p) { + try { + return await baseFs.lstatPromise(p); + } catch (e) { + return null; + } +} +async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null && !destinationStat.isDirectory()) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + let updated = false; + if (destinationStat === null) { + prelayout.push(async () => { + try { + await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); + } catch (err) { + if (err.code !== `EEXIST`) { + throw err; + } + } + }); + updated = true; + } + const entries = await sourceFs.readdirPromise(source); + const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; + if (opts.stableSort) { + for (const entry of entries.sort()) { + if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { + updated = true; + } + } + } else { + const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { + await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); + })); + if (entriesUpdateStatus.some((status) => status)) { + updated = true; + } + } + return updated; +} +async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { + const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); + const defaultMode = 420; + const sourceMode = sourceStat.mode & 511; + const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; + const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); + let AtomicBehavior; + ((AtomicBehavior2) => { + AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; + AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; + })(AtomicBehavior || (AtomicBehavior = {})); + let atomicBehavior = 1 /* Rename */; + let indexStat = await maybeLStat(destinationFs, indexPath); + if (destinationStat) { + const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; + const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; + if (isDestinationHardlinkedFromIndex) { + if (isIndexModified && linkStrategy.autoRepair) { + atomicBehavior = 0 /* Lock */; + indexStat = null; + } + } + if (!isDestinationHardlinkedFromIndex) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + } + const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; + let tempPathCleaned = false; + prelayout.push(async () => { + if (!indexStat) { + if (atomicBehavior === 0 /* Lock */) { + await destinationFs.lockPromise(indexPath, async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(indexPath, content); + }); + } + if (atomicBehavior === 1 /* Rename */ && tempPath) { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(tempPath, content); + try { + await destinationFs.linkPromise(tempPath, indexPath); + } catch (err) { + if (err.code === `EEXIST`) { + tempPathCleaned = true; + await destinationFs.unlinkPromise(tempPath); + } else { + throw err; + } + } + } + } + if (!destinationStat) { + await destinationFs.linkPromise(indexPath, destination); + } + }); + postlayout.push(async () => { + if (!indexStat) { + await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); + if (sourceMode !== defaultMode) { + await destinationFs.chmodPromise(indexPath, sourceMode); + } + } + if (tempPath && !tempPathCleaned) { + await destinationFs.unlinkPromise(tempPath); + } + }); + return false; +} +async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(destination, content); + }); + return true; +} +async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (opts.linkStrategy?.type === `HardlinkFromIndex`) { + return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); + } else { + return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } +} +async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); + }); + return true; +} + +class FakeFS { + pathUtils; + constructor(pathUtils) { + this.pathUtils = pathUtils; + } + async *genTraversePromise(init, { stableSort = false } = {}) { + const stack = [init]; + while (stack.length > 0) { + const p = stack.shift(); + const entry = await this.lstatPromise(p); + if (entry.isDirectory()) { + const entries = await this.readdirPromise(p); + if (stableSort) { + for (const entry2 of entries.sort()) { + stack.push(this.pathUtils.join(p, entry2)); + } + } else { + throw new Error(`Not supported`); + } + } else { + yield p; + } + } + } + async checksumFilePromise(path, { algorithm = `sha512` } = {}) { + const fd = await this.openPromise(path, `r`); + try { + const CHUNK_SIZE = 65536; + const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); + const hash = createHash(algorithm); + let bytesRead = 0; + while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) + hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); + return hash.digest(`hex`); + } finally { + await this.closePromise(fd); + } + } + async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { + let stat; + try { + stat = await this.lstatPromise(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) { + const entries = await this.readdirPromise(p); + await Promise.all(entries.map((entry) => { + return this.removePromise(this.pathUtils.resolve(p, entry)); + })); + } + for (let t = 0; t <= maxRetries; t++) { + try { + await this.rmdirPromise(p); + break; + } catch (error) { + if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { + throw error; + } else if (t < maxRetries) { + await new Promise((resolve) => setTimeout(resolve, t * 100)); + } + } + } + } else { + await this.unlinkPromise(p); + } + } + removeSync(p, { recursive = true } = {}) { + let stat; + try { + stat = this.lstatSync(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) + for (const entry of this.readdirSync(p)) + this.removeSync(this.pathUtils.resolve(p, entry)); + this.rmdirSync(p); + } else { + this.unlinkSync(p); + } + } + async mkdirpPromise(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + await this.mkdirPromise(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + await this.chmodPromise(subPath, chmod); + if (utimes != null) { + await this.utimesPromise(subPath, utimes[0], utimes[1]); + } else { + const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); + await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + mkdirpSync(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + this.mkdirSync(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + this.chmodSync(subPath, chmod); + if (utimes != null) { + this.utimesSync(subPath, utimes[0], utimes[1]); + } else { + const parentStat = this.statSync(this.pathUtils.dirname(subPath)); + this.utimesSync(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { + return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); + } + copySync(destination, source, { baseFs = this, overwrite = true } = {}) { + const stat = baseFs.lstatSync(source); + const exists = this.existsSync(destination); + if (stat.isDirectory()) { + this.mkdirpSync(destination); + const directoryListing = baseFs.readdirSync(source); + for (const entry of directoryListing) { + this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); + } + } else if (stat.isFile()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const content = baseFs.readFileSync(source); + this.writeFileSync(destination, content); + } + } else if (stat.isSymbolicLink()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const target = baseFs.readlinkSync(source); + this.symlinkSync(convertPath(this.pathUtils, target), destination); + } + } else { + throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); + } + const mode = stat.mode & 511; + this.chmodSync(destination, mode); + } + async changeFilePromise(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferPromise(p, content, opts); + } else { + return this.changeFileTextPromise(p, content, opts); + } + } + async changeFileBufferPromise(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = await this.readFilePromise(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + await this.writeFilePromise(p, content, { mode }); + } + async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { + let current = ``; + try { + current = await this.readFilePromise(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + await this.writeFilePromise(p, normalizedContent, { mode }); + } + changeFileSync(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferSync(p, content, opts); + } else { + return this.changeFileTextSync(p, content, opts); + } + } + changeFileBufferSync(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = this.readFileSync(p); + } catch (error) { + } + if (Buffer.compare(current, content) === 0) + return; + this.writeFileSync(p, content, { mode }); + } + changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { + let current = ``; + try { + current = this.readFileSync(p, `utf8`); + } catch (error) { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + this.writeFileSync(p, normalizedContent, { mode }); + } + async movePromise(fromP, toP) { + try { + await this.renamePromise(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + await this.copyPromise(toP, fromP); + await this.removePromise(fromP); + } else { + throw error; + } + } + } + moveSync(fromP, toP) { + try { + this.renameSync(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + this.copySync(toP, fromP); + this.removeSync(fromP); + } else { + throw error; + } + } + } + async lockPromise(affectedPath, callback) { + const lockPath = `${affectedPath}.flock`; + const interval = 1e3 / 60; + const startTime = Date.now(); + let fd = null; + const isAlive = async () => { + let pid; + try { + [pid] = await this.readJsonPromise(lockPath); + } catch (error) { + return Date.now() - startTime < 500; + } + try { + process.kill(pid, 0); + return true; + } catch (error) { + return false; + } + }; + while (fd === null) { + try { + fd = await this.openPromise(lockPath, `wx`); + } catch (error) { + if (error.code === `EEXIST`) { + if (!await isAlive()) { + try { + await this.unlinkPromise(lockPath); + continue; + } catch (error2) { + } + } + if (Date.now() - startTime < 60 * 1e3) { + await new Promise((resolve) => setTimeout(resolve, interval)); + } else { + throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); + } + } else { + throw error; + } + } + } + await this.writePromise(fd, JSON.stringify([process.pid])); + try { + return await callback(); + } finally { + try { + await this.closePromise(fd); + await this.unlinkPromise(lockPath); + } catch (error) { + } + } + } + async readJsonPromise(p) { + const content = await this.readFilePromise(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + readJsonSync(p) { + const content = this.readFileSync(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + async writeJsonPromise(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} +`); + } + writeJsonSync(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return this.writeFileSync(p, `${JSON.stringify(data, null, space)} +`); + } + async preserveTimePromise(p, cb) { + const stat = await this.lstatPromise(p); + const result = await cb(); + if (typeof result !== `undefined`) + p = result; + await this.lutimesPromise(p, stat.atime, stat.mtime); + } + async preserveTimeSync(p, cb) { + const stat = this.lstatSync(p); + const result = cb(); + if (typeof result !== `undefined`) + p = result; + this.lutimesSync(p, stat.atime, stat.mtime); + } +} +class BasePortableFakeFS extends FakeFS { + constructor() { + super(ppath); + } +} +function getEndOfLine(content) { + const matches = content.match(/\r?\n/g); + if (matches === null) + return EOL; + const crlf = matches.filter((nl) => nl === `\r +`).length; + const lf = matches.length - crlf; + return crlf > lf ? `\r +` : ` +`; +} +function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); +} + +class ProxiedFS extends FakeFS { + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + resolve(path) { + return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); + } + getRealPath() { + return this.mapFromBase(this.baseFs.getRealPath()); + } + async openPromise(p, flags, mode) { + return this.baseFs.openPromise(this.mapToBase(p), flags, mode); + } + openSync(p, flags, mode) { + return this.baseFs.openSync(this.mapToBase(p), flags, mode); + } + async opendirPromise(p, opts) { + return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); + } + opendirSync(p, opts) { + return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); + } + async readPromise(fd, buffer, offset, length, position) { + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + return this.baseFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + return this.baseFs.closePromise(fd); + } + closeSync(fd) { + this.baseFs.closeSync(fd); + } + createReadStream(p, opts) { + return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); + } + createWriteStream(p, opts) { + return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); + } + async realpathPromise(p) { + return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); + } + realpathSync(p) { + return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); + } + async existsPromise(p) { + return this.baseFs.existsPromise(this.mapToBase(p)); + } + existsSync(p) { + return this.baseFs.existsSync(this.mapToBase(p)); + } + accessSync(p, mode) { + return this.baseFs.accessSync(this.mapToBase(p), mode); + } + async accessPromise(p, mode) { + return this.baseFs.accessPromise(this.mapToBase(p), mode); + } + async statPromise(p, opts) { + return this.baseFs.statPromise(this.mapToBase(p), opts); + } + statSync(p, opts) { + return this.baseFs.statSync(this.mapToBase(p), opts); + } + async fstatPromise(fd, opts) { + return this.baseFs.fstatPromise(fd, opts); + } + fstatSync(fd, opts) { + return this.baseFs.fstatSync(fd, opts); + } + lstatPromise(p, opts) { + return this.baseFs.lstatPromise(this.mapToBase(p), opts); + } + lstatSync(p, opts) { + return this.baseFs.lstatSync(this.mapToBase(p), opts); + } + async fchmodPromise(fd, mask) { + return this.baseFs.fchmodPromise(fd, mask); + } + fchmodSync(fd, mask) { + return this.baseFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return this.baseFs.chmodPromise(this.mapToBase(p), mask); + } + chmodSync(p, mask) { + return this.baseFs.chmodSync(this.mapToBase(p), mask); + } + async fchownPromise(fd, uid, gid) { + return this.baseFs.fchownPromise(fd, uid, gid); + } + fchownSync(fd, uid, gid) { + return this.baseFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); + } + chownSync(p, uid, gid) { + return this.baseFs.chownSync(this.mapToBase(p), uid, gid); + } + async renamePromise(oldP, newP) { + return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); + } + renameSync(oldP, newP) { + return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + async appendFilePromise(p, content, opts) { + return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); + } + appendFileSync(p, content, opts) { + return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); + } + async writeFilePromise(p, content, opts) { + return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); + } + writeFileSync(p, content, opts) { + return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); + } + async unlinkPromise(p) { + return this.baseFs.unlinkPromise(this.mapToBase(p)); + } + unlinkSync(p) { + return this.baseFs.unlinkSync(this.mapToBase(p)); + } + async utimesPromise(p, atime, mtime) { + return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); + } + utimesSync(p, atime, mtime) { + return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); + } + lutimesSync(p, atime, mtime) { + return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return this.baseFs.mkdirPromise(this.mapToBase(p), opts); + } + mkdirSync(p, opts) { + return this.baseFs.mkdirSync(this.mapToBase(p), opts); + } + async rmdirPromise(p, opts) { + return this.baseFs.rmdirPromise(this.mapToBase(p), opts); + } + rmdirSync(p, opts) { + return this.baseFs.rmdirSync(this.mapToBase(p), opts); + } + async rmPromise(p, opts) { + return this.baseFs.rmPromise(this.mapToBase(p), opts); + } + rmSync(p, opts) { + return this.baseFs.rmSync(this.mapToBase(p), opts); + } + async linkPromise(existingP, newP) { + return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); + } + linkSync(existingP, newP) { + return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); + } + async symlinkPromise(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); + } + symlinkSync(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkSync(mappedTarget, mappedP, type); + } + async readFilePromise(p, encoding) { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); + } + readFileSync(p, encoding) { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); + } + readdirPromise(p, opts) { + return this.baseFs.readdirPromise(this.mapToBase(p), opts); + } + readdirSync(p, opts) { + return this.baseFs.readdirSync(this.mapToBase(p), opts); + } + async readlinkPromise(p) { + return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); + } + readlinkSync(p) { + return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); + } + async truncatePromise(p, len) { + return this.baseFs.truncatePromise(this.mapToBase(p), len); + } + truncateSync(p, len) { + return this.baseFs.truncateSync(this.mapToBase(p), len); + } + async ftruncatePromise(fd, len) { + return this.baseFs.ftruncatePromise(fd, len); + } + ftruncateSync(fd, len) { + return this.baseFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.baseFs.watch( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.baseFs.watchFile( + this.mapToBase(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.baseFs.unwatchFile(this.mapToBase(p), cb); + } + fsMapToBase(p) { + if (typeof p === `number`) { + return p; + } else { + return this.mapToBase(p); + } + } +} + +function direntToPortable(dirent) { + const portableDirent = dirent; + if (typeof dirent.path === `string`) + portableDirent.path = npath.toPortablePath(dirent.path); + return portableDirent; +} +class NodeFS extends BasePortableFakeFS { + realFs; + constructor(realFs = fs) { + super(); + this.realFs = realFs; + } + getExtractHint() { + return false; + } + getRealPath() { + return PortablePath.root; + } + resolve(p) { + return ppath.resolve(p); + } + async openPromise(p, flags, mode) { + return await new Promise((resolve, reject) => { + this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); + }); + } + openSync(p, flags, mode) { + return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); + } + async opendirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (typeof opts !== `undefined`) { + this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }).then((dir) => { + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + }); + } + opendirSync(p, opts) { + const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + } + async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { + return await new Promise((resolve, reject) => { + this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { + if (error) { + reject(error); + } else { + resolve(bytesRead); + } + }); + }); + } + readSync(fd, buffer, offset, length, position) { + return this.realFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + return await new Promise((resolve, reject) => { + if (typeof buffer === `string`) { + return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); + } else { + return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); + } + }); + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.realFs.writeSync(fd, buffer, offset); + } else { + return this.realFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + await new Promise((resolve, reject) => { + this.realFs.close(fd, this.makeCallback(resolve, reject)); + }); + } + closeSync(fd) { + this.realFs.closeSync(fd); + } + createReadStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createReadStream(realPath, opts); + } + createWriteStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createWriteStream(realPath, opts); + } + async realpathPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + realpathSync(p) { + return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); + } + async existsPromise(p) { + return await new Promise((resolve) => { + this.realFs.exists(npath.fromPortablePath(p), resolve); + }); + } + accessSync(p, mode) { + return this.realFs.accessSync(npath.fromPortablePath(p), mode); + } + async accessPromise(p, mode) { + return await new Promise((resolve, reject) => { + this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); + }); + } + existsSync(p) { + return this.realFs.existsSync(npath.fromPortablePath(p)); + } + async statPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + statSync(p, opts) { + if (opts) { + return this.realFs.statSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.statSync(npath.fromPortablePath(p)); + } + } + async fstatPromise(fd, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.fstat(fd, this.makeCallback(resolve, reject)); + } + }); + } + fstatSync(fd, opts) { + if (opts) { + return this.realFs.fstatSync(fd, opts); + } else { + return this.realFs.fstatSync(fd); + } + } + async lstatPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + lstatSync(p, opts) { + if (opts) { + return this.realFs.lstatSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.lstatSync(npath.fromPortablePath(p)); + } + } + async fchmodPromise(fd, mask) { + return await new Promise((resolve, reject) => { + this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); + }); + } + fchmodSync(fd, mask) { + return this.realFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return await new Promise((resolve, reject) => { + this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); + }); + } + chmodSync(p, mask) { + return this.realFs.chmodSync(npath.fromPortablePath(p), mask); + } + async fchownPromise(fd, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); + }); + } + fchownSync(fd, uid, gid) { + return this.realFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); + }); + } + chownSync(p, uid, gid) { + return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); + } + async renamePromise(oldP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + renameSync(oldP, newP) { + return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return await new Promise((resolve, reject) => { + this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); + } + async appendFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + appendFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFileSync(fsNativePath, content, opts); + } else { + this.realFs.appendFileSync(fsNativePath, content); + } + } + async writeFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + writeFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFileSync(fsNativePath, content, opts); + } else { + this.realFs.writeFileSync(fsNativePath, content); + } + } + async unlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }); + } + unlinkSync(p) { + return this.realFs.unlinkSync(npath.fromPortablePath(p)); + } + async utimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + utimesSync(p, atime, mtime) { + this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + lutimesSync(p, atime, mtime) { + this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + }); + } + mkdirSync(p, opts) { + return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); + } + async rmdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmdirSync(p, opts) { + return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); + } + async rmPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmSync(p, opts) { + return this.realFs.rmSync(npath.fromPortablePath(p), opts); + } + async linkPromise(existingP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + linkSync(existingP, newP) { + return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); + } + async symlinkPromise(target, p, type) { + return await new Promise((resolve, reject) => { + this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); + }); + } + symlinkSync(target, p, type) { + return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); + } + async readFilePromise(p, encoding) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); + }); + } + readFileSync(p, encoding) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + return this.realFs.readFileSync(fsNativePath, encoding); + } + async readdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + readdirSync(p, opts) { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p)); + } + } + async readlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + readlinkSync(p) { + return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); + } + async truncatePromise(p, len) { + return await new Promise((resolve, reject) => { + this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); + }); + } + truncateSync(p, len) { + return this.realFs.truncateSync(npath.fromPortablePath(p), len); + } + async ftruncatePromise(fd, len) { + return await new Promise((resolve, reject) => { + this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); + }); + } + ftruncateSync(fd, len) { + return this.realFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.realFs.watch( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + watchFile(p, a, b) { + return this.realFs.watchFile( + npath.fromPortablePath(p), + // @ts-expect-error + a, + b + ); + } + unwatchFile(p, cb) { + return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); + } + makeCallback(resolve, reject) { + return (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }; + } +} + +const NUMBER_REGEXP = /^[0-9]+$/; +const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; +const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; +class VirtualFS extends ProxiedFS { + baseFs; + static makeVirtualPath(base, component, to) { + if (ppath.basename(base) !== `__virtual__`) + throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); + if (!ppath.basename(component).match(VALID_COMPONENT)) + throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); + const target = ppath.relative(ppath.dirname(base), to); + const segments = target.split(`/`); + let depth = 0; + while (depth < segments.length && segments[depth] === `..`) + depth += 1; + const finalSegments = segments.slice(depth); + const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); + return fullVirtualPath; + } + static resolveVirtual(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match || !match[3] && match[5]) + return p; + const target = ppath.dirname(match[1]); + if (!match[3] || !match[4]) + return target; + const isnum = NUMBER_REGEXP.test(match[4]); + if (!isnum) + return p; + const depth = Number(match[4]); + const backstep = `../`.repeat(depth); + const subpath = match[5] || `.`; + return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); + } + constructor({ baseFs = new NodeFS() } = {}) { + super(ppath); + this.baseFs = baseFs; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + realpathSync(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return this.baseFs.realpathSync(p); + if (!match[5]) + return p; + const realpath = this.baseFs.realpathSync(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + async realpathPromise(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return await this.baseFs.realpathPromise(p); + if (!match[5]) + return p; + const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + mapToBase(p) { + if (p === ``) + return p; + if (this.pathUtils.isAbsolute(p)) + return VirtualFS.resolveVirtual(p); + const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); + const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); + return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; + } + mapFromBase(p) { + return p; + } +} + +const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? URL$1 : globalThis.URL; + +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; +const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3; +const SUPPORTS_IMPORT_ATTRIBUTES = major >= 21 || major === 20 && minor >= 10 || major === 18 && minor >= 20; +const SUPPORTS_IMPORT_ATTRIBUTES_ONLY = major >= 22; + +function readPackageScope(checkPath) { + const rootSeparatorIndex = checkPath.indexOf(npath.sep); + let separatorIndex; + do { + separatorIndex = checkPath.lastIndexOf(npath.sep); + checkPath = checkPath.slice(0, separatorIndex); + if (checkPath.endsWith(`${npath.sep}node_modules`)) + return false; + const pjson = readPackage(checkPath + npath.sep); + if (pjson) { + return { + data: pjson, + path: checkPath + }; + } + } while (separatorIndex > rootSeparatorIndex); + return false; +} +function readPackage(requestPath) { + const jsonPath = npath.resolve(requestPath, `package.json`); + if (!fs.existsSync(jsonPath)) + return null; + return JSON.parse(fs.readFileSync(jsonPath, `utf8`)); +} + +async function tryReadFile$1(path2) { + try { + return await fs.promises.readFile(path2, `utf8`); + } catch (error) { + if (error.code === `ENOENT`) + return null; + throw error; + } +} +function tryParseURL(str, base) { + try { + return new URL(str, base); + } catch { + return null; + } +} +let entrypointPath = null; +function setEntrypointPath(file) { + entrypointPath = file; +} +function getFileFormat(filepath) { + const ext = path.extname(filepath); + switch (ext) { + case `.mjs`: { + return `module`; + } + case `.cjs`: { + return `commonjs`; + } + case `.wasm`: { + throw new Error( + `Unknown file extension ".wasm" for ${filepath}` + ); + } + case `.json`: { + return `json`; + } + case `.js`: { + const pkg = readPackageScope(filepath); + if (!pkg) + return `commonjs`; + return pkg.data.type ?? `commonjs`; + } + default: { + if (entrypointPath !== filepath) + return null; + const pkg = readPackageScope(filepath); + if (!pkg) + return `commonjs`; + if (pkg.data.type === `module`) + return null; + return pkg.data.type ?? `commonjs`; + } + } +} + +async function load$1(urlString, context, nextLoad) { + const url = tryParseURL(urlString); + if (url?.protocol !== `file:`) + return nextLoad(urlString, context, nextLoad); + const filePath = fileURLToPath(url); + const format = getFileFormat(filePath); + if (!format) + return nextLoad(urlString, context, nextLoad); + if (format === `json`) { + if (SUPPORTS_IMPORT_ATTRIBUTES_ONLY) { + if (context.importAttributes?.type !== `json`) { + const err = new TypeError(`[ERR_IMPORT_ATTRIBUTE_MISSING]: Module "${urlString}" needs an import attribute of "type: json"`); + err.code = `ERR_IMPORT_ATTRIBUTE_MISSING`; + throw err; + } + } else { + const type = `importAttributes` in context ? context.importAttributes?.type : context.importAssertions?.type; + if (type !== `json`) { + const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import ${SUPPORTS_IMPORT_ATTRIBUTES ? `attribute` : `assertion`} of type "json"`); + err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`; + throw err; + } + } + } + if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + const pathToSend = pathToFileURL( + npath.fromPortablePath( + VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) + ) + ).href; + process.send({ + "watch:import": WATCH_MODE_MESSAGE_USES_ARRAYS ? [pathToSend] : pathToSend + }); + } + return { + format, + source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`), + shortCircuit: true + }; +} + +const ArrayIsArray = Array.isArray; +const JSONStringify = JSON.stringify; +const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; +const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); +const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); +const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); +const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); +const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); +const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); +const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); +const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); +const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); +const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); +const SafeMap = Map; +const JSONParse = JSON.parse; + +function createErrorType(code, messageCreator, errorType) { + return class extends errorType { + constructor(...args) { + super(messageCreator(...args)); + this.code = code; + this.name = `${errorType.name} [${code}]`; + } + }; +} +const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( + `ERR_PACKAGE_IMPORT_NOT_DEFINED`, + (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; + }, + TypeError +); +const ERR_INVALID_MODULE_SPECIFIER = createErrorType( + `ERR_INVALID_MODULE_SPECIFIER`, + (request, reason, base = void 0) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; + }, + TypeError +); +const ERR_INVALID_PACKAGE_TARGET = createErrorType( + `ERR_INVALID_PACKAGE_TARGET`, + (pkgPath, key, target, isImport = false, base = void 0) => { + const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); + if (key === `.`) { + assert(isImport === false); + return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + } + return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( + target + )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + }, + Error +); +const ERR_INVALID_PACKAGE_CONFIG = createErrorType( + `ERR_INVALID_PACKAGE_CONFIG`, + (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; + }, + Error +); + +function filterOwnProperties(source, keys) { + const filtered = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (ObjectPrototypeHasOwnProperty(source, key)) { + filtered[key] = source[key]; + } + } + return filtered; +} + +const packageJSONCache = new SafeMap(); +function getPackageConfig(path, specifier, base, readFileSyncFn) { + const existing = packageJSONCache.get(path); + if (existing !== void 0) { + return existing; + } + const source = readFileSyncFn(path); + if (source === void 0) { + const packageConfig2 = { + pjsonPath: path, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(path, packageConfig2); + return packageConfig2; + } + let packageJSON; + try { + packageJSON = JSONParse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG( + path, + (base ? `"${specifier}" from ` : "") + fileURLToPath(base || specifier), + error.message + ); + } + let { imports, main, name, type } = filterOwnProperties(packageJSON, [ + "imports", + "main", + "name", + "type" + ]); + const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; + if (typeof imports !== "object" || imports === null) { + imports = void 0; + } + if (typeof main !== "string") { + main = void 0; + } + if (typeof name !== "string") { + name = void 0; + } + if (type !== "module" && type !== "commonjs") { + type = "none"; + } + const packageConfig = { + pjsonPath: path, + exists: true, + main, + name, + type, + exports, + imports + }; + packageJSONCache.set(path, packageConfig); + return packageConfig; +} +function getPackageScopeConfig(resolved, readFileSyncFn) { + let packageJSONUrl = new URL("./package.json", resolved); + while (true) { + const packageJSONPath2 = packageJSONUrl.pathname; + if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { + break; + } + const packageConfig2 = getPackageConfig( + fileURLToPath(packageJSONUrl), + resolved, + void 0, + readFileSyncFn + ); + if (packageConfig2.exists) { + return packageConfig2; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL("../package.json", packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = fileURLToPath(packageJSONUrl); + const packageConfig = { + pjsonPath: packageJSONPath, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(packageJSONPath, packageConfig); + return packageConfig; +} + +function throwImportNotDefined(specifier, packageJSONUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( + specifier, + packageJSONUrl && fileURLToPath(new URL(".", packageJSONUrl)), + fileURLToPath(base) + ); +} +function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${fileURLToPath(packageJSONUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER( + subpath, + reason, + base && fileURLToPath(base) + ); +} +function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { + if (typeof target === "object" && target !== null) { + target = JSONStringify(target, null, ""); + } else { + target = `${target}`; + } + throw new ERR_INVALID_PACKAGE_TARGET( + fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + target, + internal, + base && fileURLToPath(base) + ); +} +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const patternRegEx = /\*/g; +function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { + if (subpath !== "" && !pattern && target[target.length - 1] !== "/") + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (!StringPrototypeStartsWith(target, "./")) { + if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { + let isURL = false; + try { + new URL(target); + isURL = true; + } catch { + } + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; + return exportTarget; + } + } + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + } + if (RegExpPrototypeExec( + invalidSegmentRegEx, + StringPrototypeSlice(target, 2) + ) !== null) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + const resolved = new URL(target, packageJSONUrl); + const resolvedPath = resolved.pathname; + const packagePath = new URL(".", packageJSONUrl).pathname; + if (!StringPrototypeStartsWith(resolvedPath, packagePath)) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (subpath === "") return resolved; + if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { + const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; + throwInvalidSubpath(request, packageJSONUrl, internal, base); + } + if (pattern) { + return new URL( + RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) + ); + } + return new URL(subpath, resolved); +} +function isArrayIndex(key) { + const keyNum = +key; + if (`${keyNum}` !== key) return false; + return keyNum >= 0 && keyNum < 4294967295; +} +function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === "string") { + return resolvePackageTargetString( + target, + subpath, + packageSubpath, + packageJSONUrl, + base, + pattern, + internal); + } else if (ArrayIsArray(target)) { + if (target.length === 0) { + return null; + } + let lastException; + for (let i = 0; i < target.length; i++) { + const targetItem = target[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget( + packageJSONUrl, + targetItem, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + } catch (e) { + lastException = e; + if (e.code === "ERR_INVALID_PACKAGE_TARGET") { + continue; + } + throw e; + } + if (resolveResult === void 0) { + continue; + } + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === void 0 || lastException === null) + return lastException; + throw lastException; + } else if (typeof target === "object" && target !== null) { + const keys = ObjectGetOwnPropertyNames(target); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG( + fileURLToPath(packageJSONUrl), + base, + '"exports" cannot contain numeric property keys.' + ); + } + } + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key === "default" || conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + conditionalTarget, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + if (resolveResult === void 0) continue; + return resolveResult; + } + } + return void 0; + } else if (target === null) { + return null; + } + throwInvalidPackageTarget( + packageSubpath, + target, + packageJSONUrl, + internal, + base + ); +} +function patternKeyCompare(a, b) { + const aPatternIndex = StringPrototypeIndexOf(a, "*"); + const bPatternIndex = StringPrototypeIndexOf(b, "*"); + const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLenA > baseLenB) return -1; + if (baseLenB > baseLenA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { + if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { + const reason = "is not a valid internal imports specifier name"; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)); + } + let packageJSONUrl; + const packageConfig = getPackageScopeConfig(base, readFileSyncFn); + if (packageConfig.exists) { + packageJSONUrl = pathToFileURL(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { + const resolveResult = resolvePackageTarget( + packageJSONUrl, + imports[name], + "", + name, + base, + false, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } else { + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(imports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + name, + StringPrototypeSlice(key, 0, patternIndex) + )) { + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + name, + patternIndex, + name.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } + } + } + } + throwImportNotDefined(name, packageJSONUrl, base); +} + +let findPnpApi = esmModule.findPnpApi; +if (!findPnpApi) { + const require = createRequire(import.meta.url); + const pnpApi = require(`./.pnp.cjs`); + pnpApi.setup(); + findPnpApi = esmModule.findPnpApi; +} +const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; +const isRelativeRegexp = /^\.{0,2}\//; +function tryReadFile(filePath) { + try { + return fs.readFileSync(filePath, `utf8`); + } catch (err) { + if (err.code === `ENOENT`) + return void 0; + throw err; + } +} +async function resolvePrivateRequest(specifier, issuer, context, nextResolve) { + const resolved = packageImportsResolve({ + name: specifier, + base: pathToFileURL(issuer), + conditions: new Set(context.conditions), + readFileSyncFn: tryReadFile + }); + if (resolved instanceof URL) { + return { url: resolved.href, shortCircuit: true }; + } else { + if (resolved.startsWith(`#`)) + throw new Error(`Mapping from one private import to another isn't allowed`); + return resolve$1(resolved, context, nextResolve); + } +} +async function resolve$1(originalSpecifier, context, nextResolve) { + if (!findPnpApi || isBuiltin(originalSpecifier)) + return nextResolve(originalSpecifier, context, nextResolve); + let specifier = originalSpecifier; + const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0); + if (url) { + if (url.protocol !== `file:`) + return nextResolve(originalSpecifier, context, nextResolve); + specifier = fileURLToPath(url); + } + const { parentURL, conditions = [] } = context; + const issuer = parentURL && tryParseURL(parentURL)?.protocol === `file:` ? fileURLToPath(parentURL) : process.cwd(); + const pnpapi = findPnpApi(issuer) ?? (url ? findPnpApi(specifier) : null); + if (!pnpapi) + return nextResolve(originalSpecifier, context, nextResolve); + if (specifier.startsWith(`#`)) + return resolvePrivateRequest(specifier, issuer, context, nextResolve); + const dependencyNameMatch = specifier.match(pathRegExp); + let allowLegacyResolve = false; + if (dependencyNameMatch) { + const [, dependencyName, subPath] = dependencyNameMatch; + if (subPath === `` && dependencyName !== `pnpapi`) { + const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer); + if (resolved) { + const content = await tryReadFile$1(resolved); + if (content) { + const pkg = JSON.parse(content); + allowLegacyResolve = pkg.exports == null; + } + } + } + } + let result; + try { + result = pnpapi.resolveRequest(specifier, issuer, { + conditions: new Set(conditions), + // TODO: Handle --experimental-specifier-resolution=node + extensions: allowLegacyResolve ? void 0 : [] + }); + } catch (err) { + if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`) + err.code = `ERR_MODULE_NOT_FOUND`; + throw err; + } + if (!result) + throw new Error(`Resolving '${specifier}' from '${issuer}' failed`); + const resultURL = pathToFileURL(result); + if (url) { + resultURL.search = url.search; + resultURL.hash = url.hash; + } + if (!parentURL) + setEntrypointPath(fileURLToPath(resultURL)); + return { + url: resultURL.href, + shortCircuit: true + }; +} + +if (!HAS_LAZY_LOADED_TRANSLATORS) { + const binding = process.binding(`fs`); + const originalReadFile = binding.readFileUtf8 || binding.readFileSync; + if (originalReadFile) { + binding[originalReadFile.name] = function(...args) { + try { + return fs.readFileSync(args[0], { + encoding: `utf8`, + // @ts-expect-error - The docs says it needs to be a string but + // links to https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#file-system-flags + // which says it can be a number which matches the implementation. + flag: args[1] + }); + } catch { + } + return originalReadFile.apply(this, args); + }; + } else { + const binding2 = process.binding(`fs`); + const originalfstat = binding2.fstat; + const ZIP_MASK = 4278190080; + const ZIP_MAGIC = 704643072; + binding2.fstat = function(...args) { + const [fd, useBigint, req] = args; + if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { + try { + const stats = fs.fstatSync(fd); + return new Float64Array([ + stats.dev, + stats.mode, + stats.nlink, + stats.uid, + stats.gid, + stats.rdev, + stats.blksize, + stats.ino, + stats.size, + stats.blocks + // atime sec + // atime ns + // mtime sec + // mtime ns + // ctime sec + // ctime ns + // birthtime sec + // birthtime ns + ]); + } catch { + } + } + return originalfstat.apply(this, args); + }; + } +} + +const resolve = resolve$1; +const load = load$1; + +export { load, resolve }; diff --git a/costs/.yarn/install-state.gz b/costs/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..0bab32cd93b6ff68e9127311ede51c0da1427358 GIT binary patch literal 371572 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ℜw{)uRp#Z0* zf4S2)0OX)lzD=CuSmi5K#8s&(Np+Ld?|L3*ZtHj8)=-+d@hJPuzpeGB#nB^ukY@D& z7wV-&pjyRUxeihuK+fq>Y51Ro?84XV@9A&CGtN}jAgRuKbNeC#R;d1g1I{ELivfw& z5|v%?`$2Iz`BQQ17Ba-IbYeAFwNiR@LA@1iPVU!lb%;oSZqk$Lo_vSBH4k-jcVww$ ze(%UvEJJA2X>*2@s($2WqwSMEdApA$TS>;e&9_H=HQD})nNp=8KkwpQyr4S2@VN^y~Qd%HnnE6Ru!NVycXg=P&s+e>hDy=<~+|+`>cO;(kjxHM&mKt1m zze1CCe9ha&uJZzJsCF+)TRfnzrsvX8-YVnHeRsdGf~a86O4c8b3nZ)PrvU8T1Q{8K zH8=p5-4eh?4W=InU42zOiawHQ82|B>6kFh75Wnnh99Kr`v-+)kjl&)(jAH$))FXd3 z+;_;$;AB2=mPxH|3dQ)+BCuKhCA|wd7Xv zRHU^e5ukK;+_&u}turiELI0dpLJtv0By-vA+CMp};Qc3A%5K`*kNgU$hsRK6TAUk# z-i~(H^EBP6k~Qh#-zpBa4eaiNWFe9vonLedf1C;cigl9&*oSfyAn|fk&Z)`nnvvjn z^JfueC z8tbz|kfFR(I>qm$UlkwoXjbFZn{GV@`U`9hI8qt4OhAUb?5vQ;dBR}p4dBKvB@7%b zCmvUJv@5yweo1x$ltMXGpZKII+v2rRv<((FhY7^gn*fA?|q_Q+om?NNi1!4TAY^9LCJ0;TW+FZTMHL%a24Hrms z{#i_TzU0n7uSgXna`B}#P^rOptnNoYynPp@^x!p>tl;93onxibFxuR3C|iqkoteJE zAD!C0D!%u<(G#t5b0(#%8sUXUl!^9g*JLl$cA=pAReHos_5lOv{HHrsITwEcV`9_U)>B+vK$`8DMzONLk1{4r8? zR}`0KQXj~Sh&Gkwx11jV1}cxC-!IwelYik=si719R4z2X#6FX&ksz=R_Ly#vRXx|q zMha`_$klYE1z_I1(Cv2BP(gf|#W*ybe|4OH#xD<>Oz`Mw}KLy-}EI_5@r?odHOoEtuA6HGb&emt6&`&9A@z*1a zUN)Z{yg(hp89x%@f%^m?mBAfIC@LPBez!_DHO$&>(|_!uRyhP#aV4Z}`E{?R04}Z& zJjsD>0@=8*rTXfUp`i|GAAH3}eMx6TC>==Tm+I{-gj@2VmiA?HNYv3x(X(K0#v)v1 z%4tAJeiT2YIT3E=9ldjaO1xElS(fP=u%c!J)sOn#{Q+48eclxnUPUyqKP+d&l|A@a62rW;)*2al=LKLOtsp015bWANYWWb9sOnwlu_ z1-JwDDvrZOjy@OLHa4$P9gSRv`Ao+)$KRYPvb zn(-p11HLO*94~Oho9k3ys9mUtu*{EPWm#VLW*vZbh0lu1H{Lja^A+Ni?gZ$TPyjhg zYbEVDlB!t>ce&M3rS5~MoN_6=-j~fVV~*p9S&h3d4`;Xl1+-+RaSgw{_Zi{fm-GK2C=wLO*SA zf>7hNg!7GEJNplo&VeXMaI+GjR6#n_T-4w^P=y^VB_DSgWHRX0_zcdANjlX^!@}@-WZrHUZx%x`q3HbfMJf#w?}oIcT+xGZbI>t0I-d3F5I(s^lJ5$w5PZe&!6I|YQAd~S-E04 ztF7Re(k1$;L(F(Xxh0eh6#+U~u8p1wCR0FtbDp}DNP8Vcs<^^c^R;W+GZfpOAvN{n z+!R9A#*u(a#T!n}Z^-J5i%aanfYXQk zn9(TlR6TO{0Mzwp4*xn{lZ>m&iAR^}L;q&=)5wS}iaajuW*NN9?OK(QiXfAg%aW2;0@`xBWt%SxKS|h_I>~qp2DNg*^zae{=S9 z+80A=H59EnDY;~8fWd7*kcWL|3M27jZ^9ou8WjJTx=@{Qf{)8!&bz0=rCT@Y>4 zT9IWd&m;E$1IHQ5RCT;-9zsEqS!IwRSAk>yYZg%{ar$vY4JRXI1NSZQjw=SrI ze?C!@2x#k*T;nIy;^hH-M6b!NYHlvMxKxx&Xb2PA`9uJ;N?Zral@Byy%S$sE1BoE0W zube(H1ihw6v7?b51LM2fJpm5$g!0 zA`>y-8LHi;EPSw1f7ezeYQ+TSwnGFU^!+FgMA>}=HwI{4c1u$_pwQaoAKuATTl&7s zr7vl$L)Xr#L?Kllaf8=Hc71P!!k1DA2K-F%NHy-FzcN_oQV(0F#z(Ift%wv-|F)J{ zZMc9+^a(AFXf=xYZ2#3Ta3;+Z4TGpQRp=}V7*@BFhnsy{CyuTtmBT^nI6ix|=?!iL z06WHhb^N4KXf9;jdUofFH$p0R1@?)J)G0YBh5`IF5--5%JXE|knCq*v6)7cx&844D zQm@nzb@FA@@?{=yaV(-tl&%Vz=n>o1QsLYO1ip^yEK){DDe2-*wWAKmC7GG@tgW6o z;6rO+lPhaqyG4tmOXgFt zmEvsZl-JbuPyKar5_@OYEghRQP72h*!*$52G&c`rH~ooj_unNSZPjg*)pDe&!A1@( z=v1_`Z216fFY23H0W{sL-cTfID!na9Q=*ToBaw^Wp{6(m+1W4md24t&ifQnU6cgBBouFiAc`Zq~WH(pJfX~u0QB`$hc9?$l;;=g%ayLDoBCvi-gNe$;>6*RdHZY zk3>&mW(qmBzPIEbaEgR34FCuA*mO#5w{@?iQ6*9Q+S+PyP?eKc;!G6~hc6$;l8oJx zKQp#OBKTekmh*urtex^cssxiVZk6$GGqlor~uu1pUwGn7Ouok;fHc1^x2FaCo${M zEHBGywuwsMdt_rQ_oQ6H4b_clBAA9#uwbHxp--j2blfzUjo4!Mfj+Xz4sFW&C*}A6HRijOF+1b zPt!eTK_WIFbRF6BLlfEk+FhsoI74nkInHty7}Wh}&$+3%dsCPjgaQ!r8s5Z!(QVA0 z)gMh1`YQ*K%ag}W&QY|+5|eo9XFU%i;$K1-4xtJQ~hbAs_9lC>tu!_vAw#j z+HWn^j3b0F9`UoySBlLb##9LU*XpC7AUY4(Zd(bT#9#YI zJiRY%Ib4mFi(U2o7|JX2OVYOXNji9?W_{77pH^*-8B@!tdXF1e+W#m?Ib01Q9aUvb zIDX33QK52}jtRx(9rY0vjRQTUSoH?i=c!T}u;Rq*gx|~$sn!wdjZIt|9nol9 zR7{3CCcFJ|W9Q+xUP?8nwCOZP zS?Nd0+BGlY+6nQz{?qzYV&W5fQC~IJ;1!N0pw-|w>wNHBZkyiVQRP{~++hPE*3px; z^1M7rRDAcxWtBh*YU3!WOTjB1R14H5tx4}ux+E#Oo_v}PKgxf9!kLlGBpr(DTm-z8 zODsNFCCs1Gr}4$5-7N*W4o0`G*g&mIAIz!DXjayklj;b1-_0lJx8`-Io4t}s=n9w( zi>`8!j~`%xevYKX78D9Dn-Utr67J%s0Hxw-E=A?8>Np{pqeX&}Pez1Ld+bS|pjV7~ zTRcn-*R8uTsdyFvl8xyGY_j`Ed8x&R^6S)!y-3vbqt|~bmw=fTtML@!E-9&#^$x*a zlT)KUtaeVsO65EBX(9hxwAK&@GNVll9F9NxJR8}{k}e~sxMe&D31pzbFT6?CUn=}0$Pw2qZ*+=XE3W@H(pwF z`AKt09eqN6rVQK;ow}#iWFXo0(p|iN`tIDCqjAL*z3azCX@1`#FlgTR)+r;5Q2BQI zE}+-+Hzstl%Iz&Rr2(HpMX}taul8gpXB|;3``MJ@1dsiRQYaNb>04{s)?Ohk-^?X; z<(CU_R4r5DtvXdeni7gXC75mssS5-ijALT$P_=GB0b7c({*S zrgJIv$G0;okZ{}}r%Vb)PTGj|T!N$BX499M<5+AtYK8$?kXln^a~j9C8eeYZo}=d>vC*l#OIGu4 zz}%|$t2Qw!xN9U1TSxlmg@}NBlh`Eu1K4qx%D@sJm!%YEmH+#8H;vo4>^D@^lNIi| zy9)dD3z1(tK_lG9mu@!EE>jpOb<0;=4`(1 zy>69Py8W-=YX91f|M^8tAzvbmn*b@64wp8eb3Ik9f+<}D$im&`Xmf?eA9)Jxo3|3C z1)Nm%h@-Lt>RMqgRYkhwJQvtR`Ny5v!Ld>{{ZqgYz^fT+(tn%h!ynbiQ@7Mt_sq0} zWB}Nbx}QQbM(IHbboG4HqmIW2I}$?)+58qs-nuMbW6J>7){HyBhpIK4q>ocW>$bK( ziTb)@N`Kxeu!51VOr*-XZk5m)Q`;DL0KCjzGX6;!%lGcCmt<$^!Q$W|cYAlv4tNL# z&gWek>E6jjTQKsgXS4+?B@yZD+M+(iBF$yp39~$Q6*Ml1xQBww#r2^YJaDtXL+XNR#7a9!^Ty$owb#0`Wg5;K?P$7HVyj z-M3<*gb=eZPtNT?yGfaU_icFxj`3wk)*YP;s*kE3n8#7=fUI9E;VCJFP1Pp_-ipy> zNGIye*rvu#p-ejJa39^xiozb^(_1z3>CBSnSGg+la`jJ>1{HVZ+7e&+m5Q;t7DSz` zJnL^}eQx)&?c(T!@mp`nWW+bxpIY}#M;*K&$sS%0Y7$ava}ns%#O#&Us6;+V&7eer z`Sh#@;!EgvGx_2*A8>H;Xz*V+)6|DLEuVriLPSHQii;xj)!pGw5#uqhsik7^84s}8 zRkE7lS`FK|2C!9Wv9+s+{wS@YZ_TH%ZnEJLbp1<>N2+F_1GElTV7d(Txm{zA=x+Uphp{ofQ!6J@}7CsFp>kRU`&T2c}@;z-0upieM^v)$3#k6)R@yyY7-gK#= zqW+mOi&+ktOFF4tkLP5|YT^0XeDn>~%a;X8aA{D%2}*K>1{Sz%>f|Q(SGAN+%@&IT zu5?piKp|XB7u8YsDQFDHF(HBjQN}o$BHM=BSubV&6R&nZ!jt+bvp~S_+h+Naf=;w6 zyyem4sk*hqd%HA~`-se;^C)w7PfgS2{%m^ohY-zK*M%cMJor0*x_2E#aZV^>JM<%T z$wCb#0EIgt7Z_=ELm5Uyc1%vlaz}?JZ|%(EAvZbl0InD6rb4x<@|%`7+$7S>tB{Pr zK_V+?QZlzUf>Xd3(>SfG=XlDkAPcdqj90INsak+)&$5=N?=KIP`oNpg^aAT819Nss zm@~CaX;bk9z6Ag?$%vAhMd09$_LzS26N7K~rkKzvX-RE%B*{AL=G*c|$)?5L^^jKi zEwE4zmm*`k3l=l$mZWsOZh8Dr;0O0v5hSbDSI3gOg61AsoJ;w7;1Ze7_9&qGTA?7( z`UwUwr}ycUDa4n>cgu3ujvIv(B~-iHiueN5ZB}V8)A8 z-?|K46WrO*rB*ye1fq~qexzOdalzA7b?0?FdcaF|y|YPcaLIB2m_`nQkcm92W5ij> zf1{4D;}LFd{A+b#T(#szN%$N3PP@&PiCIQjE$7-DESTX6=1vV{b%uScJN6J$i~wEU z)MU*`P&#H6mHmPGNyEz~O_^K7pYK7f`UBX}8oTMv&OIaJT|@mz1$p#{9BvILJ+EV} zpNcf5Ts-f56SDQHTif^#K1#P6ezS%8rN3HY(@o$Q{OaLX+>SQ2KhLBu9qM&g{qIjG zm_0gq7#_bw1voU^7T+l9om+QX)6G&lxcXztRrxeTyGD}Oe?6fXXJN0W3$>fMyvW3o z1@dVUa=XF`#Byml?3Zr)T>$ovho7U@w8Dta?@uNQ(Xmf+EC7loP-SV?riL7!T^T2b z$l!TC_)rxEK&*C$N{9vAVd>sfsA`IGsQD*HSt|N3WL@DiP1X$;Q=&txZawN+J*q6} zPIMQEbVM891urcpUPagB(S=<*!VYXkJw%;Hiwquhkz1&3*(7eNo;lPAA2+F!%;t{v ziB#?9-U~FT3UlGuQ8e9uxolLrZKWav<7D_G} zKJv=dAm-Td&N<9Jh08A>F@MPKxcDq!X4h$sn!u`0P)uC*8Nn28pePQ#iw13E3;70A zt4jk0qDE1+U*#tS)9;aA{XqQ|yqBRBvg!)W=*u_Sraue1;y(8QXf$n0fJdn`Cj>ft zIlmw@rL%&;k$Z4~UzMdv9tQ}m8v&2vwKvBra`hRM_0MjLLrg3dh3Pwd2KUAY`XpnX zS|v5a6`PU0-Jaomego3W+o27atgCaokx4O6L?_NDXdoQa6I1hy9juWJ#2)U;+6jz} z9ui^)f$-|Z_f72rsb`ryK(&wuP+E55W3uLZkcHePIV#Qv&nCy9*u6gT!Np(Kw~V`Z zkxwRtz;RvlX+fFh|32Dx>cud>A*7?=X@}39)v0=KB`+O-aT)d)T#u&An(m*3!kAeL zj$XH<=82?qQ?%K>66I-?Dc=E<bIOu$oSwx3-H-VrP!Xq5{X8Z#fJ19Z}-* zf4i;rknE=Y)cNgcwyUWu)PQDUXFGY($H#v zdNt&g2zRQ}gHLT=?=B%UX2<8%o-7k^bXy=;KH3#*sX*3&?lla3x#s=GhP)#-v3Oas z87ydc6v2Z|)y@w2iOgYtbrqF@UMfVc6yH4@m+UH7?lmt$56MIa05=!x(g$Tx{_7vA zj%JgQ?z*K$)4~}wNQen9)u2o8uSBtAQ}(%|l-a5fYYFRol!97aj^y~E$${YC9mN8V zLM}!1!g>RI0T@S%Jn0;{C`X(>FpE{uAp7eI-BjM;)O-B3j#hXhx-O5-rDte9WjF{B zuS60L*o|#hB!i0AT-|fsi+4(xRza{zkyzBf-4)JcQABbC8G{A+YoP{l*(QEuG~^Cc z%-Z3-$A-snSZR-WECsx$!u}(Xii``opD2tw^#$h=QnTc|EoJ7V@B`qJU%(CL*(-X? z0dyz`m~;7svvYJat2#5@BCf5@J8=wP^yvP4?Dwb_bi3T+>Zu)2MKP(lMr;^^4U)Dm zE)fDKWF1op1D^~Q(A&=|QQIo9XQKAGG)iArEs zqNJ_0W7X`A2v20`%~AF8<3Wm=G=04Fgefsf4euF(b_O}{K9p~l-EaF*(^T-Y>j@ra zt_IifKJtKsV~^X*dcsQ1rtZ~XO1o9+vk-2Ss-aG`J2JaUT^~E5BR7j^rpM`yOFu;7 z3M#Ai{yBY(FQSseu?XyrUK8Efj}=I!*z-kLPqtb~$> zi2EFBky6Ez8Udg3k2}fjI21pL()78WCME7A6LaN)a(OlwQ!;%Ey3eE7*dr+u@a6o^ zRpWZUg5@j;yID0EBeWJ#!(CsqqSVy(1Q1hHSo3un| zAxX_CB^huf-ysJWNT{e?cPx1UfYf^fy6Zl&TPOYAK`7qu^Tf6$Z$&P2C)-kO5r{uM zj=5gE2m56FJs`WP6K}BE7ImhpZUot->0dBaUK_ zrF@XsIFsO_&T}=CU$%V64Il%>c{IWzv}tTtHKJ8f%#eI+t!cu_bFYLNdnk4|`S~M! zvcyazMmyxiCf(~ojGBL4n<+Ep&k6Yu!bqbkT`E&Z(fF;GOlJ%8XhfOLqm%M%t`#W( z&UcbMQuX%r6BsnUr%-a&Y891z7Tl2}53e<&(IdOI<-SB3bIK@!INafDA1< zm1ze$03w~;_7XLvA}ZWbixhIHny?@)bF)ju)cr@Q%a=!VRI;vf>ML+@IKDxH*U8}u zF_(+?#DjEmBx@Qo@*{(;>b583RK#i9Q*#{Cv<;l$ZEmaPc|Iebu8nT5KOE3IQnZZW zq&1KGL^7ek=0(7u$H}D93y-{yXfLsdqSRNW(+|f)XJ7kol-ftNC$K$8p(>G+wW5(H z@doSjxT?R1b8;!PICdjcB`^;y?{fFID`fat*R4!t08CLgmIuQHxh^%1T$L;&2uhax z#5{BBLSuL#bm>e)+@`8Kb|7{-TI}h`0PwJsdA9T|WglJX1xPQm=4HF>G1|-C@+Ql^ z0<<}&FsWZutsoIF0_AO$Qu;VLDGopt(EIAKnBUrW482!)5M66>7lpY=08ESNco7<~ zN%4QWe)7$mPQgya>X%Ur%suVljnW8o3K@3dep@9?Z4`*%{FyEJH**9(-iS*jWRBHs z#i{!2)K&!{+nQW??oIS4N<_zO0jt8Mp=IAL+AgiNbZ2U+255%dYz+yhwyZpx@s=2` zN@lYtC#O!DBZn(we4Psu5{rWUYDZ9<$q&n#)ogNA<)abhIU^~~0=cK}tq)%NOb;YL zdr!`A66bAewGyri{2@Lm4`aG%awInK{f^89$|?1!$;hhzGJ4;&IT_N(H z+dhXMt%VoYjGy91kjT9ilawr8<tx~ zcGUR1(gS#*g`-OTj-3F?5uI?V+d?B`H>>N}#B(fW>dcJgx5vaSgG~GH2y{g*ry>CklP8vr&ghx-$Rm);q zA?I&Ag%YL~i?j*`s4kBwhij}lTH4&QsX3OCdy9+R#fDv0FLBpb!LF%BgA02AD=-J2 zOkdkqHPLGU!u4OGsI-BihT!#*d8Jv1#!5uzklu6G2NUMcew z=jS-SN{XIW-{;G}n-Y=ZjU6dZ2X~oYW!sU9Dlai)@tbf$~P)d`ntz(Yl!-C`pLbw zGVzzhrnPP&x#sha45DWpv+tz{mDC^5xDvw6e&~HKTg6XKq0yr=2M69w(@>NL)lo-* z-#JbXB{!h;BxS)so8Y->Ax91bpB9}d^7y17xkf`)1}VmHM}e4NABIrvE1KnbWhK-3 zg6fD**CeS?J&qt;ZYZ(eX$A>XXHjl0iQpQF#A_)GKIQSNm=7?PbbiSsd{qer_A1!X z6i1b*dPxJ@Sq(xe?yQR*_j@~zl3?KerJHv8obw2OToxA$%cT%p0|HZ55g`CZt|JkY zih#~Z?Zy9s0Kh}*b=_Q$VCNW^!aF)@wbe#V_54i4s6QzHI6!kc^P!|`Hr@bGyW8FigASTD&i>f!JwY4$Q`h8{{cwF~Am(-m4Sat9v z1-Lw%?T}P1_NR24#8*D#3!ESsQ@d{$1z#%0oA=;TsG>88yJO1*8PuZn-W>m>Fls4$ zn6Ecig{Mp2JV|avFpS(*08ACmm$K`x1Uq{XS$-WaJU6SSq#~+a;SpMIA${i;N&w3j z6c+Oc0I7X=;NuAUNukd>C%wCs0-wABoREG!0@vMzkxriTY)_DcPca;JzQn%->t8Nr2X!-B4FQ?|v;wzbDs=2x+$W3wwoOgE{+j+Uf@Rtj<2mzM^PXkp5 z3SN^}Nm6@0;^j|t)z0&+^X4ETsM8tjotfx9r+$6IBW1?*U4`u38MGn)Tlnu;@BO)zjiqeoFb-t=3eCa6@gc9O-8q z&5o#pdj92~UN~V$A3xRUZBvPgWo7TKFF;o+wCM~akSfuI7c=cF0zxH} zgLUFKa%YK+SrNA)WBE8ZyFo!2Fnd1A%~$7nQ<$7pQV?&thE@o-|468QgHKB7q^N&; zC0C{~t&l#il3$0Kho`EZY*Lw=KfHKh^T+hdV3BVsbW4bF$jRZ@{&0z8k?TP%4O~-P z?W4TW&15=eqW-X{*m8SABmfsXhS4`A1kB zuCp(W*5xX5=T6$8^#d1fRlcbTpHE@t?QbipKsb^sG1*j|lpme!h5$B|m8i~hs?PMb zX-Dwd>vX2Y)8PXS$H>=ojO%PK)a>}f{ZmKKdhjyC195?O zvaU$(XDgzj{V*VhJ0eHh%z2SuORUQCaE>ZWpQE6qNA&OL3#M#o`w@J)#5}?<5HZYm zIQN=K6=n2`O+aFu!Yw>h4c~XszsC)0AndDz3Re-VwtNEm%uC30UsDw&U{ba5U}Ap= ze9PT63JvMvWB+2I^dB_)!o`tCSq2{;^(fSYaac}m!Hn(FXgg{N<^6X z7#4Xod`s}#kyW@Ui3G_^}qbMxQ6!mTIJ%B>(GVNo_mCqWe@XGeSVY`GMtagk=Kd-mLR&v=;a zyaWzav8*GsBcobbRbvdIp7ZoBe~=G8-P7R=8?}iFk9?fd^_c~9$MOZK(S~@I%Ix6# zaUQ!b7h=zoyDoTDiUb$?9MQN9bF!xXdkP+ztnCR`Fu(uf{wm1mat5rXDutHePyKau zE0oQ3(HwY_tX(ADkw4zl)gF25rBd3Fz)p(={H#ysr4qF9j5jYMUm1x{4GcFYW(aa411BTih7{kwbGVKha(CMhodnzcf7jw%H~~u+^-UV-11S;PihJB`XrW=q@kf| z-36$wJ)E9+K&GI0t1$*_a=LZ4tmMZFNV)Hh*;n+pn3`G>^J3+i=zi>&+vu6D_vEG_ zraMrsbLRO;rWis3qA_JH_fg_Cky#5KrvX(m3dNS`!L`vosjw|?KOI!wF!H;ac9V_^ z&DG!!J}U*XLy~3Hf9$ z)x;|4gXmDJdb4(CRT{TBuXw7uEa`i-6Y9X6OnF#uBF8)BKm zK8n7ldb%k*WRJfkLItHc_rcm*k>6mYF6~Mp;=2HNiJXo8JLIAPl#0(vH!Yr!#uHLn zYJlgqy2!RZ6Xj8N)x7~Qd|;PbMz=7TGi}CF+K!XKxhB6W)S?``lR!JCCquicH>AKrxbi(n)?Rs6I z1oUt>IN8$v)WE$R@Z>Adh+myxp|DYq zgZf%kS+LZ${jFu5buSTeQ=@URPvs6fdUB6F=^^ntI3*Z9T;uxW4HVu=zdVU^D0XyF z)0Cq$Xx56C>Uk(Cuw-%Z_O?tuTl&0oZoJx%_Lg{M`kK88F}`+4_yItV_vo7RariH; zOHp8n=FpvJ7sc9G=MLi2;CYX6H55Wt_KSaf#qF+1eHo8xRE^$7m6sX zQ{6gL=DdSf3l$J0H7|(NXv`_%cDoF#l#v6kON%JrJ~u}IPe8E0k^iUPk5fsdDf(~Q zd`R2w;S%(z?kq)A+oP&cS&fc*nGQ|6{Y9PzFx7qUtR#c|f1MdYGDmGkVn4-?RJBj% zW$FM>2U$o`61P{QM0LPBM+kh;!&iovca(t!nz$XXZS#ASt3^~M?R|26zs_OXAfr3v zPs*!FtxnDS?By^{xg{Gh>a|&;ELkIR=B2VKi%mi2hMd&{MU~^1LVyV^jz5qopVO^^ zHS=-7&*4dVo;QXgt~E>J5K=Yp7QvC?v}jPEBDCA1kK@pz2y{~(1k^c`R0;CPEqGJ7 zs>*o#@&6QAC{zhkl@p#|>{(N=X<4KL9-o{icE9fDH96&O!1G`QgG6EubocC&`}76i zO>*@V&(Q(z4iglxstQH&wzQRZ@uO>!sKtluDGQZ1@#Ch`Xnx5q|NWGT$lyugWVLHK zOx%z+JhW=A>ev$+>_YRkZc8U%d2@C{5~?ADqb{Y}u!U1lw(UM1U+2=_$*V@xS5*3; zj8=3-YV>6CZ_t6`hzEe<^ixgo_xpCTSOf?R-mtWncQ~gTp!4Hq=zWw?ND^O)xpql&5bGph zyib5PklhMDS~c9%Z=bT@LNrfDGSuvOZOdAzgW{WbQcA`1?k&U<3Hty->@Yt{)pteE zY{iX$3W}t@A!c|PNEB-!A?ox3R3XQT9y4V)%!XIzj9}(Ru`qh$QskUR>0P%l*+LiaDAZKkV;REdz5M%+PzKC+N;T~ zYdQ*;d@4CR9^IMHr|-L>1}EZz3(=(RpV9JC8Aq$xRl9t8$&`dRFi%s~%gXw;t4V>u z3x2f^q|oPv1MM#9lH4~^FULlsPxt3Rb3SKG<9$qV`fc0%WiV&{N*Bk zCV#xDM~qjVtZF*E)E2Z;HG;vT*+vI(;BgOZ8LRDPRg1Q+fze(P+AG*D)Sr06D!57V zR#5jMO}-ZgRhn`O$tbC;_d|H;%G?K!sSe$9jnKmW>`DJt2h2qYEVnc;P~D-Y>yA%&?H$Yk7T$z3ObVcH7DS6wa&Y{mOx&L(*YUT zk5MsqD@%LFhA}A1#-|FpU{G~d39c^Q_fp(&`2eu#cCEUpbzDgjIdKqTq`-q3%Zw>0 z8S`cBK|xTtNT}pNQPsV^Bw!;y%695U$-|ei7IbSyR-v>ltuC+Vvp&hJA}{qC#t))| zETpZL?`sbfD4k^WoDzEG@4p7HA~I$ggH2eeDp1F5SB7#w_P*9|k4Cfj?7n4xUv>KQ zF`Xy4cw2=8?twl?637+!1#>4m-8>l=f^FIAiMEu8o<&gYgALtR>4z31k8%s(FW2?* zrNiB@GIGI#GxfdNF=h4YUV;x1u@k1b7C`coy`mDc-F#AATCK;agI+Kl_0i!*g|p2p z`Y@>VkdnsC>AyeXF%%dAz(Fku!q%u(-6qF9Hog?sG|)`7I?KGhr;lC;+_n8^EUy`{ zez?X&a46y9Q4+j9K%*n9rYafKydEPL3EW(_txQ7Sr$;Bg*aoLea}mtw>RE|Itl7Om zixg6B#kE03gg$p)Ij;5^01d@TI1R#vZiXZyfYKK>7du>oGWVcxKj*6#(Qs)piZ41lk8?jCLl;bDlR|Jxxg4SuuY_yE-s zQ&mor-l)n9m?*DMu+x=xEQOLERhTZ3(;ulL^aFA~?pq3%k+19W+yG`(dXz>^_*-&f zRWT2~z5K#CRh8XoDwl`hIHARVG(IRxgw~9!9dF;JV%!*2R=X%g&$N z2EH$l@pWaKaydFqmkN+TprJ0@P~G1(V7te}2TfR1V-s&ErIO?g_h5rlc5t?wKY<5z zdc49)j-Z!i^~kz(;#nj&Wc3h$PL#QnAxXY8Z)7k1*e$fSg1kvhN01VcHUIo)T=(ge zJB#veA#5YHJPX`0!r}!+HW`Q2N&$MD zfJqXpO{tyRsaWJIjl*RQ%{h1&pPg-hg;#@!r0QD?@#c5{cb}caCcyB1yNyTjO3(rf z072yahoIiBHj_!-NlyW4U6-RI{mS7<2Mn3)=4yMui_qLvGMGltisAAyDQ`I`;%<=l zcqy^+b=|<5M-3&dd)n0Tk3-&vG?V5AG1=xZWA-4Vs~VtTb(TKB3r@gE=VNQQ2W0<^ z5dA76u^RZ65(n@)%xqMc4`|Znb&_pH&CrzzxLhuvg4ZUG%K$`lL*r6OhJVt_fa}3y zB@o$ha~o-Bu1mlS8Ingw70M2mH26l3vd#c%7nNPXzto-vL#&^f!cjVSs`EwBo#j@? z&f;`0xjg#fBUvSk67DDQNES=ey80=u=K%h|2`c0AXNz`~iu$j+Db%bmc~iTHD86l|9)5LkP4bHD z(uvg;Hp9#8juu5w42;RHb^u%=B`)2%A1YQjIX+#{YxVfJNorjm>0EJBsH&W!$wqe# z^*dUlzm11P{bQj?rCYT38J|q(qwaYFK#=6aW5ZqoP%8p75iuknYy`|Ftjfou#Mo)C z%t9Hx6G)`ylKVltN$}SibxmX83a@Z={93FF%DB9b<7aI}BnK+?59U+ZNjkhgV>ub= zc0k?$ZuaCv1Vl7aQ+A;J*<~RQ+EnOSEf3B?A*gyPFU}1W)N&&k=CxkE?)?yC|5#hd4sipq8`z0|nlm&fCGj z;=E+df*e+D zvwDB!Ao3Q;WU2>V*1dNKX^-eHT%Hpmm*$eK5#u#g0ow6(vedPvcV`e9icUImZm%^5 zH<_2PgAuI6+dZ$WI%JeiZZw+wcqWiq4U5sGdE4GYr9pQYF6dJ z^<5GgwSt8Fi}<3d;7`|0RObdWxW#G5k+<7oJoR?)yfXQ1ii?CT1K8p-u{^V8DbZakAvdh}B?N9gx{{?P zslfriHZ)``ZCKoncYDC~e4V*eWUt`~AY+c(uOp3L8UXqmiP%IdK(=iMMt*Tt=oWkk zfOT<)0!*CcZr1g1OfE^oOK-kb+&@=U+Xc^_$oo^B6iIiY{c?f&dCMbY(zp5`N@FXf zJ71~3?{8^IO9a9awY(dgVY*<;mnYSv3ul3w-pYb2qqqiAil6cZ01AAX`_*Zt>j+}6 z^;x6{jU8Xx$Sxd_0<2fnkHYlo$zFc{=)xW)6YH%7LtC4UA$DDJ-54GJ!p#*nt3aV47|Mf?i4{=oeBlb&*ct`8qItXQ1Vi;%hfNh z+83>im0}*4?J-_M@!40EGY~|wO~r8t_!^4Yghd5CK<6V7OOyoTh1V4eFm8E)AxKFS z^smdp`r;%t-{mgbfWD;6UXA~%k$6ASd$W=6asYq#b7{TH+?4>d<34cAUCx>-mDJyZjQffc@@Wb*W9O>K$z4@g>Q%uE}Ugf`li~I_mL?<6ZlN{$z zC0kJxxsQ5Hy9WuNFG|Mi4PjaPN!T>abNV%t+aBf5%CD*G|Jexv_|2v;SerIF-GQ)0 zrEoWwos7{J-H<&b(0J2LDP z-Hj+ex~a?^-{~(?vm5AE9K&;q_Uc*#4oRkZwp-DB&fL=0rtVYsj9OFi35gb0Q2%YM zEiH>)?v}e;Kf!*-Dxa(JV0T~`p?wZDV%H67(t-7M{AMhmrk2w^lC3qWm-qc{&ZsNc zuC4LBKreS_;-*{XzjJ>T-L1Ha6H2h8{>Y&59&YP9&lrz^CmJPS@Sr8(*WZe#MyR|D z&WV%V-1d_kR~ArgDqUe^i$rH{S>UJpa@~L{O&luTKw~uGXPP~jG#ZdX&uA4~=cvRqYd;@}~xRA)$ znn)siK}J^v^Z@mo$mu9XMvJB&*F;wf?d&c=k5(&=cz*^aAPjkZz%8E2urA^TbXh^f zkS-6RxqFzY*Qf)|R{Sy(X{%Olqy)t_Nn7>S8569}-`Ic(OF{s5iWQAsG`!Gwrtsu1 zkIkWm`BWP$no;p1^almgI9I>8IBv>_kcbMmYR%kbz-g7&H~jSUCA~CJ844dFxAS#Jtjxp01aMrc9-HNZcCoxrTG!;`Vqar>ym%FwH)BQ zhF3RfO9AKQmP+^4*q=!)oE*2RR+oB$xqi_}J~}am4L} zJSCJ3GdP6E`82kO@!vwTE~)$6Xe_HW^PCLQq}VC+s|& z<4SDpp&KD1$3pQ5luCjxH(6vTRRXq+F3ag(*Yiu{8ap1-$B~`B7DeX`F{W6y6#a%*~T_yGXNV5=xSD9bNbgF&hVggO9t5K4n&UU!OkG312sYqExZ241FkZZG^CHQkV9Nf56`YE4|k*; z62Kd0UNM9Aqjr&(ESZ9MdSU^KJM<~D!bMn3uN)<@2pBn55lP-z7O4Y`E9tH$v1a!D ztea4~pmL%cCA@aZp=9c`1B_fp_uI{}qdsJzXkR`LVdkYmQ-syV4ex~s$P zPb0oV08*M-e;n?3mz_posV+A+Cu!{WZjE$7p)P{ds)T*7mncnY72*918FuQ=lJB^? zT{lmyktEifdM`Euf8XP zD(2kV*(Mn!7{JQ+ey%5MD;oVqZxs&S8f&2Qb9raiV4*2G9^m`^_>g?hMSeaZjQpuD z>$(u1@6AmqSnZ>=1qNaggE&~+UNKtzeiJ?kyW!-_;n%cVS6g0%Us>viUbf%_>fJ_t z%SFHK15R4{p03ZV+6&jbhh)>XAi=qp5d1;&I|L+=%O8H%bUJ@WKf#5&`JU(c<7nI~Z`^_jQ$5>1!EAdT(Ym zJ%^l=PbQJo_pqw@DM1v4SC!=G<^u_>+PcN@wkwbce&D!m84lr$Z7oY;qMYR8G$4 zHeaIh-xoo_m0wj$Msp}JVnt&`rCObbaX?<>moybuN-`X6qb~7 z;z6=50az$qPlY%5Lm<>*NPhM6;5Si->Kn`l>l`US>+8;yo;>+y{3Y@FBGHitxNkXF z(>9=pMta;>*a7G`@^^Igw^@28a8=TznS82XMpGl#{TUVWhC*keU-ic2F*FJYS87I- zKM%ozz(~?qC*p#3EL)`?vLj_dtXafw6)D$CathdhRJ6gtL&8@X;0*v0AJ&#n6@%D9 z$eMIgWdjEsQvv^hQ>Us92Sy`PJ4M+xzNkvY%j@4q_yZj`)uAXuQ{0iGkBXAMg~zS$ z4^_&e_3UxQW%UWZx$PH8`P69}AYHbz8-;^!Di|uT@Pa41@=p2Eg9<#o*Jo#Dy6%-U zGUvup&QRQj>(&>tuLQV9A~glU2>SIqmB*B4AmIwwTe)yNKgW1V7y94^(3_V&IhNXa zgtP(Q*d0f$o0p;Tc3Hblx3IFKd>8dq)Gj1Ion=JOyla(y?PT+#?V_YYY19?;sm_~Q zYnpr8)VG87SXqAV-;Vl{0Uv=`a0m(BuLWkx-$iBTwCfaQBni=+1CF757%fD9OX~VE z#YcFRW0Q`p`HX$vcTs~c^WZibqr3B|fWYL4J`ZhNCMf>D)R2>?& zD?PqfXstRuo76B4dQ;FJm$Gr7uH}+Se-$Bfm4XNVX#ll(|3p>*T#+{R#Bu!J>p>^W z+4uFuQx}%+D9ZGz)=wJT1b9MQtXJ6ly8Ks5lJvCT-C)|PuF_One=Xfn9V0(k!Bn0O zH(AEX=N_4$v&7nq9=F=(>L~EVS*SgH;aqKfGFL^lr%&ZLaG(w}a^u~dSl}d5+ba|x z=}>d23k!~1Zn-73w?gq>!WS8Hzh${50ld`dNih_6G0w+T(vsndos{<%7v3B_)OK8) z&_7Q|Ix8I5Sk!S+<7c)FwHQ^C~jeB$vmb0#E0X0AP2h1Kw#X5k1Hqof779 zt0)lbZgWLBDieuYM(rrpq_!fKT$hG9$~00PUdF1*ZFOY(!8_88*mvvq%1*(s*EhCd^9nSf8 ziRAtpPk{g=qwG^i=vxxO6=&NLI`W7`Q9DyE(r>-dnx=5wuEw$T@(u-3KyO+CUCI)T zrii%BG*Y#)Nf|8p$xk9%ag#XhZfx?TDHpEL=+VWFFHKI{T?cNL^imFin+E#Y(}iZ~ z4f+VVC|ob6EqYVpP??LA?P0=jxt@ef-5 z?Lg{z1V-{K06)#0`cDWaO>Kt;(=Ac>qJF-V+er2liIDOuZNyiX;p;8WySVE!>rgq_ zDX^lMnp|8unUnBUYMDI=T{9r!x9a`Be+tK1ii|!iYF9hQHV?uReu z)YR&VVcfb@=^Gn%LNW!Wt`Z@}44MMoa&1Xvjy&eABe@D9ifK(7Ij0VZ#H-xl&86A`iF{w|h<6C6`ijt&#iDIBxc*fW3KWfz<_y~3xm189# z=qjR(&!dRuZNt3wyPEbi0shoZaD!3L`ZeU(a+_RBP}yF!+>fkp9wA47Y~IH@TT+N* z2sJojlZz+=ejAb(E9kKNjgJ7jIYd!eJp8O>Q-GWNz0|rNu^a$f0KCeYO=;&RrUB1X zp!Z0H1D@)WSrzaLvT=6(6O=R_XN%dkJTQgeK|EDq;k}b~W$FQOu|j`Aqu}B0x7y%q z&Z!y`zz(>o9g#`n$YGX)-m@;mpUN)J;1YZXAP0EN^-)*JML-Eu`O^AG&gi&#BH=yZ zSh?$b!lfTKfhuLUP=fnPMH&qiKb@8JArzU7$YxZhB_fygxo#@`Q-8eOHpr>{Wqs#+ zC3WRHag$>1%r|vsd2U)zMo=-y^jE=w(6T74^}Hg{yxUGftY}b^^KyFs?vY}%O^`Ge z<*R>s>dQfdE2@4PIt;e5$@gV!rVJWiw}q{wEVZthJWhs>auaV5zU??kB3fH!LKf%h zV(z%KUa?82|FTa-Pi`VgnI>NeP#ZLPeX+r!Dx*TJYS(N~*q3=D79s^Gb`6(<$G8^Y zy~s8s+}PH*RWwa^UuP^GdK`~!nOWq3 zs_1PW_8Ti`g=3`_B{l!6lBUcnt{#`UxzU~&kswBLNfs8p^- zavm3bN4*^=hZ|u=Pp@d4)NS){+^PdS6D*sEh_Z*>bF{GLt?@e21x(-;K2_JP3~sc) za#T`ubL(}@N7A~ujd-H-An-M78&IDw2u?LP@q&*eM?zHrMfE>v-4^>Z++92yIeK(+>;(6tj z^T&JPDe?GSv-n&=AW}aB;#*LoKa+kOWzV9C&2!1dZ?W_(Q#&}y_V>7w!TNO8blow& z3I**QKkZUz@yH zojgCiYw;vp$udd z*Z~$KZP+?!M)JxXv1F`7P`hh369-55*qIsb^bpC*=XdVL{g_SVMnK@Xa3>Qb&o(sKJJWJM0Q3|yld4S@cp zn6r0x+eq@s*}PE-!Gx>&ZOc(a@siwZ$?*{m`7_AxO1BJG-p&wZW@>aQ1^(lCbV=dL zg*f#N6+a!PLj#mZasw4ZFJ9WVQ_(qt(LyLuBqXOF6-|#(qw>R}mKI8awVM@qp}W*_ zyAQ_wC3jO^Z^_6U&M=rH6@S}{_B^LZz*OhJsiqARaD8%~1S@L~MC796 zE2@8`N@yNM)ilV_lu@xV^4*es6dS6R`)j%PBxu*BY8UCWNv)rX!;?;} z@2GW1fXYL0ot~iCxim&9)AN;*-{rHCO#hs1zvlQ{)k&`saoWaImqWhjSZmorU=j_u z=F{xzy6O+s0Ii+=VvCbw!e=CR^Be7X1~ssjaPHF+AT+c=uE){R?N;%Lb#~!S6NwXU z3qkey8&832Mwv-e?VU4B{H1ho%W@r`@#4Xm+6n4cnJpvyjvJs@x;B}@P};NMnavzutEAnv!Q<9fEf%TxgNUM@;k zzTs9A4!Ek-qfmor2^vjSYQ(Ul1VeUFj5F#KkR+)H>^XKGom|ZFw)<8jz-Ja4#*f5` z$;HpW57|D|If(Q{rG~S^xT;9F)Lj?8X4n4_(9+#Lr9zW=Rc>d~2arAN43bsv-rlAu z1PK&yq9F5pZ>>FV7`-vr4jO**xm(9LwY1yezP_EogM;Dq1O6GAUIvbzj z+D&Crt+;_hDQ8|UZx+PC^?a%ZUou|aO?EH;$J`lU%Z}neb}zL8gTcUZ42JzLq3>1x zJ@h+sW~RF8|MxO&kU~-@;oL!ry*iy|y<_}p`W$8yIEaFN`kxVgi!UR}A@ zZFW8Z1r+g1Tczq`>)}$zg3qK@mX_&HCiioDWLIpW%SEa4bN!4iKgZqSE9j-l>b%v~ znO!5;Sn1^Hy3U-K6amtnLAhh)CoV9TeoZqAd>t$1CO>Ua-KJzPhC$H$@p5cXuTdrI7w|}LJ?pS)PCfy@OgDi?gRCyV+OhE@RGs}9qvq|9}N{ll%5n@e?fG)bnPp&ELE zgOKF*PRi~@45bEA8_eAzaCJ;dTepvVubfnVAt>n8b3O89V^QV*?{hB^={;N3Kcix8`2~{G0v)A=7#^W=TiBntozr(U-C*DUS-^ zRdjuJH>R2z8(FWIl>bJiysX5y)Wk}FjXHu^@n`B79_Tj2J5xD}e_6|#K|64}zBny? z6y4;V*}bS*^D4ed;l@po4$Lhjn^aA_yQ;C@45rv;?~$uL+;99F4B+YZ#wESP-Xn+N z)m&4#$V`O zZ_esFnT3zK5lS=XKe9KK-15rfmW)c0Dgcs;v#lA^^KfcPm5$c5gKfr{PZmG5^&R8- z`8k%E`h~CS$O2F?AalK`&bdI~%T29r`>P(;ZB{7ZY#S?1mLfX-fw)jRMPpg|VRl97 zawCCJTWgC&kw|fMle-Vd*=Z-AF*(P&@~6_pN|#)|b@$74E~2t;UTqe28mJqJWoL+t z*I@@sCHSKSrxVnv$kyM83)w~T&z^+et}$}f zU59k$(dbFIX$!}RtL`;g$-9FDAO|yiJcduH!h5`eAKe6WkyAB66Yi=liMCr>dL$uv zcFdJ|vLKUkh3M+@^rLLVkaMHn5($$(R zM6k+Z)YSZMJ3)1gacZ+>3zaBrdO!N5XklM<)Y}qYxGk$mz#&@8gLchB+qL_0U*x-= zEsZH$G)QF4VLnlo>fm|X6^v^&{N%4IX<03(`U0%jtZzF!GH*^YCK>?UeBX=*Wu^!N3ZLlcp%cX5M4ER)-zmha>d<2PV#FJKG?EmhLnKrwdIYRUw_CRRCspyKoO)*RWreXs;2R_@{Ip(jmiw#sw?HZ>jNJ z+D?6C+ptSZUo%3+S^9_0T$TPNEs~{;3FH`31Gt==0Z1o5ghrYYL4aZ>r!{IyHFwA9 zJV)|d32KNX^ICd*t^1??0l7+}`E;*-T{GR2$|Pcpbk;**Wn(^1E|(AKp;naA6pf=Cmzu&SH%Tv0uGhfGKuwBW&*^6sW=+DYFkCD4_$g~?87)4m`J>nE2?wV zR7OVs2S*Ci=6*<0yV?n;pwt`oqAUjI2AnyY&F*MxArS)A{MCAWl3Y8H!~ISj#Hqr6 zY;WL$@+$-Zvf%o$b$P8x6J}-0MpHmU7sWiUCP|Zn90osk>^*ZDKXqg&1Xgt)QmdWo zU6%tT5U@hR{7ve%G2B@0Amr+nEpLlJuBzXqa*-otRf_p7=L;#X zX5}|m(mh=_g-pp(6rkX*YAy3!>W*CDh@DN35gk?FPMJhfxU+yqReXj*!n{5;Ky&a0 zNW&^`>7h%s4)jvo*0B@qno6&n=rXRS>k;5~#gQ~GaF}`+4KA4b5U;=@sk;nzBCf!i&pwd?Pqmg zTsh~O?8+TfghtlTTozbGOJxF_`uO)xKr`T$=kOG-WQ}l{ApBGfJVY!!lsva@@u}67|>CEeXYrU>(&9K{{FbrOq87 zi0f$mC7zpFff}C<2WfdK9we3Rh!18>_;nxqxFPfHuq$UhVS+Q06?ntbtETN=Mm2r;%PmW*@m@& z{;+k$_2)kDS--CMoO3kAAKkQFtMJqGOEfyZpIQ1Mn3vFt=HO8R?AXG3?hR7m(A{7s2Qlo|7WKT(lwo4l<)#A8d z)G>#bmmke`lgmh)g{oiyp_a;@Cwc0wtVSElo)9tkL*%CY(* zZ-8_`jBzVTLD{R~FX?||KY|>e-TRjOMZh7>0><90o#dyDf{cfDSDAJXxYhQu{-uw0 z_MCVQ5k@PEKSAC4YPbsag7frDQ_1t= zBrNwwNm|;EQfWsW!H=;sBg?L7$0gRG!-7s3SSav0)QjWz8a5% zD&O0UR!zD1>Lwn_ah+x}chTT6AJvT;r{)RS-jRbh{%HT2#%I?_jcPe#@?mwoiwT|L zY|ekWxt||*7a8oRX`ei8 z(kMB}EiaR_Ef^&@HKrmzboabspHg=U3W8U;MNlTO;qr+$$GL8CZ8x+Zt^J192D)LF zsRVhYDtZCJT|$|r+-k<_h`_tl6cv!5RyT=)u*_p?g_9YI_e)_~HS3;0(7FV?VZFim+iDZ{>9O6lQ$P++KHWAQUCh6#61AG>5HQ5MA%83is66f(U zZM5Tqmun1aGsH}yAfe%tALZ>+cYrde5JFVb=hyO{JeQv$U?S*BR{208z5WiuY~f7? zjv@+Q>(+A(hz>FWc5vBl86{v7punwO!)sh9nze|vvNxZ1Shtpxnl($^GeH$SfjQ4j z>AxX*QNTLn$$8t2PY9w-`lwURG+Rx{vX_WA!1UFvt5-gw4=h=U13@V7Wo=XagKN1p zlqvh(X+4iNY%N?})g-*b;+F>zLV8nQWAg2%uhLHlV+S*{xgYyDG#;{R@{+U5(-IbR zdG}_zJ>HtMuz$OHf&B08GP6Y^<-PghsAxxK)T7x21^`sW8qC~~FqkCQ+XUj;ZrXUsE zs`Y-iV}VfBm%El`*~ASu(OppEg8^DZt&7b0lC20~lwTlO<#wO;e1^OJttMdh7a!Ju!K@eFx*x;_bJV6l9!kJ*IEwm`VN^iBWbTUp{As0)6Q-4d;#W8le z+x11cxXXIWHp@<42WQQNbrl+2Uk(%SYfpva!C$92w&m3Jv|^u#!Q(N%EV6`gh2_o%JCC<1EVO=A#+c{XoerUp5S)NKI1j+A95 zV4v)fK5i}Z7XONHqAedGiX1HMgbO9@S0VLORkV)K2A^khI?7D3M$HrMw;CZWgZTntefA!*~{BJERomM2s?^fyem9ndidsRrX|TZ`gQ;>@eM+W4*a0=+lE zI4cGtZB{Y!25yxqW2Pr6bGI)CsaYDZu!F=9cBBejXr?hZk&l|694HsXZ=JqB4X)f} zFGf-QS9s1_hW}A~mA4=j!5rbineKjQ^{U5+Lm?__VUpUe!(h9j`>ZsNG5I*MQ-m@L z^C&xQGA$L$L@h}%5Do!Ha>ya)3WRHD^D2zY>nX%pp5ySl{EeqTddSo)o4@8N(RCCW z1u5$(b&Kt(%8TP(KT;Cl-uy8QzNM_cP1ct!FQ3L6ORGs=$V#jX!PP~6q(Hl4mG*KC z#gkHl6Ree4P^*r77p1?GomJg`vNEa!P;jHt_uK286?Jx-jAP~;?!0%1LcZ>7=v?vH z$#ABzOOVXA!Wlzjz1~QC%G?|oxtAUN6Y99*iM}I$jQbzknO)aNVz@OMgJ`8f&QgBz2=GWAf?E^l6RZuHkUqO#NYHeqAC{VZ`97=nV+ub^oSw^ZRfszZ9j! zgTJ7#iei##UCM+JdggZuxuumas#acy5@O}yYq|hJ2v=3b{onpi77{|y4!dwst&}E>qW@#>%>zSst50yHw$@ zT}s@#H04@D6?i3^dk+}G+ll^yPU5OII_Jt9c|Ge~7zd>B#@#Wpt3VO|eVP%T8%)>r za0SMF>SHTQe7O&;37z(UkItCir9;5=UDl#O`FzwFA=-Y`_WCKNpwMLjTV$cL@0o*K zZql0TYc9}=x7-*cA@L_%lP#K==x);$%^VH_xT4%-a?8C%QmSx^Z*;d@Eu~fSk}^n~ zuye4#(J{QMC z7cG0wFVawv!7u1c)D{$IB#1_@bP87UV8 zO{!(vV&mt)_S6Y*?Uz!wv-RUFI5rn=J9{(s<9MQcrI*tQa(IRoH14OU&H51AwHMB< zfRCT7n>WuR^WoYpC+*XDL@~lg4Tta8cjf`yq=?4Bi8i=#?MNIQPA&mjg$vVhdY0v9xbW>?jkAiwnMx|E|#x*0#2dW|2TUE{3| zNaX``(=K(!x{j@AR~!{M3;QDe0(Hx-Ge++e$&^%6l`BB-C5@fRX3XM5zv+o$#p0b0 zRcsKIbmZ3ts?Rg2MlVlfNjkk;uyproM^|sT*K-jxv}t`TFL>G{F>RIJU0wCpIe`~p zvb?mU)WDfkMk#e$eer4(wg-9kWPv7La2ZhUjehG?b;XT;qF4(*$$qET1<0yaU9@;nrb_PSF-<$Jc=yMX4xUw4#zu27f`i*Tk6KFm5-{oL z;mCa1=zkoxUz|=Uom|DBTuKwUw*zrdh!g%>S`zU@KN|bC{8z_k29#w(R9bY`2&e0j zhM zdshmjJvT(>6fr$V5kuF_c@LL^<>IFUWbOLBk8l&PIOUBzipz6V-l)-2NZM~a{{dP@7h<4NkIxAOi>=rv&8fdR-~ z&0*hk*h!%g1LJuq9Zwp4d25dhzi%7WLB4!h;*=WwI-$?nCE%(cq}ezyWNKTjymNMS zI*1O$+5GW~sxDI>aL?XGGpCA5AEi#U*#jxwe9Um^9Cn6=xtv!37Mq{_k$QmG)Rufh zeG~*|iiql&R6-=s;NyAIyi{2p?sNO0G+%Bn6Q8k@_dA7GucgiDiP+)VzRlgPkH->*GD|frEtR{oi~sL+H@^};N~w~p zFZP!-yw|R#iRPV0J`P%v-@FBC8Vb$=zLx5L6!o`lBBvm)DBe~ArQ`j$KTFB zQ@SED{Fw2EL#GJV(Gs~rc%-j7Wu~j6jFQi>L!r-m-%J}0TbY7om zVSNgM#p;q9E>eI&uq#xnxJKQDFDg21OtMrSb!04wZ)u2tplbK*weM(UdULvxxL)1B z8O~|%&~J_3=G@uNmMU8=<}GP1oTI|Y`o!FTCMqGW%1JKm{E-dgwnE_Z@k_-bj(hG+ zW$|;gv?$@wpxEsR-DjN#D3d9~8%KV8Y7p2y0c9&VtnjmzLgxA@O^33J1jhT%ifjNl zN9Moi)74#ciq)-etESzv?v?H=DGM}}SV*9;;H?9}yA+;tI$+qJ%Q5WXa(_`R4s{)i zLd@=OOvzL7Jt;?Jo#+v*M`Q-QxPkNPjk5UnzcFgK>+H&l<+Zs{Q%MZOEPjbz^^)b1 zq5RcR=~aSuWYy@G8^&*GcbF1%u8h?U=arE>CYAKmp< zOR1CVkErF#jpY#YdbML{4$HQhl&;)sm%Q{4=xQjWtw0#H3W5325m^fYRd7}FHBgxF_YGPqpQXHEyB& zb%%Af9Nl}6!eXQ%w`7y$I<_+SatXjGAy((^te^arzOuY+ms39qWkAMOibScrUl(G)+sEPtTcGtr-{2X6(xRfv0ffQ$N=owrLutay=AZlujBgPX)^WubOFr zkhQ8Lg7Y67^6*2O${*Srg+YpnrWXgcN*LyPYO}hPbL(2-sX4n`<(KE2oNmT(%tXSc zsBl2MQ;E-^Y^h!MXU>%omsI#>Yl=dNNxebQp}D9XeqdtOsiu{!%=@R8dQ#KyuC?kf ztuW*uUGi8ReAq1Hr}2$Jc{fGWh;4Ii+$lId|0SQc+F+0(?kT$>v>E9%pmnXiRJZN6b`@3bb|@aF3cjVRd!)(c`6DV66}(&RYm8e=^h!48 zZ5&F1zAH~tPN<)o#$Lq!g>4t~Z zuFsX!NB)0N6o|WJTyP$@r`f7sY7_8@^!oZFJZ2ZGm)0QuFQAp$eti9|Z;;&aW5Igd zz~#Y#*+F}|Iy|W#r&wAJxMW4UqS9mF=!r7U=5}HxtEq`8Zxf+1O`T6Iyg_u1CoFylPg- zR_501Kk^auD&U}T+V!j;TT@YfpQm2(KZyM0HPr2C%#rs81J$s85)jM!N|kpQIV^gM7WlA|x6x^;% z-9mL2IJ3gmL|rLxLj!30a83!`B5)tRJ#(4F-De>T*#}Dsgm*o$_$LXtEw-pWOU@`| zj(g9}p=33^0N8I5DoGE#8@{rF6W{&0yJus#hyH;nK_F6fhPo4h@5*FD9v@hWVpH72 zjZj31<4MqJ+82>aU#04`!qTN6{GpXv2KJ|!yw1zwkxr_&VMLaEE@ zpftLY&Z9gvXY9B8d=6O3h|qNMYqt&1kERy^v5Y8nk1RVs?~S)GSS_9tm; z@$~ur`)p*RL3n&+r@7fc-mwBxubU?TNCY(&5I=djX}S|_>wn0{UMhyjyWtrQ@c zkfd#pU3VDOJ163L-FmnH_ATyhX6#$zB@IK1x{bs1<66DK41jsv)(QU4rLmkg803af zU3;tEaEr>G@8z_XK&fMc`;~Xt+L5&S+vT5XnBYowvG1-Y2YF?uh`=OUU@dh=BI{Em zT2QK{uXMSD)Hl730+PJlt*gc$N$Mw4waVKXvxq~!SnqYds|1;oceP+ivQp9{IlPKD zYt>0@<|yO!NpK-$B|6u(VlaWr3v;elzdZRTO;K-7=pI@Jqc}`EKRNz;4|p@vYk{*CL0*8Fk9F zbw1S2!Pv#2U%aECs#4`MeJ);eU52LcrG{{pjx>BoDWv(;!pD!N)eT=6G{mgxcHrc<8IRiEyiH47}GS@TS-UnqHbfKUoos zrY@xP_f1{U9@XzHt-pJQvN7e9bEeSZxVN&?>X}eXgn(||>Lz5+9gl?! zWRVAO>0zQ*!*{7j!B09)$H$CiMwicig{ulY#idnl5QPc=EWb8LXFZ|AOs#v}g||z5 zD{h^=$~!9CNoH0%<8|3x!vIo}rx2tjpV_hp3<)~cLMsztXDBva!0(?J^K?J|dxrt( z((TMOVB%iUk(XE;#*trh%)`M+DQi^dvQCPLhlT_|2$1{5{npa8aLF!ChFvP%gQ?d=w<76gdKH>!jZIOuXb63|_U%cq))feYB}KWbeAu*>-FV00Ahit0Dqa z)A~o-AGqu_3yx`H#fJv@Q(^s2I-|l9S1;~9gt~wd~;WHhVJ)6A#swbyiPU^#^ElDEU zO1pCr7a*W+a`?!E(v)v<@er!q_WY$R-AOrh2Pf1^#Ku>G<0nVbrZJJUaT$O< zK)tH98HL0lEA{twN(w3ghp3Xu0r>AvC=V35yVRlgazvgr+-{Ql)z;94P<6lNSb+>D zb3vW{Pl%O)L%Aw+#VO%O6pn2jipxut$u4;lUk%&@9{nGde_zhWt?TJgm-zXD<3=u( z46ct0=vwjnEbxm>m_ee@epFu8T?twW6m?rT+u0T2IQpDtHH-5AQ^viK8n+ovGg9YvSblp`nZ*zG0f6Tn?R zd#R&=KP0mntBuvn%0zemsoWamKwSn zyQ9ffeB9vZR43}qsSGCwwREF|%%7euKMjmqC5q5f3gkV#r% zH~mvprZ~*!uG_ba%35JCO1MHn$-#KlHR9i@-3GSTqL*0pzDksC)1dosU&7~vfN~!?pF~@1tufY8^>V3Oj92=W4j~={0Roe}O z9K~T%XwhA7NKB4liUH%vSs)qk1vwfNZu-0JZOQ(&n71ssc%(I6!FWiz8Y6Qh9I}2E z8~VcOhe(N2wsihNlDS;&C!hADZm;H*RD_hpie{xV>@`uxX?V$1P*+RiY|5Aw!#0~P zV3zCXc{bh9Yk>IgA+{$Tm%cVt8%@G&QhozOVK{6}iIse-X?&F@+}XJBB#KAlcU`i! z#y_C;UA&ar0a|snr+)1PJ&buP5Shmx3jrXYT>A8%qkvvh z33T2jnS>|#0P1yj;z1GX-0539`N!JGh5?|V51!TaH=e?yv@77vDFmQ|uWEDVF|iLF zYAeS=xFpwFlr7^uD&}aXq%d}FkZoA*gHQDkzT}JDaOq_I$gPEvz4c`Qj zoRsJL8&3fMdg-b_3f$V%m#+MX3(>DjD4JKw^s1Wtf{UM98IGAK!PEn9&a5A5A@A9; z;4a#EYI;vyQ|-Fz4D(7gP;v2az*6BdCW>E|M4|`%SiTRpy>?OCzVj|Ls? zbxpf?#NQ2~c-61Ifm<>$dU%{H}SLc69<@T`y2J znj)wb07VF@Ovk=wYV$tFcGl2tP0P#?uh>8&2x44r+4aj-z0^;q1cGJ?gxi$z`RYY? zj^8{p)VwRJ5yc%mK-TT{75JNT-L=j3^*$C7-=t;)wUCk@2O@hBqU{~Ea9Yv}(TAXC zd{Tpia*69)Y~;c&v-LJtSdHW~Msw=(a1 zSDUbx4zkJgz0?;~Eq8(Z{0NHAe6swUlPdGBxhhNOmHZ#-khNnuVapPxEI45~)yb*U z0ivbmyn`nS3RS}XkqBx&SNhv&^-rS?0-jugQoug07 ztshP7j&E7?aVc$oJd`VBTlX`kt2l!8va)Mjm#m9xEBa3A*Zh+5l**ken{00m)0AC( z@5KQT*U1YTE@U{PaeIL%BGrz9dID(Fn(vx)JgQFY5KAgUWL*_za#mFA=eZA;!9lMb zRZtYwAP-SO?*(S1_G(K>fA{jv+Ei=$R}(>%infB_xV<{5So+B&00T?A5oT1!KW~|m zOUNnVz*cpK1p7}$yh{}M=gLEdQHdb zsN6Qy3eS-9OsdnQUQs1wUealJZe{-#Gj1~L~dnQj6ms4k5&hT#N6J^98(lR++l zeZ8Ti!xxy3BbU@7{V0%uyX1F1Ur57n8xrtQ{rP@E`VZVtitDzD-yZ-V=yoYW0pN4i zx8$mhafM&Dw4;XNcomnK@3Nb83N?CGweyhgEP7}Xh!FM@hHv|hrb zu#ioYOaw0dnupvK)-wC1cKM9={6o#$l}DJ`TssaW1Qip>UG2Bjv>&-HcB-^@w=<^| z)klHKwJad-;U-0&u0lGw=iU;W$S|b-`*Q_Fi5JyAv?Q(C-t^Md&6n514Y3DI664R^ zJJ#Jlm(jub$r&i%`yp<0ie3vL#q%jAo~@uxvWB?T+!=2ym9!OZe4YQyj|s^{&Y-(H z9Mq5-KhBT%?-?YsC4L?CnJ)J)Z5n<4DQ+dVu=Tqr$E>{-N6jUeuG*{nD4T>A0kO3;2fnU=L!Gwe3mg?d*p~EpLk=@D70-%NLNv*W?0r2bqK$3*aS< z5Crnp*J?M{rCV?QR2NUK-xD>qSKGZLJ!dtO%&)!|Bum#&lu;WBWHhj`M&jBwNeu$X zI%R&8-Z4k0l$7mdaMa`qQEsYTBpu76XwgxWg3vh0f$M7d(|D-r_MvK+I4ZfY!o7aC z{_Fm~GADnzlg!A0C7{b#eKrApXG_2DTwGM+g8o^LP=miS?a656^ECj92J(tNI27>y z@Z{S|fZzdKig%Dp-%npw<$<)au~VoDR$ryvs*cLnt9lv(gPRI*Qn{7ap|&cY7JyOK z+AbKHrH}~?-0HDT`{11**(FYdNqlG=ZW9;zOX*0Fs+80(cz2F2bZnJ?nq|A(Dz=EQ zuVHA)_n};!$`g`Y3E7P=MFI)C)T4)s@(p{a2*iPEw<>6*%_xAE5@sq@CzYO6{M=7l zQw4`G!QpmQ{gs;ry;VG9Zg&g2 zzaru6>{P9jtv@_v`(7zjD2iF*nywMvRfedq`BE)M|KPGdr-y~8Jb1r$x9)x%l4$jE zz|ATLYO9;lM5e;eFiHnBfIqiu39``h_PU7tJlsLFkPgTFNehPEtGE7(!6L zUVE*2Uc2onY1A(YrdGv{g3iW#1s^E4vI*|WWb@S(Kt1nP5)DkF)=Ks;=DV!P=<{mm_ z7qtp0r<8+r4a|hRLt-T9Bj|8aVkngb1-IkY9BX{<_bu*uq2`?-;q9=GQ>d>;ir1`K z0}tk8L8ba@T%ak2qWaRp`?)pGbh$&n>n5d0Pb1EV7MYz~?Uc{m-K$=9>q-&ko<)32 z!D~{ZUiI#?6{l1}{I-E@5}>Ym6)#>&wz=4*C&H8+zzOoNSZhBHTjdkD7J2atRxHy{ z!UA7609{ufQ9ehUe3jo5YIi(fjCD6{3Is#CzP+uaq>X;OG{oj0Yo~@I~5Oh zFIb$OT~LqCr=mxS_K1wnRC_?K(dq-W=)_)$CsN-gh}q-jcJ?Z`u#LwSPrg*CA|`*kZv=t3O0Q5mGH zbyeu90vxR(zaVUYgJ+7V616VT-+A5AFM#W`tyQSaLm)&mqxoBSrwGxFlQ(xB$||tZ zqe2r!Jb2Y*(@)=5YO_K50}r0@>QYGl{G@D=Ho(;_h+pTu`Tw23e+p#~S2a&-{NVKR z*!v|5&wend9h_0Y>6S8TNfWXjKX2vmf8tr!5qkoG40X}ZBh&9vwUz+n(+zH(X$Ewp zVXl7?kmKf64~hUM^bqgBkLI5{X!L*};?t*oM3+ygHqbOWD)(KQ8a~(HEhyNbE!ED7 zrE7aZ+6>(XhrF)kJ107l=!OC?BrTn@r5I6uZy!_vet~&2xDw_R|L^ zzo|d={RDU~yUJQ!k86hQgG00fgaxI!*=;N7(|GKr(xdp63cSd*^#u?RT3zP4DDBCA zq#E&+>-Gy^-_FBteqE5_AFND4#an7ThrUvi{G1v80BX8#4kYpSgwQaE@#|Z_BnaIK zuL?v+J4(X4G)a6|I?Vx@bq`nT(neKjlyoW<=;Elutvcd`fUkk2Od28sWpLqvZ9O9! z*~WfuNY%R#r?ckvta^4U zst%g9nvtbVfa95LXA`eg33a2SWmzb%oL(n%3OMlC37V-nIJRup7galSyLvn_oy2Xz zq(CmZ*^&Q5K=z?8hem*R$Klt!owRnn?~d(cO^IwLlGs!HOBd-Rt#NFRHZCE+3!-qT zf}-V7q(K$HqRoIpxh-rUpK6Oc<=8>d;DQAB+}i{~P)T~o9gAw^{4f!0 zERDoado)5s9h_{PJck2O?!9E%EJ)D8eCmYwZNheTiO5YWC3&cONQN9DC8~=(PuX+Q zC_|S{FCbNAW8rgrnpJE+!^s?fe8!~48TuR5RG7IJS6C=TH($=JmZgu3(AO8lVY16@8-p09 zqBVH9XmJ0yD+c7Gbc-9OLPR|9WrvK^<&g*6-6z&EZIXG)W>)1rX)<-+!3Lj_OXNb? ztNMPVAx&-sgTMv}T^h|kO7tf_hnxs?u@^7U=|`cku}j9a=?)@$k$a>mjg}eis*%z@ zfe_jHQ8yr3+Q*&nn9!B^y;Ols=lRV2w_^z4t2Vx#5K`kv=C`E|sdt$*=NX zDac9rb{5?g7?sIlad&Y-Y>2#IEV1EMGg*;aFt@!2T}eRTLYAhPCSSkVX38%SZ8n8g z_?4=!=JSySfMwHd&?;F%1qp-m3a2b3N0j{q-dv9j!B@dnS)?kAQt|7Lhh7T zZe0TB6>s67_P;Tq()q%7!GWzIryyU~6b^t?RietW9gc`6+60 zEA*T}94F$!_gz1iGd|fhzL+fBRAi&BqC%4TK?Em?w8oK9JwiHeS0NmX5EgR|rs}Fy zDV(EAvF{)BtMT=BWVirwc+_2zPZd&HNAZ{5D|Fl_kd~g@VRQtZxb8&1x}Utc8QVySGO?& zyv6-gcl&avL9rfA_DFnq0xVb$FRC&r+eALaANBN<-JXp*SzMHnhoK z{bo1yzoxcUFAFpyX~@*Cd&n}q$Q+XBqKSfSm}vzhCNpxz zb(jMWI2oey>cMf7#hIk4yUYn-vCbIHalUTuT^24yi&8jul0%gq@KJL>Ino_#2(PvR zpHql0?x%ily}#NYPzxS;r@Rx5QYcIv%93{#Aqnu|rPO-Vrk1c6pxyDwu)~Dqyx2T4XvCBNpiq(pulv2AU_0(*m6HDc> zj@Yejj>bK`BM(JOoCjWtIf147uu0gBfMmiVpDamV=b%20LV7Tf$cv%YtD!s?ls6}D zl`EPKzpuEQTg)r#p6(DSP*Z{}F><(QXh)ihxqF&1Dh$Jkah2Uijp8a zz)w?@=z(fenl8l+Y*1E*=&M@DgRd;4!wf;ATS`62P@taHhMOw{haOM)xuUYBX4=kr z2`*|I1FnE9ugpd2=WECx%|`^y%LwZVpM*3L%FLYAolSjHamYSvcB#lVZpO}62Q7jQ z*p@e}04q;Kz&F0wNpgH?rmPppMvaDWu(nGi15fUc^n8g{26p!6rLzDg@{*jcDE}kgC#u11}s$o42eZ9+^TO zr839Yxht1qB9Z)eiw=%axWA5*XpBc@&vR)u|Nd?HXI-vCW~mtY|M~N7P9op=ksc znhok#Rt3Gcqs_Fm+v)t*%bDrXb^CHbrc-e*?U3_8ikH(d z6`0UuZWB+xxwNe|74J*4VpT*HK_xbrfr#NmfRe-dMUeSgo)Yb4fbN;x^65&og?Fs1 zlpX}LX47_eHRcWSvRG8AGgnh7J^WMQl`59Ny_i+^8x>B5!YMjYR##tzCgmswq{@(e z#&xTqO|sVMV9H_S2ymd93IgSoK;sB9n0~K15BZh{N^(?A+hsm2S1I-T5_G*&-|l|7 zTjyJT9Q4$_)iGLjU!KpokVc(S9MshZX5@6fM;5*_BG-)7Ua!F(=0w*ph|b|#dlVT| z*XO&OWwuY*mP$#a7|T+(_B3F-s*=fN5>+K+GXO6qcQb)&sLItwB8TdE@{H<6i)>w9 z$xn7EhVxovX{X5>RN#jX4=q-Wn2%}fPY)T^X^Oq@O^Argho3iKQZP8HszCo^cK)8 z7dwNF16mypn6`W3ToZe-ys}la=hD~K7(uaFpx=I+KH!XjvF^VQD2 z{cwp(hcD8lS+x_p%YukwsdKpVGd4g z0$36L)S%Jj&qk<5N_R-0xlctF=E$z0*v}heLx9!fKpJu#ZSWhb>yTN?20hj;w>W1= zECQ@O&Ae$9YgD(?kB@*z&09~no%I8nkj6^Q&Dq+#7S;K`1N4?9HNsl>)_0fUjLKa8 z0vDMwWy;UVwh3%Kn8%g|4BCA)n@p5c^2}n)=$QtSN?Mb~DG!EoQliH?PQVG`*>(f# zRkHPf6(xmY5@`?A2B zt87=?COA*7cCna`zFf?dyu@qL65Xj>eO(zK z##VX%AobZ)rp&&b$(>Z-ME$Kv77nMlk``6VJZ`2216WrZ?Ol)3Jh4sfW@87!>*@Ds ztF6}&B}NG{6IF6@O_$=OHW$GPc(=zsA;0Z)P7d5p5|@v6L4|UTG|YE z@^GA}>p(m}e;1a1ni5anN|B7JyH-^-HEzUEq$H^wA+5oqL5$T;bSsKEl>q`pXoF3r zE-J}$QiS^)ttBhW=U`hLL^>TP5o~p6Q-VRFI|q+@Q=Kdi(kU2cE%O*C+>d5x;#dR! zj>_Hblo_Lrrhn@7(3bgT@1Kqn`Xck@}rP!XP;i99U`K6&aFqJV$@)qE98^s`f zkl@3OHiu^p3ki%eL+xumtsh~z>0OWOB*QP)Nz_l3zvBuU5kP&KvulVeygO_Ubw}ak zFTzwXLKN2^S8Sywc#=R+3Wn#EtEy?eeALWe;%Q9H2owu>sNy*Tp^9zx;{l~N3eRfs z12j6Sdmb%VyA)j8+NL57dT|2d!=h%h$bx_A(NZioo8%;QH;C*zSp6F z7wB>X?RbpK%b}m#Wr}O67tZF-802xc4M_4X{+ebyBvTcUoz?+H2-3hbH{P2ZLuxjS zeibXa+FOq*u-X`?c}1LZ51_vs+HIg&d{sAe_~Lfl9#@9%JY-%d4SU!$%9=E96(@lj)d4<*0nae08sq|DvdWl|-Z<+u(}x z3_f)#RmfN*FDa!8JUyW^FWpbV-w0(xa5ZT~Nk?6>^aq`kPwTS5%289TkC4w@f0VnI z^d%JqOzslMr|K&2=u$T80jo$qX)bMSba60AM%S{b(^_uw@z_Ci_B8B zdT6C66Q4J)L5gHZlR(YjYE*f`HN&dUq;n*Pj zQc2})yPp#R&77EM$%qrx173fF6VKJ)ednbDv-_zk_>%vUt1^8n9-_A>#TRdxB7nCK z#NuKo>_AF$|Cl>3vGKY6qF^cxTL{8YBihAKqe`v?zpttalg{<3f2Oth37eyq^j|J= z)TM(`aXqnpLk0KfWu~`hwWuSet6L8mvG`YgMNKbqEG7B2|DfZTf(zYc?`gSSdAG;6 zCa&{9+@FM+BS(H{&>i9j&VA)H|DlHyh$3wB8C7MUk@yy zX=%m_h#{5$^@rGqRA3WF?^CK3z`9N~&O`KxBZ}qcWL_vKk5m!`UF~7ScPoKNP`7Q! zGn{tetNfE3V%MaG)0{8LejPZ|$=vl%p1L zmq*KG3Y0qr#vzp*hA7TJuB~joR2Ekw_M0~CuS0&DNfI4o;)uX>KVyj70r)`#2$dWv`cwlb&epZ#0 z5d5i~Llv8gN=?dmg9kZLT2Z-j3nWsKNCAD0yS)+_hrC7gO9}o8yV!5wek;{3D9fah z5Xj+=UPC6AUe%6~fsHR&U2zI^&WH{g_dFrx`%M`q|9s^^Ft;^mxM@F+ZWyUXMqd8aRP;RZZ;u7H!*env(3w<6bHY7d#*}9*@|#XQuM;7ak(!I5V)-!>@GUt93-ajdZJQs zENChr3G&glj?6a?L$=yg3qTMvmOn##D&Ee9=uk#d&bo4c!JuQX-A*R&CCvZjIz7SJQN zd-C%E9>BooRu0sbZU((i*RCA$3G0=Ix^4f}i^D62h1W6D&F{J-t|aRvYHkwD=RCXd zQl+JC(#O%>$mPcm0C#=`9q@uIZ{bA(}qRe zTR$f29+IMiLKAePyjab~zbCv*czcwB1Q}NxBz10b3-?2^VmIh@7mWA>TP>sK<_*Xt zBor1Us;fSH-V#t4yS_)csW-;S;~0X~YU0-L+dnB_ zu@4>|6$Cxi%R_%%g?MX2-A-;tc}4d+@S0gUIQ5H;m0 zakt9Ke$}^0`Wl%d%qs*gt&g<1yFMWEeB5q){qEDgG|A!$ndMVK9Bx}sn~}>vb}ROl zfpgm5b(I?YPoV3n3yI^`E4#0t6rx^q2`n7w~TD)DHRb3W&+exQNPSpRa11omz$o8 zUh!^D&Y_0c-SlYR4nU|uD9lrFkjDYG`w$J_@oU_Y)u_Y)_z#&ypXJSM<=%A-Nvb4D zs?_>|#ihpD?z^btFB_E#TJz98UB#VSbg62jn^%qA?{Z>x)O4DcbDT@3XsLY?kOH#w z`q~g|yezB1>agPOKv(cYCq}B7qkDz&Ov3}YUH@#_=TaC9GU?%7Xw?a{*7?Hyul6`( zEGo3Tp^2!VDmdv=vQ-^}TljNnLSvdz(L2mutTC>-_!DYlZ+Yvy1xJ7!KGon~75O+7 zQ!_E*dnoa67Wu-I!9oG+#`2VwRA&eCky0;?zpK?Yo!U&_qI%4hp}bcm1_kj%3KA~B z#~elqJgM)zwKp9P-c1VSWzqsOHbP>#aZyH59-_71G=Jg@U(R zZUD)#Wf=j0+$;AZxAAHUm_PQkUKPf8LG{k59eFVsET~GbLNYA`aD?cX~opmE)aox?Qcd_AU}BZImRtn=#PW6Vx`% z4hsuOqwUP-jeTTXyIUM*x3HUzA!IIHH7`E6!$&|*S&{PiqRL`vg$wv!O5S|S9*TsF zOYXFS!E%HEVUHsTyHQzoaOS|08+F%-;y&-H5Z88j%`6V=w`!%ykVK*T%R;FC9Z zDG6%k-F&y|t9X?5)|18Ea}v#1PTKDj3K#CZyufWrB2I{#EC3l^rTZ_uwdt0M5&{bO zH#;{+IRTz_@zSbv*%F9|AD4noQ?LA+wr?%#bQo;}VlGr@l}n6w_i!sQoI!rBYuf`z zUFq}$Wa3-S_Y+y@doXucX$s&I*rDrHzKJ)4fNe{uE5SnO*Wm*^bwZ2dmh|Q#7kA1f zX2q-041%2E^b{E61Q3iu(cOO+>VUo@mHes#Sh8OPPIc=;;SP!3XAjp?PZhh7Nf!^d z&OU3NCiU}Yymg|Exa|NYu9cE@+)0v)W*RLtKK)+29L`7V3d*06FU)aOl#Cp&00Gfj zD*_Uz#cQt=FoZBry~|+v<}+r+Pl2aB$pcp2V*!=Zinafm)!x&0T7E+YJ%&sk7!Aai zY~3skgSJaCq;dY;RR6(9$SddGmYTKgRe58(ZbxW$t|aW%W7au^jyZM?BxU8MiX&;u zqN@hMjJl{%L{C-f_+3Y*aHSd~YwJPs`ZW_dqJoIP=c9Tie|3GdhFXh9d6Vas!z#Rup%*(mt_bx;#|#wuZ4vWsu` zO!OMC(i!9VvaD-0DDvfO@sUvWsZ8j8v|I|E=X%zt?TfL2mw08RSeze{iCpXYHG1s9 zovuA5kpJGFeiG3&%U@WACPTTl0(+_~;VhO+=+dCP$Cx6%&Fx#|meUjiiw%$4VG0iD zsR+D~CM&u20z=r#qafgv#y(}zw{mo1m&^#@$EET^UG~AL-U?MV0E41h%}V8+zw4uB zrJmyuy8u(jGFoyf-%YurmHHYjiSC@?x`|~MZMeNe#w^s7ODTU>NLtt^cS;8*L-Mcm zXy&_7?%f>W9P@c@UaiHC0hGOzj^`P>JJr?lNv=$~&cfLWR}Ip4sz=*!y$d^~Hs?vV zb0ELsJ{KUL7k%7yQ|L7Kj+bg#au%ANJetK;XL(Z<)jX|_`?|RLnsgIH$@TskF|O-{ zyL_Bie&*xys%9YS>W5yB{wy`U;lE14ph|9U9~_9AzgJ_yD!sqK(3bUZC@r*>P|#5Y zy`&p7cgf!8QT$nnyRQ?Kn)mqzy#W%1F?I_jYW5l4SX@+>+-0>}uUYgx(g9q_elGry zIvzw>qBS=#WCj1goRV^2L>Ij%5t#eW;o(`b(^mhqXE$}aI#0z^c|eE%MJnf6Cy92$ zQvZ;s)p6ue>zDATwt7Ek~7eyrk-KzytAK*0Y=J6N^ZTg4VOetl$|4fa}lWCQT zVT3Ql+!9^vvM8k6{DRaBidvFfT@U43sfNVg-Hs(VoKop+wMfF7`VWw`iBJTh54`dz znMhp~Eu>eCql=^BIMwZv?^30LN4xdmTNKQXuWQD7ua;Vs8?d=N$|`4xRJU5LUMoHa z4~O*E9TI#Rdt6PG*Gtj8rE-{(5RPeh*d!U1QrfVq$UP#l60iobv#XTbt4qd!0nIQ+ z%G7-OcN{g1AuICACSR^xUA%YCTWaXzqC99rFWfCECKWBWiLRu|HBlbKS}70IkZ&9( zwNI;xWiC$KdD!S8=26ds=z*s1*64yD&QoqmbJ^$tIPjx-%rqT{Ea}14=F}^*C@tkk z@6zuc^k&ey)xMp!wdMZhR-9btHS!@ANs%oQ946UP?NQ(l5%Sz$k=Dp-+!AyzwL=xx z5IZWvNrcG+57VMcKQi()%GQ>*+)8+LeeZe4MSCJ2e^SP6yWgQ38;{(}PW4P(%>8~< z)%&P=iYxyPmh43ivH7OfR7uEXZje({)?t~WYL|9(h1f5Q6OZqVK$qefq?gRd}%cjEV>OL}QVoSK-?KbXhdTvm!nc z7_88FTD&-^Vpr-rR#&xj{Ej?$OSL%)nxD*{CSx}Oy}rV5SL8mWRHyTh?pjoR=S_ zPpB)M071102k7Kbpp@@@NiQzm@tf68o`jq$$xu}KpgvN&R0Y2cT1To_WVhjNOSgeh zslDugD2;#r5!bEhu8;8e(Y;6|[H(nD1=8snI*t~U@}(lozYMF~K|7gX8CiErS5 zWw?>VJ-k2OTVLU&jQaOeLQ?vPd_H+sE{I7-zpSQIO>+5`vn+K3G=CQ}O9SCo7P3%f_A>r+E^&@$Lk3)&% zQviN?5?xhO19Rklb6oG!)w%&exm&L|Taz??yHrL_a`Q%an_G?&^~%jt>dIkKKMHW{ zicBL2m3^fY(%ev@aRaQ(?nJXC9es$#F`+w>II^NUXDjE zg4EC&ibhFxM_)^?$>kce8^5I0JCgEVM3d+w%F3C~;(z((s+F)qO*t2Oq?<9#^kUdN zG}Gi7Yvh(yko;Lley&#pkwif_ox}UI?N(p$!8Gemm&f^cRdie^&u;C;z{$X%Yx#-R z2wntXNvZ78?QRmcb)G+}*Si;(k5g!V0QVUjD1c*k zT(r;AZfAado9hWmB9TJ%p50YBMNBWL7x-!e7SJDx89mKszQPAC7es!@4 zXgWa+(HL>sT1urzpx5UBR;CO2uje=~U_^Q0ggPbj0EYT=fEaYixpzpLDXz+cFQks} zrI?;naHw+|AxQt$6MIu&JcoFW{E2_+3~j=m5Y^44=yRZ2u-SzF{gi=ow#k^n3Pg&rD;J$X;ft4KBJItlpI%aj>Fb9 zn99wCh1&ov?B?em%0Fu5s0Jnv$%2_)NSG?v64 z0Nhbf6U>pamc-N*4HPP_zn`RuNQwoRmmL4fq6})4hr1U(7QVj+=cxp=ydCb-mDX+^T??u zs=kdX64@*kaO7CxA)LMh%AuiI(`apE&%#i_x2Vtz9B=A4$=t8J(?_h6B|=*dQAX=Y zM$T0JwcTY45x8z$#|edViEo@dOEyJfDFE~k{$35=?b9ZgXIE&p7ZSIDi8~NI=%K-; zVs<-G6qEhc+TQl^UA+>CaiLbwE8W6;`39t9z=@M6xyk>bL;%d(Is zcS&zW9t4+JyF0gkiw)-_qYyx7Rv^>4=#v6mlD1tnCK7W|lnk9bhSz>gc<)%75lRN2}t+$tfV zY=e#0Z%YFLKc2tw5tK|+H?ckKIh+zHO&qiperwA%B=0GQr7wWz0? zsGl6MyLu^?X4H>kJn6MsQ?JY*|nsjLsHFcd6)G@UfLqr9P|3M z*iO*7wJWFed^(gn)8yao8z23?pJt2YeX*M}j@FBXr zipF=&wLDQ*@HzCnDI$)_YebL{(lF9Lfjf2!_)WJs4Vb9Gpmw`O#$a}702Ie_=#*Pp z{ARoJucGE$_saz_m-9yp85<`-DqQNgF8)|n_UbSuIX+vvY}K>A&)xRexhJhrBQ9bI zVd@aY)}?F;iK!CgC{W#_bkma@<=l~+xsNkS{>`g@+^wI1bna{Ge#l$O#Uk0Y&gp_7 z`QVe4CzdAUreGy!8`3eG+U_jKj0G`%p*Fz5eE5;q_@thEW{IkrFU5~-SzZ-jpxmF5 zXRRoeZk-o)+b(S!7r#rl3)VT?QzZ40E01fdyoTY`a>_}Jh71>oEWQRvU7zwQdUHvm;IODQ!p$D~8fd#f{g6V#sSTC26?^Sg8ruio zwIbwO)etoAiitGK;0j#1AD1@Bs${=gl&}0(3%M>Hw5Vw<#oNtjn!d zI-F`j+{4kaeol@#-K6aL3>FH&aAxG(e6Nask6r|JJ=+NzcRr~yCHDJoGR$+^QvG62 z!V&NFIV%Z6m^4~)9fA}?Npo?mrz&p>&5-+sou!8#9m@IclqkKsyF}gar>yc#^ocIi z#-DcE`YFF{jW0QN-{33VjB-zFSn_RhU8j@=8+S`@3V3+S&dhhI{k-|-t z@+z4Kn&1ZMK(EEP+kn*4;W{IDO`o+IScCt0R39l?{Z)6UvJ?Mg zGfPjy11ggTsvy%?f)IWjzfXH!Ti=EMYN_S26ra=4|JIe%)%ln5gUSV9G!lPvxi}jk4sF z>9*UBzJatwuJZgIQ_0-}1DO7T0U2iJWhmP^N&<@x|s{7+-D^Zfc1O2<9C zdB~1QEn>;u-5%SNjG}OA3XvEAjSgIHpqxsL>**rV#*oQb6I#2H$>lLoi57|1gfPAb=xWKY(T}U}HFUSx%E1Ws z(iOVB84RT(*>9P#Ifs%Cq|wT9Pyb4{J8V-KHgeMe;<*IbxXywk*A65$%CNqG1j{ws z#;1^CL>=Td>*-1aX%A4P{Y)=)dLP+S_oUzg)*m5!PC+WV6;f31+s#fw$F-x&%8%yL z>QX+hcWM%$*ot_v4F0SWb}A1i^`YkR_*v`W0PxDzP{QlTe^OqUGpfA33s;CH$EqmO`SxO#P$)aipQvgYfO54`DepdRKguWHnZ)E1x1;!dL&A7G7!TTz0)nqOZb3c0OMR=#&nhEYLCC zZ`@(e^YYa5^4ja1L>YU#pXl{Z0Qw1dFAoI@S>4vq0;SxNQ}zB)?b#J%8H{(V>i~~5 z0p<<-h>!(z0dkRG<3h_<%5?HvOgmLkGfJQm`|lu_Ll#{|2S3=A^g!r(lBlS)r3V5= zdf2nscb%?n?fnx6lS6qVXyAc8esF+2&sR9H zM0FKeCRyrfOAn6YoU`GabI#eX4u6Ji7%-f3UY~Qx3cq`+WuaO9V+k!lQjxsj`#axr z_FikBz1PB@L?nWaM0*7F@S2PngZfQ>Qqn6@P&IS}l!Gr7WfbHKrv;LS+??&s!D#F; zBtu{wS8+u{JxbIOaEx?-C&j27!@r2)YJciw34SQ%c(K;#xq5f!l8_-9N`HbwArd6T zPDEt`Gu{l^EI6x@!0FwjJ%+0;F=|LQIf5b1sqLV|dF0mm!VO8;Ux@%;aaxu*Tg>QV zW~jib)T!;xTxL97pE|n&Tg(sA>4I<{oro`;iuJ}eV10(;6SEO3)lXQ8t?O8pO$BBl z<5A~S?U{j(W7COvm$C*7JN5@DJY9e`*jIu>W9V3hEAZBWndqipiW>Sj%^Q20}@OayJ z+L*vo0>Y~f8YnP~4itb}5flY_Qei_!m1!z`LEK5d#2z7C8c<=CP5-1li-(?QJ{_Ro@uu$yw1MY^+jy<{_SW%o_ z|3cjcoZgtpbR^|?>vJ!#FuB)2NDughL^j6h=%Wk_0Yvdu&x=>5$D%kQ0-7oYAVY7$ z3&7$(t$oRjT^2w^2CbbIbb;^2(6Bw`U)xnKnRY{#5lVu<)VZ^!)t90U?Q-Z~EB_kh z52A~uDzutIwqF693Lr$8Yca&?y1$jDoZE=*ZieY7)i@+MMZ(Qd_i#8<=?w{I=qOXW zJ4LY$LRHK-H*}F!dPhyYZtmWOcv+A1bLz~agsvRObP7!zh-vE6AZsKrSwyB3mJx2o zJUt4WI4lDM36${&P(#tsa?z>}Bhm`Iw|F?>QQ_#UI+pOA|6cF z2JuCU(=ZP`#^qL_2cx*MW^iDpRJicVoch%|<+2gWGUh*t^9 z>a1@3xDi<%{s>SalAzCs&;+e0+QMd0)e5J0nvT$B!~NZ8x5OBIrtrbb5D3;ughfW- zIf$1dD<|CPs?L+B0oa7fx7M?tHbk8fQlE&T(l;8qfm$-uAsE+^|y+g0zMuF zOwCD229vI=XnQ)uTSo0C4@JR&M?y0B=)`w^yjVA44w>cKN_tFsM8u3>=4sB@S0Kz__y)QlQ~PhKa3`8Xi?T!AxQ2SqoEs!m#*FBi~r})Z5vm zVGIj=HT?JiJj4{(Zmp5=?TqowsMQ*UIaaT*9rvo|avD(=6jSkA%(wv1rk0d4L~2n3 z;ewVs_IRYa0^1pnFeRD69RV7B^kXTdLe~XKwaGli1LyFl)3K-3e)0&7rhmF#M5s2V zD2s_Ciy(7BvbpiLCkl|@nna<6$^>_M4x5sr|Ig(zU=!bix@}wMV$lSKZuN;U$Km&k*wRT@KPOU#uRIXp0jf6L_wr#$1valj_2w#?VX>g^h_O+#Xs4DtFeA%o zv(tsG;3!PPy>#PvH2is$tVC{rCE>JI=`T=7u!z6XkvX)hQJWB92Z2VeWx#_L0Arv1Fj}>5NOx_oPs)ZnY zqj!0uGl~^0w#msb88dOb*CEH=5z8TRd87P{+7)wvTW6yb?cs_0S3176=yfx!#=r$i z@(N)=FaZl5I;#Xh!Q%##yTztKLu}BYlmV(ogHAL{8L?0zh`jJrNcX37Xe9WY+;mBYJyy;zGUN9{z50n`YWfwlh;oT{}R^>5jXaO??oifiT zMRayynJVmzCo!g;1(jTf86~Y22=eH4L1@dFsYQpvZG^E!fXS3tmm}B!ZxvYXVwD}A zu809<2J#2WuSfVHH(E&rWcA~xATP$f1u?{l^&c8T0Q$(n3Pc^j**Fx&^q~|$&(L!K z3F;?^UN;;XK+rSn;{{nb?>e+pGIWl1#P~~F1i|_;bg=b?kY4616^})+;^CL5*$Y5b z#Z{$Wu1t}7wivN(sf-lL9in#k8^?FHjSr4kknf=&vx zZBoI}2Ql&Z5+@Nw(M`Q`#_CSIBgW`waSuSf&PD+cM7L=(j$K>$U@wJDnhh4mUTfxb z{1hi|^&LguYoSdD1DBZ;*r_M$nKIX;xFQvl7_rh`Ol>K!GS(vkuHP>b3`ef|T5vDz z@WL-KVU4)3te_5qL<*jXI`IOxiRJ-8NU@Gi!viG_JtIYFtU++2V45&v>=DmwC2H2u zq8IDwVbWtMoe*O13BvYC*=t38HcO=*)%!wzbD4tlL^Dmnwh6X%MbLEE7+tt@h)*at zdqG6W3P%QoY1~zn`YqNVX!~mm+=jb8jrb9D$Y2%Ul(t0Zgw|+uL+~AYbV`R%a)VeM z*Nzi2xc~$b8yZ$g6XO-GP0_+)&XDTV!3&IsVjBu+Fw~+^7corw>v&c{zsbxx2LLN7 z!4q77v(CRi`hyHQG4|DIMsWl@Zt>|Zr(xO9QH-iugW6(Oq)^DbS!S|;8)mCJ4}vuA-4=!l|UC61__;1`pf6q|r7f*SPYYF{gMtkh`ZQ`jdx9m7pQ0lL;;>VxK?sDz-M zAGNfT=1HvHqS5y%41wjSJtOic+^HAV6hSOA5=_~^9vWRAD2#8qt4^~acIt&9jW|zZ z2q-c7SDE4j@?!5Hs^LS!K^xmkd|nb#)sD7{%8dxubKT+>4c43p8VgMe;_I-I?FI2+ zok>`ra`hZ<*PG#?V}+-PgYt(^opu2&JB7k44ULNN_)_aPS4cw>1j1%-7lmS-L%Q$J z%~v?q;ucN1;1Z5Y!ij;r>oBWRg3`+t?9x{9sJ;if59pN=tb<2rakzs-PR1P{PNrma zwv;aL7S@~WO1(wf&WkoFuJxmb%XxIJIT&Kx3g*a4TCYI$L4Xgb}RpHi{*N zhLpJQOAC$bZggFEgh8e|`VE$zkU+IfREthIq^1pmYC#{d;q-*CF8~=4O&T!@uQ)4F zqc3t)TTffrQleB)5WP7>R=bFTsZrQz2)HXFDEf)iDe<2if%^1hl9%t)u^5yI2%~r~ z20XWfh1o~~6~Y46Q zmiAAh1BaCl4M_n{a%3VKR8!yYvdO|-P>Y{WL5iqf#C90C)Y)bMXrdWF@G6c%)&MovQCf8>QSqO&cR}PU9)PKV2_IuXAI4XOSP$PZa4HN;O=e zri?xDM8H!t4$>bR=6Oo%l)?j=1z4_gx2%sRdO5}s%IBi7kn|>11H4akv;+sRq2Gc| zN3}|!9nrp~?II#D6ePzK!VwS33h8yC_J;|h-jG3_voSrXjp-CLlEtr!c?i#TP;fHt zAi}yPdiZwWQoj{B=xjDf?{=h=J?(_MV(M;0ou-lc{=16 z)X7s{jL?eT3?iZ_sqkT=h>k~H)nW5wfSd?-=|3zM)LxGY+MAs|!)!mqed^>PPZtyHnC+Mm|$t=xCpCK_Iw?gteWBDl(&p z@||AV#N25dYe#zMm9)kEH!X=EXr`AjrtadUJ-TD&r?n@yGkc;JsL*&^NpeNI(sLOt zj6-*+)vNWivMUXVWgx;V3UTCL^RD6&m7x2QHUN)CyJ zwjHZuQyGs)`;0#+Z3`bFe<_qJ{)m9$#)cqbovHJv6oD$McoOq@{;(-aiOP48i*!tz z0uH^{1uLG3d@7bANzA-yqL$6TvJ#SlQx=oM{*_TEd;D1g*js$wef5)VQ(UC0B!6F^ejR(1= z6NpX)0zkpcrcn=H0igRUR2v;TDn1YEKOyaStq} z43|;(sNQiCFDS;%EWk>Pl$zryVhDKC%Ini0>LaxbqFamv2yAp_z4w}q5hpy&@G27J zT=XqkOvl-dmM&jrozUIR_9&J3bjz-cjszOtg;{;%Rje>P-7rXw3$8Wn?dczPbT~$X zMUulK4-fCiq@(siH3sw795OPjf+VQk3;rPk>icQGHJNWxa?3+uEz+(?@nKQ|5M+!P z1u@=ll2bZJ5h=UPD7=t4Rv{udiB1&7)U4dWaUVK-^O!=5RwKw<1iWznf+9uKPNB3) z61OM9U^IoJyeLP4B2gYO5D2|Y%xTe*IdZ$5E4k*CZvw;ue{O1~Xt-}W67@5+{{$L4 z3Kfphm&ffFhg}$YrPX4hB(CK_*V70WoVdWyqdtrhCo<0nWeJ>Sl#G$B#h6J)dJOzk zvXZvKe?SeQ(J2Yw(wk78Jc>m+h?!ZU?uf9ATrln>JVLW9ZNIVLXgy4$M0ghGOo=%3 zEEY4L$^%8wP~kTz$S~8^6pI6j-^@HwJlxolOdX;ivVfQl?G^IUsn01;%Wyk%if!;mY57c?ug@COqO9|KduNSl2adD2f)wg1m^o4Rg`ZRB4y7{r1_Bv=B#4gQs*>M4 z&AQZ5$I*8ck}?G;Rc3y~Pne*fT~Fwf3z*!P`6~F0AUC8#!+0X7$!S&eCPls!94jIr zSc@pCDCK~NSLG%!h;`F5!R(tthT<5hR?jIU)!NZU(7C1eYz&=SZ9c{~CMgNQd?e`f zW{_L$l+`i32uINSc3dZ7Z_OkXZRI-bY*=A7q+^9Km4iWh=vN_YiW&T(;vrb9jjEKY zz_bLFL|So#!i2JL%|$a^=3ZNAUfDvZ3fnN`)jEwkbQ0TJwR~pR!68^~G%{IMUJ=g$ zci-nEX<;C`*L!q}pKV!f(n4&Y&7a{sW-D2d3 z^vSSTDbmJhXyZ3$#JUNVZe_{1*xd^yEAc$a?AO5rc^rz2XJb3&4r=w~4UOwox*X_YKo~^x}ttVqWc>DWLpMCH7hl=y>K6>!A z-(1h0KYse;!CUr`d1M~E^L~5s-bZ@fe-0n$Yac!N-jk=_fAZk#?>~O>y+8JY57&dQ z`~`pRpYg{Yd~-Z~G9SOtH$K<*%=O`VqSrDW-|iBUZL8c;;`1h6#TXp@^+iu3+~jCu zss+_HSOc@43iC?-v_ftwx)_ZMJvq@h#Dw+{qEINL z2T<{LU`-z?-Ed=`#$r9Hsev{XeN8bG5`rL>=v1pW{{>G`h}_Cf)N<#-7jI_(v!~p( z8PwG;Vf+$3M8%k_Bh6@>vNKmU0})_Yz`}giaFy4Jk~;%S-c}~vlgNs2lF>FXd_LMc z#9W4msy5iofBE*Qj1(~$#id0@(CIUA;3Jf7vObZcl_gL~A09D*;4Cw}ac`qlMBZw0 zr;NC$2%QpCyl=*p8|8K3Lge&n%cr{2ZvLycPa_WU{en!E*?NPu zm>`0_G+ZTcm(WO5 z$`Fi1Kdu1eaSRrkSB&y#n^E(%M}N^wY+@Dyoud6ZWLTIn##0=L9T){`T{r*Px8MEF zgYSH}*0VqI=^*m%pY-56pN=Yj_IlCy%U`(s%2)sJGyU-s{r}(k7L`b$8s_SStjKh{ z)Gge}AP*ND#Glp>Z4;O;C`Cg!FbNh$6^{~U)0?eF9f^rB9Y0|_lwh$ppQRWi?(}zw zJ4IqI<(7qzi9(c6%teyA_8MO#sjt0w{_x4uxh_-GwO8%aDe9X~KK$TaYaZ1{?vo7l z)t7(q*%bAa^I1NXpZ@3{{`3FH?~tEBo|Sn=t~G^6#gi~q3MgTS1t6urkk%D`R^F-f zy9&*5<;IwOqZgva!>2Mjaw4xfX!?nC*N7))+;bXY%3{!|^^x!=5S845;!EN2=D#^{ z=omy39Z@(8`oA=Qh*)gJb*=ECAr13SJ>5EOHb%c*C^n;uC#K?PF`({=_v==?P@GUe z&l~ME;ow~ND%jG}g*&!D4|4P931{)Fc=O-BeWqH0s;jqcEJ$`?T$u~SEtP{!&K~I zZbLs5scUR27(!5vO&i@oI42f9;&?b&;o248#5ydDnP*BFiJpJ#7xXQgN*BC~N*U=a zj+_61r%;OM$jwsS*djYcJa!0OOzI0tEeP~5WGyrb%PbU%(Xj1sd{d7$09ZsBSUCt& z9@fQUdWDNvt*CQ>77B)!b~0$cD00(IC=_<{Kc3x5af6N5ab7~?NhCODE)euL5jzU) zz~U&fq8U$;Of+$MEZmf=g}nrHdlTL*hM8WP>vb$9{XfjW31kT22*N3;(GiO>Urtr$ z4e7j_|B0vYjcbmKl?1BH1|jo-9jgK=LW{*{6BVX1BhBQKkBFCgY4nYGDuTjVOgYl- zhHSbvBSs!f&I`9BF2%B5sF;?x&twqYGQ_g9Q3NDz{^xT>Ja#5!gd?15=v|{97B^+? z&#-yI>w-%!MLOXYv9YD70!$slqxyid_eLJBLR0{7O_;+AxK1=lxNE>Pk)jiKMMK+V zBI|7FtGfAL&QmP!u{scr6zvud#;j7izP3|%p&ips3MjrH^^d)PrTeA~I@aov7%o_+?Rnb9n*~f0z=2zU849ph(qwZZ-lL_q6C#W z?CN|rZYX28mTvwxo7Q^;OJk1r+0Fm{_95xq1sB{(CzYv= zhn|ScS}9|si32G%w#vs{6a-whFq32ayaqb9^??&f0nUxdlJcP*CWSqw;Y#1rv5rjy z1aQY%Lrv7id1rgy{2y<>`}^-fPiICh7wnL={KpMfyDFM`^#56%I2JbAVmx9M6c0Um z|EI}Z0QmTnm(7@fHk9YER4lsf?A*x(ntDMl0x)!P@X|dd1ev-c`WPi#V4!P1&PxpR z;AftHf4sy&Ul~uItq0$l>-l*0_`^?d5Le+<>@}ZTMr_LcnP>0x$T#eZmG)DD#MPl4 zN;|nI`QD-}p(*Dt!6JnKE(aA+6{(d$hLV7Yj)Ly0+y`^Nj%Uuo-5vvXpQe>UT6AUCBy|TMDo29%gerriGNMCLW$_CGkhO@=YBPEL(-kj*&GayWI zU=|xSYsI|PPDK=@BBp>_Y(Bx3?IdW(rxk+hb(SBF)cs} zdXnuG;+cP`bVchFT9HbGr9~M82eIZx%9f%EeVmK$JC^j?ic`M{Rrc)j#rrG)3rdWT zro$zxqps{zC_=iz6CI-hTTMe0b6Qk9Xfrq4wr(cVdj;DBI)=hA6*VZa9QUW#YR&do zl#4<*L!G89B@UXF(_rQ#6?=I!ulzVas=%i#&o)aG$ip4@QB9TYU zb&1k0p#bW5gV6&+y8^S<0|PsuL&ebo3)0pTj~v=>z7>jgZ6zdkbTkb*M79>1Z<*W- z_VRo#I!^@4It5$W8w1VQV(I~{;G~@vY{pg=FA*Iacn?K>F*$8*5jwGYg>+{Ax&mFI zY*!Ua6yh+B!^Yg=+=ibN!uSgqS-FP6RC!;X&nrL9z3=mz=MU#K-t$7wrK5s^!!nq% zLr)&t9G$n0iFJw?aTQt~gpQC;Z`|8fhZs5yQ^Rp-*U&J>P{4^zC;A*{QKTc?Ob0Xs%(heXg+-Qg^Mye3v}(^ugDken^3@z5mC4>!)7+0|Dvc zAHMUeXFb0AaRT~b|9;Q+|J=)e|72A^`vvcQ^S1W>ec0Yku+7*Sydhc>dwz_t(RxPu~B*gWvb@*M9sD`to<*Ii+;*_z=<%L$z7y=Cl+u z4S{NQXn-VvVKHuM7`xCVPP&;2(wIj~i{nNVMl6jPY&zKSWEqSycDyxcKM=s2NTr^^ z^^(t&jGzii9rg0Q_sUm#_ruiRSa&acuf1@ex$vc$?&_oX$c9hK>0f*GH$QqkeFW6c zblTAZq*X@ghv^vl0tffD26JS5J`j4pmGBU>tD9OJ_f`6wb#I#xzx8e&!;!^A>A-I8 zD7QGqbK9^uB2BE)ERs|{z5VW2 zUiV#=9`+c`qC)5tnP->@>xv!6n)J?4Q`y`HA!QN6q}lk~8WvirGVRyvG~Xwe_8DG6 zc48pQN57H57g;3A>gS*!hCO-?`b|}TO0!)Yz-!-~UgWxakKVPH?9N4&4qAR>K6R1x z@-Ke$gNGo)b|`iFIPrvQLJ(bm7%Q(hS@@1wlx`{xPaR}e<%ABLVo+b~WN8tz`P%)r+hYl+| zHwC02Iye6hPl26{P-$Oy^KgUCMbtcYFIZkirf`L^naiYCjHg0uoUyx55cso64;@AF zwRLDx-qu>=StG;5nI=D>*^vOdM_yFCIn0*lhDOGH^Z)V`*c}C*nJUN56>AJTgnTef zpJ=9F4c>BQ!dN+hDYW1{_B|Jj3( zo;-c=ct2jx?yDwp?0fZidGb)n(j`0v7zS7*(FMr1)H&c9GGGnCb${*&0)Wx4*o`8T z!$p@q$j!WS%Mq9RZi^l|M?`k>_NeFMJcX>Iv0lu)T~HzVstQUyT~J*cO8Juhy%f-F z_sfe)1V(X$kFXbRBu!l6>8TB~Y$NI=Jf#CjZ*@XE1G5r^Z-kN*IKf9qf{4|{#lVYQ zT+g6lwUx~;-s!a;=OR7)j&C!d#+gPqy7Vu_p%MajL^|%(QQ@0tpW;e~7FW>GH^@X~ z9C8fKnPRw%zxYX%P5NYrx}wP=IAM?p5KJgm41O9LM{$uJba6ZJ{#S4F58RYT=8^rS z-~R1ix~cTxo&U0i{}f01%I}IJefCpd(3xL&NoRh@*XY;XGMbm!Rsa26{tH&{(+89= z!^&7QQ^$D!B0m%L-nU@#5K`9L2zD8RH-OR&HgH{0jo59cL#?3DW#5G#Hkp-rtVbW}=W;bvgi6HHO)_5lhOAR&ucjvZEp@J#Je}Aq^q%NR`rfD-f276@K5ySWrvp zcpvLKi&d~_`{pls=iQ%v?VVEFpC<}-xl zJd15S#$OQ!_wH!3L)#d|b&Ou=j-ssATFePsJP{l*Ww9OPE4z<3f9X4vO(p|Jxzc># zk$KWvWyC(W+GyOxc^69@8e@bhO~}e_=vWRqsn<;r5Og3#SPrq8wo=P z?d8b4Z@>)1$C?p+n%wdY#Y;SJ=oo;V41;f08>u^Cz@aCu44>f|t}Q?*<>oKvDJbk@ z(M`|gb4ID!g=LjHmcjT};lr)sIz~_!&N%(b$aoT>VrJv-&LEw`)K;$(^GyJ2^Yp7Q z7~)#n9(Ud%lwP?%W|R==55ZUC_sw6yQ&2*%8LrG_DV_R?gHikdeIr`j8r^E6qY$N^ z7*Q3i1&hC^S0{W$x0$Pnd&-9Bp;pvtCDU{wf{fbhC}`uO#k!AaiNY?Hg~WZG*qcAW zQ{;io+%OSCf{5~(qHA74shzS06Us*)Zh~V(Mr=n^o|^|eFe+w6g(fmO!@A%MZge5p zfq9>HK%ut{8AxV{J$Cc0i-22Hgn~A5zWFQPc@sK{{;GFQ+eha}D#neTMD{Q{*DK6J zheJSii9uQnu95XwVtkg_M4Yg+U8erVp(2U&RjxX!0NS{h-UFRG8Iehhzu1t-EG`Os z*)mr+*HJUHH-GhcBTCy@3{+{}8SViTeHG0RT3yG`VXZ`SL}+XR1OcW+>l-(89dJcK zK^VjUkhVkCjk`j`YuoMwM{Vev9bW_dhVU7^`D@;J_vi1Yk776iycx$2 zgt-tVMWBwxRfmi<*T4cWO|c5ccy0Ba*GBl#di@#?>{V>g=`2kRu71ra)!lsN+uI(nH3 zILPT958xr5q|NIL*2F;oP~mRi1|-aBapc?i*ivDUSx+Ef-gk0T;3HUec-%&^AS>ln zeMfx7Gk)$@emTP_9(I8lv5Y@d4vWMaVJnGtM*DRPsoCm>i)3R-YB4dz|4b}QKbZDH ze(<))B?}n1h@)&m6HiQ>IGK?TvC7%_htUpcP_{10n6GuzlHFbnVA^ z^=fbV&&vz%b2+k~KD+P28-;L>lE>m8O&v$!@67M@O<4%vcdvNT70eucq}GXenz8(9 z4dJMkacxK#io0>F1fo;gUE(JCa~<$WMhBGW$3U%qGI)c8C^NvHT&jKT#?@QO_y$zv zE??@EALqW8`m*$M_l1HjbrO}=6!UQ}Kq^TvRNzJ@Q+X;iB)(}@x5^gm9>sV(VAmFU zp2J~PgFAa4)Pv~AsJO2%=%$FI;5<>bbvot-sWjyVht>-M6`{t@d7%nnDIq@U!N>*+ zajR^GN1npVIM(e*-nTt!LNJ0`SA0B0hVk4L!eH3{;Iuex5R67?QNSQh1`P}10#4Z& zGbJGgmly_6G*Nm^m-V}AKhFJq3?~}jvW|N$zZbq>i?KF%TcSQJ$ ziPHdR6G)yNtHFKoMhz+<9-ACH1h5#1sCA>RVNp7*Xv*%5w3F$koz{rXWQc&R7<&p@ zc6`%$!oh8Dp*O}gT(5i_0Z2|CbVC;(EwUtbQ@Nz36Ed_*jCAeCx%Z8JZ9VTFJ$`@Q z^ER21gjLv1|3#01dgIc{2<)?85<+qASG z*cE0OXyXVwixW+1dg$)x*ji5S;-$vR^Lg!VgD+3>!`)Zu@hK9X7IAh+EBB0l=@gxh z7Huh9ab|Vei`@(?N}|xKiCr`WHB{d$t&V$Eu57nB?-5-Utqav3b6f@EMa1@EfeC>_ zW}8J38A^&ZT(*oUIfqH7Iyx$Lm3B5`Dz#NO2th z6)2!vT6(3C+HcLnjUplw0!tB+u_I+MU$AeW#~8*hFq-c40ABlX?tPWt=2iaMul+Ef zD+Z6YaAKOnpj#At#8=hX}QjGCB+yIkRcZKxQnLiYHkd9>Y0iat3~1 z-18O1jg16Xa0|I#EDnUl6`#BKDgyHns}5?K%0q6WBsy&WNw4nj?Ot6(OqGpe2$-W$ zLhK;Ll$%?bYKVZc;JyNXv4hKm&Rpsew(xjzBbc*A|FEfP3WUlIgRvlXeqvCMq=tkT zGKW=p1KGeU|B))NY%STllRyt4E!Y~#+r)r$eKf}8U59BSw&ru?YaBP2*%-1)*H=$x>4>ulGh$U_%hE! zw5g+wuu3eP?k?P-w~2ofeL6ZeX*#BjH!7zMQNs}2QC>(^w8(kUrh)3GA~cP~MbQ)+ zOTA{L0g)QcBihLZ6^6}~obUn4rp20r**=~Q4UhaU{h{<*Z@v4c{I1%4-u~5-MD81k z`1Y@|jlcUbqQCg(w_pA<>vQo>pGr&@|MDurUHtXWzw9geRJrEjD}M3iS6r}+&-po@ zLam=Okny=s`1YrM#P4#L z!-~mtvpD_l#@Nf2*(n}VBy_F!il&@`(X^R+e&m};k8xR?yIZ4It5n)Ecff8%(H{0!_DdfyWgIx^oY317J8dw#mQBTP zSN|mxf)xS=RA~rQ;|)g;8D=6!l}nyt5U(=VnJxm3q(}b1k?mYMgah{#8*#W7*Tp-b z4E&x&j5o}Nt_P3KjYWT-z9PjKVKhN31{1NZK>i3?Ehw%HY*IteBU|k-<$F44gzAQJ zZ>Dq~OB0F?@#e3;zXkqB>h#N~u3{f1MxB$NdT;ct)MMy{MoDrQz~Kv&kA1H&r%2f- zQwND_!-V^R_;&~fLnk!P1o9gl#ls-&sYr^mj}B!(t~?ZU-0AK@|MT*$=GwDPmyOmR zK3gwd{NN!8z1`{eyY|}s7=!zwcb{%4ZEBBWz0z)tw2WcVQ*9Sf#i=|}x7CYFIHzST zY8UKJo@V#XEZoFFxnmli5oO@kQ?x%b=H5wyt^{pp}^U9&>jTiM-AFCXZW09ttB| z_$cEDfA^%oW3>CIVTq#P4(#pC-*`HzxNhtEAe*ATL1-;d3a#CX<~j00Ap?hT49%5@ zFfnfjgnK~}b4u9hSgICuO0`Rs)HfCwjqS5D>MaPVwX9_jSP$r{*R&Oqd%F3X-g)<{ zuR9J9!gsES#VdH@hl!tgU)U_>h=)kQV5d&4b_qzYXGKr1K!wnFz`{FWzk>Vqk-eeJ zTXT<=Yf2+hZ_LOGRXs;9r~q72lEHb~(Ry%+@vc01c@YP`y8ifwYupI{*Iu+AX8@=G z*I0*}^je#94Gn=stDR(ssV}|@LPPZoniW@t*0jFcW2%d9Tr~9B64mrcS}*z@ELsG< zlp@DCQe$RNWCypUYN_j?ST^>}-^|fFYGw`h3LOVW3*}Ps9xD-(l45IaMA*=o_}9L5f}E*5QZX_A1E^h3vtG(bm(3(C$EBQRf_MC;iNI^SAI6 z`sMV2HXPD}0O4+X8jFMc%nZ;d#~^DyYF3!G4v;Wt2BCE^PC+eCNu_(i(U|mg+@UBd z>9;O%mn|w&v`Y|l!S#?^A}p&N;)0kB#H`{O2rI(-^3)C zr|4@0?y#}3RRHl+)^sXXz~B#!!;R`Yo$)Q|^V2Dh>1M{pr5(M~CM+@(uA|P5e!7xV z5NtO$f7=_;cKo-$^X@laJ1Ek+BjS}%zQZ^RQP8R&e)xm(&Qhk+CRaRGxDZj8oC@U% z$80-xx|B|Yt6dPv_KHOUdRY*JF7VRu;1Zc^Q#95c{XCuWbKg>!0;qR{cCXxQf2juF zpFe#6>3i?3XLkV6mDlZ_p&$1seP-x~Kfi`(c& zuXoo8c_VbImCr#;%4X3YF$nBLGB+kA53Jf1_RkgWUKmH&GyKldMr7d>5;pF70@%2r z(+pSU_Beoath78r#-=z?mZaA!x{wmioZPnD>2NJ-F4w&*Zs&+ zEU$mpVSYHdd&YfH$tc@c1pk`=XE#lJA~M?E^YL9QF=|zn4!sg-7Q%`;a1)Q^9&B?% z2N8!h;2kBxM$uLfQz=+PH|iT2l{Bre4twgJ(U!|w!YfOr|L|RBE_dCvSMRQ*K2zrQ z(~|nPfAPlcJDdk6>I$8!2xib4UPgTjI5Zt%F{ngOK7~Y`>rL$(rSFERHCi140Rn>B z4MItNS}P{A5kuFBcaeL4t{kyUo@G;#Zo#(@xW*MlHtw>K_R1ppKYZW0J45AHUcE2x zz7wk1H2erVi)RW|*&vAI7>bM{x+Vy1?|!bYcS~HSctsa|?4pD0wHiI-uH~eabM?9f zd$FH%nf~~ayf+F}I{7iQQLvG!;vsujjA0o5ebf9z$ry|z}w zt8n|x-+1;0qp8D7tyUxTbc9%*gk zl;3)s`gqjVLR}NNhEN)<{6@4f9*12d;5YWkcuk}pg=$3LD$|TzUvHYu#xiZr5}cT6 z>z;NeEsG0+OLZtiA(e>P`9?5t<(t3j4AFz&gs~Lia7gF!un58zTSs7~(gEf@cG1ov zGC>(-k5ZPP-C}4um06tPXm<&@u4I`hVN^3>C8>bLO;}1??>h95jZcA_GDYKLhQIl{ z-+BFle;EC`5pj5STT~v;%*^0%SkWe*=xc*_$Mm{EN7;#)LD>y3{^ zMbv5?6$kU2%m9=crzjc;aF>7q4u%UgXhZNdVsVOZhCxwhv{&>&+$?(RJjIR$4&;d7wfC$zy0ks?skJ1t$h>Ek$ zD7FeS1*Pg$#MTR!m@X&$;G4j{z&$hzARe>Bb7<+@V-@YS#5aH6S&L~_Mvc{#u_;iP zA@YyhgtiB29DcVNv7=Xj;zSIEEW{)j%UT!}B!MHx2d0Aq`*beF(1q24Z>=7~L2YC# zm%-Syy?Smi=n1yt=I?(aAsJQl9obJ^0a)d?eu~4T&c4tIZhJN@J!W2VT`&F>D@H-8@@$gS&&&9 zxFWRKX_!K_&*J1`L)D%RSXp=~tWJS3-26kg5-&>Cn=Xpw7p@Clj2_%u^gzk!H8!ua zoU)lmk!%UyF*LkGC>YQy`RHY3uP5SaNoOe-oyjhAF-V+2;0S^K%}s&PSNS2Jp*QW> zdb!;E!{;emRcfw669vz{&22#xiWg0- zAqYC<$%UkVdlC05ek^C0(Cm1B6z~`NV?j`=>kSMuZvK(eZKiWzFe@(6)>E+EV_?}_ z#T%Jm8s=ze3M#wEQb&3YcgXawWkutPZeSeB*#WWtlsAog8#!{39K5;1M3m9d%_exL zxIzmI-F_G$-2BJie)kt%Tc-Xb3w;Z1yqACYqz{y{>$oqE;>`*OajvW&hb>p4*^8?Q zeIzmsJuE&6|0&ocg=uWq{XBm>iB+*0`y$0SG44TBNcscLiH+NPt$;%zj=8W(SBVIE zyYzOsc4)Zl5qQ2n_|3a_V%J`@I~hFF(Dtbee*5P)r(*H(LjEk9@b9(`S)N>FveY%tnHF_|S~ z53n+>YrpuTt7uc#f3(<2J?!|haC>Fee6a`LI)#io!qHb=vpZ$8^2mnIw5h!Oi#KQ! zzFf&~um{h7zTAJJr(xk@D7J7e^D1%N&&ADeQ?}T8w@MM>X@l{^rlb=A@4XB1F%Hh^ zILxS$z7;21`ktA2VyG0kD!m6WMz5tE0`-ZzZQ6x;$Ia*eIhs(H6@4~lk|NI)d1BPwECNw0AfDfIJGjnnVjwH(K4UOQ;72&7|L-%Ea z2ua7Kal1tql^{hHuGEr+6uWYn;G>YGfT(dZ=u2_<$~}9bfQ@;wNYHTQICtLsqhJ&L zt)j|uWgC&FuAD>fJ6D=mISP=Yns9uPhDQ}M3e2Ji8=8J3Q=o;m_K>s4R=2c8(zmfD zmUxbvM!|LQw1fiV79&V73xz4|plP=+H~-k{tRg)4g->s-hx_p#fAP_?_2Ant|Ks_0 zKQpm{@}_nH_u|bt;nTXRa(!W<&9aKwVk8Yt&a~&@Hz7vk9bFeVHwjZrCEvx=dRvJ$ z8KHU+xGp*+Ms3;@byJWoOll;3hoB){nl4ery*#B??w-AOV&(bx_4Pr!GqG~*rMs`E z@iTzst1tiJM?a?uVN~hQ6a$qVQG>y-93m6lF3eS@jzU3vC62A+87$fzIvv}Hr}e0} zfNZhBm|!vtsAL&tU_QDv+r}qsPzgc*S3P@$PA-u%A(_ zzWwu?gOgr0OzMq!1tR4cN7JEFhF~J^Gs) zQSgF@dny%W1vC--RVZbPe4|XR(^+!BhPY|tgj>n{7DjfLibB_Rl)fCgo{#sw(<^!9 zCA+iL1i&A;Pi?i^KfiHXO}S|Z?rO2C*@9TeM2Ml!L5smcinoGT_9)#1#;rtJjL(|_ zl@s9)#iO|$LdnJ=0HT8%bl#Jw`7#uQH}e)WtTs@ket>ISx+wz+XI+lgUAr1~NdR9w z{b>C9U19R;uGzh}2=?L@;Y|u_dP@EB+qL}8t6JFk<0lxiMKVQ2lzMjSD3?-|w_;<8 zDs;{@fgtQV&YZy!VsU6eD2SN8t5S{Ny~DP-4`7j>ia^1RazLJbT+~)jl);(>%MnH{ zu%1?mv%-E~o*B=}mWnGc+>a4qUK{v-nRv)O8Wv2jQ(d>&hVHg@tTv#MIF$frD-DDl zG0WCU9kdLHV0Qtq>5uxRGGt1oG9}-c?9D=+b7+4H)M-NphLZf|#ymCU_(hSO3Yj=> zM=JGmCxK~nD2$cCd6ZcB#3J;yFC4HEtvp5tsZLYP#7#PefhbGIL%r*y3i?hRvW-|v z_Ch682fBX$>VpfSDF9;9LNi%-xpGU?K$xhGDVf~-6YrebW8k|PmJ+-~YgrTu)GXG4 zcXH4h5S34Z#(`dq*ooffb_>X3is72o%_-#3kquu+N9hQ0BdKL>Ceo)=YNEm}gyR#A zEt_Tr?805S`6q8x?yu{xe)CTqefdHnqUYMuVp^B*k|I~i^f$~AwS^Ssl%`YBPxCy< zB!XbR?BNvNDi+RVgyIp=t+}I8O)Z{_;-pO;#8{8EQqGBTD$`zV>w^w4fSZ5%I6+`L zVFEs}Vt~cz)HG!5cWk{6e8xp)3fG1t%E&#RP9RM@i&>^!GP6$2ZX;-i%g0QJFlHkiiHt%sRYnsG#zT2C0nn(8Kwxo zKCdXPw|y<;h3F$4O&ysj+tGYjR`>>Gz(_T#xmG=Q`CVHySCSe|A+82M9!%!b-?e_Dw?{dj2uiG8azJScG@6}6Xj9SLdV5-m-0TVUffjXNdqk*c4lp%x|c z$wY0S&oAz!jO15DZByw}*lAcL-r1RE4T#~5%ht4OUmskyrhWLm_a4s2cP_TCy=wOq zFg|;o6JFDG4p$}Et%$RGGg1;*vXhuSn6MGk4TYo>YUoKHB$iC|P`Igzw~I3AjX{=m zw*6>)7+h=41ddLpHAm82APu`OWh`N5YyR_on8Ne{jnL*1XhwQP*j(Qc%Z!EExtIic$PT7y>~_L8%xL6^P3Z2U#;Ue-+$ac zdqF3b8MN<(W;-eki-Kze((AAG6j?06X9bV0lOT3EMnvSNby}cAPxRgwO4Hd7-i0_$ z6dS5jr>1d@pmgUMLo51eTu;tz1op==lxqc;?s|S)x9|J&8}r|Oww^zI|2NmekDfig z(^_=pMZCAH=Pt^6Z(s?zw5gaP?jSBljY-*sqc(CeD3K_uZ2_Y`oM$^wRNz=E-V}ko zm>hegVor? zOvez|+<_4-CJ~MJCRRt4LMrTYYfX2vma$7Mp#W>G-r^NymJY0C-eu5T8-?kWD;n2O z0_$AVTfOy(ljFo#=JV=N`dLksLkZLRC*dJLB4ZvFU!MJ-ajBcI_3r zcc=M_o%SZ-x>w=NEi`PHj`H0&+i-l;SrhK2Lr+L#8mp9KMjwUI7vYRO^@$Ca0@dTc z9EOlaLlC~%Fc9oDg3UdleABlRB0)H-VH(cp1%i8dqN+3JWgfk@D9^=C`~AB;fAJ6i z{P6jU*56}RO-?VsPc4Y=rDRx-niAUbo=i)&s>@g`%$*n~@K6Yweeq%EZ0 zbbzUYI*ZY$;f@owp)Xplv!vQmSX(W;4A(3tu0 zLgxBSYoqC72YqWd|J)Z)ya5*F?5bOXhW@UQK<`{GWm&GHvQWK}Y2MkFVeh-<4dUW)c| zyZrFI_2MDz2X{#GmDlda)qU{#qitaRd1}FJ8g03rJc5+1=2p68s){l#n<6o47ep^);IiEbP(%6z8cx> z6h=|TY4}PgZ;Z7m%PL6YdRp70pHkFpn;BM(8Cg;R%pkV7;-$jrwY^I2YsdQ>rSogA z+>cS|{Myp*vKq$F$asj^ z1!gt%k`xPk+rh*}*I~rME5X`Q)YCxpMk>lV%wQ=ya@}Z9NxS(Mz5op%Ow@e@L?>>& z*V3nMzV{`-oyMRFD0F50X4#dZ^eRTiYh4&f3AS!=F_GSg{9i~>Np0o@UBLfn4saKGYWGJ5I7VA4W$-sT|;kQ2-cV`E}XM9b?h=x6VyA< zlT|J?P~x&PLlsvS(ho*Vz3PDiW{UWz*{tgYU^TN#903Hv+ayrk)Z*_DN+l%j*8x=5Tez&5Ru36 zFc>|5))o@h2$ZdqraB5lK_H|Mm6mCDx~20=8^=a~Ll`9`B)ZEsrU<8scMEwm0g7#` z7|XDB7e&g^8Y|W4KM*GH#`8XvRjMKc1q)Q7?4X&jFg2l9kZ`&=} z1v|x?fAJ@lT)#&xxvt%CeR%_M<;S_~Vj91WqUk-MLU4kbG7@TyDQ4(`zz*ZyzV^Lo zZgZ_{5esdv#+{gsyjPa-19R8aw2AOsNKsKk=TE#@baLbdatjk76ahg3iXK!MN}wc{ zs$f@{0{AS)44-%~D-mt{#`V#nppa72O4?3F$*y_=tfeag+^Ain4XHhE1#&}1N=@sC zG;uY`drGpxSNKRcBfi6xFc%+HuYjKatX;e5un=b2G)W3$`f6_er6YVstT}=#ijKq_ zf!nS9TvMIEC1rYr8&NH-+P2x~eCkK}rUdV?ax$q27#0i;1s8N?tr*m~BwX02wy340 zFH$j#woBh|Omyt?poMbv=3jp24N&&@G6{{`-Qn7ZYqpm3%Y@Wu%J!}({N=hz5P=sz z!OxsFKpL3`-V31&z41Lg5`vDga<8DJ7o8cOL0B;$T&=LDGopwq)adEai+C6nCscs8 ziMES!(r0%#ml^JMhiiRA@N^^u@9{_6EQGBjuZ$y*x{V^G5N|qeCC*V8kS0eW^ zNRS0ldk%g`*kbydfA!2^>7?s9DNmy{sI9I8n2V(c64aKAL1fBSs`Fdul(zF-v5F15 z;E+{pKQ>0F|9hcLRzPV{si^tIdsj>t8Fi{6Y}AJyNc2drfX<(K^RK=0?l0a$TX}P% zAdK6Q6c!ZnRq@JL`sbHl7?|P6BJ$@m$68FVYIlsFb>AI>S-~GerOhLYrH^J5+7wd? zg`2E^*HHkEwOdcaR1l-&=0VYsJX-GQgIQl|N)Q*%`U!q{v0(jY!qLDp zG(njqd2PYQts_jN4bw!;5TMaUR&-{_bIl2J#b9>rm%UEc zew@pT(BJ88A_ZEKAh+v+9*tk(Qw9(0l=K%A;#ZrLB+=(yO=m2W|?!3BUB)zx_)$6*PGM z%bHtYNFD0`f63|MQ(yR?|H4Zj^dIsy`gOO>>$lYCZN~rkuTPrSb6KKTU3^Rorsy5$ ztcvOA6AH&EP$}<*Mj2fo&x+>Y8K4ADt4&_XGd5*vnH1whsTEzZP#k$hWRk>@TtM!3 zlJ;xLO9)F5Haqd5sRS4<%@nRJT70qVe(v#mPo6$o5Bm=uDw(v8-oNXcd*$`J*R<%f zDm&(lyuJt~Dth1>oDhfA5^yJzi~ylxJ;7BGSdnKL@kLzkTgq0D6{kn433xzlXuQ)I zRc67mVw|Il7rjsj7EhBIY(aY((h^3tgPNsnciM@sEmM67+dg>wgn zXHJ6rqs19YCUn{e8;H>}eb3lGa>G>!P6+#?AmyS!ViA5CuxK5oM6;u#Nw+bDhX=8k zmlj0N3M2V2M3t5;d`&7fJ2l*?wPYrDYTOIAL3I_@~vTzlPqoVNx)sqOyWtL87hR@5vJv;|XIP4KLb#}nL8(QO!*1d=Ef=#CoN+4T3Mw>ipF$Zz zXF4cNiNQNMwH%%5BCdMfK8b^Cqa>6PSL{c@mV2S3-=JtQbeyve@nrf!Swg2d+?fo1 zV}sPCP1Tjx?I&3CCs^|*So0@X^Ci~2b|1!1+CpAyTgdj+2A@n)#L}kGBjvgf^V2Dy zeAf`SoYvq4qHLBLR=<8JsCm?Y76V@ea1--fIeALW%jvgkHyRY11?tvm(<5z78h%$1 zY+3_5n;CBYjU%^d{We*cE(jRcl+Yj$EK1Sn>54M#u)^RY4%@0uFBO%t6}V`Bc9`hs zdp+W)D<~Mpk&{9nhb~h5-i3Z=AJ`*(@d$&Av4$wyJ-zWFzK3R8m4%cg}SoqJU6 z2qrV>xK6`|Nk?K%3kd^e(&zET-py#A1jOjutx|rWgP_sRvd%p%pn%zhs$XiAHMZLe zb7iw!8(1rEYFWG8{99ju#N^x~Bc5eejj3vxEneX`(XEYE64zV{Sw@O(XX4q65X6cq zW=P#?les0hv4Sm1OHS+K*U~ObNk@&2T^A7Ordvg)sR;J;)wL&4vCZW&rwU~tXwmWt z`ky&A5+}A66hFE75^DCj1+A6CrJVBL;5LuZk0`{?ybvM`C)TmpT+wbS9RPlY*%>{17k=yh<*t zBBPu(IfmF=i(Mb!b8)>@zFV^^JQwuLl~OCfu_YZeZ48T-=1H$bxEV+Dlq^;(+S=&I z>+7oVElm-RyqRwrHY{-thV5wIUrGgZo*MKE{Zt0F-ets;9DR4?=HGee-LJoPfgku> z4^v@Wd0U4=uMMdP8cPHn3@tQ13ZLlAgxd9PTWvxDArk40a8#S8VkrDDV<OVxx1)H#&Yg zX+l9(5q?_F;C&Z*08=np8&5Cr)RL}f^p!>DM?hU)m+p97IQ{lgm%}_sU!kpJo1bno z&`-3PrR|*aXkC$JHs%vW36%XJl_{}hvx?sRU~mV(Z1qc*pA6KGC^jk(hWyIdJtAC46Q>`pV(6Zm@sY|OY6IxLd{gNg99mLiavUuT%Kjcw8dG{w!SE_3q;nNfBy@ZQx}V@)+J#~ z1u^X%J#NImadEA-q8?uWe;I8ZWo5h%`i6y00bJL%#R^qxJ1y-~qC#S(zR|p@{}Aae z4Hu$j7!A*ejgkfwqr5{Dh+DWzarC{rR?&6gXuVq6$V6{5sYa`tyR+MCbrggFeyAh&X04OEW3S2|Xh%Q?__f2O6Gu)){XDhuLXlt)*F-(#DlTwNXP zmdhgr$hE#4MXpPG@hh*{k4G=~4PZYv{{ewt(PYn|5ThWXzts1L=vpO%^2U*PM zE#3TwUqIm35-|m#ZP0zSRq!~>CY%6ntOA(<&`4!6S!FqIbRv4DgW9uf`l6&KbV`+B zbAc`Vk``*95yuL5iVeN2KAf^<4uKAa;gJPax}!Aq<>k58Ub%ZtpTB@z{s<`WQwmWA-i5jO#%`nW|ZzCf=}oW+H}0U zP1tjD5U0t?y~D;*#U!-@h4b~Mx)3R#usMN`Wo*KzEomF>WJq&NdULt-6mQV%alp;)Zi=mEQasKSM1h?^R$$pHgDkFNU=ZLfkm zVz>Ig4gIqehu?;=Ii5w?z&HU_B?fUAr6z&l%gK^&e$c+R9Cp4NXZiEO3f*@t!3)Q z1xj=c*4iw)1PqE=>|Gl`Z_sU($eC`ca90pc)m`?&??@RSXhcRI;~4E>Ms!LdX?lV! z9Ue8sKd)6$eRQY9cKyQl*6a6EyzssCW!U50+JpUJ##U zgB%KPl1hU|sdPKA?i~!cgLQnds_aAw+g_TK+Idid5pd*eCV$HMje9=i)+=_;ha6LU zzV1WbeBl9#MpPFK`OF$zjgOWDs>l6BNhF&Ea?av~6JNedAzFvtr9J~%ZJHeHG)9&s z>cCGUc<1v3p4qU%p>qS~&5%Ua#=uy>1O#eLMJm#^gk@g-@rML$cf0uuYD|A?s2T{f zl$xMwQu$>= z&2gD8$@i^E0F@ALtEO155e33^x4Sr^8fZ7={HqJwO@ctejMr+gL|cMsR>PHBQE8HY zdpC`;y?2^#H!d7MhvgeT&N(c9_L9)PzkK#&Uvs&BTgPUAIa7!b4IW*}uM6%Xqtg7f zuKOO=pHIZC;6n#)v=ONZ1ls!LoWVg9(QX`VU+UR}ekEUnhAMQoHgFU;DDgoX?_`$L z##w_uA5r&7eQam`F19lt@?Ex+sWN{p4k#i5Bzwb%d&0DoTZhu-Xq7zSX>fYJ^sR9Y zd4XXnAePwG7L0jLGch`D%<0TObmCE@8i4x8ZG3eSw=2@%W{ zf#>or7=i&HL|Hyyfp>&#?*nzgXj9W{$SQZ?Bn!pTiknFeae+QCoO|P9)Ow1GNPBBi z9YT{mxF_T;R zIyP^~x)4h^Zy~C~H9>)DKWCu7$C8cLPoCc6@V8#Jd&I?-PyAc6K;C@egUdj(B__fF zI3;D^NFex2QMr!%D)owyD8<3%@z}?heKP>~>$Rj={MCMfRXUw+nKJ zugSJU?P9||dIll&aTI0ZItHt42%F~`4?xT0+k!qpLy&d(TtgLw*y`6Z>U_pSDT&C( zEam7Hz-*Tm2z+1^o`;R>VeL%p;R2iXb@hiv>s!F1v<4L;15E87cGI8sL52L0(R!I1r~VuCm;3e zzoWeU){WkeediC_cYbSaxNnVA-TmF%6|WDv+FSFUwgd@TZHdA+vAR9m9u8O!#NDAp z2LV_4wJMQy(?TE$&;(aK@h2xd52qAYGB@BwSD3uFgEE>Ur&C6No2t(!&asG`N)}($ zIC}8rtp##SYW$s1b-2)N1 zuqjLz!#tV z!GKfP%cwbh#GEBn?3B28T z4RN)>6WAoK1$(Nk=IN~{is1uNJ0}*#4_^G{)7kD7w%vN!t{8nf4Tw(hslDqLFb1)#`Y9NkP1JTccQ`Sg^OGe2@`6T4qF zmbLAY_wXypgCtHFUr|>MMCbBPA4xxN^3Zf=V6{Z}B+3FT%>ih0jL?C<*J^eD3=pyc zL+qx(>ln?Z(VaR!rMeKp+mf<&tPmE6{m#SdVtW(~n#{yfo~VcHh8tBKe=7R$mw)Eq zm})0+MCPF3e-Qhj0U|i#$@}&0mfsGqjX6N&Ss}CJWYz4F`) z%+y?8fJ7rC4b0A?s@BO*T+9j?Bg6ai;QsQ@>M1t9g-=>|^8(ngT?t@K)`dpnc}A!) zTOKCM6-zyw1@!^iX$wq5{T~N;jB)cLO%pQBOgw2m61&GF&6IYNE=w4j-fK0us;+9C3>)@pqEjO8jomE86HXxF+ob13_cG;~41r--f)K%ep)S zsI2745S^_rP6L8=k*tn^zK-wKxKz;ZVV4V56Rv@id{u_Mav#55p5x*^$dZX#A^r^7+Ys|+T(VF&bE^zT>7l>>Te5vg#_utNPq^r3#&yD(&xSc#HEH z%EpAbg-2@Ab?B-gvZe$SO#fWccI#HZ^Tpv8?e!0yKp0-#Z+yP>%3bM3FsE*W4^rnL zD7iKQhemgQ#I>D9#_w$H`;DH zjK+_9q9|C$B~D*q(LDaO66@KLVuxJZIVpbY7T2@I9Y(gE$nfqJQ{H&xemcq`hoFV= zg7&fZ89ac3FamH=y2gRwj;i5ldsOISyW4qNU%)D$fz5t&fPY8;ksLHp z!YZm3O|LC%m?!)PH#FgD52+H{8oayw%kP0CY`hiDA~uaKfZMn>2H+eB0a|U?gRpkj zTn%7XAH1h<^f9a))}0GS`8EbIRumoe?fB+=2{vQGH|0raLg8J z+0T+Xx1Qs1vit9Mm1y8{)!1EXY8DMr2cViTVz!kx38+a893BY5RhynL510Mj0 zf=1j{@$fK7&0ZPk3CEU=L9s!*rFk4pHs^HJt^54WeIDb*vllO)V4N8B{fSyPUc0M$ z@Ajnk{t)L6?1*8fa;R-(JI1gO7ZJvmaUmK4p5QyW!hk(vvsp#?QUc+br%L(R3i6tD688_aH7rt*bOC6l2J&=Cr}+Z9=vc)V+o^#V{_UbN zPr!$v{)Mn%oz2X1Gn`>>)tpw^*o~#b_td7zYXF=AUcsz#c2N2e@L#PaF9PhX`tF-s zA!=-v+iFZRM4zl%02rj3F(|DG2kVUmh8RLw2S5ln2VpETl&~K>sQ8^|vOwe@75XVy6pRMd@4}DzzwZ~e7?`SQ8(j*2DvwN9x zvw$xjuo`w{4?OL}?ZpV#WfGBDV zDp4O$jT_O(0ASMSs$$e--Ow~BFa$?oPTjC$_AR>17kQbr1)_??2PEFN8aqw|u+6Cx z!3|wZdMn`o%^v5_WIm^?-riY-pRs`1jZ~Qift*KF)%qlS<*+&{LqM!SMP~q&CYAkA zVpZ5_y5?LRdkmpV@rflKy2H!r+buR)UKE=g_%>FLV-EYZTVpZR(#wasJoe?^lyw!T z6b?c6^oxC%N&-vdvvfTa-nw*HxCAj_8|wPy88fRSxe@ISR9+Rh;N_`s;g#s%s3b#} zH47HKRC2FZv|GoBKT@YrG7Qr&DP8{fN1y)kgQvOT#GvAWEIAvoQ;q6{of5*Q#7lil zZr~a;IX)>jS5*yElzAD8^QhZ9Ta@=NwZMtv+@%#$oJ?`}4vCE*lPaxH$XB+!@2m!! z1@D0J?~O~pZNJ4?QSytIFFya`{$;|gSM3V94sX>T-Tm)xPA&xS!q)V9!hKi8=gb_P z*~?w;gChM@KMMYdR{%$NmJ{Pw*~q|wwGDz*DIPfFQ1J1DgjzQ6VaIKp+bRnHR8$8j z^(Lwjp~pSD(qjJdZylG7B3EJJkT!f$8DQ0mcSF$5u=Evl%vj%8TGOQ3lC6cNwb^yQ z33QgLZAr828c}>{(DQVK?_&;N_>y@d5U6@EdWP^3l{Cye4$LC>b@{j7Lvo8f)nz*L zcup20z_!{*U5k=8U=T`xmmuCr3A#j^rdNrG#%1gJ)~IV-Q_x{*S=Id#D`0!lsv3x` zF8ZBeErb|TBsmN~^(w@hq3s;Xxiy~?0&agJo%fL5;uAA*u&I0jUP=&-8brOMu)z|$LF~S}769zEHK4k%L&a<8s;>RAq!?x( ze)pEOIHr!l9&VzwQm(ZsPIphtA0q$GgY1{bO4RpzuMY9X)1=N(XFPrK^!a{qw)Mrz<*$apL&a3gR@TeMrK-FDEIthId<{oMJWEDkS^4tseh5jf%fEM2 zxMl6u4%iE5)q2%9@`L&k2rH`2C3WfGnt(?MafGNOeS-+9I?@gOpfU(ed2-l`4O!}O zte_ttFu1y%hST&BdCY zY5a{J=iD>%`P1i5kI`?}QppR1&>BXzRPjDymq3z~FNinTXH+LCjz39=C>hTW%LKgI z9yY7BH`5C?MW=KOAJmge} z<5eCeiK&&g#sdtEJXA-FCa>5kMX3fK5=drQT|4`DMe3RRab2L^rDEsEsa9!6cd*&f z@uEHlr+bL)W(xQTv7WXeF2ZhmM*x_~DF!K~4~|!ufh|;NQrGMb4lo|wa~{_M({YF# zTj9pdob4o)}!V@@WT??>YlG`TyN_tW(0@COph+FBGq>*F- z0649TtB;Kp#E5p}kFg!#kO&hcKAn|jZms)%vbkS+_2n1G?4u_~fy}+^!HpO1N?B$+ zm1RD_0E**US(sfZu&D500<3{|IC@Q_WCCCtQyR3q2G~#?2R&;@-QM}AM!kBND>EC+s?wNi*O`gjSF?sGoF#Z4VeJJv;oy^QZvME6NJdgVg z9E+|MaXW3cqDpGE1sWS%^}9=DH%Y*&H1-wnr8FmOL#2KIgT9=#Dy#->I>U>I&%nsN z25u1}rF*J-H4R(1Km4o4?PRAuPGA7EcPAbLyqX}yKv!jw)CIAolwFg>_5dA;SAY>E z!Qmq(Ch=?afDOl?sCL?!kL%3|&wx{`rfTF2KU}a8lT?7D+v{s3Ha|07yu6poxb?dI zG?iS{CmCbvDi=z8dYj;&G_88cG?#Q|&3kI5!@iTjJadJSw{TW^&fiW$> zg!SUe7M`Lt^>Qi@j$`x!9wB4_Mu|bNK`mbXBk^}wVSq&9MD}dzc6L(Bg(ORp+5q== zs2r^s1|PRl4F+7Q@gkaTIMktU@kH7wNQqV1bXGBwM8{JGuZFfHZDvY{Q?&}y^yqXE zw298d>&t(9^vOx5oFmEao9Vsebqc=uP_-IOeUI!eyvnjg5S78(fs9pyj%k7!L$0Gq z3qcwP^6&nb05sTJT`vSlB+aGrQVXe`J~~_1#`#Gzd#AJV#;qUcs+!Yl)lt4&ufBYC ztsY=TB_&d-#EVvHh*iDcvDUV&s(-9X`(dH*T)?%I&vuo@g0H#RLJ(65L=t^Uui zklcT)V13XE)>~f}e@kw!uWYDPg$LV`0BagrVpShGG*7zBp^J*j2JAAmzhFFeT;-s^ z5J!O5Rdz|1(_a+9HMAEZyfi&HYXSrDiU2j;(1oHc{6or_ZUZKAYB!ALndZM_b-_ z@q9o1?22ibqC{!rkh4S9FZHu~70Wt8`K}`ol>oK?56G(^uTm(RV`D)ULpRo24a#6t zReOUGjVRhkHmk^1szADZ+zk|BA%{eWEIE!2$HP6AchkvOThh$EpAxMNtO$mNl?Xqazo9L5zU)V<@-QW5x_i&zF1hA&#THLlb^b);Z}Guvzq zq0Fe$3D1b%zWnDOeE>a{-@2C1`xXXR;Vk30h;PoC=^c(SO+p6P&bHW!Tc+PBHdin@ zRv#fv%Vy3*GMY8+d4t#whAXiuh*K)nd+2b59&v1ZVaJ=KxRk$A)vKDh`KdDAp%{9o zmf)zPQN^jZ3zNcMDf_{yR6G%oIZE(DLkdRlMyZR4^E7HI;7n@tLiI{>!J>M=O~FTI zP+pBCHF#vB7p|CVO=h<`tnTx-=A|Yv;LD#l@^VhCp~t3Ha6gnEm!MRvF;29xNSq)p z>1(7sRvOaP!n!%Ap1;EjKoD6@fe*sC#O3&LPP5%p&9%Tnc#uzoG{|^>P%0M$e>bM& zzU$?`IP9F*0wt5T26|LHm>T8h#2AvZ(5x^4_pO>~Bp9_+YJi`x8goieTtj&>B51{! zIwx?C)HW13bQ?ng*lO%>QRh1mi>297K+)mcV1nM~%YS*S1&fy@4HhDA)>ufBHHHf> z0$y<(>#UNUlB%YJPfUP?s{k38IO`t>>dId=VPkNZ#$F@^?3QOj)~cE0?(X^LNrG}gDZ%LnybM<$*_5m8yh%vL`|s!1fX7kbpe9d zU!q!#QZQ->D;O4@gI6)wS>0-Yh|<22kQm@t5`h7B-IOvbt_~@7UHw2gvU*6mCcH_CFRI>M z=BGBdA?+1uj*5P9(4^B6RBfMERXbF+p<}RClBPs(D5^6GIx4;m_$3`8;Il?cu*oXp z;z=c=W6Qha+T%c)@7zF|G~_jNld5OQ!WkZ{CV_3B`cfV{ZcXE`S+hB}ZqafRbJQtq zr?b7jmZB_K8kJMOz6t6ur&Tw2+0;XBQ36VAjcVwK(UKu;L2-(}6Zv^3X^ zRL%#mE6XL0x`~9*Yw{(rc);~BB7Qu%ChCLL0nj`lQZ+32#YVVL1Fbp^>+#xz`!?M0 z(N8P!l*@nf(Ff4RdmgNOhF4`dH-XQ}Sj+vBL&Q%1uQXzs1rtG_K~pVk!nE#oF{cpja=N?(sFo)L&JgGNc5|DeYO1pa{;eP9 z92Nfmc2gCba8OuS4}d&%%=oV@Ut{92+ORN+yYqn9pR91h5(P4!6yJn#M zDv?XVbBY9TS|Xe>CK7=y(3muhWD8tW;~9Riho4+^|EZTE8NFZqqkr^QFIB$e_?Ig#(_6nSQT=Pb@<$GH|3kmc&+u_?X;ow5Dg}%g9&YL(n>NSM90pq6O6jaS z?R(WX#k|zn0u!=I#m%e?88Jcy40fdfm9XBc!I{4YPLQj%IN4@va{P+a;WFTdTL9OLd>VdctD0mp{HL9(?P?yP_~*-zwF;``_QZWU&$Fl>6wK?Xe5dc zRHShRBG_gQKO`;=J)BE9b>W9mjFczsRzqryu|&9nF0k?Lxdylr!8j9BjcU!DB*CNS6)7jDWbg&OQGDO3>-zr_ha6gEz&lVB%$u9-l! z8?Q0C!BwSW3`m3^xDb*VUKcN=K?Euekw1mCP3X?fZb1jZ#O{D9>3mOg>wy;M2_x?vrY*!lG?P;uzeUPy_H=myH-yfOyf)ijTU8|`BvQ^E~2dn7$Ww_T=1$RzT zPUk?0@Wcv}Y6i9)BrVwrh!~!#`@^Qv1kEU!Nhvvk;Q*K!+t=Q1FDOkgOKpJN>sSW7 z>g9iU53(u&Tx_I#0H(u@Ck%8q4{L-dU{Bc=Uurt4_bna*pMWV4f)~Co#2y{aQT5GJ z7N;=nW|PXgst!OES?U_Y4v@HySh;gr9O1axVXWbNjRxq);qo(@7Qip+)~^&5^@bW* zk4Cu3aMbNGG}Eauw2i#M`JjaX%C|>toMs9bn1sNuuu0=7{Btv@?^aD{EMg0)|1i350-{p-4m|A@e*F0Ze>r?tv^5I zs6LQD%YM`&DKQ|5MGDb{Ly}b_ffqi?bHMuted|^D4%|mH)*Yz^*$~eO-5mzaKbMC; zL@~Z0Au=V)y{+JV4|-OM+4%e}dZ~x-ycyZP3-+JAyU>$#ws{SD7Rcm^MigA3< zOd4IlLJw^4YSA~lj@H|98(so~%A7)7I8VRewTb17p%A$1mR?o~k^-1beOjYb&7Drg zI+f*2R(3a=olzcRwXjsCqya7GZ0)UwG~Fw7diJ7&tzTXlRekG~yV3*t_Wa2B5c4B{ z?E@GV^*_E3adb}ei1JLTe`?TwUELcV{_q1+cSFV&V|c6DuqUXSDtBg8$+Fjc?Y2Ql zz{db?t!s}F0hZ7`w~o$Zy90>L5RQ#ix3hIfC6z%+eXPsxG-}4Yjmm*F|v%?<2c}r8=o7nLvp$y(;_7NL@&?cuT(5}VK z3%t`=B$fb}ubfbu#AqDk*4#JF{0vQnefWgcYf-^s$;zVYs1M95F*u#VV(co5!T zOH~FH95{pRvlOM4h{(p_>-ceFR5i|a`I?IEdfnxJepDs@j$Xij`q4w9+NE;D?4-pO zm6&u=Mp_c4k!FYAS^CDnL(mlQ(gi$0(l8n)ajj^wM*rrmS8@>QG*uq5Gx*C&&{(Q_ zEmx;-ECILL;KxAwq>A0@u;z2(>c&I;&N<^Rp4^REymwJ@<7K-t*VCTndOplW3D9m; zK>0f8ghnJogBOdKv+G8qp*f}7rWCp&9y}I!pAVGdRO&P`{*K7I1?Y$qw&Ge1n1(Z| z!g#w=C9wEhc~ibe03kM1uQ9k2%6Iu+-iM}1S7kW%(bW<>fsjq2##j`1cj8i*bEwe!Xp;q2Y^0KU)<`kkzlIVSj-)p0eZtbz^<4SZ@+(7aD< z_r%scsx@t
*Z<-PcPC-@E>=!OgbGjx(&`B<` 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

C4fSIri6 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 literal 0 HcmV?d00001 diff --git a/costs/__tests__/ensureOnlyOne.ts b/costs/__tests__/ensureOnlyOne.ts index af56e59da..ee86dddb2 100644 --- a/costs/__tests__/ensureOnlyOne.ts +++ b/costs/__tests__/ensureOnlyOne.ts @@ -388,6 +388,15 @@ WHEN (request_response_rmt.model ILIKE 'o1-mini-2024-09-12') THEN 3000 * request ELSE 0 END ) +WHEN (request_response_rmt.provider = 'X') THEN ( + CASE + WHEN (request_response_rmt.model ILIKE 'grok-beta') THEN 5000 * request_response_rmt.prompt_tokens + 15000 * request_response_rmt.completion_tokens +WHEN (request_response_rmt.model ILIKE 'grok-vision-beta') THEN 5000 * request_response_rmt.prompt_tokens + 15000 * request_response_rmt.completion_tokens +WHEN (request_response_rmt.model ILIKE 'grok-2-1212') THEN 2000 * request_response_rmt.prompt_tokens + 10000 * request_response_rmt.completion_tokens +WHEN (request_response_rmt.model ILIKE 'grok-2-vision-1212') THEN 2000 * request_response_rmt.prompt_tokens + 10000 * request_response_rmt.completion_tokens + ELSE 0 +END +) WHEN (request_response_rmt.provider = 'TOGETHER') THEN ( CASE WHEN (request_response_rmt.model ILIKE 'allenai/OLMo-7B-Instruct') THEN 200 * request_response_rmt.prompt_tokens + 200 * request_response_rmt.completion_tokens @@ -802,6 +811,15 @@ WHEN (request_response_rmt.provider = 'DEEPSEEK') THEN ( WHEN (request_response_rmt.model ILIKE 'deepseek-chat') THEN 14 * request_response_rmt.prompt_tokens + 28 * request_response_rmt.completion_tokens ELSE 0 END +) +WHEN (request_response_rmt.provider = 'AVIAN') THEN ( + CASE + WHEN (request_response_rmt.model ILIKE 'Meta-Llama-3.1-405B-Instruct') THEN 1500 * request_response_rmt.prompt_tokens + 1500 * request_response_rmt.completion_tokens +WHEN (request_response_rmt.model ILIKE 'Meta-Llama-3.3-70B-Instruct') THEN 450 * request_response_rmt.prompt_tokens + 450 * request_response_rmt.completion_tokens +WHEN (request_response_rmt.model ILIKE 'Meta-Llama-3.1-70B-Instruct') THEN 450 * request_response_rmt.prompt_tokens + 450 * request_response_rmt.completion_tokens +WHEN (request_response_rmt.model ILIKE 'Meta-Llama-3.1-8B-Instruct') THEN 100 * request_response_rmt.prompt_tokens + 100 * request_response_rmt.completion_tokens + ELSE 0 +END ) ELSE CASE diff --git a/costs/src/providers/avian/index.ts b/costs/src/providers/avian/index.ts new file mode 100644 index 000000000..0ae179db3 --- /dev/null +++ b/costs/src/providers/avian/index.ts @@ -0,0 +1,44 @@ +import { ModelRow } from "../../interfaces/Cost"; + +export const costs: ModelRow[] = [ + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-405B-Instruct", + }, + cost: { + prompt_token: 0.0000015, + completion_token: 0.0000015, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.3-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-8B-Instruct", + }, + cost: { + prompt_token: 0.0000001, + completion_token: 0.0000001, + }, + }, +]; diff --git a/costs/src/providers/mappings.ts b/costs/src/providers/mappings.ts index 2a7fdf359..f4b7a2d53 100644 --- a/costs/src/providers/mappings.ts +++ b/costs/src/providers/mappings.ts @@ -17,6 +17,7 @@ import { anthropicProvider } from "./anthropic"; import { costs as awsBedrockCosts } from "./awsBedrock"; import { costs as deepseekCosts } from "./deepseek"; import { costs as xCosts } from "./x"; +import { costs as avianCosts } from "./avian"; const openAiPattern = /^https:\/\/api\.openai\.com/; const anthropicPattern = /^https:\/\/api\.anthropic\.com/; @@ -55,6 +56,7 @@ const awsBedrock = /^https:\/\/bedrock-runtime\.[a-z0-9-]+\.amazonaws\.com\/.*/; const deepseek = /^https:\/\/api\.deepseek\.com/; // https://api.x.ai const x = /^https:\/\/api\.x\.ai/; +const avianPattern = /^https:\/\/api\.avian\.io/; export const providersNames = [ "OPENAI", @@ -82,6 +84,7 @@ export const providersNames = [ "AWS", "DEEPSEEK", "X", + "AVIAN" ] as const; export type ProviderName = (typeof providersNames)[number]; @@ -215,6 +218,11 @@ export const providers: { provider: "DEEPSEEK", costs: deepseekCosts, }, + { + pattern: avianPattern, + provider: "AVIAN", + costs: avianCosts, + }, ]; export const playgroundModels: { diff --git a/valhalla/jawn/src/packages/cost/providers/avian/index.ts b/valhalla/jawn/src/packages/cost/providers/avian/index.ts new file mode 100644 index 000000000..0ae179db3 --- /dev/null +++ b/valhalla/jawn/src/packages/cost/providers/avian/index.ts @@ -0,0 +1,44 @@ +import { ModelRow } from "../../interfaces/Cost"; + +export const costs: ModelRow[] = [ + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-405B-Instruct", + }, + cost: { + prompt_token: 0.0000015, + completion_token: 0.0000015, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.3-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-8B-Instruct", + }, + cost: { + prompt_token: 0.0000001, + completion_token: 0.0000001, + }, + }, +]; diff --git a/valhalla/jawn/src/packages/cost/providers/mappings.ts b/valhalla/jawn/src/packages/cost/providers/mappings.ts index 33d6215fe..f4b7a2d53 100644 --- a/valhalla/jawn/src/packages/cost/providers/mappings.ts +++ b/valhalla/jawn/src/packages/cost/providers/mappings.ts @@ -16,6 +16,8 @@ import { openAIProvider } from "./openai"; import { anthropicProvider } from "./anthropic"; import { costs as awsBedrockCosts } from "./awsBedrock"; import { costs as deepseekCosts } from "./deepseek"; +import { costs as xCosts } from "./x"; +import { costs as avianCosts } from "./avian"; const openAiPattern = /^https:\/\/api\.openai\.com/; const anthropicPattern = /^https:\/\/api\.anthropic\.com/; @@ -52,6 +54,9 @@ const firecrawl = /^https:\/\/api\.firecrawl\.dev/; const awsBedrock = /^https:\/\/bedrock-runtime\.[a-z0-9-]+\.amazonaws\.com\/.*/; // https://api.deepseek.com const deepseek = /^https:\/\/api\.deepseek\.com/; +// https://api.x.ai +const x = /^https:\/\/api\.x\.ai/; +const avianPattern = /^https:\/\/api\.avian\.io/; export const providersNames = [ "OPENAI", @@ -78,6 +83,8 @@ export const providersNames = [ "FIRECRAWL", "AWS", "DEEPSEEK", + "X", + "AVIAN" ] as const; export type ProviderName = (typeof providersNames)[number]; @@ -127,6 +134,11 @@ export const providers: { pattern: cloudflareAiGatewayPattern, provider: "CLOUDFLARE", }, + { + pattern: x, + provider: "X", + costs: xCosts, + }, { pattern: twoYFV, provider: "2YFV", @@ -206,6 +218,11 @@ export const providers: { provider: "DEEPSEEK", costs: deepseekCosts, }, + { + pattern: avianPattern, + provider: "AVIAN", + costs: avianCosts, + }, ]; export const playgroundModels: { diff --git a/web/packages/cost/providers/avian/index.ts b/web/packages/cost/providers/avian/index.ts new file mode 100644 index 000000000..0ae179db3 --- /dev/null +++ b/web/packages/cost/providers/avian/index.ts @@ -0,0 +1,44 @@ +import { ModelRow } from "../../interfaces/Cost"; + +export const costs: ModelRow[] = [ + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-405B-Instruct", + }, + cost: { + prompt_token: 0.0000015, + completion_token: 0.0000015, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.3-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-8B-Instruct", + }, + cost: { + prompt_token: 0.0000001, + completion_token: 0.0000001, + }, + }, +]; diff --git a/web/packages/cost/providers/mappings.ts b/web/packages/cost/providers/mappings.ts index 33d6215fe..f4b7a2d53 100644 --- a/web/packages/cost/providers/mappings.ts +++ b/web/packages/cost/providers/mappings.ts @@ -16,6 +16,8 @@ import { openAIProvider } from "./openai"; import { anthropicProvider } from "./anthropic"; import { costs as awsBedrockCosts } from "./awsBedrock"; import { costs as deepseekCosts } from "./deepseek"; +import { costs as xCosts } from "./x"; +import { costs as avianCosts } from "./avian"; const openAiPattern = /^https:\/\/api\.openai\.com/; const anthropicPattern = /^https:\/\/api\.anthropic\.com/; @@ -52,6 +54,9 @@ const firecrawl = /^https:\/\/api\.firecrawl\.dev/; const awsBedrock = /^https:\/\/bedrock-runtime\.[a-z0-9-]+\.amazonaws\.com\/.*/; // https://api.deepseek.com const deepseek = /^https:\/\/api\.deepseek\.com/; +// https://api.x.ai +const x = /^https:\/\/api\.x\.ai/; +const avianPattern = /^https:\/\/api\.avian\.io/; export const providersNames = [ "OPENAI", @@ -78,6 +83,8 @@ export const providersNames = [ "FIRECRAWL", "AWS", "DEEPSEEK", + "X", + "AVIAN" ] as const; export type ProviderName = (typeof providersNames)[number]; @@ -127,6 +134,11 @@ export const providers: { pattern: cloudflareAiGatewayPattern, provider: "CLOUDFLARE", }, + { + pattern: x, + provider: "X", + costs: xCosts, + }, { pattern: twoYFV, provider: "2YFV", @@ -206,6 +218,11 @@ export const providers: { provider: "DEEPSEEK", costs: deepseekCosts, }, + { + pattern: avianPattern, + provider: "AVIAN", + costs: avianCosts, + }, ]; export const playgroundModels: { diff --git a/worker/src/packages/cost/providers/avian/index.ts b/worker/src/packages/cost/providers/avian/index.ts new file mode 100644 index 000000000..0ae179db3 --- /dev/null +++ b/worker/src/packages/cost/providers/avian/index.ts @@ -0,0 +1,44 @@ +import { ModelRow } from "../../interfaces/Cost"; + +export const costs: ModelRow[] = [ + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-405B-Instruct", + }, + cost: { + prompt_token: 0.0000015, + completion_token: 0.0000015, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.3-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-70B-Instruct", + }, + cost: { + prompt_token: 0.00000045, + completion_token: 0.00000045, + }, + }, + { + model: { + operator: "equals", + value: "Meta-Llama-3.1-8B-Instruct", + }, + cost: { + prompt_token: 0.0000001, + completion_token: 0.0000001, + }, + }, +]; diff --git a/worker/src/packages/cost/providers/mappings.ts b/worker/src/packages/cost/providers/mappings.ts index 33d6215fe..f4b7a2d53 100644 --- a/worker/src/packages/cost/providers/mappings.ts +++ b/worker/src/packages/cost/providers/mappings.ts @@ -16,6 +16,8 @@ import { openAIProvider } from "./openai"; import { anthropicProvider } from "./anthropic"; import { costs as awsBedrockCosts } from "./awsBedrock"; import { costs as deepseekCosts } from "./deepseek"; +import { costs as xCosts } from "./x"; +import { costs as avianCosts } from "./avian"; const openAiPattern = /^https:\/\/api\.openai\.com/; const anthropicPattern = /^https:\/\/api\.anthropic\.com/; @@ -52,6 +54,9 @@ const firecrawl = /^https:\/\/api\.firecrawl\.dev/; const awsBedrock = /^https:\/\/bedrock-runtime\.[a-z0-9-]+\.amazonaws\.com\/.*/; // https://api.deepseek.com const deepseek = /^https:\/\/api\.deepseek\.com/; +// https://api.x.ai +const x = /^https:\/\/api\.x\.ai/; +const avianPattern = /^https:\/\/api\.avian\.io/; export const providersNames = [ "OPENAI", @@ -78,6 +83,8 @@ export const providersNames = [ "FIRECRAWL", "AWS", "DEEPSEEK", + "X", + "AVIAN" ] as const; export type ProviderName = (typeof providersNames)[number]; @@ -127,6 +134,11 @@ export const providers: { pattern: cloudflareAiGatewayPattern, provider: "CLOUDFLARE", }, + { + pattern: x, + provider: "X", + costs: xCosts, + }, { pattern: twoYFV, provider: "2YFV", @@ -206,6 +218,11 @@ export const providers: { provider: "DEEPSEEK", costs: deepseekCosts, }, + { + pattern: avianPattern, + provider: "AVIAN", + costs: avianCosts, + }, ]; export const playgroundModels: { From fe90cc37e4c1a29d3f9103fdaad88a57db3a1163 Mon Sep 17 00:00:00 2001 From: Jake Dluhy Date: Thu, 23 Jan 2025 19:30:11 +0100 Subject: [PATCH 2/2] Remove files --- costs/.pnp.cjs | 12332 --------------------------------- costs/.pnp.loader.mjs | 2126 ------ costs/.yarn/install-state.gz | Bin 371572 -> 0 bytes 3 files changed, 14458 deletions(-) delete mode 100755 costs/.pnp.cjs delete mode 100644 costs/.pnp.loader.mjs delete mode 100644 costs/.yarn/install-state.gz diff --git a/costs/.pnp.cjs b/costs/.pnp.cjs deleted file mode 100755 index 332ef8996..000000000 --- a/costs/.pnp.cjs +++ /dev/null @@ -1,12332 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -// @ts-nocheck -"use strict"; - -const RAW_RUNTIME_STATE = -'{\ - "__info": [\ - "This file is automatically generated. Do not touch it, or risk",\ - "your modifications being lost."\ - ],\ - "dependencyTreeRoots": [\ - {\ - "name": "GenAICost",\ - "reference": "workspace:."\ - }\ - ],\ - "enableTopLevelFallback": true,\ - "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\ - "fallbackExclusionList": [\ - ["GenAICost", ["workspace:."]]\ - ],\ - "fallbackPool": [\ - ],\ - "packageRegistryData": [\ - [null, [\ - [null, {\ - "packageLocation": "./",\ - "packageDependencies": [\ - ["@jest/globals", "npm:29.7.0"],\ - ["@types/jest", "npm:29.5.14"],\ - ["@types/node", "npm:20.17.16"],\ - ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ - ["nodemon", "npm:3.1.9"],\ - ["ts-jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5"],\ - ["ts-node", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2"],\ - ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["@ampproject/remapping", [\ - ["npm:2.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@ampproject-remapping-npm-2.3.0-559c14eee4-10c0.zip/node_modules/@ampproject/remapping/",\ - "packageDependencies": [\ - ["@ampproject/remapping", "npm:2.3.0"],\ - ["@jridgewell/gen-mapping", "npm:0.3.8"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/code-frame", [\ - ["npm:7.26.2", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-code-frame-npm-7.26.2-4902b56813-10c0.zip/node_modules/@babel/code-frame/",\ - "packageDependencies": [\ - ["@babel/code-frame", "npm:7.26.2"],\ - ["@babel/helper-validator-identifier", "npm:7.25.9"],\ - ["js-tokens", "npm:4.0.0"],\ - ["picocolors", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/compat-data", [\ - ["npm:7.26.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-compat-data-npm-7.26.5-b6047aeefb-10c0.zip/node_modules/@babel/compat-data/",\ - "packageDependencies": [\ - ["@babel/compat-data", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/core", [\ - ["npm:7.26.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-core-npm-7.26.0-6f14d37f26-10c0.zip/node_modules/@babel/core/",\ - "packageDependencies": [\ - ["@babel/core", "npm:7.26.0"],\ - ["@ampproject/remapping", "npm:2.3.0"],\ - ["@babel/code-frame", "npm:7.26.2"],\ - ["@babel/generator", "npm:7.26.5"],\ - ["@babel/helper-compilation-targets", "npm:7.26.5"],\ - ["@babel/helper-module-transforms", "virtual:6f14d37f26f87c55654e510172561c825f7eb822527d5aaba60d24913853c925a2338249715305c87baadd7e7b73f94aba8cb62d407d8bb26b18bd6b90ca945f#npm:7.26.0"],\ - ["@babel/helpers", "npm:7.26.0"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@babel/template", "npm:7.25.9"],\ - ["@babel/traverse", "npm:7.26.5"],\ - ["@babel/types", "npm:7.26.5"],\ - ["convert-source-map", "npm:2.0.0"],\ - ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ - ["gensync", "npm:1.0.0-beta.2"],\ - ["json5", "npm:2.2.3"],\ - ["semver", "npm:6.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/generator", [\ - ["npm:7.26.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-generator-npm-7.26.5-8de063382c-10c0.zip/node_modules/@babel/generator/",\ - "packageDependencies": [\ - ["@babel/generator", "npm:7.26.5"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@babel/types", "npm:7.26.5"],\ - ["@jridgewell/gen-mapping", "npm:0.3.8"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["jsesc", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-compilation-targets", [\ - ["npm:7.26.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helper-compilation-targets-npm-7.26.5-e3b4215b3c-10c0.zip/node_modules/@babel/helper-compilation-targets/",\ - "packageDependencies": [\ - ["@babel/helper-compilation-targets", "npm:7.26.5"],\ - ["@babel/compat-data", "npm:7.26.5"],\ - ["@babel/helper-validator-option", "npm:7.25.9"],\ - ["browserslist", "npm:4.24.4"],\ - ["lru-cache", "npm:5.1.1"],\ - ["semver", "npm:6.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-module-imports", [\ - ["npm:7.25.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helper-module-imports-npm-7.25.9-b86e31bde9-10c0.zip/node_modules/@babel/helper-module-imports/",\ - "packageDependencies": [\ - ["@babel/helper-module-imports", "npm:7.25.9"],\ - ["@babel/traverse", "npm:7.26.5"],\ - ["@babel/types", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-module-transforms", [\ - ["npm:7.26.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helper-module-transforms-npm-7.26.0-7557a3558f-10c0.zip/node_modules/@babel/helper-module-transforms/",\ - "packageDependencies": [\ - ["@babel/helper-module-transforms", "npm:7.26.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:6f14d37f26f87c55654e510172561c825f7eb822527d5aaba60d24913853c925a2338249715305c87baadd7e7b73f94aba8cb62d407d8bb26b18bd6b90ca945f#npm:7.26.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-helper-module-transforms-virtual-5ddb520440/4/.yarn/berry/cache/@babel-helper-module-transforms-npm-7.26.0-7557a3558f-10c0.zip/node_modules/@babel/helper-module-transforms/",\ - "packageDependencies": [\ - ["@babel/helper-module-transforms", "virtual:6f14d37f26f87c55654e510172561c825f7eb822527d5aaba60d24913853c925a2338249715305c87baadd7e7b73f94aba8cb62d407d8bb26b18bd6b90ca945f#npm:7.26.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-module-imports", "npm:7.25.9"],\ - ["@babel/helper-validator-identifier", "npm:7.25.9"],\ - ["@babel/traverse", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-plugin-utils", [\ - ["npm:7.26.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helper-plugin-utils-npm-7.26.5-f9c17c9880-10c0.zip/node_modules/@babel/helper-plugin-utils/",\ - "packageDependencies": [\ - ["@babel/helper-plugin-utils", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-string-parser", [\ - ["npm:7.25.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helper-string-parser-npm-7.25.9-eade578078-10c0.zip/node_modules/@babel/helper-string-parser/",\ - "packageDependencies": [\ - ["@babel/helper-string-parser", "npm:7.25.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-validator-identifier", [\ - ["npm:7.25.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helper-validator-identifier-npm-7.25.9-2634b947a4-10c0.zip/node_modules/@babel/helper-validator-identifier/",\ - "packageDependencies": [\ - ["@babel/helper-validator-identifier", "npm:7.25.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helper-validator-option", [\ - ["npm:7.25.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helper-validator-option-npm-7.25.9-6450027d5d-10c0.zip/node_modules/@babel/helper-validator-option/",\ - "packageDependencies": [\ - ["@babel/helper-validator-option", "npm:7.25.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/helpers", [\ - ["npm:7.26.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-helpers-npm-7.26.0-d7ff09b837-10c0.zip/node_modules/@babel/helpers/",\ - "packageDependencies": [\ - ["@babel/helpers", "npm:7.26.0"],\ - ["@babel/template", "npm:7.25.9"],\ - ["@babel/types", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/parser", [\ - ["npm:7.26.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-parser-npm-7.26.5-2514b2b265-10c0.zip/node_modules/@babel/parser/",\ - "packageDependencies": [\ - ["@babel/parser", "npm:7.26.5"],\ - ["@babel/types", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-async-generators", [\ - ["npm:7.8.4", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-10c0.zip/node_modules/@babel/plugin-syntax-async-generators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-async-generators", "npm:7.8.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-993f7fd03e/4/.yarn/berry/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-10c0.zip/node_modules/@babel/plugin-syntax-async-generators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-async-generators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-de958d470e/4/.yarn/berry/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-10c0.zip/node_modules/@babel/plugin-syntax-async-generators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-async-generators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-bigint", [\ - ["npm:7.8.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-10c0.zip/node_modules/@babel/plugin-syntax-bigint/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-bigint", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-bigint-virtual-58d7bec2f4/4/.yarn/berry/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-10c0.zip/node_modules/@babel/plugin-syntax-bigint/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-bigint", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-bigint-virtual-1b018ab51f/4/.yarn/berry/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-10c0.zip/node_modules/@babel/plugin-syntax-bigint/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-bigint", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-class-properties", [\ - ["npm:7.12.13", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-10c0.zip/node_modules/@babel/plugin-syntax-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-properties", "npm:7.12.13"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-7c6db10d10/4/.yarn/berry/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-10c0.zip/node_modules/@babel/plugin-syntax-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-properties", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.12.13"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.12.13", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-31941d65fb/4/.yarn/berry/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-10c0.zip/node_modules/@babel/plugin-syntax-class-properties/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-properties", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.12.13"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-class-static-block", [\ - ["npm:7.14.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-10c0.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-static-block", "npm:7.14.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-static-block-virtual-bde8a43daf/4/.yarn/berry/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-10c0.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-static-block", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-static-block-virtual-2b1a0dfadb/4/.yarn/berry/cache/@babel-plugin-syntax-class-static-block-npm-7.14.5-7bdd0ff1b3-10c0.zip/node_modules/@babel/plugin-syntax-class-static-block/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-class-static-block", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-import-attributes", [\ - ["npm:7.26.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-import-attributes-npm-7.26.0-7a281ed168-10c0.zip/node_modules/@babel/plugin-syntax-import-attributes/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-attributes", "npm:7.26.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.26.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-attributes-virtual-5cf75e242a/4/.yarn/berry/cache/@babel-plugin-syntax-import-attributes-npm-7.26.0-7a281ed168-10c0.zip/node_modules/@babel/plugin-syntax-import-attributes/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-attributes", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.26.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.26.0", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-attributes-virtual-b07269264d/4/.yarn/berry/cache/@babel-plugin-syntax-import-attributes-npm-7.26.0-7a281ed168-10c0.zip/node_modules/@babel/plugin-syntax-import-attributes/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-attributes", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.26.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-import-meta", [\ - ["npm:7.10.4", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-10c0.zip/node_modules/@babel/plugin-syntax-import-meta/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-meta", "npm:7.10.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-meta-virtual-0f69c506d3/4/.yarn/berry/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-10c0.zip/node_modules/@babel/plugin-syntax-import-meta/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-meta", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-meta-virtual-f93c2fb8fd/4/.yarn/berry/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-10c0.zip/node_modules/@babel/plugin-syntax-import-meta/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-import-meta", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-json-strings", [\ - ["npm:7.8.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-10c0.zip/node_modules/@babel/plugin-syntax-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-json-strings", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-070ad1091b/4/.yarn/berry/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-10c0.zip/node_modules/@babel/plugin-syntax-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-json-strings", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-a3f0e0e160/4/.yarn/berry/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-10c0.zip/node_modules/@babel/plugin-syntax-json-strings/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-json-strings", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-jsx", [\ - ["npm:7.25.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-jsx-npm-7.25.9-3df022f433-10c0.zip/node_modules/@babel/plugin-syntax-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-jsx", "npm:7.25.9"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-jsx-virtual-e925165891/4/.yarn/berry/cache/@babel-plugin-syntax-jsx-npm-7.25.9-3df022f433-10c0.zip/node_modules/@babel/plugin-syntax-jsx/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-jsx", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-logical-assignment-operators", [\ - ["npm:7.10.4", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-10c0.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-logical-assignment-operators", "npm:7.10.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-ff68e11bd5/4/.yarn/berry/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-10c0.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-762ebed7b4/4/.yarn/berry/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-10c0.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", [\ - ["npm:7.8.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-10c0.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-383b231c23/4/.yarn/berry/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-10c0.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-6f8077d6a2/4/.yarn/berry/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-10c0.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-numeric-separator", [\ - ["npm:7.10.4", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-10c0.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-numeric-separator", "npm:7.10.4"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-a60ecf78fb/4/.yarn/berry/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-10c0.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-numeric-separator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-86bbfce2ec/4/.yarn/berry/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-10c0.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-numeric-separator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-object-rest-spread", [\ - ["npm:7.8.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-10c0.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-object-rest-spread", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-0311abb51d/4/.yarn/berry/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-10c0.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-b130a3afe0/4/.yarn/berry/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-10c0.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-optional-catch-binding", [\ - ["npm:7.8.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-10c0.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-catch-binding", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-d5627250c6/4/.yarn/berry/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-10c0.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-601db1a615/4/.yarn/berry/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-10c0.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-optional-chaining", [\ - ["npm:7.8.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-10c0.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-chaining", "npm:7.8.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-a53e18a8d9/4/.yarn/berry/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-10c0.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-chaining", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-9f24dd2e8f/4/.yarn/berry/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-10c0.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-optional-chaining", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-private-property-in-object", [\ - ["npm:7.14.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-10c0.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-private-property-in-object", "npm:7.14.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-private-property-in-object-virtual-9c5d44fe2f/4/.yarn/berry/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-10c0.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-private-property-in-object-virtual-1411e93096/4/.yarn/berry/cache/@babel-plugin-syntax-private-property-in-object-npm-7.14.5-ee837fdbb2-10c0.zip/node_modules/@babel/plugin-syntax-private-property-in-object/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-top-level-await", [\ - ["npm:7.14.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-10c0.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-top-level-await", "npm:7.14.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-245beac28c/4/.yarn/berry/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-10c0.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-top-level-await", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-f2ed5d8320/4/.yarn/berry/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-10c0.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-top-level-await", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/plugin-syntax-typescript", [\ - ["npm:7.25.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-plugin-syntax-typescript-npm-7.25.9-5201e4ba77-10c0.zip/node_modules/@babel/plugin-syntax-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-typescript", "npm:7.25.9"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9", {\ - "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-typescript-virtual-6a025e44cd/4/.yarn/berry/cache/@babel-plugin-syntax-typescript-npm-7.25.9-5201e4ba77-10c0.zip/node_modules/@babel/plugin-syntax-typescript/",\ - "packageDependencies": [\ - ["@babel/plugin-syntax-typescript", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/template", [\ - ["npm:7.25.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-template-npm-7.25.9-d903b7b6d5-10c0.zip/node_modules/@babel/template/",\ - "packageDependencies": [\ - ["@babel/template", "npm:7.25.9"],\ - ["@babel/code-frame", "npm:7.26.2"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@babel/types", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/traverse", [\ - ["npm:7.26.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-traverse-npm-7.26.5-a3d61690ba-10c0.zip/node_modules/@babel/traverse/",\ - "packageDependencies": [\ - ["@babel/traverse", "npm:7.26.5"],\ - ["@babel/code-frame", "npm:7.26.2"],\ - ["@babel/generator", "npm:7.26.5"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@babel/template", "npm:7.25.9"],\ - ["@babel/types", "npm:7.26.5"],\ - ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ - ["globals", "npm:11.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@babel/types", [\ - ["npm:7.26.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@babel-types-npm-7.26.5-8e8f93f536-10c0.zip/node_modules/@babel/types/",\ - "packageDependencies": [\ - ["@babel/types", "npm:7.26.5"],\ - ["@babel/helper-string-parser", "npm:7.25.9"],\ - ["@babel/helper-validator-identifier", "npm:7.25.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@bcoe/v8-coverage", [\ - ["npm:0.2.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-10c0.zip/node_modules/@bcoe/v8-coverage/",\ - "packageDependencies": [\ - ["@bcoe/v8-coverage", "npm:0.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@cspotcode/source-map-support", [\ - ["npm:0.8.1", {\ - "packageLocation": "../../../.yarn/berry/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-10c0.zip/node_modules/@cspotcode/source-map-support/",\ - "packageDependencies": [\ - ["@cspotcode/source-map-support", "npm:0.8.1"],\ - ["@jridgewell/trace-mapping", "npm:0.3.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@isaacs/cliui", [\ - ["npm:8.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-10c0.zip/node_modules/@isaacs/cliui/",\ - "packageDependencies": [\ - ["@isaacs/cliui", "npm:8.0.2"],\ - ["string-width", "npm:5.1.2"],\ - ["string-width-cjs", [\ - "string-width",\ - "npm:4.2.3"\ - ]],\ - ["strip-ansi", "npm:7.1.0"],\ - ["strip-ansi-cjs", [\ - "strip-ansi",\ - "npm:6.0.1"\ - ]],\ - ["wrap-ansi", "npm:8.1.0"],\ - ["wrap-ansi-cjs", [\ - "wrap-ansi",\ - "npm:7.0.0"\ - ]]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@isaacs/fs-minipass", [\ - ["npm:4.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-10c0.zip/node_modules/@isaacs/fs-minipass/",\ - "packageDependencies": [\ - ["@isaacs/fs-minipass", "npm:4.0.1"],\ - ["minipass", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@istanbuljs/load-nyc-config", [\ - ["npm:1.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-10c0.zip/node_modules/@istanbuljs/load-nyc-config/",\ - "packageDependencies": [\ - ["@istanbuljs/load-nyc-config", "npm:1.1.0"],\ - ["camelcase", "npm:5.3.1"],\ - ["find-up", "npm:4.1.0"],\ - ["get-package-type", "npm:0.1.0"],\ - ["js-yaml", "npm:3.14.1"],\ - ["resolve-from", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@istanbuljs/schema", [\ - ["npm:0.1.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-10c0.zip/node_modules/@istanbuljs/schema/",\ - "packageDependencies": [\ - ["@istanbuljs/schema", "npm:0.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/console", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-console-npm-29.7.0-77689f186f-10c0.zip/node_modules/@jest/console/",\ - "packageDependencies": [\ - ["@jest/console", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["chalk", "npm:4.1.2"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/core", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-core-npm-29.7.0-cef60d74c4-10c0.zip/node_modules/@jest/core/",\ - "packageDependencies": [\ - ["@jest/core", "npm:29.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0", {\ - "packageLocation": "./.yarn/__virtual__/@jest-core-virtual-ebd37f90be/4/.yarn/berry/cache/@jest-core-npm-29.7.0-cef60d74c4-10c0.zip/node_modules/@jest/core/",\ - "packageDependencies": [\ - ["@jest/core", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ - ["@jest/console", "npm:29.7.0"],\ - ["@jest/reporters", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/transform", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["@types/node-notifier", null],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["chalk", "npm:4.1.2"],\ - ["ci-info", "npm:3.9.0"],\ - ["exit", "npm:0.1.2"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-changed-files", "npm:29.7.0"],\ - ["jest-config", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ - ["jest-haste-map", "npm:29.7.0"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-regex-util", "npm:29.6.3"],\ - ["jest-resolve", "npm:29.7.0"],\ - ["jest-resolve-dependencies", "npm:29.7.0"],\ - ["jest-runner", "npm:29.7.0"],\ - ["jest-runtime", "npm:29.7.0"],\ - ["jest-snapshot", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-validate", "npm:29.7.0"],\ - ["jest-watcher", "npm:29.7.0"],\ - ["micromatch", "npm:4.0.8"],\ - ["node-notifier", null],\ - ["pretty-format", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"],\ - ["strip-ansi", "npm:6.0.1"]\ - ],\ - "packagePeers": [\ - "@types/node-notifier",\ - "node-notifier"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/environment", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-environment-npm-29.7.0-97705658d0-10c0.zip/node_modules/@jest/environment/",\ - "packageDependencies": [\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/fake-timers", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["jest-mock", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/expect", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-expect-npm-29.7.0-9dfe9cebaa-10c0.zip/node_modules/@jest/expect/",\ - "packageDependencies": [\ - ["@jest/expect", "npm:29.7.0"],\ - ["expect", "npm:29.7.0"],\ - ["jest-snapshot", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/expect-utils", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-expect-utils-npm-29.7.0-14740cc487-10c0.zip/node_modules/@jest/expect-utils/",\ - "packageDependencies": [\ - ["@jest/expect-utils", "npm:29.7.0"],\ - ["jest-get-type", "npm:29.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/fake-timers", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-fake-timers-npm-29.7.0-e4174d1b56-10c0.zip/node_modules/@jest/fake-timers/",\ - "packageDependencies": [\ - ["@jest/fake-timers", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@sinonjs/fake-timers", "npm:10.3.0"],\ - ["@types/node", "npm:22.10.9"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-mock", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/globals", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-globals-npm-29.7.0-06f2bd411e-10c0.zip/node_modules/@jest/globals/",\ - "packageDependencies": [\ - ["@jest/globals", "npm:29.7.0"],\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/expect", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["jest-mock", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/reporters", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-reporters-npm-29.7.0-2561cd7a09-10c0.zip/node_modules/@jest/reporters/",\ - "packageDependencies": [\ - ["@jest/reporters", "npm:29.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0", {\ - "packageLocation": "./.yarn/__virtual__/@jest-reporters-virtual-4561b1acc1/4/.yarn/berry/cache/@jest-reporters-npm-29.7.0-2561cd7a09-10c0.zip/node_modules/@jest/reporters/",\ - "packageDependencies": [\ - ["@jest/reporters", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ - ["@bcoe/v8-coverage", "npm:0.2.3"],\ - ["@jest/console", "npm:29.7.0"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/transform", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["@types/node", "npm:22.10.9"],\ - ["@types/node-notifier", null],\ - ["chalk", "npm:4.1.2"],\ - ["collect-v8-coverage", "npm:1.0.2"],\ - ["exit", "npm:0.1.2"],\ - ["glob", "npm:7.2.3"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["istanbul-lib-coverage", "npm:3.2.2"],\ - ["istanbul-lib-instrument", "npm:6.0.3"],\ - ["istanbul-lib-report", "npm:3.0.1"],\ - ["istanbul-lib-source-maps", "npm:4.0.1"],\ - ["istanbul-reports", "npm:3.1.7"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-worker", "npm:29.7.0"],\ - ["node-notifier", null],\ - ["slash", "npm:3.0.0"],\ - ["string-length", "npm:4.0.2"],\ - ["strip-ansi", "npm:6.0.1"],\ - ["v8-to-istanbul", "npm:9.3.0"]\ - ],\ - "packagePeers": [\ - "@types/node-notifier",\ - "node-notifier"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/schemas", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-schemas-npm-29.6.3-292730e442-10c0.zip/node_modules/@jest/schemas/",\ - "packageDependencies": [\ - ["@jest/schemas", "npm:29.6.3"],\ - ["@sinclair/typebox", "npm:0.27.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/source-map", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-source-map-npm-29.6.3-8bb8289263-10c0.zip/node_modules/@jest/source-map/",\ - "packageDependencies": [\ - ["@jest/source-map", "npm:29.6.3"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["callsites", "npm:3.1.0"],\ - ["graceful-fs", "npm:4.2.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/test-result", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-test-result-npm-29.7.0-4bb532101b-10c0.zip/node_modules/@jest/test-result/",\ - "packageDependencies": [\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/console", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/istanbul-lib-coverage", "npm:2.0.6"],\ - ["collect-v8-coverage", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/test-sequencer", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-test-sequencer-npm-29.7.0-291f23a495-10c0.zip/node_modules/@jest/test-sequencer/",\ - "packageDependencies": [\ - ["@jest/test-sequencer", "npm:29.7.0"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-haste-map", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/transform", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-transform-npm-29.7.0-af20d68b57-10c0.zip/node_modules/@jest/transform/",\ - "packageDependencies": [\ - ["@jest/transform", "npm:29.7.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["babel-plugin-istanbul", "npm:6.1.1"],\ - ["chalk", "npm:4.1.2"],\ - ["convert-source-map", "npm:2.0.0"],\ - ["fast-json-stable-stringify", "npm:2.1.0"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-haste-map", "npm:29.7.0"],\ - ["jest-regex-util", "npm:29.6.3"],\ - ["jest-util", "npm:29.7.0"],\ - ["micromatch", "npm:4.0.8"],\ - ["pirates", "npm:4.0.6"],\ - ["slash", "npm:3.0.0"],\ - ["write-file-atomic", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jest/types", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@jest-types-npm-29.6.3-a584ca999d-10c0.zip/node_modules/@jest/types/",\ - "packageDependencies": [\ - ["@jest/types", "npm:29.6.3"],\ - ["@jest/schemas", "npm:29.6.3"],\ - ["@types/istanbul-lib-coverage", "npm:2.0.6"],\ - ["@types/istanbul-reports", "npm:3.0.4"],\ - ["@types/node", "npm:22.10.9"],\ - ["@types/yargs", "npm:17.0.33"],\ - ["chalk", "npm:4.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/gen-mapping", [\ - ["npm:0.3.8", {\ - "packageLocation": "../../../.yarn/berry/cache/@jridgewell-gen-mapping-npm-0.3.8-647be6e286-10c0.zip/node_modules/@jridgewell/gen-mapping/",\ - "packageDependencies": [\ - ["@jridgewell/gen-mapping", "npm:0.3.8"],\ - ["@jridgewell/set-array", "npm:1.2.1"],\ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/resolve-uri", [\ - ["npm:3.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-10c0.zip/node_modules/@jridgewell/resolve-uri/",\ - "packageDependencies": [\ - ["@jridgewell/resolve-uri", "npm:3.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/set-array", [\ - ["npm:1.2.1", {\ - "packageLocation": "../../../.yarn/berry/cache/@jridgewell-set-array-npm-1.2.1-2312928209-10c0.zip/node_modules/@jridgewell/set-array/",\ - "packageDependencies": [\ - ["@jridgewell/set-array", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/sourcemap-codec", [\ - ["npm:1.5.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@jridgewell-sourcemap-codec-npm-1.5.0-dfd9126d71-10c0.zip/node_modules/@jridgewell/sourcemap-codec/",\ - "packageDependencies": [\ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/trace-mapping", [\ - ["npm:0.3.25", {\ - "packageLocation": "../../../.yarn/berry/cache/@jridgewell-trace-mapping-npm-0.3.25-c076fd2279-10c0.zip/node_modules/@jridgewell/trace-mapping/",\ - "packageDependencies": [\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["@jridgewell/resolve-uri", "npm:3.1.2"],\ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.3.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-10c0.zip/node_modules/@jridgewell/trace-mapping/",\ - "packageDependencies": [\ - ["@jridgewell/trace-mapping", "npm:0.3.9"],\ - ["@jridgewell/resolve-uri", "npm:3.1.2"],\ - ["@jridgewell/sourcemap-codec", "npm:1.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@npmcli/agent", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@npmcli-agent-npm-3.0.0-169e79294f-10c0.zip/node_modules/@npmcli/agent/",\ - "packageDependencies": [\ - ["@npmcli/agent", "npm:3.0.0"],\ - ["agent-base", "npm:7.1.3"],\ - ["http-proxy-agent", "npm:7.0.2"],\ - ["https-proxy-agent", "npm:7.0.6"],\ - ["lru-cache", "npm:10.4.3"],\ - ["socks-proxy-agent", "npm:8.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@npmcli/fs", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@npmcli-fs-npm-4.0.0-1d9cc8a27b-10c0.zip/node_modules/@npmcli/fs/",\ - "packageDependencies": [\ - ["@npmcli/fs", "npm:4.0.0"],\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@pkgjs/parseargs", [\ - ["npm:0.11.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-10c0.zip/node_modules/@pkgjs/parseargs/",\ - "packageDependencies": [\ - ["@pkgjs/parseargs", "npm:0.11.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sinclair/typebox", [\ - ["npm:0.27.8", {\ - "packageLocation": "../../../.yarn/berry/cache/@sinclair-typebox-npm-0.27.8-23e206d653-10c0.zip/node_modules/@sinclair/typebox/",\ - "packageDependencies": [\ - ["@sinclair/typebox", "npm:0.27.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sinonjs/commons", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/@sinonjs-commons-npm-3.0.1-bffb9f5a53-10c0.zip/node_modules/@sinonjs/commons/",\ - "packageDependencies": [\ - ["@sinonjs/commons", "npm:3.0.1"],\ - ["type-detect", "npm:4.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@sinonjs/fake-timers", [\ - ["npm:10.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/@sinonjs-fake-timers-npm-10.3.0-7417f876b4-10c0.zip/node_modules/@sinonjs/fake-timers/",\ - "packageDependencies": [\ - ["@sinonjs/fake-timers", "npm:10.3.0"],\ - ["@sinonjs/commons", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node10", [\ - ["npm:1.0.11", {\ - "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node10-npm-1.0.11-ab23db00e2-10c0.zip/node_modules/@tsconfig/node10/",\ - "packageDependencies": [\ - ["@tsconfig/node10", "npm:1.0.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node12", [\ - ["npm:1.0.11", {\ - "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-10c0.zip/node_modules/@tsconfig/node12/",\ - "packageDependencies": [\ - ["@tsconfig/node12", "npm:1.0.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node14", [\ - ["npm:1.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node14-npm-1.0.3-15321421d2-10c0.zip/node_modules/@tsconfig/node14/",\ - "packageDependencies": [\ - ["@tsconfig/node14", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node16", [\ - ["npm:1.0.4", {\ - "packageLocation": "../../../.yarn/berry/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-10c0.zip/node_modules/@tsconfig/node16/",\ - "packageDependencies": [\ - ["@tsconfig/node16", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__core", [\ - ["npm:7.20.5", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-babel__core-npm-7.20.5-4d95f75eab-10c0.zip/node_modules/@types/babel__core/",\ - "packageDependencies": [\ - ["@types/babel__core", "npm:7.20.5"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@babel/types", "npm:7.26.5"],\ - ["@types/babel__generator", "npm:7.6.8"],\ - ["@types/babel__template", "npm:7.4.4"],\ - ["@types/babel__traverse", "npm:7.20.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__generator", [\ - ["npm:7.6.8", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-babel__generator-npm-7.6.8-61be1197d9-10c0.zip/node_modules/@types/babel__generator/",\ - "packageDependencies": [\ - ["@types/babel__generator", "npm:7.6.8"],\ - ["@babel/types", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__template", [\ - ["npm:7.4.4", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-babel__template-npm-7.4.4-f34eba762c-10c0.zip/node_modules/@types/babel__template/",\ - "packageDependencies": [\ - ["@types/babel__template", "npm:7.4.4"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@babel/types", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/babel__traverse", [\ - ["npm:7.20.6", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-babel__traverse-npm-7.20.6-fac4243243-10c0.zip/node_modules/@types/babel__traverse/",\ - "packageDependencies": [\ - ["@types/babel__traverse", "npm:7.20.6"],\ - ["@babel/types", "npm:7.26.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/graceful-fs", [\ - ["npm:4.1.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-graceful-fs-npm-4.1.9-ebd697fe83-10c0.zip/node_modules/@types/graceful-fs/",\ - "packageDependencies": [\ - ["@types/graceful-fs", "npm:4.1.9"],\ - ["@types/node", "npm:22.10.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/istanbul-lib-coverage", [\ - ["npm:2.0.6", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-istanbul-lib-coverage-npm-2.0.6-2ea31fda9c-10c0.zip/node_modules/@types/istanbul-lib-coverage/",\ - "packageDependencies": [\ - ["@types/istanbul-lib-coverage", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/istanbul-lib-report", [\ - ["npm:3.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-istanbul-lib-report-npm-3.0.3-a5c0ef4b88-10c0.zip/node_modules/@types/istanbul-lib-report/",\ - "packageDependencies": [\ - ["@types/istanbul-lib-report", "npm:3.0.3"],\ - ["@types/istanbul-lib-coverage", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/istanbul-reports", [\ - ["npm:3.0.4", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-istanbul-reports-npm-3.0.4-1afa69db29-10c0.zip/node_modules/@types/istanbul-reports/",\ - "packageDependencies": [\ - ["@types/istanbul-reports", "npm:3.0.4"],\ - ["@types/istanbul-lib-report", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/jest", [\ - ["npm:29.5.14", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-jest-npm-29.5.14-506446c38e-10c0.zip/node_modules/@types/jest/",\ - "packageDependencies": [\ - ["@types/jest", "npm:29.5.14"],\ - ["expect", "npm:29.7.0"],\ - ["pretty-format", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/node", [\ - ["npm:20.17.16", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-node-npm-20.17.16-1448f7653e-10c0.zip/node_modules/@types/node/",\ - "packageDependencies": [\ - ["@types/node", "npm:20.17.16"],\ - ["undici-types", "npm:6.19.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:22.10.9", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-node-npm-22.10.9-13bae5b325-10c0.zip/node_modules/@types/node/",\ - "packageDependencies": [\ - ["@types/node", "npm:22.10.9"],\ - ["undici-types", "npm:6.20.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/stack-utils", [\ - ["npm:2.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-stack-utils-npm-2.0.3-48a0a03262-10c0.zip/node_modules/@types/stack-utils/",\ - "packageDependencies": [\ - ["@types/stack-utils", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/yargs", [\ - ["npm:17.0.33", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-yargs-npm-17.0.33-1d6cca6a2e-10c0.zip/node_modules/@types/yargs/",\ - "packageDependencies": [\ - ["@types/yargs", "npm:17.0.33"],\ - ["@types/yargs-parser", "npm:21.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/yargs-parser", [\ - ["npm:21.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/@types-yargs-parser-npm-21.0.3-1d265246a1-10c0.zip/node_modules/@types/yargs-parser/",\ - "packageDependencies": [\ - ["@types/yargs-parser", "npm:21.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["GenAICost", [\ - ["workspace:.", {\ - "packageLocation": "./",\ - "packageDependencies": [\ - ["GenAICost", "workspace:."],\ - ["@jest/globals", "npm:29.7.0"],\ - ["@types/jest", "npm:29.5.14"],\ - ["@types/node", "npm:20.17.16"],\ - ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ - ["nodemon", "npm:3.1.9"],\ - ["ts-jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5"],\ - ["ts-node", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2"],\ - ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["abbrev", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/abbrev-npm-3.0.0-946682a7b1-10c0.zip/node_modules/abbrev/",\ - "packageDependencies": [\ - ["abbrev", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn", [\ - ["npm:8.14.0", {\ - "packageLocation": "../../../.yarn/berry/cache/acorn-npm-8.14.0-dc46f61424-10c0.zip/node_modules/acorn/",\ - "packageDependencies": [\ - ["acorn", "npm:8.14.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn-walk", [\ - ["npm:8.3.4", {\ - "packageLocation": "../../../.yarn/berry/cache/acorn-walk-npm-8.3.4-a75fa85ead-10c0.zip/node_modules/acorn-walk/",\ - "packageDependencies": [\ - ["acorn-walk", "npm:8.3.4"],\ - ["acorn", "npm:8.14.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["agent-base", [\ - ["npm:7.1.3", {\ - "packageLocation": "../../../.yarn/berry/cache/agent-base-npm-7.1.3-b2c16e72fb-10c0.zip/node_modules/agent-base/",\ - "packageDependencies": [\ - ["agent-base", "npm:7.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-escapes", [\ - ["npm:4.3.2", {\ - "packageLocation": "../../../.yarn/berry/cache/ansi-escapes-npm-4.3.2-3ad173702f-10c0.zip/node_modules/ansi-escapes/",\ - "packageDependencies": [\ - ["ansi-escapes", "npm:4.3.2"],\ - ["type-fest", "npm:0.21.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-regex", [\ - ["npm:5.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/ansi-regex-npm-5.0.1-c963a48615-10c0.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/ansi-regex-npm-6.1.0-abe011aae4-10c0.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:6.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-styles", [\ - ["npm:4.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/ansi-styles-npm-4.3.0-245c7d42c7-10c0.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:4.3.0"],\ - ["color-convert", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/ansi-styles-npm-5.2.0-72fc7003e3-10c0.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:5.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.2.1", {\ - "packageLocation": "../../../.yarn/berry/cache/ansi-styles-npm-6.2.1-d43647018c-10c0.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:6.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["anymatch", [\ - ["npm:3.1.3", {\ - "packageLocation": "../../../.yarn/berry/cache/anymatch-npm-3.1.3-bc81d103b1-10c0.zip/node_modules/anymatch/",\ - "packageDependencies": [\ - ["anymatch", "npm:3.1.3"],\ - ["normalize-path", "npm:3.0.0"],\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["arg", [\ - ["npm:4.1.3", {\ - "packageLocation": "../../../.yarn/berry/cache/arg-npm-4.1.3-1748b966a8-10c0.zip/node_modules/arg/",\ - "packageDependencies": [\ - ["arg", "npm:4.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["argparse", [\ - ["npm:1.0.10", {\ - "packageLocation": "../../../.yarn/berry/cache/argparse-npm-1.0.10-528934e59d-10c0.zip/node_modules/argparse/",\ - "packageDependencies": [\ - ["argparse", "npm:1.0.10"],\ - ["sprintf-js", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["async", [\ - ["npm:3.2.6", {\ - "packageLocation": "../../../.yarn/berry/cache/async-npm-3.2.6-aa4f5aa081-10c0.zip/node_modules/async/",\ - "packageDependencies": [\ - ["async", "npm:3.2.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-jest", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/babel-jest-npm-29.7.0-273152fbe9-10c0.zip/node_modules/babel-jest/",\ - "packageDependencies": [\ - ["babel-jest", "npm:29.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-jest-virtual-2d4f934288/4/.yarn/berry/cache/babel-jest-npm-29.7.0-273152fbe9-10c0.zip/node_modules/babel-jest/",\ - "packageDependencies": [\ - ["babel-jest", "virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@jest/transform", "npm:29.7.0"],\ - ["@types/babel__core", "npm:7.20.5"],\ - ["babel-plugin-istanbul", "npm:6.1.1"],\ - ["babel-preset-jest", "virtual:2d4f934288a0649feae4e51ef5a9d7083e91a8c6b48b6d4df288a52de955b6169a31e5eb9d2a554122a6d7a1601a1ccbdef246009cb0c156ccbaa06ee39708d4#npm:29.6.3"],\ - ["chalk", "npm:4.1.2"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "packagePeers": [\ - "@babel/core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-istanbul", [\ - ["npm:6.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/babel-plugin-istanbul-npm-6.1.1-df824055e4-10c0.zip/node_modules/babel-plugin-istanbul/",\ - "packageDependencies": [\ - ["babel-plugin-istanbul", "npm:6.1.1"],\ - ["@babel/helper-plugin-utils", "npm:7.26.5"],\ - ["@istanbuljs/load-nyc-config", "npm:1.1.0"],\ - ["@istanbuljs/schema", "npm:0.1.3"],\ - ["istanbul-lib-instrument", "npm:5.2.1"],\ - ["test-exclude", "npm:6.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-plugin-jest-hoist", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/babel-plugin-jest-hoist-npm-29.6.3-46120a3297-10c0.zip/node_modules/babel-plugin-jest-hoist/",\ - "packageDependencies": [\ - ["babel-plugin-jest-hoist", "npm:29.6.3"],\ - ["@babel/template", "npm:7.25.9"],\ - ["@babel/types", "npm:7.26.5"],\ - ["@types/babel__core", "npm:7.20.5"],\ - ["@types/babel__traverse", "npm:7.20.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-preset-current-node-syntax", [\ - ["npm:1.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/babel-preset-current-node-syntax-npm-1.1.0-a3b84fe89f-10c0.zip/node_modules/babel-preset-current-node-syntax/",\ - "packageDependencies": [\ - ["babel-preset-current-node-syntax", "npm:1.1.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:1.1.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-preset-current-node-syntax-virtual-56983eadc3/4/.yarn/berry/cache/babel-preset-current-node-syntax-npm-1.1.0-a3b84fe89f-10c0.zip/node_modules/babel-preset-current-node-syntax/",\ - "packageDependencies": [\ - ["babel-preset-current-node-syntax", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:1.1.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/plugin-syntax-async-generators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.4"],\ - ["@babel/plugin-syntax-bigint", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/plugin-syntax-class-properties", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.12.13"],\ - ["@babel/plugin-syntax-class-static-block", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ - ["@babel/plugin-syntax-import-attributes", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.26.0"],\ - ["@babel/plugin-syntax-import-meta", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ - ["@babel/plugin-syntax-json-strings", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/plugin-syntax-numeric-separator", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.10.4"],\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.8.3"],\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ - ["@babel/plugin-syntax-top-level-await", "virtual:56983eadc3c47b8ff78947bf83bf74beaf98595aa1663469b8284ac81b75ed2a46043c0f61e9ddb974a8fecf3bb0c5cce07c960d63c698b865f157e5cd64d225#npm:7.14.5"],\ - ["@types/babel__core", null]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:2fd98883bcacdd60393a39d2678d9a6b2984920a475eefaca8eabb7028560c27be01978db07604a9e96565db1e54ce85ad5f434d9e2e97256c079ff3852b7b83#npm:1.1.0", {\ - "packageLocation": "./.yarn/__virtual__/babel-preset-current-node-syntax-virtual-c43175144d/4/.yarn/berry/cache/babel-preset-current-node-syntax-npm-1.1.0-a3b84fe89f-10c0.zip/node_modules/babel-preset-current-node-syntax/",\ - "packageDependencies": [\ - ["babel-preset-current-node-syntax", "virtual:2fd98883bcacdd60393a39d2678d9a6b2984920a475eefaca8eabb7028560c27be01978db07604a9e96565db1e54ce85ad5f434d9e2e97256c079ff3852b7b83#npm:1.1.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/plugin-syntax-async-generators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.4"],\ - ["@babel/plugin-syntax-bigint", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/plugin-syntax-class-properties", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.12.13"],\ - ["@babel/plugin-syntax-class-static-block", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ - ["@babel/plugin-syntax-import-attributes", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.26.0"],\ - ["@babel/plugin-syntax-import-meta", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ - ["@babel/plugin-syntax-json-strings", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/plugin-syntax-numeric-separator", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.10.4"],\ - ["@babel/plugin-syntax-object-rest-spread", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/plugin-syntax-optional-chaining", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.8.3"],\ - ["@babel/plugin-syntax-private-property-in-object", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ - ["@babel/plugin-syntax-top-level-await", "virtual:c43175144d633300f211bf60446a8c3bbd93bd0b5424fc4176462017b964f8577c4d450084f85a5e0d78e700dd999749913651c1f9ec6dfe177216565ba7ca83#npm:7.14.5"],\ - ["@types/babel__core", "npm:7.20.5"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["babel-preset-jest", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/babel-preset-jest-npm-29.6.3-44bf6eeda9-10c0.zip/node_modules/babel-preset-jest/",\ - "packageDependencies": [\ - ["babel-preset-jest", "npm:29.6.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:2d4f934288a0649feae4e51ef5a9d7083e91a8c6b48b6d4df288a52de955b6169a31e5eb9d2a554122a6d7a1601a1ccbdef246009cb0c156ccbaa06ee39708d4#npm:29.6.3", {\ - "packageLocation": "./.yarn/__virtual__/babel-preset-jest-virtual-2fd98883bc/4/.yarn/berry/cache/babel-preset-jest-npm-29.6.3-44bf6eeda9-10c0.zip/node_modules/babel-preset-jest/",\ - "packageDependencies": [\ - ["babel-preset-jest", "virtual:2d4f934288a0649feae4e51ef5a9d7083e91a8c6b48b6d4df288a52de955b6169a31e5eb9d2a554122a6d7a1601a1ccbdef246009cb0c156ccbaa06ee39708d4#npm:29.6.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@types/babel__core", "npm:7.20.5"],\ - ["babel-plugin-jest-hoist", "npm:29.6.3"],\ - ["babel-preset-current-node-syntax", "virtual:2fd98883bcacdd60393a39d2678d9a6b2984920a475eefaca8eabb7028560c27be01978db07604a9e96565db1e54ce85ad5f434d9e2e97256c079ff3852b7b83#npm:1.1.0"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@types/babel__core"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["balanced-match", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/balanced-match-npm-1.0.2-a53c126459-10c0.zip/node_modules/balanced-match/",\ - "packageDependencies": [\ - ["balanced-match", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["binary-extensions", [\ - ["npm:2.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/binary-extensions-npm-2.3.0-bd3f20d865-10c0.zip/node_modules/binary-extensions/",\ - "packageDependencies": [\ - ["binary-extensions", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["brace-expansion", [\ - ["npm:1.1.11", {\ - "packageLocation": "../../../.yarn/berry/cache/brace-expansion-npm-1.1.11-fb95eb05ad-10c0.zip/node_modules/brace-expansion/",\ - "packageDependencies": [\ - ["brace-expansion", "npm:1.1.11"],\ - ["balanced-match", "npm:1.0.2"],\ - ["concat-map", "npm:0.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/brace-expansion-npm-2.0.1-17aa2616f9-10c0.zip/node_modules/brace-expansion/",\ - "packageDependencies": [\ - ["brace-expansion", "npm:2.0.1"],\ - ["balanced-match", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["braces", [\ - ["npm:3.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/braces-npm-3.0.3-582c14023c-10c0.zip/node_modules/braces/",\ - "packageDependencies": [\ - ["braces", "npm:3.0.3"],\ - ["fill-range", "npm:7.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["browserslist", [\ - ["npm:4.24.4", {\ - "packageLocation": "../../../.yarn/berry/cache/browserslist-npm-4.24.4-2fdeb5face-10c0.zip/node_modules/browserslist/",\ - "packageDependencies": [\ - ["browserslist", "npm:4.24.4"],\ - ["caniuse-lite", "npm:1.0.30001695"],\ - ["electron-to-chromium", "npm:1.5.86"],\ - ["node-releases", "npm:2.0.19"],\ - ["update-browserslist-db", "virtual:2fdeb5face9914bb5fd94c70f084d153c80d2f09e5aabee010e4220b248dc23fca8f73c7beed0195e45ae6e2b1cb25388f709d7bfc4f00e473d573887faf4e5c#npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bs-logger", [\ - ["npm:0.2.6", {\ - "packageLocation": "../../../.yarn/berry/cache/bs-logger-npm-0.2.6-7670f88b66-10c0.zip/node_modules/bs-logger/",\ - "packageDependencies": [\ - ["bs-logger", "npm:0.2.6"],\ - ["fast-json-stable-stringify", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bser", [\ - ["npm:2.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/bser-npm-2.1.1-cc902055ce-10c0.zip/node_modules/bser/",\ - "packageDependencies": [\ - ["bser", "npm:2.1.1"],\ - ["node-int64", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["buffer-from", [\ - ["npm:1.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/buffer-from-npm-1.1.2-03d2f20d7e-10c0.zip/node_modules/buffer-from/",\ - "packageDependencies": [\ - ["buffer-from", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cacache", [\ - ["npm:19.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/cacache-npm-19.0.1-395cba1936-10c0.zip/node_modules/cacache/",\ - "packageDependencies": [\ - ["cacache", "npm:19.0.1"],\ - ["@npmcli/fs", "npm:4.0.0"],\ - ["fs-minipass", "npm:3.0.3"],\ - ["glob", "npm:10.4.5"],\ - ["lru-cache", "npm:10.4.3"],\ - ["minipass", "npm:7.1.2"],\ - ["minipass-collect", "npm:2.0.1"],\ - ["minipass-flush", "npm:1.0.5"],\ - ["minipass-pipeline", "npm:1.2.4"],\ - ["p-map", "npm:7.0.3"],\ - ["ssri", "npm:12.0.0"],\ - ["tar", "npm:7.4.3"],\ - ["unique-filename", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["callsites", [\ - ["npm:3.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/callsites-npm-3.1.0-268f989910-10c0.zip/node_modules/callsites/",\ - "packageDependencies": [\ - ["callsites", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["camelcase", [\ - ["npm:5.3.1", {\ - "packageLocation": "../../../.yarn/berry/cache/camelcase-npm-5.3.1-5db8af62c5-10c0.zip/node_modules/camelcase/",\ - "packageDependencies": [\ - ["camelcase", "npm:5.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/camelcase-npm-6.3.0-e5e42a0d15-10c0.zip/node_modules/camelcase/",\ - "packageDependencies": [\ - ["camelcase", "npm:6.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["caniuse-lite", [\ - ["npm:1.0.30001695", {\ - "packageLocation": "../../../.yarn/berry/cache/caniuse-lite-npm-1.0.30001695-6348509850-10c0.zip/node_modules/caniuse-lite/",\ - "packageDependencies": [\ - ["caniuse-lite", "npm:1.0.30001695"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chalk", [\ - ["npm:4.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/chalk-npm-4.1.2-ba8b67ab80-10c0.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["chalk", "npm:4.1.2"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["char-regex", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/char-regex-npm-1.0.2-ecade5f97f-10c0.zip/node_modules/char-regex/",\ - "packageDependencies": [\ - ["char-regex", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chokidar", [\ - ["npm:3.6.0", {\ - "packageLocation": "../../../.yarn/berry/cache/chokidar-npm-3.6.0-3c413a828f-10c0.zip/node_modules/chokidar/",\ - "packageDependencies": [\ - ["chokidar", "npm:3.6.0"],\ - ["anymatch", "npm:3.1.3"],\ - ["braces", "npm:3.0.3"],\ - ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ - ["glob-parent", "npm:5.1.2"],\ - ["is-binary-path", "npm:2.1.0"],\ - ["is-glob", "npm:4.0.3"],\ - ["normalize-path", "npm:3.0.0"],\ - ["readdirp", "npm:3.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chownr", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/chownr-npm-3.0.0-5275e85d25-10c0.zip/node_modules/chownr/",\ - "packageDependencies": [\ - ["chownr", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ci-info", [\ - ["npm:3.9.0", {\ - "packageLocation": "../../../.yarn/berry/cache/ci-info-npm-3.9.0-646784ca0e-10c0.zip/node_modules/ci-info/",\ - "packageDependencies": [\ - ["ci-info", "npm:3.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cjs-module-lexer", [\ - ["npm:1.4.1", {\ - "packageLocation": "../../../.yarn/berry/cache/cjs-module-lexer-npm-1.4.1-4a824480ac-10c0.zip/node_modules/cjs-module-lexer/",\ - "packageDependencies": [\ - ["cjs-module-lexer", "npm:1.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cliui", [\ - ["npm:8.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/cliui-npm-8.0.1-3b029092cf-10c0.zip/node_modules/cliui/",\ - "packageDependencies": [\ - ["cliui", "npm:8.0.1"],\ - ["string-width", "npm:4.2.3"],\ - ["strip-ansi", "npm:6.0.1"],\ - ["wrap-ansi", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["co", [\ - ["npm:4.6.0", {\ - "packageLocation": "../../../.yarn/berry/cache/co-npm-4.6.0-03f2d1feb6-10c0.zip/node_modules/co/",\ - "packageDependencies": [\ - ["co", "npm:4.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["collect-v8-coverage", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/collect-v8-coverage-npm-1.0.2-bd20d0c572-10c0.zip/node_modules/collect-v8-coverage/",\ - "packageDependencies": [\ - ["collect-v8-coverage", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["color-convert", [\ - ["npm:2.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/color-convert-npm-2.0.1-79730e935b-10c0.zip/node_modules/color-convert/",\ - "packageDependencies": [\ - ["color-convert", "npm:2.0.1"],\ - ["color-name", "npm:1.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["color-name", [\ - ["npm:1.1.4", {\ - "packageLocation": "../../../.yarn/berry/cache/color-name-npm-1.1.4-025792b0ea-10c0.zip/node_modules/color-name/",\ - "packageDependencies": [\ - ["color-name", "npm:1.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["concat-map", [\ - ["npm:0.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/concat-map-npm-0.0.1-85a921b7ee-10c0.zip/node_modules/concat-map/",\ - "packageDependencies": [\ - ["concat-map", "npm:0.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["convert-source-map", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/convert-source-map-npm-2.0.0-7ab664dc4e-10c0.zip/node_modules/convert-source-map/",\ - "packageDependencies": [\ - ["convert-source-map", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["create-jest", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/create-jest-npm-29.7.0-3a6a7b993b-10c0.zip/node_modules/create-jest/",\ - "packageDependencies": [\ - ["create-jest", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["chalk", "npm:4.1.2"],\ - ["exit", "npm:0.1.2"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-config", "virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["prompts", "npm:2.4.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["create-require", [\ - ["npm:1.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/create-require-npm-1.1.1-839884ca2e-10c0.zip/node_modules/create-require/",\ - "packageDependencies": [\ - ["create-require", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cross-spawn", [\ - ["npm:7.0.6", {\ - "packageLocation": "../../../.yarn/berry/cache/cross-spawn-npm-7.0.6-264bddf921-10c0.zip/node_modules/cross-spawn/",\ - "packageDependencies": [\ - ["cross-spawn", "npm:7.0.6"],\ - ["path-key", "npm:3.1.1"],\ - ["shebang-command", "npm:2.0.0"],\ - ["which", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["debug", [\ - ["npm:4.4.0", {\ - "packageLocation": "../../../.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "npm:4.4.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-578134171f/4/.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ - ["@types/supports-color", null],\ - ["ms", "npm:2.1.3"],\ - ["supports-color", null]\ - ],\ - "packagePeers": [\ - "@types/supports-color",\ - "supports-color"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:f1382c554182f9e1abb3745e34e5163637ebd3c611df77e82da38f1ec9964f1d016765e440e68141eed073069546eb468a3a6ce4bd0b2b99cbf6baa9d7635af7#npm:4.4.0", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-9d143e7aef/4/.yarn/berry/cache/debug-npm-4.4.0-f6efe76023-10c0.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "virtual:f1382c554182f9e1abb3745e34e5163637ebd3c611df77e82da38f1ec9964f1d016765e440e68141eed073069546eb468a3a6ce4bd0b2b99cbf6baa9d7635af7#npm:4.4.0"],\ - ["@types/supports-color", null],\ - ["ms", "npm:2.1.3"],\ - ["supports-color", "npm:5.5.0"]\ - ],\ - "packagePeers": [\ - "@types/supports-color",\ - "supports-color"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dedent", [\ - ["npm:1.5.3", {\ - "packageLocation": "../../../.yarn/berry/cache/dedent-npm-1.5.3-123726df15-10c0.zip/node_modules/dedent/",\ - "packageDependencies": [\ - ["dedent", "npm:1.5.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:f7679858c638e2e5ade31901dd2b1e5007918fdc7d84fefb11f4200f46ba2e43b9d662fb793507b517bb1e725144e51f6d68f60f9f6100fd52144f042f58f0bc#npm:1.5.3", {\ - "packageLocation": "./.yarn/__virtual__/dedent-virtual-5106190c75/4/.yarn/berry/cache/dedent-npm-1.5.3-123726df15-10c0.zip/node_modules/dedent/",\ - "packageDependencies": [\ - ["dedent", "virtual:f7679858c638e2e5ade31901dd2b1e5007918fdc7d84fefb11f4200f46ba2e43b9d662fb793507b517bb1e725144e51f6d68f60f9f6100fd52144f042f58f0bc#npm:1.5.3"],\ - ["@types/babel-plugin-macros", null],\ - ["babel-plugin-macros", null]\ - ],\ - "packagePeers": [\ - "@types/babel-plugin-macros",\ - "babel-plugin-macros"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["deepmerge", [\ - ["npm:4.3.1", {\ - "packageLocation": "../../../.yarn/berry/cache/deepmerge-npm-4.3.1-4f751a0844-10c0.zip/node_modules/deepmerge/",\ - "packageDependencies": [\ - ["deepmerge", "npm:4.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["detect-newline", [\ - ["npm:3.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/detect-newline-npm-3.1.0-6d33fa8d37-10c0.zip/node_modules/detect-newline/",\ - "packageDependencies": [\ - ["detect-newline", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["diff", [\ - ["npm:4.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/diff-npm-4.0.2-73133c7102-10c0.zip/node_modules/diff/",\ - "packageDependencies": [\ - ["diff", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["diff-sequences", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/diff-sequences-npm-29.6.3-18ab2c9949-10c0.zip/node_modules/diff-sequences/",\ - "packageDependencies": [\ - ["diff-sequences", "npm:29.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eastasianwidth", [\ - ["npm:0.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-10c0.zip/node_modules/eastasianwidth/",\ - "packageDependencies": [\ - ["eastasianwidth", "npm:0.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ejs", [\ - ["npm:3.1.10", {\ - "packageLocation": "../../../.yarn/berry/cache/ejs-npm-3.1.10-4e8cf4bdc1-10c0.zip/node_modules/ejs/",\ - "packageDependencies": [\ - ["ejs", "npm:3.1.10"],\ - ["jake", "npm:10.9.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["electron-to-chromium", [\ - ["npm:1.5.86", {\ - "packageLocation": "../../../.yarn/berry/cache/electron-to-chromium-npm-1.5.86-d55c01bc49-10c0.zip/node_modules/electron-to-chromium/",\ - "packageDependencies": [\ - ["electron-to-chromium", "npm:1.5.86"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["emittery", [\ - ["npm:0.13.1", {\ - "packageLocation": "../../../.yarn/berry/cache/emittery-npm-0.13.1-cb6cd1bb03-10c0.zip/node_modules/emittery/",\ - "packageDependencies": [\ - ["emittery", "npm:0.13.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["emoji-regex", [\ - ["npm:8.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/emoji-regex-npm-8.0.0-213764015c-10c0.zip/node_modules/emoji-regex/",\ - "packageDependencies": [\ - ["emoji-regex", "npm:8.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:9.2.2", {\ - "packageLocation": "../../../.yarn/berry/cache/emoji-regex-npm-9.2.2-e6fac8d058-10c0.zip/node_modules/emoji-regex/",\ - "packageDependencies": [\ - ["emoji-regex", "npm:9.2.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["encoding", [\ - ["npm:0.1.13", {\ - "packageLocation": "../../../.yarn/berry/cache/encoding-npm-0.1.13-82a1837d30-10c0.zip/node_modules/encoding/",\ - "packageDependencies": [\ - ["encoding", "npm:0.1.13"],\ - ["iconv-lite", "npm:0.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["env-paths", [\ - ["npm:2.2.1", {\ - "packageLocation": "../../../.yarn/berry/cache/env-paths-npm-2.2.1-7c7577428c-10c0.zip/node_modules/env-paths/",\ - "packageDependencies": [\ - ["env-paths", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["err-code", [\ - ["npm:2.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/err-code-npm-2.0.3-082e0ff9a7-10c0.zip/node_modules/err-code/",\ - "packageDependencies": [\ - ["err-code", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["error-ex", [\ - ["npm:1.3.2", {\ - "packageLocation": "../../../.yarn/berry/cache/error-ex-npm-1.3.2-5654f80c0f-10c0.zip/node_modules/error-ex/",\ - "packageDependencies": [\ - ["error-ex", "npm:1.3.2"],\ - ["is-arrayish", "npm:0.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["escalade", [\ - ["npm:3.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/escalade-npm-3.2.0-19b50dd48f-10c0.zip/node_modules/escalade/",\ - "packageDependencies": [\ - ["escalade", "npm:3.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["escape-string-regexp", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-10c0.zip/node_modules/escape-string-regexp/",\ - "packageDependencies": [\ - ["escape-string-regexp", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["esprima", [\ - ["npm:4.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/esprima-npm-4.0.1-1084e98778-10c0.zip/node_modules/esprima/",\ - "packageDependencies": [\ - ["esprima", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["execa", [\ - ["npm:5.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/execa-npm-5.1.1-191347acf5-10c0.zip/node_modules/execa/",\ - "packageDependencies": [\ - ["execa", "npm:5.1.1"],\ - ["cross-spawn", "npm:7.0.6"],\ - ["get-stream", "npm:6.0.1"],\ - ["human-signals", "npm:2.1.0"],\ - ["is-stream", "npm:2.0.1"],\ - ["merge-stream", "npm:2.0.0"],\ - ["npm-run-path", "npm:4.0.1"],\ - ["onetime", "npm:5.1.2"],\ - ["signal-exit", "npm:3.0.7"],\ - ["strip-final-newline", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["exit", [\ - ["npm:0.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/exit-npm-0.1.2-ef3761a67d-10c0.zip/node_modules/exit/",\ - "packageDependencies": [\ - ["exit", "npm:0.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["expect", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/expect-npm-29.7.0-62e9f7979e-10c0.zip/node_modules/expect/",\ - "packageDependencies": [\ - ["expect", "npm:29.7.0"],\ - ["@jest/expect-utils", "npm:29.7.0"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["jest-matcher-utils", "npm:29.7.0"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["exponential-backoff", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/exponential-backoff-npm-3.1.1-04df458b30-10c0.zip/node_modules/exponential-backoff/",\ - "packageDependencies": [\ - ["exponential-backoff", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fast-json-stable-stringify", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-10c0.zip/node_modules/fast-json-stable-stringify/",\ - "packageDependencies": [\ - ["fast-json-stable-stringify", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fb-watchman", [\ - ["npm:2.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/fb-watchman-npm-2.0.2-bcb6f8f831-10c0.zip/node_modules/fb-watchman/",\ - "packageDependencies": [\ - ["fb-watchman", "npm:2.0.2"],\ - ["bser", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["filelist", [\ - ["npm:1.0.4", {\ - "packageLocation": "../../../.yarn/berry/cache/filelist-npm-1.0.4-3a835ae0a7-10c0.zip/node_modules/filelist/",\ - "packageDependencies": [\ - ["filelist", "npm:1.0.4"],\ - ["minimatch", "npm:5.1.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fill-range", [\ - ["npm:7.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/fill-range-npm-7.1.1-bf491486db-10c0.zip/node_modules/fill-range/",\ - "packageDependencies": [\ - ["fill-range", "npm:7.1.1"],\ - ["to-regex-range", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["find-up", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/find-up-npm-4.1.0-c3ccf8d855-10c0.zip/node_modules/find-up/",\ - "packageDependencies": [\ - ["find-up", "npm:4.1.0"],\ - ["locate-path", "npm:5.0.0"],\ - ["path-exists", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["foreground-child", [\ - ["npm:3.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/foreground-child-npm-3.3.0-b8be745271-10c0.zip/node_modules/foreground-child/",\ - "packageDependencies": [\ - ["foreground-child", "npm:3.3.0"],\ - ["cross-spawn", "npm:7.0.6"],\ - ["signal-exit", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fs-minipass", [\ - ["npm:3.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/fs-minipass-npm-3.0.3-d148d6ac19-10c0.zip/node_modules/fs-minipass/",\ - "packageDependencies": [\ - ["fs-minipass", "npm:3.0.3"],\ - ["minipass", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fs.realpath", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/fs.realpath-npm-1.0.0-c8f05d8126-10c0.zip/node_modules/fs.realpath/",\ - "packageDependencies": [\ - ["fs.realpath", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fsevents", [\ - ["patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1", {\ - "packageLocation": "./.yarn/unplugged/fsevents-patch-6b67494872/node_modules/fsevents/",\ - "packageDependencies": [\ - ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ - ["node-gyp", "npm:11.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["function-bind", [\ - ["npm:1.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/function-bind-npm-1.1.2-7a55be9b03-10c0.zip/node_modules/function-bind/",\ - "packageDependencies": [\ - ["function-bind", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["gensync", [\ - ["npm:1.0.0-beta.2", {\ - "packageLocation": "../../../.yarn/berry/cache/gensync-npm-1.0.0-beta.2-224666d72f-10c0.zip/node_modules/gensync/",\ - "packageDependencies": [\ - ["gensync", "npm:1.0.0-beta.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-caller-file", [\ - ["npm:2.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/get-caller-file-npm-2.0.5-80e8a86305-10c0.zip/node_modules/get-caller-file/",\ - "packageDependencies": [\ - ["get-caller-file", "npm:2.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-package-type", [\ - ["npm:0.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/get-package-type-npm-0.1.0-6c70cdc8ab-10c0.zip/node_modules/get-package-type/",\ - "packageDependencies": [\ - ["get-package-type", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-stream", [\ - ["npm:6.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/get-stream-npm-6.0.1-83e51a4642-10c0.zip/node_modules/get-stream/",\ - "packageDependencies": [\ - ["get-stream", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["glob", [\ - ["npm:10.4.5", {\ - "packageLocation": "../../../.yarn/berry/cache/glob-npm-10.4.5-8c63175f05-10c0.zip/node_modules/glob/",\ - "packageDependencies": [\ - ["glob", "npm:10.4.5"],\ - ["foreground-child", "npm:3.3.0"],\ - ["jackspeak", "npm:3.4.3"],\ - ["minimatch", "npm:9.0.5"],\ - ["minipass", "npm:7.1.2"],\ - ["package-json-from-dist", "npm:1.0.1"],\ - ["path-scurry", "npm:1.11.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.2.3", {\ - "packageLocation": "../../../.yarn/berry/cache/glob-npm-7.2.3-2d866d17a5-10c0.zip/node_modules/glob/",\ - "packageDependencies": [\ - ["glob", "npm:7.2.3"],\ - ["fs.realpath", "npm:1.0.0"],\ - ["inflight", "npm:1.0.6"],\ - ["inherits", "npm:2.0.4"],\ - ["minimatch", "npm:3.1.2"],\ - ["once", "npm:1.4.0"],\ - ["path-is-absolute", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["glob-parent", [\ - ["npm:5.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/glob-parent-npm-5.1.2-021ab32634-10c0.zip/node_modules/glob-parent/",\ - "packageDependencies": [\ - ["glob-parent", "npm:5.1.2"],\ - ["is-glob", "npm:4.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["globals", [\ - ["npm:11.12.0", {\ - "packageLocation": "../../../.yarn/berry/cache/globals-npm-11.12.0-1fa7f41a6c-10c0.zip/node_modules/globals/",\ - "packageDependencies": [\ - ["globals", "npm:11.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["graceful-fs", [\ - ["npm:4.2.11", {\ - "packageLocation": "../../../.yarn/berry/cache/graceful-fs-npm-4.2.11-24bb648a68-10c0.zip/node_modules/graceful-fs/",\ - "packageDependencies": [\ - ["graceful-fs", "npm:4.2.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-flag", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/has-flag-npm-3.0.0-16ac11fe05-10c0.zip/node_modules/has-flag/",\ - "packageDependencies": [\ - ["has-flag", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/has-flag-npm-4.0.0-32af9f0536-10c0.zip/node_modules/has-flag/",\ - "packageDependencies": [\ - ["has-flag", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hasown", [\ - ["npm:2.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/hasown-npm-2.0.2-80fe6c9901-10c0.zip/node_modules/hasown/",\ - "packageDependencies": [\ - ["hasown", "npm:2.0.2"],\ - ["function-bind", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["html-escaper", [\ - ["npm:2.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/html-escaper-npm-2.0.2-38e51ef294-10c0.zip/node_modules/html-escaper/",\ - "packageDependencies": [\ - ["html-escaper", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["http-cache-semantics", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/http-cache-semantics-npm-4.1.1-1120131375-10c0.zip/node_modules/http-cache-semantics/",\ - "packageDependencies": [\ - ["http-cache-semantics", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["http-proxy-agent", [\ - ["npm:7.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-10c0.zip/node_modules/http-proxy-agent/",\ - "packageDependencies": [\ - ["http-proxy-agent", "npm:7.0.2"],\ - ["agent-base", "npm:7.1.3"],\ - ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["https-proxy-agent", [\ - ["npm:7.0.6", {\ - "packageLocation": "../../../.yarn/berry/cache/https-proxy-agent-npm-7.0.6-27a95c2690-10c0.zip/node_modules/https-proxy-agent/",\ - "packageDependencies": [\ - ["https-proxy-agent", "npm:7.0.6"],\ - ["agent-base", "npm:7.1.3"],\ - ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["human-signals", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/human-signals-npm-2.1.0-f75815481d-10c0.zip/node_modules/human-signals/",\ - "packageDependencies": [\ - ["human-signals", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["iconv-lite", [\ - ["npm:0.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/iconv-lite-npm-0.6.3-24b8aae27e-10c0.zip/node_modules/iconv-lite/",\ - "packageDependencies": [\ - ["iconv-lite", "npm:0.6.3"],\ - ["safer-buffer", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ignore-by-default", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/ignore-by-default-npm-1.0.1-78ea10bc54-10c0.zip/node_modules/ignore-by-default/",\ - "packageDependencies": [\ - ["ignore-by-default", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["import-local", [\ - ["npm:3.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/import-local-npm-3.2.0-bf54ec7842-10c0.zip/node_modules/import-local/",\ - "packageDependencies": [\ - ["import-local", "npm:3.2.0"],\ - ["pkg-dir", "npm:4.2.0"],\ - ["resolve-cwd", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["imurmurhash", [\ - ["npm:0.1.4", {\ - "packageLocation": "../../../.yarn/berry/cache/imurmurhash-npm-0.1.4-610c5068a0-10c0.zip/node_modules/imurmurhash/",\ - "packageDependencies": [\ - ["imurmurhash", "npm:0.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inflight", [\ - ["npm:1.0.6", {\ - "packageLocation": "../../../.yarn/berry/cache/inflight-npm-1.0.6-ccedb4b908-10c0.zip/node_modules/inflight/",\ - "packageDependencies": [\ - ["inflight", "npm:1.0.6"],\ - ["once", "npm:1.4.0"],\ - ["wrappy", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inherits", [\ - ["npm:2.0.4", {\ - "packageLocation": "../../../.yarn/berry/cache/inherits-npm-2.0.4-c66b3957a0-10c0.zip/node_modules/inherits/",\ - "packageDependencies": [\ - ["inherits", "npm:2.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ip-address", [\ - ["npm:9.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/ip-address-npm-9.0.5-9fa024d42a-10c0.zip/node_modules/ip-address/",\ - "packageDependencies": [\ - ["ip-address", "npm:9.0.5"],\ - ["jsbn", "npm:1.1.0"],\ - ["sprintf-js", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-arrayish", [\ - ["npm:0.2.1", {\ - "packageLocation": "../../../.yarn/berry/cache/is-arrayish-npm-0.2.1-23927dfb15-10c0.zip/node_modules/is-arrayish/",\ - "packageDependencies": [\ - ["is-arrayish", "npm:0.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-binary-path", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/is-binary-path-npm-2.1.0-e61d46f557-10c0.zip/node_modules/is-binary-path/",\ - "packageDependencies": [\ - ["is-binary-path", "npm:2.1.0"],\ - ["binary-extensions", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-core-module", [\ - ["npm:2.16.1", {\ - "packageLocation": "../../../.yarn/berry/cache/is-core-module-npm-2.16.1-a54837229e-10c0.zip/node_modules/is-core-module/",\ - "packageDependencies": [\ - ["is-core-module", "npm:2.16.1"],\ - ["hasown", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-extglob", [\ - ["npm:2.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/is-extglob-npm-2.1.1-0870ea68b5-10c0.zip/node_modules/is-extglob/",\ - "packageDependencies": [\ - ["is-extglob", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-fullwidth-code-point", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-10c0.zip/node_modules/is-fullwidth-code-point/",\ - "packageDependencies": [\ - ["is-fullwidth-code-point", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-generator-fn", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/is-generator-fn-npm-2.1.0-37895c2d2b-10c0.zip/node_modules/is-generator-fn/",\ - "packageDependencies": [\ - ["is-generator-fn", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-glob", [\ - ["npm:4.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/is-glob-npm-4.0.3-cb87bf1bdb-10c0.zip/node_modules/is-glob/",\ - "packageDependencies": [\ - ["is-glob", "npm:4.0.3"],\ - ["is-extglob", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-number", [\ - ["npm:7.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/is-number-npm-7.0.0-060086935c-10c0.zip/node_modules/is-number/",\ - "packageDependencies": [\ - ["is-number", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-stream", [\ - ["npm:2.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/is-stream-npm-2.0.1-c802db55e7-10c0.zip/node_modules/is-stream/",\ - "packageDependencies": [\ - ["is-stream", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["isexe", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-10c0.zip/node_modules/isexe/",\ - "packageDependencies": [\ - ["isexe", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/isexe-npm-3.1.1-9c0061eead-10c0.zip/node_modules/isexe/",\ - "packageDependencies": [\ - ["isexe", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["istanbul-lib-coverage", [\ - ["npm:3.2.2", {\ - "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-coverage-npm-3.2.2-5c0526e059-10c0.zip/node_modules/istanbul-lib-coverage/",\ - "packageDependencies": [\ - ["istanbul-lib-coverage", "npm:3.2.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["istanbul-lib-instrument", [\ - ["npm:5.2.1", {\ - "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-instrument-npm-5.2.1-1b3ad719a9-10c0.zip/node_modules/istanbul-lib-instrument/",\ - "packageDependencies": [\ - ["istanbul-lib-instrument", "npm:5.2.1"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@istanbuljs/schema", "npm:0.1.3"],\ - ["istanbul-lib-coverage", "npm:3.2.2"],\ - ["semver", "npm:6.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-instrument-npm-6.0.3-959dca7404-10c0.zip/node_modules/istanbul-lib-instrument/",\ - "packageDependencies": [\ - ["istanbul-lib-instrument", "npm:6.0.3"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/parser", "npm:7.26.5"],\ - ["@istanbuljs/schema", "npm:0.1.3"],\ - ["istanbul-lib-coverage", "npm:3.2.2"],\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["istanbul-lib-report", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-report-npm-3.0.1-b17446ab24-10c0.zip/node_modules/istanbul-lib-report/",\ - "packageDependencies": [\ - ["istanbul-lib-report", "npm:3.0.1"],\ - ["istanbul-lib-coverage", "npm:3.2.2"],\ - ["make-dir", "npm:4.0.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["istanbul-lib-source-maps", [\ - ["npm:4.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/istanbul-lib-source-maps-npm-4.0.1-af0f859df7-10c0.zip/node_modules/istanbul-lib-source-maps/",\ - "packageDependencies": [\ - ["istanbul-lib-source-maps", "npm:4.0.1"],\ - ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ - ["istanbul-lib-coverage", "npm:3.2.2"],\ - ["source-map", "npm:0.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["istanbul-reports", [\ - ["npm:3.1.7", {\ - "packageLocation": "../../../.yarn/berry/cache/istanbul-reports-npm-3.1.7-356486c0f4-10c0.zip/node_modules/istanbul-reports/",\ - "packageDependencies": [\ - ["istanbul-reports", "npm:3.1.7"],\ - ["html-escaper", "npm:2.0.2"],\ - ["istanbul-lib-report", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jackspeak", [\ - ["npm:3.4.3", {\ - "packageLocation": "../../../.yarn/berry/cache/jackspeak-npm-3.4.3-546bfad080-10c0.zip/node_modules/jackspeak/",\ - "packageDependencies": [\ - ["jackspeak", "npm:3.4.3"],\ - ["@isaacs/cliui", "npm:8.0.2"],\ - ["@pkgjs/parseargs", "npm:0.11.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jake", [\ - ["npm:10.9.2", {\ - "packageLocation": "../../../.yarn/berry/cache/jake-npm-10.9.2-3bf2173aed-10c0.zip/node_modules/jake/",\ - "packageDependencies": [\ - ["jake", "npm:10.9.2"],\ - ["async", "npm:3.2.6"],\ - ["chalk", "npm:4.1.2"],\ - ["filelist", "npm:1.0.4"],\ - ["minimatch", "npm:3.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-npm-29.7.0-d8dd095b81-10c0.zip/node_modules/jest/",\ - "packageDependencies": [\ - ["jest", "npm:29.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0", {\ - "packageLocation": "./.yarn/__virtual__/jest-virtual-be11839c24/4/.yarn/berry/cache/jest-npm-29.7.0-d8dd095b81-10c0.zip/node_modules/jest/",\ - "packageDependencies": [\ - ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ - ["@jest/core", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node-notifier", null],\ - ["import-local", "npm:3.2.0"],\ - ["jest-cli", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ - ["node-notifier", null]\ - ],\ - "packagePeers": [\ - "@types/node-notifier",\ - "node-notifier"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-changed-files", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-changed-files-npm-29.7.0-c2dcd10525-10c0.zip/node_modules/jest-changed-files/",\ - "packageDependencies": [\ - ["jest-changed-files", "npm:29.7.0"],\ - ["execa", "npm:5.1.1"],\ - ["jest-util", "npm:29.7.0"],\ - ["p-limit", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-circus", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-circus-npm-29.7.0-f7679858c6-10c0.zip/node_modules/jest-circus/",\ - "packageDependencies": [\ - ["jest-circus", "npm:29.7.0"],\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/expect", "npm:29.7.0"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["chalk", "npm:4.1.2"],\ - ["co", "npm:4.6.0"],\ - ["dedent", "virtual:f7679858c638e2e5ade31901dd2b1e5007918fdc7d84fefb11f4200f46ba2e43b9d662fb793507b517bb1e725144e51f6d68f60f9f6100fd52144f042f58f0bc#npm:1.5.3"],\ - ["is-generator-fn", "npm:2.1.0"],\ - ["jest-each", "npm:29.7.0"],\ - ["jest-matcher-utils", "npm:29.7.0"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-runtime", "npm:29.7.0"],\ - ["jest-snapshot", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["p-limit", "npm:3.1.0"],\ - ["pretty-format", "npm:29.7.0"],\ - ["pure-rand", "npm:6.1.0"],\ - ["slash", "npm:3.0.0"],\ - ["stack-utils", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-cli", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-cli-npm-29.7.0-9adb356180-10c0.zip/node_modules/jest-cli/",\ - "packageDependencies": [\ - ["jest-cli", "npm:29.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0", {\ - "packageLocation": "./.yarn/__virtual__/jest-cli-virtual-8a6b72a957/4/.yarn/berry/cache/jest-cli-npm-29.7.0-9adb356180-10c0.zip/node_modules/jest-cli/",\ - "packageDependencies": [\ - ["jest-cli", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ - ["@jest/core", "virtual:be11839c24d71a18f2ea6b7515d416c96119047fad09ab5517242ec2e85ebd7e3fd71975342eb611c9301d11fba29291fe7f2587c97a7aff37c81dca0db607b4#npm:29.7.0"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node-notifier", null],\ - ["chalk", "npm:4.1.2"],\ - ["create-jest", "npm:29.7.0"],\ - ["exit", "npm:0.1.2"],\ - ["import-local", "npm:3.2.0"],\ - ["jest-config", "virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-validate", "npm:29.7.0"],\ - ["node-notifier", null],\ - ["yargs", "npm:17.7.2"]\ - ],\ - "packagePeers": [\ - "@types/node-notifier",\ - "node-notifier"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-config", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-config-npm-29.7.0-97d8544d74-10c0.zip/node_modules/jest-config/",\ - "packageDependencies": [\ - ["jest-config", "npm:29.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0", {\ - "packageLocation": "./.yarn/__virtual__/jest-config-virtual-50f60b8422/4/.yarn/berry/cache/jest-config-npm-29.7.0-97d8544d74-10c0.zip/node_modules/jest-config/",\ - "packageDependencies": [\ - ["jest-config", "virtual:3a6a7b993b4c5b60edc037a265ed4617431cf4c75aee76d6fbd0f2ca65ea68cee61c092e9bd306baebd90cc377234b4a525791e6755ee4d2193076de2c2bdfed#npm:29.7.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@jest/test-sequencer", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", null],\ - ["@types/ts-node", null],\ - ["babel-jest", "virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0"],\ - ["chalk", "npm:4.1.2"],\ - ["ci-info", "npm:3.9.0"],\ - ["deepmerge", "npm:4.3.1"],\ - ["glob", "npm:7.2.3"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-circus", "npm:29.7.0"],\ - ["jest-environment-node", "npm:29.7.0"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["jest-regex-util", "npm:29.6.3"],\ - ["jest-resolve", "npm:29.7.0"],\ - ["jest-runner", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-validate", "npm:29.7.0"],\ - ["micromatch", "npm:4.0.8"],\ - ["parse-json", "npm:5.2.0"],\ - ["pretty-format", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"],\ - ["strip-json-comments", "npm:3.1.1"],\ - ["ts-node", null]\ - ],\ - "packagePeers": [\ - "@types/node",\ - "@types/ts-node",\ - "ts-node"\ - ],\ - "linkType": "HARD"\ - }],\ - ["virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0", {\ - "packageLocation": "./.yarn/__virtual__/jest-config-virtual-eb0c766083/4/.yarn/berry/cache/jest-config-npm-29.7.0-97d8544d74-10c0.zip/node_modules/jest-config/",\ - "packageDependencies": [\ - ["jest-config", "virtual:ebd37f90be822ad926873bbd53ffe544cd0694492c58d887808036dd04f3dd1bbd640f23a54be02f53da8fe2048c51b19dbb5a9714b5d4788f9658d1d542c723#npm:29.7.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@jest/test-sequencer", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["@types/ts-node", null],\ - ["babel-jest", "virtual:eb0c7660836f95e08c3ee323cff6ec7874fbbdc0d99b0381fceaa01a3ba4f1de20fa73c6260b98ad288e41892101ef69246a8ca86182a832f676884a9d61e665#npm:29.7.0"],\ - ["chalk", "npm:4.1.2"],\ - ["ci-info", "npm:3.9.0"],\ - ["deepmerge", "npm:4.3.1"],\ - ["glob", "npm:7.2.3"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-circus", "npm:29.7.0"],\ - ["jest-environment-node", "npm:29.7.0"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["jest-regex-util", "npm:29.6.3"],\ - ["jest-resolve", "npm:29.7.0"],\ - ["jest-runner", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-validate", "npm:29.7.0"],\ - ["micromatch", "npm:4.0.8"],\ - ["parse-json", "npm:5.2.0"],\ - ["pretty-format", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"],\ - ["strip-json-comments", "npm:3.1.1"],\ - ["ts-node", null]\ - ],\ - "packagePeers": [\ - "@types/node",\ - "@types/ts-node",\ - "ts-node"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-diff", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-diff-npm-29.7.0-0149e01930-10c0.zip/node_modules/jest-diff/",\ - "packageDependencies": [\ - ["jest-diff", "npm:29.7.0"],\ - ["chalk", "npm:4.1.2"],\ - ["diff-sequences", "npm:29.6.3"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["pretty-format", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-docblock", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-docblock-npm-29.7.0-ec59f449dd-10c0.zip/node_modules/jest-docblock/",\ - "packageDependencies": [\ - ["jest-docblock", "npm:29.7.0"],\ - ["detect-newline", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-each", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-each-npm-29.7.0-93476f5ba0-10c0.zip/node_modules/jest-each/",\ - "packageDependencies": [\ - ["jest-each", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["chalk", "npm:4.1.2"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["jest-util", "npm:29.7.0"],\ - ["pretty-format", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-environment-node", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-environment-node-npm-29.7.0-860b5e25ec-10c0.zip/node_modules/jest-environment-node/",\ - "packageDependencies": [\ - ["jest-environment-node", "npm:29.7.0"],\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/fake-timers", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["jest-mock", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-get-type", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-get-type-npm-29.6.3-500477292e-10c0.zip/node_modules/jest-get-type/",\ - "packageDependencies": [\ - ["jest-get-type", "npm:29.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-haste-map", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-haste-map-npm-29.7.0-e3be419eff-10c0.zip/node_modules/jest-haste-map/",\ - "packageDependencies": [\ - ["jest-haste-map", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/graceful-fs", "npm:4.1.9"],\ - ["@types/node", "npm:22.10.9"],\ - ["anymatch", "npm:3.1.3"],\ - ["fb-watchman", "npm:2.0.2"],\ - ["fsevents", "patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-regex-util", "npm:29.6.3"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-worker", "npm:29.7.0"],\ - ["micromatch", "npm:4.0.8"],\ - ["walker", "npm:1.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-leak-detector", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-leak-detector-npm-29.7.0-915d82553f-10c0.zip/node_modules/jest-leak-detector/",\ - "packageDependencies": [\ - ["jest-leak-detector", "npm:29.7.0"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["pretty-format", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-matcher-utils", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-matcher-utils-npm-29.7.0-dfc74b630e-10c0.zip/node_modules/jest-matcher-utils/",\ - "packageDependencies": [\ - ["jest-matcher-utils", "npm:29.7.0"],\ - ["chalk", "npm:4.1.2"],\ - ["jest-diff", "npm:29.7.0"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["pretty-format", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-message-util", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-message-util-npm-29.7.0-7f88b6e8d1-10c0.zip/node_modules/jest-message-util/",\ - "packageDependencies": [\ - ["jest-message-util", "npm:29.7.0"],\ - ["@babel/code-frame", "npm:7.26.2"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/stack-utils", "npm:2.0.3"],\ - ["chalk", "npm:4.1.2"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["micromatch", "npm:4.0.8"],\ - ["pretty-format", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"],\ - ["stack-utils", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-mock", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-mock-npm-29.7.0-22c4769d06-10c0.zip/node_modules/jest-mock/",\ - "packageDependencies": [\ - ["jest-mock", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["jest-util", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-pnp-resolver", [\ - ["npm:1.2.3", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-10c0.zip/node_modules/jest-pnp-resolver/",\ - "packageDependencies": [\ - ["jest-pnp-resolver", "npm:1.2.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:5c36f0eefbce78ee308fab92b5dcd29e2b0b70713b50365f0168be5bb1facc6582106f851a083d72bbb13e26d984e8612da5ed4b2bae83649e73e7b1ce19525b#npm:1.2.3", {\ - "packageLocation": "./.yarn/__virtual__/jest-pnp-resolver-virtual-4a109cd39c/4/.yarn/berry/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-10c0.zip/node_modules/jest-pnp-resolver/",\ - "packageDependencies": [\ - ["jest-pnp-resolver", "virtual:5c36f0eefbce78ee308fab92b5dcd29e2b0b70713b50365f0168be5bb1facc6582106f851a083d72bbb13e26d984e8612da5ed4b2bae83649e73e7b1ce19525b#npm:1.2.3"],\ - ["@types/jest-resolve", null],\ - ["jest-resolve", "npm:29.7.0"]\ - ],\ - "packagePeers": [\ - "@types/jest-resolve",\ - "jest-resolve"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-regex-util", [\ - ["npm:29.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-regex-util-npm-29.6.3-568e0094e2-10c0.zip/node_modules/jest-regex-util/",\ - "packageDependencies": [\ - ["jest-regex-util", "npm:29.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-resolve", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-resolve-npm-29.7.0-5c36f0eefb-10c0.zip/node_modules/jest-resolve/",\ - "packageDependencies": [\ - ["jest-resolve", "npm:29.7.0"],\ - ["chalk", "npm:4.1.2"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-haste-map", "npm:29.7.0"],\ - ["jest-pnp-resolver", "virtual:5c36f0eefbce78ee308fab92b5dcd29e2b0b70713b50365f0168be5bb1facc6582106f851a083d72bbb13e26d984e8612da5ed4b2bae83649e73e7b1ce19525b#npm:1.2.3"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-validate", "npm:29.7.0"],\ - ["resolve", "patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d"],\ - ["resolve.exports", "npm:2.0.3"],\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-resolve-dependencies", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-resolve-dependencies-npm-29.7.0-06ec582f1e-10c0.zip/node_modules/jest-resolve-dependencies/",\ - "packageDependencies": [\ - ["jest-resolve-dependencies", "npm:29.7.0"],\ - ["jest-regex-util", "npm:29.6.3"],\ - ["jest-snapshot", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-runner", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-runner-npm-29.7.0-3bc9f82b58-10c0.zip/node_modules/jest-runner/",\ - "packageDependencies": [\ - ["jest-runner", "npm:29.7.0"],\ - ["@jest/console", "npm:29.7.0"],\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/transform", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["chalk", "npm:4.1.2"],\ - ["emittery", "npm:0.13.1"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-docblock", "npm:29.7.0"],\ - ["jest-environment-node", "npm:29.7.0"],\ - ["jest-haste-map", "npm:29.7.0"],\ - ["jest-leak-detector", "npm:29.7.0"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-resolve", "npm:29.7.0"],\ - ["jest-runtime", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["jest-watcher", "npm:29.7.0"],\ - ["jest-worker", "npm:29.7.0"],\ - ["p-limit", "npm:3.1.0"],\ - ["source-map-support", "npm:0.5.13"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-runtime", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-runtime-npm-29.7.0-120fa64128-10c0.zip/node_modules/jest-runtime/",\ - "packageDependencies": [\ - ["jest-runtime", "npm:29.7.0"],\ - ["@jest/environment", "npm:29.7.0"],\ - ["@jest/fake-timers", "npm:29.7.0"],\ - ["@jest/globals", "npm:29.7.0"],\ - ["@jest/source-map", "npm:29.6.3"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/transform", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["chalk", "npm:4.1.2"],\ - ["cjs-module-lexer", "npm:1.4.1"],\ - ["collect-v8-coverage", "npm:1.0.2"],\ - ["glob", "npm:7.2.3"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-haste-map", "npm:29.7.0"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-mock", "npm:29.7.0"],\ - ["jest-regex-util", "npm:29.6.3"],\ - ["jest-resolve", "npm:29.7.0"],\ - ["jest-snapshot", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["slash", "npm:3.0.0"],\ - ["strip-bom", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-snapshot", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-snapshot-npm-29.7.0-15ef0a4ad6-10c0.zip/node_modules/jest-snapshot/",\ - "packageDependencies": [\ - ["jest-snapshot", "npm:29.7.0"],\ - ["@babel/core", "npm:7.26.0"],\ - ["@babel/generator", "npm:7.26.5"],\ - ["@babel/plugin-syntax-jsx", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ - ["@babel/plugin-syntax-typescript", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:7.25.9"],\ - ["@babel/types", "npm:7.26.5"],\ - ["@jest/expect-utils", "npm:29.7.0"],\ - ["@jest/transform", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["babel-preset-current-node-syntax", "virtual:15ef0a4ad61c166598c4d195dc64a0b7270b186e9a584ea25871b4181189fa5a61a49aa37f6bcda6ffed25499ff900f1a33224b0c22868c8eb1eaf1dd4f0dc11#npm:1.1.0"],\ - ["chalk", "npm:4.1.2"],\ - ["expect", "npm:29.7.0"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["jest-diff", "npm:29.7.0"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["jest-matcher-utils", "npm:29.7.0"],\ - ["jest-message-util", "npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["natural-compare", "npm:1.4.0"],\ - ["pretty-format", "npm:29.7.0"],\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-util", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-util-npm-29.7.0-ff1d59714b-10c0.zip/node_modules/jest-util/",\ - "packageDependencies": [\ - ["jest-util", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["chalk", "npm:4.1.2"],\ - ["ci-info", "npm:3.9.0"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-validate", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-validate-npm-29.7.0-795ac5ede8-10c0.zip/node_modules/jest-validate/",\ - "packageDependencies": [\ - ["jest-validate", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["camelcase", "npm:6.3.0"],\ - ["chalk", "npm:4.1.2"],\ - ["jest-get-type", "npm:29.6.3"],\ - ["leven", "npm:3.1.0"],\ - ["pretty-format", "npm:29.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-watcher", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-watcher-npm-29.7.0-e5372f1629-10c0.zip/node_modules/jest-watcher/",\ - "packageDependencies": [\ - ["jest-watcher", "npm:29.7.0"],\ - ["@jest/test-result", "npm:29.7.0"],\ - ["@jest/types", "npm:29.6.3"],\ - ["@types/node", "npm:22.10.9"],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["chalk", "npm:4.1.2"],\ - ["emittery", "npm:0.13.1"],\ - ["jest-util", "npm:29.7.0"],\ - ["string-length", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jest-worker", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jest-worker-npm-29.7.0-4d3567fed6-10c0.zip/node_modules/jest-worker/",\ - "packageDependencies": [\ - ["jest-worker", "npm:29.7.0"],\ - ["@types/node", "npm:22.10.9"],\ - ["jest-util", "npm:29.7.0"],\ - ["merge-stream", "npm:2.0.0"],\ - ["supports-color", "npm:8.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["js-tokens", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/js-tokens-npm-4.0.0-0ac852e9e2-10c0.zip/node_modules/js-tokens/",\ - "packageDependencies": [\ - ["js-tokens", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["js-yaml", [\ - ["npm:3.14.1", {\ - "packageLocation": "../../../.yarn/berry/cache/js-yaml-npm-3.14.1-b968c6095e-10c0.zip/node_modules/js-yaml/",\ - "packageDependencies": [\ - ["js-yaml", "npm:3.14.1"],\ - ["argparse", "npm:1.0.10"],\ - ["esprima", "npm:4.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsbn", [\ - ["npm:1.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jsbn-npm-1.1.0-1da0181838-10c0.zip/node_modules/jsbn/",\ - "packageDependencies": [\ - ["jsbn", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jsesc", [\ - ["npm:3.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/jsesc-npm-3.1.0-2f4f998cd7-10c0.zip/node_modules/jsesc/",\ - "packageDependencies": [\ - ["jsesc", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json-parse-even-better-errors", [\ - ["npm:2.3.1", {\ - "packageLocation": "../../../.yarn/berry/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-10c0.zip/node_modules/json-parse-even-better-errors/",\ - "packageDependencies": [\ - ["json-parse-even-better-errors", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json5", [\ - ["npm:2.2.3", {\ - "packageLocation": "../../../.yarn/berry/cache/json5-npm-2.2.3-9962c55073-10c0.zip/node_modules/json5/",\ - "packageDependencies": [\ - ["json5", "npm:2.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["kleur", [\ - ["npm:3.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/kleur-npm-3.0.3-f6f53649a4-10c0.zip/node_modules/kleur/",\ - "packageDependencies": [\ - ["kleur", "npm:3.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["leven", [\ - ["npm:3.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/leven-npm-3.1.0-b7697736a3-10c0.zip/node_modules/leven/",\ - "packageDependencies": [\ - ["leven", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lines-and-columns", [\ - ["npm:1.2.4", {\ - "packageLocation": "../../../.yarn/berry/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-10c0.zip/node_modules/lines-and-columns/",\ - "packageDependencies": [\ - ["lines-and-columns", "npm:1.2.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["locate-path", [\ - ["npm:5.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/locate-path-npm-5.0.0-46580c43e4-10c0.zip/node_modules/locate-path/",\ - "packageDependencies": [\ - ["locate-path", "npm:5.0.0"],\ - ["p-locate", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.memoize", [\ - ["npm:4.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/lodash.memoize-npm-4.1.2-0e6250041f-10c0.zip/node_modules/lodash.memoize/",\ - "packageDependencies": [\ - ["lodash.memoize", "npm:4.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lru-cache", [\ - ["npm:10.4.3", {\ - "packageLocation": "../../../.yarn/berry/cache/lru-cache-npm-10.4.3-30c10b861a-10c0.zip/node_modules/lru-cache/",\ - "packageDependencies": [\ - ["lru-cache", "npm:10.4.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/lru-cache-npm-5.1.1-f475882a51-10c0.zip/node_modules/lru-cache/",\ - "packageDependencies": [\ - ["lru-cache", "npm:5.1.1"],\ - ["yallist", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["make-dir", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/make-dir-npm-4.0.0-ec3cd921cc-10c0.zip/node_modules/make-dir/",\ - "packageDependencies": [\ - ["make-dir", "npm:4.0.0"],\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["make-error", [\ - ["npm:1.3.6", {\ - "packageLocation": "../../../.yarn/berry/cache/make-error-npm-1.3.6-ccb85d9458-10c0.zip/node_modules/make-error/",\ - "packageDependencies": [\ - ["make-error", "npm:1.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["make-fetch-happen", [\ - ["npm:14.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/make-fetch-happen-npm-14.0.3-23b30e8691-10c0.zip/node_modules/make-fetch-happen/",\ - "packageDependencies": [\ - ["make-fetch-happen", "npm:14.0.3"],\ - ["@npmcli/agent", "npm:3.0.0"],\ - ["cacache", "npm:19.0.1"],\ - ["http-cache-semantics", "npm:4.1.1"],\ - ["minipass", "npm:7.1.2"],\ - ["minipass-fetch", "npm:4.0.0"],\ - ["minipass-flush", "npm:1.0.5"],\ - ["minipass-pipeline", "npm:1.2.4"],\ - ["negotiator", "npm:1.0.0"],\ - ["proc-log", "npm:5.0.0"],\ - ["promise-retry", "npm:2.0.1"],\ - ["ssri", "npm:12.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["makeerror", [\ - ["npm:1.0.12", {\ - "packageLocation": "../../../.yarn/berry/cache/makeerror-npm-1.0.12-69abf085d7-10c0.zip/node_modules/makeerror/",\ - "packageDependencies": [\ - ["makeerror", "npm:1.0.12"],\ - ["tmpl", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["merge-stream", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/merge-stream-npm-2.0.0-2ac83efea5-10c0.zip/node_modules/merge-stream/",\ - "packageDependencies": [\ - ["merge-stream", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["micromatch", [\ - ["npm:4.0.8", {\ - "packageLocation": "../../../.yarn/berry/cache/micromatch-npm-4.0.8-c9570e4aca-10c0.zip/node_modules/micromatch/",\ - "packageDependencies": [\ - ["micromatch", "npm:4.0.8"],\ - ["braces", "npm:3.0.3"],\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mimic-fn", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-10c0.zip/node_modules/mimic-fn/",\ - "packageDependencies": [\ - ["mimic-fn", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minimatch", [\ - ["npm:3.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/minimatch-npm-3.1.2-9405269906-10c0.zip/node_modules/minimatch/",\ - "packageDependencies": [\ - ["minimatch", "npm:3.1.2"],\ - ["brace-expansion", "npm:1.1.11"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.1.6", {\ - "packageLocation": "../../../.yarn/berry/cache/minimatch-npm-5.1.6-1e71429f4c-10c0.zip/node_modules/minimatch/",\ - "packageDependencies": [\ - ["minimatch", "npm:5.1.6"],\ - ["brace-expansion", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:9.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/minimatch-npm-9.0.5-9aa93d97fa-10c0.zip/node_modules/minimatch/",\ - "packageDependencies": [\ - ["minimatch", "npm:9.0.5"],\ - ["brace-expansion", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass", [\ - ["npm:3.3.6", {\ - "packageLocation": "../../../.yarn/berry/cache/minipass-npm-3.3.6-b8d93a945b-10c0.zip/node_modules/minipass/",\ - "packageDependencies": [\ - ["minipass", "npm:3.3.6"],\ - ["yallist", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/minipass-npm-7.1.2-3a5327d36d-10c0.zip/node_modules/minipass/",\ - "packageDependencies": [\ - ["minipass", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-collect", [\ - ["npm:2.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/minipass-collect-npm-2.0.1-73d3907e40-10c0.zip/node_modules/minipass-collect/",\ - "packageDependencies": [\ - ["minipass-collect", "npm:2.0.1"],\ - ["minipass", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-fetch", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/minipass-fetch-npm-4.0.0-d4e49e0194-10c0.zip/node_modules/minipass-fetch/",\ - "packageDependencies": [\ - ["minipass-fetch", "npm:4.0.0"],\ - ["encoding", "npm:0.1.13"],\ - ["minipass", "npm:7.1.2"],\ - ["minipass-sized", "npm:1.0.3"],\ - ["minizlib", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-flush", [\ - ["npm:1.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/minipass-flush-npm-1.0.5-efe79d9826-10c0.zip/node_modules/minipass-flush/",\ - "packageDependencies": [\ - ["minipass-flush", "npm:1.0.5"],\ - ["minipass", "npm:3.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-pipeline", [\ - ["npm:1.2.4", {\ - "packageLocation": "../../../.yarn/berry/cache/minipass-pipeline-npm-1.2.4-5924cb077f-10c0.zip/node_modules/minipass-pipeline/",\ - "packageDependencies": [\ - ["minipass-pipeline", "npm:1.2.4"],\ - ["minipass", "npm:3.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass-sized", [\ - ["npm:1.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/minipass-sized-npm-1.0.3-306d86f432-10c0.zip/node_modules/minipass-sized/",\ - "packageDependencies": [\ - ["minipass-sized", "npm:1.0.3"],\ - ["minipass", "npm:3.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minizlib", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/minizlib-npm-3.0.1-4bdabd978f-10c0.zip/node_modules/minizlib/",\ - "packageDependencies": [\ - ["minizlib", "npm:3.0.1"],\ - ["minipass", "npm:7.1.2"],\ - ["rimraf", "npm:5.0.10"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mkdirp", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/mkdirp-npm-3.0.1-f94bfa769e-10c0.zip/node_modules/mkdirp/",\ - "packageDependencies": [\ - ["mkdirp", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ms", [\ - ["npm:2.1.3", {\ - "packageLocation": "../../../.yarn/berry/cache/ms-npm-2.1.3-81ff3cfac1-10c0.zip/node_modules/ms/",\ - "packageDependencies": [\ - ["ms", "npm:2.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["natural-compare", [\ - ["npm:1.4.0", {\ - "packageLocation": "../../../.yarn/berry/cache/natural-compare-npm-1.4.0-97b75b362d-10c0.zip/node_modules/natural-compare/",\ - "packageDependencies": [\ - ["natural-compare", "npm:1.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["negotiator", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/negotiator-npm-1.0.0-47d727e27e-10c0.zip/node_modules/negotiator/",\ - "packageDependencies": [\ - ["negotiator", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-gyp", [\ - ["npm:11.0.0", {\ - "packageLocation": "./.yarn/unplugged/node-gyp-npm-11.0.0-669e34db1b/node_modules/node-gyp/",\ - "packageDependencies": [\ - ["node-gyp", "npm:11.0.0"],\ - ["env-paths", "npm:2.2.1"],\ - ["exponential-backoff", "npm:3.1.1"],\ - ["glob", "npm:10.4.5"],\ - ["graceful-fs", "npm:4.2.11"],\ - ["make-fetch-happen", "npm:14.0.3"],\ - ["nopt", "npm:8.1.0"],\ - ["proc-log", "npm:5.0.0"],\ - ["semver", "npm:7.6.3"],\ - ["tar", "npm:7.4.3"],\ - ["which", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-int64", [\ - ["npm:0.4.0", {\ - "packageLocation": "../../../.yarn/berry/cache/node-int64-npm-0.4.0-0dc04ec3b2-10c0.zip/node_modules/node-int64/",\ - "packageDependencies": [\ - ["node-int64", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-releases", [\ - ["npm:2.0.19", {\ - "packageLocation": "../../../.yarn/berry/cache/node-releases-npm-2.0.19-b123ed6240-10c0.zip/node_modules/node-releases/",\ - "packageDependencies": [\ - ["node-releases", "npm:2.0.19"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["nodemon", [\ - ["npm:3.1.9", {\ - "packageLocation": "./.yarn/unplugged/nodemon-npm-3.1.9-f1382c5541/node_modules/nodemon/",\ - "packageDependencies": [\ - ["nodemon", "npm:3.1.9"],\ - ["chokidar", "npm:3.6.0"],\ - ["debug", "virtual:f1382c554182f9e1abb3745e34e5163637ebd3c611df77e82da38f1ec9964f1d016765e440e68141eed073069546eb468a3a6ce4bd0b2b99cbf6baa9d7635af7#npm:4.4.0"],\ - ["ignore-by-default", "npm:1.0.1"],\ - ["minimatch", "npm:3.1.2"],\ - ["pstree.remy", "npm:1.1.8"],\ - ["semver", "npm:7.6.3"],\ - ["simple-update-notifier", "npm:2.0.0"],\ - ["supports-color", "npm:5.5.0"],\ - ["touch", "npm:3.1.1"],\ - ["undefsafe", "npm:2.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["nopt", [\ - ["npm:8.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/nopt-npm-8.1.0-5570ef63cd-10c0.zip/node_modules/nopt/",\ - "packageDependencies": [\ - ["nopt", "npm:8.1.0"],\ - ["abbrev", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["normalize-path", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/normalize-path-npm-3.0.0-658ba7d77f-10c0.zip/node_modules/normalize-path/",\ - "packageDependencies": [\ - ["normalize-path", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["npm-run-path", [\ - ["npm:4.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/npm-run-path-npm-4.0.1-7aebd8bab3-10c0.zip/node_modules/npm-run-path/",\ - "packageDependencies": [\ - ["npm-run-path", "npm:4.0.1"],\ - ["path-key", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["once", [\ - ["npm:1.4.0", {\ - "packageLocation": "../../../.yarn/berry/cache/once-npm-1.4.0-ccf03ef07a-10c0.zip/node_modules/once/",\ - "packageDependencies": [\ - ["once", "npm:1.4.0"],\ - ["wrappy", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["onetime", [\ - ["npm:5.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/onetime-npm-5.1.2-3ed148fa42-10c0.zip/node_modules/onetime/",\ - "packageDependencies": [\ - ["onetime", "npm:5.1.2"],\ - ["mimic-fn", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-limit", [\ - ["npm:2.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/p-limit-npm-2.3.0-94a0310039-10c0.zip/node_modules/p-limit/",\ - "packageDependencies": [\ - ["p-limit", "npm:2.3.0"],\ - ["p-try", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/p-limit-npm-3.1.0-05d2ede37f-10c0.zip/node_modules/p-limit/",\ - "packageDependencies": [\ - ["p-limit", "npm:3.1.0"],\ - ["yocto-queue", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-locate", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/p-locate-npm-4.1.0-eec6872537-10c0.zip/node_modules/p-locate/",\ - "packageDependencies": [\ - ["p-locate", "npm:4.1.0"],\ - ["p-limit", "npm:2.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-map", [\ - ["npm:7.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/p-map-npm-7.0.3-93bbec0d8c-10c0.zip/node_modules/p-map/",\ - "packageDependencies": [\ - ["p-map", "npm:7.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-try", [\ - ["npm:2.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/p-try-npm-2.2.0-e0390dbaf8-10c0.zip/node_modules/p-try/",\ - "packageDependencies": [\ - ["p-try", "npm:2.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["package-json-from-dist", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/package-json-from-dist-npm-1.0.1-4631a88465-10c0.zip/node_modules/package-json-from-dist/",\ - "packageDependencies": [\ - ["package-json-from-dist", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["parse-json", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/parse-json-npm-5.2.0-00a63b1199-10c0.zip/node_modules/parse-json/",\ - "packageDependencies": [\ - ["parse-json", "npm:5.2.0"],\ - ["@babel/code-frame", "npm:7.26.2"],\ - ["error-ex", "npm:1.3.2"],\ - ["json-parse-even-better-errors", "npm:2.3.1"],\ - ["lines-and-columns", "npm:1.2.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-exists", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/path-exists-npm-4.0.0-e9e4f63eb0-10c0.zip/node_modules/path-exists/",\ - "packageDependencies": [\ - ["path-exists", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-is-absolute", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/path-is-absolute-npm-1.0.1-31bc695ffd-10c0.zip/node_modules/path-is-absolute/",\ - "packageDependencies": [\ - ["path-is-absolute", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-key", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/path-key-npm-3.1.1-0e66ea8321-10c0.zip/node_modules/path-key/",\ - "packageDependencies": [\ - ["path-key", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-parse", [\ - ["npm:1.0.7", {\ - "packageLocation": "../../../.yarn/berry/cache/path-parse-npm-1.0.7-09564527b7-10c0.zip/node_modules/path-parse/",\ - "packageDependencies": [\ - ["path-parse", "npm:1.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-scurry", [\ - ["npm:1.11.1", {\ - "packageLocation": "../../../.yarn/berry/cache/path-scurry-npm-1.11.1-aaf8c339af-10c0.zip/node_modules/path-scurry/",\ - "packageDependencies": [\ - ["path-scurry", "npm:1.11.1"],\ - ["lru-cache", "npm:10.4.3"],\ - ["minipass", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["picocolors", [\ - ["npm:1.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/picocolors-npm-1.1.1-4fede47cf1-10c0.zip/node_modules/picocolors/",\ - "packageDependencies": [\ - ["picocolors", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["picomatch", [\ - ["npm:2.3.1", {\ - "packageLocation": "../../../.yarn/berry/cache/picomatch-npm-2.3.1-c782cfd986-10c0.zip/node_modules/picomatch/",\ - "packageDependencies": [\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pirates", [\ - ["npm:4.0.6", {\ - "packageLocation": "../../../.yarn/berry/cache/pirates-npm-4.0.6-a8ec571a43-10c0.zip/node_modules/pirates/",\ - "packageDependencies": [\ - ["pirates", "npm:4.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pkg-dir", [\ - ["npm:4.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-10c0.zip/node_modules/pkg-dir/",\ - "packageDependencies": [\ - ["pkg-dir", "npm:4.2.0"],\ - ["find-up", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pretty-format", [\ - ["npm:29.7.0", {\ - "packageLocation": "../../../.yarn/berry/cache/pretty-format-npm-29.7.0-7d330b2ea2-10c0.zip/node_modules/pretty-format/",\ - "packageDependencies": [\ - ["pretty-format", "npm:29.7.0"],\ - ["@jest/schemas", "npm:29.6.3"],\ - ["ansi-styles", "npm:5.2.0"],\ - ["react-is", "npm:18.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["proc-log", [\ - ["npm:5.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/proc-log-npm-5.0.0-405173f9b4-10c0.zip/node_modules/proc-log/",\ - "packageDependencies": [\ - ["proc-log", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["promise-retry", [\ - ["npm:2.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/promise-retry-npm-2.0.1-871f0b01b7-10c0.zip/node_modules/promise-retry/",\ - "packageDependencies": [\ - ["promise-retry", "npm:2.0.1"],\ - ["err-code", "npm:2.0.3"],\ - ["retry", "npm:0.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["prompts", [\ - ["npm:2.4.2", {\ - "packageLocation": "../../../.yarn/berry/cache/prompts-npm-2.4.2-f5d25d5eea-10c0.zip/node_modules/prompts/",\ - "packageDependencies": [\ - ["prompts", "npm:2.4.2"],\ - ["kleur", "npm:3.0.3"],\ - ["sisteransi", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pstree.remy", [\ - ["npm:1.1.8", {\ - "packageLocation": "../../../.yarn/berry/cache/pstree.remy-npm-1.1.8-2dd5d55de2-10c0.zip/node_modules/pstree.remy/",\ - "packageDependencies": [\ - ["pstree.remy", "npm:1.1.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pure-rand", [\ - ["npm:6.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/pure-rand-npm-6.1.0-497ea3fc37-10c0.zip/node_modules/pure-rand/",\ - "packageDependencies": [\ - ["pure-rand", "npm:6.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["react-is", [\ - ["npm:18.3.1", {\ - "packageLocation": "../../../.yarn/berry/cache/react-is-npm-18.3.1-370a81e1e9-10c0.zip/node_modules/react-is/",\ - "packageDependencies": [\ - ["react-is", "npm:18.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["readdirp", [\ - ["npm:3.6.0", {\ - "packageLocation": "../../../.yarn/berry/cache/readdirp-npm-3.6.0-f950cc74ab-10c0.zip/node_modules/readdirp/",\ - "packageDependencies": [\ - ["readdirp", "npm:3.6.0"],\ - ["picomatch", "npm:2.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["require-directory", [\ - ["npm:2.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/require-directory-npm-2.1.1-8608aee50b-10c0.zip/node_modules/require-directory/",\ - "packageDependencies": [\ - ["require-directory", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve", [\ - ["patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d", {\ - "packageLocation": "../../../.yarn/berry/cache/resolve-patch-b5982cfa8c-10c0.zip/node_modules/resolve/",\ - "packageDependencies": [\ - ["resolve", "patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d"],\ - ["is-core-module", "npm:2.16.1"],\ - ["path-parse", "npm:1.0.7"],\ - ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve-cwd", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-10c0.zip/node_modules/resolve-cwd/",\ - "packageDependencies": [\ - ["resolve-cwd", "npm:3.0.0"],\ - ["resolve-from", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve-from", [\ - ["npm:5.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/resolve-from-npm-5.0.0-15c9db4d33-10c0.zip/node_modules/resolve-from/",\ - "packageDependencies": [\ - ["resolve-from", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["resolve.exports", [\ - ["npm:2.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/resolve.exports-npm-2.0.3-eb33ea72e9-10c0.zip/node_modules/resolve.exports/",\ - "packageDependencies": [\ - ["resolve.exports", "npm:2.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["retry", [\ - ["npm:0.12.0", {\ - "packageLocation": "../../../.yarn/berry/cache/retry-npm-0.12.0-72ac7fb4cc-10c0.zip/node_modules/retry/",\ - "packageDependencies": [\ - ["retry", "npm:0.12.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["rimraf", [\ - ["npm:5.0.10", {\ - "packageLocation": "../../../.yarn/berry/cache/rimraf-npm-5.0.10-d0c6647697-10c0.zip/node_modules/rimraf/",\ - "packageDependencies": [\ - ["rimraf", "npm:5.0.10"],\ - ["glob", "npm:10.4.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["safer-buffer", [\ - ["npm:2.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/safer-buffer-npm-2.1.2-8d5c0b705e-10c0.zip/node_modules/safer-buffer/",\ - "packageDependencies": [\ - ["safer-buffer", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["semver", [\ - ["npm:6.3.1", {\ - "packageLocation": "../../../.yarn/berry/cache/semver-npm-6.3.1-bcba31fdbe-10c0.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:6.3.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.6.3", {\ - "packageLocation": "../../../.yarn/berry/cache/semver-npm-7.6.3-57e82c14d5-10c0.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shebang-command", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/shebang-command-npm-2.0.0-eb2b01921d-10c0.zip/node_modules/shebang-command/",\ - "packageDependencies": [\ - ["shebang-command", "npm:2.0.0"],\ - ["shebang-regex", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shebang-regex", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/shebang-regex-npm-3.0.0-899a0cd65e-10c0.zip/node_modules/shebang-regex/",\ - "packageDependencies": [\ - ["shebang-regex", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["signal-exit", [\ - ["npm:3.0.7", {\ - "packageLocation": "../../../.yarn/berry/cache/signal-exit-npm-3.0.7-bd270458a3-10c0.zip/node_modules/signal-exit/",\ - "packageDependencies": [\ - ["signal-exit", "npm:3.0.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/signal-exit-npm-4.1.0-61fb957687-10c0.zip/node_modules/signal-exit/",\ - "packageDependencies": [\ - ["signal-exit", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["simple-update-notifier", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/simple-update-notifier-npm-2.0.0-4d6e5dba61-10c0.zip/node_modules/simple-update-notifier/",\ - "packageDependencies": [\ - ["simple-update-notifier", "npm:2.0.0"],\ - ["semver", "npm:7.6.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sisteransi", [\ - ["npm:1.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/sisteransi-npm-1.0.5-af60cc0cfa-10c0.zip/node_modules/sisteransi/",\ - "packageDependencies": [\ - ["sisteransi", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["slash", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/slash-npm-3.0.0-b87de2279a-10c0.zip/node_modules/slash/",\ - "packageDependencies": [\ - ["slash", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["smart-buffer", [\ - ["npm:4.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/smart-buffer-npm-4.2.0-5ac3f668bb-10c0.zip/node_modules/smart-buffer/",\ - "packageDependencies": [\ - ["smart-buffer", "npm:4.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["socks", [\ - ["npm:2.8.3", {\ - "packageLocation": "../../../.yarn/berry/cache/socks-npm-2.8.3-3532b59899-10c0.zip/node_modules/socks/",\ - "packageDependencies": [\ - ["socks", "npm:2.8.3"],\ - ["ip-address", "npm:9.0.5"],\ - ["smart-buffer", "npm:4.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["socks-proxy-agent", [\ - ["npm:8.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-10c0.zip/node_modules/socks-proxy-agent/",\ - "packageDependencies": [\ - ["socks-proxy-agent", "npm:8.0.5"],\ - ["agent-base", "npm:7.1.3"],\ - ["debug", "virtual:a3d61690ba664825bc3419a2793a38c5816b08788b98c6ee50351b5774678dbdc2bb4fee8b9da058baf30b2cafbd28e48fcd8cf8cd1fda2d9d7ea9d6b90379c7#npm:4.4.0"],\ - ["socks", "npm:2.8.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["source-map", [\ - ["npm:0.6.1", {\ - "packageLocation": "../../../.yarn/berry/cache/source-map-npm-0.6.1-1a3621db16-10c0.zip/node_modules/source-map/",\ - "packageDependencies": [\ - ["source-map", "npm:0.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["source-map-support", [\ - ["npm:0.5.13", {\ - "packageLocation": "../../../.yarn/berry/cache/source-map-support-npm-0.5.13-377dfd7321-10c0.zip/node_modules/source-map-support/",\ - "packageDependencies": [\ - ["source-map-support", "npm:0.5.13"],\ - ["buffer-from", "npm:1.1.2"],\ - ["source-map", "npm:0.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sprintf-js", [\ - ["npm:1.0.3", {\ - "packageLocation": "../../../.yarn/berry/cache/sprintf-js-npm-1.0.3-73f0a322fa-10c0.zip/node_modules/sprintf-js/",\ - "packageDependencies": [\ - ["sprintf-js", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.1.3", {\ - "packageLocation": "../../../.yarn/berry/cache/sprintf-js-npm-1.1.3-b99efd75b2-10c0.zip/node_modules/sprintf-js/",\ - "packageDependencies": [\ - ["sprintf-js", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ssri", [\ - ["npm:12.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/ssri-npm-12.0.0-97c0e53d2e-10c0.zip/node_modules/ssri/",\ - "packageDependencies": [\ - ["ssri", "npm:12.0.0"],\ - ["minipass", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["stack-utils", [\ - ["npm:2.0.6", {\ - "packageLocation": "../../../.yarn/berry/cache/stack-utils-npm-2.0.6-2be1099696-10c0.zip/node_modules/stack-utils/",\ - "packageDependencies": [\ - ["stack-utils", "npm:2.0.6"],\ - ["escape-string-regexp", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string-length", [\ - ["npm:4.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/string-length-npm-4.0.2-675173c7a2-10c0.zip/node_modules/string-length/",\ - "packageDependencies": [\ - ["string-length", "npm:4.0.2"],\ - ["char-regex", "npm:1.0.2"],\ - ["strip-ansi", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string-width", [\ - ["npm:4.2.3", {\ - "packageLocation": "../../../.yarn/berry/cache/string-width-npm-4.2.3-2c27177bae-10c0.zip/node_modules/string-width/",\ - "packageDependencies": [\ - ["string-width", "npm:4.2.3"],\ - ["emoji-regex", "npm:8.0.0"],\ - ["is-fullwidth-code-point", "npm:3.0.0"],\ - ["strip-ansi", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/string-width-npm-5.1.2-bf60531341-10c0.zip/node_modules/string-width/",\ - "packageDependencies": [\ - ["string-width", "npm:5.1.2"],\ - ["eastasianwidth", "npm:0.2.0"],\ - ["emoji-regex", "npm:9.2.2"],\ - ["strip-ansi", "npm:7.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-ansi", [\ - ["npm:6.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/strip-ansi-npm-6.0.1-caddc7cb40-10c0.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["strip-ansi", "npm:6.0.1"],\ - ["ansi-regex", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/strip-ansi-npm-7.1.0-7453b80b79-10c0.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["strip-ansi", "npm:7.1.0"],\ - ["ansi-regex", "npm:6.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-bom", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/strip-bom-npm-4.0.0-97d367a64d-10c0.zip/node_modules/strip-bom/",\ - "packageDependencies": [\ - ["strip-bom", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-final-newline", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/strip-final-newline-npm-2.0.0-340c4f7c66-10c0.zip/node_modules/strip-final-newline/",\ - "packageDependencies": [\ - ["strip-final-newline", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-json-comments", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/strip-json-comments-npm-3.1.1-dcb2324823-10c0.zip/node_modules/strip-json-comments/",\ - "packageDependencies": [\ - ["strip-json-comments", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["supports-color", [\ - ["npm:5.5.0", {\ - "packageLocation": "../../../.yarn/berry/cache/supports-color-npm-5.5.0-183ac537bc-10c0.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["supports-color", "npm:5.5.0"],\ - ["has-flag", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.2.0", {\ - "packageLocation": "../../../.yarn/berry/cache/supports-color-npm-7.2.0-606bfcf7da-10c0.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["supports-color", "npm:7.2.0"],\ - ["has-flag", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/supports-color-npm-8.1.1-289e937149-10c0.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["supports-color", "npm:8.1.1"],\ - ["has-flag", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["supports-preserve-symlinks-flag", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-10c0.zip/node_modules/supports-preserve-symlinks-flag/",\ - "packageDependencies": [\ - ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tar", [\ - ["npm:7.4.3", {\ - "packageLocation": "../../../.yarn/berry/cache/tar-npm-7.4.3-1dbbd1ffc3-10c0.zip/node_modules/tar/",\ - "packageDependencies": [\ - ["tar", "npm:7.4.3"],\ - ["@isaacs/fs-minipass", "npm:4.0.1"],\ - ["chownr", "npm:3.0.0"],\ - ["minipass", "npm:7.1.2"],\ - ["minizlib", "npm:3.0.1"],\ - ["mkdirp", "npm:3.0.1"],\ - ["yallist", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["test-exclude", [\ - ["npm:6.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/test-exclude-npm-6.0.0-3fb03d69df-10c0.zip/node_modules/test-exclude/",\ - "packageDependencies": [\ - ["test-exclude", "npm:6.0.0"],\ - ["@istanbuljs/schema", "npm:0.1.3"],\ - ["glob", "npm:7.2.3"],\ - ["minimatch", "npm:3.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tmpl", [\ - ["npm:1.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/tmpl-npm-1.0.5-d399ba37e2-10c0.zip/node_modules/tmpl/",\ - "packageDependencies": [\ - ["tmpl", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["to-regex-range", [\ - ["npm:5.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/to-regex-range-npm-5.0.1-f1e8263b00-10c0.zip/node_modules/to-regex-range/",\ - "packageDependencies": [\ - ["to-regex-range", "npm:5.0.1"],\ - ["is-number", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["touch", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/touch-npm-3.1.1-30ecbeb0ee-10c0.zip/node_modules/touch/",\ - "packageDependencies": [\ - ["touch", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ts-jest", [\ - ["npm:29.2.5", {\ - "packageLocation": "../../../.yarn/berry/cache/ts-jest-npm-29.2.5-3012d53ff5-10c0.zip/node_modules/ts-jest/",\ - "packageDependencies": [\ - ["ts-jest", "npm:29.2.5"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5", {\ - "packageLocation": "./.yarn/__virtual__/ts-jest-virtual-967fc0c20c/4/.yarn/berry/cache/ts-jest-npm-29.2.5-3012d53ff5-10c0.zip/node_modules/ts-jest/",\ - "packageDependencies": [\ - ["ts-jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.2.5"],\ - ["@babel/core", null],\ - ["@jest/transform", null],\ - ["@jest/types", null],\ - ["@types/babel-jest", null],\ - ["@types/babel__core", null],\ - ["@types/esbuild", null],\ - ["@types/jest", "npm:29.5.14"],\ - ["@types/jest__transform", null],\ - ["@types/jest__types", null],\ - ["@types/typescript", null],\ - ["babel-jest", null],\ - ["bs-logger", "npm:0.2.6"],\ - ["ejs", "npm:3.1.10"],\ - ["esbuild", null],\ - ["fast-json-stable-stringify", "npm:2.1.0"],\ - ["jest", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:29.7.0"],\ - ["jest-util", "npm:29.7.0"],\ - ["json5", "npm:2.2.3"],\ - ["lodash.memoize", "npm:4.1.2"],\ - ["make-error", "npm:1.3.6"],\ - ["semver", "npm:7.6.3"],\ - ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"],\ - ["yargs-parser", "npm:21.1.1"]\ - ],\ - "packagePeers": [\ - "@babel/core",\ - "@jest/transform",\ - "@jest/types",\ - "@types/babel-jest",\ - "@types/babel__core",\ - "@types/esbuild",\ - "@types/jest",\ - "@types/jest__transform",\ - "@types/jest__types",\ - "@types/typescript",\ - "babel-jest",\ - "esbuild",\ - "jest",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ts-node", [\ - ["npm:10.9.2", {\ - "packageLocation": "../../../.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ - "packageDependencies": [\ - ["ts-node", "npm:10.9.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2", {\ - "packageLocation": "./.yarn/__virtual__/ts-node-virtual-a36e27cc40/4/.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ - "packageDependencies": [\ - ["ts-node", "virtual:01b8ccb9dd1d574d94b95dcfe5c45384991c754106c14b9810c7009db0812dea2fcf9bf5e4194e1b3f02bc4c22dc01d4d9b705aa28dd173472dae8b753858a4b#npm:10.9.2"],\ - ["@cspotcode/source-map-support", "npm:0.8.1"],\ - ["@swc/core", null],\ - ["@swc/wasm", null],\ - ["@tsconfig/node10", "npm:1.0.11"],\ - ["@tsconfig/node12", "npm:1.0.11"],\ - ["@tsconfig/node14", "npm:1.0.3"],\ - ["@tsconfig/node16", "npm:1.0.4"],\ - ["@types/node", "npm:20.17.16"],\ - ["@types/swc__core", null],\ - ["@types/swc__wasm", null],\ - ["@types/typescript", null],\ - ["acorn", "npm:8.14.0"],\ - ["acorn-walk", "npm:8.3.4"],\ - ["arg", "npm:4.1.3"],\ - ["create-require", "npm:1.1.1"],\ - ["diff", "npm:4.0.2"],\ - ["make-error", "npm:1.3.6"],\ - ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"],\ - ["v8-compile-cache-lib", "npm:3.0.1"],\ - ["yn", "npm:3.1.1"]\ - ],\ - "packagePeers": [\ - "@swc/core",\ - "@swc/wasm",\ - "@types/node",\ - "@types/swc__core",\ - "@types/swc__wasm",\ - "@types/typescript",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["type-detect", [\ - ["npm:4.0.8", {\ - "packageLocation": "../../../.yarn/berry/cache/type-detect-npm-4.0.8-8d8127b901-10c0.zip/node_modules/type-detect/",\ - "packageDependencies": [\ - ["type-detect", "npm:4.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["type-fest", [\ - ["npm:0.21.3", {\ - "packageLocation": "../../../.yarn/berry/cache/type-fest-npm-0.21.3-5ff2a9c6fd-10c0.zip/node_modules/type-fest/",\ - "packageDependencies": [\ - ["type-fest", "npm:0.21.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["typescript", [\ - ["patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40", {\ - "packageLocation": "../../../.yarn/berry/cache/typescript-patch-d15822a933-10c0.zip/node_modules/typescript/",\ - "packageDependencies": [\ - ["typescript", "patch:typescript@npm%3A5.7.3#optional!builtin::version=5.7.3&hash=8c6c40"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["undefsafe", [\ - ["npm:2.0.5", {\ - "packageLocation": "../../../.yarn/berry/cache/undefsafe-npm-2.0.5-8c3bbf9354-10c0.zip/node_modules/undefsafe/",\ - "packageDependencies": [\ - ["undefsafe", "npm:2.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["undici-types", [\ - ["npm:6.19.8", {\ - "packageLocation": "../../../.yarn/berry/cache/undici-types-npm-6.19.8-9f12285b7a-10c0.zip/node_modules/undici-types/",\ - "packageDependencies": [\ - ["undici-types", "npm:6.19.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.20.0", {\ - "packageLocation": "../../../.yarn/berry/cache/undici-types-npm-6.20.0-bd21e669af-10c0.zip/node_modules/undici-types/",\ - "packageDependencies": [\ - ["undici-types", "npm:6.20.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unique-filename", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/unique-filename-npm-4.0.0-bfc100c4e3-10c0.zip/node_modules/unique-filename/",\ - "packageDependencies": [\ - ["unique-filename", "npm:4.0.0"],\ - ["unique-slug", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["unique-slug", [\ - ["npm:5.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/unique-slug-npm-5.0.0-11508c0469-10c0.zip/node_modules/unique-slug/",\ - "packageDependencies": [\ - ["unique-slug", "npm:5.0.0"],\ - ["imurmurhash", "npm:0.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["update-browserslist-db", [\ - ["npm:1.1.2", {\ - "packageLocation": "../../../.yarn/berry/cache/update-browserslist-db-npm-1.1.2-59b122fef6-10c0.zip/node_modules/update-browserslist-db/",\ - "packageDependencies": [\ - ["update-browserslist-db", "npm:1.1.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:2fdeb5face9914bb5fd94c70f084d153c80d2f09e5aabee010e4220b248dc23fca8f73c7beed0195e45ae6e2b1cb25388f709d7bfc4f00e473d573887faf4e5c#npm:1.1.2", {\ - "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-d7fc8cbe33/4/.yarn/berry/cache/update-browserslist-db-npm-1.1.2-59b122fef6-10c0.zip/node_modules/update-browserslist-db/",\ - "packageDependencies": [\ - ["update-browserslist-db", "virtual:2fdeb5face9914bb5fd94c70f084d153c80d2f09e5aabee010e4220b248dc23fca8f73c7beed0195e45ae6e2b1cb25388f709d7bfc4f00e473d573887faf4e5c#npm:1.1.2"],\ - ["@types/browserslist", null],\ - ["browserslist", "npm:4.24.4"],\ - ["escalade", "npm:3.2.0"],\ - ["picocolors", "npm:1.1.1"]\ - ],\ - "packagePeers": [\ - "@types/browserslist",\ - "browserslist"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["v8-compile-cache-lib", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../.yarn/berry/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-10c0.zip/node_modules/v8-compile-cache-lib/",\ - "packageDependencies": [\ - ["v8-compile-cache-lib", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["v8-to-istanbul", [\ - ["npm:9.3.0", {\ - "packageLocation": "../../../.yarn/berry/cache/v8-to-istanbul-npm-9.3.0-35fef658c9-10c0.zip/node_modules/v8-to-istanbul/",\ - "packageDependencies": [\ - ["v8-to-istanbul", "npm:9.3.0"],\ - ["@jridgewell/trace-mapping", "npm:0.3.25"],\ - ["@types/istanbul-lib-coverage", "npm:2.0.6"],\ - ["convert-source-map", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["walker", [\ - ["npm:1.0.8", {\ - "packageLocation": "../../../.yarn/berry/cache/walker-npm-1.0.8-b0a05b9478-10c0.zip/node_modules/walker/",\ - "packageDependencies": [\ - ["walker", "npm:1.0.8"],\ - ["makeerror", "npm:1.0.12"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["which", [\ - ["npm:2.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-10c0.zip/node_modules/which/",\ - "packageDependencies": [\ - ["which", "npm:2.0.2"],\ - ["isexe", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/which-npm-5.0.0-15aa39eb60-10c0.zip/node_modules/which/",\ - "packageDependencies": [\ - ["which", "npm:5.0.0"],\ - ["isexe", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wrap-ansi", [\ - ["npm:7.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-10c0.zip/node_modules/wrap-ansi/",\ - "packageDependencies": [\ - ["wrap-ansi", "npm:7.0.0"],\ - ["ansi-styles", "npm:4.3.0"],\ - ["string-width", "npm:4.2.3"],\ - ["strip-ansi", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-10c0.zip/node_modules/wrap-ansi/",\ - "packageDependencies": [\ - ["wrap-ansi", "npm:8.1.0"],\ - ["ansi-styles", "npm:6.2.1"],\ - ["string-width", "npm:5.1.2"],\ - ["strip-ansi", "npm:7.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wrappy", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/wrappy-npm-1.0.2-916de4d4b3-10c0.zip/node_modules/wrappy/",\ - "packageDependencies": [\ - ["wrappy", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["write-file-atomic", [\ - ["npm:4.0.2", {\ - "packageLocation": "../../../.yarn/berry/cache/write-file-atomic-npm-4.0.2-661baae4aa-10c0.zip/node_modules/write-file-atomic/",\ - "packageDependencies": [\ - ["write-file-atomic", "npm:4.0.2"],\ - ["imurmurhash", "npm:0.1.4"],\ - ["signal-exit", "npm:3.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["y18n", [\ - ["npm:5.0.8", {\ - "packageLocation": "../../../.yarn/berry/cache/y18n-npm-5.0.8-5f3a0a7e62-10c0.zip/node_modules/y18n/",\ - "packageDependencies": [\ - ["y18n", "npm:5.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yallist", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/yallist-npm-3.1.1-a568a556b4-10c0.zip/node_modules/yallist/",\ - "packageDependencies": [\ - ["yallist", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-10c0.zip/node_modules/yallist/",\ - "packageDependencies": [\ - ["yallist", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.0.0", {\ - "packageLocation": "../../../.yarn/berry/cache/yallist-npm-5.0.0-8732dd9f1c-10c0.zip/node_modules/yallist/",\ - "packageDependencies": [\ - ["yallist", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yargs", [\ - ["npm:17.7.2", {\ - "packageLocation": "../../../.yarn/berry/cache/yargs-npm-17.7.2-80b62638e1-10c0.zip/node_modules/yargs/",\ - "packageDependencies": [\ - ["yargs", "npm:17.7.2"],\ - ["cliui", "npm:8.0.1"],\ - ["escalade", "npm:3.2.0"],\ - ["get-caller-file", "npm:2.0.5"],\ - ["require-directory", "npm:2.1.1"],\ - ["string-width", "npm:4.2.3"],\ - ["y18n", "npm:5.0.8"],\ - ["yargs-parser", "npm:21.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yargs-parser", [\ - ["npm:21.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/yargs-parser-npm-21.1.1-8fdc003314-10c0.zip/node_modules/yargs-parser/",\ - "packageDependencies": [\ - ["yargs-parser", "npm:21.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yn", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../.yarn/berry/cache/yn-npm-3.1.1-8ad4259784-10c0.zip/node_modules/yn/",\ - "packageDependencies": [\ - ["yn", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yocto-queue", [\ - ["npm:0.1.0", {\ - "packageLocation": "../../../.yarn/berry/cache/yocto-queue-npm-0.1.0-c6c9a7db29-10c0.zip/node_modules/yocto-queue/",\ - "packageDependencies": [\ - ["yocto-queue", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]]\ - ]\ -}'; - -function $$SETUP_STATE(hydrateRuntimeState, basePath) { - return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); -} - -const fs = require('fs'); -const path = require('path'); -const crypto = require('crypto'); -const os = require('os'); -const events = require('events'); -const nodeUtils = require('util'); -const stream = require('stream'); -const zlib = require('zlib'); -const require$$0 = require('module'); -const StringDecoder = require('string_decoder'); -const url = require('url'); -const buffer = require('buffer'); -const readline = require('readline'); -const assert = require('assert'); - -const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; - -function _interopNamespace(e) { - if (e && e.__esModule) return e; - const n = Object.create(null); - if (e) { - for (const k in e) { - if (k !== 'default') { - const d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - n.default = e; - return Object.freeze(n); -} - -const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); -const path__default = /*#__PURE__*/_interopDefaultLegacy(path); -const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils); -const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); -const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0); -const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder); -const buffer__default = /*#__PURE__*/_interopDefaultLegacy(buffer); -const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); - -const S_IFMT = 61440; -const S_IFDIR = 16384; -const S_IFREG = 32768; -const S_IFLNK = 40960; -const SAFE_TIME = 456789e3; - -function makeError$1(code, message) { - return Object.assign(new Error(`${code}: ${message}`), { code }); -} -function EBUSY(message) { - return makeError$1(`EBUSY`, message); -} -function ENOSYS(message, reason) { - return makeError$1(`ENOSYS`, `${message}, ${reason}`); -} -function EINVAL(reason) { - return makeError$1(`EINVAL`, `invalid argument, ${reason}`); -} -function EBADF(reason) { - return makeError$1(`EBADF`, `bad file descriptor, ${reason}`); -} -function ENOENT(reason) { - return makeError$1(`ENOENT`, `no such file or directory, ${reason}`); -} -function ENOTDIR(reason) { - return makeError$1(`ENOTDIR`, `not a directory, ${reason}`); -} -function EISDIR(reason) { - return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`); -} -function EEXIST(reason) { - return makeError$1(`EEXIST`, `file already exists, ${reason}`); -} -function EROFS(reason) { - return makeError$1(`EROFS`, `read-only filesystem, ${reason}`); -} -function ENOTEMPTY(reason) { - return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`); -} -function EOPNOTSUPP(reason) { - return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`); -} -function ERR_DIR_CLOSED() { - return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`); -} - -const DEFAULT_MODE = S_IFREG | 420; -class StatEntry { - uid = 0; - gid = 0; - size = 0; - blksize = 0; - atimeMs = 0; - mtimeMs = 0; - ctimeMs = 0; - birthtimeMs = 0; - atime = /* @__PURE__ */ new Date(0); - mtime = /* @__PURE__ */ new Date(0); - ctime = /* @__PURE__ */ new Date(0); - birthtime = /* @__PURE__ */ new Date(0); - dev = 0; - ino = 0; - mode = DEFAULT_MODE; - nlink = 1; - rdev = 0; - blocks = 1; - isBlockDevice() { - return false; - } - isCharacterDevice() { - return false; - } - isDirectory() { - return (this.mode & S_IFMT) === S_IFDIR; - } - isFIFO() { - return false; - } - isFile() { - return (this.mode & S_IFMT) === S_IFREG; - } - isSocket() { - return false; - } - isSymbolicLink() { - return (this.mode & S_IFMT) === S_IFLNK; - } -} -class BigIntStatsEntry { - uid = BigInt(0); - gid = BigInt(0); - size = BigInt(0); - blksize = BigInt(0); - atimeMs = BigInt(0); - mtimeMs = BigInt(0); - ctimeMs = BigInt(0); - birthtimeMs = BigInt(0); - atimeNs = BigInt(0); - mtimeNs = BigInt(0); - ctimeNs = BigInt(0); - birthtimeNs = BigInt(0); - atime = /* @__PURE__ */ new Date(0); - mtime = /* @__PURE__ */ new Date(0); - ctime = /* @__PURE__ */ new Date(0); - birthtime = /* @__PURE__ */ new Date(0); - dev = BigInt(0); - ino = BigInt(0); - mode = BigInt(DEFAULT_MODE); - nlink = BigInt(1); - rdev = BigInt(0); - blocks = BigInt(1); - isBlockDevice() { - return false; - } - isCharacterDevice() { - return false; - } - isDirectory() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR); - } - isFIFO() { - return false; - } - isFile() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG); - } - isSocket() { - return false; - } - isSymbolicLink() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK); - } -} -function makeDefaultStats() { - return new StatEntry(); -} -function clearStats(stats) { - for (const key in stats) { - if (Object.hasOwn(stats, key)) { - const element = stats[key]; - if (typeof element === `number`) { - stats[key] = 0; - } else if (typeof element === `bigint`) { - stats[key] = BigInt(0); - } else if (nodeUtils__namespace.types.isDate(element)) { - stats[key] = /* @__PURE__ */ new Date(0); - } - } - } - return stats; -} -function convertToBigIntStats(stats) { - const bigintStats = new BigIntStatsEntry(); - for (const key in stats) { - if (Object.hasOwn(stats, key)) { - const element = stats[key]; - if (typeof element === `number`) { - bigintStats[key] = BigInt(element); - } else if (nodeUtils__namespace.types.isDate(element)) { - bigintStats[key] = new Date(element); - } - } - } - bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6); - bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6); - bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6); - bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6); - return bigintStats; -} -function areStatsEqual(a, b) { - if (a.atimeMs !== b.atimeMs) - return false; - if (a.birthtimeMs !== b.birthtimeMs) - return false; - if (a.blksize !== b.blksize) - return false; - if (a.blocks !== b.blocks) - return false; - if (a.ctimeMs !== b.ctimeMs) - return false; - if (a.dev !== b.dev) - return false; - if (a.gid !== b.gid) - return false; - if (a.ino !== b.ino) - return false; - if (a.isBlockDevice() !== b.isBlockDevice()) - return false; - if (a.isCharacterDevice() !== b.isCharacterDevice()) - return false; - if (a.isDirectory() !== b.isDirectory()) - return false; - if (a.isFIFO() !== b.isFIFO()) - return false; - if (a.isFile() !== b.isFile()) - return false; - if (a.isSocket() !== b.isSocket()) - return false; - if (a.isSymbolicLink() !== b.isSymbolicLink()) - return false; - if (a.mode !== b.mode) - return false; - if (a.mtimeMs !== b.mtimeMs) - return false; - if (a.nlink !== b.nlink) - return false; - if (a.rdev !== b.rdev) - return false; - if (a.size !== b.size) - return false; - if (a.uid !== b.uid) - return false; - const aN = a; - const bN = b; - if (aN.atimeNs !== bN.atimeNs) - return false; - if (aN.mtimeNs !== bN.mtimeNs) - return false; - if (aN.ctimeNs !== bN.ctimeNs) - return false; - if (aN.birthtimeNs !== bN.birthtimeNs) - return false; - return true; -} - -const PortablePath = { - root: `/`, - dot: `.`, - parent: `..` -}; -const Filename = { - home: `~`, - nodeModules: `node_modules`, - manifest: `package.json`, - lockfile: `yarn.lock`, - virtual: `__virtual__`, - /** - * @deprecated - */ - pnpJs: `.pnp.js`, - pnpCjs: `.pnp.cjs`, - pnpData: `.pnp.data.json`, - pnpEsmLoader: `.pnp.loader.mjs`, - rc: `.yarnrc.yml`, - env: `.env` -}; -const npath = Object.create(path__default.default); -const ppath = Object.create(path__default.default.posix); -npath.cwd = () => process.cwd(); -ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; -if (process.platform === `win32`) { - ppath.resolve = (...segments) => { - if (segments.length > 0 && ppath.isAbsolute(segments[0])) { - return path__default.default.posix.resolve(...segments); - } else { - return path__default.default.posix.resolve(ppath.cwd(), ...segments); - } - }; -} -const contains = function(pathUtils, from, to) { - from = pathUtils.normalize(from); - to = pathUtils.normalize(to); - if (from === to) - return `.`; - if (!from.endsWith(pathUtils.sep)) - from = from + pathUtils.sep; - if (to.startsWith(from)) { - return to.slice(from.length); - } else { - return null; - } -}; -npath.contains = (from, to) => contains(npath, from, to); -ppath.contains = (from, to) => contains(ppath, from, to); -const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; -const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; -const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; -const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; -function fromPortablePathWin32(p) { - let portablePathMatch, uncPortablePathMatch; - if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) - p = portablePathMatch[1]; - else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) - p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; - else - return p; - return p.replace(/\//g, `\\`); -} -function toPortablePathWin32(p) { - p = p.replace(/\\/g, `/`); - let windowsPathMatch, uncWindowsPathMatch; - if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) - p = `/${windowsPathMatch[1]}`; - else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) - p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; - return p; -} -const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; -const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; -npath.fromPortablePath = fromPortablePath; -npath.toPortablePath = toPortablePath; -function convertPath(targetPathUtils, sourcePath) { - return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); -} - -const defaultTime = new Date(SAFE_TIME * 1e3); -const defaultTimeMs = defaultTime.getTime(); -async function copyPromise(destinationFs, destination, sourceFs, source, opts) { - const normalizedDestination = destinationFs.pathUtils.normalize(destination); - const normalizedSource = sourceFs.pathUtils.normalize(source); - const prelayout = []; - const postlayout = []; - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); - await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); - await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); - for (const operation of prelayout) - await operation(); - await Promise.all(postlayout.map((operation) => { - return operation(); - })); -} -async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { - const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; - const sourceStat = await sourceFs.lstatPromise(source); - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; - let updated; - switch (true) { - case sourceStat.isDirectory(): - { - updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isFile(): - { - updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isSymbolicLink(): - { - updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - default: { - throw new Error(`Unsupported file type (${sourceStat.mode})`); - } - } - if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { - if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { - postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); - updated = true; - } - if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { - postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); - updated = true; - } - } - return updated; -} -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch (e) { - return null; - } -} -async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null && !destinationStat.isDirectory()) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - let updated = false; - if (destinationStat === null) { - prelayout.push(async () => { - try { - await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); - } catch (err) { - if (err.code !== `EEXIST`) { - throw err; - } - } - }); - updated = true; - } - const entries = await sourceFs.readdirPromise(source); - const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; - if (opts.stableSort) { - for (const entry of entries.sort()) { - if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { - updated = true; - } - } - } else { - const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { - await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); - })); - if (entriesUpdateStatus.some((status) => status)) { - updated = true; - } - } - return updated; -} -async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { - const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); - const defaultMode = 420; - const sourceMode = sourceStat.mode & 511; - const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; - const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); - let AtomicBehavior; - ((AtomicBehavior2) => { - AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; - AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; - })(AtomicBehavior || (AtomicBehavior = {})); - let atomicBehavior = 1 /* Rename */; - let indexStat = await maybeLStat(destinationFs, indexPath); - if (destinationStat) { - const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; - const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; - if (isDestinationHardlinkedFromIndex) { - if (isIndexModified && linkStrategy.autoRepair) { - atomicBehavior = 0 /* Lock */; - indexStat = null; - } - } - if (!isDestinationHardlinkedFromIndex) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - } - const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; - let tempPathCleaned = false; - prelayout.push(async () => { - if (!indexStat) { - if (atomicBehavior === 0 /* Lock */) { - await destinationFs.lockPromise(indexPath, async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(indexPath, content); - }); - } - if (atomicBehavior === 1 /* Rename */ && tempPath) { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(tempPath, content); - try { - await destinationFs.linkPromise(tempPath, indexPath); - } catch (err) { - if (err.code === `EEXIST`) { - tempPathCleaned = true; - await destinationFs.unlinkPromise(tempPath); - } else { - throw err; - } - } - } - } - if (!destinationStat) { - await destinationFs.linkPromise(indexPath, destination); - } - }); - postlayout.push(async () => { - if (!indexStat) { - await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); - if (sourceMode !== defaultMode) { - await destinationFs.chmodPromise(indexPath, sourceMode); - } - } - if (tempPath && !tempPathCleaned) { - await destinationFs.unlinkPromise(tempPath); - } - }); - return false; -} -async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(destination, content); - }); - return true; -} -async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (opts.linkStrategy?.type === `HardlinkFromIndex`) { - return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); - } else { - return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } -} -async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} - -class CustomDir { - constructor(path, nextDirent, opts = {}) { - this.path = path; - this.nextDirent = nextDirent; - this.opts = opts; - } - closed = false; - throwIfClosed() { - if (this.closed) { - throw ERR_DIR_CLOSED(); - } - } - async *[Symbol.asyncIterator]() { - try { - let dirent; - while ((dirent = await this.read()) !== null) { - yield dirent; - } - } finally { - await this.close(); - } - } - read(cb) { - const dirent = this.readSync(); - if (typeof cb !== `undefined`) - return cb(null, dirent); - return Promise.resolve(dirent); - } - readSync() { - this.throwIfClosed(); - return this.nextDirent(); - } - close(cb) { - this.closeSync(); - if (typeof cb !== `undefined`) - return cb(null); - return Promise.resolve(); - } - closeSync() { - this.throwIfClosed(); - this.opts.onClose?.(); - this.closed = true; - } -} -function opendir(fakeFs, path, entries, opts) { - const nextDirent = () => { - const filename = entries.shift(); - if (typeof filename === `undefined`) - return null; - const entryPath = fakeFs.pathUtils.join(path, filename); - return Object.assign(fakeFs.statSync(entryPath), { - name: filename, - path: void 0 - }); - }; - return new CustomDir(path, nextDirent, opts); -} - -function assertStatus(current, expected) { - if (current !== expected) { - throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); - } -} -class CustomStatWatcher extends events.EventEmitter { - fakeFs; - path; - bigint; - status = "ready" /* Ready */; - changeListeners = /* @__PURE__ */ new Map(); - lastStats; - startTimeout = null; - static create(fakeFs, path, opts) { - const statWatcher = new CustomStatWatcher(fakeFs, path, opts); - statWatcher.start(); - return statWatcher; - } - constructor(fakeFs, path, { bigint = false } = {}) { - super(); - this.fakeFs = fakeFs; - this.path = path; - this.bigint = bigint; - this.lastStats = this.stat(); - } - start() { - assertStatus(this.status, "ready" /* Ready */); - this.status = "running" /* Running */; - this.startTimeout = setTimeout(() => { - this.startTimeout = null; - if (!this.fakeFs.existsSync(this.path)) { - this.emit("change" /* Change */, this.lastStats, this.lastStats); - } - }, 3); - } - stop() { - assertStatus(this.status, "running" /* Running */); - this.status = "stopped" /* Stopped */; - if (this.startTimeout !== null) { - clearTimeout(this.startTimeout); - this.startTimeout = null; - } - this.emit("stop" /* Stop */); - } - stat() { - try { - return this.fakeFs.statSync(this.path, { bigint: this.bigint }); - } catch (error) { - const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry(); - return clearStats(statInstance); - } - } - /** - * Creates an interval whose callback compares the current stats with the previous stats and notifies all listeners in case of changes. - * - * @param opts.persistent Decides whether the interval should be immediately unref-ed. - */ - makeInterval(opts) { - const interval = setInterval(() => { - const currentStats = this.stat(); - const previousStats = this.lastStats; - if (areStatsEqual(currentStats, previousStats)) - return; - this.lastStats = currentStats; - this.emit("change" /* Change */, currentStats, previousStats); - }, opts.interval); - return opts.persistent ? interval : interval.unref(); - } - /** - * Registers a listener and assigns it an interval. - */ - registerChangeListener(listener, opts) { - this.addListener("change" /* Change */, listener); - this.changeListeners.set(listener, this.makeInterval(opts)); - } - /** - * Unregisters the listener and clears the assigned interval. - */ - unregisterChangeListener(listener) { - this.removeListener("change" /* Change */, listener); - const interval = this.changeListeners.get(listener); - if (typeof interval !== `undefined`) - clearInterval(interval); - this.changeListeners.delete(listener); - } - /** - * Unregisters all listeners and clears all assigned intervals. - */ - unregisterAllChangeListeners() { - for (const listener of this.changeListeners.keys()) { - this.unregisterChangeListener(listener); - } - } - hasChangeListeners() { - return this.changeListeners.size > 0; - } - /** - * Refs all stored intervals. - */ - ref() { - for (const interval of this.changeListeners.values()) - interval.ref(); - return this; - } - /** - * Unrefs all stored intervals. - */ - unref() { - for (const interval of this.changeListeners.values()) - interval.unref(); - return this; - } -} - -const statWatchersByFakeFS = /* @__PURE__ */ new WeakMap(); -function watchFile(fakeFs, path, a, b) { - let bigint; - let persistent; - let interval; - let listener; - switch (typeof a) { - case `function`: - { - bigint = false; - persistent = true; - interval = 5007; - listener = a; - } - break; - default: - { - ({ - bigint = false, - persistent = true, - interval = 5007 - } = a); - listener = b; - } - break; - } - let statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) - statWatchersByFakeFS.set(fakeFs, statWatchers = /* @__PURE__ */ new Map()); - let statWatcher = statWatchers.get(path); - if (typeof statWatcher === `undefined`) { - statWatcher = CustomStatWatcher.create(fakeFs, path, { bigint }); - statWatchers.set(path, statWatcher); - } - statWatcher.registerChangeListener(listener, { persistent, interval }); - return statWatcher; -} -function unwatchFile(fakeFs, path, cb) { - const statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) - return; - const statWatcher = statWatchers.get(path); - if (typeof statWatcher === `undefined`) - return; - if (typeof cb === `undefined`) - statWatcher.unregisterAllChangeListeners(); - else - statWatcher.unregisterChangeListener(cb); - if (!statWatcher.hasChangeListeners()) { - statWatcher.stop(); - statWatchers.delete(path); - } -} -function unwatchAllFiles(fakeFs) { - const statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) - return; - for (const path of statWatchers.keys()) { - unwatchFile(fakeFs, path); - } -} - -class FakeFS { - pathUtils; - constructor(pathUtils) { - this.pathUtils = pathUtils; - } - async *genTraversePromise(init, { stableSort = false } = {}) { - const stack = [init]; - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); - if (stableSort) { - for (const entry2 of entries.sort()) { - stack.push(this.pathUtils.join(p, entry2)); - } - } else { - throw new Error(`Not supported`); - } - } else { - yield p; - } - } - } - async checksumFilePromise(path, { algorithm = `sha512` } = {}) { - const fd = await this.openPromise(path, `r`); - try { - const CHUNK_SIZE = 65536; - const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); - const hash = crypto.createHash(algorithm); - let bytesRead = 0; - while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) - hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); - return hash.digest(`hex`); - } finally { - await this.closePromise(fd); - } - } - async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { - let stat; - try { - stat = await this.lstatPromise(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) { - const entries = await this.readdirPromise(p); - await Promise.all(entries.map((entry) => { - return this.removePromise(this.pathUtils.resolve(p, entry)); - })); - } - for (let t = 0; t <= maxRetries; t++) { - try { - await this.rmdirPromise(p); - break; - } catch (error) { - if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { - throw error; - } else if (t < maxRetries) { - await new Promise((resolve) => setTimeout(resolve, t * 100)); - } - } - } - } else { - await this.unlinkPromise(p); - } - } - removeSync(p, { recursive = true } = {}) { - let stat; - try { - stat = this.lstatSync(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) - for (const entry of this.readdirSync(p)) - this.removeSync(this.pathUtils.resolve(p, entry)); - this.rmdirSync(p); - } else { - this.unlinkSync(p); - } - } - async mkdirpPromise(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - await this.mkdirPromise(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - await this.chmodPromise(subPath, chmod); - if (utimes != null) { - await this.utimesPromise(subPath, utimes[0], utimes[1]); - } else { - const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); - await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - mkdirpSync(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - this.mkdirSync(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - this.chmodSync(subPath, chmod); - if (utimes != null) { - this.utimesSync(subPath, utimes[0], utimes[1]); - } else { - const parentStat = this.statSync(this.pathUtils.dirname(subPath)); - this.utimesSync(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { - return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); - } - copySync(destination, source, { baseFs = this, overwrite = true } = {}) { - const stat = baseFs.lstatSync(source); - const exists = this.existsSync(destination); - if (stat.isDirectory()) { - this.mkdirpSync(destination); - const directoryListing = baseFs.readdirSync(source); - for (const entry of directoryListing) { - this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); - } - } else if (stat.isFile()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const content = baseFs.readFileSync(source); - this.writeFileSync(destination, content); - } - } else if (stat.isSymbolicLink()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const target = baseFs.readlinkSync(source); - this.symlinkSync(convertPath(this.pathUtils, target), destination); - } - } else { - throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); - } - const mode = stat.mode & 511; - this.chmodSync(destination, mode); - } - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content, opts); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } - async changeFileBufferPromise(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = await this.readFilePromise(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - await this.writeFilePromise(p, content, { mode }); - } - async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { - let current = ``; - try { - current = await this.readFilePromise(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - await this.writeFilePromise(p, normalizedContent, { mode }); - } - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content, opts); - } else { - return this.changeFileTextSync(p, content, opts); - } - } - changeFileBufferSync(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = this.readFileSync(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - this.writeFileSync(p, content, { mode }); - } - changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { - let current = ``; - try { - current = this.readFileSync(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - this.writeFileSync(p, normalizedContent, { mode }); - } - async movePromise(fromP, toP) { - try { - await this.renamePromise(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - await this.copyPromise(toP, fromP); - await this.removePromise(fromP); - } else { - throw error; - } - } - } - moveSync(fromP, toP) { - try { - this.renameSync(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - this.copySync(toP, fromP); - this.removeSync(fromP); - } else { - throw error; - } - } - } - async lockPromise(affectedPath, callback) { - const lockPath = `${affectedPath}.flock`; - const interval = 1e3 / 60; - const startTime = Date.now(); - let fd = null; - const isAlive = async () => { - let pid; - try { - [pid] = await this.readJsonPromise(lockPath); - } catch (error) { - return Date.now() - startTime < 500; - } - try { - process.kill(pid, 0); - return true; - } catch (error) { - return false; - } - }; - while (fd === null) { - try { - fd = await this.openPromise(lockPath, `wx`); - } catch (error) { - if (error.code === `EEXIST`) { - if (!await isAlive()) { - try { - await this.unlinkPromise(lockPath); - continue; - } catch (error2) { - } - } - if (Date.now() - startTime < 60 * 1e3) { - await new Promise((resolve) => setTimeout(resolve, interval)); - } else { - throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); - } - } else { - throw error; - } - } - } - await this.writePromise(fd, JSON.stringify([process.pid])); - try { - return await callback(); - } finally { - try { - await this.closePromise(fd); - await this.unlinkPromise(lockPath); - } catch (error) { - } - } - } - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - async writeJsonPromise(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} -`); - } - writeJsonSync(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return this.writeFileSync(p, `${JSON.stringify(data, null, space)} -`); - } - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) - p = result; - await this.lutimesPromise(p, stat.atime, stat.mtime); - } - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) - p = result; - this.lutimesSync(p, stat.atime, stat.mtime); - } -} -class BasePortableFakeFS extends FakeFS { - constructor() { - super(ppath); - } -} -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) - return os.EOL; - const crlf = matches.filter((nl) => nl === `\r -`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r -` : ` -`; -} -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} - -class ProxiedFS extends FakeFS { - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - resolve(path) { - return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); - } - getRealPath() { - return this.mapFromBase(this.baseFs.getRealPath()); - } - async openPromise(p, flags, mode) { - return this.baseFs.openPromise(this.mapToBase(p), flags, mode); - } - openSync(p, flags, mode) { - return this.baseFs.openSync(this.mapToBase(p), flags, mode); - } - async opendirPromise(p, opts) { - return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); - } - opendirSync(p, opts) { - return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); - } - async readPromise(fd, buffer, offset, length, position) { - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - } - readSync(fd, buffer, offset, length, position) { - return this.baseFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } - closeSync(fd) { - this.baseFs.closeSync(fd); - } - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } - async statPromise(p, opts) { - return this.baseFs.statPromise(this.mapToBase(p), opts); - } - statSync(p, opts) { - return this.baseFs.statSync(this.mapToBase(p), opts); - } - async fstatPromise(fd, opts) { - return this.baseFs.fstatPromise(fd, opts); - } - fstatSync(fd, opts) { - return this.baseFs.fstatSync(fd, opts); - } - lstatPromise(p, opts) { - return this.baseFs.lstatPromise(this.mapToBase(p), opts); - } - lstatSync(p, opts) { - return this.baseFs.lstatSync(this.mapToBase(p), opts); - } - async fchmodPromise(fd, mask) { - return this.baseFs.fchmodPromise(fd, mask); - } - fchmodSync(fd, mask) { - return this.baseFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return this.baseFs.chmodPromise(this.mapToBase(p), mask); - } - chmodSync(p, mask) { - return this.baseFs.chmodSync(this.mapToBase(p), mask); - } - async fchownPromise(fd, uid, gid) { - return this.baseFs.fchownPromise(fd, uid, gid); - } - fchownSync(fd, uid, gid) { - return this.baseFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); - } - chownSync(p, uid, gid) { - return this.baseFs.chownSync(this.mapToBase(p), uid, gid); - } - async renamePromise(oldP, newP) { - return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); - } - renameSync(oldP, newP) { - return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - async appendFilePromise(p, content, opts) { - return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); - } - appendFileSync(p, content, opts) { - return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); - } - async writeFilePromise(p, content, opts) { - return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); - } - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); - } - lutimesSync(p, atime, mtime) { - return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } - async rmPromise(p, opts) { - return this.baseFs.rmPromise(this.mapToBase(p), opts); - } - rmSync(p, opts) { - return this.baseFs.rmSync(this.mapToBase(p), opts); - } - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } - async symlinkPromise(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); - } - symlinkSync(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkSync(mappedTarget, mappedP, type); - } - async readFilePromise(p, encoding) { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } - readFileSync(p, encoding) { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } - readdirPromise(p, opts) { - return this.baseFs.readdirPromise(this.mapToBase(p), opts); - } - readdirSync(p, opts) { - return this.baseFs.readdirSync(this.mapToBase(p), opts); - } - async readlinkPromise(p) { - return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); - } - readlinkSync(p) { - return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); - } - async truncatePromise(p, len) { - return this.baseFs.truncatePromise(this.mapToBase(p), len); - } - truncateSync(p, len) { - return this.baseFs.truncateSync(this.mapToBase(p), len); - } - async ftruncatePromise(fd, len) { - return this.baseFs.ftruncatePromise(fd, len); - } - ftruncateSync(fd, len) { - return this.baseFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.baseFs.watch( - this.mapToBase(p), - // @ts-expect-error - a, - b - ); - } - watchFile(p, a, b) { - return this.baseFs.watchFile( - this.mapToBase(p), - // @ts-expect-error - a, - b - ); - } - unwatchFile(p, cb) { - return this.baseFs.unwatchFile(this.mapToBase(p), cb); - } - fsMapToBase(p) { - if (typeof p === `number`) { - return p; - } else { - return this.mapToBase(p); - } - } -} - -function direntToPortable(dirent) { - const portableDirent = dirent; - if (typeof dirent.path === `string`) - portableDirent.path = npath.toPortablePath(dirent.path); - return portableDirent; -} -class NodeFS extends BasePortableFakeFS { - realFs; - constructor(realFs = fs__default.default) { - super(); - this.realFs = realFs; - } - getExtractHint() { - return false; - } - getRealPath() { - return PortablePath.root; - } - resolve(p) { - return ppath.resolve(p); - } - async openPromise(p, flags, mode) { - return await new Promise((resolve, reject) => { - this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); - }); - } - openSync(p, flags, mode) { - return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); - } - async opendirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (typeof opts !== `undefined`) { - this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }).then((dir) => { - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - }); - } - opendirSync(p, opts) { - const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - } - async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { - return await new Promise((resolve, reject) => { - this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { - if (error) { - reject(error); - } else { - resolve(bytesRead); - } - }); - }); - } - readSync(fd, buffer, offset, length, position) { - return this.realFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - return await new Promise((resolve, reject) => { - if (typeof buffer === `string`) { - return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); - } else { - return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); - } - }); - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.realFs.writeSync(fd, buffer, offset); - } else { - return this.realFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - await new Promise((resolve, reject) => { - this.realFs.close(fd, this.makeCallback(resolve, reject)); - }); - } - closeSync(fd) { - this.realFs.closeSync(fd); - } - createReadStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createReadStream(realPath, opts); - } - createWriteStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createWriteStream(realPath, opts); - } - async realpathPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - realpathSync(p) { - return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); - } - async existsPromise(p) { - return await new Promise((resolve) => { - this.realFs.exists(npath.fromPortablePath(p), resolve); - }); - } - accessSync(p, mode) { - return this.realFs.accessSync(npath.fromPortablePath(p), mode); - } - async accessPromise(p, mode) { - return await new Promise((resolve, reject) => { - this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); - }); - } - existsSync(p) { - return this.realFs.existsSync(npath.fromPortablePath(p)); - } - async statPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - statSync(p, opts) { - if (opts) { - return this.realFs.statSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.statSync(npath.fromPortablePath(p)); - } - } - async fstatPromise(fd, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.fstat(fd, this.makeCallback(resolve, reject)); - } - }); - } - fstatSync(fd, opts) { - if (opts) { - return this.realFs.fstatSync(fd, opts); - } else { - return this.realFs.fstatSync(fd); - } - } - async lstatPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - lstatSync(p, opts) { - if (opts) { - return this.realFs.lstatSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.lstatSync(npath.fromPortablePath(p)); - } - } - async fchmodPromise(fd, mask) { - return await new Promise((resolve, reject) => { - this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); - }); - } - fchmodSync(fd, mask) { - return this.realFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return await new Promise((resolve, reject) => { - this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); - }); - } - chmodSync(p, mask) { - return this.realFs.chmodSync(npath.fromPortablePath(p), mask); - } - async fchownPromise(fd, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); - }); - } - fchownSync(fd, uid, gid) { - return this.realFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); - }); - } - chownSync(p, uid, gid) { - return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); - } - async renamePromise(oldP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - renameSync(oldP, newP) { - return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return await new Promise((resolve, reject) => { - this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); - }); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); - } - async appendFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } - async writeFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFileSync(fsNativePath, content, opts); - } else { - this.realFs.writeFileSync(fsNativePath, content); - } - } - async unlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }); - } - unlinkSync(p) { - return this.realFs.unlinkSync(npath.fromPortablePath(p)); - } - async utimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - utimesSync(p, atime, mtime) { - this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - lutimesSync(p, atime, mtime) { - this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - }); - } - mkdirSync(p, opts) { - return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); - } - async rmdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmdirSync(p, opts) { - return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); - } - async rmPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmSync(p, opts) { - return this.realFs.rmSync(npath.fromPortablePath(p), opts); - } - async linkPromise(existingP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - linkSync(existingP, newP) { - return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); - } - async symlinkPromise(target, p, type) { - return await new Promise((resolve, reject) => { - this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); - }); - } - symlinkSync(target, p, type) { - return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); - } - async readFilePromise(p, encoding) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); - }); - } - readFileSync(p, encoding) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - return this.realFs.readFileSync(fsNativePath, encoding); - } - async readdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - readdirSync(p, opts) { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p)); - } - } - async readlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - readlinkSync(p) { - return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); - } - async truncatePromise(p, len) { - return await new Promise((resolve, reject) => { - this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); - }); - } - truncateSync(p, len) { - return this.realFs.truncateSync(npath.fromPortablePath(p), len); - } - async ftruncatePromise(fd, len) { - return await new Promise((resolve, reject) => { - this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); - }); - } - ftruncateSync(fd, len) { - return this.realFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.realFs.watch( - npath.fromPortablePath(p), - // @ts-expect-error - a, - b - ); - } - watchFile(p, a, b) { - return this.realFs.watchFile( - npath.fromPortablePath(p), - // @ts-expect-error - a, - b - ); - } - unwatchFile(p, cb) { - return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); - } - makeCallback(resolve, reject) { - return (err, result) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }; - } -} - -const MOUNT_MASK = 4278190080; -class MountFS extends BasePortableFakeFS { - baseFs; - mountInstances; - fdMap = /* @__PURE__ */ new Map(); - nextFd = 3; - factoryPromise; - factorySync; - filter; - getMountPoint; - magic; - maxAge; - maxOpenFiles; - typeCheck; - isMount = /* @__PURE__ */ new Set(); - notMount = /* @__PURE__ */ new Set(); - realPaths = /* @__PURE__ */ new Map(); - constructor({ baseFs = new NodeFS(), filter = null, magicByte = 42, maxOpenFiles = Infinity, useCache = true, maxAge = 5e3, typeCheck = fs.constants.S_IFREG, getMountPoint, factoryPromise, factorySync }) { - if (Math.floor(magicByte) !== magicByte || !(magicByte > 1 && magicByte <= 127)) - throw new Error(`The magic byte must be set to a round value between 1 and 127 included`); - super(); - this.baseFs = baseFs; - this.mountInstances = useCache ? /* @__PURE__ */ new Map() : null; - this.factoryPromise = factoryPromise; - this.factorySync = factorySync; - this.filter = filter; - this.getMountPoint = getMountPoint; - this.magic = magicByte << 24; - this.maxAge = maxAge; - this.maxOpenFiles = maxOpenFiles; - this.typeCheck = typeCheck; - } - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - getRealPath() { - return this.baseFs.getRealPath(); - } - saveAndClose() { - unwatchAllFiles(this); - if (this.mountInstances) { - for (const [path, { childFs }] of this.mountInstances.entries()) { - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - } - } - } - discardAndClose() { - unwatchAllFiles(this); - if (this.mountInstances) { - for (const [path, { childFs }] of this.mountInstances.entries()) { - childFs.discardAndClose?.(); - this.mountInstances.delete(path); - } - } - } - resolve(p) { - return this.baseFs.resolve(p); - } - remapFd(mountFs, fd) { - const remappedFd = this.nextFd++ | this.magic; - this.fdMap.set(remappedFd, [mountFs, fd]); - return remappedFd; - } - async openPromise(p, flags, mode) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.openPromise(p, flags, mode); - }, async (mountFs, { subPath }) => { - return this.remapFd(mountFs, await mountFs.openPromise(subPath, flags, mode)); - }); - } - openSync(p, flags, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.openSync(p, flags, mode); - }, (mountFs, { subPath }) => { - return this.remapFd(mountFs, mountFs.openSync(subPath, flags, mode)); - }); - } - async opendirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.opendirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.opendirPromise(subPath, opts); - }, { - requireSubpath: false - }); - } - opendirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.opendirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.opendirSync(subPath, opts); - }, { - requireSubpath: false - }); - } - async readPromise(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - const [mountFs, realFd] = entry; - return await mountFs.readPromise(realFd, buffer, offset, length, position); - } - readSync(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.readSync(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`readSync`); - const [mountFs, realFd] = entry; - return mountFs.readSync(realFd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`write`); - const [mountFs, realFd] = entry; - if (typeof buffer === `string`) { - return await mountFs.writePromise(realFd, buffer, offset); - } else { - return await mountFs.writePromise(realFd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`writeSync`); - const [mountFs, realFd] = entry; - if (typeof buffer === `string`) { - return mountFs.writeSync(realFd, buffer, offset); - } else { - return mountFs.writeSync(realFd, buffer, offset, length, position); - } - } - async closePromise(fd) { - if ((fd & MOUNT_MASK) !== this.magic) - return await this.baseFs.closePromise(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`close`); - this.fdMap.delete(fd); - const [mountFs, realFd] = entry; - return await mountFs.closePromise(realFd); - } - closeSync(fd) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.closeSync(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`closeSync`); - this.fdMap.delete(fd); - const [mountFs, realFd] = entry; - return mountFs.closeSync(realFd); - } - createReadStream(p, opts) { - if (p === null) - return this.baseFs.createReadStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createReadStream(p, opts); - }, (mountFs, { archivePath, subPath }) => { - const stream = mountFs.createReadStream(subPath, opts); - stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath)); - return stream; - }); - } - createWriteStream(p, opts) { - if (p === null) - return this.baseFs.createWriteStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createWriteStream(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.createWriteStream(subPath, opts); - }); - } - async realpathPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.realpathPromise(p); - }, async (mountFs, { archivePath, subPath }) => { - let realArchivePath = this.realPaths.get(archivePath); - if (typeof realArchivePath === `undefined`) { - realArchivePath = await this.baseFs.realpathPromise(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await mountFs.realpathPromise(subPath))); - }); - } - realpathSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.realpathSync(p); - }, (mountFs, { archivePath, subPath }) => { - let realArchivePath = this.realPaths.get(archivePath); - if (typeof realArchivePath === `undefined`) { - realArchivePath = this.baseFs.realpathSync(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, mountFs.realpathSync(subPath))); - }); - } - async existsPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.existsPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.existsPromise(subPath); - }); - } - existsSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.existsSync(p); - }, (mountFs, { subPath }) => { - return mountFs.existsSync(subPath); - }); - } - async accessPromise(p, mode) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.accessPromise(p, mode); - }, async (mountFs, { subPath }) => { - return await mountFs.accessPromise(subPath, mode); - }); - } - accessSync(p, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.accessSync(p, mode); - }, (mountFs, { subPath }) => { - return mountFs.accessSync(subPath, mode); - }); - } - async statPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.statPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.statPromise(subPath, opts); - }); - } - statSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.statSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.statSync(subPath, opts); - }); - } - async fstatPromise(fd, opts) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fstatPromise(fd, opts); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstat`); - const [mountFs, realFd] = entry; - return mountFs.fstatPromise(realFd, opts); - } - fstatSync(fd, opts) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fstatSync(fd, opts); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstatSync`); - const [mountFs, realFd] = entry; - return mountFs.fstatSync(realFd, opts); - } - async lstatPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.lstatPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.lstatPromise(subPath, opts); - }); - } - lstatSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.lstatSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.lstatSync(subPath, opts); - }); - } - async fchmodPromise(fd, mask) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchmodPromise(fd, mask); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchmod`); - const [mountFs, realFd] = entry; - return mountFs.fchmodPromise(realFd, mask); - } - fchmodSync(fd, mask) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchmodSync(fd, mask); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchmodSync`); - const [mountFs, realFd] = entry; - return mountFs.fchmodSync(realFd, mask); - } - async chmodPromise(p, mask) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chmodPromise(p, mask); - }, async (mountFs, { subPath }) => { - return await mountFs.chmodPromise(subPath, mask); - }); - } - chmodSync(p, mask) { - return this.makeCallSync(p, () => { - return this.baseFs.chmodSync(p, mask); - }, (mountFs, { subPath }) => { - return mountFs.chmodSync(subPath, mask); - }); - } - async fchownPromise(fd, uid, gid) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchownPromise(fd, uid, gid); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchown`); - const [zipFs, realFd] = entry; - return zipFs.fchownPromise(realFd, uid, gid); - } - fchownSync(fd, uid, gid) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchownSync(fd, uid, gid); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchownSync`); - const [zipFs, realFd] = entry; - return zipFs.fchownSync(realFd, uid, gid); - } - async chownPromise(p, uid, gid) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chownPromise(p, uid, gid); - }, async (mountFs, { subPath }) => { - return await mountFs.chownPromise(subPath, uid, gid); - }); - } - chownSync(p, uid, gid) { - return this.makeCallSync(p, () => { - return this.baseFs.chownSync(p, uid, gid); - }, (mountFs, { subPath }) => { - return mountFs.chownSync(subPath, uid, gid); - }); - } - async renamePromise(oldP, newP) { - return await this.makeCallPromise(oldP, async () => { - return await this.makeCallPromise(newP, async () => { - return await this.baseFs.renamePromise(oldP, newP); - }, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }); - }, async (mountFsO, { subPath: subPathO }) => { - return await this.makeCallPromise(newP, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }, async (mountFsN, { subPath: subPathN }) => { - if (mountFsO !== mountFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - } else { - return await mountFsO.renamePromise(subPathO, subPathN); - } - }); - }); - } - renameSync(oldP, newP) { - return this.makeCallSync(oldP, () => { - return this.makeCallSync(newP, () => { - return this.baseFs.renameSync(oldP, newP); - }, () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }); - }, (mountFsO, { subPath: subPathO }) => { - return this.makeCallSync(newP, () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }, (mountFsN, { subPath: subPathN }) => { - if (mountFsO !== mountFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - } else { - return mountFsO.renameSync(subPathO, subPathN); - } - }); - }); - } - async copyFilePromise(sourceP, destP, flags = 0) { - const fallback = async (sourceFs, sourceP2, destFs, destP2) => { - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); - if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2)) - throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); - let content; - try { - content = await sourceFs.readFilePromise(sourceP2); - } catch (error) { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); - } - await destFs.writeFilePromise(destP2, content); - }; - return await this.makeCallPromise(sourceP, async () => { - return await this.makeCallPromise(destP, async () => { - return await this.baseFs.copyFilePromise(sourceP, destP, flags); - }, async (mountFsD, { subPath: subPathD }) => { - return await fallback(this.baseFs, sourceP, mountFsD, subPathD); - }); - }, async (mountFsS, { subPath: subPathS }) => { - return await this.makeCallPromise(destP, async () => { - return await fallback(mountFsS, subPathS, this.baseFs, destP); - }, async (mountFsD, { subPath: subPathD }) => { - if (mountFsS !== mountFsD) { - return await fallback(mountFsS, subPathS, mountFsD, subPathD); - } else { - return await mountFsS.copyFilePromise(subPathS, subPathD, flags); - } - }); - }); - } - copyFileSync(sourceP, destP, flags = 0) { - const fallback = (sourceFs, sourceP2, destFs, destP2) => { - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); - if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2)) - throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); - let content; - try { - content = sourceFs.readFileSync(sourceP2); - } catch (error) { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); - } - destFs.writeFileSync(destP2, content); - }; - return this.makeCallSync(sourceP, () => { - return this.makeCallSync(destP, () => { - return this.baseFs.copyFileSync(sourceP, destP, flags); - }, (mountFsD, { subPath: subPathD }) => { - return fallback(this.baseFs, sourceP, mountFsD, subPathD); - }); - }, (mountFsS, { subPath: subPathS }) => { - return this.makeCallSync(destP, () => { - return fallback(mountFsS, subPathS, this.baseFs, destP); - }, (mountFsD, { subPath: subPathD }) => { - if (mountFsS !== mountFsD) { - return fallback(mountFsS, subPathS, mountFsD, subPathD); - } else { - return mountFsS.copyFileSync(subPathS, subPathD, flags); - } - }); - }); - } - async appendFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.appendFilePromise(p, content, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.appendFilePromise(subPath, content, opts); - }); - } - appendFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.appendFileSync(p, content, opts); - }, (mountFs, { subPath }) => { - return mountFs.appendFileSync(subPath, content, opts); - }); - } - async writeFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.writeFilePromise(p, content, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.writeFilePromise(subPath, content, opts); - }); - } - writeFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.writeFileSync(p, content, opts); - }, (mountFs, { subPath }) => { - return mountFs.writeFileSync(subPath, content, opts); - }); - } - async unlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.unlinkPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.unlinkPromise(subPath); - }); - } - unlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.unlinkSync(p); - }, (mountFs, { subPath }) => { - return mountFs.unlinkSync(subPath); - }); - } - async utimesPromise(p, atime, mtime) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.utimesPromise(p, atime, mtime); - }, async (mountFs, { subPath }) => { - return await mountFs.utimesPromise(subPath, atime, mtime); - }); - } - utimesSync(p, atime, mtime) { - return this.makeCallSync(p, () => { - return this.baseFs.utimesSync(p, atime, mtime); - }, (mountFs, { subPath }) => { - return mountFs.utimesSync(subPath, atime, mtime); - }); - } - async lutimesPromise(p, atime, mtime) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.lutimesPromise(p, atime, mtime); - }, async (mountFs, { subPath }) => { - return await mountFs.lutimesPromise(subPath, atime, mtime); - }); - } - lutimesSync(p, atime, mtime) { - return this.makeCallSync(p, () => { - return this.baseFs.lutimesSync(p, atime, mtime); - }, (mountFs, { subPath }) => { - return mountFs.lutimesSync(subPath, atime, mtime); - }); - } - async mkdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.mkdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.mkdirPromise(subPath, opts); - }); - } - mkdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.mkdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.mkdirSync(subPath, opts); - }); - } - async rmdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.rmdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.rmdirPromise(subPath, opts); - }); - } - rmdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.rmdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.rmdirSync(subPath, opts); - }); - } - async rmPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.rmPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.rmPromise(subPath, opts); - }); - } - rmSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.rmSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.rmSync(subPath, opts); - }); - } - async linkPromise(existingP, newP) { - return await this.makeCallPromise(newP, async () => { - return await this.baseFs.linkPromise(existingP, newP); - }, async (mountFs, { subPath }) => { - return await mountFs.linkPromise(existingP, subPath); - }); - } - linkSync(existingP, newP) { - return this.makeCallSync(newP, () => { - return this.baseFs.linkSync(existingP, newP); - }, (mountFs, { subPath }) => { - return mountFs.linkSync(existingP, subPath); - }); - } - async symlinkPromise(target, p, type) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.symlinkPromise(target, p, type); - }, async (mountFs, { subPath }) => { - return await mountFs.symlinkPromise(target, subPath); - }); - } - symlinkSync(target, p, type) { - return this.makeCallSync(p, () => { - return this.baseFs.symlinkSync(target, p, type); - }, (mountFs, { subPath }) => { - return mountFs.symlinkSync(target, subPath); - }); - } - async readFilePromise(p, encoding) { - return this.makeCallPromise(p, async () => { - return await this.baseFs.readFilePromise(p, encoding); - }, async (mountFs, { subPath }) => { - return await mountFs.readFilePromise(subPath, encoding); - }); - } - readFileSync(p, encoding) { - return this.makeCallSync(p, () => { - return this.baseFs.readFileSync(p, encoding); - }, (mountFs, { subPath }) => { - return mountFs.readFileSync(subPath, encoding); - }); - } - async readdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.readdirPromise(subPath, opts); - }, { - requireSubpath: false - }); - } - readdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.readdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.readdirSync(subPath, opts); - }, { - requireSubpath: false - }); - } - async readlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readlinkPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.readlinkPromise(subPath); - }); - } - readlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.readlinkSync(p); - }, (mountFs, { subPath }) => { - return mountFs.readlinkSync(subPath); - }); - } - async truncatePromise(p, len) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.truncatePromise(p, len); - }, async (mountFs, { subPath }) => { - return await mountFs.truncatePromise(subPath, len); - }); - } - truncateSync(p, len) { - return this.makeCallSync(p, () => { - return this.baseFs.truncateSync(p, len); - }, (mountFs, { subPath }) => { - return mountFs.truncateSync(subPath, len); - }); - } - async ftruncatePromise(fd, len) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.ftruncatePromise(fd, len); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`ftruncate`); - const [mountFs, realFd] = entry; - return mountFs.ftruncatePromise(realFd, len); - } - ftruncateSync(fd, len) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.ftruncateSync(fd, len); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`ftruncateSync`); - const [mountFs, realFd] = entry; - return mountFs.ftruncateSync(realFd, len); - } - watch(p, a, b) { - return this.makeCallSync(p, () => { - return this.baseFs.watch( - p, - // @ts-expect-error - a, - b - ); - }, (mountFs, { subPath }) => { - return mountFs.watch( - subPath, - // @ts-expect-error - a, - b - ); - }); - } - watchFile(p, a, b) { - return this.makeCallSync(p, () => { - return this.baseFs.watchFile( - p, - // @ts-expect-error - a, - b - ); - }, () => { - return watchFile(this, p, a, b); - }); - } - unwatchFile(p, cb) { - return this.makeCallSync(p, () => { - return this.baseFs.unwatchFile(p, cb); - }, () => { - return unwatchFile(this, p, cb); - }); - } - async makeCallPromise(p, discard, accept, { requireSubpath = true } = {}) { - if (typeof p !== `string`) - return await discard(); - const normalizedP = this.resolve(p); - const mountInfo = this.findMount(normalizedP); - if (!mountInfo) - return await discard(); - if (requireSubpath && mountInfo.subPath === `/`) - return await discard(); - return await this.getMountPromise(mountInfo.archivePath, async (mountFs) => await accept(mountFs, mountInfo)); - } - makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { - if (typeof p !== `string`) - return discard(); - const normalizedP = this.resolve(p); - const mountInfo = this.findMount(normalizedP); - if (!mountInfo) - return discard(); - if (requireSubpath && mountInfo.subPath === `/`) - return discard(); - return this.getMountSync(mountInfo.archivePath, (mountFs) => accept(mountFs, mountInfo)); - } - findMount(p) { - if (this.filter && !this.filter.test(p)) - return null; - let filePath = ``; - while (true) { - const pathPartWithArchive = p.substring(filePath.length); - const mountPoint = this.getMountPoint(pathPartWithArchive, filePath); - if (!mountPoint) - return null; - filePath = this.pathUtils.join(filePath, mountPoint); - if (!this.isMount.has(filePath)) { - if (this.notMount.has(filePath)) - continue; - try { - if (this.typeCheck !== null && (this.baseFs.lstatSync(filePath).mode & fs.constants.S_IFMT) !== this.typeCheck) { - this.notMount.add(filePath); - continue; - } - } catch { - return null; - } - this.isMount.add(filePath); - } - return { - archivePath: filePath, - subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length)) - }; - } - } - limitOpenFilesTimeout = null; - limitOpenFiles(max) { - if (this.mountInstances === null) - return; - const now = Date.now(); - let nextExpiresAt = now + this.maxAge; - let closeCount = max === null ? 0 : this.mountInstances.size - max; - for (const [path, { childFs, expiresAt, refCount }] of this.mountInstances.entries()) { - if (refCount !== 0 || childFs.hasOpenFileHandles?.()) { - continue; - } else if (now >= expiresAt) { - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - closeCount -= 1; - continue; - } else if (max === null || closeCount <= 0) { - nextExpiresAt = expiresAt; - break; - } - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - closeCount -= 1; - } - if (this.limitOpenFilesTimeout === null && (max === null && this.mountInstances.size > 0 || max !== null) && isFinite(nextExpiresAt)) { - this.limitOpenFilesTimeout = setTimeout(() => { - this.limitOpenFilesTimeout = null; - this.limitOpenFiles(null); - }, nextExpiresAt - now).unref(); - } - } - async getMountPromise(p, accept) { - if (this.mountInstances) { - let cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - const createFsInstance = await this.factoryPromise(this.baseFs, p); - cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - cachedMountFs = { - childFs: createFsInstance(), - expiresAt: 0, - refCount: 0 - }; - } - } - this.mountInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.mountInstances.set(p, cachedMountFs); - cachedMountFs.expiresAt = Date.now() + this.maxAge; - cachedMountFs.refCount += 1; - try { - return await accept(cachedMountFs.childFs); - } finally { - cachedMountFs.refCount -= 1; - } - } else { - const mountFs = (await this.factoryPromise(this.baseFs, p))(); - try { - return await accept(mountFs); - } finally { - mountFs.saveAndClose?.(); - } - } - } - getMountSync(p, accept) { - if (this.mountInstances) { - let cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - cachedMountFs = { - childFs: this.factorySync(this.baseFs, p), - expiresAt: 0, - refCount: 0 - }; - } - this.mountInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.mountInstances.set(p, cachedMountFs); - cachedMountFs.expiresAt = Date.now() + this.maxAge; - return accept(cachedMountFs.childFs); - } else { - const childFs = this.factorySync(this.baseFs, p); - try { - return accept(childFs); - } finally { - childFs.saveAndClose?.(); - } - } - } -} - -class PosixFS extends ProxiedFS { - baseFs; - constructor(baseFs) { - super(npath); - this.baseFs = baseFs; - } - mapFromBase(path) { - return npath.fromPortablePath(path); - } - mapToBase(path) { - return npath.toPortablePath(path); - } -} - -const NUMBER_REGEXP = /^[0-9]+$/; -const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; -const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; -class VirtualFS extends ProxiedFS { - baseFs; - static makeVirtualPath(base, component, to) { - if (ppath.basename(base) !== `__virtual__`) - throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); - if (!ppath.basename(component).match(VALID_COMPONENT)) - throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); - const target = ppath.relative(ppath.dirname(base), to); - const segments = target.split(`/`); - let depth = 0; - while (depth < segments.length && segments[depth] === `..`) - depth += 1; - const finalSegments = segments.slice(depth); - const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); - return fullVirtualPath; - } - static resolveVirtual(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match || !match[3] && match[5]) - return p; - const target = ppath.dirname(match[1]); - if (!match[3] || !match[4]) - return target; - const isnum = NUMBER_REGEXP.test(match[4]); - if (!isnum) - return p; - const depth = Number(match[4]); - const backstep = `../`.repeat(depth); - const subpath = match[5] || `.`; - return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); - } - constructor({ baseFs = new NodeFS() } = {}) { - super(ppath); - this.baseFs = baseFs; - } - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - getRealPath() { - return this.baseFs.getRealPath(); - } - realpathSync(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return this.baseFs.realpathSync(p); - if (!match[5]) - return p; - const realpath = this.baseFs.realpathSync(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - async realpathPromise(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return await this.baseFs.realpathPromise(p); - if (!match[5]) - return p; - const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - mapToBase(p) { - if (p === ``) - return p; - if (this.pathUtils.isAbsolute(p)) - return VirtualFS.resolveVirtual(p); - const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); - const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); - return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; - } - mapFromBase(p) { - return p; - } -} - -const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? url.URL : globalThis.URL; - -class NodePathFS extends ProxiedFS { - baseFs; - constructor(baseFs) { - super(npath); - this.baseFs = baseFs; - } - mapFromBase(path) { - return path; - } - mapToBase(path) { - if (typeof path === `string`) - return path; - if (path instanceof URL) - return url.fileURLToPath(path); - if (Buffer.isBuffer(path)) { - const str = path.toString(); - if (!isUtf8(path, str)) - throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`); - return str; - } - throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`); - } -} -function isUtf8(buf, str) { - if (typeof buffer__default.default.isUtf8 !== `undefined`) - return buffer__default.default.isUtf8(buf); - return Buffer.byteLength(str) === buf.byteLength; -} - -const kBaseFs = Symbol(`kBaseFs`); -const kFd = Symbol(`kFd`); -const kClosePromise = Symbol(`kClosePromise`); -const kCloseResolve = Symbol(`kCloseResolve`); -const kCloseReject = Symbol(`kCloseReject`); -const kRefs = Symbol(`kRefs`); -const kRef = Symbol(`kRef`); -const kUnref = Symbol(`kUnref`); -class FileHandle { - [kBaseFs]; - [kFd]; - [kRefs] = 1; - [kClosePromise] = void 0; - [kCloseResolve] = void 0; - [kCloseReject] = void 0; - constructor(fd, baseFs) { - this[kBaseFs] = baseFs; - this[kFd] = fd; - } - get fd() { - return this[kFd]; - } - async appendFile(data, options) { - try { - this[kRef](this.appendFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0); - } finally { - this[kUnref](); - } - } - async chown(uid, gid) { - try { - this[kRef](this.chown); - return await this[kBaseFs].fchownPromise(this.fd, uid, gid); - } finally { - this[kUnref](); - } - } - async chmod(mode) { - try { - this[kRef](this.chmod); - return await this[kBaseFs].fchmodPromise(this.fd, mode); - } finally { - this[kUnref](); - } - } - createReadStream(options) { - return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd }); - } - createWriteStream(options) { - return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd }); - } - // FIXME: Missing FakeFS version - datasync() { - throw new Error(`Method not implemented.`); - } - // FIXME: Missing FakeFS version - sync() { - throw new Error(`Method not implemented.`); - } - async read(bufferOrOptions, offset, length, position) { - try { - this[kRef](this.read); - let buffer; - if (!Buffer.isBuffer(bufferOrOptions)) { - bufferOrOptions ??= {}; - buffer = bufferOrOptions.buffer ?? Buffer.alloc(16384); - offset = bufferOrOptions.offset || 0; - length = bufferOrOptions.length ?? buffer.byteLength; - position = bufferOrOptions.position ?? null; - } else { - buffer = bufferOrOptions; - } - offset ??= 0; - length ??= 0; - if (length === 0) { - return { - bytesRead: length, - buffer - }; - } - const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position); - return { - bytesRead, - buffer - }; - } finally { - this[kUnref](); - } - } - async readFile(options) { - try { - this[kRef](this.readFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - return await this[kBaseFs].readFilePromise(this.fd, encoding); - } finally { - this[kUnref](); - } - } - readLines(options) { - return readline.createInterface({ - input: this.createReadStream(options), - crlfDelay: Infinity - }); - } - async stat(opts) { - try { - this[kRef](this.stat); - return await this[kBaseFs].fstatPromise(this.fd, opts); - } finally { - this[kUnref](); - } - } - async truncate(len) { - try { - this[kRef](this.truncate); - return await this[kBaseFs].ftruncatePromise(this.fd, len); - } finally { - this[kUnref](); - } - } - // FIXME: Missing FakeFS version - utimes(atime, mtime) { - throw new Error(`Method not implemented.`); - } - async writeFile(data, options) { - try { - this[kRef](this.writeFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - await this[kBaseFs].writeFilePromise(this.fd, data, encoding); - } finally { - this[kUnref](); - } - } - async write(...args) { - try { - this[kRef](this.write); - if (ArrayBuffer.isView(args[0])) { - const [buffer, offset, length, position] = args; - const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset ?? void 0, length ?? void 0, position ?? void 0); - return { bytesWritten, buffer }; - } else { - const [data, position, encoding] = args; - const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding); - return { bytesWritten, buffer: data }; - } - } finally { - this[kUnref](); - } - } - // TODO: Use writev from FakeFS when that is implemented - async writev(buffers, position) { - try { - this[kRef](this.writev); - let bytesWritten = 0; - if (typeof position !== `undefined`) { - for (const buffer of buffers) { - const writeResult = await this.write(buffer, void 0, void 0, position); - bytesWritten += writeResult.bytesWritten; - position += writeResult.bytesWritten; - } - } else { - for (const buffer of buffers) { - const writeResult = await this.write(buffer); - bytesWritten += writeResult.bytesWritten; - } - } - return { - buffers, - bytesWritten - }; - } finally { - this[kUnref](); - } - } - // FIXME: Missing FakeFS version - readv(buffers, position) { - throw new Error(`Method not implemented.`); - } - close() { - if (this[kFd] === -1) return Promise.resolve(); - if (this[kClosePromise]) return this[kClosePromise]; - this[kRefs]--; - if (this[kRefs] === 0) { - const fd = this[kFd]; - this[kFd] = -1; - this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => { - this[kClosePromise] = void 0; - }); - } else { - this[kClosePromise] = new Promise((resolve, reject) => { - this[kCloseResolve] = resolve; - this[kCloseReject] = reject; - }).finally(() => { - this[kClosePromise] = void 0; - this[kCloseReject] = void 0; - this[kCloseResolve] = void 0; - }); - } - return this[kClosePromise]; - } - [kRef](caller) { - if (this[kFd] === -1) { - const err = new Error(`file closed`); - err.code = `EBADF`; - err.syscall = caller.name; - throw err; - } - this[kRefs]++; - } - [kUnref]() { - this[kRefs]--; - if (this[kRefs] === 0) { - const fd = this[kFd]; - this[kFd] = -1; - this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]); - } - } -} - -const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ - `accessSync`, - `appendFileSync`, - `createReadStream`, - `createWriteStream`, - `chmodSync`, - `fchmodSync`, - `chownSync`, - `fchownSync`, - `closeSync`, - `copyFileSync`, - `linkSync`, - `lstatSync`, - `fstatSync`, - `lutimesSync`, - `mkdirSync`, - `openSync`, - `opendirSync`, - `readlinkSync`, - `readFileSync`, - `readdirSync`, - `readlinkSync`, - `realpathSync`, - `renameSync`, - `rmdirSync`, - `rmSync`, - `statSync`, - `symlinkSync`, - `truncateSync`, - `ftruncateSync`, - `unlinkSync`, - `unwatchFile`, - `utimesSync`, - `watch`, - `watchFile`, - `writeFileSync`, - `writeSync` -]); -const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ - `accessPromise`, - `appendFilePromise`, - `fchmodPromise`, - `chmodPromise`, - `fchownPromise`, - `chownPromise`, - `closePromise`, - `copyFilePromise`, - `linkPromise`, - `fstatPromise`, - `lstatPromise`, - `lutimesPromise`, - `mkdirPromise`, - `openPromise`, - `opendirPromise`, - `readdirPromise`, - `realpathPromise`, - `readFilePromise`, - `readdirPromise`, - `readlinkPromise`, - `renamePromise`, - `rmdirPromise`, - `rmPromise`, - `statPromise`, - `symlinkPromise`, - `truncatePromise`, - `ftruncatePromise`, - `unlinkPromise`, - `utimesPromise`, - `writeFilePromise`, - `writeSync` -]); -function patchFs(patchedFs, fakeFs) { - fakeFs = new NodePathFS(fakeFs); - const setupFn = (target, name, replacement) => { - const orig = target[name]; - target[name] = replacement; - if (typeof orig?.[nodeUtils.promisify.custom] !== `undefined`) { - replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom]; - } - }; - { - setupFn(patchedFs, `exists`, (p, ...args) => { - const hasCallback = typeof args[args.length - 1] === `function`; - const callback = hasCallback ? args.pop() : () => { - }; - process.nextTick(() => { - fakeFs.existsPromise(p).then((exists) => { - callback(exists); - }, () => { - callback(false); - }); - }); - }); - setupFn(patchedFs, `read`, (...args) => { - let [fd, buffer, offset, length, position, callback] = args; - if (args.length <= 3) { - let options = {}; - if (args.length < 3) { - callback = args[1]; - } else { - options = args[1]; - callback = args[2]; - } - ({ - buffer = Buffer.alloc(16384), - offset = 0, - length = buffer.byteLength, - position - } = options); - } - if (offset == null) - offset = 0; - length |= 0; - if (length === 0) { - process.nextTick(() => { - callback(null, 0, buffer); - }); - return; - } - if (position == null) - position = -1; - process.nextTick(() => { - fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => { - callback(null, bytesRead, buffer); - }, (error) => { - callback(error, 0, buffer); - }); - }); - }); - for (const fnName of ASYNC_IMPLEMENTATIONS) { - const origName = fnName.replace(/Promise$/, ``); - if (typeof patchedFs[origName] === `undefined`) - continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) - continue; - const wrapper = (...args) => { - const hasCallback = typeof args[args.length - 1] === `function`; - const callback = hasCallback ? args.pop() : () => { - }; - process.nextTick(() => { - fakeImpl.apply(fakeFs, args).then((result) => { - callback(null, result); - }, (error) => { - callback(error); - }); - }); - }; - setupFn(patchedFs, origName, wrapper); - } - patchedFs.realpath.native = patchedFs.realpath; - } - { - setupFn(patchedFs, `existsSync`, (p) => { - try { - return fakeFs.existsSync(p); - } catch (error) { - return false; - } - }); - setupFn(patchedFs, `readSync`, (...args) => { - let [fd, buffer, offset, length, position] = args; - if (args.length <= 3) { - const options = args[2] || {}; - ({ offset = 0, length = buffer.byteLength, position } = options); - } - if (offset == null) - offset = 0; - length |= 0; - if (length === 0) - return 0; - if (position == null) - position = -1; - return fakeFs.readSync(fd, buffer, offset, length, position); - }); - for (const fnName of SYNC_IMPLEMENTATIONS) { - const origName = fnName; - if (typeof patchedFs[origName] === `undefined`) - continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) - continue; - setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)); - } - patchedFs.realpathSync.native = patchedFs.realpathSync; - } - { - const patchedFsPromises = patchedFs.promises; - for (const fnName of ASYNC_IMPLEMENTATIONS) { - const origName = fnName.replace(/Promise$/, ``); - if (typeof patchedFsPromises[origName] === `undefined`) - continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) - continue; - if (fnName === `open`) - continue; - setupFn(patchedFsPromises, origName, (pathLike, ...args) => { - if (pathLike instanceof FileHandle) { - return pathLike[origName].apply(pathLike, args); - } else { - return fakeImpl.call(fakeFs, pathLike, ...args); - } - }); - } - setupFn(patchedFsPromises, `open`, async (...args) => { - const fd = await fakeFs.openPromise(...args); - return new FileHandle(fd, fakeFs); - }); - } - { - patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { - const res = fakeFs.readPromise(fd, buffer, ...args); - return { bytesRead: await res, buffer }; - }; - patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { - const res = fakeFs.writePromise(fd, buffer, ...args); - return { bytesWritten: await res, buffer }; - }; - } -} - -let cachedInstance; -let registeredFactory = () => { - throw new Error(`Assertion failed: No libzip instance is available, and no factory was configured`); -}; -function setFactory(factory) { - registeredFactory = factory; -} -function getInstance() { - if (typeof cachedInstance === `undefined`) - cachedInstance = registeredFactory(); - return cachedInstance; -} - -var libzipSync = {exports: {}}; - -(function (module, exports) { -var frozenFs = Object.assign({}, fs__default.default); -var createModule = function() { - var _scriptDir = void 0; - if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; - return function(createModule2) { - createModule2 = createModule2 || {}; - var Module = typeof createModule2 !== "undefined" ? createModule2 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = {}; - var key; - for (key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } - } - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readBinary; - var nodeFS; - var nodePath; - { - { - scriptDirectory = __dirname + "/"; - } - read_ = function shell_read(filename, binary) { - var ret = tryParseAsDataURI(filename); - if (ret) { - return binary ? ret : ret.toString(); - } - if (!nodeFS) nodeFS = frozenFs; - if (!nodePath) nodePath = path__default.default; - filename = nodePath["normalize"](filename); - return nodeFS["readFileSync"](filename, binary ? null : "utf8"); - }; - readBinary = function readBinary2(filename) { - var ret = read_(filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - if (process["argv"].length > 1) { - process["argv"][1].replace(/\\/g, "/"); - } - process["argv"].slice(2); - Module["inspect"] = function() { - return "[Emscripten Module object]"; - }; - } - Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); - for (key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } - } - moduleOverrides = null; - if (Module["arguments"]) ; - if (Module["thisProgram"]) ; - if (Module["quit"]) ; - var wasmBinary; - if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; - Module["noExitRuntime"] || true; - if (typeof WebAssembly !== "object") { - abort("no native wasm support detected"); - } - function getValue(ptr, type, noSafe) { - type = type || "i8"; - if (type.charAt(type.length - 1) === "*") type = "i32"; - switch (type) { - case "i1": - return HEAP8[ptr >> 0]; - case "i8": - return HEAP8[ptr >> 0]; - case "i16": - return LE_HEAP_LOAD_I16((ptr >> 1) * 2); - case "i32": - return LE_HEAP_LOAD_I32((ptr >> 2) * 4); - case "i64": - return LE_HEAP_LOAD_I32((ptr >> 2) * 4); - case "float": - return LE_HEAP_LOAD_F32((ptr >> 2) * 4); - case "double": - return LE_HEAP_LOAD_F64((ptr >> 3) * 8); - default: - abort("invalid type for getValue: " + type); - } - return null; - } - var wasmMemory; - var ABORT = false; - function assert(condition, text) { - if (!condition) { - abort("Assertion failed: " + text); - } - } - function getCFunc(ident) { - var func = Module["_" + ident]; - assert( - func, - "Cannot call unknown function " + ident + ", make sure it is exported" - ); - return func; - } - function ccall(ident, returnType, argTypes, args, opts) { - var toC = { - string: function(str) { - var ret2 = 0; - if (str !== null && str !== void 0 && str !== 0) { - var len = (str.length << 2) + 1; - ret2 = stackAlloc(len); - stringToUTF8(str, ret2, len); - } - return ret2; - }, - array: function(arr) { - var ret2 = stackAlloc(arr.length); - writeArrayToMemory(arr, ret2); - return ret2; - } - }; - function convertReturnValue(ret2) { - if (returnType === "string") return UTF8ToString(ret2); - if (returnType === "boolean") return Boolean(ret2); - return ret2; - } - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - ret = convertReturnValue(ret); - if (stack !== 0) stackRestore(stack); - return ret; - } - function cwrap(ident, returnType, argTypes, opts) { - argTypes = argTypes || []; - var numericArgs = argTypes.every(function(type) { - return type === "number"; - }); - var numericRet = returnType !== "string"; - if (numericRet && numericArgs && !opts) { - return getCFunc(ident); - } - return function() { - return ccall(ident, returnType, argTypes, arguments); - }; - } - var UTF8Decoder = new TextDecoder("utf8"); - function UTF8ToString(ptr, maxBytesToRead) { - if (!ptr) return ""; - var maxPtr = ptr + maxBytesToRead; - for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; ) ++end; - return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); - } - function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) { - var u1 = str.charCodeAt(++i); - u = 65536 + ((u & 1023) << 10) | u1 & 1023; - } - if (u <= 127) { - if (outIdx >= endIdx) break; - heap[outIdx++] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++] = 192 | u >> 6; - heap[outIdx++] = 128 | u & 63; - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++] = 224 | u >> 12; - heap[outIdx++] = 128 | u >> 6 & 63; - heap[outIdx++] = 128 | u & 63; - } else { - if (outIdx + 3 >= endIdx) break; - heap[outIdx++] = 240 | u >> 18; - heap[outIdx++] = 128 | u >> 12 & 63; - heap[outIdx++] = 128 | u >> 6 & 63; - heap[outIdx++] = 128 | u & 63; - } - } - heap[outIdx] = 0; - return outIdx - startIdx; - } - function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); - } - function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) - u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; - if (u <= 127) ++len; - else if (u <= 2047) len += 2; - else if (u <= 65535) len += 3; - else len += 4; - } - return len; - } - function allocateUTF8(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = _malloc(size); - if (ret) stringToUTF8Array(str, HEAP8, ret, size); - return ret; - } - function writeArrayToMemory(array, buffer2) { - HEAP8.set(array, buffer2); - } - function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - x % multiple; - } - return x; - } - var buffer, HEAP8, HEAPU8; - var HEAP_DATA_VIEW; - function updateGlobalBufferAndViews(buf) { - buffer = buf; - Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(buf); - Module["HEAP8"] = HEAP8 = new Int8Array(buf); - Module["HEAP16"] = new Int16Array(buf); - Module["HEAP32"] = new Int32Array(buf); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); - Module["HEAPU16"] = new Uint16Array(buf); - Module["HEAPU32"] = new Uint32Array(buf); - Module["HEAPF32"] = new Float32Array(buf); - Module["HEAPF64"] = new Float64Array(buf); - } - Module["INITIAL_MEMORY"] || 16777216; - var wasmTable; - var __ATPRERUN__ = []; - var __ATINIT__ = []; - var __ATPOSTRUN__ = []; - function preRun() { - if (Module["preRun"]) { - if (typeof Module["preRun"] == "function") - Module["preRun"] = [Module["preRun"]]; - while (Module["preRun"].length) { - addOnPreRun(Module["preRun"].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); - } - function initRuntime() { - callRuntimeCallbacks(__ATINIT__); - } - function postRun() { - if (Module["postRun"]) { - if (typeof Module["postRun"] == "function") - Module["postRun"] = [Module["postRun"]]; - while (Module["postRun"].length) { - addOnPostRun(Module["postRun"].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); - } - function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); - } - function addOnInit(cb) { - __ATINIT__.unshift(cb); - } - function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); - } - var runDependencies = 0; - var dependenciesFulfilled = null; - function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - } - function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } - } - Module["preloadedImages"] = {}; - Module["preloadedAudios"] = {}; - function abort(what) { - if (Module["onAbort"]) { - Module["onAbort"](what); - } - what += ""; - err(what); - ABORT = true; - what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; - var e = new WebAssembly.RuntimeError(what); - readyPromiseReject(e); - throw e; - } - var dataURIPrefix = "data:application/octet-stream;base64,"; - function isDataURI(filename) { - return filename.startsWith(dataURIPrefix); - } - var wasmBinaryFile = "data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABPcGVyYXRpb24gbm90IHN1cHBvcnRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAEVudHJ5IGhhcyBiZWVuIGRlbGV0ZWQAQ29udGFpbmluZyB6aXAgYXJjaGl2ZSB3YXMgY2xvc2VkAENsb3NpbmcgemlwIGFyY2hpdmUgZmFpbGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAFVua25vd24gZXJyb3IgJWQAQUUAKG51bGwpADogAFBLBgcAUEsGBgBQSwUGAFBLAwQAUEsBAgAAAAA/BQAAwAcAAJMIAAB4CAAAbwUAAJEFAAB6BQAAsgUAAFYIAAAbBwAA1gQAAAsHAADqBgAAnAUAAMgGAACyCAAAHggAACgHAABHBAAAoAYAAGAFAAAuBAAAPgcAAD8IAAD+BwAAjgYAAMkIAADeCAAA5gcAALIGAABVBQAAqAcAACAAQcgTCxEBAAAAAQAAAAEAAAABAAAAAQBB7BMLCQEAAAABAAAAAgBBmBQLAQEAQbgUCwEBAEHSFAukLDomOyZlJmYmYyZgJiIg2CXLJdklQiZAJmomayY8JrolxCWVITwgtgCnAKwlqCGRIZMhkiGQIR8ilCGyJbwlIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AAIjxwD8AOkA4gDkAOAA5QDnAOoA6wDoAO8A7gDsAMQAxQDJAOYAxgD0APYA8gD7APkA/wDWANwAogCjAKUApyCSAeEA7QDzAPoA8QDRAKoAugC/ABAjrAC9ALwAoQCrALsAkSWSJZMlAiUkJWElYiVWJVUlYyVRJVclXSVcJVslECUUJTQlLCUcJQAlPCVeJV8lWiVUJWklZiVgJVAlbCVnJWglZCVlJVklWCVSJVMlayVqJRglDCWIJYQljCWQJYAlsQPfAJMDwAOjA8MDtQDEA6YDmAOpA7QDHiLGA7UDKSJhIrEAZSJkIiAjISP3AEgisAAZIrcAGiJ/ILIAoCWgAAAAAACWMAd3LGEO7rpRCZkZxG0Hj/RqcDWlY+mjlWSeMojbDqS43Hke6dXgiNnSlytMtgm9fLF+By2455Edv5BkELcd8iCwakhxufPeQb6EfdTaGuvk3W1RtdT0x4XTg1aYbBPAqGtkevli/ezJZYpPXAEU2WwGY2M9D/r1DQiNyCBuO14QaUzkQWDVcnFnotHkAzxH1ARL/YUN0mu1CqX6qLU1bJiyQtbJu9tA+bys42zYMnVc30XPDdbcWT3Rq6ww2SY6AN5RgFHXyBZh0L+19LQhI8SzVpmVus8Ppb24nrgCKAiIBV+y2QzGJOkLsYd8by8RTGhYqx1hwT0tZraQQdx2BnHbAbwg0pgqENXviYWxcR+1tgal5L+fM9S46KLJB3g0+QAPjqgJlhiYDuG7DWp/LT1tCJdsZJEBXGPm9FFra2JhbBzYMGWFTgBi8u2VBmx7pQEbwfQIglfED/XG2bBlUOm3Euq4vot8iLn83x3dYkkt2hXzfNOMZUzU+1hhsk3OUbU6dAC8o+Iwu9RBpd9K15XYPW3E0aT79NbTaulpQ/zZbjRGiGet0Lhg2nMtBETlHQMzX0wKqsl8Dd08cQVQqkECJxAQC76GIAzJJbVoV7OFbyAJ1Ga5n+Rhzg753l6YydkpIpjQsLSo18cXPbNZgQ20LjtcvbetbLrAIIO47bazv5oM4rYDmtKxdDlH1eqvd9KdFSbbBIMW3HMSC2PjhDtklD5qbQ2oWmp6C88O5J3/CZMnrgAKsZ4HfUSTD/DSowiHaPIBHv7CBmldV2L3y2dlgHE2bBnnBmtudhvU/uAr04laetoQzErdZ2/fufn5776OQ763F9WOsGDoo9bWfpPRocTC2DhS8t9P8We70WdXvKbdBrU/SzaySNorDdhMGwqv9koDNmB6BEHD72DfVd9nqO+ObjF5vmlGjLNhyxqDZryg0m8lNuJoUpV3DMwDRwu7uRYCIi8mBVW+O7rFKAu9spJatCsEarNcp//XwjHP0LWLntksHa7eW7DCZJsm8mPsnKNqdQqTbQKpBgmcPzYO64VnB3ITVwAFgkq/lRR6uOKuK7F7OBu2DJuO0pINvtXlt+/cfCHf2wvU0tOGQuLU8fiz3Whug9ofzRa+gVsmufbhd7Bvd0e3GOZaCIhwag//yjsGZlwLARH/nmWPaa5i+NP/a2FFz2wWeOIKoO7SDddUgwROwrMDOWEmZ6f3FmDQTUdpSdt3bj5KatGu3FrW2WYL30DwO9g3U668qcWeu95/z7JH6f+1MBzyvb2KwrrKMJOzU6ajtCQFNtC6kwbXzSlX3lS/Z9kjLnpms7hKYcQCG2hdlCtvKje+C7ShjgzDG98FWo3vAi0AAAAARjtnZYx2zsrKTamvWevtTh/QiivVnSOEk6ZE4bLW25307bz4PqAVV3ibcjLrPTbTrQZRtmdL+BkhcJ98JavG4GOQoYWp3Qgq7+ZvT3xAK646e0zL8DblZLYNggGXfR190UZ6GBsL07ddMLTSzpbwM4itl1ZC4D75BNtZnAtQ/BpNa5t/hyYy0MEdVbVSuxFUFIB2Md7N356Y9rj7uYYnh/+9QOI18OlNc8uOKOBtysmmVq2sbBsEAyogY2Yu+zr6aMBdn6KN9DDktpNVdxDXtDErsNH7Zhl+vV1+G5wt4WfaFoYCEFsvrVZgSMjFxgwpg/1rTEmwwuMPi6WGFqD4NVCbn1Ca1jb/3O1Rmk9LFXsJcHIewz3bsYUGvNSkdiOo4k1EzSgA7WJuO4oH/Z3O5rumqYNx6wAsN9BnSTMLPtV1MFmwv33wH/lGl3pq4NObLNu0/uaWHVGgrXo0gd3lSMfmgi0NqyuCS5BM59g2CAaeDW9jVEDGzBJ7oakd8AQvW8tjSpGGyuXXva2ARBvpYQIgjgTIbSerjlZAzq8m37LpHbjXI1AReGVrdh32zTL8sPZVmXq7/DY8gJtTOFvCz35gpaq0LQwF8hZrYGGwL4Eni0jk7cbhS6v9hi6KjRlSzLZ+Nwb715hAwLD902b0HJVdk3lfEDrWGStdsyxA8Wtqe5YOoDY/oeYNWMR1qxwlM5B7QPnd0u+/5rWKnpYq9titTZMS4OQ8VNuDWcd9x7iBRqDdSwsJcg0wbhcJ6zeLT9BQ7oWd+UHDpp4kUADaxRY7vaDcdhQPmk1zars97Bb9BotzN0si3HFwRbni1gFYpO1mPW6gz5Iom6j3JxANcWErahSrZsO77V2k3n774D84wIda8o0u9bS2SZCVxtbs0/2xiRmwGCZfi39DzC07oooWXMdAW/VoBmCSDQK7y5FEgKz0js0FW8j2Yj5bUCbfHWtButcm6BWRHY9wsG0QDPZWd2k8G97GeiC5o+mG/UKvvZonZfAziCPLVO064AlefNtuO7aWx5TwraDxYwvkECUwg3XvfSraqUZNv4g20sPODbWmBEAcCUJ7e2zR3T+Nl+ZY6F2r8UcbkJYiH0vPvllwqNuTPQF01QZmEUagIvAAm0WVytbsOozti1+tnRQj66ZzRiHr2uln0L2M9Hb5bbJNngh4ADenPjtQwjGw9UR3i5IhvcY7jvv9XOtoWxgKLmB/b+Qt1sCiFrGlg2Yu2cVdSbwPEOATSSuHdtqNw5ectqTyVvsNXRDAajgUGzOkUiBUwZht/W7eVpoLTfDe6gvLuY/BhhAgh713RabN6Dng9o9cKrsm82yAQZb/JgV3uR1iEnNQy701a6zYAAAAAFiA4tfxBrR0qYZWo+INaOm6jYo+EwvcnUuLPkqFHaEJ3Z1D3nQbFX0sm/eqZxDJ4D+QKzeWFn2UzpafQwo7QhNSu6DE+z32Z6O9FLDoNir6sLbILRkwno5BsHxZjybjGtemAc1+IFduJqC1uW0ri/M1q2kknC0/h8St3VAUdoQmTPZm8eVwMFK98NKF9nvsz677DhgHfVi7X/26bJFrJS/J68f4YG2RWzjtc4xzZk3GK+avEYJg+bLa4BtlHk3GNUbNJOLvS3JBt8uQlvxArtykwEwLDUYaqFXG+H+bUGc8w9CF62pW00gy1jGfeV0P1SHd7QKIW7uh0NtZdijsCE1wbOqa2eq8OYFqXu7K4WCkkmGCczvn1NBjZzYHrfGpRPVxS5Nc9x0wBHf/50/8wa0XfCN6vvp12eZ6lw4i10peeleoidPR/iqLURz9wNoit5hawGAx3JbDaVx0FKfK61f/SgmAVsxfIw5MvfRFx4O+HUdhabTBN8rsQdUdPJqMa2QabrzNnDgflRzayN6X5IKGFwZVL5FQ9ncRsiG5hy1i4QfPtUiBmRYQAXvBW4pFiwMKp1yqjPH/8gwTKDahznhuISyvx6d6DJ8nmNvUrKaRjCxERiWqEuV9KvAys7xvces8jaZCutsFGjo50lGxB5gJMeVPoLez7Pg3UTtQ2BGaCFjzTaHepe75Xkc5stV5c+pVm6RD080HG1Mv0NXFsJONRVJEJMME53xD5jA3yNh6b0g6rcbObA6eTo7ZWuNTiQJjsV6r5ef982UFKrjuO2Dgbtm3SeiPFBFobcPf/vKAh34QVy74RvR2eKQjPfOaaWVzeL7M9S4dlHXMykSulbwcLndrtaghyO0owx+mo/1V/iMfglelSSEPJav2wbM0tZkz1mIwtYDBaDViFiO+XFx7Pr6L0rjoKIo4Cv9OldevFhU1eL+TY9vnE4EMrJi/RvQYXZFdngsyBR7p5cuIdqaTCJRxOo7C0mIOIAUphR5PcQX8mNiDqjuAA0jseDQZ1yC0+wCJMq2j0bJPdJo5cT7CuZPpaz/FSjO/J539KbjepalaCQwvDKpUr+59HyTQN0ekMuDuImRDtqKGlHIPW8Qqj7kTgwnvsNuJDWeQAjMtyILR+mEEh1k5hGWO9xL6za+SGBoGFE65XpSsbhUfkiRNn3Dz5BkmULyZxIdsQp3xNMJ/Jp1EKYXFxMtSjk/1GNbPF89/SUFsJ8mju+lfPPix394vGFmIjEDZalsLUlQRU9K2xvpU4GWi1AKyZnnf4j75PTWXf2uWz/+JQYR0twvc9FXcdXIDfy3y4ajjZH7ru+ScPBJiyp9K4ihIAWkWAlnp9NXwb6J2qO9AoQAAAADhtlLvg2vUBWLdhuoG16gL52H65IW8fA5kCi7hDK5RF+0YA/iPxYUSbnPX/Qp5+Rzrz6vziRItGWikf/YYXKMu+erxwZs3dyt6gSXEHosLJf89Wcqd4N8gfFaNzxTy8jn1RKDWl5kmPHYvdNMSJVoy85MI3ZFOjjdw+NzYMLhGXdEOFLKz05JYUmXAtzZv7lbX2by5tQQ6U1SyaLw8FhdK3aBFpb99w09ey5GgOsG/Qdt37a65qmtEWBw5qyjk5XPJUrecq48xdko5Y5kuM014z4Ufl61YmX1M7suSJEq0ZMX85ounIWBhRpcyjiKdHG/DK06AofbIakBAmoVgcI26gcbfVeMbWb8CrQtQZqclsYcRd17lzPG0BHqjW2ze3K2NaI5C77UIqA4DWkdqCXSmi78mSelioKMI1PJMeCwulJmafHv7R/qRGvGofn77hp+fTdRw/ZBSmhwmAHV0gn+DlTQtbPfpq4YWX/lpclXXiJPjhWfxPgONEIhRYlDIy+exfpkI06Mf4jIVTQ1WH2Pst6kxA9V0t+k0wuUGXGaa8L3QyB/fDU71PrscGlqxMvu7B2AU2drm/jhstBFIlGjJqSI6Jsv/vMwqSe4jTkPAwq/1ki3NKBTHLJ5GKEQ6Od6ljGsxx1Ht2ybnvzRC7ZHVo1vDOsGGRdAgMBc/geZrrmBQOUECjb+r4zvtRIcxw6Vmh5FKBFoXoOXsRU+NSDq5bP5oVg4j7rzvlbxTi5+SsmopwF0I9Ea36UIUWJm6yIB4DJpvGtEchftnTmqfbWCLftsyZBwGtI79sOZhlRSZl3Siy3gWf02S98kffZPDMZxydWNzEKjlmfEet3axXi3zUOh/HDI1+fbTg6sZt4mF+FY/1xc04lH91VQDEr3wfORcRi4LPpuo4d8t+g67J9TvWpGGADhMAOrZ+lIFqQKO3Ui03DIqaVrYy98IN6/VJtZOY3Q5LL7y080IoDylrN/KRBqNJSbHC8/HcVkgo3t3wULNJS4gEKPEwabxK+GW5hQAILT7Yv0yEYNLYP7nQU4fBvcc8GQqmhqFnMj17Ti3AwyO5exuU2MGj+Ux6evvHwgKWU3naITLDYkymeL5ykU6GHwX1XqhkT+bF8PQ/x3tMR6rv958djk0ncBr2/VkFC0U0kbCdg/AKJe5ksfzs7wmEgXuyXDYaCORbjrM0S6gSTCY8qZSRXRMs/Mmo9f5CEI2T1qtVJLcR7UkjqjdgPFePDajsV7rJVu/XXe021dZVTrhC7pYPI1QuYrfv8lyA2coxFGIShnXYquvhY3PpatsLhP5g0zOf2mteC2GxdxScCRqAJ9Gt4Z1pwHUmsML+nsivaiUQGAufqHWfJEAAAAAQ8umh8eQPNSEW5pTzycIc4zsrvQItzSnS3ySIJ5PEObdhLZhWd8sMhoUirVRaBiVEqO+Epb4JEHVM4LGfZlRFz5S95C6CW3D+cLLRLK+WWTxdf/jdS5lsDblwzfj1kHxoB3ndiRGfSVnjduiLPFJgm867wXrYXVWqKrT0foyoy65+QWpPaKf+n5pOX01Fatddt4N2vKFl4mxTjEOZH2zyCe2FU+j7Y8c4CYpm6tau7vokR08bMqHby8BIeiHq/I5xGBUvkA7zu0D8GhqSIz6SgtHXM2PHMaezNdgGRnk4t9aL0RY3nTeC52/eIzWw+qslQhMKxFT1nhSmHD/9GVGXbeu4Noz9XqJcD7cDjtCTi54ieip/NJy+r8Z1H1qKla7KeHwPK26am/ucczopQ1eyObG+E9inWIcIVbEm4n8F0rKN7HNTmwrng2njRlG2x85BRC5voFLI+3CgIVqF7MHrFR4oSvQIzt4k+id/9iUD9+bX6lYHwQzC1zPlYwOV+VzTZxD9MnH2aeKDH8gwXDtAIK7S4cG4NHURSt3U5AY9ZXT01MSV4jJQRRDb8ZfP/3mHPRbYZivwTLbZGe1c860ZDAFEuO0Xoiw95UuN7zpvBf/IhqQe3mAwziyJkTtgaSCrkoCBSoRmFZp2j7RIqas8WFtCnblNpAlpv02oujLjLqrACo9L1uwbmyQFukn7ITJZCciTuB8uB2jtx6adoScXDVPOtuxFKCI8t8GD7mjlC/6aDKofjOo+z34DnyVUt2t1pl7KlLC4XkRCUf+WnXV3hm+c1md5ekK3i5PjQsdzUtI1mvMzI3xn49GVxjEOsU4h/FjvwOq+exAYV9rEvkvlFEyiRPVaRNAlqK1x93eJ+eeFYFgGk4bM1mFvbSMtj9yz32Z9UsmA6YI7aUhQ5E3AQBakYaEAQvVx8qtUm9gfoMsq9gEqPBCV+s75NCgR3bw44zQd2fXSiQkHOyj8S9uZbLkyOI2v1KxdXT0Nj4IZhZ9w8CR+ZhawrpT/EUcrsrnX2VsYNs+9jOY9VC004nClJBCZBMUGf5AV9JYx4Lh2gHBKnyGRXHm1Qa6QFJNxtJyDg109YpW7qbJnUghYTeb8CL8PXemp6ck5WwBo64Qk4Pt2zUEaYCvVypLCdD/eIsWvLMtkTjot8J7IxFFMF+DZXOUJeL3z7+xtAQZNuacacmlV89OIQxVHWLH85opu2G6anDHPe4rXW6t4PvpeNN5LzsY36i/Q0X7/IjjfLf0cVz0P9fbcGRNiDOv6w+bBTje2M6eWVyVBAofXqKNVCIwrRfpliqTsgx50Hmq/gVKKDhGgY6/wtoU7IERsmvKbSBLiaaGzA39HJ9ONroYFAQAAJ0HAAAsCQAAhgUAAEgFAACnBQAAAAQAADIFAAC8BQAALAkAQYDBAAv3CQwACACMAAgATAAIAMwACAAsAAgArAAIAGwACADsAAgAHAAIAJwACABcAAgA3AAIADwACAC8AAgAfAAIAPwACAACAAgAggAIAEIACADCAAgAIgAIAKIACABiAAgA4gAIABIACACSAAgAUgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w=="; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - var binary = tryParseAsDataURI(file); - if (binary) { - return binary; - } - if (readBinary) { - return readBinary(file); - } else { - throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; - } - } catch (err2) { - abort(err2); - } - } - function instantiateSync(file, info) { - var instance; - var module2; - var binary; - try { - binary = getBinary(file); - module2 = new WebAssembly.Module(binary); - instance = new WebAssembly.Instance(module2, info); - } catch (e) { - var str = e.toString(); - err("failed to compile wasm module: " + str); - if (str.includes("imported Memory") || str.includes("memory import")) { - err( - "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)." - ); - } - throw e; - } - return [instance, module2]; - } - function createWasm() { - var info = { a: asmLibraryArg }; - function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - wasmMemory = Module["asm"]["g"]; - updateGlobalBufferAndViews(wasmMemory.buffer); - wasmTable = Module["asm"]["W"]; - addOnInit(Module["asm"]["h"]); - removeRunDependency(); - } - addRunDependency(); - if (Module["instantiateWasm"]) { - try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - return false; - } - } - var result = instantiateSync(wasmBinaryFile, info); - receiveInstance(result[0]); - return Module["asm"]; - } - function LE_HEAP_LOAD_F32(byteOffset) { - return HEAP_DATA_VIEW.getFloat32(byteOffset, true); - } - function LE_HEAP_LOAD_F64(byteOffset) { - return HEAP_DATA_VIEW.getFloat64(byteOffset, true); - } - function LE_HEAP_LOAD_I16(byteOffset) { - return HEAP_DATA_VIEW.getInt16(byteOffset, true); - } - function LE_HEAP_LOAD_I32(byteOffset) { - return HEAP_DATA_VIEW.getInt32(byteOffset, true); - } - function LE_HEAP_STORE_I32(byteOffset, value) { - HEAP_DATA_VIEW.setInt32(byteOffset, value, true); - } - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == "function") { - callback(Module); - continue; - } - var func = callback.func; - if (typeof func === "number") { - if (callback.arg === void 0) { - wasmTable.get(func)(); - } else { - wasmTable.get(func)(callback.arg); - } - } else { - func(callback.arg === void 0 ? null : callback.arg); - } - } - } - function _gmtime_r(time, tmPtr) { - var date = new Date(LE_HEAP_LOAD_I32((time >> 2) * 4) * 1e3); - LE_HEAP_STORE_I32((tmPtr >> 2) * 4, date.getUTCSeconds()); - LE_HEAP_STORE_I32((tmPtr + 4 >> 2) * 4, date.getUTCMinutes()); - LE_HEAP_STORE_I32((tmPtr + 8 >> 2) * 4, date.getUTCHours()); - LE_HEAP_STORE_I32((tmPtr + 12 >> 2) * 4, date.getUTCDate()); - LE_HEAP_STORE_I32((tmPtr + 16 >> 2) * 4, date.getUTCMonth()); - LE_HEAP_STORE_I32((tmPtr + 20 >> 2) * 4, date.getUTCFullYear() - 1900); - LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); - LE_HEAP_STORE_I32((tmPtr + 36 >> 2) * 4, 0); - LE_HEAP_STORE_I32((tmPtr + 32 >> 2) * 4, 0); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; - LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); - if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8("GMT"); - LE_HEAP_STORE_I32((tmPtr + 40 >> 2) * 4, _gmtime_r.GMTString); - return tmPtr; - } - function ___gmtime_r(a0, a1) { - return _gmtime_r(a0, a1); - } - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); - } - function emscripten_realloc_buffer(size) { - try { - wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16); - updateGlobalBufferAndViews(wasmMemory.buffer); - return 1; - } catch (e) { - } - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - var maxHeapSize = 2147483648; - if (requestedSize > maxHeapSize) { - return false; - } - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min( - overGrownHeapSize, - requestedSize + 100663296 - ); - var newSize = Math.min( - maxHeapSize, - alignUp(Math.max(requestedSize, overGrownHeapSize), 65536) - ); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; - } - function _setTempRet0(val) { - } - function _time(ptr) { - var ret = Date.now() / 1e3 | 0; - if (ptr) { - LE_HEAP_STORE_I32((ptr >> 2) * 4, ret); - } - return ret; - } - function _tzset() { - if (_tzset.called) return; - _tzset.called = true; - var currentYear = (/* @__PURE__ */ new Date()).getFullYear(); - var winter = new Date(currentYear, 0, 1); - var summer = new Date(currentYear, 6, 1); - var winterOffset = winter.getTimezoneOffset(); - var summerOffset = summer.getTimezoneOffset(); - var stdTimezoneOffset = Math.max(winterOffset, summerOffset); - LE_HEAP_STORE_I32((__get_timezone() >> 2) * 4, stdTimezoneOffset * 60); - LE_HEAP_STORE_I32( - (__get_daylight() >> 2) * 4, - Number(winterOffset != summerOffset) - ); - function extractZone(date) { - var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); - return match ? match[1] : "GMT"; - } - var winterName = extractZone(winter); - var summerName = extractZone(summer); - var winterNamePtr = allocateUTF8(winterName); - var summerNamePtr = allocateUTF8(summerName); - if (summerOffset < winterOffset) { - LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, winterNamePtr); - LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, summerNamePtr); - } else { - LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, summerNamePtr); - LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, winterNamePtr); - } - } - function _timegm(tmPtr) { - _tzset(); - var time = Date.UTC( - LE_HEAP_LOAD_I32((tmPtr + 20 >> 2) * 4) + 1900, - LE_HEAP_LOAD_I32((tmPtr + 16 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 12 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 8 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 4 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr >> 2) * 4), - 0 - ); - var date = new Date(time); - LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; - LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); - return date.getTime() / 1e3 | 0; - } - function intArrayFromBase64(s) { - { - var buf; - try { - buf = Buffer.from(s, "base64"); - } catch (_) { - buf = new Buffer(s, "base64"); - } - return new Uint8Array( - buf["buffer"], - buf["byteOffset"], - buf["byteLength"] - ); - } - } - function tryParseAsDataURI(filename) { - if (!isDataURI(filename)) { - return; - } - return intArrayFromBase64(filename.slice(dataURIPrefix.length)); - } - var asmLibraryArg = { - e: ___gmtime_r, - c: _emscripten_memcpy_big, - d: _emscripten_resize_heap, - a: _setTempRet0, - b: _time, - f: _timegm - }; - var asm = createWasm(); - Module["___wasm_call_ctors"] = asm["h"]; - Module["_zip_ext_count_symlinks"] = asm["i"]; - Module["_zip_file_get_external_attributes"] = asm["j"]; - Module["_zipstruct_statS"] = asm["k"]; - Module["_zipstruct_stat_size"] = asm["l"]; - Module["_zipstruct_stat_mtime"] = asm["m"]; - Module["_zipstruct_stat_crc"] = asm["n"]; - Module["_zipstruct_errorS"] = asm["o"]; - Module["_zipstruct_error_code_zip"] = asm["p"]; - Module["_zipstruct_stat_comp_size"] = asm["q"]; - Module["_zipstruct_stat_comp_method"] = asm["r"]; - Module["_zip_close"] = asm["s"]; - Module["_zip_delete"] = asm["t"]; - Module["_zip_dir_add"] = asm["u"]; - Module["_zip_discard"] = asm["v"]; - Module["_zip_error_init_with_code"] = asm["w"]; - Module["_zip_get_error"] = asm["x"]; - Module["_zip_file_get_error"] = asm["y"]; - Module["_zip_error_strerror"] = asm["z"]; - Module["_zip_fclose"] = asm["A"]; - Module["_zip_file_add"] = asm["B"]; - Module["_free"] = asm["C"]; - var _malloc = Module["_malloc"] = asm["D"]; - Module["_zip_source_error"] = asm["E"]; - Module["_zip_source_seek"] = asm["F"]; - Module["_zip_file_set_external_attributes"] = asm["G"]; - Module["_zip_file_set_mtime"] = asm["H"]; - Module["_zip_fopen_index"] = asm["I"]; - Module["_zip_fread"] = asm["J"]; - Module["_zip_get_name"] = asm["K"]; - Module["_zip_get_num_entries"] = asm["L"]; - Module["_zip_source_read"] = asm["M"]; - Module["_zip_name_locate"] = asm["N"]; - Module["_zip_open_from_source"] = asm["O"]; - Module["_zip_set_file_compression"] = asm["P"]; - Module["_zip_source_buffer"] = asm["Q"]; - Module["_zip_source_buffer_create"] = asm["R"]; - Module["_zip_source_close"] = asm["S"]; - Module["_zip_source_free"] = asm["T"]; - Module["_zip_source_keep"] = asm["U"]; - Module["_zip_source_open"] = asm["V"]; - Module["_zip_source_tell"] = asm["X"]; - Module["_zip_stat_index"] = asm["Y"]; - var __get_tzname = Module["__get_tzname"] = asm["Z"]; - var __get_daylight = Module["__get_daylight"] = asm["_"]; - var __get_timezone = Module["__get_timezone"] = asm["$"]; - var stackSave = Module["stackSave"] = asm["aa"]; - var stackRestore = Module["stackRestore"] = asm["ba"]; - var stackAlloc = Module["stackAlloc"] = asm["ca"]; - Module["cwrap"] = cwrap; - Module["getValue"] = getValue; - var calledRun; - dependenciesFulfilled = function runCaller() { - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; - }; - function run(args) { - if (runDependencies > 0) { - return; - } - preRun(); - if (runDependencies > 0) { - return; - } - function doRun() { - if (calledRun) return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) return; - initRuntime(); - readyPromiseResolve(Module); - if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); - postRun(); - } - if (Module["setStatus"]) { - Module["setStatus"]("Running..."); - setTimeout(function() { - setTimeout(function() { - Module["setStatus"](""); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - } - Module["run"] = run; - if (Module["preInit"]) { - if (typeof Module["preInit"] == "function") - Module["preInit"] = [Module["preInit"]]; - while (Module["preInit"].length > 0) { - Module["preInit"].pop()(); - } - } - run(); - return createModule2; - }; -}(); -module.exports = createModule; -}(libzipSync)); - -const createModule = libzipSync.exports; - -const number64 = [ - `number`, - // low - `number` - // high -]; -var Errors = /* @__PURE__ */ ((Errors2) => { - Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; - Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; - Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; - Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; - Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; - Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; - Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; - Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; - Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; - Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; - Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; - Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; - Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; - Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; - Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; - Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; - Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; - Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; - Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; - Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; - Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; - Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; - Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; - Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; - Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; - Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; - Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; - Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; - Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; - Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; - Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; - Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; - return Errors2; -})(Errors || {}); -const makeInterface = (emZip) => ({ - // Those are getters because they can change after memory growth - get HEAPU8() { - return emZip.HEAPU8; - }, - errors: Errors, - SEEK_SET: 0, - SEEK_CUR: 1, - SEEK_END: 2, - ZIP_CHECKCONS: 4, - ZIP_EXCL: 2, - ZIP_RDONLY: 16, - ZIP_FL_OVERWRITE: 8192, - ZIP_FL_COMPRESSED: 4, - ZIP_OPSYS_DOS: 0, - ZIP_OPSYS_AMIGA: 1, - ZIP_OPSYS_OPENVMS: 2, - ZIP_OPSYS_UNIX: 3, - ZIP_OPSYS_VM_CMS: 4, - ZIP_OPSYS_ATARI_ST: 5, - ZIP_OPSYS_OS_2: 6, - ZIP_OPSYS_MACINTOSH: 7, - ZIP_OPSYS_Z_SYSTEM: 8, - ZIP_OPSYS_CPM: 9, - ZIP_OPSYS_WINDOWS_NTFS: 10, - ZIP_OPSYS_MVS: 11, - ZIP_OPSYS_VSE: 12, - ZIP_OPSYS_ACORN_RISC: 13, - ZIP_OPSYS_VFAT: 14, - ZIP_OPSYS_ALTERNATE_MVS: 15, - ZIP_OPSYS_BEOS: 16, - ZIP_OPSYS_TANDEM: 17, - ZIP_OPSYS_OS_400: 18, - ZIP_OPSYS_OS_X: 19, - ZIP_CM_DEFAULT: -1, - ZIP_CM_STORE: 0, - ZIP_CM_DEFLATE: 8, - uint08S: emZip._malloc(1), - uint32S: emZip._malloc(4), - malloc: emZip._malloc, - free: emZip._free, - getValue: emZip.getValue, - openFromSource: emZip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), - close: emZip.cwrap(`zip_close`, `number`, [`number`]), - discard: emZip.cwrap(`zip_discard`, null, [`number`]), - getError: emZip.cwrap(`zip_get_error`, `number`, [`number`]), - getName: emZip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), - getNumEntries: emZip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), - delete: emZip.cwrap(`zip_delete`, `number`, [`number`, `number`]), - statIndex: emZip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), - fopenIndex: emZip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), - fread: emZip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), - fclose: emZip.cwrap(`zip_fclose`, `number`, [`number`]), - dir: { - add: emZip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) - }, - file: { - add: emZip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), - getError: emZip.cwrap(`zip_file_get_error`, `number`, [`number`]), - getExternalAttributes: emZip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setExternalAttributes: emZip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setMtime: emZip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), - setCompression: emZip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) - }, - ext: { - countSymlinks: emZip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) - }, - error: { - initWithCode: emZip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), - strerror: emZip.cwrap(`zip_error_strerror`, `string`, [`number`]) - }, - name: { - locate: emZip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) - }, - source: { - fromUnattachedBuffer: emZip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]), - fromBuffer: emZip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), - free: emZip.cwrap(`zip_source_free`, null, [`number`]), - keep: emZip.cwrap(`zip_source_keep`, null, [`number`]), - open: emZip.cwrap(`zip_source_open`, `number`, [`number`]), - close: emZip.cwrap(`zip_source_close`, `number`, [`number`]), - seek: emZip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), - tell: emZip.cwrap(`zip_source_tell`, `number`, [`number`]), - read: emZip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), - error: emZip.cwrap(`zip_source_error`, `number`, [`number`]) - }, - struct: { - statS: emZip.cwrap(`zipstruct_statS`, `number`, []), - statSize: emZip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), - statCompSize: emZip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), - statCompMethod: emZip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), - statMtime: emZip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), - statCrc: emZip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]), - errorS: emZip.cwrap(`zipstruct_errorS`, `number`, []), - errorCodeZip: emZip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) - } -}); - -function getArchivePart(path, extension) { - let idx = path.indexOf(extension); - if (idx <= 0) - return null; - let nextCharIdx = idx; - while (idx >= 0) { - nextCharIdx = idx + extension.length; - if (path[nextCharIdx] === ppath.sep) - break; - if (path[idx - 1] === ppath.sep) - return null; - idx = path.indexOf(extension, nextCharIdx); - } - if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep) - return null; - return path.slice(0, nextCharIdx); -} -class ZipOpenFS extends MountFS { - static async openPromise(fn, opts) { - const zipOpenFs = new ZipOpenFS(opts); - try { - return await fn(zipOpenFs); - } finally { - zipOpenFs.saveAndClose(); - } - } - constructor(opts = {}) { - const fileExtensions = opts.fileExtensions; - const readOnlyArchives = opts.readOnlyArchives; - const getMountPoint = typeof fileExtensions === `undefined` ? (path) => getArchivePart(path, `.zip`) : (path) => { - for (const extension of fileExtensions) { - const result = getArchivePart(path, extension); - if (result) { - return result; - } - } - return null; - }; - const factorySync = (baseFs, p) => { - return new ZipFS(p, { - baseFs, - readOnly: readOnlyArchives, - stats: baseFs.statSync(p) - }); - }; - const factoryPromise = async (baseFs, p) => { - const zipOptions = { - baseFs, - readOnly: readOnlyArchives, - stats: await baseFs.statPromise(p) - }; - return () => { - return new ZipFS(p, zipOptions); - }; - }; - super({ - ...opts, - factorySync, - factoryPromise, - getMountPoint - }); - } -} - -const DEFAULT_COMPRESSION_LEVEL = `mixed`; -function toUnixTimestamp(time) { - if (typeof time === `string` && String(+time) === time) - return +time; - if (typeof time === `number` && Number.isFinite(time)) { - if (time < 0) { - return Date.now() / 1e3; - } else { - return time; - } - } - if (nodeUtils.types.isDate(time)) - return time.getTime() / 1e3; - throw new Error(`Invalid time`); -} -function makeEmptyArchive() { - return Buffer.from([ - 80, - 75, - 5, - 6, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ]); -} -class LibzipError extends Error { - code; - constructor(message, code) { - super(message); - this.name = `Libzip Error`; - this.code = code; - } -} -class ZipFS extends BasePortableFakeFS { - libzip; - baseFs; - path; - stats; - zip; - lzSource; - level; - listings = /* @__PURE__ */ new Map(); - entries = /* @__PURE__ */ new Map(); - /** - * A cache of indices mapped to file sources. - * Populated by `setFileSource` calls. - * Required for supporting read after write. - */ - fileSources = /* @__PURE__ */ new Map(); - symlinkCount; - fds = /* @__PURE__ */ new Map(); - nextFd = 0; - ready = false; - readOnly = false; - constructor(source, opts = {}) { - super(); - const pathOptions = opts; - this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; - source ??= makeEmptyArchive(); - if (typeof source === `string`) { - const { baseFs = new NodeFS() } = pathOptions; - this.baseFs = baseFs; - this.path = source; - } else { - this.path = null; - this.baseFs = null; - } - if (opts.stats) { - this.stats = opts.stats; - } else { - if (typeof source === `string`) { - try { - this.stats = this.baseFs.statSync(source); - } catch (error) { - if (error.code === `ENOENT` && pathOptions.create) { - this.stats = makeDefaultStats(); - } else { - throw error; - } - } - } else { - this.stats = makeDefaultStats(); - } - } - this.libzip = getInstance(); - const errPtr = this.libzip.malloc(4); - try { - let flags = 0; - if (opts.readOnly) { - flags |= this.libzip.ZIP_RDONLY; - this.readOnly = true; - } - if (typeof source === `string`) - source = pathOptions.create ? makeEmptyArchive() : this.baseFs.readFileSync(source); - const lzSource = this.allocateUnattachedSource(source); - try { - this.zip = this.libzip.openFromSource(lzSource, flags, errPtr); - this.lzSource = lzSource; - } catch (error) { - this.libzip.source.free(lzSource); - throw error; - } - if (this.zip === 0) { - const error = this.libzip.struct.errorS(); - this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`)); - throw this.makeLibzipError(error); - } - } finally { - this.libzip.free(errPtr); - } - this.listings.set(PortablePath.root, /* @__PURE__ */ new Set()); - const entryCount = this.libzip.getNumEntries(this.zip, 0); - for (let t = 0; t < entryCount; ++t) { - const raw = this.libzip.getName(this.zip, t, 0); - if (ppath.isAbsolute(raw)) - continue; - const p = ppath.resolve(PortablePath.root, raw); - this.registerEntry(p, t); - if (raw.endsWith(`/`)) { - this.registerListing(p); - } - } - this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); - if (this.symlinkCount === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.ready = true; - } - makeLibzipError(error) { - const errorCode = this.libzip.struct.errorCodeZip(error); - const strerror = this.libzip.error.strerror(error); - const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]); - if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) - throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); - return libzipError; - } - getExtractHint(hints) { - for (const fileName of this.entries.keys()) { - const ext = this.pathUtils.extname(fileName); - if (hints.relevantExtensions.has(ext)) { - return true; - } - } - return false; - } - getAllFiles() { - return Array.from(this.entries.keys()); - } - getRealPath() { - if (!this.path) - throw new Error(`ZipFS don't have real paths when loaded from a buffer`); - return this.path; - } - prepareClose() { - if (!this.ready) - throw EBUSY(`archive closed, close`); - unwatchAllFiles(this); - } - getBufferAndClose() { - this.prepareClose(); - if (this.entries.size === 0) { - this.discardAndClose(); - return makeEmptyArchive(); - } - try { - this.libzip.source.keep(this.lzSource); - if (this.libzip.close(this.zip) === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - if (this.libzip.source.open(this.lzSource) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - const size = this.libzip.source.tell(this.lzSource); - if (size === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - const buffer = this.libzip.malloc(size); - if (!buffer) - throw new Error(`Couldn't allocate enough memory`); - try { - const rc = this.libzip.source.read(this.lzSource, buffer, size); - if (rc === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - else if (rc < size) - throw new Error(`Incomplete read`); - else if (rc > size) - throw new Error(`Overread`); - let result = Buffer.from(this.libzip.HEAPU8.subarray(buffer, buffer + size)); - if (process.env.YARN_IS_TEST_ENV && process.env.YARN_ZIP_DATA_EPILOGUE) - result = Buffer.concat([result, Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)]); - return result; - } finally { - this.libzip.free(buffer); - } - } finally { - this.libzip.source.close(this.lzSource); - this.libzip.source.free(this.lzSource); - this.ready = false; - } - } - discardAndClose() { - this.prepareClose(); - this.libzip.discard(this.zip); - this.ready = false; - } - saveAndClose() { - if (!this.path || !this.baseFs) - throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); - if (this.readOnly) { - this.discardAndClose(); - return; - } - const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode; - this.baseFs.writeFileSync(this.path, this.getBufferAndClose(), { mode: newMode }); - this.ready = false; - } - resolve(p) { - return ppath.resolve(PortablePath.root, p); - } - async openPromise(p, flags, mode) { - return this.openSync(p, flags, mode); - } - openSync(p, flags, mode) { - const fd = this.nextFd++; - this.fds.set(fd, { cursor: 0, p }); - return fd; - } - hasOpenFileHandles() { - return !!this.fds.size; - } - async opendirPromise(p, opts) { - return this.opendirSync(p, opts); - } - opendirSync(p, opts = {}) { - const resolvedP = this.resolveFilename(`opendir '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`opendir '${p}'`); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`opendir '${p}'`); - const entries = [...directoryListing]; - const fd = this.openSync(resolvedP, `r`); - const onClose = () => { - this.closeSync(fd); - }; - return opendir(this, resolvedP, entries, { onClose }); - } - async readPromise(fd, buffer, offset, length, position) { - return this.readSync(fd, buffer, offset, length, position); - } - readSync(fd, buffer, offset = 0, length = buffer.byteLength, position = -1) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - const realPosition = position === -1 || position === null ? entry.cursor : position; - const source = this.readFileSync(entry.p); - source.copy(buffer, offset, realPosition, realPosition + length); - const bytesRead = Math.max(0, Math.min(source.length - realPosition, length)); - if (position === -1 || position === null) - entry.cursor += bytesRead; - return bytesRead; - } - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.writeSync(fd, buffer, position); - } else { - return this.writeSync(fd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - throw new Error(`Unimplemented`); - } - async closePromise(fd) { - return this.closeSync(fd); - } - closeSync(fd) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - this.fds.delete(fd); - } - createReadStream(p, { encoding } = {}) { - if (p === null) - throw new Error(`Unimplemented`); - const fd = this.openSync(p, `r`); - const stream$1 = Object.assign( - new stream.PassThrough({ - emitClose: true, - autoDestroy: true, - destroy: (error, callback) => { - clearImmediate(immediate); - this.closeSync(fd); - callback(error); - } - }), - { - close() { - stream$1.destroy(); - }, - bytesRead: 0, - path: p, - // "This property is `true` if the underlying file has not been opened yet" - pending: false - } - ); - const immediate = setImmediate(async () => { - try { - const data = await this.readFilePromise(p, encoding); - stream$1.bytesRead = data.length; - stream$1.end(data); - } catch (error) { - stream$1.destroy(error); - } - }); - return stream$1; - } - createWriteStream(p, { encoding } = {}) { - if (this.readOnly) - throw EROFS(`open '${p}'`); - if (p === null) - throw new Error(`Unimplemented`); - const chunks = []; - const fd = this.openSync(p, `w`); - const stream$1 = Object.assign( - new stream.PassThrough({ - autoDestroy: true, - emitClose: true, - destroy: (error, callback) => { - try { - if (error) { - callback(error); - } else { - this.writeFileSync(p, Buffer.concat(chunks), encoding); - callback(null); - } - } catch (err) { - callback(err); - } finally { - this.closeSync(fd); - } - } - }), - { - close() { - stream$1.destroy(); - }, - bytesWritten: 0, - path: p, - // "This property is `true` if the underlying file has not been opened yet" - pending: false - } - ); - stream$1.on(`data`, (chunk) => { - const chunkBuffer = Buffer.from(chunk); - stream$1.bytesWritten += chunkBuffer.length; - chunks.push(chunkBuffer); - }); - return stream$1; - } - async realpathPromise(p) { - return this.realpathSync(p); - } - realpathSync(p) { - const resolvedP = this.resolveFilename(`lstat '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`lstat '${p}'`); - return resolvedP; - } - async existsPromise(p) { - return this.existsSync(p); - } - existsSync(p) { - if (!this.ready) - throw EBUSY(`archive closed, existsSync '${p}'`); - if (this.symlinkCount === 0) { - const resolvedP2 = ppath.resolve(PortablePath.root, p); - return this.entries.has(resolvedP2) || this.listings.has(resolvedP2); - } - let resolvedP; - try { - resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false); - } catch (error) { - return false; - } - if (resolvedP === void 0) - return false; - return this.entries.has(resolvedP) || this.listings.has(resolvedP); - } - async accessPromise(p, mode) { - return this.accessSync(p, mode); - } - accessSync(p, mode = fs.constants.F_OK) { - const resolvedP = this.resolveFilename(`access '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`access '${p}'`); - if (this.readOnly && mode & fs.constants.W_OK) { - throw EROFS(`access '${p}'`); - } - } - async statPromise(p, opts = { bigint: false }) { - if (opts.bigint) - return this.statSync(p, { bigint: true }); - return this.statSync(p); - } - statSync(p, opts = { bigint: false, throwIfNoEntry: true }) { - const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry); - if (resolvedP === void 0) - return void 0; - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { - if (opts.throwIfNoEntry === false) - return void 0; - throw ENOENT(`stat '${p}'`); - } - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`stat '${p}'`); - return this.statImpl(`stat '${p}'`, resolvedP, opts); - } - async fstatPromise(fd, opts) { - return this.fstatSync(fd, opts); - } - fstatSync(fd, opts) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstatSync`); - const { p } = entry; - const resolvedP = this.resolveFilename(`stat '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`stat '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`stat '${p}'`); - return this.statImpl(`fstat '${p}'`, resolvedP, opts); - } - async lstatPromise(p, opts = { bigint: false }) { - if (opts.bigint) - return this.lstatSync(p, { bigint: true }); - return this.lstatSync(p); - } - lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) { - const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry); - if (resolvedP === void 0) - return void 0; - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { - if (opts.throwIfNoEntry === false) - return void 0; - throw ENOENT(`lstat '${p}'`); - } - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`lstat '${p}'`); - return this.statImpl(`lstat '${p}'`, resolvedP, opts); - } - statImpl(reason, p, opts = {}) { - const entry = this.entries.get(p); - if (typeof entry !== `undefined`) { - const stat = this.libzip.struct.statS(); - const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat); - if (rc === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - const uid = this.stats.uid; - const gid = this.stats.gid; - const size = this.libzip.struct.statSize(stat) >>> 0; - const blksize = 512; - const blocks = Math.ceil(size / blksize); - const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1e3; - const atimeMs = mtimeMs; - const birthtimeMs = mtimeMs; - const ctimeMs = mtimeMs; - const atime = new Date(atimeMs); - const birthtime = new Date(birthtimeMs); - const ctime = new Date(ctimeMs); - const mtime = new Date(mtimeMs); - const type = this.listings.has(p) ? fs.constants.S_IFDIR : this.isSymbolicLink(entry) ? fs.constants.S_IFLNK : fs.constants.S_IFREG; - const defaultMode = type === fs.constants.S_IFDIR ? 493 : 420; - const mode = type | this.getUnixMode(entry, defaultMode) & 511; - const crc = this.libzip.struct.statCrc(stat); - const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); - return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; - } - if (this.listings.has(p)) { - const uid = this.stats.uid; - const gid = this.stats.gid; - const size = 0; - const blksize = 512; - const blocks = 0; - const atimeMs = this.stats.mtimeMs; - const birthtimeMs = this.stats.mtimeMs; - const ctimeMs = this.stats.mtimeMs; - const mtimeMs = this.stats.mtimeMs; - const atime = new Date(atimeMs); - const birthtime = new Date(birthtimeMs); - const ctime = new Date(ctimeMs); - const mtime = new Date(mtimeMs); - const mode = fs.constants.S_IFDIR | 493; - const crc = 0; - const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); - return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; - } - throw new Error(`Unreachable`); - } - getUnixMode(index, defaultMode) { - const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); - if (rc === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; - if (opsys !== this.libzip.ZIP_OPSYS_UNIX) - return defaultMode; - return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; - } - registerListing(p) { - const existingListing = this.listings.get(p); - if (existingListing) - return existingListing; - const parentListing = this.registerListing(ppath.dirname(p)); - parentListing.add(ppath.basename(p)); - const newListing = /* @__PURE__ */ new Set(); - this.listings.set(p, newListing); - return newListing; - } - registerEntry(p, index) { - const parentListing = this.registerListing(ppath.dirname(p)); - parentListing.add(ppath.basename(p)); - this.entries.set(p, index); - } - unregisterListing(p) { - this.listings.delete(p); - const parentListing = this.listings.get(ppath.dirname(p)); - parentListing?.delete(ppath.basename(p)); - } - unregisterEntry(p) { - this.unregisterListing(p); - const entry = this.entries.get(p); - this.entries.delete(p); - if (typeof entry === `undefined`) - return; - this.fileSources.delete(entry); - if (this.isSymbolicLink(entry)) { - this.symlinkCount--; - } - } - deleteEntry(p, index) { - this.unregisterEntry(p); - const rc = this.libzip.delete(this.zip, index); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = true) { - if (!this.ready) - throw EBUSY(`archive closed, ${reason}`); - let resolvedP = ppath.resolve(PortablePath.root, p); - if (resolvedP === `/`) - return PortablePath.root; - const fileIndex = this.entries.get(resolvedP); - if (resolveLastComponent && fileIndex !== void 0) { - if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { - const target = this.getFileSource(fileIndex).toString(); - return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry); - } else { - return resolvedP; - } - } - while (true) { - const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry); - if (parentP === void 0) - return parentP; - const isDir = this.listings.has(parentP); - const doesExist = this.entries.has(parentP); - if (!isDir && !doesExist) { - if (throwIfNoEntry === false) - return void 0; - throw ENOENT(reason); - } - if (!isDir) - throw ENOTDIR(reason); - resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); - if (!resolveLastComponent || this.symlinkCount === 0) - break; - const index = this.libzip.name.locate(this.zip, resolvedP.slice(1), 0); - if (index === -1) - break; - if (this.isSymbolicLink(index)) { - const target = this.getFileSource(index).toString(); - resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); - } else { - break; - } - } - return resolvedP; - } - allocateBuffer(content) { - if (!Buffer.isBuffer(content)) - content = Buffer.from(content); - const buffer = this.libzip.malloc(content.byteLength); - if (!buffer) - throw new Error(`Couldn't allocate enough memory`); - const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength); - heap.set(content); - return { buffer, byteLength: content.byteLength }; - } - allocateUnattachedSource(content) { - const error = this.libzip.struct.errorS(); - const { buffer, byteLength } = this.allocateBuffer(content); - const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, 1, error); - if (source === 0) { - this.libzip.free(error); - throw this.makeLibzipError(error); - } - return source; - } - allocateSource(content) { - const { buffer, byteLength } = this.allocateBuffer(content); - const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1); - if (source === 0) { - this.libzip.free(buffer); - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - return source; - } - setFileSource(p, content) { - const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); - const target = ppath.relative(PortablePath.root, p); - const lzSource = this.allocateSource(content); - try { - const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE); - if (newIndex === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - if (this.level !== `mixed`) { - const method = this.level === 0 ? this.libzip.ZIP_CM_STORE : this.libzip.ZIP_CM_DEFLATE; - const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - this.fileSources.set(newIndex, buffer); - return newIndex; - } catch (error) { - this.libzip.source.free(lzSource); - throw error; - } - } - isSymbolicLink(index) { - if (this.symlinkCount === 0) - return false; - const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); - if (attrs === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; - if (opsys !== this.libzip.ZIP_OPSYS_UNIX) - return false; - const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; - return (attributes & fs.constants.S_IFMT) === fs.constants.S_IFLNK; - } - getFileSource(index, opts = { asyncDecompress: false }) { - const cachedFileSource = this.fileSources.get(index); - if (typeof cachedFileSource !== `undefined`) - return cachedFileSource; - const stat = this.libzip.struct.statS(); - const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat); - if (rc === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - const size = this.libzip.struct.statCompSize(stat); - const compressionMethod = this.libzip.struct.statCompMethod(stat); - const buffer = this.libzip.malloc(size); - try { - const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED); - if (file === 0) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - try { - const rc2 = this.libzip.fread(file, buffer, size, 0); - if (rc2 === -1) - throw this.makeLibzipError(this.libzip.file.getError(file)); - else if (rc2 < size) - throw new Error(`Incomplete read`); - else if (rc2 > size) - throw new Error(`Overread`); - const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); - const data = Buffer.from(memory); - if (compressionMethod === 0) { - this.fileSources.set(index, data); - return data; - } else if (opts.asyncDecompress) { - return new Promise((resolve, reject) => { - zlib__default.default.inflateRaw(data, (error, result) => { - if (error) { - reject(error); - } else { - this.fileSources.set(index, result); - resolve(result); - } - }); - }); - } else { - const decompressedData = zlib__default.default.inflateRawSync(data); - this.fileSources.set(index, decompressedData); - return decompressedData; - } - } finally { - this.libzip.fclose(file); - } - } finally { - this.libzip.free(buffer); - } - } - async fchmodPromise(fd, mask) { - return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask); - } - fchmodSync(fd, mask) { - return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask); - } - async chmodPromise(p, mask) { - return this.chmodSync(p, mask); - } - chmodSync(p, mask) { - if (this.readOnly) - throw EROFS(`chmod '${p}'`); - mask &= 493; - const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false); - const entry = this.entries.get(resolvedP); - if (typeof entry === `undefined`) - throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`); - const oldMod = this.getUnixMode(entry, fs.constants.S_IFREG | 0); - const newMod = oldMod & ~511 | mask; - const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - async fchownPromise(fd, uid, gid) { - return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid); - } - fchownSync(fd, uid, gid) { - return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid); - } - async chownPromise(p, uid, gid) { - return this.chownSync(p, uid, gid); - } - chownSync(p, uid, gid) { - throw new Error(`Unimplemented`); - } - async renamePromise(oldP, newP) { - return this.renameSync(oldP, newP); - } - renameSync(oldP, newP) { - throw new Error(`Unimplemented`); - } - async copyFilePromise(sourceP, destP, flags) { - const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); - const source = await this.getFileSource(indexSource, { asyncDecompress: true }); - const newIndex = this.setFileSource(resolvedDestP, source); - if (newIndex !== indexDest) { - this.registerEntry(resolvedDestP, newIndex); - } - } - copyFileSync(sourceP, destP, flags = 0) { - const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); - const source = this.getFileSource(indexSource); - const newIndex = this.setFileSource(resolvedDestP, source); - if (newIndex !== indexDest) { - this.registerEntry(resolvedDestP, newIndex); - } - } - prepareCopyFile(sourceP, destP, flags = 0) { - if (this.readOnly) - throw EROFS(`copyfile '${sourceP} -> '${destP}'`); - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`); - const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP); - const indexSource = this.entries.get(resolvedSourceP); - if (typeof indexSource === `undefined`) - throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`); - const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP); - const indexDest = this.entries.get(resolvedDestP); - if ((flags & (fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) - throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`); - return { - indexSource, - resolvedDestP, - indexDest - }; - } - async appendFilePromise(p, content, opts) { - if (this.readOnly) - throw EROFS(`open '${p}'`); - if (typeof opts === `undefined`) - opts = { flag: `a` }; - else if (typeof opts === `string`) - opts = { flag: `a`, encoding: opts }; - else if (typeof opts.flag === `undefined`) - opts = { flag: `a`, ...opts }; - return this.writeFilePromise(p, content, opts); - } - appendFileSync(p, content, opts = {}) { - if (this.readOnly) - throw EROFS(`open '${p}'`); - if (typeof opts === `undefined`) - opts = { flag: `a` }; - else if (typeof opts === `string`) - opts = { flag: `a`, encoding: opts }; - else if (typeof opts.flag === `undefined`) - opts = { flag: `a`, ...opts }; - return this.writeFileSync(p, content, opts); - } - fdToPath(fd, reason) { - const path = this.fds.get(fd)?.p; - if (typeof path === `undefined`) - throw EBADF(reason); - return path; - } - async writeFilePromise(p, content, opts) { - const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); - if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) - content = Buffer.concat([await this.getFileSource(index, { asyncDecompress: true }), Buffer.from(content)]); - if (encoding !== null) - content = content.toString(encoding); - const newIndex = this.setFileSource(resolvedP, content); - if (newIndex !== index) - this.registerEntry(resolvedP, newIndex); - if (mode !== null) { - await this.chmodPromise(resolvedP, mode); - } - } - writeFileSync(p, content, opts) { - const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); - if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) - content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]); - if (encoding !== null) - content = content.toString(encoding); - const newIndex = this.setFileSource(resolvedP, content); - if (newIndex !== index) - this.registerEntry(resolvedP, newIndex); - if (mode !== null) { - this.chmodSync(resolvedP, mode); - } - } - prepareWriteFile(p, opts) { - if (typeof p === `number`) - p = this.fdToPath(p, `read`); - if (this.readOnly) - throw EROFS(`open '${p}'`); - const resolvedP = this.resolveFilename(`open '${p}'`, p); - if (this.listings.has(resolvedP)) - throw EISDIR(`open '${p}'`); - let encoding = null, mode = null; - if (typeof opts === `string`) { - encoding = opts; - } else if (typeof opts === `object`) { - ({ - encoding = null, - mode = null - } = opts); - } - const index = this.entries.get(resolvedP); - return { - encoding, - mode, - resolvedP, - index - }; - } - async unlinkPromise(p) { - return this.unlinkSync(p); - } - unlinkSync(p) { - if (this.readOnly) - throw EROFS(`unlink '${p}'`); - const resolvedP = this.resolveFilename(`unlink '${p}'`, p); - if (this.listings.has(resolvedP)) - throw EISDIR(`unlink '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`unlink '${p}'`); - this.deleteEntry(resolvedP, index); - } - async utimesPromise(p, atime, mtime) { - return this.utimesSync(p, atime, mtime); - } - utimesSync(p, atime, mtime) { - if (this.readOnly) - throw EROFS(`utimes '${p}'`); - const resolvedP = this.resolveFilename(`utimes '${p}'`, p); - this.utimesImpl(resolvedP, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.lutimesSync(p, atime, mtime); - } - lutimesSync(p, atime, mtime) { - if (this.readOnly) - throw EROFS(`lutimes '${p}'`); - const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false); - this.utimesImpl(resolvedP, mtime); - } - utimesImpl(resolvedP, mtime) { - if (this.listings.has(resolvedP)) { - if (!this.entries.has(resolvedP)) - this.hydrateDirectory(resolvedP); - } - const entry = this.entries.get(resolvedP); - if (entry === void 0) - throw new Error(`Unreachable`); - const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - async mkdirPromise(p, opts) { - return this.mkdirSync(p, opts); - } - mkdirSync(p, { mode = 493, recursive = false } = {}) { - if (recursive) - return this.mkdirpSync(p, { chmod: mode }); - if (this.readOnly) - throw EROFS(`mkdir '${p}'`); - const resolvedP = this.resolveFilename(`mkdir '${p}'`, p); - if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) - throw EEXIST(`mkdir '${p}'`); - this.hydrateDirectory(resolvedP); - this.chmodSync(resolvedP, mode); - return void 0; - } - async rmdirPromise(p, opts) { - return this.rmdirSync(p, opts); - } - rmdirSync(p, { recursive = false } = {}) { - if (this.readOnly) - throw EROFS(`rmdir '${p}'`); - if (recursive) { - this.removeSync(p); - return; - } - const resolvedP = this.resolveFilename(`rmdir '${p}'`, p); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`rmdir '${p}'`); - if (directoryListing.size > 0) - throw ENOTEMPTY(`rmdir '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`rmdir '${p}'`); - this.deleteEntry(p, index); - } - async rmPromise(p, opts) { - return this.rmSync(p, opts); - } - rmSync(p, { recursive = false } = {}) { - if (this.readOnly) - throw EROFS(`rm '${p}'`); - if (recursive) { - this.removeSync(p); - return; - } - const resolvedP = this.resolveFilename(`rm '${p}'`, p); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`rm '${p}'`); - if (directoryListing.size > 0) - throw ENOTEMPTY(`rm '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`rm '${p}'`); - this.deleteEntry(p, index); - } - hydrateDirectory(resolvedP) { - const index = this.libzip.dir.add(this.zip, ppath.relative(PortablePath.root, resolvedP)); - if (index === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.registerListing(resolvedP); - this.registerEntry(resolvedP, index); - return index; - } - async linkPromise(existingP, newP) { - return this.linkSync(existingP, newP); - } - linkSync(existingP, newP) { - throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`); - } - async symlinkPromise(target, p) { - return this.symlinkSync(target, p); - } - symlinkSync(target, p) { - if (this.readOnly) - throw EROFS(`symlink '${target}' -> '${p}'`); - const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p); - if (this.listings.has(resolvedP)) - throw EISDIR(`symlink '${target}' -> '${p}'`); - if (this.entries.has(resolvedP)) - throw EEXIST(`symlink '${target}' -> '${p}'`); - const index = this.setFileSource(resolvedP, target); - this.registerEntry(resolvedP, index); - const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (fs.constants.S_IFLNK | 511) << 16); - if (rc === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.symlinkCount += 1; - } - async readFilePromise(p, encoding) { - if (typeof encoding === `object`) - encoding = encoding ? encoding.encoding : void 0; - const data = await this.readFileBuffer(p, { asyncDecompress: true }); - return encoding ? data.toString(encoding) : data; - } - readFileSync(p, encoding) { - if (typeof encoding === `object`) - encoding = encoding ? encoding.encoding : void 0; - const data = this.readFileBuffer(p); - return encoding ? data.toString(encoding) : data; - } - readFileBuffer(p, opts = { asyncDecompress: false }) { - if (typeof p === `number`) - p = this.fdToPath(p, `read`); - const resolvedP = this.resolveFilename(`open '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`open '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`open '${p}'`); - if (this.listings.has(resolvedP)) - throw EISDIR(`read`); - const entry = this.entries.get(resolvedP); - if (entry === void 0) - throw new Error(`Unreachable`); - return this.getFileSource(entry, opts); - } - async readdirPromise(p, opts) { - return this.readdirSync(p, opts); - } - readdirSync(p, opts) { - const resolvedP = this.resolveFilename(`scandir '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`scandir '${p}'`); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`scandir '${p}'`); - if (opts?.recursive) { - if (opts?.withFileTypes) { - const entries = Array.from(directoryListing, (name) => { - return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { - name, - path: PortablePath.dot - }); - }); - for (const entry of entries) { - if (!entry.isDirectory()) - continue; - const subPath = ppath.join(entry.path, entry.name); - const subListing = this.listings.get(ppath.join(resolvedP, subPath)); - for (const child of subListing) { - entries.push(Object.assign(this.statImpl(`lstat`, ppath.join(p, subPath, child)), { - name: child, - path: subPath - })); - } - } - return entries; - } else { - const entries = [...directoryListing]; - for (const subPath of entries) { - const subListing = this.listings.get(ppath.join(resolvedP, subPath)); - if (typeof subListing === `undefined`) - continue; - for (const child of subListing) { - entries.push(ppath.join(subPath, child)); - } - } - return entries; - } - } else if (opts?.withFileTypes) { - return Array.from(directoryListing, (name) => { - return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { - name, - path: void 0 - }); - }); - } else { - return [...directoryListing]; - } - } - async readlinkPromise(p) { - const entry = this.prepareReadlink(p); - return (await this.getFileSource(entry, { asyncDecompress: true })).toString(); - } - readlinkSync(p) { - const entry = this.prepareReadlink(p); - return this.getFileSource(entry).toString(); - } - prepareReadlink(p) { - const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`readlink '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`open '${p}'`); - if (this.listings.has(resolvedP)) - throw EINVAL(`readlink '${p}'`); - const entry = this.entries.get(resolvedP); - if (entry === void 0) - throw new Error(`Unreachable`); - if (!this.isSymbolicLink(entry)) - throw EINVAL(`readlink '${p}'`); - return entry; - } - async truncatePromise(p, len = 0) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`open '${p}'`); - const source = await this.getFileSource(index, { asyncDecompress: true }); - const truncated = Buffer.alloc(len, 0); - source.copy(truncated); - return await this.writeFilePromise(p, truncated); - } - truncateSync(p, len = 0) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`open '${p}'`); - const source = this.getFileSource(index); - const truncated = Buffer.alloc(len, 0); - source.copy(truncated); - return this.writeFileSync(p, truncated); - } - async ftruncatePromise(fd, len) { - return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len); - } - ftruncateSync(fd, len) { - return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len); - } - watch(p, a, b) { - let persistent; - switch (typeof a) { - case `function`: - case `string`: - case `undefined`: - { - persistent = true; - } - break; - default: - { - ({ persistent = true } = a); - } - break; - } - if (!persistent) - return { on: () => { - }, close: () => { - } }; - const interval = setInterval(() => { - }, 24 * 60 * 60 * 1e3); - return { on: () => { - }, close: () => { - clearInterval(interval); - } }; - } - watchFile(p, a, b) { - const resolvedP = ppath.resolve(PortablePath.root, p); - return watchFile(this, resolvedP, a, b); - } - unwatchFile(p, cb) { - const resolvedP = ppath.resolve(PortablePath.root, p); - return unwatchFile(this, resolvedP, cb); - } -} - -setFactory(() => { - const emZip = createModule(); - return makeInterface(emZip); -}); - -var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => { - ErrorCode2["API_ERROR"] = `API_ERROR`; - ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`; - ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`; - ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`; - ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`; - ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`; - ErrorCode2["INTERNAL"] = `INTERNAL`; - ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`; - ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`; - return ErrorCode2; -})(ErrorCode || {}); -const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([ - "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */, - "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */, - "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */, - "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */, - "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */ -]); -function makeError(pnpCode, message, data = {}, code) { - code ??= MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode; - const propertySpec = { - configurable: true, - writable: true, - enumerable: false - }; - return Object.defineProperties(new Error(message), { - code: { - ...propertySpec, - value: code - }, - pnpCode: { - ...propertySpec, - value: pnpCode - }, - data: { - ...propertySpec, - value: data - } - }); -} -function getIssuerModule(parent) { - let issuer = parent; - while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) - issuer = issuer.parent; - return issuer || null; -} -function getPathForDisplay(p) { - return npath.normalize(npath.fromPortablePath(p)); -} - -const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); -const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; - -function readPackageScope(checkPath) { - const rootSeparatorIndex = checkPath.indexOf(npath.sep); - let separatorIndex; - do { - separatorIndex = checkPath.lastIndexOf(npath.sep); - checkPath = checkPath.slice(0, separatorIndex); - if (checkPath.endsWith(`${npath.sep}node_modules`)) - return false; - const pjson = readPackage(checkPath + npath.sep); - if (pjson) { - return { - data: pjson, - path: checkPath - }; - } - } while (separatorIndex > rootSeparatorIndex); - return false; -} -function readPackage(requestPath) { - const jsonPath = npath.resolve(requestPath, `package.json`); - if (!fs__default.default.existsSync(jsonPath)) - return null; - return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`)); -} -function ERR_REQUIRE_ESM(filename, parentPath = null) { - const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename); - const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported. -Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`; - const err = new Error(msg); - err.code = `ERR_REQUIRE_ESM`; - return err; -} -function reportRequiredFilesToWatchMode(files) { - if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { - files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); - if (WATCH_MODE_MESSAGE_USES_ARRAYS) { - process.send({ "watch:require": files }); - } else { - for (const filename of files) { - process.send({ "watch:require": filename }); - } - } - } -} - -function applyPatch(pnpapi, opts) { - let enableNativeHooks = true; - process.versions.pnp = String(pnpapi.VERSIONS.std); - const moduleExports = require$$0__default.default; - moduleExports.findPnpApi = (lookupSource) => { - const lookupPath = lookupSource instanceof URL ? url.fileURLToPath(lookupSource) : lookupSource; - const apiPath = opts.manager.findApiPathFor(lookupPath); - if (apiPath === null) - return null; - const apiEntry = opts.manager.getApiEntry(apiPath, true); - return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null; - }; - function getRequireStack(parent) { - const requireStack = []; - for (let cursor = parent; cursor; cursor = cursor.parent) - requireStack.push(cursor.filename || cursor.id); - return requireStack; - } - const originalModuleLoad = require$$0.Module._load; - require$$0.Module._load = function(request, parent, isMain) { - if (request === `pnpapi`) { - const parentApiPath = opts.manager.getApiPathFromParent(parent); - if (parentApiPath) { - return opts.manager.getApiEntry(parentApiPath, true).instance; - } - } - return originalModuleLoad.call(require$$0.Module, request, parent, isMain); - }; - function getIssuerSpecsFromPaths(paths) { - return paths.map((path) => ({ - apiPath: opts.manager.findApiPathFor(path), - path, - module: null - })); - } - function getIssuerSpecsFromModule(module) { - if (module && module.id !== `` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) { - return [{ - apiPath: opts.manager.findApiPathFor(module.paths[0]), - path: module.paths[0], - module - }]; - } - const issuer = getIssuerModule(module); - if (issuer !== null) { - const path = npath.dirname(issuer.filename); - const apiPath = opts.manager.getApiPathFromParent(issuer); - return [{ apiPath, path, module }]; - } else { - const path = process.cwd(); - const apiPath = opts.manager.findApiPathFor(npath.join(path, `[file]`)) ?? opts.manager.getApiPathFromParent(null); - return [{ apiPath, path, module }]; - } - } - function makeFakeParent(path) { - const fakeParent = new require$$0.Module(``); - const fakeFilePath = npath.join(path, `[file]`); - fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath); - return fakeParent; - } - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; - const originalModuleResolveFilename = require$$0.Module._resolveFilename; - require$$0.Module._resolveFilename = function(request, parent, isMain, options) { - if (require$$0.isBuiltin(request)) - return request; - if (!enableNativeHooks) - return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); - if (options && options.plugnplay === false) { - const { plugnplay, ...forwardedOptions } = options; - try { - enableNativeHooks = false; - return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions); - } finally { - enableNativeHooks = true; - } - } - if (options) { - const optionNames = new Set(Object.keys(options)); - optionNames.delete(`paths`); - optionNames.delete(`plugnplay`); - if (optionNames.size > 0) { - throw makeError( - ErrorCode.UNSUPPORTED, - `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})` - ); - } - } - const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent); - if (request.match(pathRegExp) === null) { - const parentDirectory = parent?.filename != null ? npath.dirname(parent.filename) : null; - const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null; - if (absoluteRequest !== null) { - const apiPath = parent && parentDirectory === npath.dirname(absoluteRequest) ? opts.manager.getApiPathFromParent(parent) : opts.manager.findApiPathFor(absoluteRequest); - if (apiPath !== null) { - issuerSpecs.unshift({ - apiPath, - path: parentDirectory, - module: null - }); - } - } - } - let firstError; - for (const { apiPath, path, module } of issuerSpecs) { - let resolution; - const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null; - try { - if (issuerApi !== null) { - resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null); - } else { - if (path === null) - throw new Error(`Assertion failed: Expected the path to be set`); - resolution = originalModuleResolveFilename.call(require$$0.Module, request, module || makeFakeParent(path), isMain); - } - } catch (error) { - firstError = firstError || error; - continue; - } - if (resolution !== null) { - return resolution; - } - } - const requireStack = getRequireStack(parent); - Object.defineProperty(firstError, `requireStack`, { - configurable: true, - writable: true, - enumerable: false, - value: requireStack - }); - if (requireStack.length > 0) - firstError.message += ` -Require stack: -- ${requireStack.join(` -- `)}`; - if (typeof firstError.pnpCode === `string`) - Error.captureStackTrace(firstError); - throw firstError; - }; - const originalFindPath = require$$0.Module._findPath; - require$$0.Module._findPath = function(request, paths, isMain) { - if (request === `pnpapi`) - return false; - if (!enableNativeHooks) - return originalFindPath.call(require$$0.Module, request, paths, isMain); - const isAbsolute = npath.isAbsolute(request); - if (isAbsolute) - paths = [``]; - else if (!paths || paths.length === 0) - return false; - for (const path of paths) { - let resolution; - try { - const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path); - if (pnpApiPath !== null) { - const api = opts.manager.getApiEntry(pnpApiPath, true).instance; - resolution = api.resolveRequest(request, path) || false; - } else { - resolution = originalFindPath.call(require$$0.Module, request, [path], isMain); - } - } catch (error) { - continue; - } - if (resolution) { - return resolution; - } - } - return false; - }; - const originalExtensionJSFunction = require$$0.Module._extensions[`.js`]; - require$$0.Module._extensions[`.js`] = function(module, filename) { - if (filename.endsWith(`.js`)) { - const pkg = readPackageScope(filename); - if (pkg && pkg.data?.type === `module`) { - const err = ERR_REQUIRE_ESM(filename, module.parent?.filename); - Error.captureStackTrace(err); - throw err; - } - } - originalExtensionJSFunction.call(this, module, filename); - }; - const originalDlopen = process.dlopen; - process.dlopen = function(...args) { - const [module, filename, ...rest] = args; - return originalDlopen.call( - this, - module, - npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))), - ...rest - ); - }; - const originalEmit = process.emit; - process.emit = function(name, data, ...args) { - if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`))) - return false; - return originalEmit.apply(process, arguments); - }; - patchFs(fs__default.default, new PosixFS(opts.fakeFs)); -} - -function hydrateRuntimeState(data, { basePath }) { - const portablePath = npath.toPortablePath(basePath); - const absolutePortablePath = ppath.resolve(portablePath); - const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null; - const packageLocatorsByLocations = /* @__PURE__ */ new Map(); - const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { - return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { - if (packageName === null !== (packageReference === null)) - throw new Error(`Assertion failed: The name and reference should be null, or neither should`); - const discardFromLookup = packageInformationData.discardFromLookup ?? false; - const packageLocator = { name: packageName, reference: packageReference }; - const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation); - if (!entry) { - packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup }); - } else { - entry.discardFromLookup = entry.discardFromLookup && discardFromLookup; - if (!discardFromLookup) { - entry.locator = packageLocator; - } - } - let resolvedPackageLocation = null; - return [packageReference, { - packageDependencies: new Map(packageInformationData.packageDependencies), - packagePeers: new Set(packageInformationData.packagePeers), - linkType: packageInformationData.linkType, - discardFromLookup, - // we only need this for packages that are used by the currently running script - // this is a lazy getter because `ppath.join` has some overhead - get packageLocation() { - return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation)); - } - }]; - }))]; - })); - const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => { - return [packageName, new Set(packageReferences)]; - })); - const fallbackPool = new Map(data.fallbackPool); - const dependencyTreeRoots = data.dependencyTreeRoots; - const enableTopLevelFallback = data.enableTopLevelFallback; - return { - basePath: portablePath, - dependencyTreeRoots, - enableTopLevelFallback, - fallbackExclusionList, - fallbackPool, - ignorePattern, - packageLocatorsByLocations, - packageRegistry - }; -} - -const ArrayIsArray = Array.isArray; -const JSONStringify = JSON.stringify; -const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; -const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); -const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); -const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); -const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); -const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); -const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); -const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); -const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); -const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); -const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); -const SafeMap = Map; -const JSONParse = JSON.parse; - -function createErrorType(code, messageCreator, errorType) { - return class extends errorType { - constructor(...args) { - super(messageCreator(...args)); - this.code = code; - this.name = `${errorType.name} [${code}]`; - } - }; -} -const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( - `ERR_PACKAGE_IMPORT_NOT_DEFINED`, - (specifier, packagePath, base) => { - return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; - }, - TypeError -); -const ERR_INVALID_MODULE_SPECIFIER = createErrorType( - `ERR_INVALID_MODULE_SPECIFIER`, - (request, reason, base = void 0) => { - return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; - }, - TypeError -); -const ERR_INVALID_PACKAGE_TARGET = createErrorType( - `ERR_INVALID_PACKAGE_TARGET`, - (pkgPath, key, target, isImport = false, base = void 0) => { - const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); - if (key === `.`) { - assert__default.default(isImport === false); - return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - } - return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( - target - )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - }, - Error -); -const ERR_INVALID_PACKAGE_CONFIG = createErrorType( - `ERR_INVALID_PACKAGE_CONFIG`, - (path, base, message) => { - return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; - }, - Error -); -const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( - "ERR_PACKAGE_PATH_NOT_EXPORTED", - (pkgPath, subpath, base = void 0) => { - if (subpath === ".") - return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - }, - Error -); - -function filterOwnProperties(source, keys) { - const filtered = /* @__PURE__ */ Object.create(null); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (ObjectPrototypeHasOwnProperty(source, key)) { - filtered[key] = source[key]; - } - } - return filtered; -} - -const packageJSONCache = new SafeMap(); -function getPackageConfig(path, specifier, base, readFileSyncFn) { - const existing = packageJSONCache.get(path); - if (existing !== void 0) { - return existing; - } - const source = readFileSyncFn(path); - if (source === void 0) { - const packageConfig2 = { - pjsonPath: path, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(path, packageConfig2); - return packageConfig2; - } - let packageJSON; - try { - packageJSON = JSONParse(source); - } catch (error) { - throw new ERR_INVALID_PACKAGE_CONFIG( - path, - (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier), - error.message - ); - } - let { imports, main, name, type } = filterOwnProperties(packageJSON, [ - "imports", - "main", - "name", - "type" - ]); - const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; - if (typeof imports !== "object" || imports === null) { - imports = void 0; - } - if (typeof main !== "string") { - main = void 0; - } - if (typeof name !== "string") { - name = void 0; - } - if (type !== "module" && type !== "commonjs") { - type = "none"; - } - const packageConfig = { - pjsonPath: path, - exists: true, - main, - name, - type, - exports, - imports - }; - packageJSONCache.set(path, packageConfig); - return packageConfig; -} -function getPackageScopeConfig(resolved, readFileSyncFn) { - let packageJSONUrl = new URL("./package.json", resolved); - while (true) { - const packageJSONPath2 = packageJSONUrl.pathname; - if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { - break; - } - const packageConfig2 = getPackageConfig( - url.fileURLToPath(packageJSONUrl), - resolved, - void 0, - readFileSyncFn - ); - if (packageConfig2.exists) { - return packageConfig2; - } - const lastPackageJSONUrl = packageJSONUrl; - packageJSONUrl = new URL("../package.json", packageJSONUrl); - if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { - break; - } - } - const packageJSONPath = url.fileURLToPath(packageJSONUrl); - const packageConfig = { - pjsonPath: packageJSONPath, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(packageJSONPath, packageConfig); - return packageConfig; -} - -function throwImportNotDefined(specifier, packageJSONUrl, base) { - throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( - specifier, - packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)), - url.fileURLToPath(base) - ); -} -function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { - const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`; - throw new ERR_INVALID_MODULE_SPECIFIER( - subpath, - reason, - base && url.fileURLToPath(base) - ); -} -function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { - if (typeof target === "object" && target !== null) { - target = JSONStringify(target, null, ""); - } else { - target = `${target}`; - } - throw new ERR_INVALID_PACKAGE_TARGET( - url.fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - target, - internal, - base && url.fileURLToPath(base) - ); -} -const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; -const patternRegEx = /\*/g; -function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { - if (subpath !== "" && !pattern && target[target.length - 1] !== "/") - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (!StringPrototypeStartsWith(target, "./")) { - if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { - let isURL = false; - try { - new URL(target); - isURL = true; - } catch { - } - if (!isURL) { - const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; - return exportTarget; - } - } - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - } - if (RegExpPrototypeExec( - invalidSegmentRegEx, - StringPrototypeSlice(target, 2) - ) !== null) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - const resolved = new URL(target, packageJSONUrl); - const resolvedPath = resolved.pathname; - const packagePath = new URL(".", packageJSONUrl).pathname; - if (!StringPrototypeStartsWith(resolvedPath, packagePath)) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (subpath === "") return resolved; - if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { - const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; - throwInvalidSubpath(request, packageJSONUrl, internal, base); - } - if (pattern) { - return new URL( - RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) - ); - } - return new URL(subpath, resolved); -} -function isArrayIndex(key) { - const keyNum = +key; - if (`${keyNum}` !== key) return false; - return keyNum >= 0 && keyNum < 4294967295; -} -function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { - if (typeof target === "string") { - return resolvePackageTargetString( - target, - subpath, - packageSubpath, - packageJSONUrl, - base, - pattern, - internal); - } else if (ArrayIsArray(target)) { - if (target.length === 0) { - return null; - } - let lastException; - for (let i = 0; i < target.length; i++) { - const targetItem = target[i]; - let resolveResult; - try { - resolveResult = resolvePackageTarget( - packageJSONUrl, - targetItem, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - } catch (e) { - lastException = e; - if (e.code === "ERR_INVALID_PACKAGE_TARGET") { - continue; - } - throw e; - } - if (resolveResult === void 0) { - continue; - } - if (resolveResult === null) { - lastException = null; - continue; - } - return resolveResult; - } - if (lastException === void 0 || lastException === null) - return lastException; - throw lastException; - } else if (typeof target === "object" && target !== null) { - const keys = ObjectGetOwnPropertyNames(target); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (isArrayIndex(key)) { - throw new ERR_INVALID_PACKAGE_CONFIG( - url.fileURLToPath(packageJSONUrl), - base, - '"exports" cannot contain numeric property keys.' - ); - } - } - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (key === "default" || conditions.has(key)) { - const conditionalTarget = target[key]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - conditionalTarget, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - if (resolveResult === void 0) continue; - return resolveResult; - } - } - return void 0; - } else if (target === null) { - return null; - } - throwInvalidPackageTarget( - packageSubpath, - target, - packageJSONUrl, - internal, - base - ); -} -function patternKeyCompare(a, b) { - const aPatternIndex = StringPrototypeIndexOf(a, "*"); - const bPatternIndex = StringPrototypeIndexOf(b, "*"); - const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) return -1; - if (baseLenB > baseLenA) return 1; - if (aPatternIndex === -1) return 1; - if (bPatternIndex === -1) return -1; - if (a.length > b.length) return -1; - if (b.length > a.length) return 1; - return 0; -} -function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { - if (typeof exports === "string" || ArrayIsArray(exports)) return true; - if (typeof exports !== "object" || exports === null) return false; - const keys = ObjectGetOwnPropertyNames(exports); - let isConditionalSugar = false; - let i = 0; - for (let j = 0; j < keys.length; j++) { - const key = keys[j]; - const curIsConditionalSugar = key === "" || key[0] !== "."; - if (i++ === 0) { - isConditionalSugar = curIsConditionalSugar; - } else if (isConditionalSugar !== curIsConditionalSugar) { - throw new ERR_INVALID_PACKAGE_CONFIG( - url.fileURLToPath(packageJSONUrl), - base, - `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` - ); - } - } - return isConditionalSugar; -} -function throwExportsNotFound(subpath, packageJSONUrl, base) { - throw new ERR_PACKAGE_PATH_NOT_EXPORTED( - url.fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - base && url.fileURLToPath(base) - ); -} -const emittedPackageWarnings = /* @__PURE__ */ new Set(); -function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { - const pjsonPath = url.fileURLToPath(pjsonUrl); - if (emittedPackageWarnings.has(pjsonPath + "|" + match)) return; - emittedPackageWarnings.add(pjsonPath + "|" + match); - process.emitWarning( - `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, - "DeprecationWarning", - "DEP0155" - ); -} -function packageExportsResolve({ - packageJSONUrl, - packageSubpath, - exports, - base, - conditions -}) { - if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) - exports = { ".": exports }; - if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) { - const target = exports[packageSubpath]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - "", - packageSubpath, - base, - false, - false, - conditions - ); - if (resolveResult == null) { - throwExportsNotFound(packageSubpath, packageJSONUrl, base); - } - return resolveResult; - } - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(exports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - packageSubpath, - StringPrototypeSlice(key, 0, patternIndex) - )) { - if (StringPrototypeEndsWith(packageSubpath, "/")) - emitTrailingSlashPatternDeprecation( - packageSubpath, - packageJSONUrl, - base - ); - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - packageSubpath, - patternIndex, - packageSubpath.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = exports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - false, - conditions - ); - if (resolveResult == null) { - throwExportsNotFound(packageSubpath, packageJSONUrl, base); - } - return resolveResult; - } - throwExportsNotFound(packageSubpath, packageJSONUrl, base); -} -function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { - if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { - const reason = "is not a valid internal imports specifier name"; - throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); - } - let packageJSONUrl; - const packageConfig = getPackageScopeConfig(base, readFileSyncFn); - if (packageConfig.exists) { - packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath); - const imports = packageConfig.imports; - if (imports) { - if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { - const resolveResult = resolvePackageTarget( - packageJSONUrl, - imports[name], - "", - name, - base, - false, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } else { - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(imports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - name, - StringPrototypeSlice(key, 0, patternIndex) - )) { - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - name, - patternIndex, - name.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = imports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } - } - } - } - throwImportNotDefined(name, packageJSONUrl, base); -} - -const flagSymbol = Symbol('arg flag'); - -class ArgError extends Error { - constructor(msg, code) { - super(msg); - this.name = 'ArgError'; - this.code = code; - - Object.setPrototypeOf(this, ArgError.prototype); - } -} - -function arg( - opts, - { - argv = process.argv.slice(2), - permissive = false, - stopAtPositional = false - } = {} -) { - if (!opts) { - throw new ArgError( - 'argument specification object is required', - 'ARG_CONFIG_NO_SPEC' - ); - } - - const result = { _: [] }; - - const aliases = {}; - const handlers = {}; - - for (const key of Object.keys(opts)) { - if (!key) { - throw new ArgError( - 'argument key cannot be an empty string', - 'ARG_CONFIG_EMPTY_KEY' - ); - } - - if (key[0] !== '-') { - throw new ArgError( - `argument key must start with '-' but found: '${key}'`, - 'ARG_CONFIG_NONOPT_KEY' - ); - } - - if (key.length === 1) { - throw new ArgError( - `argument key must have a name; singular '-' keys are not allowed: ${key}`, - 'ARG_CONFIG_NONAME_KEY' - ); - } - - if (typeof opts[key] === 'string') { - aliases[key] = opts[key]; - continue; - } - - let type = opts[key]; - let isFlag = false; - - if ( - Array.isArray(type) && - type.length === 1 && - typeof type[0] === 'function' - ) { - const [fn] = type; - type = (value, name, prev = []) => { - prev.push(fn(value, name, prev[prev.length - 1])); - return prev; - }; - isFlag = fn === Boolean || fn[flagSymbol] === true; - } else if (typeof type === 'function') { - isFlag = type === Boolean || type[flagSymbol] === true; - } else { - throw new ArgError( - `type missing or not a function or valid array type: ${key}`, - 'ARG_CONFIG_VAD_TYPE' - ); - } - - if (key[1] !== '-' && key.length > 2) { - throw new ArgError( - `short argument keys (with a single hyphen) must have only one character: ${key}`, - 'ARG_CONFIG_SHORTOPT_TOOLONG' - ); - } - - handlers[key] = [type, isFlag]; - } - - for (let i = 0, len = argv.length; i < len; i++) { - const wholeArg = argv[i]; - - if (stopAtPositional && result._.length > 0) { - result._ = result._.concat(argv.slice(i)); - break; - } - - if (wholeArg === '--') { - result._ = result._.concat(argv.slice(i + 1)); - break; - } - - if (wholeArg.length > 1 && wholeArg[0] === '-') { - /* eslint-disable operator-linebreak */ - const separatedArguments = - wholeArg[1] === '-' || wholeArg.length === 2 - ? [wholeArg] - : wholeArg - .slice(1) - .split('') - .map((a) => `-${a}`); - /* eslint-enable operator-linebreak */ - - for (let j = 0; j < separatedArguments.length; j++) { - const arg = separatedArguments[j]; - const [originalArgName, argStr] = - arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined]; - - let argName = originalArgName; - while (argName in aliases) { - argName = aliases[argName]; - } - - if (!(argName in handlers)) { - if (permissive) { - result._.push(arg); - continue; - } else { - throw new ArgError( - `unknown or unexpected option: ${originalArgName}`, - 'ARG_UNKNOWN_OPTION' - ); - } - } - - const [type, isFlag] = handlers[argName]; - - if (!isFlag && j + 1 < separatedArguments.length) { - throw new ArgError( - `option requires argument (but was followed by another short argument): ${originalArgName}`, - 'ARG_MISSING_REQUIRED_SHORTARG' - ); - } - - if (isFlag) { - result[argName] = type(true, argName, result[argName]); - } else if (argStr === undefined) { - if ( - argv.length < i + 2 || - (argv[i + 1].length > 1 && - argv[i + 1][0] === '-' && - !( - argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && - (type === Number || - // eslint-disable-next-line no-undef - (typeof BigInt !== 'undefined' && type === BigInt)) - )) - ) { - const extended = - originalArgName === argName ? '' : ` (alias for ${argName})`; - throw new ArgError( - `option requires argument: ${originalArgName}${extended}`, - 'ARG_MISSING_REQUIRED_LONGARG' - ); - } - - result[argName] = type(argv[i + 1], argName, result[argName]); - ++i; - } else { - result[argName] = type(argStr, argName, result[argName]); - } - } - } else { - result._.push(wholeArg); - } - } - - return result; -} - -arg.flag = (fn) => { - fn[flagSymbol] = true; - return fn; -}; - -// Utility types -arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1); - -// Expose error class -arg.ArgError = ArgError; - -var arg_1 = arg; - -/** - @license - The MIT License (MIT) - - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ -function getOptionValue(opt) { - parseOptions(); - return options[opt]; -} -let options; -function parseOptions() { - if (!options) { - options = { - "--conditions": [], - ...parseArgv(getNodeOptionsEnvArgv()), - ...parseArgv(process.execArgv) - }; - } -} -function parseArgv(argv) { - return arg_1( - { - "--conditions": [String], - "-C": "--conditions" - }, - { - argv, - permissive: true - } - ); -} -function getNodeOptionsEnvArgv() { - const errors = []; - const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors); - if (errors.length !== 0) ; - return envArgv; -} -function ParseNodeOptionsEnvVar(node_options, errors) { - const env_argv = []; - let is_in_string = false; - let will_start_new_arg = true; - for (let index = 0; index < node_options.length; ++index) { - let c = node_options[index]; - if (c === "\\" && is_in_string) { - if (index + 1 === node_options.length) { - errors.push("invalid value for NODE_OPTIONS (invalid escape)\n"); - return env_argv; - } else { - c = node_options[++index]; - } - } else if (c === " " && !is_in_string) { - will_start_new_arg = true; - continue; - } else if (c === '"') { - is_in_string = !is_in_string; - continue; - } - if (will_start_new_arg) { - env_argv.push(c); - will_start_new_arg = false; - } else { - env_argv[env_argv.length - 1] += c; - } - } - if (is_in_string) { - errors.push("invalid value for NODE_OPTIONS (unterminated string)\n"); - } - return env_argv; -} - -function makeApi(runtimeState, opts) { - const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; - const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; - const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; - const isDirRegExp = /\/$/; - const isRelativeRegexp = /^\.{0,2}\//; - const topLevelLocator = { name: null, reference: null }; - const fallbackLocators = []; - const emittedWarnings = /* @__PURE__ */ new Set(); - if (runtimeState.enableTopLevelFallback === true) - fallbackLocators.push(topLevelLocator); - if (opts.compatibilityMode !== false) { - for (const name of [`react-scripts`, `gatsby`]) { - const packageStore = runtimeState.packageRegistry.get(name); - if (packageStore) { - for (const reference of packageStore.keys()) { - if (reference === null) { - throw new Error(`Assertion failed: This reference shouldn't be null`); - } else { - fallbackLocators.push({ name, reference }); - } - } - } - } - } - const { - ignorePattern, - packageRegistry, - packageLocatorsByLocations - } = runtimeState; - function makeLogEntry(name, args) { - return { - fn: name, - args, - error: null, - result: null - }; - } - function trace(entry) { - const colors = process.stderr?.hasColors?.() ?? process.stdout.isTTY; - const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`; - const error = entry.error; - if (error) - console.error(c(`31;1`, `\u2716 ${entry.error?.message.replace(/\n.*/s, ``)}`)); - else - console.error(c(`33;1`, `\u203C Resolution`)); - if (entry.args.length > 0) - console.error(); - for (const arg of entry.args) - console.error(` ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`); - if (entry.result) { - console.error(); - console.error(` ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`); - } - const stack = new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2) ?? []; - if (stack.length > 0) { - console.error(); - for (const line of stack) { - console.error(` ${c(`38;5;244`, line)}`); - } - } - console.error(); - } - function maybeLog(name, fn) { - if (opts.allowDebug === false) - return fn; - if (Number.isFinite(debugLevel)) { - if (debugLevel >= 2) { - return (...args) => { - const logEntry = makeLogEntry(name, args); - try { - return logEntry.result = fn(...args); - } catch (error) { - throw logEntry.error = error; - } finally { - trace(logEntry); - } - }; - } else if (debugLevel >= 1) { - return (...args) => { - try { - return fn(...args); - } catch (error) { - const logEntry = makeLogEntry(name, args); - logEntry.error = error; - trace(logEntry); - throw error; - } - }; - } - } - return fn; - } - function getPackageInformationSafe(packageLocator) { - const packageInformation = getPackageInformation(packageLocator); - if (!packageInformation) { - throw makeError( - ErrorCode.INTERNAL, - `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)` - ); - } - return packageInformation; - } - function isDependencyTreeRoot(packageLocator) { - if (packageLocator.name === null) - return true; - for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) - if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) - return true; - return false; - } - const defaultExportsConditions = /* @__PURE__ */ new Set([ - `node`, - `require`, - ...getOptionValue(`--conditions`) - ]); - function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) { - const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { - resolveIgnored: true, - includeDiscardFromLookup: true - }); - if (locator === null) { - throw makeError( - ErrorCode.INTERNAL, - `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)` - ); - } - const { packageLocation } = getPackageInformationSafe(locator); - const manifestPath = ppath.join(packageLocation, Filename.manifest); - if (!opts.fakeFs.existsSync(manifestPath)) - return null; - const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); - if (pkgJson.exports == null) - return null; - let subpath = ppath.contains(packageLocation, unqualifiedPath); - if (subpath === null) { - throw makeError( - ErrorCode.INTERNAL, - `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` - ); - } - if (subpath !== `.` && !isRelativeRegexp.test(subpath)) - subpath = `./${subpath}`; - try { - const resolvedExport = packageExportsResolve({ - packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)), - packageSubpath: subpath, - exports: pkgJson.exports, - base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null, - conditions - }); - return npath.toPortablePath(url.fileURLToPath(resolvedExport)); - } catch (error) { - throw makeError( - ErrorCode.EXPORTS_RESOLUTION_FAILED, - error.message, - { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, - error.code - ); - } - } - function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { - let stat; - try { - candidates.push(unqualifiedPath); - stat = opts.fakeFs.statSync(unqualifiedPath); - } catch (error) { - } - if (stat && !stat.isDirectory()) - return opts.fakeFs.realpathSync(unqualifiedPath); - if (stat && stat.isDirectory()) { - let pkgJson; - try { - pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`)); - } catch (error) { - } - let nextUnqualifiedPath; - if (pkgJson && pkgJson.main) - nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); - if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { - const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions }); - if (resolution !== null) { - return resolution; - } - } - } - for (let i = 0, length = extensions.length; i < length; i++) { - const candidateFile = `${unqualifiedPath}${extensions[i]}`; - candidates.push(candidateFile); - if (opts.fakeFs.existsSync(candidateFile)) { - return candidateFile; - } - } - if (stat && stat.isDirectory()) { - for (let i = 0, length = extensions.length; i < length; i++) { - const candidateFile = ppath.format({ dir: unqualifiedPath, name: `index`, ext: extensions[i] }); - candidates.push(candidateFile); - if (opts.fakeFs.existsSync(candidateFile)) { - return candidateFile; - } - } - } - return null; - } - function makeFakeModule(path) { - const fakeModule = new require$$0.Module(path, null); - fakeModule.filename = path; - fakeModule.paths = require$$0.Module._nodeModulePaths(path); - return fakeModule; - } - function callNativeResolution(request, issuer) { - if (issuer.endsWith(`/`)) - issuer = ppath.join(issuer, `internal.js`); - return require$$0.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { plugnplay: false }); - } - function isPathIgnored(path) { - if (ignorePattern === null) - return false; - const subPath = ppath.contains(runtimeState.basePath, path); - if (subPath === null) - return false; - if (ignorePattern.test(subPath.replace(/\/$/, ``))) { - return true; - } else { - return false; - } - } - const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 }; - const topLevel = topLevelLocator; - function getPackageInformation({ name, reference }) { - const packageInformationStore = packageRegistry.get(name); - if (!packageInformationStore) - return null; - const packageInformation = packageInformationStore.get(reference); - if (!packageInformation) - return null; - return packageInformation; - } - function findPackageDependents({ name, reference }) { - const dependents = []; - for (const [dependentName, packageInformationStore] of packageRegistry) { - if (dependentName === null) - continue; - for (const [dependentReference, packageInformation] of packageInformationStore) { - if (dependentReference === null) - continue; - const dependencyReference = packageInformation.packageDependencies.get(name); - if (dependencyReference !== reference) - continue; - if (dependentName === name && dependentReference === reference) - continue; - dependents.push({ - name: dependentName, - reference: dependentReference - }); - } - } - return dependents; - } - function findBrokenPeerDependencies(dependency, initialPackage) { - const brokenPackages = /* @__PURE__ */ new Map(); - const alreadyVisited = /* @__PURE__ */ new Set(); - const traversal = (currentPackage) => { - const identifier = JSON.stringify(currentPackage.name); - if (alreadyVisited.has(identifier)) - return; - alreadyVisited.add(identifier); - const dependents = findPackageDependents(currentPackage); - for (const dependent of dependents) { - const dependentInformation = getPackageInformationSafe(dependent); - if (dependentInformation.packagePeers.has(dependency)) { - traversal(dependent); - } else { - let brokenSet = brokenPackages.get(dependent.name); - if (typeof brokenSet === `undefined`) - brokenPackages.set(dependent.name, brokenSet = /* @__PURE__ */ new Set()); - brokenSet.add(dependent.reference); - } - } - }; - traversal(initialPackage); - const brokenList = []; - for (const name of [...brokenPackages.keys()].sort()) - for (const reference of [...brokenPackages.get(name)].sort()) - brokenList.push({ name, reference }); - return brokenList; - } - function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) { - if (isPathIgnored(location) && !resolveIgnored) - return null; - let relativeLocation = ppath.relative(runtimeState.basePath, location); - if (!relativeLocation.match(isStrictRegExp)) - relativeLocation = `./${relativeLocation}`; - if (!relativeLocation.endsWith(`/`)) - relativeLocation = `${relativeLocation}/`; - do { - const entry = packageLocatorsByLocations.get(relativeLocation); - if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) { - relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1); - continue; - } - return entry.locator; - } while (relativeLocation !== ``); - return null; - } - function tryReadFile(filePath) { - try { - return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`); - } catch (err) { - if (err.code === `ENOENT`) - return void 0; - throw err; - } - } - function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) { - if (request.startsWith(`#`)) - throw new Error(`resolveToUnqualified can not handle private import mappings`); - if (request === `pnpapi`) - return npath.toPortablePath(opts.pnpapiResolution); - if (considerBuiltins && require$$0.isBuiltin(request)) - return null; - const requestForDisplay = getPathForDisplay(request); - const issuerForDisplay = issuer && getPathForDisplay(issuer); - if (issuer && isPathIgnored(issuer)) { - if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { - const result = callNativeResolution(request, issuer); - if (result === false) { - throw makeError( - ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, - `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${requestForDisplay}" -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - return npath.toPortablePath(result); - } - } - let unqualifiedPath; - const dependencyNameMatch = request.match(pathRegExp); - if (!dependencyNameMatch) { - if (ppath.isAbsolute(request)) { - unqualifiedPath = ppath.normalize(request); - } else { - if (!issuer) { - throw makeError( - ErrorCode.API_ERROR, - `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - const absoluteIssuer = ppath.resolve(issuer); - if (issuer.match(isDirRegExp)) { - unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request)); - } else { - unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request)); - } - } - } else { - if (!issuer) { - throw makeError( - ErrorCode.API_ERROR, - `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - const [, dependencyName, subPath] = dependencyNameMatch; - const issuerLocator = findPackageLocator(issuer); - if (!issuerLocator) { - const result = callNativeResolution(request, issuer); - if (result === false) { - throw makeError( - ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, - `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${requestForDisplay}" -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - return npath.toPortablePath(result); - } - const issuerInformation = getPackageInformationSafe(issuerLocator); - let dependencyReference = issuerInformation.packageDependencies.get(dependencyName); - let fallbackReference = null; - if (dependencyReference == null) { - if (issuerLocator.name !== null) { - const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name); - const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference); - if (canUseFallbacks) { - for (let t = 0, T = fallbackLocators.length; t < T; ++t) { - const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]); - const reference = fallbackInformation.packageDependencies.get(dependencyName); - if (reference == null) - continue; - if (alwaysWarnOnFallback) - fallbackReference = reference; - else - dependencyReference = reference; - break; - } - if (runtimeState.enableTopLevelFallback) { - if (dependencyReference == null && fallbackReference === null) { - const reference = runtimeState.fallbackPool.get(dependencyName); - if (reference != null) { - fallbackReference = reference; - } - } - } - } - } - } - let error = null; - if (dependencyReference === null) { - if (isDependencyTreeRoot(issuerLocator)) { - error = makeError( - ErrorCode.MISSING_PEER_DEPENDENCY, - `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator); - if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) { - error = makeError( - ErrorCode.MISSING_PEER_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} -`).join(``)} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } - ); - } else { - error = makeError( - ErrorCode.MISSING_PEER_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) - -${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} -`).join(``)} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } - ); - } - } - } else if (dependencyReference === void 0) { - if (!considerBuiltins && require$$0.isBuiltin(request)) { - if (isDependencyTreeRoot(issuerLocator)) { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } - ); - } - } else { - if (isDependencyTreeRoot(issuerLocator)) { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } - ); - } - } - } - if (dependencyReference == null) { - if (fallbackReference === null || error === null) - throw error || new Error(`Assertion failed: Expected an error to have been set`); - dependencyReference = fallbackReference; - const message = error.message.replace(/\n.*/g, ``); - error.message = message; - if (!emittedWarnings.has(message) && debugLevel !== 0) { - emittedWarnings.add(message); - process.emitWarning(error); - } - } - const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference }; - const dependencyInformation = getPackageInformationSafe(dependencyLocator); - if (!dependencyInformation.packageLocation) { - throw makeError( - ErrorCode.MISSING_DEPENDENCY, - `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) } - ); - } - const dependencyLocation = dependencyInformation.packageLocation; - if (subPath) { - unqualifiedPath = ppath.join(dependencyLocation, subPath); - } else { - unqualifiedPath = dependencyLocation; - } - } - return ppath.normalize(unqualifiedPath); - } - function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) { - if (isStrictRegExp.test(request)) - return unqualifiedPath; - const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer); - if (unqualifiedExportPath) { - return ppath.normalize(unqualifiedExportPath); - } else { - return unqualifiedPath; - } - } - function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) { - const candidates = []; - const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }); - if (qualifiedPath) { - return ppath.normalize(qualifiedPath); - } else { - reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); - const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); - const containingPackage = findPackageLocator(unqualifiedPath); - if (containingPackage) { - const { packageLocation } = getPackageInformationSafe(containingPackage); - let exists = true; - try { - opts.fakeFs.accessSync(packageLocation); - } catch (err) { - if (err?.code === `ENOENT`) { - exists = false; - } else { - const readableError = (err?.message ?? err ?? `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase()); - throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}). - -Missing package: ${containingPackage.name}@${containingPackage.reference} -Expected package location: ${getPathForDisplay(packageLocation)} -`, { unqualifiedPath: unqualifiedPathForDisplay, extensions }); - } - } - if (!exists) { - const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`; - throw makeError( - ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, - `${errorMessage} - -Missing package: ${containingPackage.name}@${containingPackage.reference} -Expected package location: ${getPathForDisplay(packageLocation)} -`, - { unqualifiedPath: unqualifiedPathForDisplay, extensions } - ); - } - } - throw makeError( - ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, - `Qualified path resolution failed: we looked for the following paths, but none could be accessed. - -Source path: ${unqualifiedPathForDisplay} -${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} -`).join(``)}`, - { unqualifiedPath: unqualifiedPathForDisplay, extensions } - ); - } - } - function resolvePrivateRequest(request, issuer, opts2) { - if (!issuer) - throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`); - const resolved = packageImportsResolve({ - name: request, - base: url.pathToFileURL(npath.fromPortablePath(issuer)), - conditions: opts2.conditions ?? defaultExportsConditions, - readFileSyncFn: tryReadFile - }); - if (resolved instanceof URL) { - return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); - } else { - if (resolved.startsWith(`#`)) - throw new Error(`Mapping from one private import to another isn't allowed`); - return resolveRequest(resolved, issuer, opts2); - } - } - function resolveRequest(request, issuer, opts2 = {}) { - try { - if (request.startsWith(`#`)) - return resolvePrivateRequest(request, issuer, opts2); - const { considerBuiltins, extensions, conditions } = opts2; - const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins }); - if (request === `pnpapi`) - return unqualifiedPath; - if (unqualifiedPath === null) - return null; - const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; - const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; - return resolveUnqualified(remappedPath, { extensions }); - } catch (error) { - if (Object.hasOwn(error, `pnpCode`)) - Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) }); - throw error; - } - } - function resolveVirtual(request) { - const normalized = ppath.normalize(request); - const resolved = VirtualFS.resolveVirtual(normalized); - return resolved !== normalized ? resolved : null; - } - return { - VERSIONS, - topLevel, - getLocator: (name, referencish) => { - if (Array.isArray(referencish)) { - return { name: referencish[0], reference: referencish[1] }; - } else { - return { name, reference: referencish }; - } - }, - getDependencyTreeRoots: () => { - return [...runtimeState.dependencyTreeRoots]; - }, - getAllLocators() { - const locators = []; - for (const [name, entry] of packageRegistry) - for (const reference of entry.keys()) - if (name !== null && reference !== null) - locators.push({ name, reference }); - return locators; - }, - getPackageInformation: (locator) => { - const info = getPackageInformation(locator); - if (info === null) - return null; - const packageLocation = npath.fromPortablePath(info.packageLocation); - const nativeInfo = { ...info, packageLocation }; - return nativeInfo; - }, - findPackageLocator: (path) => { - return findPackageLocator(npath.toPortablePath(path)); - }, - resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts2) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2); - if (resolution === null) - return null; - return npath.fromPortablePath(resolution); - }), - resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => { - return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2)); - }), - resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2); - if (resolution === null) - return null; - return npath.fromPortablePath(resolution); - }), - resolveVirtual: maybeLog(`resolveVirtual`, (path) => { - const result = resolveVirtual(npath.toPortablePath(path)); - if (result !== null) { - return npath.fromPortablePath(result); - } else { - return null; - } - }) - }; -} - -function makeManager(pnpapi, opts) { - const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); - const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); - const apiMetadata = /* @__PURE__ */ new Map([ - [initialApiPath, { - instance: pnpapi, - stats: initialApiStats, - lastRefreshCheck: Date.now() - }] - ]); - function loadApiInstance(pnpApiPath) { - const nativePath = npath.fromPortablePath(pnpApiPath); - const module = new require$$0.Module(nativePath, null); - module.load(nativePath); - return module.exports; - } - function refreshApiEntry(pnpApiPath, apiEntry) { - const timeNow = Date.now(); - if (timeNow - apiEntry.lastRefreshCheck < 500) - return; - apiEntry.lastRefreshCheck = timeNow; - const stats = opts.fakeFs.statSync(pnpApiPath); - if (stats.mtime > apiEntry.stats.mtime) { - process.emitWarning(`[Warning] The runtime detected new information in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`); - apiEntry.stats = stats; - apiEntry.instance = loadApiInstance(pnpApiPath); - } - } - function getApiEntry(pnpApiPath, refresh = false) { - let apiEntry = apiMetadata.get(pnpApiPath); - if (typeof apiEntry !== `undefined`) { - if (refresh) { - refreshApiEntry(pnpApiPath, apiEntry); - } - } else { - apiMetadata.set(pnpApiPath, apiEntry = { - instance: loadApiInstance(pnpApiPath), - stats: opts.fakeFs.statSync(pnpApiPath), - lastRefreshCheck: Date.now() - }); - } - return apiEntry; - } - const findApiPathCache = /* @__PURE__ */ new Map(); - function addToCacheAndReturn(start, end, target) { - if (target !== null) { - target = VirtualFS.resolveVirtual(target); - target = opts.fakeFs.realpathSync(target); - } - let curr; - let next = start; - do { - curr = next; - findApiPathCache.set(curr, target); - next = ppath.dirname(curr); - } while (curr !== end); - return target; - } - function findApiPathFor(modulePath) { - let bestCandidate = null; - for (const [apiPath, apiEntry] of apiMetadata) { - const locator = apiEntry.instance.findPackageLocator(modulePath); - if (!locator) - continue; - if (apiMetadata.size === 1) - return apiPath; - const packageInformation = apiEntry.instance.getPackageInformation(locator); - if (!packageInformation) - throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`); - if (!bestCandidate) - bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] }; - if (packageInformation.packageLocation === bestCandidate.packageLocation) { - bestCandidate.apiPaths.push(apiPath); - } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) { - bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] }; - } - } - if (bestCandidate) { - if (bestCandidate.apiPaths.length === 1) - return bestCandidate.apiPaths[0]; - const controlSegment = bestCandidate.apiPaths.map((apiPath) => ` ${npath.fromPortablePath(apiPath)}`).join(` -`); - throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances. -This is usually caused by using the global cache (enableGlobalCache: true) - -Controlled by: -${controlSegment} -`); - } - const start = ppath.resolve(npath.toPortablePath(modulePath)); - let curr; - let next = start; - do { - curr = next; - const cached = findApiPathCache.get(curr); - if (cached !== void 0) - return addToCacheAndReturn(start, curr, cached); - const cjsCandidate = ppath.join(curr, Filename.pnpCjs); - if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile()) - return addToCacheAndReturn(start, curr, cjsCandidate); - const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs); - if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile()) - return addToCacheAndReturn(start, curr, legacyCjsCandidate); - next = ppath.dirname(curr); - } while (curr !== PortablePath.root); - return addToCacheAndReturn(start, curr, null); - } - const moduleToApiPathCache = /* @__PURE__ */ new WeakMap(); - function getApiPathFromParent(parent) { - if (parent == null) - return initialApiPath; - let apiPath = moduleToApiPathCache.get(parent); - if (typeof apiPath !== `undefined`) - return apiPath; - apiPath = parent.filename ? findApiPathFor(parent.filename) : null; - moduleToApiPathCache.set(parent, apiPath); - return apiPath; - } - return { - getApiPathFromParent, - findApiPathFor, - getApiEntry - }; -} - -const localFs = { ...fs__default.default }; -const nodeFs = new NodeFS(localFs); -const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); -const defaultPnpapiResolution = __filename; -const defaultFsLayer = new VirtualFS({ - baseFs: new ZipOpenFS({ - baseFs: nodeFs, - maxOpenFiles: 80, - readOnlyArchives: true - }) -}); -class DynamicFS extends ProxiedFS { - baseFs = defaultFsLayer; - constructor() { - super(ppath); - } - mapToBase(p) { - return p; - } - mapFromBase(p) { - return p; - } -} -const dynamicFsLayer = new DynamicFS(); -let manager; -const defaultApi = Object.assign(makeApi(defaultRuntimeState, { - fakeFs: dynamicFsLayer, - pnpapiResolution: defaultPnpapiResolution -}), { - /** - * Can be used to generate a different API than the default one (for example - * to map it on `/` rather than the local directory path, or to use a - * different FS layer than the default one). - */ - makeApi: ({ - basePath = void 0, - fakeFs = dynamicFsLayer, - pnpapiResolution = defaultPnpapiResolution, - ...rest - }) => { - const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState; - return makeApi(apiRuntimeState, { - fakeFs, - pnpapiResolution, - ...rest - }); - }, - /** - * Will inject the specified API into the environment, monkey-patching FS. Is - * automatically called when the hook is loaded through `--require`. - */ - setup: (api) => { - applyPatch(api || defaultApi, { - fakeFs: defaultFsLayer, - manager - }); - dynamicFsLayer.baseFs = new NodeFS(fs__default.default); - } -}); -manager = makeManager(defaultApi, { - fakeFs: dynamicFsLayer -}); -if (module.parent && module.parent.id === `internal/preload`) { - defaultApi.setup(); - if (module.filename) { - delete require$$0__default.default._cache[module.filename]; - } -} -if (process.mainModule === module) { - const reportError = (code, message, data) => { - process.stdout.write(`${JSON.stringify([{ code, message, data }, null])} -`); - }; - const reportSuccess = (resolution) => { - process.stdout.write(`${JSON.stringify([null, resolution])} -`); - }; - const processResolution = (request, issuer) => { - try { - reportSuccess(defaultApi.resolveRequest(request, issuer)); - } catch (error) { - reportError(error.code, error.message, error.data); - } - }; - const processRequest = (data) => { - try { - const [request, issuer] = JSON.parse(data); - processResolution(request, issuer); - } catch (error) { - reportError(`INVALID_JSON`, error.message, error.data); - } - }; - if (process.argv.length > 2) { - if (process.argv.length !== 4) { - process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} -`); - process.exitCode = 64; - } else { - processResolution(process.argv[2], process.argv[3]); - } - } else { - let buffer = ``; - const decoder = new StringDecoder__default.default.StringDecoder(); - process.stdin.on(`data`, (chunk) => { - buffer += decoder.write(chunk); - do { - const index = buffer.indexOf(` -`); - if (index === -1) - break; - const line = buffer.slice(0, index); - buffer = buffer.slice(index + 1); - processRequest(line); - } while (true); - }); - } -} - -module.exports = defaultApi; diff --git a/costs/.pnp.loader.mjs b/costs/.pnp.loader.mjs deleted file mode 100644 index e5a542909..000000000 --- a/costs/.pnp.loader.mjs +++ /dev/null @@ -1,2126 +0,0 @@ -/* eslint-disable */ -// @ts-nocheck - -import fs from 'fs'; -import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; -import path from 'path'; -import { createHash } from 'crypto'; -import { EOL } from 'os'; -import esmModule, { createRequire, isBuiltin } from 'module'; -import assert from 'assert'; - -const SAFE_TIME = 456789e3; - -const PortablePath = { - root: `/`, - dot: `.`, - parent: `..` -}; -const npath = Object.create(path); -const ppath = Object.create(path.posix); -npath.cwd = () => process.cwd(); -ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; -if (process.platform === `win32`) { - ppath.resolve = (...segments) => { - if (segments.length > 0 && ppath.isAbsolute(segments[0])) { - return path.posix.resolve(...segments); - } else { - return path.posix.resolve(ppath.cwd(), ...segments); - } - }; -} -const contains = function(pathUtils, from, to) { - from = pathUtils.normalize(from); - to = pathUtils.normalize(to); - if (from === to) - return `.`; - if (!from.endsWith(pathUtils.sep)) - from = from + pathUtils.sep; - if (to.startsWith(from)) { - return to.slice(from.length); - } else { - return null; - } -}; -npath.contains = (from, to) => contains(npath, from, to); -ppath.contains = (from, to) => contains(ppath, from, to); -const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; -const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; -const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; -const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; -function fromPortablePathWin32(p) { - let portablePathMatch, uncPortablePathMatch; - if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) - p = portablePathMatch[1]; - else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) - p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; - else - return p; - return p.replace(/\//g, `\\`); -} -function toPortablePathWin32(p) { - p = p.replace(/\\/g, `/`); - let windowsPathMatch, uncWindowsPathMatch; - if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) - p = `/${windowsPathMatch[1]}`; - else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) - p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; - return p; -} -const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; -const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; -npath.fromPortablePath = fromPortablePath; -npath.toPortablePath = toPortablePath; -function convertPath(targetPathUtils, sourcePath) { - return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); -} - -const defaultTime = new Date(SAFE_TIME * 1e3); -const defaultTimeMs = defaultTime.getTime(); -async function copyPromise(destinationFs, destination, sourceFs, source, opts) { - const normalizedDestination = destinationFs.pathUtils.normalize(destination); - const normalizedSource = sourceFs.pathUtils.normalize(source); - const prelayout = []; - const postlayout = []; - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); - await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); - await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); - for (const operation of prelayout) - await operation(); - await Promise.all(postlayout.map((operation) => { - return operation(); - })); -} -async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { - const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; - const sourceStat = await sourceFs.lstatPromise(source); - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; - let updated; - switch (true) { - case sourceStat.isDirectory(): - { - updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isFile(): - { - updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isSymbolicLink(): - { - updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - default: { - throw new Error(`Unsupported file type (${sourceStat.mode})`); - } - } - if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { - if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { - postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); - updated = true; - } - if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { - postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); - updated = true; - } - } - return updated; -} -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch (e) { - return null; - } -} -async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null && !destinationStat.isDirectory()) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - let updated = false; - if (destinationStat === null) { - prelayout.push(async () => { - try { - await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); - } catch (err) { - if (err.code !== `EEXIST`) { - throw err; - } - } - }); - updated = true; - } - const entries = await sourceFs.readdirPromise(source); - const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; - if (opts.stableSort) { - for (const entry of entries.sort()) { - if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { - updated = true; - } - } - } else { - const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { - await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); - })); - if (entriesUpdateStatus.some((status) => status)) { - updated = true; - } - } - return updated; -} -async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { - const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); - const defaultMode = 420; - const sourceMode = sourceStat.mode & 511; - const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; - const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); - let AtomicBehavior; - ((AtomicBehavior2) => { - AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; - AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; - })(AtomicBehavior || (AtomicBehavior = {})); - let atomicBehavior = 1 /* Rename */; - let indexStat = await maybeLStat(destinationFs, indexPath); - if (destinationStat) { - const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; - const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; - if (isDestinationHardlinkedFromIndex) { - if (isIndexModified && linkStrategy.autoRepair) { - atomicBehavior = 0 /* Lock */; - indexStat = null; - } - } - if (!isDestinationHardlinkedFromIndex) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - } - const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; - let tempPathCleaned = false; - prelayout.push(async () => { - if (!indexStat) { - if (atomicBehavior === 0 /* Lock */) { - await destinationFs.lockPromise(indexPath, async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(indexPath, content); - }); - } - if (atomicBehavior === 1 /* Rename */ && tempPath) { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(tempPath, content); - try { - await destinationFs.linkPromise(tempPath, indexPath); - } catch (err) { - if (err.code === `EEXIST`) { - tempPathCleaned = true; - await destinationFs.unlinkPromise(tempPath); - } else { - throw err; - } - } - } - } - if (!destinationStat) { - await destinationFs.linkPromise(indexPath, destination); - } - }); - postlayout.push(async () => { - if (!indexStat) { - await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); - if (sourceMode !== defaultMode) { - await destinationFs.chmodPromise(indexPath, sourceMode); - } - } - if (tempPath && !tempPathCleaned) { - await destinationFs.unlinkPromise(tempPath); - } - }); - return false; -} -async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(destination, content); - }); - return true; -} -async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (opts.linkStrategy?.type === `HardlinkFromIndex`) { - return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); - } else { - return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } -} -async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} - -class FakeFS { - pathUtils; - constructor(pathUtils) { - this.pathUtils = pathUtils; - } - async *genTraversePromise(init, { stableSort = false } = {}) { - const stack = [init]; - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); - if (stableSort) { - for (const entry2 of entries.sort()) { - stack.push(this.pathUtils.join(p, entry2)); - } - } else { - throw new Error(`Not supported`); - } - } else { - yield p; - } - } - } - async checksumFilePromise(path, { algorithm = `sha512` } = {}) { - const fd = await this.openPromise(path, `r`); - try { - const CHUNK_SIZE = 65536; - const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); - const hash = createHash(algorithm); - let bytesRead = 0; - while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) - hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); - return hash.digest(`hex`); - } finally { - await this.closePromise(fd); - } - } - async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { - let stat; - try { - stat = await this.lstatPromise(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) { - const entries = await this.readdirPromise(p); - await Promise.all(entries.map((entry) => { - return this.removePromise(this.pathUtils.resolve(p, entry)); - })); - } - for (let t = 0; t <= maxRetries; t++) { - try { - await this.rmdirPromise(p); - break; - } catch (error) { - if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { - throw error; - } else if (t < maxRetries) { - await new Promise((resolve) => setTimeout(resolve, t * 100)); - } - } - } - } else { - await this.unlinkPromise(p); - } - } - removeSync(p, { recursive = true } = {}) { - let stat; - try { - stat = this.lstatSync(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) - for (const entry of this.readdirSync(p)) - this.removeSync(this.pathUtils.resolve(p, entry)); - this.rmdirSync(p); - } else { - this.unlinkSync(p); - } - } - async mkdirpPromise(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - await this.mkdirPromise(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - await this.chmodPromise(subPath, chmod); - if (utimes != null) { - await this.utimesPromise(subPath, utimes[0], utimes[1]); - } else { - const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); - await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - mkdirpSync(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - this.mkdirSync(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - this.chmodSync(subPath, chmod); - if (utimes != null) { - this.utimesSync(subPath, utimes[0], utimes[1]); - } else { - const parentStat = this.statSync(this.pathUtils.dirname(subPath)); - this.utimesSync(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { - return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); - } - copySync(destination, source, { baseFs = this, overwrite = true } = {}) { - const stat = baseFs.lstatSync(source); - const exists = this.existsSync(destination); - if (stat.isDirectory()) { - this.mkdirpSync(destination); - const directoryListing = baseFs.readdirSync(source); - for (const entry of directoryListing) { - this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); - } - } else if (stat.isFile()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const content = baseFs.readFileSync(source); - this.writeFileSync(destination, content); - } - } else if (stat.isSymbolicLink()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const target = baseFs.readlinkSync(source); - this.symlinkSync(convertPath(this.pathUtils, target), destination); - } - } else { - throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); - } - const mode = stat.mode & 511; - this.chmodSync(destination, mode); - } - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content, opts); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } - async changeFileBufferPromise(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = await this.readFilePromise(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - await this.writeFilePromise(p, content, { mode }); - } - async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { - let current = ``; - try { - current = await this.readFilePromise(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - await this.writeFilePromise(p, normalizedContent, { mode }); - } - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content, opts); - } else { - return this.changeFileTextSync(p, content, opts); - } - } - changeFileBufferSync(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = this.readFileSync(p); - } catch (error) { - } - if (Buffer.compare(current, content) === 0) - return; - this.writeFileSync(p, content, { mode }); - } - changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { - let current = ``; - try { - current = this.readFileSync(p, `utf8`); - } catch (error) { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - this.writeFileSync(p, normalizedContent, { mode }); - } - async movePromise(fromP, toP) { - try { - await this.renamePromise(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - await this.copyPromise(toP, fromP); - await this.removePromise(fromP); - } else { - throw error; - } - } - } - moveSync(fromP, toP) { - try { - this.renameSync(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - this.copySync(toP, fromP); - this.removeSync(fromP); - } else { - throw error; - } - } - } - async lockPromise(affectedPath, callback) { - const lockPath = `${affectedPath}.flock`; - const interval = 1e3 / 60; - const startTime = Date.now(); - let fd = null; - const isAlive = async () => { - let pid; - try { - [pid] = await this.readJsonPromise(lockPath); - } catch (error) { - return Date.now() - startTime < 500; - } - try { - process.kill(pid, 0); - return true; - } catch (error) { - return false; - } - }; - while (fd === null) { - try { - fd = await this.openPromise(lockPath, `wx`); - } catch (error) { - if (error.code === `EEXIST`) { - if (!await isAlive()) { - try { - await this.unlinkPromise(lockPath); - continue; - } catch (error2) { - } - } - if (Date.now() - startTime < 60 * 1e3) { - await new Promise((resolve) => setTimeout(resolve, interval)); - } else { - throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); - } - } else { - throw error; - } - } - } - await this.writePromise(fd, JSON.stringify([process.pid])); - try { - return await callback(); - } finally { - try { - await this.closePromise(fd); - await this.unlinkPromise(lockPath); - } catch (error) { - } - } - } - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - async writeJsonPromise(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} -`); - } - writeJsonSync(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return this.writeFileSync(p, `${JSON.stringify(data, null, space)} -`); - } - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) - p = result; - await this.lutimesPromise(p, stat.atime, stat.mtime); - } - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) - p = result; - this.lutimesSync(p, stat.atime, stat.mtime); - } -} -class BasePortableFakeFS extends FakeFS { - constructor() { - super(ppath); - } -} -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) - return EOL; - const crlf = matches.filter((nl) => nl === `\r -`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r -` : ` -`; -} -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} - -class ProxiedFS extends FakeFS { - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - resolve(path) { - return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); - } - getRealPath() { - return this.mapFromBase(this.baseFs.getRealPath()); - } - async openPromise(p, flags, mode) { - return this.baseFs.openPromise(this.mapToBase(p), flags, mode); - } - openSync(p, flags, mode) { - return this.baseFs.openSync(this.mapToBase(p), flags, mode); - } - async opendirPromise(p, opts) { - return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); - } - opendirSync(p, opts) { - return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); - } - async readPromise(fd, buffer, offset, length, position) { - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - } - readSync(fd, buffer, offset, length, position) { - return this.baseFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } - closeSync(fd) { - this.baseFs.closeSync(fd); - } - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } - async statPromise(p, opts) { - return this.baseFs.statPromise(this.mapToBase(p), opts); - } - statSync(p, opts) { - return this.baseFs.statSync(this.mapToBase(p), opts); - } - async fstatPromise(fd, opts) { - return this.baseFs.fstatPromise(fd, opts); - } - fstatSync(fd, opts) { - return this.baseFs.fstatSync(fd, opts); - } - lstatPromise(p, opts) { - return this.baseFs.lstatPromise(this.mapToBase(p), opts); - } - lstatSync(p, opts) { - return this.baseFs.lstatSync(this.mapToBase(p), opts); - } - async fchmodPromise(fd, mask) { - return this.baseFs.fchmodPromise(fd, mask); - } - fchmodSync(fd, mask) { - return this.baseFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return this.baseFs.chmodPromise(this.mapToBase(p), mask); - } - chmodSync(p, mask) { - return this.baseFs.chmodSync(this.mapToBase(p), mask); - } - async fchownPromise(fd, uid, gid) { - return this.baseFs.fchownPromise(fd, uid, gid); - } - fchownSync(fd, uid, gid) { - return this.baseFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); - } - chownSync(p, uid, gid) { - return this.baseFs.chownSync(this.mapToBase(p), uid, gid); - } - async renamePromise(oldP, newP) { - return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); - } - renameSync(oldP, newP) { - return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - async appendFilePromise(p, content, opts) { - return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); - } - appendFileSync(p, content, opts) { - return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); - } - async writeFilePromise(p, content, opts) { - return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); - } - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); - } - lutimesSync(p, atime, mtime) { - return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } - async rmPromise(p, opts) { - return this.baseFs.rmPromise(this.mapToBase(p), opts); - } - rmSync(p, opts) { - return this.baseFs.rmSync(this.mapToBase(p), opts); - } - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } - async symlinkPromise(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); - } - symlinkSync(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkSync(mappedTarget, mappedP, type); - } - async readFilePromise(p, encoding) { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } - readFileSync(p, encoding) { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } - readdirPromise(p, opts) { - return this.baseFs.readdirPromise(this.mapToBase(p), opts); - } - readdirSync(p, opts) { - return this.baseFs.readdirSync(this.mapToBase(p), opts); - } - async readlinkPromise(p) { - return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); - } - readlinkSync(p) { - return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); - } - async truncatePromise(p, len) { - return this.baseFs.truncatePromise(this.mapToBase(p), len); - } - truncateSync(p, len) { - return this.baseFs.truncateSync(this.mapToBase(p), len); - } - async ftruncatePromise(fd, len) { - return this.baseFs.ftruncatePromise(fd, len); - } - ftruncateSync(fd, len) { - return this.baseFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.baseFs.watch( - this.mapToBase(p), - // @ts-expect-error - a, - b - ); - } - watchFile(p, a, b) { - return this.baseFs.watchFile( - this.mapToBase(p), - // @ts-expect-error - a, - b - ); - } - unwatchFile(p, cb) { - return this.baseFs.unwatchFile(this.mapToBase(p), cb); - } - fsMapToBase(p) { - if (typeof p === `number`) { - return p; - } else { - return this.mapToBase(p); - } - } -} - -function direntToPortable(dirent) { - const portableDirent = dirent; - if (typeof dirent.path === `string`) - portableDirent.path = npath.toPortablePath(dirent.path); - return portableDirent; -} -class NodeFS extends BasePortableFakeFS { - realFs; - constructor(realFs = fs) { - super(); - this.realFs = realFs; - } - getExtractHint() { - return false; - } - getRealPath() { - return PortablePath.root; - } - resolve(p) { - return ppath.resolve(p); - } - async openPromise(p, flags, mode) { - return await new Promise((resolve, reject) => { - this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); - }); - } - openSync(p, flags, mode) { - return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); - } - async opendirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (typeof opts !== `undefined`) { - this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }).then((dir) => { - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - }); - } - opendirSync(p, opts) { - const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - } - async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { - return await new Promise((resolve, reject) => { - this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { - if (error) { - reject(error); - } else { - resolve(bytesRead); - } - }); - }); - } - readSync(fd, buffer, offset, length, position) { - return this.realFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - return await new Promise((resolve, reject) => { - if (typeof buffer === `string`) { - return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); - } else { - return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); - } - }); - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.realFs.writeSync(fd, buffer, offset); - } else { - return this.realFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - await new Promise((resolve, reject) => { - this.realFs.close(fd, this.makeCallback(resolve, reject)); - }); - } - closeSync(fd) { - this.realFs.closeSync(fd); - } - createReadStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createReadStream(realPath, opts); - } - createWriteStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createWriteStream(realPath, opts); - } - async realpathPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - realpathSync(p) { - return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); - } - async existsPromise(p) { - return await new Promise((resolve) => { - this.realFs.exists(npath.fromPortablePath(p), resolve); - }); - } - accessSync(p, mode) { - return this.realFs.accessSync(npath.fromPortablePath(p), mode); - } - async accessPromise(p, mode) { - return await new Promise((resolve, reject) => { - this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); - }); - } - existsSync(p) { - return this.realFs.existsSync(npath.fromPortablePath(p)); - } - async statPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - statSync(p, opts) { - if (opts) { - return this.realFs.statSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.statSync(npath.fromPortablePath(p)); - } - } - async fstatPromise(fd, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.fstat(fd, this.makeCallback(resolve, reject)); - } - }); - } - fstatSync(fd, opts) { - if (opts) { - return this.realFs.fstatSync(fd, opts); - } else { - return this.realFs.fstatSync(fd); - } - } - async lstatPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - lstatSync(p, opts) { - if (opts) { - return this.realFs.lstatSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.lstatSync(npath.fromPortablePath(p)); - } - } - async fchmodPromise(fd, mask) { - return await new Promise((resolve, reject) => { - this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); - }); - } - fchmodSync(fd, mask) { - return this.realFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return await new Promise((resolve, reject) => { - this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); - }); - } - chmodSync(p, mask) { - return this.realFs.chmodSync(npath.fromPortablePath(p), mask); - } - async fchownPromise(fd, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); - }); - } - fchownSync(fd, uid, gid) { - return this.realFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); - }); - } - chownSync(p, uid, gid) { - return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); - } - async renamePromise(oldP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - renameSync(oldP, newP) { - return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return await new Promise((resolve, reject) => { - this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); - }); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); - } - async appendFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } - async writeFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFileSync(fsNativePath, content, opts); - } else { - this.realFs.writeFileSync(fsNativePath, content); - } - } - async unlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }); - } - unlinkSync(p) { - return this.realFs.unlinkSync(npath.fromPortablePath(p)); - } - async utimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - utimesSync(p, atime, mtime) { - this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - lutimesSync(p, atime, mtime) { - this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - }); - } - mkdirSync(p, opts) { - return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); - } - async rmdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmdirSync(p, opts) { - return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); - } - async rmPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmSync(p, opts) { - return this.realFs.rmSync(npath.fromPortablePath(p), opts); - } - async linkPromise(existingP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - linkSync(existingP, newP) { - return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); - } - async symlinkPromise(target, p, type) { - return await new Promise((resolve, reject) => { - this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); - }); - } - symlinkSync(target, p, type) { - return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); - } - async readFilePromise(p, encoding) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); - }); - } - readFileSync(p, encoding) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - return this.realFs.readFileSync(fsNativePath, encoding); - } - async readdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - readdirSync(p, opts) { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p)); - } - } - async readlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - readlinkSync(p) { - return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); - } - async truncatePromise(p, len) { - return await new Promise((resolve, reject) => { - this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); - }); - } - truncateSync(p, len) { - return this.realFs.truncateSync(npath.fromPortablePath(p), len); - } - async ftruncatePromise(fd, len) { - return await new Promise((resolve, reject) => { - this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); - }); - } - ftruncateSync(fd, len) { - return this.realFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.realFs.watch( - npath.fromPortablePath(p), - // @ts-expect-error - a, - b - ); - } - watchFile(p, a, b) { - return this.realFs.watchFile( - npath.fromPortablePath(p), - // @ts-expect-error - a, - b - ); - } - unwatchFile(p, cb) { - return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); - } - makeCallback(resolve, reject) { - return (err, result) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }; - } -} - -const NUMBER_REGEXP = /^[0-9]+$/; -const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; -const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; -class VirtualFS extends ProxiedFS { - baseFs; - static makeVirtualPath(base, component, to) { - if (ppath.basename(base) !== `__virtual__`) - throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); - if (!ppath.basename(component).match(VALID_COMPONENT)) - throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); - const target = ppath.relative(ppath.dirname(base), to); - const segments = target.split(`/`); - let depth = 0; - while (depth < segments.length && segments[depth] === `..`) - depth += 1; - const finalSegments = segments.slice(depth); - const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); - return fullVirtualPath; - } - static resolveVirtual(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match || !match[3] && match[5]) - return p; - const target = ppath.dirname(match[1]); - if (!match[3] || !match[4]) - return target; - const isnum = NUMBER_REGEXP.test(match[4]); - if (!isnum) - return p; - const depth = Number(match[4]); - const backstep = `../`.repeat(depth); - const subpath = match[5] || `.`; - return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); - } - constructor({ baseFs = new NodeFS() } = {}) { - super(ppath); - this.baseFs = baseFs; - } - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - getRealPath() { - return this.baseFs.getRealPath(); - } - realpathSync(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return this.baseFs.realpathSync(p); - if (!match[5]) - return p; - const realpath = this.baseFs.realpathSync(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - async realpathPromise(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return await this.baseFs.realpathPromise(p); - if (!match[5]) - return p; - const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - mapToBase(p) { - if (p === ``) - return p; - if (this.pathUtils.isAbsolute(p)) - return VirtualFS.resolveVirtual(p); - const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); - const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); - return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; - } - mapFromBase(p) { - return p; - } -} - -const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? URL$1 : globalThis.URL; - -const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); -const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; -const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3; -const SUPPORTS_IMPORT_ATTRIBUTES = major >= 21 || major === 20 && minor >= 10 || major === 18 && minor >= 20; -const SUPPORTS_IMPORT_ATTRIBUTES_ONLY = major >= 22; - -function readPackageScope(checkPath) { - const rootSeparatorIndex = checkPath.indexOf(npath.sep); - let separatorIndex; - do { - separatorIndex = checkPath.lastIndexOf(npath.sep); - checkPath = checkPath.slice(0, separatorIndex); - if (checkPath.endsWith(`${npath.sep}node_modules`)) - return false; - const pjson = readPackage(checkPath + npath.sep); - if (pjson) { - return { - data: pjson, - path: checkPath - }; - } - } while (separatorIndex > rootSeparatorIndex); - return false; -} -function readPackage(requestPath) { - const jsonPath = npath.resolve(requestPath, `package.json`); - if (!fs.existsSync(jsonPath)) - return null; - return JSON.parse(fs.readFileSync(jsonPath, `utf8`)); -} - -async function tryReadFile$1(path2) { - try { - return await fs.promises.readFile(path2, `utf8`); - } catch (error) { - if (error.code === `ENOENT`) - return null; - throw error; - } -} -function tryParseURL(str, base) { - try { - return new URL(str, base); - } catch { - return null; - } -} -let entrypointPath = null; -function setEntrypointPath(file) { - entrypointPath = file; -} -function getFileFormat(filepath) { - const ext = path.extname(filepath); - switch (ext) { - case `.mjs`: { - return `module`; - } - case `.cjs`: { - return `commonjs`; - } - case `.wasm`: { - throw new Error( - `Unknown file extension ".wasm" for ${filepath}` - ); - } - case `.json`: { - return `json`; - } - case `.js`: { - const pkg = readPackageScope(filepath); - if (!pkg) - return `commonjs`; - return pkg.data.type ?? `commonjs`; - } - default: { - if (entrypointPath !== filepath) - return null; - const pkg = readPackageScope(filepath); - if (!pkg) - return `commonjs`; - if (pkg.data.type === `module`) - return null; - return pkg.data.type ?? `commonjs`; - } - } -} - -async function load$1(urlString, context, nextLoad) { - const url = tryParseURL(urlString); - if (url?.protocol !== `file:`) - return nextLoad(urlString, context, nextLoad); - const filePath = fileURLToPath(url); - const format = getFileFormat(filePath); - if (!format) - return nextLoad(urlString, context, nextLoad); - if (format === `json`) { - if (SUPPORTS_IMPORT_ATTRIBUTES_ONLY) { - if (context.importAttributes?.type !== `json`) { - const err = new TypeError(`[ERR_IMPORT_ATTRIBUTE_MISSING]: Module "${urlString}" needs an import attribute of "type: json"`); - err.code = `ERR_IMPORT_ATTRIBUTE_MISSING`; - throw err; - } - } else { - const type = `importAttributes` in context ? context.importAttributes?.type : context.importAssertions?.type; - if (type !== `json`) { - const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import ${SUPPORTS_IMPORT_ATTRIBUTES ? `attribute` : `assertion`} of type "json"`); - err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`; - throw err; - } - } - } - if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { - const pathToSend = pathToFileURL( - npath.fromPortablePath( - VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) - ) - ).href; - process.send({ - "watch:import": WATCH_MODE_MESSAGE_USES_ARRAYS ? [pathToSend] : pathToSend - }); - } - return { - format, - source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`), - shortCircuit: true - }; -} - -const ArrayIsArray = Array.isArray; -const JSONStringify = JSON.stringify; -const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; -const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); -const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); -const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); -const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); -const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); -const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); -const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); -const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); -const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); -const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); -const SafeMap = Map; -const JSONParse = JSON.parse; - -function createErrorType(code, messageCreator, errorType) { - return class extends errorType { - constructor(...args) { - super(messageCreator(...args)); - this.code = code; - this.name = `${errorType.name} [${code}]`; - } - }; -} -const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( - `ERR_PACKAGE_IMPORT_NOT_DEFINED`, - (specifier, packagePath, base) => { - return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; - }, - TypeError -); -const ERR_INVALID_MODULE_SPECIFIER = createErrorType( - `ERR_INVALID_MODULE_SPECIFIER`, - (request, reason, base = void 0) => { - return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; - }, - TypeError -); -const ERR_INVALID_PACKAGE_TARGET = createErrorType( - `ERR_INVALID_PACKAGE_TARGET`, - (pkgPath, key, target, isImport = false, base = void 0) => { - const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); - if (key === `.`) { - assert(isImport === false); - return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - } - return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( - target - )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - }, - Error -); -const ERR_INVALID_PACKAGE_CONFIG = createErrorType( - `ERR_INVALID_PACKAGE_CONFIG`, - (path, base, message) => { - return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; - }, - Error -); - -function filterOwnProperties(source, keys) { - const filtered = /* @__PURE__ */ Object.create(null); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (ObjectPrototypeHasOwnProperty(source, key)) { - filtered[key] = source[key]; - } - } - return filtered; -} - -const packageJSONCache = new SafeMap(); -function getPackageConfig(path, specifier, base, readFileSyncFn) { - const existing = packageJSONCache.get(path); - if (existing !== void 0) { - return existing; - } - const source = readFileSyncFn(path); - if (source === void 0) { - const packageConfig2 = { - pjsonPath: path, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(path, packageConfig2); - return packageConfig2; - } - let packageJSON; - try { - packageJSON = JSONParse(source); - } catch (error) { - throw new ERR_INVALID_PACKAGE_CONFIG( - path, - (base ? `"${specifier}" from ` : "") + fileURLToPath(base || specifier), - error.message - ); - } - let { imports, main, name, type } = filterOwnProperties(packageJSON, [ - "imports", - "main", - "name", - "type" - ]); - const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; - if (typeof imports !== "object" || imports === null) { - imports = void 0; - } - if (typeof main !== "string") { - main = void 0; - } - if (typeof name !== "string") { - name = void 0; - } - if (type !== "module" && type !== "commonjs") { - type = "none"; - } - const packageConfig = { - pjsonPath: path, - exists: true, - main, - name, - type, - exports, - imports - }; - packageJSONCache.set(path, packageConfig); - return packageConfig; -} -function getPackageScopeConfig(resolved, readFileSyncFn) { - let packageJSONUrl = new URL("./package.json", resolved); - while (true) { - const packageJSONPath2 = packageJSONUrl.pathname; - if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { - break; - } - const packageConfig2 = getPackageConfig( - fileURLToPath(packageJSONUrl), - resolved, - void 0, - readFileSyncFn - ); - if (packageConfig2.exists) { - return packageConfig2; - } - const lastPackageJSONUrl = packageJSONUrl; - packageJSONUrl = new URL("../package.json", packageJSONUrl); - if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { - break; - } - } - const packageJSONPath = fileURLToPath(packageJSONUrl); - const packageConfig = { - pjsonPath: packageJSONPath, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(packageJSONPath, packageConfig); - return packageConfig; -} - -function throwImportNotDefined(specifier, packageJSONUrl, base) { - throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( - specifier, - packageJSONUrl && fileURLToPath(new URL(".", packageJSONUrl)), - fileURLToPath(base) - ); -} -function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { - const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${fileURLToPath(packageJSONUrl)}`; - throw new ERR_INVALID_MODULE_SPECIFIER( - subpath, - reason, - base && fileURLToPath(base) - ); -} -function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { - if (typeof target === "object" && target !== null) { - target = JSONStringify(target, null, ""); - } else { - target = `${target}`; - } - throw new ERR_INVALID_PACKAGE_TARGET( - fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - target, - internal, - base && fileURLToPath(base) - ); -} -const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; -const patternRegEx = /\*/g; -function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { - if (subpath !== "" && !pattern && target[target.length - 1] !== "/") - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (!StringPrototypeStartsWith(target, "./")) { - if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { - let isURL = false; - try { - new URL(target); - isURL = true; - } catch { - } - if (!isURL) { - const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; - return exportTarget; - } - } - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - } - if (RegExpPrototypeExec( - invalidSegmentRegEx, - StringPrototypeSlice(target, 2) - ) !== null) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - const resolved = new URL(target, packageJSONUrl); - const resolvedPath = resolved.pathname; - const packagePath = new URL(".", packageJSONUrl).pathname; - if (!StringPrototypeStartsWith(resolvedPath, packagePath)) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (subpath === "") return resolved; - if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { - const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; - throwInvalidSubpath(request, packageJSONUrl, internal, base); - } - if (pattern) { - return new URL( - RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) - ); - } - return new URL(subpath, resolved); -} -function isArrayIndex(key) { - const keyNum = +key; - if (`${keyNum}` !== key) return false; - return keyNum >= 0 && keyNum < 4294967295; -} -function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { - if (typeof target === "string") { - return resolvePackageTargetString( - target, - subpath, - packageSubpath, - packageJSONUrl, - base, - pattern, - internal); - } else if (ArrayIsArray(target)) { - if (target.length === 0) { - return null; - } - let lastException; - for (let i = 0; i < target.length; i++) { - const targetItem = target[i]; - let resolveResult; - try { - resolveResult = resolvePackageTarget( - packageJSONUrl, - targetItem, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - } catch (e) { - lastException = e; - if (e.code === "ERR_INVALID_PACKAGE_TARGET") { - continue; - } - throw e; - } - if (resolveResult === void 0) { - continue; - } - if (resolveResult === null) { - lastException = null; - continue; - } - return resolveResult; - } - if (lastException === void 0 || lastException === null) - return lastException; - throw lastException; - } else if (typeof target === "object" && target !== null) { - const keys = ObjectGetOwnPropertyNames(target); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (isArrayIndex(key)) { - throw new ERR_INVALID_PACKAGE_CONFIG( - fileURLToPath(packageJSONUrl), - base, - '"exports" cannot contain numeric property keys.' - ); - } - } - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (key === "default" || conditions.has(key)) { - const conditionalTarget = target[key]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - conditionalTarget, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - if (resolveResult === void 0) continue; - return resolveResult; - } - } - return void 0; - } else if (target === null) { - return null; - } - throwInvalidPackageTarget( - packageSubpath, - target, - packageJSONUrl, - internal, - base - ); -} -function patternKeyCompare(a, b) { - const aPatternIndex = StringPrototypeIndexOf(a, "*"); - const bPatternIndex = StringPrototypeIndexOf(b, "*"); - const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) return -1; - if (baseLenB > baseLenA) return 1; - if (aPatternIndex === -1) return 1; - if (bPatternIndex === -1) return -1; - if (a.length > b.length) return -1; - if (b.length > a.length) return 1; - return 0; -} -function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { - if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { - const reason = "is not a valid internal imports specifier name"; - throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)); - } - let packageJSONUrl; - const packageConfig = getPackageScopeConfig(base, readFileSyncFn); - if (packageConfig.exists) { - packageJSONUrl = pathToFileURL(packageConfig.pjsonPath); - const imports = packageConfig.imports; - if (imports) { - if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { - const resolveResult = resolvePackageTarget( - packageJSONUrl, - imports[name], - "", - name, - base, - false, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } else { - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(imports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - name, - StringPrototypeSlice(key, 0, patternIndex) - )) { - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - name, - patternIndex, - name.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = imports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } - } - } - } - throwImportNotDefined(name, packageJSONUrl, base); -} - -let findPnpApi = esmModule.findPnpApi; -if (!findPnpApi) { - const require = createRequire(import.meta.url); - const pnpApi = require(`./.pnp.cjs`); - pnpApi.setup(); - findPnpApi = esmModule.findPnpApi; -} -const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; -const isRelativeRegexp = /^\.{0,2}\//; -function tryReadFile(filePath) { - try { - return fs.readFileSync(filePath, `utf8`); - } catch (err) { - if (err.code === `ENOENT`) - return void 0; - throw err; - } -} -async function resolvePrivateRequest(specifier, issuer, context, nextResolve) { - const resolved = packageImportsResolve({ - name: specifier, - base: pathToFileURL(issuer), - conditions: new Set(context.conditions), - readFileSyncFn: tryReadFile - }); - if (resolved instanceof URL) { - return { url: resolved.href, shortCircuit: true }; - } else { - if (resolved.startsWith(`#`)) - throw new Error(`Mapping from one private import to another isn't allowed`); - return resolve$1(resolved, context, nextResolve); - } -} -async function resolve$1(originalSpecifier, context, nextResolve) { - if (!findPnpApi || isBuiltin(originalSpecifier)) - return nextResolve(originalSpecifier, context, nextResolve); - let specifier = originalSpecifier; - const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0); - if (url) { - if (url.protocol !== `file:`) - return nextResolve(originalSpecifier, context, nextResolve); - specifier = fileURLToPath(url); - } - const { parentURL, conditions = [] } = context; - const issuer = parentURL && tryParseURL(parentURL)?.protocol === `file:` ? fileURLToPath(parentURL) : process.cwd(); - const pnpapi = findPnpApi(issuer) ?? (url ? findPnpApi(specifier) : null); - if (!pnpapi) - return nextResolve(originalSpecifier, context, nextResolve); - if (specifier.startsWith(`#`)) - return resolvePrivateRequest(specifier, issuer, context, nextResolve); - const dependencyNameMatch = specifier.match(pathRegExp); - let allowLegacyResolve = false; - if (dependencyNameMatch) { - const [, dependencyName, subPath] = dependencyNameMatch; - if (subPath === `` && dependencyName !== `pnpapi`) { - const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer); - if (resolved) { - const content = await tryReadFile$1(resolved); - if (content) { - const pkg = JSON.parse(content); - allowLegacyResolve = pkg.exports == null; - } - } - } - } - let result; - try { - result = pnpapi.resolveRequest(specifier, issuer, { - conditions: new Set(conditions), - // TODO: Handle --experimental-specifier-resolution=node - extensions: allowLegacyResolve ? void 0 : [] - }); - } catch (err) { - if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`) - err.code = `ERR_MODULE_NOT_FOUND`; - throw err; - } - if (!result) - throw new Error(`Resolving '${specifier}' from '${issuer}' failed`); - const resultURL = pathToFileURL(result); - if (url) { - resultURL.search = url.search; - resultURL.hash = url.hash; - } - if (!parentURL) - setEntrypointPath(fileURLToPath(resultURL)); - return { - url: resultURL.href, - shortCircuit: true - }; -} - -if (!HAS_LAZY_LOADED_TRANSLATORS) { - const binding = process.binding(`fs`); - const originalReadFile = binding.readFileUtf8 || binding.readFileSync; - if (originalReadFile) { - binding[originalReadFile.name] = function(...args) { - try { - return fs.readFileSync(args[0], { - encoding: `utf8`, - // @ts-expect-error - The docs says it needs to be a string but - // links to https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#file-system-flags - // which says it can be a number which matches the implementation. - flag: args[1] - }); - } catch { - } - return originalReadFile.apply(this, args); - }; - } else { - const binding2 = process.binding(`fs`); - const originalfstat = binding2.fstat; - const ZIP_MASK = 4278190080; - const ZIP_MAGIC = 704643072; - binding2.fstat = function(...args) { - const [fd, useBigint, req] = args; - if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { - try { - const stats = fs.fstatSync(fd); - return new Float64Array([ - stats.dev, - stats.mode, - stats.nlink, - stats.uid, - stats.gid, - stats.rdev, - stats.blksize, - stats.ino, - stats.size, - stats.blocks - // atime sec - // atime ns - // mtime sec - // mtime ns - // ctime sec - // ctime ns - // birthtime sec - // birthtime ns - ]); - } catch { - } - } - return originalfstat.apply(this, args); - }; - } -} - -const resolve = resolve$1; -const load = load$1; - -export { load, resolve }; diff --git a/costs/.yarn/install-state.gz b/costs/.yarn/install-state.gz deleted file mode 100644 index 0bab32cd93b6ff68e9127311ede51c0da1427358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371572 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ℜw{)uRp#Z0* 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[H(nD1=8snI*t~U@}(lozYMF~K|7gX8CiErS5 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
*Z<-PcPC-@E>=!OgbGjx(&`B<` zR^XNfQSg#>!*v8nderrBfc2R$Ra-4_vJ8nyK)XDYesX6Ct6NWwJQrDF5ZL;Y&)XMg zv%mGi-7|Z0x|c8?=Dh^`pG}y+H2`@M6`U%F^+3AS_aeT{-PD!>mxe*$nQ#v{{Zc&N z=D$I>Y2oeQzfgXqYzc+pCSW@0!+P~t549PqHaW7{LvvkyA;$M`&X?W#^7CAX@m$FB z+0(!1`V{9|FW%M5Fmt*L`v67P;jmKAZd1kdDM>phOk44{N#n0MTc*PUR|U_9)x^IP zhyaX5`pUTN1`25&;MvD)(9?x;(&^pRsLE0qDg^`JzLe*d@;)1iC@qs=zgb*`(S>P2C*@!fICK`avk^S+Zlda78fB~U+Bj+lw{*@QcYjsW2uo|~ z1NP89ybEqcNl=*oW=C5lc(tQVi$4&e#K+Pw$+ye@c2IOF#LjjM;7RItpRUENuH)2m z(%h%2G3|h(>Q_+<#SGGh!yP!^`vPsikhc;WO3}idmiOBhJu)sW5KqdeD*KnXa}61< zVAUra04Ce)%m1#YP&Z$J&T6<~?Xd1p&D8YZn2kD`6FbJc9|Mvqw!nJTW(*dA!4Y2L z8a!3ywSYst;g59hTT11ZtdoDKV9|`Zt1m&~jo=`RB~A%D8+-Xb?sA(2vK)c8vp@q( zfY~=`g0G=&lq5#qC6=#bM+Awgn=nX<%t}el))~M7Ms^r8{#v(bh2L@8+mMsy><$o} zUM4y%5zJ6MsdcH8;a*+&tsm!F+We#Sqc7IDYaY9nJ(qfBjWKymWsvfB>qZlum1JH3 zaI=mEoNCqmft?Rs6Nce5iGZgD<4$#VRv)aczO6LeywgRHpNm~v%J2itLI;>&Q1c9o$SqmG}hsqCsM z+r#lJ-ODktlhI4Tk4J7&u~cDi0+2XmXPZQ)aKy@K@lB3lZYpc2HG!{_CW*%~RjkLB zmpIuWQO1B z2R>BtRMm>Z%S6DvZECu_anoY4Z9$6s0D3~BcpE1X6+&O&;ifKD)F@#YpIV3FKaMGPrb4B8jvqAtSN(72{8O{mB06Mkj)|IT|fT@N? z*O)x#Nl##ZS9XI+FW$U>OsYnWR<&Q;Nb`E>7VH+6O-Gp82|f^Rv^SLHd1*LAkh zY`GZW;Xv=foA45;_;obaa0F8_tqhF-=^AOrqf{3_Zv~fX)Ut_TFCa80J4V99SOq3V z;MvQ=>e=x5?&kW(`~C0a{ry~q$rehvUIYm#;nXJW$tHQ2yI7eVgEsU%c+W|s#hsre!24zn9S&S_tN z`A#xR71!(KJGp95e{7o*5JYr`fi$Nvcp7Auy7c_n2931~8q%w7w>t10e4N;q0!dy{ zPXbQG1V7_XsjR>88@h~7N;$!GflRs>UXsU1{BD9iL9dhD?>w}(79e}nLwkREXt$OE zdQ>KQcx57GpESiwSxI0&pAP?07ppT<^Dm+3_E4}@UuG#pu4CjJD^+ckxC#CR(7r%v zA*!?l9214zS=32@fytRH3sVz8!9xc5Bpcz>o{+OI|L0?|)pxYmN~9iCfd33DKoZ83 zig4pJWfdlE^#*Ca5}vjN4nj!T+7dRT5f3L_jKF6OUn++~?Lv|bh!Edirobq`W~kgJ zKtD2A5>N^i)Mzj@Kq)10=32LYoHKcTwLbshRiT0k2494r9sy_4Ni@WELqHHgvex!$ zR$OaH9-AOEH13H2q%Uf=6PrZX<|xiuB*jv!Ms;MpqTR~$RKlIm-SAF*elF%i2O9p_ z)w_`2rdj!u_y)RZHZIRX7{O0AC(UwQt6JiT$r|8Z35Jrc?z2lvRb`uYONm*SWME~r2mRhK~YO8N4Sd|#_`q>puz>qE@E z%#@6}@m_4R5eqtYT_(PE0&$$K4ib)g86k79K!!BKHjjzH@aP~?l{6+3jHZd(3#Obk za8-f z?4%eWAAxr+rb+??Zw=cmTcVd>EZ(#$5wf=5Jz|ebbL3kIm3{GIWkdboowfMKzW?c; z_27NDy%PzovA~AJn_>Qd5GfTCC{<`7;hs?;G57|f+#A6P=nKf4xH?wyXoA%hTEI}e zI<27bmA|(l#|^qF0M#Vlu=o$rr%Tva0yv7y-?s5P=N{Y}FW>K>p;hOQedEWuW+^|< z0=|0j>>4>IR7)jl)S+4ztG@#b)R18{M&d&@VMJ5ugxi~j4ubxgB!-72@MsphS9h;d zC|XU2L3hMPT6$Hp<-Lr81(3$VOg=&=EJ(MFfPdQWPP*Ls4(Rbp>OEXZ4U2WhySr$9 zzx3)f6HK$eGcO!~vWi`GnhGcYJxFt`2IX9n<}RvcX0m($5sid6s`h{au4}l_=H~!M zz??-KG?uU*z|O4#{EfzC-xD^u_2XQX0{eqcU%hV6`Lz+>Vbuk14HkiFx< zCBW^JbZI~f%`k5KJ7AFp_+fM*lOgBM?Vy}~V;cvc2Hpv063MjI*{%YhYHZS51n>gh z2aIJ_mr`h!be$C>O{OnE3Sh^)jm_LoE~?bj61>@9ny$%*nlF;w5c{3YlC3msGTrIng4 z|JO$kI5PeX9@%R3$;rS>m#!F(hC!8!PSaU_*d=(pO7tlem4DPJ%|Dh_+6P&RbE^!z zrraU)Un8S%C?3AWaVq*1LUZa;h{OC+$N*)GY;pwQJ@G8g;6SP@RF&v@WfhvR2@4i* z(qR?peVU*f(4Ab=L|6fey!o>=sOw$MCc6j=3(yRRH2`L+T^E!IRw4d_5~MbV4Ik4u zGcF#onUW;&?x|7zEC&DOXJ-&{>ovPlXC6+y72#p3&^n%WX!`R$JVvUz5LA^$JqCz? z_2AgB8er1ut6E4$QDKI+V(fD93q%h|c0!ka`ouPruntZRv6T=J$jn$5J+wHt4Q*Ei zVX_j`zx?0V>&)fiG)L1{{t!e+no7eI9GmpM;A9nMJ|yc8=hCD&8wQ(=e}g|rPuN1D zysZNkXLrV_#kpJD8_IwinT72P8m!`sVSB7+vur7lsNMy3!aYgeTR+ZKk9!__eC4)r z*(!})aEsKy@Sv)vYn;A;za4YnhM}TGbH4Fr&K`N~J3nQcH(e(U?kx@ z(UGKq7Iqnjn?39^!%V7Xvu3AAp;0?EI*I94uP%E07HIMyEZWzt3pvhY*9>0HwhC3% zG$ihDt`hn%b%4)8b2nbIZ);J1EJSyyVh(T`M?Kcc8rW^w@*dSYGaM9(BLtcT*9{Ht z47(CMrPSV1C~mc_kx9oin@RYCn?jc2v>y7pQg5p1ET9f`r%6KvgGkFkviuoD;bqtk zR-7N4Y^U_8hDOj&-5{($c-`!8Y>N+7{(WdJ2U`Nl?)6X_@ z@D;i>gmy>9$iO`v#HAwLuIm1ZKRah(yDDB@osI3*i+0u6{K?oJqFb*O_@htSiPj9U z-FNli;RPDZMH=@*O&3-72DkvH6mj%?TV3}6Bi)iq@OIP)64ZB+NV;wb2tY<9N=<%W zcN?x7-CXHpT0Dc>-i^!u^B%hOjEh;#kTA*tMh6Ngn|pUHx+?ZkdGxvuHK~RzYD>U1 zz}Hc%rkUa8R^2VcVAi&{959Y11@%A_GD(%|39rNUS`7pk`S2v6Yx>K+S27J&vPJ_N ze1}Qdada+PDQ~shp#GX4kt*J+@w?eu4`VybEWrJy7{zcnFqOT-KiW>+2Q4DT8A4@$ zVw@>DA%UnY*w7$O1DfAnL#)mw{|iTadUBV}JZo&-cH!=sz5T>~624~kcmMl?^Rb{w zkH=DFTUL38Q>LdDLZBw$P2JrRTR@hUvlc?syv+_Tfws7=ah_%QVsMQ|e|m&xb`5u4 zZHxomXl}c$4T6I=n@T*GO3cflu8vKeiT>uQ-uNr4NQ?M^+Ub-c{z32ODtINd9z^4?;Z zH7UlcnAu7n)%J=n@gdtHIbiX5-VYmC#PbY^IVX#6yvFB(kk6k!e|l9q^VaKjRmd=% zgbdR|U<(#!fPz#Msn-5lOtSG9m=QLy0c=(JF(Y7kRWz%Vu#D*AK6KhkY)+GS_ya+A zeKm=fuMLP$lR}5Q&sdA!DM_FNVwwn*#MQ`-858a0FaG#FSbf%YkOibRuNDUwjFU=x z>mwvD;gxDjQ|C_}(v|3%zUcRguqCYkShYAWi3v?j&K<&mBf|*;VEM~VrH8mD39@ST zB-l|iB3rdi@Tr`$>9=0vlhuF!fYVRbkG^Qn4`Vvp{*71fifpVo$;Li_9DqWw@kuQe zlUQT`*)^x3u~9tA0#&I1fXF9-jFdQ(DmnxD8~h7y3Fk0kZa_JLX@Pe)TU9|#v;o{VVzemTT?Lxj^d06Zu~gsY*BBl@L2Q7J128Nz^Xs0$?ynzYE~wyKZwnkyY6o4z`(z8dM}>l!YYCa10mzgY<^)%=VFl_UJCe7l>Y^e35x z&$r4p+NuUVulYc4-?P{^vpF8zo3vx8l4=2*;Jxd$Yo?@XIk)D#u0G}O2?s!&WQcL8 z63Ylx%HSQnjZ;J6LQ=(y21EG5-x;ezzy{}}wUyj7dj|>02(DFS(_mxmej?}tHeSG^unvv=TZKOyf(55EFj%x*zO!lcXK&*zvR88HvzoV2cFt(x=6H2E9WO|UBwOfnOU;dK!fZK2~ z!~?JHMzBRuxh*dhBV-cD?BM`Llg1?EpnTy0y}jM7tA7@|;F|zRDK9d?pMZSHIcZskkiDcDF>fwQcXmOJG!=lvPV_9_ug6FrIAKy^oB2=u}fRujb-E2 zJGozc^}3DUeA9MvZ@|QD*Y7HF^C#r?jWePT?`+#n9B#=)8fQE4SM$yRq)9>2UdsM5`kOR{(8byP)lb`$E-P4Q=OnN-m>>G zLVV|Q+r%E82!`L16uD-y4iz1C|ZwsW&{m7u|2Xa95*y zJVp2T;Tas{O!G8Svr$byM9-?3_d`=KaopgvxJ;HjSL@kzTbx>F*gagb&Csrpv*ZSQ zgEASGxT=mWth&_eIb5Etgmg66K-HQp#^+54bi0AB%-PWuKUKpFjpV;zba^jT5JhL| zk^o{@M>NHs?V6?4n^bk=ROc51)Kxby+h}59_sZ+Ut)W)c*Q0rn7qO}$hxxgwiCK=f zccFpr&FnL$>%|8j{kXmS?3D&hyjm~sanu_x;QcaQ`?jn5xi??<;7m`UiQTBGL{sDH z)NOu%z(?t?8I^8>V;}&c2D)6xZz@F$C$VUO;P_jWNf3gqHRlOa+F)o55<=2jx$#vn4$wU@B@g(~HT$q!*Id6yQ=RH=A3M}ZpoR-{>8n-fqskpkwyv5vHGn;<4`dD#496SCQ_jq}NN~(()URYJD=x%~G`gam zAsj=-ot5RMW4Ds#yEBtwWiEQ4iY6b6$q?Jv`HGl67U9g}?p>kDH^mb6Xs1k&AjH_>(Kx3qp zqXCWl+iRS$+7UI0*eqphq}kS&26&F#a`x&xzGwH|h`^32K^}F%%_e=BF$66!kJgv! zA(SYB95%>0SWctoSkOZ3jy%}(W!j)lGKl+ZqrzjcMpzW5epizt2AhG~u)V`#F!W|>WuB~d$$8ajR+)hKZ z{dVdZo3_Kup;N8cswIwFGcEz^d>|~!s{&AQVh{@IF*bI%Nm?rgr@WU$6O$NDv;c3l zW)?z#b8VVt-)^GHpIG}zI;y`hRXh+l28<8Hk^BLG-xUq=*8Eg;+&ipqEma)2;iv9m zOATGqFC{U|sWbSnwNejLMf4m~Cm~ed73v&B)4SGP9TPVjr<8-!47RKe6S({pAAbN1 zagY6Z@1Z}h^I_9vykjUU2cyKT4+Od9R?bP6^#GO`yTqHa+nrM;QIZn95@e>UOM^E7 zslyLLPeX>P%6?$E3&~4ayoz1h%;+Zm<7D>qA2gH%AW$F9NC&L@?y*N zfL~P$MpwYMCdRT{&qrpy4Hy+ZhG;aE@~je^AU@(#`rQx>A%wZ1?}V>;`Kyiq)PVkr z(ByI_{sv#5%jIvag^eF5_nThFBozN zds)IYAavBGE?m4KD0bRl@RN98mmsygkO>VEj%(SVNVm6ojkX8fdJjJ>K4u5o=$vCQ zQRwafU}@k;y8JaVt=)l*-bhYlaw_>_d>2o%SQ-eXddfJh_^ip%pBdjhq6ES!h*(2s zu-BT0ts*%FTV~b3f{JB(bsUr`@p|FNOF%AgK9tvxHk%b`8~gIte*6KbO+JcWz8~>R zwPU~r>?DL)*cRY6Hw`Ke@TL}kB@q%}q~t{An_2;YJ?<-noU+pX?96HyGnHnr!!Gm0CQ3fWyCv)@#+)-|9Aer< zl?X<&*Of`*FHtwp&PYNxOOn;;X-5N8!pZphCJqA^fv-`Oseq^qBH5}H%2A$MJ>+{9zP$qcZRp+w ztU{DM+K?WlOn=WvnWiC6m%$j*7I}93hi}+~W)Cb4nb8Q=-fZq#53D9=9HkEu%Q9t^ zu)TA2F7<&MSDoi$E&i@KCso7+_=Dq=DA=MocA=`JOl4F~S)a2!!;K&3DrEX$d-il{ z9`F5qEg61crhXmYNs#udDnn^%lZM(MTtheoDuEI-yr>1m7J`NJgFp*jGSTWX!Lq;# zQ{{aa7@OW^Y_90r0KL-0qVe!p1SopNa?BHYx9sq(FBrc)_nlXoD1z!Rx5`E|>`3Qo zXp9&U0+0(m$vl$sXF>(b4V80Bo)Rp$)cP$3SC4B?vAH~fpPhG`!1R_mflM?ySPbGCvOfOsZpDYARN2AW8x1dJXF3z%!L0O;J2Us!H)V z!wN|Y(`aa{57O1DDz=s$WGn=; zr0npm)l9w>;wo1}DYqte0Ny<|D7+m7__M|?TX}m`(gEU>OD{0u?KdH5NjwbOn@iP^ z#DgH`-ocw{q5>O;NjNab(g;h1rkxey*Nm#cDN7R35=L_8Fp|b^a-K0J!Bh@S>PfYK-SG8jDxquy| z>Z8xST5Gk{YNle(a>Rr3U`E$VZHs*BUZxv>S>;qhtRpMD)zuCtFwx5&;$PKZaA`Faqh18-6=j&=kk&dwj_g3X|vnG9a01}~sV-0p{yYHmY@yfemoW%{5Umv1#TN<}< zmU`Mv+f}MG0N6X^NtgoeNK_1qmwF8r#qZcX{ZZBA^KckR)SX9h{I2cG?+jkh_|?b~ zXKRBR^_3M2aRI)i%v@EeOF$xq7U!Lj4mIXm$N6C1`f<*;U+>;W>v%Tk*@{3W*P|xL zw<+P8AR$sa4{bdQ?JVH5pmDC8VkfO_GeRY7a7StFg*ID@xZVp?2{O-;!!~UYEv`k{ZPN5lo;~VfSscp#x#7Tmu#ja6+I!;aG1T3 z!U>Kq=#uhCHt*vq4GwWg7;E_i=(7%~YDKtofGw)6 zN&2H2cC4w^x^)G;_oGE1iSOGMrQ~3oHA=W}{;h;?*1r4=??d@Q3Mf(y7Ru8VTvV^P zA3o#Xd8Squ*j=q(wdO-rY#$XXngIih1S7h|&k_+Z(dAdf`Af8XRnY+0vAX+J@M1)T z;)H2S?>=u+biIF;H24-7|BV;!>&AbuCFee|=9Btcw*T{AedRk~`hVklFnzYGE`wE= z*i;-JNu`n`3*+GG9P!`9DXqUx&48josB z$ze{AdRe3D4h=u;M${amcHEpc9DLG*`ngsO96eP=H-Zg8XpTcYTa)~(hWnK!xu)WD ziPLMu*aP5KV{YK566?cz+sohdSO@amtpmAruJ&?q*>)=6`j(p8t(Wa;W2recmVSWdHX1%T zj~EZcnv%wLIDI#R1cfx&%*Hc&~&$ZC3C49x|w{KRr$G1>DW&;VyfKHI1P+6$pLsE zMp=daz`tx~t_hbgG$qt%7@rh#)=_Qain^FQ2IodTCRr5^js|GMej4a0fX;jBK+}85 zIIoF$Pp&EB+1e(JWGdlK^RI6UNd;T@`$x$t9X^CyB^IPINVOc^G9y zIBG^yitrd_vLLapb{gtj7(6tlBBu%{y=H8Ia54;BWJec9et9LD5_TsirkQc3g~BhZ zi^(rdfhtWDPP2*$pEwy!?K8`*i1#}uD0)y=NwZyJ?jVLl>lB<3tH14OU$F=vCDscXABRRLXX zOJ+mnda_?$8I5r3<-2Ei`4gAEt~UB}Z@%!&-L6xf2TYrIY~{SS>Zdun%D72cVEJk! z!G^2t1h_pkDhx!k33*MW*g@qdD!lJ=I3>Q1d&t60h;29+(3lPFds{U((r_$a;{UaoRBB?)t~oxeNx>Ka=%aO$~EA~8P%Mmp>|xnkhT2ECWZpbHbx|Uui9pH)s`WMc==oP6g-iXU^-uL0sobI2x_?v zaD@(b>|I6n!OxyF#zVss3`Und970nk%MLgb2g%_ITc=Eo!X(G%%^U7P#t~`aH zKQLZAd$z{wCqFE|H3{@QjOxZK_-&OQ*8P?Qxv}#qk&&eP26k6cJW}Mf>MgZukW*p@ z1Y4wKS~cgsurSlQy>aSA-GoqZ4(rq$ytpKY#Yx1$7~@%3-RxNpb5xE98M}n_-YFZdSCxV+%~q8qLZ!fe-+fK$%_OTScQ~RbDRv2vt9W!_C0C4{7Vzz7NH6 z&t5ANY@}wKRYsdFp3+9a=q9N^3A+t@#{A!Z-d=zCvOUA>KL4V{gv5~`g-CEjIRj+1( zrqgJ-aON!;mB|O<-`<>acvKTc@Y3i{ntaU0z?dmO%uD%a;6Dv5Zz^6Jj5q?jT5{SoRCTpuIvMOtFE=HDYxx?Z{ zk%~X$sfKQdm_-$KI_S`THW(kL?u4N_d(*d40-7$8L#j=!;nLM1-nEicGl9RXAgwj! zRp!99j}d2OZ@}ZBTo~~~QhYimIi9|HvVQdXvu7{*y{qFJFWeP_v!_WR_M0a;-h;1e zVFRR1;rw@DYtZQss~uCxA+@2yX9*KoS!`R>&JsZ|5a=ms3EizHm2PvS`59e`IgVwR zb|~L8sw9eHRi~FptCbLZKID^Xle)*b5jBo#j9N2{M43{CpigP(Rp~^*fN}-t6+Fl+ zd?>hR6F^fku!y35`x)_c2I!CD@e0h4A$HPcs~NFs{O>`LI+*SQ_8e-k20|5j^U}gN z-$S=oKYl*$Iky|H*_8_e_m(2&-T(gJYz+hp{J?YLP&hc-Yt&j5Bx;9-Lsu~?{6>N= zrL&h#YP!CpRtQM5`6;Pdpge)Bu0@cLfU@Hp&SI3P>i}P)5!0;a=Cn#UuGb)q_{pC< zUt@;SL>N?oI`}mhL~^(f+)sd?D;MgPtP#du)$XR~t{el>2NoAH>|&J!-S6rJvN$LCFeFp2- ze&35%zdqZ`zwqhv`zZxYcbX2vH!g){h&>4|H=A0zS4dHSR^wb$&CcqwRWQAzyutwO z*sx0|)u}c;Np(%ta$bWoIrmwk>LXqo&})>!7yI|B)hJM`nI+6?FMs=c$mAxTP~B*% zY6i!E=f-l=bKC)5xR1IpEw5oDPy&hVu({x(7AdMK_pg1H18G)R;J3n zBgci8*`thQ6~nx=I=ztwbZqxVN_<<)|JKX)b@TrVzEJDrr(ZqlAK^6o8UD{d?Eg>y zsto*3>t8;7_WJ4bKkr~=um8|jKm3P3{q)U=`Ss%${>&fne!mV32QPi657Wu+Zv8lC zyVKe}`RvDETNoy)?Tkyuiwj5F)ps^M`es56jp=W2y``y_wCv= zA0~7>(vqs8nvpehtb)jTtEv?)TY4j@G%W38 zAisKK{GWXBa=luwpNubG;tF0Ly&q2ihp*d@?!m(wFXz>%$Zw}z?1R*>#-+seAuXch zD`2>Q+(GKy;+>~1^mgd#+*G4oFX|wNJnpRu>_bII`g>jaWVyrsLYN$B?LF%kvh;>k zs2rN&OqiX8E7E@^J{_tim%l?P_monNYhH8FDTU^U0f#0vA1?rPk_ zSD!^h-L|3UDgmD~B_MVPjU*#omAfeQzAf$YcOF7u zBkT4umR6Qp{HNyJIdw)Q9u4-92(j>9QxkN=)QDZfMrscP96l%}I5FH9mf6#u)($1n z;6a3k1=@?LvJz$E2N&kzB;K)|Z)&|Yc)ZKsbtv7fu~{Lz)hC~%%Qxce>htQ=h^k=t zaSW*kKzA%=Cox`)vdMY2#KDQyt3R-%HdVu?ya1R$XTOn3n|g`5x|vf$PLf*ov0SB( zM$oY=6PMfKy8PWor@YEMa~@4{7I?gxlos?cb+u9C?z7pMK)lpZhpy>o2D@>7 zj&3bP2gvK4Veh?0j;eGDm+SkmO{#YiOfafTNUP$JcUMEB&_}xbJ$j0O5hW8t_i8`p z5oeHGvA0&LZ(sxI{RFYHhzs8miqwTt2lnXykJV<(JHr;e8)nHHu@-5z)+CE+A*wC$ z-#~L|`o`X;MgtZtX5cSe{@%Ni++~#?#m^V@I)J|c8GX4C13#!M=dvr@)VplF)a*3o zC9vkRLSwy4yt8h~SWlc@R{c9`T?d#3$3=88te8^Ik!TcglBP|coaGR*SmyHg9qQ`5 zffS4zPV&HR0KY@Zh)7nj^Bytrz!s@klVetcQ}~oHV_dLmqkAhKG!?aG`Q)YfJ9Ze! z*{+eXY@$~P07?*E)IF8wZMX5Wn!Nhu@BjEHM8R`s4!fOvGk^l+i`88nb+9WO22kpJ zmK3~Xs7z;pHtyh`1Bjp@Uj|yL~%&LJcZs?{k zC~>c5`xUB2`b2giCo8?bW9~)a^>x*(=fI~pd-(_T6fUkqZplfO%t(6lkX+L3q2c)K zV;u7)$^o<2C`-@D0$_ZzFAYjd5&mnB-oO|ay6-H=t$K_ znXwbk4yv0wCF#mbEM6KelK4`wTn#v}B!R}ZKyucxf|q~zu+ELslpX+1WsF?_Qe{a| zpx34;j#W1#F-un!1J!M^$Dul0B?nH`<1Gv5D?4nvwBB6=LgE5lz(E285-2QG-L!$| z)Z`R!udKWC{~vpA_N!@@W_QUYx?Ek=(dF(olED(P`ih%K?|DdW_#?RfT6@fjs>q0N zL}U%J{~6|a2Af&TAVz}$VL;4agJr}#-tb%RiArU@=gW4t@??IIRj0Z-E91mD-+A9X zJkMHtKhIj~6d#wr`G}poqdTfPBml3I@EG_pU`Am-5uU=Kbs!%d79pcl4BW~FANk~eB zo_r6|{j^c~+n4-l&k9Sd$Cf0OCpSh`&(_;5f3RbIFsbPW7{XFw-8KcF*$H<8`jsV- z$btgr5y8h~okQrVA`?ER*vM>34biV)QyFT{Myx^&q{ac?e z0?7pX>C?icrXggsmSk<7AMV3B51S=1g&Z0Zh{&qNh@J57oD=g?L0*9hx` zubSXwD##;W0v4ExrP?{~_{Sie*CHhuRdSvM)0(6zd}5ojoqStt{tj{@fb-#!Gfa>m z`8%?7N+x@#VU%=4?&R}^s`XZELEb&!oKoc_IEk^rb|L~vQe`GWhn;U%V%eq=>?=u; zWa`cr1ty_cpd87wAt%8c(a*^3C60?ix5uM zD4Ds;IjBVtYT#wP%!UhKkkqVBG#DJGjtm0;EN}{`_ZRia8i6e6Lz^H6AJh*dEiXBl z0`er^F6)+kZ{U2xw#puS$;X)K4;?xee+p8$C6*l3~>7 z7J1G@nj^3@fj$QYTtqf?>+vbx$~rypy0FR(RkTuAZDEabPs^{Vz2NCx{l~o}ck7|M z(%0fYSL1f~=P!TkwIx{q8H5Q9qi7r|ygjQyp!V3|HVrD7N|W1)wOzWKNl8SvYANc} zGTUx=cA|VR+Di7)FHO22s&#uY zN10wGm{$qWci&o$WZL^77fN1r4ho_2Ht_L5y(DHb^L7raGW(^|UucoM#ykY8LK;0# zdMPBU*=saAWHvdIA{PKUgsoyqkOB;WEx^{&ngn`DAuI_XWCC|F=Qe|19sKk8Xm9S- z*xh>Et~A&9&!zagKfiZ@wn{e|818EhDOW2aKbu=q1(yx--i428!sd`NSs= zOYS2@(hYOEdMFMIC{ST-h=I#oYC+jmwB1sZV_cX05nR6?)xk}U4remi{HhS-b?EHs zmXd*2`%liU8~GtF*SAe6bkz$5vjJxLSX)jitb=$I12e2@C{nq+chzzSKC|+3v>PPY zoX>Exz~2obvGg_}SZg6`eO8wX3B7=5%}c5LXLFp9EYk7HD_$ z+qo?&-`EW{$w`xKY6O+D3?(P{So&_ciXFwpb^+F`8XyB^N)ozO&{bjXAPhr-IuLSF zp_Sr8j#6kKT0IPk(xotDB*|^&@WUy5IzQDI<)k=zoP4=$cP}c`;}JK{y)v2G1;$bI{PNgGoMu}Cn5b08rC-Ml2c@(N>kjeI^t&_PLHmo9$9c50W|?$#iu#V#TajJ2Nwl1pqHA=&ZjVcUv-7xYhPU=O6{i*tPChSovY=^ONjx9)nf=s%g`m+Am@*qFE zzTDXQ@64U%TCYA{ukWw=TaVk-69aoXF?b&jsSXVX6$Z)Q$`1ofcEzhGzGq2Ec+gpZ zB@~EB*@1r=;7lY3!4F21d`&024mXSL@`(V`m?;4+yM{c%TfXy@ox6j&XOblc^B~VF zdoQ1>vOb#RSZyRnC$CPqRaonbIl7XnWQgswuoD<>)iJ%@vK;Co@~D{)g=VPoL_I-O zh5gA47iZ-^evvd42C`q>xxgZc02brE9>s+&?oxQRv9br-daw}_W2?cphOw2aCeT^UkSBp+oU zmp>}m5|id4$s_VX$+SberZ#CT)}s(fHzTc0BO%nerfyzs&1JQC`8%&i-S^-Y_nUmF zTs*&8MWnvYs4M-fM`ha73a&6M2_xBM6Io$NY(0LJUHogWg$Gd=I#aZbk*K-^LOmN% z_f3``^ck7I?#D( zkjiOD#zQfeU~5wOdLQDcMH>tPlAMGQLj{x!%kP-!aKb7oR}XX9Vm{SD{hUSp_jdcy zdiwSm80sEVz4h>Yjf%NMrEC}3SVxsTR4Fvh0DwFwJ$klku1 zyXq7W*hn~xk`#uI`?zZc2lD+^x?79ntQ#gxG$AnC6lYtKKQ3mU+Zb;BIM-InyBKrL z2UU!S)!?HJsC%rkOc`>BZX>|NmIe5)%o<%WxNYNMCCCd(Gg*S?WP9NBCOIbHwC;)J zt0MiD>DVHZ)g>P}Ni?yHqa7fjTD#O!nv5X7K-qK`(x=4sfDL_;Rkg5KZ@O&;Zgibj zyX+;(!A6S9O{ko%)1BRF7jDw{^*R<*+*2v9A?C6{*BmKkI6$1FF@l}sR={s-vd@5H zs+JFRUj8l>-Q8Ln{+lCJe`RU)=49a{6Utyb3qJ`xu)@k*33S5Z-JoG6cMxTqM2u6h zk@&%i)9oISiUj~eZ^O%hJ0wtYS+VJ7-R?TRkcM3wa-JpDNkG#!DV0O z&c#4RtGW@$(X92=EEs9#m5NM5S@pX1bFMF40H~xGFuXxNV4T$43el>pL8ZjTWL8sX zDw1IBv42y@r90AojVh*rwX7! zheQm?u^EX`hYB57JaV=z>Q2k_yA)Za3@`z{(I23BCsSfqTL63d2wrLqR9$PS>Sfuw z01YZ4k!iB!{{dxXdE(P*R<2OT2Cr5n%}f|#woc5ab0LT5O`1ZJ<9XS_8rvkAtS5+sT*lZ!I}lt zBOBO5Y;w{y8U%M)*e$_llTRZ25HN9wu$Lj1hB77Xt@fl*zj#h>ZD{-GulvCMx*z`9 zgR5XdPt>82^WKFAJygYk)l=>bN&Pk{@5tCz-Dv9#!R3;c2R|7}j1Z%;bx!plY&vTt z!Kw_)Olk_C#KQpLb_-Un)+)f^0|UD{#<|XFgipIull_=<%2H0g9^w|@_aGyU6ob4}Ta-mPdnfCri2rqS#{_@m^G9As@;+9}JyFaX59Tk?$=CUK>Bf(9b=~~d57zTn>-E!j%SVys8ixRv z0pW(qRKw!eO6MyOIn18wR&9s(uDsvj06HCkYg8S#6EAs#N!p3qD-@}38o<*Qun-(D zWCkd4ZUPzn5*F*K>|@53&2F7~Tbz)kq}2l$ZuBixb7)^@HsD*}(iH>mM;ZXkDWAt{ zr$v8|%=zZ!^Ly8_w;sC3GsVX<#V>QFcj-TE~2@o@I5 zJDk1s$=TyU-UA=x2@Os{R5$WDk}^TqQp&Xe)11RnBOYnJ>L9~_?9?3q5{cDcVf=k(T(a}K|6p6j{p z&u37%H}faS5Y;rYeZT-&!pAl=HE8Q}KPdqe=@S9=<6NY1FtCh=B!?pZ=b~&3`t#C@ zm9Ua^tUNe30mY@UvnF=Qsv>vkjIe;%*tUN@{QA4_`|#(o!_6@XB@PNW4X-QdrVY05 z1MERMNiy?IWJq>U<^RVxyc-zTB&MvBuT<+$=P0CdbO@+~b$nurv6!b^d2C@BCkW?a zC{|%PO9e%rd5-3ty%%Nq5+yDbokXx~(;-XgL~T_K8zW@tVO<3EDjk2}B=sE>2zOU$ z{;Huiaso5aSSq_n*GIxT8`R^SWO^Ez5bo9q736U#u5yz#5EO*R)^z#1pS%Z2;W0-&e2%(x_vYpA z`3hWj0BP?i#oF-mfcNZ* zvgEJD)eg&O0u3Cv&hU0$KN>TC7IvNbt2?#^!{kSJ?u`Dz#{n0_pD>E9hQpr&%qgxxl~Ce zeMcCeOnlT8P+Pvy66iIiHMYIWkK zTu)?O(q%222M92-=92U*0IKC`HR!KP1^DTk^(Q{j8hd?S|F<5&uMtl)8LpQ-hO||^ zSD9^Tavoy)6OIOS+!i$!*R){6l)7&!wFmJ>l4d|b8)m(_=DW!XXOgss%d#LeoSUMZs=YQZiU%;Nqm+t445?& z@(PPxrRNGkX_9<)nr=@ps~LNhmH36S4{8jUOxJleS(=F_FNr7`R^(Ry;BHX`by1C< zK{wc2W{c5e7C9Mj-Mf;%_2Zl-_16#N{e$-A?RxrgyQW5OWh*)4c1pSca`$D#3%di< zYbAB{#ycIvvWy&YnE*rR(J@C}0G;ETL-I`il7FQ{^SwlIq?yXz@22RQLDL@cV%3J@ z#$u@IPul8_M?}92M?~LwaCZS|cF343>jH#eSwR&fNI5O%DP0=idCXNp(RpdqA@515 z$UWXUVXBfv#VvyYvpsFrsPVojzVULNOeviu1E@LdnGe3aJE2qlQRi+|cyHRk_MV|K zA_oj`<;R^q*IB9Qt3DPgpreJOJ~pX}iAR_bFg%PqivJ8DQzSgEv?oD&@i5T%o|7O| z1Q!L>)kO=Ljf?#sy!Pu=O!upAnTa?1 zK~H|_7R;`eGgd9AB@`+A`O1RPu_rH(z+|e`g9ek5fS*a0Yms;aA)K+)1qlE#z{@N(3vYGep+eDVcO1j6}DWVX>=pS7I?kj0?(@FMt1&_n;i$u{z;F zs}uT=PJ1O+5;%jAx|2KX#SZnz>}I!dwJG_LDD%kyCzwD-Ko@jDn!T&YRni0oEYu

qNME7DVn0){ej0~786@$#TOnd8V(!NX_25X|2C0{*cc;Nj~5 zypiR$>_3Ycc~9`;-gb<(0?SX}RR-@G5t+!v#_$a|2DwdsSp=FASUZ!%C!4z}E88xQ zB>Cp?Y06?-k`$9rXeWXs9!`&gX*dfS!G&$E2T=4rcR?8ACk{Gem)Xs`ir%Y1cs`KP3RnDs7sHwwk$}+AHKUJMC@4Ey_y!?Yt z-h;E{$D{6tJL*=n?P8p4N;YRM2{u||H9Tts=j*go^>TbERA3aTDY5-o=5Q=hyQ$q*EM1%13% znR(-3ym$0&R*haQF$*4He0R+w;)&(}CGC@8pBDGTXkz|hm10+*{ zIi@EG8z`&XPf1WCMB@|lqcUCx7xkBa z*YE!P<+q&~wlHXdh9;5ks>;BfDro|{C}|U@DTjFi^rQ_5$gKGQ^I=mg2a&f#Q}CXE zBJfy;+Q2LI;x@SwWAt6GErUU??=UX;ExshY71O4PP&R)FXwQ4Z1}JDd$}fIE`TnR;W1odg($ zR)*93PPU!Qy)XaR;Y16g)lC;WGA;E;k$Z(0dD}GnQP!wqM5$HFKxq<52{De{t^F&v z9F=YYRtYs(b~>ugtON$hga?z2Tqy|SZ7m~5*rJO05#)cyip~D=j~`FrO%%w0l-RW7 zDYRRZ=K6xMvcy~`X922XRB@BOGX=#=c9CSYO>o8<1AYu-diZRLvVxULx7T>@!06*F^fCK;Jn z$k})6;B7_;60Ds^u{wL5a(V^fH1TNYUJ(pqV2oSc^FBKE>9Q$qaLZalzWkX3>IRX_ zF(j=%59xxbP|nj5gXK-j_U=Qy1Tt?pWB?Yi!1K5PKpuGjyZ8?Xy(Z#KOSQ7ChXeb7 z`Iy`!>yD};01upJg-5wubyvD<6fXb7lZWqD(UDS6-5mI{2GAmeApqlwYL(&3#xyGn z@(oE)J1ZcNVav@pl8bm*mPn?Q>oXAqA|BZbsW{m*5?7O~%0w~XLv|jrKhZU7k5eok z?iC}v=Ld9WvC$h3-lH(Uv%5cJnGRjhoP_4d#T6u@1m+IZX1jx7@@XnipmgP}(*c8-E`r0gBT|8d?$w#r# zUpRS!*oQMP6!xF^J|SBQN2TT(z0OnQ*1N}Xa?k*=GMLeg1kge48w5IGBz6i(y@ntu zX5Fp@7i*l%$Fi}o`bf}4LNTMYlu86_Ek>fVbua(a(beYKI^-I`;da$vb%GM*UZv~x zxQ2YxN?=C?HW`a{&tqDvEOHV|)N~$_ot_3HE~eNzI1Xr4VZVd_lUh;ol8Od-A1R4h z073`Ls~dm$rw{lfo(9V!ionrl8FC<(1lbf{=px22LlcY30F7LEI2(s9*nvWw2^$u4 zGMFwMCaN(#D(tls*@ z>+u5a@dEDg0`B*E0Y?NAE3YK$HLKbap&^V4A#9S)cs?D?q#A8aRf$>Eu=DUlhlm0n z6KfM_%8K*NZ3$+|H%Glre3MFMlXNb@CZ)ke2{h0iKl%1z1>r9L?34H4-tF-k@Zqlk z!!Dbx(;{(HPzESbShESpeaPx50ZuJ?Fse5W48K4=JS6Lhd?|2YtCR1z8UQ?RC~E+9 zckVW7tVvQ1q%E>)F)e1lS z*6-20b1rkRkDn2sC(#%0(@E1*f{ zIIs)JZ>s?D9DI{q3Q_=e_65RGgTauzAcT}i16|yWK8CY{=R4pl^vx1PBM5}WR z;wWHbUoDIO)sNPT^;#zt_nbU$JbKrpj?)M6^HRt9!k0g?aK71KiiWALC^=EUpQ6k@ zPWd!B{5=5UsJc}%NLIBgWPi2BTX}LCoUOn)$bcT&Pav7lT2h!_%)wUUCp*+-Sb;W& zPM)E1>^OFMz5Mfvxd2u6@?3JLgfUqD(g19{PS&l3Ye1IQ4j>A^#vCFe6~YWMsszQF zpen2vSf?lMkbH*$IRZe)x4}9?q^s8V3}aC=a?KE6*vz0vs0eZI@-G||fCqCe5p#-q zScBwP@8)mF+ig1KA}e=zUUVJdY{(|Z?J(VOGOBwGR)uO+VXmNA>9iU}j}fccNv5sK zkw86>iv94}+ zF?Kqna?sVCMZOuH z%fI~O!|y)0rSU2Z;Ep~?y1)Rwc8Y{``Bt-(Aey2ov9K*cHh=?Q7f^{I&E2W89Y!L& zQ)D&j*$a^S0e@0AvvMxr$9gk7yMo0I*HB1+jwAJ$+_pMj`)u{OHMCBY2Z#;5e zV?^{|l-$6-%djV9UYd0s20~0_9Rc48z$~)9pfGb757&9n%B)5QLSq(3>@bIt^$a$W zzhWHZp+FqS!4MTInEcOmk`W>8>gUx8%EF3Ik!bOMK$z+$H zLoQ41><)YD$GN&x|L8jj`X9IF&!!gZ)8mn!?Pu%tHQo~lRg({cVvx`wBZ@?XrOuw( z%sQzVqTFC!OM-{0A^>xG5?Jb>lbDARHyF!U<>MgP3Zvy(gw^d3qQ%OWmn#@0i9%c%*3s& zTlqoK0Z=cs_vx-^lXBD|)#3RYYO2d}-OMKbMDQWr$EJ-dfs(VIHc3v6KvK)B#Cd+< z7EZHCRuPtX6(KLuK>-@(u@XSAGJ1rO<#W<`Ndb-NCJ_=4D(@nx3vi--w@%t+_uP54 zu7wpAVGhJWzB2|mwa@Bmf6co?k2f!$|9Cz9>>%G01-kJ#ex0HykLP5+pyy<=QW*!b zQ@i@!&C0x9)htCh2gurXNrT^(eTJYY$H8IvB`Pm)JTbIP!{S^9GlJ#7@8ZL*o1_z< z#5{#2)uL2@CE&>8M!9(4Aba{u1aJH}r_KKdh_4qAv3py?fLYCza%!9cR8$fT6&bbDk2Xu8>9)&4gLAS&w9fnMq%_N`D= zGmBLpoB>Tn_GFcTjob}Y$A%hzOKp|cY=Vdy}%*bs_pfYO_jk+^i9%8f#Ib!r8`**%QxpvpJUWW>zYE>mAE2$Zk z8xV`(9~Jz%J!z;7C-^z7P33%?`fJBB`H2p_?rUe=dgvatvmUjxzPxtUt!qUdOIIE} zEgp+Te)pmg-hXX|Dw>*fZ@yX&(&|iyEHYa?5zOW`b-Soz_AUQVo1nIb*umt1!Ay}f z0!@d^5LiZNJXBpk<5@dVWqI47Q)D7IkE;8JeEUKJP@Ti?tsm!{q}z)(&z>@k?fNcl zehxCdOw=b?bnYgDqA;0?k%$Dqv<3y$=`Mc>-!p}z+X8SjCfyfRIa1}JJt|=&!VVJ* zmjeKhNmTR88r=1e7fGQwHIOA27f%aBEr2X1t!4;Y<(Ikv`An0A zLYQBYfgp$TF{4|r%|rOhqmblQT`<3)E19TlnE6JG|iV|}_d<~`?0=#?!(zcF`%eEQe@~=Jl@DDvS z@nqZPs$ZRaS->NJf!E!{oQ~BI4Z#>JB{N&{`qC}K4lpN@Y1gg2?^PYWz^f|J7o8b* zel9z9hYn`h=g>I@rLxA1Oh*A~L9uDaqx<6wQDRBP>vT6V6e*U~4PNhI)|kMnIG z=PK`9FMj;&^~)C@^O)DpvE;bSf`;C-<7RLXzozL>$QhUFain%qriv|00kr9PiG7aW z+Jnklsv=DdrZ;kJ>D>gvMmlP8Rlt)E!_Nj0*H;C}Q#7mAm6TZb7uS4ECyNfEcb_}P z#cv}^&!kXWUA3cmQ&jeBj*G;op0H_PP2fnsS+N6Fl^dyK6j$VTDQgqeOEq$C1xNC) z1Tr0ydfhRz6XZ8Jyb&F%=XM-nJ4sc_sJ zM~`v!w44u`c~VAIlWr<99e|fMT`-fTk}W9!;-vIHl+HST50~mz%~d7x+y;iFLiCU& zSFe7neV=%KDtz;JQ1p0E^mtJ8cu@3sQ1obidh^HmrXMNHn2)7vB}oGv1A*( z5?&3=Ql4py@&rf(Ux56i1onwKdRR58s`KE!sdG5hX_}cVfDIh4hH({zkM?PR&eb@|ut`pZE;1VEC%Di@Mfe~xaqJG4^L8l6wBs?2pgbZH?u_)`Zntih61 z?^;VtQ3s7cV*wIz=s}z}YStxQS>kfgohW(Nk*_V8F6i(rR zJGr`b-m9yupM<%$gn04@e4XhsaGfR;C!u!e5ZknmowrarAq3J}hx)5nFlns<-U*id zoOR7k(3JE!xM)i`0uDtwv6p}IP!U$W>})Nsz<(x?Y6~EhH0L2IVZEeTbwTO)MJg>I zB9F#^j}<2wiN^>_%1TgdzK;boYf=@$a&zt!m_Xxuv5nOY5P?HBU3se|BKMKcs^d3) zoT~*-#l3}o;LXsw%$XgczOGpG-0tpgg0Zw(tI)@ywftF=C4wYoFoCnWP zy~(R(UBmB~dN!)QCwEKa0VEeS{{(b!af5-W0*Bqub#vO)JD=1J-#27-Ty*I7qz1mq^czTbtEJXSgV;#E1l2lob#*BHNewyWO|htezbgkhG>6&rm( zfEO8hOH%=ar-mD*c{d}Gov7A{*z%qhkW_NDI)r4&@;cUngM(-ZBpa$U2q8-vLF~~X zOH$o7CN-lCRaPGY0%AKb=(8NA{WSPC)2TE!jy*6-DBE0G?zm(PI_Ms3!0%pn&`asz~)*Z+`2? zIS1cYuh-kRKYJ>lrgm*wAz$pM9jY~Ij2m!B)kQ$4)G@`xKq~_Q-$)bEsUqE#IU#kD z?P_p4zIgOUv$>60*8;51FQ7VGGRd)%nRlaS1?i-t6c0m8P~}4Iy;3^-DGpXUER+XE z9j(qTq_1Imgj1GC{P2L%qpY1sZab`sr|fHOc888y^6-$a`}O<8l)mfRxGxC`L`ambAREqbBmgN$^G(3W?N0&iV+q;iyBT9@T)1x zPv@)p-`HA~l@rU+%f@D_aqG4W;xh$J{87ZabtJ(1F2U0Z>DA=et&Vv?$o*uzy);%8{g!Y{i&M?K|JNn1)`EHTg2O@hs&GxwRA zgm+)~@-+!8c^)=7%L~uLIv%J|y{tmIk}SK8;XSmONfBDeFduTdfU*V*&+C10=A$z%vLRYKF4&@^2r5X> zO!W~ZSth~Gr&5SoupxP*e2Gq&CBPS=5_N`Oe!81b{jV(sSH!K?V ztS)unAwzHFLYB@;Q!N)^S?GeyZyj@Db=Oy`j-qvr$M>_zR1L<)W~Ai7zV_wcyKCQH z&=DDqZXG1KK(d;C0w=pGhydriu77qO{GVJL2!p~^N_g|$ zvCOR>=X~0BgwUt2+Uqx0`;`fGN^`rYnnQB%UXw?#i_3?6XtpISuO8-B`RLpYM6hE} z|6nJkM&tak`YI~(QrB{q&_zF>gknTKl$%2t=hHR|;j@48S3dmp zhfcH==Hdjz8Ue&^=~oO%(*`STX;v`&h%H~1W6*2sb|zv{9e3wm>g?+zp+Or% z@Eu%jWYbDe0yTF6rAppoBY*LGQq`#~NN>p1E+uKF8;$jpS)}SMZ6h2;KEoQF!K576 zzM^sGRq_c*Xgqs*RhHq_Lw7IVrVniWpnN9ZzWc(L%(q%!54-5toK~v-?TGn%1^Ms- zr2A2eQEb{aMs+qsw%G_Js~{+d*m;Q#jW(onK!|2Ydw~0P$(cC9yHoRnvC>9JDxfOj zw*>#jgwz9vk&OK}c+uT@=&md}XFgYW`tA$w-J)Y;f*d6rWQ>g(8KD)evDxX^t+>cY zc4>#WtXqCvYLj|knjoT4fdEdTR6!=Qhva-#eay@{UV)GXexT^)1t1MP>oT;kE%3KkCa(iH7|$S8rVQrQ8H`+oheXW{7!I@s zk(vxSR1b{XYfVAubXt>^1pcPDwO8>)FU0cK*3Dz{BS(Ta&>FhNLgQgW*VvpO(#$EnHJ;h+G?U0D@$POa5 ziyY1gfiFI%3p{2{JS>Zs~pto~?4xaQTl9S)yCZ z#r^q%-Ne0{4p`--!~hPcBRC$GmvdIR1Yez6;9VGK4Y+y*{>Ccr79G}^8RSP$CDtd^ zs^VBO9u6wu7+9OmOQ(2%A&ll7u>Nb=j^>71PQ} zC6e)&^sP%n@z|Z}x_h=M8xy_=KUNhsd09#TBb&N1E1VT+bJMY8mpU53nN=f6XHmjD zN|2aW-sbY3z8BJY|Je~QZtQ@4R?oii5-%~6x4OFwD*O%?(hNCl+o*dYZgOB^|_ZgwT>Pr_A} zgt62I!g6qjOJVb{-Lb=!)7^Kzn9^pSEZePzVDkdf5=(#TmS!rql7|&ZTG4u2YujAo zCdR3R5O(aM1Tl|-_*y5c)3N=b8rZt35Vt02p-cEYa9P{m;e0m`I44< zCJk&A^b*MA*8?afrmdjT5t0X)L6@rRA$geSYJ=}gQeR~MPC}kz__Ae!bm}w(s%791 z)l(_!ZPghOYC1#2_X2JLbcc5sER=hI{kD&DK8}^KdA!yl(u_LRVsh#=)f}{?2`g6i zSH-LI!EN;mMw!UTor?^Tbi&$rqM;QIlp<@AzY6O~-c1plPDBBy6xGzXVQV)0re)n? z%XA&{K{=)WcwSWQ-IW0tUu9_lqC)(ZcU5X7F4dnBNlBc}n-0JUZ;Ohar4sZLzoW)_Jti-qi`7z5EwP@SMFfCwz?` zpAw3RjJ+o^B&aoe*%I-IcDWpvD$I=a1kuc&JKu)C(Hj&jvRk1dCkCQX=mSkj;~q$ZHWPOL0` zoBB)OOu|4pFjKP2XF6rnBI8U?yW)#7D=C3g?E2`0Iq#w%e>S2xb@?l zZ8l$O050Rw!8~L6xOzSw?H?iZT~KN&z*p33c`A^eVEP z^Z|k_(^l(sDVNmzP~@;s`99W0-5Crx)t~KjM6?Ub!zNia1WDZwVoqN7THjUf6Qi2n zYnDL=L#u{%8EvYe#_FEYNd!oKoT4oNlcoWK9E0#J_;W+5Ls8kBq@?+ku%>N76CPn* zvqp(kQTLrewdMgrRUEVk60*yZiI| zlS|*NxS-}J;s%pxNip*ANWvpa4PL;EokNlyy~GU@n;`C{Ya);_lvJv{YGBpbWKn47 zU{Cft#BWF{ngAh}kmFtn9`0CK^X1bK6{!E(T*-Qy4xa6Tsk4G&5>9dbHu62|%v#(yhe!K23x?2z4 z*Qf#ml$<5&+zaqQ?46;Jk{M!o20@|y-g1A>{F`-64slCuCbCTQ*7^gm8u(PKa%E6}x^yCvbz=pk24dOR+Of-Efo&xSUWH#7fBCPDJBh{X$4LBOyB_92lMhb>5-Y34 zty|GVEP~?mM{q}%Fs!uX!8*RjsZuo+U^bO&J9UBpH{@$2bAi@CM>?)cL=X9itQfMq z{LI`sRlXM)LRV?Urp*AI-E9gy{cn+;6uog@#9rhBN?Yk)VsQ#fp~j9Dwg~b zDwcFl;L1hTU8;o}GNEC4xwPfWyRC?jG~^ZEi|6}HB8l&~GF!o^-B^Ol&@2L=@d9^* z`Y93j-8;(<;NfzNz6Z6FL>oJ6b4dVt8CKqT$KLpHuI87wjNKcxs9fzNOJpnXM(Tx~ zq$jhG%sYhBZGpTIWH!ioK=xG;(5DnX)%BTGZ3v()qG2`YVjXZpCJNoC(S^SZ!Kyc1 zm5oV~_Hn4mWvW(lseE-jO40l>NzvTe{^}fvZ~QnvpVR=*Krg@V{_yp)`O*5xdj9i5 znI~^$$*a4>SI=I2bnTpmWRYC2ZtB=AFQVwIQW*^Z(^}P^Z8Jf`_7sT}^Jra+vNhXG zB+ng<+EQbcykU}Mne;lOcSkUQOeGb9H-&L6P8DM$vERX3<;TXUvCQb?xIC&2J*o{o zstvv8YC}$~5gXzPjZ_IdK+&!M(?^CBjgcxbbz+N{Mu?n`m| zHFlCg2eFNW#~R8qODCn<>`0{ z$%WBgncTf)D-1A|d09CmHrYO8!R}!?)=#z6_NG3otY$3_N}qDWmF5koAI@U=cH<0b zCQaR^m_C!tL{f*6!{PvWL~u1L);+*lc51Dwp}(|sJ|qA6k6ke+$2i)dH3km z)MA_xeqjB%^I6NSALo4Iv3`2B^S-dJ2KW?0+7A_a`5q2AzBvMa(Jg^Qmkhg=2$KEL zXR>w2Tyw5g`pHFJV#yA5NCU%l$LWxTh#DnGLP zOH-6{nInvpySyq$eCNx>>yAv}!2 zD%nKda0p^ew`EcaTmo0Kr^-miOZG!O?Ie+~ma9oQHOg?T5>TBgdKx>@3*zgV9jK=Q z3|Dx4sp}G&te4tJET`7!%xvBvU%q3TTu45WB;z+^xS(w*n#!OU9>A&yCk`w1E4YJm z3<(Ts?(I|`$j>r@_2^t%x)B7>3ui>bcWqFs**+*O_F0eiq0A~Sy&q}_?M!EG{W#~V zo{t1~_b1Pv?rVI;Z|m4vy<5N*l$1x;X~)uZ2x8S|@4GwHI|ZANR9q53i^c?r zF4&Y;3G$(eUDE1=?!9wPD#ji`YpST2-g(Jll`&a+OZJ*U>J`LEKfIF=GqmT-Fg>;VP_kGcv(OHx-g

C4fSIri6 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